@aquera/nile-elements 0.0.91 → 0.0.93

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.
Files changed (172) hide show
  1. package/README.md +9 -0
  2. package/demo/variables.css +1 -0
  3. package/demo/variables_v2.css +1 -0
  4. package/dist/{angular-ts-da0fd838.cjs.js → angular-ts-a95c67aa.cjs.js} +2 -2
  5. package/dist/{angular-ts-da0fd838.cjs.js.map → angular-ts-a95c67aa.cjs.js.map} +1 -1
  6. package/dist/{asciidoc-de6540f7.esm.js → asciidoc-b8046ce8.esm.js} +1 -1
  7. package/dist/{asciidoc-b383cc2e.cjs.js → asciidoc-c0ae04c3.cjs.js} +2 -2
  8. package/dist/{asciidoc-b383cc2e.cjs.js.map → asciidoc-c0ae04c3.cjs.js.map} +1 -1
  9. package/dist/{astro-05e2da78.cjs.js → astro-97602850.cjs.js} +2 -2
  10. package/dist/{astro-05e2da78.cjs.js.map → astro-97602850.cjs.js.map} +1 -1
  11. package/dist/{astro-1223c814.esm.js → astro-de938e80.esm.js} +1 -1
  12. package/dist/{crystal-00fdf85b.esm.js → crystal-5e351a7d.esm.js} +1 -1
  13. package/dist/{crystal-ae510520.cjs.js → crystal-bfe435a1.cjs.js} +2 -2
  14. package/dist/{crystal-ae510520.cjs.js.map → crystal-bfe435a1.cjs.js.map} +1 -1
  15. package/dist/dotenv-2978380a.esm.js +1 -0
  16. package/dist/dotenv-6a845f3d.cjs.js +2 -0
  17. package/dist/dotenv-6a845f3d.cjs.js.map +1 -0
  18. package/dist/{edge-9983b50e.cjs.js → edge-f122fee4.cjs.js} +2 -2
  19. package/dist/{edge-9983b50e.cjs.js.map → edge-f122fee4.cjs.js.map} +1 -1
  20. package/dist/{erb-6afdf0fc.cjs.js → erb-4ff167eb.cjs.js} +2 -2
  21. package/dist/{erb-6afdf0fc.cjs.js.map → erb-4ff167eb.cjs.js.map} +1 -1
  22. package/dist/{erb-e26dd182.esm.js → erb-baff1e72.esm.js} +1 -1
  23. package/dist/everforest-dark-0ddfeebd.cjs.js +2 -0
  24. package/dist/everforest-dark-0ddfeebd.cjs.js.map +1 -0
  25. package/dist/everforest-dark-c8bfaab7.esm.js +1 -0
  26. package/dist/everforest-light-d4dc4485.esm.js +1 -0
  27. package/dist/everforest-light-eee329e3.cjs.js +2 -0
  28. package/dist/everforest-light-eee329e3.cjs.js.map +1 -0
  29. package/dist/{fortran-fixed-form-dc511aa4.cjs.js → fortran-fixed-form-48ce1631.cjs.js} +2 -2
  30. package/dist/{fortran-fixed-form-dc511aa4.cjs.js.map → fortran-fixed-form-48ce1631.cjs.js.map} +1 -1
  31. package/dist/{fsharp-33f71ce3.esm.js → fsharp-941d0410.esm.js} +1 -1
  32. package/dist/{fsharp-2716dc4e.cjs.js → fsharp-9f65d045.cjs.js} +2 -2
  33. package/dist/{fsharp-2716dc4e.cjs.js.map → fsharp-9f65d045.cjs.js.map} +1 -1
  34. package/dist/{gdresource-10e5a92c.cjs.js → gdresource-f69c4269.cjs.js} +2 -2
  35. package/dist/{gdresource-10e5a92c.cjs.js.map → gdresource-f69c4269.cjs.js.map} +1 -1
  36. package/dist/{git-rebase-3af101f6.esm.js → git-rebase-a164f4f3.esm.js} +1 -1
  37. package/dist/{git-rebase-6c8a29e3.cjs.js → git-rebase-d4b1bf1e.cjs.js} +2 -2
  38. package/dist/{git-rebase-6c8a29e3.cjs.js.map → git-rebase-d4b1bf1e.cjs.js.map} +1 -1
  39. package/dist/{haml-0a4f1779.esm.js → haml-2548eb67.esm.js} +1 -1
  40. package/dist/{haml-9562b9cb.cjs.js → haml-a62722ee.cjs.js} +2 -2
  41. package/dist/{haml-9562b9cb.cjs.js.map → haml-a62722ee.cjs.js.map} +1 -1
  42. package/dist/{http-fbb08279.cjs.js → http-243ce707.cjs.js} +2 -2
  43. package/dist/{http-fbb08279.cjs.js.map → http-243ce707.cjs.js.map} +1 -1
  44. package/dist/{http-93fe835e.esm.js → http-5eea627d.esm.js} +1 -1
  45. package/dist/{hxml-84e30280.cjs.js → hxml-36e954b2.cjs.js} +2 -2
  46. package/dist/{hxml-84e30280.cjs.js.map → hxml-36e954b2.cjs.js.map} +1 -1
  47. package/dist/julia-289248e3.esm.js +1 -0
  48. package/dist/julia-e6d02a84.cjs.js +2 -0
  49. package/dist/julia-e6d02a84.cjs.js.map +1 -0
  50. package/dist/kotlin-0426de90.cjs.js +2 -0
  51. package/dist/kotlin-0426de90.cjs.js.map +1 -0
  52. package/dist/kotlin-9232cba2.esm.js +1 -0
  53. package/dist/latex-1732805a.cjs.js +2 -0
  54. package/dist/latex-1732805a.cjs.js.map +1 -0
  55. package/dist/latex-d31ca0af.esm.js +1 -0
  56. package/dist/less-263f5e43.esm.js +1 -0
  57. package/dist/less-d05a73ab.cjs.js +2 -0
  58. package/dist/less-d05a73ab.cjs.js.map +1 -0
  59. package/dist/{marko-6fdf941d.cjs.js → marko-5bdb0e54.cjs.js} +2 -2
  60. package/dist/{marko-6fdf941d.cjs.js.map → marko-5bdb0e54.cjs.js.map} +1 -1
  61. package/dist/{marko-f6122312.esm.js → marko-b0214c2c.esm.js} +1 -1
  62. package/dist/{mdc-34a9ac72.cjs.js → mdc-a3ab9285.cjs.js} +2 -2
  63. package/dist/{mdc-34a9ac72.cjs.js.map → mdc-a3ab9285.cjs.js.map} +1 -1
  64. package/dist/nile-code-editor/extensionSetup.cjs.js +2 -2
  65. package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
  66. package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
  67. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  68. package/dist/nile-code-editor/nile-code-editor.esm.js +3 -3
  69. package/dist/nile-highlighter/nile-highlighter.cjs.js +1 -1
  70. package/dist/nile-highlighter/nile-highlighter.cjs.js.map +1 -1
  71. package/dist/nile-highlighter/nile-highlighter.esm.js +1 -1
  72. package/dist/nile-icon/index.cjs.js +1 -1
  73. package/dist/nile-icon/index.cjs.js.map +1 -1
  74. package/dist/nile-icon/index.esm.js +1 -1
  75. package/dist/nile-menu/index.cjs.js +1 -1
  76. package/dist/nile-menu/index.esm.js +1 -1
  77. package/dist/nile-menu/nile-menu.cjs.js +1 -1
  78. package/dist/nile-menu/nile-menu.cjs.js.map +1 -1
  79. package/dist/nile-menu/nile-menu.css.cjs.js +1 -1
  80. package/dist/nile-menu/nile-menu.css.cjs.js.map +1 -1
  81. package/dist/nile-menu/nile-menu.css.esm.js +24 -2
  82. package/dist/nile-menu/nile-menu.esm.js +7 -3
  83. package/dist/nile-select/nile-select.cjs.js +1 -1
  84. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  85. package/dist/nile-select/nile-select.esm.js +2 -2
  86. package/dist/nile-stepper/nile-stepper.cjs.js +1 -1
  87. package/dist/nile-stepper/nile-stepper.cjs.js.map +1 -1
  88. package/dist/nile-stepper/nile-stepper.esm.js +3 -3
  89. package/dist/{nim-808435cb.cjs.js → nim-df5f9efe.cjs.js} +2 -2
  90. package/dist/{nim-808435cb.cjs.js.map → nim-df5f9efe.cjs.js.map} +1 -1
  91. package/dist/{rst-98199db8.esm.js → rst-32451dee.esm.js} +1 -1
  92. package/dist/{rst-a41b2bdd.cjs.js → rst-64e995dc.cjs.js} +2 -2
  93. package/dist/{rst-a41b2bdd.cjs.js.map → rst-64e995dc.cjs.js.map} +1 -1
  94. package/dist/{ruby-44a4045d.cjs.js → ruby-82bc8c10.cjs.js} +2 -2
  95. package/dist/{ruby-44a4045d.cjs.js.map → ruby-82bc8c10.cjs.js.map} +1 -1
  96. package/dist/{ruby-ed20df8b.esm.js → ruby-b8bcac40.esm.js} +1 -1
  97. package/dist/{shaderlab-75efb6b5.cjs.js → shaderlab-8f7349ac.cjs.js} +2 -2
  98. package/dist/{shaderlab-75efb6b5.cjs.js.map → shaderlab-8f7349ac.cjs.js.map} +1 -1
  99. package/dist/{shellscript-95a6b265.esm.js → shellscript-9a12df8f.esm.js} +1 -1
  100. package/dist/{shellscript-ada948c5.cjs.js → shellscript-9c815bf4.cjs.js} +2 -2
  101. package/dist/shellscript-9c815bf4.cjs.js.map +1 -0
  102. package/dist/{shellsession-c69f0eea.esm.js → shellsession-a931a3f3.esm.js} +1 -1
  103. package/dist/{shellsession-c26f94d1.cjs.js → shellsession-c07da9ea.cjs.js} +2 -2
  104. package/dist/{shellsession-c26f94d1.cjs.js.map → shellsession-c07da9ea.cjs.js.map} +1 -1
  105. package/dist/{sparql-933afbfc.cjs.js → sparql-cd3386f5.cjs.js} +2 -2
  106. package/dist/{sparql-933afbfc.cjs.js.map → sparql-cd3386f5.cjs.js.map} +1 -1
  107. package/dist/src/nile-code-editor/nile-code-editor.d.ts +9 -9
  108. package/dist/src/nile-code-editor/nile-code-editor.js +49 -50
  109. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  110. package/dist/src/nile-icon/index.js +1 -1
  111. package/dist/src/nile-icon/index.js.map +1 -1
  112. package/dist/src/nile-menu/nile-menu.css.js +22 -0
  113. package/dist/src/nile-menu/nile-menu.css.js.map +1 -1
  114. package/dist/src/nile-menu/nile-menu.d.ts +1 -0
  115. package/dist/src/nile-menu/nile-menu.js +9 -3
  116. package/dist/src/nile-menu/nile-menu.js.map +1 -1
  117. package/dist/src/nile-select/nile-select.d.ts +1 -0
  118. package/dist/src/nile-select/nile-select.js +14 -0
  119. package/dist/src/nile-select/nile-select.js.map +1 -1
  120. package/dist/src/nile-stepper/nile-stepper.js +4 -4
  121. package/dist/src/nile-stepper/nile-stepper.js.map +1 -1
  122. package/dist/{svelte-03aa9546.esm.js → svelte-00ac1b62.esm.js} +1 -1
  123. package/dist/{svelte-4fa7ff17.cjs.js → svelte-eaee6dea.cjs.js} +2 -2
  124. package/dist/{svelte-4fa7ff17.cjs.js.map → svelte-eaee6dea.cjs.js.map} +1 -1
  125. package/dist/ts-tags-7b4b630f.esm.js +1 -0
  126. package/dist/ts-tags-bf26a4cd.cjs.js +2 -0
  127. package/dist/ts-tags-bf26a4cd.cjs.js.map +1 -0
  128. package/dist/tsconfig.tsbuildinfo +1 -1
  129. package/dist/{twig-78fca8e5.esm.js → twig-25cabcad.esm.js} +1 -1
  130. package/dist/{twig-585d978b.cjs.js → twig-ef3a2f8e.cjs.js} +2 -2
  131. package/dist/{twig-585d978b.cjs.js.map → twig-ef3a2f8e.cjs.js.map} +1 -1
  132. package/dist/{vitesse-black-30667039.esm.js → vitesse-black-36f4f5ae.esm.js} +1 -1
  133. package/dist/{vitesse-black-3dbe0082.cjs.js → vitesse-black-8f7b8bf9.cjs.js} +2 -2
  134. package/dist/vitesse-black-8f7b8bf9.cjs.js.map +1 -0
  135. package/dist/{vitesse-dark-222eaa70.cjs.js → vitesse-dark-877d0b03.cjs.js} +2 -2
  136. package/dist/vitesse-dark-877d0b03.cjs.js.map +1 -0
  137. package/dist/{vitesse-dark-2e5d272b.esm.js → vitesse-dark-b177c06b.esm.js} +1 -1
  138. package/dist/{vitesse-light-0f794f0d.esm.js → vitesse-light-1305bc40.esm.js} +1 -1
  139. package/dist/{vitesse-light-9d496793.cjs.js → vitesse-light-3f1d75bb.cjs.js} +2 -2
  140. package/dist/vitesse-light-3f1d75bb.cjs.js.map +1 -0
  141. package/dist/{vue-29da39c3.esm.js → vue-711d75a4.esm.js} +1 -1
  142. package/dist/{vue-0e328a24.cjs.js → vue-d4c63178.cjs.js} +2 -2
  143. package/dist/{vue-0e328a24.cjs.js.map → vue-d4c63178.cjs.js.map} +1 -1
  144. package/dist/{vue-html-fa1c51e6.cjs.js → vue-html-13711be2.cjs.js} +2 -2
  145. package/dist/{vue-html-fa1c51e6.cjs.js.map → vue-html-13711be2.cjs.js.map} +1 -1
  146. package/dist/{vue-html-c781b090.esm.js → vue-html-b805e078.esm.js} +1 -1
  147. package/dist/{wikitext-4b6b7007.esm.js → wikitext-724303c6.esm.js} +1 -1
  148. package/dist/{wikitext-6feef894.cjs.js → wikitext-d4ad7e43.cjs.js} +2 -2
  149. package/dist/{wikitext-6feef894.cjs.js.map → wikitext-d4ad7e43.cjs.js.map} +1 -1
  150. package/package.json +2 -2
  151. package/src/nile-code-editor/nile-code-editor.ts +71 -65
  152. package/src/nile-icon/index.ts +1 -1
  153. package/src/nile-menu/nile-menu.css.ts +22 -0
  154. package/src/nile-menu/nile-menu.ts +14 -3
  155. package/src/nile-select/nile-select.ts +13 -1
  156. package/src/nile-stepper/nile-stepper.ts +4 -4
  157. package/dist/julia-1cad9870.esm.js +0 -1
  158. package/dist/julia-b0cea839.cjs.js +0 -2
  159. package/dist/julia-b0cea839.cjs.js.map +0 -1
  160. package/dist/kotlin-6283300f.esm.js +0 -1
  161. package/dist/kotlin-a0fd9eaf.cjs.js +0 -2
  162. package/dist/kotlin-a0fd9eaf.cjs.js.map +0 -1
  163. package/dist/latex-90a1da91.cjs.js +0 -2
  164. package/dist/latex-90a1da91.cjs.js.map +0 -1
  165. package/dist/latex-9439b9a5.esm.js +0 -1
  166. package/dist/less-cab2de0f.cjs.js +0 -2
  167. package/dist/less-cab2de0f.cjs.js.map +0 -1
  168. package/dist/less-fa4eebf7.esm.js +0 -1
  169. package/dist/shellscript-ada948c5.cjs.js.map +0 -1
  170. package/dist/vitesse-black-3dbe0082.cjs.js.map +0 -1
  171. package/dist/vitesse-dark-222eaa70.cjs.js.map +0 -1
  172. package/dist/vitesse-light-9d496793.cjs.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nile-highlighter.cjs.js","sources":["../../../../node_modules/@shikijs/core/dist/textmate.mjs","../../../../node_modules/@shikijs/core/dist/index.mjs","../../../../node_modules/shiki/dist/bundle-full.mjs","../../../../node_modules/shiki/dist/langs.mjs","../../../../node_modules/shiki/dist/chunks/wasm-dynamic.mjs","../../../../node_modules/shiki/dist/themes.mjs","../../../../node_modules/@shikijs/core/dist/types.mjs","../../../src/nile-highlighter/nile-highlighter.ts"],"sourcesContent":["import { FontStyle } from './types.mjs';\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n({\n InDebugMode: (typeof process !== 'undefined' && !!process.env['VSCODE_TEXTMATE_DEBUG'])\n});\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nvar EncodedTokenAttributes;\n(function (EncodedTokenAttributes) {\n function toBinaryStr(encodedTokenAttributes) {\n return encodedTokenAttributes.toString(2).padStart(32, \"0\");\n }\n EncodedTokenAttributes.toBinaryStr = toBinaryStr;\n function print(encodedTokenAttributes) {\n const languageId = EncodedTokenAttributes.getLanguageId(encodedTokenAttributes);\n const tokenType = EncodedTokenAttributes.getTokenType(encodedTokenAttributes);\n const fontStyle = EncodedTokenAttributes.getFontStyle(encodedTokenAttributes);\n const foreground = EncodedTokenAttributes.getForeground(encodedTokenAttributes);\n const background = EncodedTokenAttributes.getBackground(encodedTokenAttributes);\n console.log({\n languageId: languageId,\n tokenType: tokenType,\n fontStyle: fontStyle,\n foreground: foreground,\n background: background,\n });\n }\n EncodedTokenAttributes.print = print;\n function getLanguageId(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 255 /* EncodedTokenDataConsts.LANGUAGEID_MASK */) >>>\n 0 /* EncodedTokenDataConsts.LANGUAGEID_OFFSET */);\n }\n EncodedTokenAttributes.getLanguageId = getLanguageId;\n function getTokenType(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 768 /* EncodedTokenDataConsts.TOKEN_TYPE_MASK */) >>>\n 8 /* EncodedTokenDataConsts.TOKEN_TYPE_OFFSET */);\n }\n EncodedTokenAttributes.getTokenType = getTokenType;\n function containsBalancedBrackets(encodedTokenAttributes) {\n return (encodedTokenAttributes & 1024 /* EncodedTokenDataConsts.BALANCED_BRACKETS_MASK */) !== 0;\n }\n EncodedTokenAttributes.containsBalancedBrackets = containsBalancedBrackets;\n function getFontStyle(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 30720 /* EncodedTokenDataConsts.FONT_STYLE_MASK */) >>>\n 11 /* EncodedTokenDataConsts.FONT_STYLE_OFFSET */);\n }\n EncodedTokenAttributes.getFontStyle = getFontStyle;\n function getForeground(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 16744448 /* EncodedTokenDataConsts.FOREGROUND_MASK */) >>>\n 15 /* EncodedTokenDataConsts.FOREGROUND_OFFSET */);\n }\n EncodedTokenAttributes.getForeground = getForeground;\n function getBackground(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 4278190080 /* EncodedTokenDataConsts.BACKGROUND_MASK */) >>>\n 24 /* EncodedTokenDataConsts.BACKGROUND_OFFSET */);\n }\n EncodedTokenAttributes.getBackground = getBackground;\n /**\n * Updates the fields in `metadata`.\n * A value of `0`, `NotSet` or `null` indicates that the corresponding field should be left as is.\n */\n function set(encodedTokenAttributes, languageId, tokenType, containsBalancedBrackets, fontStyle, foreground, background) {\n let _languageId = EncodedTokenAttributes.getLanguageId(encodedTokenAttributes);\n let _tokenType = EncodedTokenAttributes.getTokenType(encodedTokenAttributes);\n let _containsBalancedBracketsBit = EncodedTokenAttributes.containsBalancedBrackets(encodedTokenAttributes) ? 1 : 0;\n let _fontStyle = EncodedTokenAttributes.getFontStyle(encodedTokenAttributes);\n let _foreground = EncodedTokenAttributes.getForeground(encodedTokenAttributes);\n let _background = EncodedTokenAttributes.getBackground(encodedTokenAttributes);\n if (languageId !== 0) {\n _languageId = languageId;\n }\n if (tokenType !== 8 /* OptionalStandardTokenType.NotSet */) {\n _tokenType = fromOptionalTokenType(tokenType);\n }\n if (containsBalancedBrackets !== null) {\n _containsBalancedBracketsBit = containsBalancedBrackets ? 1 : 0;\n }\n if (fontStyle !== -1 /* FontStyle.NotSet */) {\n _fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n _foreground = foreground;\n }\n if (background !== 0) {\n _background = background;\n }\n return (((_languageId << 0 /* EncodedTokenDataConsts.LANGUAGEID_OFFSET */) |\n (_tokenType << 8 /* EncodedTokenDataConsts.TOKEN_TYPE_OFFSET */) |\n (_containsBalancedBracketsBit <<\n 10 /* EncodedTokenDataConsts.BALANCED_BRACKETS_OFFSET */) |\n (_fontStyle << 11 /* EncodedTokenDataConsts.FONT_STYLE_OFFSET */) |\n (_foreground << 15 /* EncodedTokenDataConsts.FOREGROUND_OFFSET */) |\n (_background << 24 /* EncodedTokenDataConsts.BACKGROUND_OFFSET */)) >>>\n 0);\n }\n EncodedTokenAttributes.set = set;\n})(EncodedTokenAttributes || (EncodedTokenAttributes = {}));\nfunction toOptionalTokenType(standardType) {\n return standardType;\n}\nfunction fromOptionalTokenType(standardType) {\n return standardType;\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction createMatchers(selector, matchesName) {\n const results = [];\n const tokenizer = newTokenizer(selector);\n let token = tokenizer.next();\n while (token !== null) {\n let priority = 0;\n if (token.length === 2 && token.charAt(1) === ':') {\n switch (token.charAt(0)) {\n case 'R':\n priority = 1;\n break;\n case 'L':\n priority = -1;\n break;\n default:\n console.log(`Unknown priority ${token} in scope selector`);\n }\n token = tokenizer.next();\n }\n let matcher = parseConjunction();\n results.push({ matcher, priority });\n if (token !== ',') {\n break;\n }\n token = tokenizer.next();\n }\n return results;\n function parseOperand() {\n if (token === '-') {\n token = tokenizer.next();\n const expressionToNegate = parseOperand();\n return matcherInput => !!expressionToNegate && !expressionToNegate(matcherInput);\n }\n if (token === '(') {\n token = tokenizer.next();\n const expressionInParents = parseInnerExpression();\n if (token === ')') {\n token = tokenizer.next();\n }\n return expressionInParents;\n }\n if (isIdentifier(token)) {\n const identifiers = [];\n do {\n identifiers.push(token);\n token = tokenizer.next();\n } while (isIdentifier(token));\n return matcherInput => matchesName(identifiers, matcherInput);\n }\n return null;\n }\n function parseConjunction() {\n const matchers = [];\n let matcher = parseOperand();\n while (matcher) {\n matchers.push(matcher);\n matcher = parseOperand();\n }\n return matcherInput => matchers.every(matcher => matcher(matcherInput)); // and\n }\n function parseInnerExpression() {\n const matchers = [];\n let matcher = parseConjunction();\n while (matcher) {\n matchers.push(matcher);\n if (token === '|' || token === ',') {\n do {\n token = tokenizer.next();\n } while (token === '|' || token === ','); // ignore subsequent commas\n }\n else {\n break;\n }\n matcher = parseConjunction();\n }\n return matcherInput => matchers.some(matcher => matcher(matcherInput)); // or\n }\n}\nfunction isIdentifier(token) {\n return !!token && !!token.match(/[\\w\\.:]+/);\n}\nfunction newTokenizer(input) {\n let regex = /([LR]:|[\\w\\.:][\\w\\.:\\-]*|[\\,\\|\\-\\(\\)])/g;\n let match = regex.exec(input);\n return {\n next: () => {\n if (!match) {\n return null;\n }\n const res = match[0];\n match = regex.exec(input);\n return res;\n }\n };\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction disposeOnigString(str) {\n if (typeof str.dispose === 'function') {\n str.dispose();\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction clone(something) {\n return doClone(something);\n}\nfunction doClone(something) {\n if (Array.isArray(something)) {\n return cloneArray(something);\n }\n if (typeof something === 'object') {\n return cloneObj(something);\n }\n return something;\n}\nfunction cloneArray(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = doClone(arr[i]);\n }\n return r;\n}\nfunction cloneObj(obj) {\n let r = {};\n for (let key in obj) {\n r[key] = doClone(obj[key]);\n }\n return r;\n}\nfunction mergeObjects(target, ...sources) {\n sources.forEach(source => {\n for (let key in source) {\n target[key] = source[key];\n }\n });\n return target;\n}\nfunction basename(path) {\n const idx = ~path.lastIndexOf('/') || ~path.lastIndexOf('\\\\');\n if (idx === 0) {\n return path;\n }\n else if (~idx === path.length - 1) {\n return basename(path.substring(0, path.length - 1));\n }\n else {\n return path.substr(~idx + 1);\n }\n}\nlet CAPTURING_REGEX_SOURCE = /\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/g;\nclass RegexSource {\n static hasCaptures(regexSource) {\n if (regexSource === null) {\n return false;\n }\n CAPTURING_REGEX_SOURCE.lastIndex = 0;\n return CAPTURING_REGEX_SOURCE.test(regexSource);\n }\n static replaceCaptures(regexSource, captureSource, captureIndices) {\n return regexSource.replace(CAPTURING_REGEX_SOURCE, (match, index, commandIndex, command) => {\n let capture = captureIndices[parseInt(index || commandIndex, 10)];\n if (capture) {\n let result = captureSource.substring(capture.start, capture.end);\n // Remove leading dots that would make the selector invalid\n while (result[0] === '.') {\n result = result.substring(1);\n }\n switch (command) {\n case 'downcase':\n return result.toLowerCase();\n case 'upcase':\n return result.toUpperCase();\n default:\n return result;\n }\n }\n else {\n return match;\n }\n });\n }\n}\nfunction strcmp(a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n}\nfunction strArrCmp(a, b) {\n if (a === null && b === null) {\n return 0;\n }\n if (!a) {\n return -1;\n }\n if (!b) {\n return 1;\n }\n let len1 = a.length;\n let len2 = b.length;\n if (len1 === len2) {\n for (let i = 0; i < len1; i++) {\n let res = strcmp(a[i], b[i]);\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n }\n return len1 - len2;\n}\nfunction isValidHexColor(hex) {\n if (/^#[0-9a-f]{6}$/i.test(hex)) {\n // #rrggbb\n return true;\n }\n if (/^#[0-9a-f]{8}$/i.test(hex)) {\n // #rrggbbaa\n return true;\n }\n if (/^#[0-9a-f]{3}$/i.test(hex)) {\n // #rgb\n return true;\n }\n if (/^#[0-9a-f]{4}$/i.test(hex)) {\n // #rgba\n return true;\n }\n return false;\n}\n/**\n * Escapes regular expression characters in a given string\n */\nfunction escapeRegExpCharacters(value) {\n return value.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, '\\\\$&');\n}\nclass CachedFn {\n fn;\n cache = new Map();\n constructor(fn) {\n this.fn = fn;\n }\n get(key) {\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n const value = this.fn(key);\n this.cache.set(key, value);\n return value;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n/**\n * References the top level rule of a grammar with the given scope name.\n*/\nclass TopLevelRuleReference {\n scopeName;\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n toKey() {\n return this.scopeName;\n }\n}\n/**\n * References a rule of a grammar in the top level repository section with the given name.\n*/\nclass TopLevelRepositoryRuleReference {\n scopeName;\n ruleName;\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n toKey() {\n return `${this.scopeName}#${this.ruleName}`;\n }\n}\nclass ExternalReferenceCollector {\n _references = [];\n _seenReferenceKeys = new Set();\n get references() {\n return this._references;\n }\n visitedRule = new Set();\n add(reference) {\n const key = reference.toKey();\n if (this._seenReferenceKeys.has(key)) {\n return;\n }\n this._seenReferenceKeys.add(key);\n this._references.push(reference);\n }\n}\nclass ScopeDependencyProcessor {\n repo;\n initialScopeName;\n seenFullScopeRequests = new Set();\n seenPartialScopeRequests = new Set();\n Q;\n constructor(repo, initialScopeName) {\n this.repo = repo;\n this.initialScopeName = initialScopeName;\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\n processQueue() {\n const q = this.Q;\n this.Q = [];\n const deps = new ExternalReferenceCollector();\n for (const dep of q) {\n collectReferencesOfReference(dep, this.initialScopeName, this.repo, deps);\n }\n for (const dep of deps.references) {\n if (dep instanceof TopLevelRuleReference) {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n // already processed\n continue;\n }\n this.seenFullScopeRequests.add(dep.scopeName);\n this.Q.push(dep);\n }\n else {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n // already processed in full\n continue;\n }\n if (this.seenPartialScopeRequests.has(dep.toKey())) {\n // already processed\n continue;\n }\n this.seenPartialScopeRequests.add(dep.toKey());\n this.Q.push(dep);\n }\n }\n }\n}\nfunction collectReferencesOfReference(reference, baseGrammarScopeName, repo, result) {\n const selfGrammar = repo.lookup(reference.scopeName);\n if (!selfGrammar) {\n if (reference.scopeName === baseGrammarScopeName) {\n throw new Error(`No grammar provided for <${baseGrammarScopeName}>`);\n }\n return;\n }\n const baseGrammar = repo.lookup(baseGrammarScopeName);\n if (reference instanceof TopLevelRuleReference) {\n collectExternalReferencesInTopLevelRule({ baseGrammar, selfGrammar }, result);\n }\n else {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { baseGrammar, selfGrammar, repository: selfGrammar.repository }, result);\n }\n const injections = repo.injections(reference.scopeName);\n if (injections) {\n for (const injection of injections) {\n result.add(new TopLevelRuleReference(injection));\n }\n }\n}\nfunction collectExternalReferencesInTopLevelRepositoryRule(ruleName, context, result) {\n if (context.repository && context.repository[ruleName]) {\n const rule = context.repository[ruleName];\n collectExternalReferencesInRules([rule], context, result);\n }\n}\nfunction collectExternalReferencesInTopLevelRule(context, result) {\n if (context.selfGrammar.patterns && Array.isArray(context.selfGrammar.patterns)) {\n collectExternalReferencesInRules(context.selfGrammar.patterns, { ...context, repository: context.selfGrammar.repository }, result);\n }\n if (context.selfGrammar.injections) {\n collectExternalReferencesInRules(Object.values(context.selfGrammar.injections), { ...context, repository: context.selfGrammar.repository }, result);\n }\n}\nfunction collectExternalReferencesInRules(rules, context, result) {\n for (const rule of rules) {\n if (result.visitedRule.has(rule)) {\n continue;\n }\n result.visitedRule.add(rule);\n const patternRepository = rule.repository ? mergeObjects({}, context.repository, rule.repository) : context.repository;\n if (Array.isArray(rule.patterns)) {\n collectExternalReferencesInRules(rule.patterns, { ...context, repository: patternRepository }, result);\n }\n const include = rule.include;\n if (!include) {\n continue;\n }\n const reference = parseInclude(include);\n switch (reference.kind) {\n case 0 /* IncludeReferenceKind.Base */:\n collectExternalReferencesInTopLevelRule({ ...context, selfGrammar: context.baseGrammar }, result);\n break;\n case 1 /* IncludeReferenceKind.Self */:\n collectExternalReferencesInTopLevelRule(context, result);\n break;\n case 2 /* IncludeReferenceKind.RelativeReference */:\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { ...context, repository: patternRepository }, result);\n break;\n case 3 /* IncludeReferenceKind.TopLevelReference */:\n case 4 /* IncludeReferenceKind.TopLevelRepositoryReference */:\n const selfGrammar = reference.scopeName === context.selfGrammar.scopeName\n ? context.selfGrammar\n : reference.scopeName === context.baseGrammar.scopeName\n ? context.baseGrammar\n : undefined;\n if (selfGrammar) {\n const newContext = { baseGrammar: context.baseGrammar, selfGrammar, repository: patternRepository };\n if (reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */) {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, newContext, result);\n }\n else {\n collectExternalReferencesInTopLevelRule(newContext, result);\n }\n }\n else {\n if (reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */) {\n result.add(new TopLevelRepositoryRuleReference(reference.scopeName, reference.ruleName));\n }\n else {\n result.add(new TopLevelRuleReference(reference.scopeName));\n }\n }\n break;\n }\n }\n}\nclass BaseReference {\n kind = 0 /* IncludeReferenceKind.Base */;\n}\nclass SelfReference {\n kind = 1 /* IncludeReferenceKind.Self */;\n}\nclass RelativeReference {\n ruleName;\n kind = 2 /* IncludeReferenceKind.RelativeReference */;\n constructor(ruleName) {\n this.ruleName = ruleName;\n }\n}\nclass TopLevelReference {\n scopeName;\n kind = 3 /* IncludeReferenceKind.TopLevelReference */;\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n}\nclass TopLevelRepositoryReference {\n scopeName;\n ruleName;\n kind = 4 /* IncludeReferenceKind.TopLevelRepositoryReference */;\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n}\nfunction parseInclude(include) {\n if (include === '$base') {\n return new BaseReference();\n }\n else if (include === '$self') {\n return new SelfReference();\n }\n const indexOfSharp = include.indexOf(\"#\");\n if (indexOfSharp === -1) {\n return new TopLevelReference(include);\n }\n else if (indexOfSharp === 0) {\n return new RelativeReference(include.substring(1));\n }\n else {\n const scopeName = include.substring(0, indexOfSharp);\n const ruleName = include.substring(indexOfSharp + 1);\n return new TopLevelRepositoryReference(scopeName, ruleName);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nconst HAS_BACK_REFERENCES = /\\\\(\\d+)/;\nconst BACK_REFERENCING_END = /\\\\(\\d+)/g;\n// This is a special constant to indicate that the end regexp matched.\nconst endRuleId = -1;\n// This is a special constant to indicate that the while regexp matched.\nconst whileRuleId = -2;\nfunction ruleIdFromNumber(id) {\n return id;\n}\nfunction ruleIdToNumber(id) {\n return id;\n}\nclass Rule {\n $location;\n id;\n _nameIsCapturing;\n _name;\n _contentNameIsCapturing;\n _contentName;\n constructor($location, id, name, contentName) {\n this.$location = $location;\n this.id = id;\n this._name = name || null;\n this._nameIsCapturing = RegexSource.hasCaptures(this._name);\n this._contentName = contentName || null;\n this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);\n }\n get debugName() {\n const location = this.$location ? `${basename(this.$location.filename)}:${this.$location.line}` : 'unknown';\n return `${this.constructor.name}#${this.id} @ ${location}`;\n }\n getName(lineText, captureIndices) {\n if (!this._nameIsCapturing || this._name === null || lineText === null || captureIndices === null) {\n return this._name;\n }\n return RegexSource.replaceCaptures(this._name, lineText, captureIndices);\n }\n getContentName(lineText, captureIndices) {\n if (!this._contentNameIsCapturing || this._contentName === null) {\n return this._contentName;\n }\n return RegexSource.replaceCaptures(this._contentName, lineText, captureIndices);\n }\n}\nclass CaptureRule extends Rule {\n retokenizeCapturedWithRuleId;\n constructor($location, id, name, contentName, retokenizeCapturedWithRuleId) {\n super($location, id, name, contentName);\n this.retokenizeCapturedWithRuleId = retokenizeCapturedWithRuleId;\n }\n dispose() {\n // nothing to dispose\n }\n collectPatterns(grammar, out) {\n throw new Error('Not supported!');\n }\n compile(grammar, endRegexSource) {\n throw new Error('Not supported!');\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n throw new Error('Not supported!');\n }\n}\nclass MatchRule extends Rule {\n _match;\n captures;\n _cachedCompiledPatterns;\n constructor($location, id, name, match, captures) {\n super($location, id, name, null);\n this._match = new RegExpSource(match, this.id);\n this.captures = captures;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugMatchRegExp() {\n return `${this._match.source}`;\n }\n collectPatterns(grammar, out) {\n out.push(this._match);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass IncludeOnlyRule extends Rule {\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, patterns) {\n super($location, id, name, contentName);\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n collectPatterns(grammar, out) {\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, out);\n }\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass BeginEndRule extends Rule {\n _begin;\n beginCaptures;\n _end;\n endHasBackReferences;\n endCaptures;\n applyEndPatternLast;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, end, endCaptures, applyEndPatternLast, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this._end = new RegExpSource(end ? end : '\\uFFFF', -1);\n this.endHasBackReferences = this._end.hasBackReferences;\n this.endCaptures = endCaptures;\n this.applyEndPatternLast = applyEndPatternLast || false;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugEndRegExp() {\n return `${this._end.source}`;\n }\n getEndWithResolvedBackReferences(lineText, captureIndices) {\n return this._end.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.push(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n else {\n this._cachedCompiledPatterns.unshift(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n }\n if (this._end.hasBackReferences) {\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length() - 1, endRegexSource);\n }\n else {\n this._cachedCompiledPatterns.setSource(0, endRegexSource);\n }\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass BeginWhileRule extends Rule {\n _begin;\n beginCaptures;\n whileCaptures;\n _while;\n whileHasBackReferences;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n _cachedCompiledWhilePatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, _while, whileCaptures, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this.whileCaptures = whileCaptures;\n this._while = new RegExpSource(_while, whileRuleId);\n this.whileHasBackReferences = this._while.hasBackReferences;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n this._cachedCompiledWhilePatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n if (this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns.dispose();\n this._cachedCompiledWhilePatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugWhileRegExp() {\n return `${this._while.source}`;\n }\n getWhileWithResolvedBackReferences(lineText, captureIndices) {\n return this._while.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n }\n return this._cachedCompiledPatterns;\n }\n compileWhile(grammar, endRegexSource) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compile(grammar);\n }\n compileWhileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledWhilePatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns = new RegExpSourceList();\n this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences ? this._while.clone() : this._while);\n }\n if (this._while.hasBackReferences) {\n this._cachedCompiledWhilePatterns.setSource(0, endRegexSource ? endRegexSource : '\\uFFFF');\n }\n return this._cachedCompiledWhilePatterns;\n }\n}\nclass RuleFactory {\n static createCaptureRule(helper, $location, name, contentName, retokenizeCapturedWithRuleId) {\n return helper.registerRule((id) => {\n return new CaptureRule($location, id, name, contentName, retokenizeCapturedWithRuleId);\n });\n }\n static getCompiledRuleId(desc, helper, repository) {\n if (!desc.id) {\n helper.registerRule((id) => {\n desc.id = id;\n if (desc.match) {\n return new MatchRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.match, RuleFactory._compileCaptures(desc.captures, helper, repository));\n }\n if (typeof desc.begin === 'undefined') {\n if (desc.repository) {\n repository = mergeObjects({}, repository, desc.repository);\n }\n let patterns = desc.patterns;\n if (typeof patterns === 'undefined' && desc.include) {\n patterns = [{ include: desc.include }];\n }\n return new IncludeOnlyRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, RuleFactory._compilePatterns(patterns, helper, repository));\n }\n if (desc.while) {\n return new BeginWhileRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.while, RuleFactory._compileCaptures(desc.whileCaptures || desc.captures, helper, repository), RuleFactory._compilePatterns(desc.patterns, helper, repository));\n }\n return new BeginEndRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.end, RuleFactory._compileCaptures(desc.endCaptures || desc.captures, helper, repository), desc.applyEndPatternLast, RuleFactory._compilePatterns(desc.patterns, helper, repository));\n });\n }\n return desc.id;\n }\n static _compileCaptures(captures, helper, repository) {\n let r = [];\n if (captures) {\n // Find the maximum capture id\n let maximumCaptureId = 0;\n for (const captureId in captures) {\n if (captureId === '$vscodeTextmateLocation') {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n if (numericCaptureId > maximumCaptureId) {\n maximumCaptureId = numericCaptureId;\n }\n }\n // Initialize result\n for (let i = 0; i <= maximumCaptureId; i++) {\n r[i] = null;\n }\n // Fill out result\n for (const captureId in captures) {\n if (captureId === '$vscodeTextmateLocation') {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n let retokenizeCapturedWithRuleId = 0;\n if (captures[captureId].patterns) {\n retokenizeCapturedWithRuleId = RuleFactory.getCompiledRuleId(captures[captureId], helper, repository);\n }\n r[numericCaptureId] = RuleFactory.createCaptureRule(helper, captures[captureId].$vscodeTextmateLocation, captures[captureId].name, captures[captureId].contentName, retokenizeCapturedWithRuleId);\n }\n }\n return r;\n }\n static _compilePatterns(patterns, helper, repository) {\n let r = [];\n if (patterns) {\n for (let i = 0, len = patterns.length; i < len; i++) {\n const pattern = patterns[i];\n let ruleId = -1;\n if (pattern.include) {\n const reference = parseInclude(pattern.include);\n switch (reference.kind) {\n case 0 /* IncludeReferenceKind.Base */:\n case 1 /* IncludeReferenceKind.Self */:\n ruleId = RuleFactory.getCompiledRuleId(repository[pattern.include], helper, repository);\n break;\n case 2 /* IncludeReferenceKind.RelativeReference */:\n // Local include found in `repository`\n let localIncludedRule = repository[reference.ruleName];\n if (localIncludedRule) {\n ruleId = RuleFactory.getCompiledRuleId(localIncludedRule, helper, repository);\n }\n break;\n case 3 /* IncludeReferenceKind.TopLevelReference */:\n case 4 /* IncludeReferenceKind.TopLevelRepositoryReference */:\n const externalGrammarName = reference.scopeName;\n const externalGrammarInclude = reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */\n ? reference.ruleName\n : null;\n // External include\n const externalGrammar = helper.getExternalGrammar(externalGrammarName, repository);\n if (externalGrammar) {\n if (externalGrammarInclude) {\n let externalIncludedRule = externalGrammar.repository[externalGrammarInclude];\n if (externalIncludedRule) {\n ruleId = RuleFactory.getCompiledRuleId(externalIncludedRule, helper, externalGrammar.repository);\n }\n }\n else {\n ruleId = RuleFactory.getCompiledRuleId(externalGrammar.repository.$self, helper, externalGrammar.repository);\n }\n }\n break;\n }\n }\n else {\n ruleId = RuleFactory.getCompiledRuleId(pattern, helper, repository);\n }\n if (ruleId !== -1) {\n const rule = helper.getRule(ruleId);\n let skipRule = false;\n if (rule instanceof IncludeOnlyRule || rule instanceof BeginEndRule || rule instanceof BeginWhileRule) {\n if (rule.hasMissingPatterns && rule.patterns.length === 0) {\n skipRule = true;\n }\n }\n if (skipRule) {\n // console.log('REMOVING RULE ENTIRELY DUE TO EMPTY PATTERNS THAT ARE MISSING');\n continue;\n }\n r.push(ruleId);\n }\n }\n }\n return {\n patterns: r,\n hasMissingPatterns: ((patterns ? patterns.length : 0) !== r.length)\n };\n }\n}\nclass RegExpSource {\n source;\n ruleId;\n hasAnchor;\n hasBackReferences;\n _anchorCache;\n constructor(regExpSource, ruleId) {\n if (regExpSource) {\n const len = regExpSource.length;\n let lastPushedPos = 0;\n let output = [];\n let hasAnchor = false;\n for (let pos = 0; pos < len; pos++) {\n const ch = regExpSource.charAt(pos);\n if (ch === '\\\\') {\n if (pos + 1 < len) {\n const nextCh = regExpSource.charAt(pos + 1);\n if (nextCh === 'z') {\n output.push(regExpSource.substring(lastPushedPos, pos));\n output.push('$(?!\\\\n)(?<!\\\\n)');\n lastPushedPos = pos + 2;\n }\n else if (nextCh === 'A' || nextCh === 'G') {\n hasAnchor = true;\n }\n pos++;\n }\n }\n }\n this.hasAnchor = hasAnchor;\n if (lastPushedPos === 0) {\n // No \\z hit\n this.source = regExpSource;\n }\n else {\n output.push(regExpSource.substring(lastPushedPos, len));\n this.source = output.join('');\n }\n }\n else {\n this.hasAnchor = false;\n this.source = regExpSource;\n }\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n else {\n this._anchorCache = null;\n }\n this.ruleId = ruleId;\n this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);\n // console.log('input: ' + regExpSource + ' => ' + this.source + ', ' + this.hasAnchor);\n }\n clone() {\n return new RegExpSource(this.source, this.ruleId);\n }\n setSource(newSource) {\n if (this.source === newSource) {\n return;\n }\n this.source = newSource;\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n }\n resolveBackReferences(lineText, captureIndices) {\n let capturedValues = captureIndices.map((capture) => {\n return lineText.substring(capture.start, capture.end);\n });\n BACK_REFERENCING_END.lastIndex = 0;\n return this.source.replace(BACK_REFERENCING_END, (match, g1) => {\n return escapeRegExpCharacters(capturedValues[parseInt(g1, 10)] || '');\n });\n }\n _buildAnchorCache() {\n let A0_G0_result = [];\n let A0_G1_result = [];\n let A1_G0_result = [];\n let A1_G1_result = [];\n let pos, len, ch, nextCh;\n for (pos = 0, len = this.source.length; pos < len; pos++) {\n ch = this.source.charAt(pos);\n A0_G0_result[pos] = ch;\n A0_G1_result[pos] = ch;\n A1_G0_result[pos] = ch;\n A1_G1_result[pos] = ch;\n if (ch === '\\\\') {\n if (pos + 1 < len) {\n nextCh = this.source.charAt(pos + 1);\n if (nextCh === 'A') {\n A0_G0_result[pos + 1] = '\\uFFFF';\n A0_G1_result[pos + 1] = '\\uFFFF';\n A1_G0_result[pos + 1] = 'A';\n A1_G1_result[pos + 1] = 'A';\n }\n else if (nextCh === 'G') {\n A0_G0_result[pos + 1] = '\\uFFFF';\n A0_G1_result[pos + 1] = 'G';\n A1_G0_result[pos + 1] = '\\uFFFF';\n A1_G1_result[pos + 1] = 'G';\n }\n else {\n A0_G0_result[pos + 1] = nextCh;\n A0_G1_result[pos + 1] = nextCh;\n A1_G0_result[pos + 1] = nextCh;\n A1_G1_result[pos + 1] = nextCh;\n }\n pos++;\n }\n }\n }\n return {\n A0_G0: A0_G0_result.join(''),\n A0_G1: A0_G1_result.join(''),\n A1_G0: A1_G0_result.join(''),\n A1_G1: A1_G1_result.join('')\n };\n }\n resolveAnchors(allowA, allowG) {\n if (!this.hasAnchor || !this._anchorCache) {\n return this.source;\n }\n if (allowA) {\n if (allowG) {\n return this._anchorCache.A1_G1;\n }\n else {\n return this._anchorCache.A1_G0;\n }\n }\n else {\n if (allowG) {\n return this._anchorCache.A0_G1;\n }\n else {\n return this._anchorCache.A0_G0;\n }\n }\n }\n}\nclass RegExpSourceList {\n _items;\n _hasAnchors;\n _cached;\n _anchorCache;\n constructor() {\n this._items = [];\n this._hasAnchors = false;\n this._cached = null;\n this._anchorCache = {\n A0_G0: null,\n A0_G1: null,\n A1_G0: null,\n A1_G1: null\n };\n }\n dispose() {\n this._disposeCaches();\n }\n _disposeCaches() {\n if (this._cached) {\n this._cached.dispose();\n this._cached = null;\n }\n if (this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0.dispose();\n this._anchorCache.A0_G0 = null;\n }\n if (this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1.dispose();\n this._anchorCache.A0_G1 = null;\n }\n if (this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0.dispose();\n this._anchorCache.A1_G0 = null;\n }\n if (this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1.dispose();\n this._anchorCache.A1_G1 = null;\n }\n }\n push(item) {\n this._items.push(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n unshift(item) {\n this._items.unshift(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n length() {\n return this._items.length;\n }\n setSource(index, newSource) {\n if (this._items[index].source !== newSource) {\n // bust the cache\n this._disposeCaches();\n this._items[index].setSource(newSource);\n }\n }\n compile(onigLib) {\n if (!this._cached) {\n let regExps = this._items.map(e => e.source);\n this._cached = new CompiledRule(onigLib, regExps, this._items.map(e => e.ruleId));\n }\n return this._cached;\n }\n compileAG(onigLib, allowA, allowG) {\n if (!this._hasAnchors) {\n return this.compile(onigLib);\n }\n else {\n if (allowA) {\n if (allowG) {\n if (!this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G1;\n }\n else {\n if (!this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G0;\n }\n }\n else {\n if (allowG) {\n if (!this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G1;\n }\n else {\n if (!this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G0;\n }\n }\n }\n }\n _resolveAnchors(onigLib, allowA, allowG) {\n let regExps = this._items.map(e => e.resolveAnchors(allowA, allowG));\n return new CompiledRule(onigLib, regExps, this._items.map(e => e.ruleId));\n }\n}\nclass CompiledRule {\n regExps;\n rules;\n scanner;\n constructor(onigLib, regExps, rules) {\n this.regExps = regExps;\n this.rules = rules;\n this.scanner = onigLib.createOnigScanner(regExps);\n }\n dispose() {\n if (typeof this.scanner.dispose === \"function\") {\n this.scanner.dispose();\n }\n }\n toString() {\n const r = [];\n for (let i = 0, len = this.rules.length; i < len; i++) {\n r.push(\" - \" + this.rules[i] + \": \" + this.regExps[i]);\n }\n return r.join(\"\\n\");\n }\n findNextMatchSync(string, startPosition, options) {\n const result = this.scanner.findNextMatchSync(string, startPosition, options);\n if (!result) {\n return null;\n }\n return {\n ruleId: this.rules[result.index],\n captureIndices: result.captureIndices,\n };\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass Theme {\n _colorMap;\n _defaults;\n _root;\n static createFromRawTheme(source, colorMap) {\n return this.createFromParsedTheme(parseTheme(source), colorMap);\n }\n static createFromParsedTheme(source, colorMap) {\n return resolveParsedThemeRules(source, colorMap);\n }\n _cachedMatchRoot = new CachedFn((scopeName) => this._root.match(scopeName));\n constructor(_colorMap, _defaults, _root) {\n this._colorMap = _colorMap;\n this._defaults = _defaults;\n this._root = _root;\n }\n getColorMap() {\n return this._colorMap.getColorMap();\n }\n getDefaults() {\n return this._defaults;\n }\n match(scopePath) {\n if (scopePath === null) {\n return this._defaults;\n }\n const scopeName = scopePath.scopeName;\n const matchingTrieElements = this._cachedMatchRoot.get(scopeName);\n const effectiveRule = matchingTrieElements.find((v) => _scopePathMatchesParentScopes(scopePath.parent, v.parentScopes));\n if (!effectiveRule) {\n return null;\n }\n return new StyleAttributes(effectiveRule.fontStyle, effectiveRule.foreground, effectiveRule.background);\n }\n}\nclass ScopeStack {\n parent;\n scopeName;\n static push(path, scopeNames) {\n for (const name of scopeNames) {\n path = new ScopeStack(path, name);\n }\n return path;\n }\n static from(...segments) {\n let result = null;\n for (let i = 0; i < segments.length; i++) {\n result = new ScopeStack(result, segments[i]);\n }\n return result;\n }\n constructor(parent, scopeName) {\n this.parent = parent;\n this.scopeName = scopeName;\n }\n push(scopeName) {\n return new ScopeStack(this, scopeName);\n }\n getSegments() {\n let item = this;\n const result = [];\n while (item) {\n result.push(item.scopeName);\n item = item.parent;\n }\n result.reverse();\n return result;\n }\n toString() {\n return this.getSegments().join(' ');\n }\n extends(other) {\n if (this === other) {\n return true;\n }\n if (this.parent === null) {\n return false;\n }\n return this.parent.extends(other);\n }\n getExtensionIfDefined(base) {\n const result = [];\n let item = this;\n while (item && item !== base) {\n result.push(item.scopeName);\n item = item.parent;\n }\n return item === base ? result.reverse() : undefined;\n }\n}\nfunction _scopePathMatchesParentScopes(scopePath, parentScopes) {\n if (parentScopes === null) {\n return true;\n }\n let index = 0;\n let scopePattern = parentScopes[index];\n while (scopePath) {\n if (_matchesScope(scopePath.scopeName, scopePattern)) {\n index++;\n if (index === parentScopes.length) {\n return true;\n }\n scopePattern = parentScopes[index];\n }\n scopePath = scopePath.parent;\n }\n return false;\n}\nfunction _matchesScope(scopeName, scopePattern) {\n return scopePattern === scopeName || (scopeName.startsWith(scopePattern) && scopeName[scopePattern.length] === '.');\n}\nclass StyleAttributes {\n fontStyle;\n foregroundId;\n backgroundId;\n constructor(fontStyle, foregroundId, backgroundId) {\n this.fontStyle = fontStyle;\n this.foregroundId = foregroundId;\n this.backgroundId = backgroundId;\n }\n}\n/**\n * Parse a raw theme into rules.\n */\nfunction parseTheme(source) {\n if (!source) {\n return [];\n }\n if (!source.settings || !Array.isArray(source.settings)) {\n return [];\n }\n let settings = source.settings;\n let result = [], resultLen = 0;\n for (let i = 0, len = settings.length; i < len; i++) {\n let entry = settings[i];\n if (!entry.settings) {\n continue;\n }\n let scopes;\n if (typeof entry.scope === 'string') {\n let _scope = entry.scope;\n // remove leading commas\n _scope = _scope.replace(/^[,]+/, '');\n // remove trailing commans\n _scope = _scope.replace(/[,]+$/, '');\n scopes = _scope.split(',');\n }\n else if (Array.isArray(entry.scope)) {\n scopes = entry.scope;\n }\n else {\n scopes = [''];\n }\n let fontStyle = -1 /* FontStyle.NotSet */;\n if (typeof entry.settings.fontStyle === 'string') {\n fontStyle = 0 /* FontStyle.None */;\n let segments = entry.settings.fontStyle.split(' ');\n for (let j = 0, lenJ = segments.length; j < lenJ; j++) {\n let segment = segments[j];\n switch (segment) {\n case 'italic':\n fontStyle = fontStyle | 1 /* FontStyle.Italic */;\n break;\n case 'bold':\n fontStyle = fontStyle | 2 /* FontStyle.Bold */;\n break;\n case 'underline':\n fontStyle = fontStyle | 4 /* FontStyle.Underline */;\n break;\n case 'strikethrough':\n fontStyle = fontStyle | 8 /* FontStyle.Strikethrough */;\n break;\n }\n }\n }\n let foreground = null;\n if (typeof entry.settings.foreground === 'string' && isValidHexColor(entry.settings.foreground)) {\n foreground = entry.settings.foreground;\n }\n let background = null;\n if (typeof entry.settings.background === 'string' && isValidHexColor(entry.settings.background)) {\n background = entry.settings.background;\n }\n for (let j = 0, lenJ = scopes.length; j < lenJ; j++) {\n let _scope = scopes[j].trim();\n let segments = _scope.split(' ');\n let scope = segments[segments.length - 1];\n let parentScopes = null;\n if (segments.length > 1) {\n parentScopes = segments.slice(0, segments.length - 1);\n parentScopes.reverse();\n }\n result[resultLen++] = new ParsedThemeRule(scope, parentScopes, i, fontStyle, foreground, background);\n }\n }\n return result;\n}\nclass ParsedThemeRule {\n scope;\n parentScopes;\n index;\n fontStyle;\n foreground;\n background;\n constructor(scope, parentScopes, index, fontStyle, foreground, background) {\n this.scope = scope;\n this.parentScopes = parentScopes;\n this.index = index;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n}\n/**\n * Resolve rules (i.e. inheritance).\n */\nfunction resolveParsedThemeRules(parsedThemeRules, _colorMap) {\n // Sort rules lexicographically, and then by index if necessary\n parsedThemeRules.sort((a, b) => {\n let r = strcmp(a.scope, b.scope);\n if (r !== 0) {\n return r;\n }\n r = strArrCmp(a.parentScopes, b.parentScopes);\n if (r !== 0) {\n return r;\n }\n return a.index - b.index;\n });\n // Determine defaults\n let defaultFontStyle = 0 /* FontStyle.None */;\n let defaultForeground = '#000000';\n let defaultBackground = '#ffffff';\n while (parsedThemeRules.length >= 1 && parsedThemeRules[0].scope === '') {\n let incomingDefaults = parsedThemeRules.shift();\n if (incomingDefaults.fontStyle !== -1 /* FontStyle.NotSet */) {\n defaultFontStyle = incomingDefaults.fontStyle;\n }\n if (incomingDefaults.foreground !== null) {\n defaultForeground = incomingDefaults.foreground;\n }\n if (incomingDefaults.background !== null) {\n defaultBackground = incomingDefaults.background;\n }\n }\n let colorMap = new ColorMap(_colorMap);\n let defaults = new StyleAttributes(defaultFontStyle, colorMap.getId(defaultForeground), colorMap.getId(defaultBackground));\n let root = new ThemeTrieElement(new ThemeTrieElementRule(0, null, -1 /* FontStyle.NotSet */, 0, 0), []);\n for (let i = 0, len = parsedThemeRules.length; i < len; i++) {\n let rule = parsedThemeRules[i];\n root.insert(0, rule.scope, rule.parentScopes, rule.fontStyle, colorMap.getId(rule.foreground), colorMap.getId(rule.background));\n }\n return new Theme(colorMap, defaults, root);\n}\nclass ColorMap {\n _isFrozen;\n _lastColorId;\n _id2color;\n _color2id;\n constructor(_colorMap) {\n this._lastColorId = 0;\n this._id2color = [];\n this._color2id = Object.create(null);\n if (Array.isArray(_colorMap)) {\n this._isFrozen = true;\n for (let i = 0, len = _colorMap.length; i < len; i++) {\n this._color2id[_colorMap[i]] = i;\n this._id2color[i] = _colorMap[i];\n }\n }\n else {\n this._isFrozen = false;\n }\n }\n getId(color) {\n if (color === null) {\n return 0;\n }\n color = color.toUpperCase();\n let value = this._color2id[color];\n if (value) {\n return value;\n }\n if (this._isFrozen) {\n throw new Error(`Missing color in color map - ${color}`);\n }\n value = ++this._lastColorId;\n this._color2id[color] = value;\n this._id2color[value] = color;\n return value;\n }\n getColorMap() {\n return this._id2color.slice(0);\n }\n}\nclass ThemeTrieElementRule {\n scopeDepth;\n parentScopes;\n fontStyle;\n foreground;\n background;\n constructor(scopeDepth, parentScopes, fontStyle, foreground, background) {\n this.scopeDepth = scopeDepth;\n this.parentScopes = parentScopes;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n clone() {\n return new ThemeTrieElementRule(this.scopeDepth, this.parentScopes, this.fontStyle, this.foreground, this.background);\n }\n static cloneArr(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = arr[i].clone();\n }\n return r;\n }\n acceptOverwrite(scopeDepth, fontStyle, foreground, background) {\n if (this.scopeDepth > scopeDepth) {\n console.log('how did this happen?');\n }\n else {\n this.scopeDepth = scopeDepth;\n }\n // console.log('TODO -> my depth: ' + this.scopeDepth + ', overwriting depth: ' + scopeDepth);\n if (fontStyle !== -1 /* FontStyle.NotSet */) {\n this.fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n this.foreground = foreground;\n }\n if (background !== 0) {\n this.background = background;\n }\n }\n}\nclass ThemeTrieElement {\n _mainRule;\n _children;\n _rulesWithParentScopes;\n constructor(_mainRule, rulesWithParentScopes = [], _children = {}) {\n this._mainRule = _mainRule;\n this._children = _children;\n this._rulesWithParentScopes = rulesWithParentScopes;\n }\n static _sortBySpecificity(arr) {\n if (arr.length === 1) {\n return arr;\n }\n arr.sort(this._cmpBySpecificity);\n return arr;\n }\n static _cmpBySpecificity(a, b) {\n if (a.scopeDepth === b.scopeDepth) {\n const aParentScopes = a.parentScopes;\n const bParentScopes = b.parentScopes;\n let aParentScopesLen = aParentScopes === null ? 0 : aParentScopes.length;\n let bParentScopesLen = bParentScopes === null ? 0 : bParentScopes.length;\n if (aParentScopesLen === bParentScopesLen) {\n for (let i = 0; i < aParentScopesLen; i++) {\n const aLen = aParentScopes[i].length;\n const bLen = bParentScopes[i].length;\n if (aLen !== bLen) {\n return bLen - aLen;\n }\n }\n }\n return bParentScopesLen - aParentScopesLen;\n }\n return b.scopeDepth - a.scopeDepth;\n }\n match(scope) {\n if (scope === '') {\n return ThemeTrieElement._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\n }\n let dotIndex = scope.indexOf('.');\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = '';\n }\n else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n if (this._children.hasOwnProperty(head)) {\n return this._children[head].match(tail);\n }\n return ThemeTrieElement._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\n }\n insert(scopeDepth, scope, parentScopes, fontStyle, foreground, background) {\n if (scope === '') {\n this._doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background);\n return;\n }\n let dotIndex = scope.indexOf('.');\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = '';\n }\n else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n let child;\n if (this._children.hasOwnProperty(head)) {\n child = this._children[head];\n }\n else {\n child = new ThemeTrieElement(this._mainRule.clone(), ThemeTrieElementRule.cloneArr(this._rulesWithParentScopes));\n this._children[head] = child;\n }\n child.insert(scopeDepth + 1, tail, parentScopes, fontStyle, foreground, background);\n }\n _doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background) {\n if (parentScopes === null) {\n // Merge into the main rule\n this._mainRule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n // Try to merge into existing rule\n for (let i = 0, len = this._rulesWithParentScopes.length; i < len; i++) {\n let rule = this._rulesWithParentScopes[i];\n if (strArrCmp(rule.parentScopes, parentScopes) === 0) {\n // bingo! => we get to merge this into an existing one\n rule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n }\n // Must add a new rule\n // Inherit from main rule\n if (fontStyle === -1 /* FontStyle.NotSet */) {\n fontStyle = this._mainRule.fontStyle;\n }\n if (foreground === 0) {\n foreground = this._mainRule.foreground;\n }\n if (background === 0) {\n background = this._mainRule.background;\n }\n this._rulesWithParentScopes.push(new ThemeTrieElementRule(scopeDepth, parentScopes, fontStyle, foreground, background));\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass BasicScopeAttributes {\n languageId;\n tokenType;\n constructor(languageId, tokenType) {\n this.languageId = languageId;\n this.tokenType = tokenType;\n }\n}\nclass BasicScopeAttributesProvider {\n _defaultAttributes;\n _embeddedLanguagesMatcher;\n constructor(initialLanguageId, embeddedLanguages) {\n this._defaultAttributes = new BasicScopeAttributes(initialLanguageId, 8 /* OptionalStandardTokenType.NotSet */);\n this._embeddedLanguagesMatcher = new ScopeMatcher(Object.entries(embeddedLanguages || {}));\n }\n getDefaultAttributes() {\n return this._defaultAttributes;\n }\n getBasicScopeAttributes(scopeName) {\n if (scopeName === null) {\n return BasicScopeAttributesProvider._NULL_SCOPE_METADATA;\n }\n return this._getBasicScopeAttributes.get(scopeName);\n }\n static _NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n _getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\n /**\n * Given a produced TM scope, return the language that token describes or null if unknown.\n * e.g. source.html => html, source.css.embedded.html => css, punctuation.definition.tag.html => null\n */\n _scopeToLanguage(scope) {\n return this._embeddedLanguagesMatcher.match(scope) || 0;\n }\n _toStandardTokenType(scopeName) {\n const m = scopeName.match(BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP);\n if (!m) {\n return 8 /* OptionalStandardTokenType.NotSet */;\n }\n switch (m[1]) {\n case \"comment\":\n return 1 /* OptionalStandardTokenType.Comment */;\n case \"string\":\n return 2 /* OptionalStandardTokenType.String */;\n case \"regex\":\n return 3 /* OptionalStandardTokenType.RegEx */;\n case \"meta.embedded\":\n return 0 /* OptionalStandardTokenType.Other */;\n }\n throw new Error(\"Unexpected match for standard token type!\");\n }\n static STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\n}\nclass ScopeMatcher {\n values;\n scopesRegExp;\n constructor(values) {\n if (values.length === 0) {\n this.values = null;\n this.scopesRegExp = null;\n }\n else {\n this.values = new Map(values);\n // create the regex\n const escapedScopes = values.map(([scopeName, value]) => escapeRegExpCharacters(scopeName));\n escapedScopes.sort();\n escapedScopes.reverse(); // Longest scope first\n this.scopesRegExp = new RegExp(`^((${escapedScopes.join(\")|(\")}))($|\\\\.)`, \"\");\n }\n }\n match(scope) {\n if (!this.scopesRegExp) {\n return undefined;\n }\n const m = scope.match(this.scopesRegExp);\n if (!m) {\n // no scopes matched\n return undefined;\n }\n return this.values.get(m[1]);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass TokenizeStringResult {\n stack;\n stoppedEarly;\n constructor(stack, stoppedEarly) {\n this.stack = stack;\n this.stoppedEarly = stoppedEarly;\n }\n}\n/**\n * Tokenize a string\n * @param grammar\n * @param lineText\n * @param isFirstLine\n * @param linePos\n * @param stack\n * @param lineTokens\n * @param checkWhileConditions\n * @param timeLimit Use `0` to indicate no time limit\n * @returns the StackElement or StackElement.TIME_LIMIT_REACHED if the time limit has been reached\n */\nfunction _tokenizeString(grammar, lineText, isFirstLine, linePos, stack, lineTokens, checkWhileConditions, timeLimit) {\n const lineLength = lineText.content.length;\n let STOP = false;\n let anchorPosition = -1;\n if (checkWhileConditions) {\n const whileCheckResult = _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens);\n stack = whileCheckResult.stack;\n linePos = whileCheckResult.linePos;\n isFirstLine = whileCheckResult.isFirstLine;\n anchorPosition = whileCheckResult.anchorPosition;\n }\n const startTime = Date.now();\n while (!STOP) {\n if (timeLimit !== 0) {\n const elapsedTime = Date.now() - startTime;\n if (elapsedTime > timeLimit) {\n return new TokenizeStringResult(stack, true);\n }\n }\n scanNext(); // potentially modifies linePos && anchorPosition\n }\n return new TokenizeStringResult(stack, false);\n function scanNext() {\n const r = matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!r) {\n // No match\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n const captureIndices = r.captureIndices;\n const matchedRuleId = r.matchedRuleId;\n const hasAdvanced = captureIndices && captureIndices.length > 0\n ? captureIndices[0].end > linePos\n : false;\n if (matchedRuleId === endRuleId) {\n // We matched the `end` for this rule => pop it\n const poppedRule = stack.getRule(grammar);\n lineTokens.produce(stack, captureIndices[0].start);\n stack = stack.withContentNameScopesList(stack.nameScopesList);\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, poppedRule.endCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n // pop\n const popped = stack;\n stack = stack.parent;\n anchorPosition = popped.getAnchorPos();\n if (!hasAdvanced && popped.getEnterPos() === linePos) {\n // See https://github.com/Microsoft/vscode-textmate/issues/12\n // Let's assume this was a mistake by the grammar author and the intent was to continue in this state\n stack = popped;\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else {\n // We matched a rule!\n const _rule = grammar.getRule(matchedRuleId);\n lineTokens.produce(stack, captureIndices[0].start);\n const beforePush = stack;\n // push it on the stack rule\n const scopeName = _rule.getName(lineText.content, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n stack = stack.push(matchedRuleId, linePos, anchorPosition, captureIndices[0].end === lineLength, null, nameScopesList, nameScopesList);\n if (_rule instanceof BeginEndRule) {\n const pushedRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(lineText.content, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.endHasBackReferences) {\n stack = stack.withEndRule(pushedRule.getEndWithResolvedBackReferences(lineText.content, captureIndices));\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else if (_rule instanceof BeginWhileRule) {\n const pushedRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(lineText.content, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.whileHasBackReferences) {\n stack = stack.withEndRule(pushedRule.getWhileWithResolvedBackReferences(lineText.content, captureIndices));\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else {\n const matchingRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, matchingRule.captures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n // pop rule immediately since it is a MatchRule\n stack = stack.pop();\n if (!hasAdvanced) {\n stack = stack.safePop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n }\n if (captureIndices[0].end > linePos) {\n // Advance stream\n linePos = captureIndices[0].end;\n isFirstLine = false;\n }\n }\n}\n/**\n * Walk the stack from bottom to top, and check each while condition in this order.\n * If any fails, cut off the entire stack above the failed while condition. While conditions\n * may also advance the linePosition.\n */\nfunction _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens) {\n let anchorPosition = (stack.beginRuleCapturedEOL ? 0 : -1);\n const whileRules = [];\n for (let node = stack; node; node = node.pop()) {\n const nodeRule = node.getRule(grammar);\n if (nodeRule instanceof BeginWhileRule) {\n whileRules.push({\n rule: nodeRule,\n stack: node\n });\n }\n }\n for (let whileRule = whileRules.pop(); whileRule; whileRule = whileRules.pop()) {\n const { ruleScanner, findOptions } = prepareRuleWhileSearch(whileRule.rule, grammar, whileRule.stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n const matchedRuleId = r.ruleId;\n if (matchedRuleId !== whileRuleId) {\n // we shouldn't end up here\n stack = whileRule.stack.pop();\n break;\n }\n if (r.captureIndices && r.captureIndices.length) {\n lineTokens.produce(whileRule.stack, r.captureIndices[0].start);\n handleCaptures(grammar, lineText, isFirstLine, whileRule.stack, lineTokens, whileRule.rule.whileCaptures, r.captureIndices);\n lineTokens.produce(whileRule.stack, r.captureIndices[0].end);\n anchorPosition = r.captureIndices[0].end;\n if (r.captureIndices[0].end > linePos) {\n linePos = r.captureIndices[0].end;\n isFirstLine = false;\n }\n }\n }\n else {\n stack = whileRule.stack.pop();\n break;\n }\n }\n return { stack: stack, linePos: linePos, anchorPosition: anchorPosition, isFirstLine: isFirstLine };\n}\nfunction matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n // Look for normal grammar rule\n const matchResult = matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n // Look for injected rules\n const injections = grammar.getInjections();\n if (injections.length === 0) {\n // No injections whatsoever => early return\n return matchResult;\n }\n const injectionResult = matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!injectionResult) {\n // No injections matched => early return\n return matchResult;\n }\n if (!matchResult) {\n // Only injections matched => early return\n return injectionResult;\n }\n // Decide if `matchResult` or `injectionResult` should win\n const matchResultScore = matchResult.captureIndices[0].start;\n const injectionResultScore = injectionResult.captureIndices[0].start;\n if (injectionResultScore < matchResultScore || (injectionResult.priorityMatch && injectionResultScore === matchResultScore)) {\n // injection won!\n return injectionResult;\n }\n return matchResult;\n}\nfunction matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const rule = stack.getRule(grammar);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n return {\n captureIndices: r.captureIndices,\n matchedRuleId: r.ruleId\n };\n }\n return null;\n}\nfunction matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n // The lower the better\n let bestMatchRating = Number.MAX_VALUE;\n let bestMatchCaptureIndices = null;\n let bestMatchRuleId;\n let bestMatchResultPriority = 0;\n const scopes = stack.contentNameScopesList.getScopeNames();\n for (let i = 0, len = injections.length; i < len; i++) {\n const injection = injections[i];\n if (!injection.matcher(scopes)) {\n // injection selector doesn't match stack\n continue;\n }\n const rule = grammar.getRule(injection.ruleId);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, null, isFirstLine, linePos === anchorPosition);\n const matchResult = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (!matchResult) {\n continue;\n }\n const matchRating = matchResult.captureIndices[0].start;\n if (matchRating >= bestMatchRating) {\n // Injections are sorted by priority, so the previous injection had a better or equal priority\n continue;\n }\n bestMatchRating = matchRating;\n bestMatchCaptureIndices = matchResult.captureIndices;\n bestMatchRuleId = matchResult.ruleId;\n bestMatchResultPriority = injection.priority;\n if (bestMatchRating === linePos) {\n // No more need to look at the rest of the injections.\n break;\n }\n }\n if (bestMatchCaptureIndices) {\n return {\n priorityMatch: bestMatchResultPriority === -1,\n captureIndices: bestMatchCaptureIndices,\n matchedRuleId: bestMatchRuleId\n };\n }\n return null;\n}\nfunction prepareRuleSearch(rule, grammar, endRegexSource, allowA, allowG) {\n const ruleScanner = rule.compileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* FindOption.None */ };\n}\nfunction prepareRuleWhileSearch(rule, grammar, endRegexSource, allowA, allowG) {\n const ruleScanner = rule.compileWhileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* FindOption.None */ };\n}\nfunction handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, captures, captureIndices) {\n if (captures.length === 0) {\n return;\n }\n const lineTextContent = lineText.content;\n const len = Math.min(captures.length, captureIndices.length);\n const localStack = [];\n const maxEnd = captureIndices[0].end;\n for (let i = 0; i < len; i++) {\n const captureRule = captures[i];\n if (captureRule === null) {\n // Not interested\n continue;\n }\n const captureIndex = captureIndices[i];\n if (captureIndex.length === 0) {\n // Nothing really captured\n continue;\n }\n if (captureIndex.start > maxEnd) {\n // Capture going beyond consumed string\n break;\n }\n // pop captures while needed\n while (localStack.length > 0 && localStack[localStack.length - 1].endPos <= captureIndex.start) {\n // pop!\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n if (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, captureIndex.start);\n }\n else {\n lineTokens.produce(stack, captureIndex.start);\n }\n if (captureRule.retokenizeCapturedWithRuleId) {\n // the capture requires additional matching\n const scopeName = captureRule.getName(lineTextContent, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n const contentName = captureRule.getContentName(lineTextContent, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n const stackClone = stack.push(captureRule.retokenizeCapturedWithRuleId, captureIndex.start, -1, false, null, nameScopesList, contentNameScopesList);\n const onigSubStr = grammar.createOnigString(lineTextContent.substring(0, captureIndex.end));\n _tokenizeString(grammar, onigSubStr, (isFirstLine && captureIndex.start === 0), captureIndex.start, stackClone, lineTokens, false, /* no time limit */ 0);\n disposeOnigString(onigSubStr);\n continue;\n }\n const captureRuleScopeName = captureRule.getName(lineTextContent, captureIndices);\n if (captureRuleScopeName !== null) {\n // push\n const base = localStack.length > 0 ? localStack[localStack.length - 1].scopes : stack.contentNameScopesList;\n const captureRuleScopesList = base.pushAttributed(captureRuleScopeName, grammar);\n localStack.push(new LocalStackElement(captureRuleScopesList, captureIndex.end));\n }\n }\n while (localStack.length > 0) {\n // pop!\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n}\nclass LocalStackElement {\n scopes;\n endPos;\n constructor(scopes, endPos) {\n this.scopes = scopes;\n this.endPos = endPos;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction createGrammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib) {\n return new Grammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib); //TODO\n}\nfunction collectInjections(result, selector, rule, ruleFactoryHelper, grammar) {\n const matchers = createMatchers(selector, nameMatcher);\n const ruleId = RuleFactory.getCompiledRuleId(rule, ruleFactoryHelper, grammar.repository);\n for (const matcher of matchers) {\n result.push({\n debugSelector: selector,\n matcher: matcher.matcher,\n ruleId: ruleId,\n grammar: grammar,\n priority: matcher.priority\n });\n }\n}\nfunction nameMatcher(identifers, scopes) {\n if (scopes.length < identifers.length) {\n return false;\n }\n let lastIndex = 0;\n return identifers.every(identifier => {\n for (let i = lastIndex; i < scopes.length; i++) {\n if (scopesAreMatching(scopes[i], identifier)) {\n lastIndex = i + 1;\n return true;\n }\n }\n return false;\n });\n}\nfunction scopesAreMatching(thisScopeName, scopeName) {\n if (!thisScopeName) {\n return false;\n }\n if (thisScopeName === scopeName) {\n return true;\n }\n const len = scopeName.length;\n return thisScopeName.length > len && thisScopeName.substr(0, len) === scopeName && thisScopeName[len] === '.';\n}\nclass Grammar {\n _rootScopeName;\n balancedBracketSelectors;\n _onigLib;\n _rootId;\n _lastRuleId;\n _ruleId2desc;\n _includedGrammars;\n _grammarRepository;\n _grammar;\n _injections;\n _basicScopeAttributesProvider;\n _tokenTypeMatchers;\n get themeProvider() { return this._grammarRepository; }\n constructor(_rootScopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, _onigLib) {\n this._rootScopeName = _rootScopeName;\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._onigLib = _onigLib;\n this._basicScopeAttributesProvider = new BasicScopeAttributesProvider(initialLanguage, embeddedLanguages);\n this._rootId = -1;\n this._lastRuleId = 0;\n this._ruleId2desc = [null];\n this._includedGrammars = {};\n this._grammarRepository = grammarRepository;\n this._grammar = initGrammar(grammar, null);\n this._injections = null;\n this._tokenTypeMatchers = [];\n if (tokenTypes) {\n for (const selector of Object.keys(tokenTypes)) {\n const matchers = createMatchers(selector, nameMatcher);\n for (const matcher of matchers) {\n this._tokenTypeMatchers.push({\n matcher: matcher.matcher,\n type: tokenTypes[selector],\n });\n }\n }\n }\n }\n dispose() {\n for (const rule of this._ruleId2desc) {\n if (rule) {\n rule.dispose();\n }\n }\n }\n createOnigScanner(sources) {\n return this._onigLib.createOnigScanner(sources);\n }\n createOnigString(sources) {\n return this._onigLib.createOnigString(sources);\n }\n getMetadataForScope(scope) {\n return this._basicScopeAttributesProvider.getBasicScopeAttributes(scope);\n }\n _collectInjections() {\n const grammarRepository = {\n lookup: (scopeName) => {\n if (scopeName === this._rootScopeName) {\n return this._grammar;\n }\n return this.getExternalGrammar(scopeName);\n },\n injections: (scopeName) => {\n return this._grammarRepository.injections(scopeName);\n },\n };\n const result = [];\n const scopeName = this._rootScopeName;\n const grammar = grammarRepository.lookup(scopeName);\n if (grammar) {\n // add injections from the current grammar\n const rawInjections = grammar.injections;\n if (rawInjections) {\n for (let expression in rawInjections) {\n collectInjections(result, expression, rawInjections[expression], this, grammar);\n }\n }\n // add injection grammars contributed for the current scope\n const injectionScopeNames = this._grammarRepository.injections(scopeName);\n if (injectionScopeNames) {\n injectionScopeNames.forEach((injectionScopeName) => {\n const injectionGrammar = this.getExternalGrammar(injectionScopeName);\n if (injectionGrammar) {\n const selector = injectionGrammar.injectionSelector;\n if (selector) {\n collectInjections(result, selector, injectionGrammar, this, injectionGrammar);\n }\n }\n });\n }\n }\n result.sort((i1, i2) => i1.priority - i2.priority); // sort by priority\n return result;\n }\n getInjections() {\n if (this._injections === null) {\n this._injections = this._collectInjections();\n }\n return this._injections;\n }\n registerRule(factory) {\n const id = ++this._lastRuleId;\n const result = factory(ruleIdFromNumber(id));\n this._ruleId2desc[id] = result;\n return result;\n }\n getRule(ruleId) {\n return this._ruleId2desc[ruleIdToNumber(ruleId)];\n }\n getExternalGrammar(scopeName, repository) {\n if (this._includedGrammars[scopeName]) {\n return this._includedGrammars[scopeName];\n }\n else if (this._grammarRepository) {\n const rawIncludedGrammar = this._grammarRepository.lookup(scopeName);\n if (rawIncludedGrammar) {\n // console.log('LOADED GRAMMAR ' + pattern.include);\n this._includedGrammars[scopeName] = initGrammar(rawIncludedGrammar, repository && repository.$base);\n return this._includedGrammars[scopeName];\n }\n }\n return undefined;\n }\n tokenizeLine(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, false, timeLimit);\n return {\n tokens: r.lineTokens.getResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n tokenizeLine2(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, true, timeLimit);\n return {\n tokens: r.lineTokens.getBinaryResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n _tokenize(lineText, prevState, emitBinaryTokens, timeLimit) {\n if (this._rootId === -1) {\n this._rootId = RuleFactory.getCompiledRuleId(this._grammar.repository.$self, this, this._grammar.repository);\n // This ensures ids are deterministic, and thus equal in renderer and webworker.\n this.getInjections();\n }\n let isFirstLine;\n if (!prevState || prevState === StateStackImpl.NULL) {\n isFirstLine = true;\n const rawDefaultMetadata = this._basicScopeAttributesProvider.getDefaultAttributes();\n const defaultStyle = this.themeProvider.getDefaults();\n const defaultMetadata = EncodedTokenAttributes.set(0, rawDefaultMetadata.languageId, rawDefaultMetadata.tokenType, null, defaultStyle.fontStyle, defaultStyle.foregroundId, defaultStyle.backgroundId);\n const rootScopeName = this.getRule(this._rootId).getName(null, null);\n let scopeList;\n if (rootScopeName) {\n scopeList = AttributedScopeStack.createRootAndLookUpScopeName(rootScopeName, defaultMetadata, this);\n }\n else {\n scopeList = AttributedScopeStack.createRoot(\"unknown\", defaultMetadata);\n }\n prevState = new StateStackImpl(null, this._rootId, -1, -1, false, null, scopeList, scopeList);\n }\n else {\n isFirstLine = false;\n prevState.reset();\n }\n lineText = lineText + \"\\n\";\n const onigLineText = this.createOnigString(lineText);\n const lineLength = onigLineText.content.length;\n const lineTokens = new LineTokens(emitBinaryTokens, lineText, this._tokenTypeMatchers, this.balancedBracketSelectors);\n const r = _tokenizeString(this, onigLineText, isFirstLine, 0, prevState, lineTokens, true, timeLimit);\n disposeOnigString(onigLineText);\n return {\n lineLength: lineLength,\n lineTokens: lineTokens,\n ruleStack: r.stack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n}\nfunction initGrammar(grammar, base) {\n grammar = clone(grammar);\n grammar.repository = grammar.repository || {};\n grammar.repository.$self = {\n $vscodeTextmateLocation: grammar.$vscodeTextmateLocation,\n patterns: grammar.patterns,\n name: grammar.scopeName\n };\n grammar.repository.$base = base || grammar.repository.$self;\n return grammar;\n}\nclass AttributedScopeStack {\n parent;\n scopePath;\n tokenAttributes;\n static fromExtension(namesScopeList, contentNameScopesList) {\n let current = namesScopeList;\n let scopeNames = namesScopeList?.scopePath ?? null;\n for (const frame of contentNameScopesList) {\n scopeNames = ScopeStack.push(scopeNames, frame.scopeNames);\n current = new AttributedScopeStack(current, scopeNames, frame.encodedTokenAttributes);\n }\n return current;\n }\n static createRoot(scopeName, tokenAttributes) {\n return new AttributedScopeStack(null, new ScopeStack(null, scopeName), tokenAttributes);\n }\n static createRootAndLookUpScopeName(scopeName, tokenAttributes, grammar) {\n const rawRootMetadata = grammar.getMetadataForScope(scopeName);\n const scopePath = new ScopeStack(null, scopeName);\n const rootStyle = grammar.themeProvider.themeMatch(scopePath);\n const resolvedTokenAttributes = AttributedScopeStack.mergeAttributes(tokenAttributes, rawRootMetadata, rootStyle);\n return new AttributedScopeStack(null, scopePath, resolvedTokenAttributes);\n }\n get scopeName() { return this.scopePath.scopeName; }\n /**\n * Invariant:\n * ```\n * if (parent && !scopePath.extends(parent.scopePath)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, scopePath, tokenAttributes) {\n this.parent = parent;\n this.scopePath = scopePath;\n this.tokenAttributes = tokenAttributes;\n }\n toString() {\n return this.getScopeNames().join(' ');\n }\n equals(other) {\n return AttributedScopeStack.equals(this, other);\n }\n static equals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n // End of list reached for both\n return true;\n }\n if (!a || !b) {\n // End of list reached only for one\n return false;\n }\n if (a.scopeName !== b.scopeName || a.tokenAttributes !== b.tokenAttributes) {\n return false;\n }\n // Go to previous pair\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n static mergeAttributes(existingTokenAttributes, basicScopeAttributes, styleAttributes) {\n let fontStyle = -1 /* FontStyle.NotSet */;\n let foreground = 0;\n let background = 0;\n if (styleAttributes !== null) {\n fontStyle = styleAttributes.fontStyle;\n foreground = styleAttributes.foregroundId;\n background = styleAttributes.backgroundId;\n }\n return EncodedTokenAttributes.set(existingTokenAttributes, basicScopeAttributes.languageId, basicScopeAttributes.tokenType, null, fontStyle, foreground, background);\n }\n pushAttributed(scopePath, grammar) {\n if (scopePath === null) {\n return this;\n }\n if (scopePath.indexOf(' ') === -1) {\n // This is the common case and much faster\n return AttributedScopeStack._pushAttributed(this, scopePath, grammar);\n }\n const scopes = scopePath.split(/ /g);\n let result = this;\n for (const scope of scopes) {\n result = AttributedScopeStack._pushAttributed(result, scope, grammar);\n }\n return result;\n }\n static _pushAttributed(target, scopeName, grammar) {\n const rawMetadata = grammar.getMetadataForScope(scopeName);\n const newPath = target.scopePath.push(scopeName);\n const scopeThemeMatchResult = grammar.themeProvider.themeMatch(newPath);\n const metadata = AttributedScopeStack.mergeAttributes(target.tokenAttributes, rawMetadata, scopeThemeMatchResult);\n return new AttributedScopeStack(target, newPath, metadata);\n }\n getScopeNames() {\n return this.scopePath.getSegments();\n }\n getExtensionIfDefined(base) {\n const result = [];\n let self = this;\n while (self && self !== base) {\n result.push({\n encodedTokenAttributes: self.tokenAttributes,\n scopeNames: self.scopePath.getExtensionIfDefined(self.parent?.scopePath ?? null),\n });\n self = self.parent;\n }\n return self === base ? result.reverse() : undefined;\n }\n}\n/**\n * Represents a \"pushed\" state on the stack (as a linked list element).\n */\nclass StateStackImpl {\n parent;\n ruleId;\n beginRuleCapturedEOL;\n endRule;\n nameScopesList;\n contentNameScopesList;\n _stackElementBrand = undefined;\n // TODO remove me\n static NULL = new StateStackImpl(null, 0, 0, 0, false, null, null, null);\n /**\n * The position on the current line where this state was pushed.\n * This is relevant only while tokenizing a line, to detect endless loops.\n * Its value is meaningless across lines.\n */\n _enterPos;\n /**\n * The captured anchor position when this stack element was pushed.\n * This is relevant only while tokenizing a line, to restore the anchor position when popping.\n * Its value is meaningless across lines.\n */\n _anchorPos;\n /**\n * The depth of the stack.\n */\n depth;\n /**\n * Invariant:\n * ```\n * if (contentNameScopesList !== nameScopesList && contentNameScopesList?.parent !== nameScopesList) {\n * \tthrow new Error();\n * }\n * if (this.parent && !nameScopesList.extends(this.parent.contentNameScopesList)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(\n /**\n * The previous state on the stack (or null for the root state).\n */\n parent, \n /**\n * The state (rule) that this element represents.\n */\n ruleId, enterPos, anchorPos, \n /**\n * The state has entered and captured \\n. This means that the next line should have an anchorPosition of 0.\n */\n beginRuleCapturedEOL, \n /**\n * The \"pop\" (end) condition for this state in case that it was dynamically generated through captured text.\n */\n endRule, \n /**\n * The list of scopes containing the \"name\" for this state.\n */\n nameScopesList, \n /**\n * The list of scopes containing the \"contentName\" (besides \"name\") for this state.\n * This list **must** contain as an element `scopeName`.\n */\n contentNameScopesList) {\n this.parent = parent;\n this.ruleId = ruleId;\n this.beginRuleCapturedEOL = beginRuleCapturedEOL;\n this.endRule = endRule;\n this.nameScopesList = nameScopesList;\n this.contentNameScopesList = contentNameScopesList;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\n equals(other) {\n if (other === null) {\n return false;\n }\n return StateStackImpl._equals(this, other);\n }\n static _equals(a, b) {\n if (a === b) {\n return true;\n }\n if (!this._structuralEquals(a, b)) {\n return false;\n }\n return AttributedScopeStack.equals(a.contentNameScopesList, b.contentNameScopesList);\n }\n /**\n * A structural equals check. Does not take into account `scopes`.\n */\n static _structuralEquals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n // End of list reached for both\n return true;\n }\n if (!a || !b) {\n // End of list reached only for one\n return false;\n }\n if (a.depth !== b.depth ||\n a.ruleId !== b.ruleId ||\n a.endRule !== b.endRule) {\n return false;\n }\n // Go to previous pair\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n clone() {\n return this;\n }\n static _reset(el) {\n while (el) {\n el._enterPos = -1;\n el._anchorPos = -1;\n el = el.parent;\n }\n }\n reset() {\n StateStackImpl._reset(this);\n }\n pop() {\n return this.parent;\n }\n safePop() {\n if (this.parent) {\n return this.parent;\n }\n return this;\n }\n push(ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n return new StateStackImpl(this, ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList);\n }\n getEnterPos() {\n return this._enterPos;\n }\n getAnchorPos() {\n return this._anchorPos;\n }\n getRule(grammar) {\n return grammar.getRule(this.ruleId);\n }\n toString() {\n const r = [];\n this._writeString(r, 0);\n return \"[\" + r.join(\",\") + \"]\";\n }\n _writeString(res, outIndex) {\n if (this.parent) {\n outIndex = this.parent._writeString(res, outIndex);\n }\n res[outIndex++] = `(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`;\n return outIndex;\n }\n withContentNameScopesList(contentNameScopeStack) {\n if (this.contentNameScopesList === contentNameScopeStack) {\n return this;\n }\n return this.parent.push(this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, this.endRule, this.nameScopesList, contentNameScopeStack);\n }\n withEndRule(endRule) {\n if (this.endRule === endRule) {\n return this;\n }\n return new StateStackImpl(this.parent, this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, endRule, this.nameScopesList, this.contentNameScopesList);\n }\n // Used to warn of endless loops\n hasSameRuleAs(other) {\n let el = this;\n while (el && el._enterPos === other._enterPos) {\n if (el.ruleId === other.ruleId) {\n return true;\n }\n el = el.parent;\n }\n return false;\n }\n toStateStackFrame() {\n return {\n ruleId: ruleIdToNumber(this.ruleId),\n beginRuleCapturedEOL: this.beginRuleCapturedEOL,\n endRule: this.endRule,\n nameScopesList: this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList ?? null) ?? [],\n contentNameScopesList: this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList) ?? [],\n };\n }\n static pushFrame(self, frame) {\n const namesScopeList = AttributedScopeStack.fromExtension(self?.nameScopesList ?? null, frame.nameScopesList);\n return new StateStackImpl(self, ruleIdFromNumber(frame.ruleId), frame.enterPos ?? -1, frame.anchorPos ?? -1, frame.beginRuleCapturedEOL, frame.endRule, namesScopeList, AttributedScopeStack.fromExtension(namesScopeList, frame.contentNameScopesList));\n }\n}\nclass BalancedBracketSelectors {\n balancedBracketScopes;\n unbalancedBracketScopes;\n allowAny = false;\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.balancedBracketScopes = balancedBracketScopes.flatMap((selector) => {\n if (selector === '*') {\n this.allowAny = true;\n return [];\n }\n return createMatchers(selector, nameMatcher).map((m) => m.matcher);\n });\n this.unbalancedBracketScopes = unbalancedBracketScopes.flatMap((selector) => createMatchers(selector, nameMatcher).map((m) => m.matcher));\n }\n get matchesAlways() {\n return this.allowAny && this.unbalancedBracketScopes.length === 0;\n }\n get matchesNever() {\n return this.balancedBracketScopes.length === 0 && !this.allowAny;\n }\n match(scopes) {\n for (const excluder of this.unbalancedBracketScopes) {\n if (excluder(scopes)) {\n return false;\n }\n }\n for (const includer of this.balancedBracketScopes) {\n if (includer(scopes)) {\n return true;\n }\n }\n return this.allowAny;\n }\n}\nclass LineTokens {\n balancedBracketSelectors;\n _emitBinaryTokens;\n /**\n * defined only if `false`.\n */\n _lineText;\n /**\n * used only if `_emitBinaryTokens` is false.\n */\n _tokens;\n /**\n * used only if `_emitBinaryTokens` is true.\n */\n _binaryTokens;\n _lastTokenEndIndex;\n _tokenTypeOverrides;\n constructor(emitBinaryTokens, lineText, tokenTypeOverrides, balancedBracketSelectors) {\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._emitBinaryTokens = emitBinaryTokens;\n this._tokenTypeOverrides = tokenTypeOverrides;\n {\n this._lineText = null;\n }\n this._tokens = [];\n this._binaryTokens = [];\n this._lastTokenEndIndex = 0;\n }\n produce(stack, endIndex) {\n this.produceFromScopes(stack.contentNameScopesList, endIndex);\n }\n produceFromScopes(scopesList, endIndex) {\n if (this._lastTokenEndIndex >= endIndex) {\n return;\n }\n if (this._emitBinaryTokens) {\n let metadata = scopesList?.tokenAttributes ?? 0;\n let containsBalancedBrackets = false;\n if (this.balancedBracketSelectors?.matchesAlways) {\n containsBalancedBrackets = true;\n }\n if (this._tokenTypeOverrides.length > 0 || (this.balancedBracketSelectors && !this.balancedBracketSelectors.matchesAlways && !this.balancedBracketSelectors.matchesNever)) {\n // Only generate scope array when required to improve performance\n const scopes = scopesList?.getScopeNames() ?? [];\n for (const tokenType of this._tokenTypeOverrides) {\n if (tokenType.matcher(scopes)) {\n metadata = EncodedTokenAttributes.set(metadata, 0, toOptionalTokenType(tokenType.type), null, -1 /* FontStyle.NotSet */, 0, 0);\n }\n }\n if (this.balancedBracketSelectors) {\n containsBalancedBrackets = this.balancedBracketSelectors.match(scopes);\n }\n }\n if (containsBalancedBrackets) {\n metadata = EncodedTokenAttributes.set(metadata, 0, 8 /* OptionalStandardTokenType.NotSet */, containsBalancedBrackets, -1 /* FontStyle.NotSet */, 0, 0);\n }\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === metadata) {\n // no need to push a token with the same metadata\n this._lastTokenEndIndex = endIndex;\n return;\n }\n this._binaryTokens.push(this._lastTokenEndIndex);\n this._binaryTokens.push(metadata);\n this._lastTokenEndIndex = endIndex;\n return;\n }\n const scopes = scopesList?.getScopeNames() ?? [];\n this._tokens.push({\n startIndex: this._lastTokenEndIndex,\n endIndex: endIndex,\n // value: lineText.substring(lastTokenEndIndex, endIndex),\n scopes: scopes\n });\n this._lastTokenEndIndex = endIndex;\n }\n getResult(stack, lineLength) {\n if (this._tokens.length > 0 && this._tokens[this._tokens.length - 1].startIndex === lineLength - 1) {\n // pop produced token for newline\n this._tokens.pop();\n }\n if (this._tokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._tokens[this._tokens.length - 1].startIndex = 0;\n }\n return this._tokens;\n }\n getBinaryResult(stack, lineLength) {\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 2] === lineLength - 1) {\n // pop produced token for newline\n this._binaryTokens.pop();\n this._binaryTokens.pop();\n }\n if (this._binaryTokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._binaryTokens[this._binaryTokens.length - 2] = 0;\n }\n const result = new Uint32Array(this._binaryTokens.length);\n for (let i = 0, len = this._binaryTokens.length; i < len; i++) {\n result[i] = this._binaryTokens[i];\n }\n return result;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass SyncRegistry {\n _onigLibPromise;\n _grammars = new Map();\n _rawGrammars = new Map();\n _injectionGrammars = new Map();\n _theme;\n constructor(theme, _onigLibPromise) {\n this._onigLibPromise = _onigLibPromise;\n this._theme = theme;\n }\n dispose() {\n for (const grammar of this._grammars.values()) {\n grammar.dispose();\n }\n }\n setTheme(theme) {\n this._theme = theme;\n }\n getColorMap() {\n return this._theme.getColorMap();\n }\n /**\n * Add `grammar` to registry and return a list of referenced scope names\n */\n addGrammar(grammar, injectionScopeNames) {\n this._rawGrammars.set(grammar.scopeName, grammar);\n if (injectionScopeNames) {\n this._injectionGrammars.set(grammar.scopeName, injectionScopeNames);\n }\n }\n /**\n * Lookup a raw grammar.\n */\n lookup(scopeName) {\n return this._rawGrammars.get(scopeName);\n }\n /**\n * Returns the injections for the given grammar\n */\n injections(targetScope) {\n return this._injectionGrammars.get(targetScope);\n }\n /**\n * Get the default theme settings\n */\n getDefaults() {\n return this._theme.getDefaults();\n }\n /**\n * Match a scope in the theme.\n */\n themeMatch(scopePath) {\n return this._theme.match(scopePath);\n }\n /**\n * Lookup a grammar.\n */\n async grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n if (!this._grammars.has(scopeName)) {\n let rawGrammar = this._rawGrammars.get(scopeName);\n if (!rawGrammar) {\n return null;\n }\n this._grammars.set(scopeName, createGrammar(scopeName, rawGrammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, this, await this._onigLibPromise));\n }\n return this._grammars.get(scopeName);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n/**\n * The registry that will hold all grammars.\n */\nlet Registry$1 = class Registry {\n _options;\n _syncRegistry;\n _ensureGrammarCache;\n constructor(options) {\n this._options = options;\n this._syncRegistry = new SyncRegistry(Theme.createFromRawTheme(options.theme, options.colorMap), options.onigLib);\n this._ensureGrammarCache = new Map();\n }\n dispose() {\n this._syncRegistry.dispose();\n }\n /**\n * Change the theme. Once called, no previous `ruleStack` should be used anymore.\n */\n setTheme(theme, colorMap) {\n this._syncRegistry.setTheme(Theme.createFromRawTheme(theme, colorMap));\n }\n /**\n * Returns a lookup array for color ids.\n */\n getColorMap() {\n return this._syncRegistry.getColorMap();\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithEmbeddedLanguages(initialScopeName, initialLanguage, embeddedLanguages) {\n return this.loadGrammarWithConfiguration(initialScopeName, initialLanguage, { embeddedLanguages });\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithConfiguration(initialScopeName, initialLanguage, configuration) {\n return this._loadGrammar(initialScopeName, initialLanguage, configuration.embeddedLanguages, configuration.tokenTypes, new BalancedBracketSelectors(configuration.balancedBracketSelectors || [], configuration.unbalancedBracketSelectors || []));\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n */\n loadGrammar(initialScopeName) {\n return this._loadGrammar(initialScopeName, 0, null, null, null);\n }\n async _loadGrammar(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n const dependencyProcessor = new ScopeDependencyProcessor(this._syncRegistry, initialScopeName);\n while (dependencyProcessor.Q.length > 0) {\n await Promise.all(dependencyProcessor.Q.map((request) => this._loadSingleGrammar(request.scopeName)));\n dependencyProcessor.processQueue();\n }\n return this._grammarForScopeName(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors);\n }\n async _loadSingleGrammar(scopeName) {\n if (!this._ensureGrammarCache.has(scopeName)) {\n this._ensureGrammarCache.set(scopeName, this._doLoadSingleGrammar(scopeName));\n }\n return this._ensureGrammarCache.get(scopeName);\n }\n async _doLoadSingleGrammar(scopeName) {\n const grammar = await this._options.loadGrammar(scopeName);\n if (grammar) {\n const injections = typeof this._options.getInjections === \"function\" ? this._options.getInjections(scopeName) : undefined;\n this._syncRegistry.addGrammar(grammar, injections);\n }\n }\n /**\n * Adds a rawGrammar.\n */\n async addGrammar(rawGrammar, injections = [], initialLanguage = 0, embeddedLanguages = null) {\n this._syncRegistry.addGrammar(rawGrammar, injections);\n return (await this._grammarForScopeName(rawGrammar.scopeName, initialLanguage, embeddedLanguages));\n }\n /**\n * Get the grammar for `scopeName`. The grammar must first be created via `loadGrammar` or `addGrammar`.\n */\n _grammarForScopeName(scopeName, initialLanguage = 0, embeddedLanguages = null, tokenTypes = null, balancedBracketSelectors = null) {\n return this._syncRegistry.grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors);\n }\n};\nconst INITIAL = StateStackImpl.NULL;\n\n/**\n * Helpers to manage the \"collapsed\" metadata of an entire StackElement stack.\n * The following assumptions have been made:\n * - languageId < 256 => needs 8 bits\n * - unique color count < 512 => needs 9 bits\n *\n * The binary format is:\n * - -------------------------------------------\n * 3322 2222 2222 1111 1111 1100 0000 0000\n * 1098 7654 3210 9876 5432 1098 7654 3210\n * - -------------------------------------------\n * xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx\n * bbbb bbbb bfff ffff ffFF FTTT LLLL LLLL\n * - -------------------------------------------\n * - L = LanguageId (8 bits)\n * - T = StandardTokenType (3 bits)\n * - F = FontStyle (3 bits)\n * - f = foreground color (9 bits)\n * - b = background color (9 bits)\n */\nconst MetadataConsts = {\n LANGUAGEID_MASK: 0b00000000000000000000000011111111,\n TOKEN_TYPE_MASK: 0b00000000000000000000001100000000,\n BALANCED_BRACKETS_MASK: 0b00000000000000000000010000000000,\n FONT_STYLE_MASK: 0b00000000000000000011100000000000,\n FOREGROUND_MASK: 0b00000000011111111100000000000000,\n BACKGROUND_MASK: 0b11111111100000000000000000000000,\n LANGUAGEID_OFFSET: 0,\n TOKEN_TYPE_OFFSET: 8,\n BALANCED_BRACKETS_OFFSET: 10,\n FONT_STYLE_OFFSET: 11,\n FOREGROUND_OFFSET: 15,\n BACKGROUND_OFFSET: 24,\n};\nclass StackElementMetadata {\n static toBinaryStr(metadata) {\n let r = metadata.toString(2);\n while (r.length < 32)\n r = `0${r}`;\n return r;\n }\n // public static printMetadata(metadata: number): void {\n // const languageId = StackElementMetadata.getLanguageId(metadata)\n // const tokenType = StackElementMetadata.getTokenType(metadata)\n // const fontStyle = StackElementMetadata.getFontStyle(metadata)\n // const foreground = StackElementMetadata.getForeground(metadata)\n // const background = StackElementMetadata.getBackground(metadata)\n // console.log({\n // languageId,\n // tokenType,\n // fontStyle,\n // foreground,\n // background,\n // })\n // }\n static getLanguageId(metadata) {\n return (metadata & MetadataConsts.LANGUAGEID_MASK) >>> MetadataConsts.LANGUAGEID_OFFSET;\n }\n static getTokenType(metadata) {\n return (metadata & MetadataConsts.TOKEN_TYPE_MASK) >>> MetadataConsts.TOKEN_TYPE_OFFSET;\n }\n static getFontStyle(metadata) {\n return (metadata & MetadataConsts.FONT_STYLE_MASK) >>> MetadataConsts.FONT_STYLE_OFFSET;\n }\n static getForeground(metadata) {\n return (metadata & MetadataConsts.FOREGROUND_MASK) >>> MetadataConsts.FOREGROUND_OFFSET;\n }\n static getBackground(metadata) {\n return (metadata & MetadataConsts.BACKGROUND_MASK) >>> MetadataConsts.BACKGROUND_OFFSET;\n }\n static containsBalancedBrackets(metadata) {\n return (metadata & MetadataConsts.BALANCED_BRACKETS_MASK) !== 0;\n }\n static set(metadata, languageId, tokenType, fontStyle, foreground, background) {\n let _languageId = StackElementMetadata.getLanguageId(metadata);\n let _tokenType = StackElementMetadata.getTokenType(metadata);\n let _fontStyle = StackElementMetadata.getFontStyle(metadata);\n let _foreground = StackElementMetadata.getForeground(metadata);\n let _background = StackElementMetadata.getBackground(metadata);\n const _containsBalancedBracketsBit = StackElementMetadata.containsBalancedBrackets(metadata)\n ? 1\n : 0;\n if (languageId !== 0)\n _languageId = languageId;\n if (tokenType !== 0 /* TemporaryStandardTokenType.Other */) {\n _tokenType\n = tokenType === 8 /* TemporaryStandardTokenType.MetaEmbedded */ ? 0 /* StandardTokenType.Other */ : tokenType;\n }\n if (fontStyle !== FontStyle.NotSet)\n _fontStyle = fontStyle;\n if (foreground !== 0)\n _foreground = foreground;\n if (background !== 0)\n _background = background;\n return (((_languageId << MetadataConsts.LANGUAGEID_OFFSET)\n | (_tokenType << MetadataConsts.TOKEN_TYPE_OFFSET)\n | (_fontStyle << MetadataConsts.FONT_STYLE_OFFSET)\n | (_containsBalancedBracketsBit << MetadataConsts.BALANCED_BRACKETS_OFFSET)\n | (_foreground << MetadataConsts.FOREGROUND_OFFSET)\n | (_background << MetadataConsts.BACKGROUND_OFFSET))\n >>> 0);\n }\n}\n\nexport { INITIAL, Registry$1 as Registry, StackElementMetadata, Theme };\n","import { INITIAL, StackElementMetadata, Registry as Registry$1, Theme } from './textmate.mjs';\nimport { FontStyle } from './types.mjs';\n\nfunction toArray(x) {\n return Array.isArray(x) ? x : [x];\n}\n/**\n * Slipt a string into lines, each line preserves the line ending.\n */\nfunction splitLines(code, preserveEnding = false) {\n const parts = code.split(/(\\r?\\n)/g);\n let index = 0;\n const lines = [];\n for (let i = 0; i < parts.length; i += 2) {\n const line = preserveEnding\n ? parts[i] + (parts[i + 1] || '')\n : parts[i];\n lines.push([line, index]);\n index += parts[i].length;\n index += parts[i + 1]?.length || 0;\n }\n return lines;\n}\n/**\n * Check if the language is plaintext that is ignored by Shiki.\n *\n * Hard-coded plain text languages: `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isPlainLang(lang) {\n return !lang || ['plaintext', 'txt', 'text', 'plain'].includes(lang);\n}\n/**\n * Check if the language is specially handled or bypassed by Shiki.\n *\n * Hard-coded languages: `ansi` and plaintexts like `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isSpecialLang(lang) {\n return lang === 'ansi' || isPlainLang(lang);\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isNoneTheme(theme) {\n return theme === 'none';\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isSpecialTheme(theme) {\n return isNoneTheme(theme);\n}\n/**\n * Utility to append class to a hast node\n *\n * If the `property.class` is a string, it will be splitted by space and converted to an array.\n */\nfunction addClassToHast(node, className) {\n if (!className)\n return node;\n node.properties ||= {};\n node.properties.class ||= [];\n if (typeof node.properties.class === 'string')\n node.properties.class = node.properties.class.split(/\\s+/g);\n if (!Array.isArray(node.properties.class))\n node.properties.class = [];\n const targets = Array.isArray(className) ? className : className.split(/\\s+/g);\n for (const c of targets) {\n if (c && !node.properties.class.includes(c))\n node.properties.class.push(c);\n }\n return node;\n}\n/**\n * Split a token into multiple tokens by given offsets.\n *\n * The offsets are relative to the token, and should be sorted.\n */\nfunction splitToken(token, offsets) {\n let lastOffset = 0;\n const tokens = [];\n for (const offset of offsets) {\n if (offset > lastOffset) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset, offset),\n offset: token.offset + lastOffset,\n });\n }\n lastOffset = offset;\n }\n if (lastOffset < token.content.length) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset),\n offset: token.offset + lastOffset,\n });\n }\n return tokens;\n}\n/**\n * Split 2D tokens array by given breakpoints.\n */\nfunction splitTokens(tokens, breakpoints) {\n const sorted = Array.from(breakpoints instanceof Set ? breakpoints : new Set(breakpoints))\n .sort((a, b) => a - b);\n if (!sorted.length)\n return tokens;\n return tokens.map((line) => {\n return line.flatMap((token) => {\n const breakpointsInToken = sorted\n .filter(i => token.offset < i && i < token.offset + token.content.length)\n .map(i => i - token.offset)\n .sort((a, b) => a - b);\n if (!breakpointsInToken.length)\n return token;\n return splitToken(token, breakpointsInToken);\n });\n });\n}\nfunction resolveColorReplacements(theme, options) {\n const replacements = typeof theme === 'string' ? {} : { ...theme.colorReplacements };\n const themeName = typeof theme === 'string' ? theme : theme.name;\n for (const [key, value] of Object.entries(options?.colorReplacements || {})) {\n if (typeof value === 'string')\n replacements[key] = value;\n else if (key === themeName)\n Object.assign(replacements, value);\n }\n return replacements;\n}\nfunction applyColorReplacements(color, replacements) {\n if (!color)\n return color;\n return replacements?.[color?.toLowerCase()] || color;\n}\nfunction getTokenStyleObject(token) {\n const styles = {};\n if (token.color)\n styles.color = token.color;\n if (token.bgColor)\n styles['background-color'] = token.bgColor;\n if (token.fontStyle) {\n if (token.fontStyle & FontStyle.Italic)\n styles['font-style'] = 'italic';\n if (token.fontStyle & FontStyle.Bold)\n styles['font-weight'] = 'bold';\n if (token.fontStyle & FontStyle.Underline)\n styles['text-decoration'] = 'underline';\n }\n return styles;\n}\nfunction stringifyTokenStyle(token) {\n return Object.entries(token).map(([key, value]) => `${key}:${value}`).join(';');\n}\n/**\n * Creates a converter between index and position in a code block.\n */\nfunction createPositionConverter(code) {\n const lines = splitLines(code, true).map(([line]) => line);\n function indexToPos(index) {\n let character = index;\n let line = 0;\n for (const lineText of lines) {\n if (character < lineText.length)\n break;\n character -= lineText.length;\n line++;\n }\n return { line, character };\n }\n function posToIndex(line, character) {\n let index = 0;\n for (let i = 0; i < line; i++)\n index += lines[i].length;\n index += character;\n return index;\n }\n return {\n lines,\n indexToPos,\n posToIndex,\n };\n}\n\n// src/colors.ts\nvar namedColors = [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"brightBlack\",\n \"brightRed\",\n \"brightGreen\",\n \"brightYellow\",\n \"brightBlue\",\n \"brightMagenta\",\n \"brightCyan\",\n \"brightWhite\"\n];\n\n// src/decorations.ts\nvar decorations = {\n 1: \"bold\",\n 2: \"dim\",\n 3: \"italic\",\n 4: \"underline\",\n 7: \"reverse\",\n 9: \"strikethrough\"\n};\n\n// src/parser.ts\nfunction findSequence(value, position) {\n const nextEscape = value.indexOf(\"\\x1B[\", position);\n if (nextEscape !== -1) {\n const nextClose = value.indexOf(\"m\", nextEscape);\n return {\n sequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n startPosition: nextEscape,\n position: nextClose + 1\n };\n }\n return {\n position: value.length\n };\n}\nfunction parseColor(sequence, index) {\n let offset = 1;\n const colorMode = sequence[index + offset++];\n let color;\n if (colorMode === \"2\") {\n const rgb = [\n sequence[index + offset++],\n sequence[index + offset++],\n sequence[index + offset]\n ].map((x) => Number.parseInt(x));\n if (rgb.length === 3 && !rgb.some((x) => Number.isNaN(x))) {\n color = {\n type: \"rgb\",\n rgb\n };\n }\n } else if (colorMode === \"5\") {\n const colorIndex = Number.parseInt(sequence[index + offset]);\n if (!Number.isNaN(colorIndex)) {\n color = { type: \"table\", index: Number(colorIndex) };\n }\n }\n return [offset, color];\n}\nfunction parseSequence(sequence) {\n const commands = [];\n for (let i = 0; i < sequence.length; i++) {\n const code = sequence[i];\n const codeInt = Number.parseInt(code);\n if (Number.isNaN(codeInt))\n continue;\n if (codeInt === 0) {\n commands.push({ type: \"resetAll\" });\n } else if (codeInt <= 9) {\n const decoration = decorations[codeInt];\n if (decoration) {\n commands.push({\n type: \"setDecoration\",\n value: decorations[codeInt]\n });\n }\n } else if (codeInt <= 29) {\n const decoration = decorations[codeInt - 20];\n if (decoration) {\n commands.push({\n type: \"resetDecoration\",\n value: decoration\n });\n }\n } else if (codeInt <= 37) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 30] }\n });\n } else if (codeInt === 38) {\n const [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setForegroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 39) {\n commands.push({\n type: \"resetForegroundColor\"\n });\n } else if (codeInt <= 47) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 40] }\n });\n } else if (codeInt === 48) {\n const [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setBackgroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 49) {\n commands.push({\n type: \"resetBackgroundColor\"\n });\n } else if (codeInt >= 90 && codeInt <= 97) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 90 + 8] }\n });\n } else if (codeInt >= 100 && codeInt <= 107) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 100 + 8] }\n });\n }\n }\n return commands;\n}\nfunction createAnsiSequenceParser() {\n let foreground = null;\n let background = null;\n let decorations2 = /* @__PURE__ */ new Set();\n return {\n parse(value) {\n const tokens = [];\n let position = 0;\n do {\n const findResult = findSequence(value, position);\n const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position);\n if (text.length > 0) {\n tokens.push({\n value: text,\n foreground,\n background,\n decorations: new Set(decorations2)\n });\n }\n if (findResult.sequence) {\n const commands = parseSequence(findResult.sequence);\n for (const styleToken of commands) {\n if (styleToken.type === \"resetAll\") {\n foreground = null;\n background = null;\n decorations2.clear();\n } else if (styleToken.type === \"resetForegroundColor\") {\n foreground = null;\n } else if (styleToken.type === \"resetBackgroundColor\") {\n background = null;\n } else if (styleToken.type === \"resetDecoration\") {\n decorations2.delete(styleToken.value);\n }\n }\n for (const styleToken of commands) {\n if (styleToken.type === \"setForegroundColor\") {\n foreground = styleToken.value;\n } else if (styleToken.type === \"setBackgroundColor\") {\n background = styleToken.value;\n } else if (styleToken.type === \"setDecoration\") {\n decorations2.add(styleToken.value);\n }\n }\n }\n position = findResult.position;\n } while (position < value.length);\n return tokens;\n }\n };\n}\n\n// src/palette.ts\nvar defaultNamedColorsMap = {\n black: \"#000000\",\n red: \"#bb0000\",\n green: \"#00bb00\",\n yellow: \"#bbbb00\",\n blue: \"#0000bb\",\n magenta: \"#ff00ff\",\n cyan: \"#00bbbb\",\n white: \"#eeeeee\",\n brightBlack: \"#555555\",\n brightRed: \"#ff5555\",\n brightGreen: \"#00ff00\",\n brightYellow: \"#ffff55\",\n brightBlue: \"#5555ff\",\n brightMagenta: \"#ff55ff\",\n brightCyan: \"#55ffff\",\n brightWhite: \"#ffffff\"\n};\nfunction createColorPalette(namedColorsMap = defaultNamedColorsMap) {\n function namedColor(name) {\n return namedColorsMap[name];\n }\n function rgbColor(rgb) {\n return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, \"0\")).join(\"\")}`;\n }\n let colorTable;\n function getColorTable() {\n if (colorTable) {\n return colorTable;\n }\n colorTable = [];\n for (let i = 0; i < namedColors.length; i++) {\n colorTable.push(namedColor(namedColors[i]));\n }\n let levels = [0, 95, 135, 175, 215, 255];\n for (let r = 0; r < 6; r++) {\n for (let g = 0; g < 6; g++) {\n for (let b = 0; b < 6; b++) {\n colorTable.push(rgbColor([levels[r], levels[g], levels[b]]));\n }\n }\n }\n let level = 8;\n for (let i = 0; i < 24; i++, level += 10) {\n colorTable.push(rgbColor([level, level, level]));\n }\n return colorTable;\n }\n function tableColor(index) {\n return getColorTable()[index];\n }\n function value(color) {\n switch (color.type) {\n case \"named\":\n return namedColor(color.name);\n case \"rgb\":\n return rgbColor(color.rgb);\n case \"table\":\n return tableColor(color.index);\n }\n }\n return {\n value\n };\n}\n\nfunction tokenizeAnsiWithTheme(theme, fileContents, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const lines = splitLines(fileContents);\n const colorPalette = createColorPalette(Object.fromEntries(namedColors.map(name => [\n name,\n theme.colors?.[`terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`],\n ])));\n const parser = createAnsiSequenceParser();\n return lines.map(line => parser.parse(line[0]).map((token) => {\n let color;\n let bgColor;\n if (token.decorations.has('reverse')) {\n color = token.background ? colorPalette.value(token.background) : theme.bg;\n bgColor = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n }\n else {\n color = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n bgColor = token.background ? colorPalette.value(token.background) : undefined;\n }\n color = applyColorReplacements(color, colorReplacements);\n bgColor = applyColorReplacements(bgColor, colorReplacements);\n if (token.decorations.has('dim'))\n color = dimColor(color);\n let fontStyle = FontStyle.None;\n if (token.decorations.has('bold'))\n fontStyle |= FontStyle.Bold;\n if (token.decorations.has('italic'))\n fontStyle |= FontStyle.Italic;\n if (token.decorations.has('underline'))\n fontStyle |= FontStyle.Underline;\n return {\n content: token.value,\n offset: line[1], // TODO: more accurate offset? might need to fork ansi-sequence-parser\n color,\n bgColor,\n fontStyle,\n };\n }));\n}\n/**\n * Adds 50% alpha to a hex color string or the \"-dim\" postfix to a CSS variable\n */\nfunction dimColor(color) {\n const hexMatch = color.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);\n if (hexMatch) {\n if (hexMatch[3]) {\n // convert from #rrggbbaa to #rrggbb(aa/2)\n const alpha = Math.round(Number.parseInt(hexMatch[3], 16) / 2)\n .toString(16)\n .padStart(2, '0');\n return `#${hexMatch[1]}${hexMatch[2]}${alpha}`;\n }\n else if (hexMatch[2]) {\n // convert from #rrggbb to #rrggbb80\n return `#${hexMatch[1]}${hexMatch[2]}80`;\n }\n else {\n // convert from #rgb to #rrggbb80\n return `#${Array.from(hexMatch[1])\n .map(x => `${x}${x}`)\n .join('')}80`;\n }\n }\n const cssVarMatch = color.match(/var\\((--[\\w-]+-ansi-[\\w-]+)\\)/);\n if (cssVarMatch)\n return `var(${cssVarMatch[1]}-dim)`;\n return color;\n}\n\nclass ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = 'ShikiError';\n }\n}\n\n/**\n * GrammarState is a special reference object that holds the state of a grammar.\n *\n * It's used to highlight code snippets that are part of the target language.\n */\nclass GrammarState {\n _stack;\n lang;\n theme;\n constructor(_stack, lang, theme) {\n this._stack = _stack;\n this.lang = lang;\n this.theme = theme;\n }\n get scopes() {\n return getScopes(this._stack);\n }\n toJSON() {\n return {\n lang: this.lang,\n theme: this.theme,\n scopes: this.scopes,\n };\n }\n}\nfunction getScopes(stack) {\n const scopes = [];\n const visited = new Set();\n function pushScope(stack) {\n if (visited.has(stack))\n return;\n visited.add(stack);\n const name = stack?.nameScopesList?.scopeName;\n if (name)\n scopes.push(name);\n if (stack.parent)\n pushScope(stack.parent);\n }\n pushScope(stack);\n return scopes;\n}\nfunction getGrammarStack(state) {\n if (!(state instanceof GrammarState))\n throw new ShikiError('Invalid grammar state');\n // @ts-expect-error _stack is private\n return state._stack;\n}\n\n/**\n * Code to tokens, with a simple theme.\n */\nfunction codeToTokensBase(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n return splitLines(code).map(line => [{ content: line[0], offset: line[1] }]);\n const { theme, colorMap } = internal.setTheme(themeName);\n if (lang === 'ansi')\n return tokenizeAnsiWithTheme(theme, code, options);\n const _grammar = internal.getLanguage(lang);\n if (options.grammarState) {\n if (options.grammarState.lang !== _grammar.name) {\n throw new ShikiError(`Grammar state language \"${options.grammarState.lang}\" does not match highlight language \"${_grammar.name}\"`);\n }\n if (options.grammarState.theme !== themeName) {\n throw new ShikiError(`Grammar state theme \"${options.grammarState.theme}\" does not match highlight theme \"${themeName}\"`);\n }\n }\n return tokenizeWithTheme(code, _grammar, theme, colorMap, options);\n}\nfunction getLastGrammarState(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n throw new ShikiError('Plain language does not have grammar state');\n if (lang === 'ansi')\n throw new ShikiError('ANSI language does not have grammar state');\n const { theme, colorMap } = internal.setTheme(themeName);\n const _grammar = internal.getLanguage(lang);\n return new GrammarState(_tokenizeWithTheme(code, _grammar, theme, colorMap, options).stateStack, _grammar.name, theme.name);\n}\nfunction tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n return _tokenizeWithTheme(code, grammar, theme, colorMap, options).tokens;\n}\nfunction _tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const { tokenizeMaxLineLength = 0, tokenizeTimeLimit = 500, } = options;\n const lines = splitLines(code);\n let stateStack = options.grammarState\n ? getGrammarStack(options.grammarState)\n : options.grammarContextCode != null\n ? _tokenizeWithTheme(options.grammarContextCode, grammar, theme, colorMap, {\n ...options,\n grammarState: undefined,\n grammarContextCode: undefined,\n }).stateStack\n : INITIAL;\n let actual = [];\n const final = [];\n const themeSettingsSelectors = [];\n if (options.includeExplanation) {\n for (const setting of theme.settings) {\n let selectors;\n switch (typeof setting.scope) {\n case 'string':\n selectors = setting.scope.split(/,/).map(scope => scope.trim());\n break;\n case 'object':\n selectors = setting.scope;\n break;\n default:\n continue;\n }\n themeSettingsSelectors.push({\n settings: setting,\n selectors: selectors.map(selector => selector.split(/ /)),\n });\n }\n }\n for (let i = 0, len = lines.length; i < len; i++) {\n const [line, lineOffset] = lines[i];\n if (line === '') {\n actual = [];\n final.push([]);\n continue;\n }\n // Do not attempt to tokenize if the line length is longer than the `tokenizationMaxLineLength`\n if (tokenizeMaxLineLength > 0 && line.length >= tokenizeMaxLineLength) {\n actual = [];\n final.push([{\n content: line,\n offset: lineOffset,\n color: '',\n fontStyle: 0,\n }]);\n continue;\n }\n let resultWithScopes;\n let tokensWithScopes;\n let tokensWithScopesIndex;\n if (options.includeExplanation) {\n resultWithScopes = grammar.tokenizeLine(line, stateStack);\n tokensWithScopes = resultWithScopes.tokens;\n tokensWithScopesIndex = 0;\n }\n const result = grammar.tokenizeLine2(line, stateStack, tokenizeTimeLimit);\n const tokensLength = result.tokens.length / 2;\n for (let j = 0; j < tokensLength; j++) {\n const startIndex = result.tokens[2 * j];\n const nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length;\n if (startIndex === nextStartIndex)\n continue;\n const metadata = result.tokens[2 * j + 1];\n const color = applyColorReplacements(colorMap[StackElementMetadata.getForeground(metadata)], colorReplacements);\n const fontStyle = StackElementMetadata.getFontStyle(metadata);\n const token = {\n content: line.substring(startIndex, nextStartIndex),\n offset: lineOffset + startIndex,\n color,\n fontStyle,\n };\n if (options.includeExplanation) {\n token.explanation = [];\n let offset = 0;\n while (startIndex + offset < nextStartIndex) {\n const tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];\n const tokenWithScopesText = line.substring(tokenWithScopes.startIndex, tokenWithScopes.endIndex);\n offset += tokenWithScopesText.length;\n token.explanation.push({\n content: tokenWithScopesText,\n scopes: explainThemeScopes(themeSettingsSelectors, tokenWithScopes.scopes),\n });\n tokensWithScopesIndex += 1;\n }\n }\n actual.push(token);\n }\n final.push(actual);\n actual = [];\n stateStack = result.ruleStack;\n }\n return {\n tokens: final,\n stateStack,\n };\n}\nfunction explainThemeScopes(themeSelectors, scopes) {\n const result = [];\n for (let i = 0, len = scopes.length; i < len; i++) {\n const parentScopes = scopes.slice(0, i);\n const scope = scopes[i];\n result[i] = {\n scopeName: scope,\n themeMatches: explainThemeScope(themeSelectors, scope, parentScopes),\n };\n }\n return result;\n}\nfunction matchesOne(selector, scope) {\n return selector === scope\n || (scope.substring(0, selector.length) === selector && scope[selector.length] === '.');\n}\nfunction matches(selectors, scope, parentScopes) {\n if (!matchesOne(selectors[selectors.length - 1], scope))\n return false;\n let selectorParentIndex = selectors.length - 2;\n let parentIndex = parentScopes.length - 1;\n while (selectorParentIndex >= 0 && parentIndex >= 0) {\n if (matchesOne(selectors[selectorParentIndex], parentScopes[parentIndex]))\n selectorParentIndex -= 1;\n parentIndex -= 1;\n }\n if (selectorParentIndex === -1)\n return true;\n return false;\n}\nfunction explainThemeScope(themeSettingsSelectors, scope, parentScopes) {\n const result = [];\n for (const { selectors, settings } of themeSettingsSelectors) {\n for (const selectorPieces of selectors) {\n if (matches(selectorPieces, scope, parentScopes)) {\n result.push(settings);\n break; // continue to the next theme settings\n }\n }\n }\n return result;\n}\n\n/**\n * Get tokens with multiple themes\n */\nfunction codeToTokensWithThemes(internal, code, options) {\n const themes = Object.entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }));\n const tokens = syncThemesTokenization(...themes.map(t => codeToTokensBase(internal, code, {\n ...options,\n theme: t.theme,\n })));\n const mergedTokens = tokens[0]\n .map((line, lineIdx) => line\n .map((_token, tokenIdx) => {\n const mergedToken = {\n content: _token.content,\n variants: {},\n offset: _token.offset,\n };\n if ('includeExplanation' in options && options.includeExplanation) {\n mergedToken.explanation = _token.explanation;\n }\n tokens.forEach((t, themeIdx) => {\n const { content: _, explanation: __, offset: ___, ...styles } = t[lineIdx][tokenIdx];\n mergedToken.variants[themes[themeIdx].color] = styles;\n });\n return mergedToken;\n }));\n return mergedTokens;\n}\n/**\n * Break tokens from multiple themes into same tokenization.\n *\n * For example, given two themes that tokenize `console.log(\"hello\")` as:\n *\n * - `console . log (\" hello \")` (6 tokens)\n * - `console .log ( \"hello\" )` (5 tokens)\n *\n * This function will return:\n *\n * - `console . log ( \" hello \" )` (8 tokens)\n * - `console . log ( \" hello \" )` (8 tokens)\n */\nfunction syncThemesTokenization(...themes) {\n const outThemes = themes.map(() => []);\n const count = themes.length;\n for (let i = 0; i < themes[0].length; i++) {\n const lines = themes.map(t => t[i]);\n const outLines = outThemes.map(() => []);\n outThemes.forEach((t, i) => t.push(outLines[i]));\n const indexes = lines.map(() => 0);\n const current = lines.map(l => l[0]);\n while (current.every(t => t)) {\n const minLength = Math.min(...current.map(t => t.content.length));\n for (let n = 0; n < count; n++) {\n const token = current[n];\n if (token.content.length === minLength) {\n outLines[n].push(token);\n indexes[n] += 1;\n current[n] = lines[n][indexes[n]];\n }\n else {\n outLines[n].push({\n ...token,\n content: token.content.slice(0, minLength),\n });\n current[n] = {\n ...token,\n content: token.content.slice(minLength),\n offset: token.offset + minLength,\n };\n }\n }\n }\n }\n return outThemes;\n}\n\n/**\n * High-level code-to-tokens API.\n *\n * It will use `codeToTokensWithThemes` or `codeToTokensBase` based on the options.\n */\nfunction codeToTokens(internal, code, options) {\n let bg;\n let fg;\n let tokens;\n let themeName;\n let rootStyle;\n if ('themes' in options) {\n const { defaultColor = 'light', cssVariablePrefix = '--shiki-', } = options;\n const themes = Object.entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }))\n .sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);\n if (themes.length === 0)\n throw new ShikiError('`themes` option must not be empty');\n const themeTokens = codeToTokensWithThemes(internal, code, options);\n if (defaultColor && !themes.find(t => t.color === defaultColor))\n throw new ShikiError(`\\`themes\\` option must contain the defaultColor key \\`${defaultColor}\\``);\n const themeRegs = themes.map(t => internal.getTheme(t.theme));\n const themesOrder = themes.map(t => t.color);\n tokens = themeTokens\n .map(line => line.map(token => mergeToken(token, themesOrder, cssVariablePrefix, defaultColor)));\n const themeColorReplacements = themes.map(t => resolveColorReplacements(t.theme, options));\n fg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}:`) + (applyColorReplacements(themeRegs[idx].fg, themeColorReplacements[idx]) || 'inherit')).join(';');\n bg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}-bg:`) + (applyColorReplacements(themeRegs[idx].bg, themeColorReplacements[idx]) || 'inherit')).join(';');\n themeName = `shiki-themes ${themeRegs.map(t => t.name).join(' ')}`;\n rootStyle = defaultColor ? undefined : [fg, bg].join(';');\n }\n else if ('theme' in options) {\n const colorReplacements = resolveColorReplacements(options.theme, options.colorReplacements);\n tokens = codeToTokensBase(internal, code, options);\n const _theme = internal.getTheme(options.theme);\n bg = applyColorReplacements(_theme.bg, colorReplacements);\n fg = applyColorReplacements(_theme.fg, colorReplacements);\n themeName = _theme.name;\n }\n else {\n throw new ShikiError('Invalid options, either `theme` or `themes` must be provided');\n }\n return {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n };\n}\nfunction mergeToken(merged, variantsOrder, cssVariablePrefix, defaultColor) {\n const token = {\n content: merged.content,\n explanation: merged.explanation,\n offset: merged.offset,\n };\n const styles = variantsOrder.map(t => getTokenStyleObject(merged.variants[t]));\n // Get all style keys, for themes that missing some style, we put `inherit` to override as needed\n const styleKeys = new Set(styles.flatMap(t => Object.keys(t)));\n const mergedStyles = styles.reduce((acc, cur, idx) => {\n for (const key of styleKeys) {\n const value = cur[key] || 'inherit';\n if (idx === 0 && defaultColor) {\n acc[key] = value;\n }\n else {\n const keyName = key === 'color' ? '' : key === 'background-color' ? '-bg' : `-${key}`;\n const varKey = cssVariablePrefix + variantsOrder[idx] + (key === 'color' ? '' : keyName);\n if (acc[key])\n acc[key] += `;${varKey}:${value}`;\n else\n acc[key] = `${varKey}:${value}`;\n }\n }\n return acc;\n }, {});\n token.htmlStyle = defaultColor\n ? stringifyTokenStyle(mergedStyles)\n : Object.values(mergedStyles).join(';');\n return token;\n}\n\n/**\n * A built-in transformer to add decorations to the highlighted code.\n */\nfunction transformerDecorations() {\n const map = new WeakMap();\n function getContext(shiki) {\n if (!map.has(shiki.meta)) {\n const converter = createPositionConverter(shiki.source);\n function normalizePosition(p) {\n if (typeof p === 'number') {\n return {\n ...converter.indexToPos(p),\n offset: p,\n };\n }\n else {\n return {\n ...p,\n offset: converter.posToIndex(p.line, p.character),\n };\n }\n }\n const decorations = (shiki.options.decorations || [])\n .map((d) => ({\n ...d,\n start: normalizePosition(d.start),\n end: normalizePosition(d.end),\n }));\n verifyIntersections(decorations);\n map.set(shiki.meta, {\n decorations,\n converter,\n source: shiki.source,\n });\n }\n return map.get(shiki.meta);\n }\n function verifyIntersections(items) {\n for (let i = 0; i < items.length; i++) {\n const foo = items[i];\n if (foo.start.offset > foo.end.offset)\n throw new ShikiError(`Invalid decoration range: ${JSON.stringify(foo.start)} - ${JSON.stringify(foo.end)}`);\n for (let j = i + 1; j < items.length; j++) {\n const bar = items[j];\n const isFooHasBarStart = foo.start.offset < bar.start.offset && bar.start.offset < foo.end.offset;\n const isFooHasBarEnd = foo.start.offset < bar.end.offset && bar.end.offset < foo.end.offset;\n const isBarHasFooStart = bar.start.offset < foo.start.offset && foo.start.offset < bar.end.offset;\n const isBarHasFooEnd = bar.start.offset < foo.end.offset && foo.end.offset < bar.end.offset;\n if (isFooHasBarStart || isFooHasBarEnd || isBarHasFooStart || isBarHasFooEnd) {\n if (isFooHasBarEnd && isFooHasBarEnd)\n continue; // nested\n if (isBarHasFooStart && isBarHasFooEnd)\n continue; // nested\n throw new ShikiError(`Decorations ${JSON.stringify(foo.start)} and ${JSON.stringify(bar.start)} intersect.`);\n }\n }\n }\n }\n return {\n name: 'shiki:decorations',\n tokens(tokens) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const breakpoints = ctx.decorations.flatMap(d => [d.start.offset, d.end.offset]);\n const splitted = splitTokens(tokens, breakpoints);\n return splitted;\n },\n code(codeEl) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const lines = Array.from(codeEl.children).filter(i => i.type === 'element' && i.tagName === 'span');\n if (lines.length !== ctx.converter.lines.length)\n throw new ShikiError(`Number of lines in code element (${lines.length}) does not match the number of lines in the source (${ctx.converter.lines.length}). Failed to apply decorations.`);\n function applyLineSection(line, start, end, decoration) {\n const lineEl = lines[line];\n let text = '';\n let startIndex = -1;\n let endIndex = -1;\n function stringify(el) {\n if (el.type === 'text')\n return el.value;\n if (el.type === 'element')\n return el.children.map(stringify).join('');\n return '';\n }\n if (start === 0)\n startIndex = 0;\n if (end === 0)\n endIndex = 0;\n if (end === Number.POSITIVE_INFINITY)\n endIndex = lineEl.children.length;\n if (startIndex === -1 || endIndex === -1) {\n for (let i = 0; i < lineEl.children.length; i++) {\n text += stringify(lineEl.children[i]);\n if (startIndex === -1 && text.length === start)\n startIndex = i + 1;\n if (endIndex === -1 && text.length === end)\n endIndex = i + 1;\n }\n }\n if (startIndex === -1)\n throw new ShikiError(`Failed to find start index for decoration ${JSON.stringify(decoration.start)}`);\n if (endIndex === -1)\n throw new ShikiError(`Failed to find end index for decoration ${JSON.stringify(decoration.end)}`);\n const children = lineEl.children.slice(startIndex, endIndex);\n // Full line decoration\n if (!decoration.alwaysWrap && children.length === lineEl.children.length) {\n applyDecoration(lineEl, decoration, 'line');\n }\n // Single token decoration\n else if (!decoration.alwaysWrap && children.length === 1 && children[0].type === 'element') {\n applyDecoration(children[0], decoration, 'token');\n }\n // Create a wrapper for the decoration\n else {\n const wrapper = {\n type: 'element',\n tagName: 'span',\n properties: {},\n children,\n };\n applyDecoration(wrapper, decoration, 'wrapper');\n lineEl.children.splice(startIndex, children.length, wrapper);\n }\n }\n function applyLine(line, decoration) {\n lines[line] = applyDecoration(lines[line], decoration, 'line');\n }\n function applyDecoration(el, decoration, type) {\n const properties = decoration.properties || {};\n const transform = decoration.transform || (i => i);\n el.tagName = decoration.tagName || 'span';\n el.properties = {\n ...el.properties,\n ...properties,\n class: el.properties.class,\n };\n if (decoration.properties?.class)\n addClassToHast(el, decoration.properties.class);\n el = transform(el, type) || el;\n return el;\n }\n const lineApplies = [];\n // Apply decorations in reverse order so the nested ones get applied first.\n const sorted = ctx.decorations.sort((a, b) => b.start.offset - a.start.offset);\n for (const decoration of sorted) {\n const { start, end } = decoration;\n if (start.line === end.line) {\n applyLineSection(start.line, start.character, end.character, decoration);\n }\n else if (start.line < end.line) {\n applyLineSection(start.line, start.character, Number.POSITIVE_INFINITY, decoration);\n for (let i = start.line + 1; i < end.line; i++)\n lineApplies.unshift(() => applyLine(i, decoration));\n applyLineSection(end.line, 0, end.character, decoration);\n }\n }\n lineApplies.forEach(i => i());\n },\n };\n}\n\nconst builtInTransformers = [\n /* @__PURE__ */ transformerDecorations(),\n];\nfunction getTransformers(options) {\n return [\n ...options.transformers || [],\n ...builtInTransformers,\n ];\n}\n\nfunction codeToHast(internal, code, options, transformerContext = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options),\n}) {\n let input = code;\n for (const transformer of getTransformers(options))\n input = transformer.preprocess?.call(transformerContext, input, options) || input;\n let { tokens, fg, bg, themeName, rootStyle, } = codeToTokens(internal, input, options);\n const { mergeWhitespaces = true, } = options;\n if (mergeWhitespaces === true)\n tokens = mergeWhitespaceTokens(tokens);\n else if (mergeWhitespaces === 'never')\n tokens = splitWhitespaceTokens(tokens);\n const contextSource = {\n ...transformerContext,\n get source() {\n return input;\n },\n };\n for (const transformer of getTransformers(options))\n tokens = transformer.tokens?.call(contextSource, tokens) || tokens;\n return tokensToHast(tokens, {\n ...options,\n fg,\n bg,\n themeName,\n rootStyle,\n }, contextSource);\n}\nfunction tokensToHast(tokens, options, transformerContext) {\n const transformers = getTransformers(options);\n const lines = [];\n const root = {\n type: 'root',\n children: [],\n };\n const { structure = 'classic', } = options;\n let preNode = {\n type: 'element',\n tagName: 'pre',\n properties: {\n class: `shiki ${options.themeName || ''}`,\n style: options.rootStyle || `background-color:${options.bg};color:${options.fg}`,\n tabindex: '0',\n ...Object.fromEntries(Array.from(Object.entries(options.meta || {}))\n .filter(([key]) => !key.startsWith('_'))),\n },\n children: [],\n };\n let codeNode = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: lines,\n };\n const lineNodes = [];\n const context = {\n ...transformerContext,\n structure,\n addClassToHast,\n get source() {\n return transformerContext.source;\n },\n get tokens() {\n return tokens;\n },\n get options() {\n return options;\n },\n get root() {\n return root;\n },\n get pre() {\n return preNode;\n },\n get code() {\n return codeNode;\n },\n get lines() {\n return lineNodes;\n },\n };\n tokens.forEach((line, idx) => {\n if (idx) {\n if (structure === 'inline')\n root.children.push({ type: 'element', tagName: 'br', properties: {}, children: [] });\n else if (structure === 'classic')\n lines.push({ type: 'text', value: '\\n' });\n }\n let lineNode = {\n type: 'element',\n tagName: 'span',\n properties: { class: 'line' },\n children: [],\n };\n let col = 0;\n for (const token of line) {\n let tokenNode = {\n type: 'element',\n tagName: 'span',\n properties: {},\n children: [{ type: 'text', value: token.content }],\n };\n const style = token.htmlStyle || stringifyTokenStyle(getTokenStyleObject(token));\n if (style)\n tokenNode.properties.style = style;\n for (const transformer of transformers)\n tokenNode = transformer?.span?.call(context, tokenNode, idx + 1, col, lineNode) || tokenNode;\n if (structure === 'inline')\n root.children.push(tokenNode);\n else if (structure === 'classic')\n lineNode.children.push(tokenNode);\n col += token.content.length;\n }\n if (structure === 'classic') {\n for (const transformer of transformers)\n lineNode = transformer?.line?.call(context, lineNode, idx + 1) || lineNode;\n lineNodes.push(lineNode);\n lines.push(lineNode);\n }\n });\n if (structure === 'classic') {\n for (const transformer of transformers)\n codeNode = transformer?.code?.call(context, codeNode) || codeNode;\n preNode.children.push(codeNode);\n for (const transformer of transformers)\n preNode = transformer?.pre?.call(context, preNode) || preNode;\n root.children.push(preNode);\n }\n let result = root;\n for (const transformer of transformers)\n result = transformer?.root?.call(context, result) || result;\n return result;\n}\nfunction mergeWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n let carryOnContent = '';\n let firstOffset = 0;\n line.forEach((token, idx) => {\n const isUnderline = token.fontStyle && token.fontStyle & FontStyle.Underline;\n const couldMerge = !isUnderline;\n if (couldMerge && token.content.match(/^\\s+$/) && line[idx + 1]) {\n if (!firstOffset)\n firstOffset = token.offset;\n carryOnContent += token.content;\n }\n else {\n if (carryOnContent) {\n if (couldMerge) {\n newLine.push({\n ...token,\n offset: firstOffset,\n content: carryOnContent + token.content,\n });\n }\n else {\n newLine.push({\n content: carryOnContent,\n offset: firstOffset,\n }, token);\n }\n firstOffset = 0;\n carryOnContent = '';\n }\n else {\n newLine.push(token);\n }\n }\n });\n return newLine;\n });\n}\nfunction splitWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n return line.flatMap((token) => {\n if (token.content.match(/^\\s+$/))\n return token;\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n const match = token.content.match(/^(\\s*)(.*?)(\\s*)$/);\n if (!match)\n return token;\n const [, leading, content, trailing] = match;\n if (!leading && !trailing)\n return token;\n const expanded = [{\n ...token,\n offset: token.offset + leading.length,\n content,\n }];\n if (leading) {\n expanded.unshift({\n content: leading,\n offset: token.offset,\n });\n }\n if (trailing) {\n expanded.push({\n content: trailing,\n offset: token.offset + leading.length + content.length,\n });\n }\n return expanded;\n });\n });\n}\n\n/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nconst htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n];\n\n/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nclass Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property;\n this.normal = normal;\n if (space) {\n this.space = space;\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {};\n/** @type {Normal} */\nSchema.prototype.normal = {};\n/** @type {string|null} */\nSchema.prototype.space = null;\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nfunction merge(definitions, space) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n let index = -1;\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property);\n Object.assign(normal, definitions[index].normal);\n }\n\n return new Schema(property, normal, space)\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction normalize(value) {\n return value.toLowerCase()\n}\n\nclass Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property;\n /** @type {string} */\n this.attribute = attribute;\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null;\nInfo.prototype.boolean = false;\nInfo.prototype.booleanish = false;\nInfo.prototype.overloadedBoolean = false;\nInfo.prototype.number = false;\nInfo.prototype.commaSeparated = false;\nInfo.prototype.spaceSeparated = false;\nInfo.prototype.commaOrSpaceSeparated = false;\nInfo.prototype.mustUseProperty = false;\nInfo.prototype.defined = false;\n\nlet powers = 0;\n\nconst boolean = increment();\nconst booleanish = increment();\nconst overloadedBoolean = increment();\nconst number = increment();\nconst spaceSeparated = increment();\nconst commaSeparated = increment();\nconst commaOrSpaceSeparated = increment();\n\nfunction increment() {\n return 2 ** ++powers\n}\n\nvar types = /*#__PURE__*/Object.freeze({\n __proto__: null,\n boolean: boolean,\n booleanish: booleanish,\n commaOrSpaceSeparated: commaOrSpaceSeparated,\n commaSeparated: commaSeparated,\n number: number,\n overloadedBoolean: overloadedBoolean,\n spaceSeparated: spaceSeparated\n});\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types);\n\nclass DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1;\n\n super(property, attribute);\n\n mark(this, 'space', space);\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index];\n mark(this, checks[index], (mask & types[check]) === types[check]);\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true;\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value;\n }\n}\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\n\nconst own$3 = {}.hasOwnProperty;\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nfunction create(definition) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n /** @type {string} */\n let prop;\n\n for (prop in definition.properties) {\n if (own$3.call(definition.properties, prop)) {\n const value = definition.properties[prop];\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n );\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true;\n }\n\n property[prop] = info;\n\n normal[normalize(prop)] = prop;\n normal[normalize(info.attribute)] = prop;\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n\nconst xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n});\n\nconst xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n});\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n\nconst xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n});\n\nconst aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n});\n\nconst html$3 = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n});\n\nconst svg$1 = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n});\n\n/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\n\nconst valid = /^data[-\\w.:]+$/i;\nconst dash = /-[a-z]/g;\nconst cap = /[A-Z]/g;\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nfunction find(schema, value) {\n const normal = normalize(value);\n let prop = value;\n let Type = Info;\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase);\n prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1);\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4);\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab);\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes;\n }\n\n value = 'data' + dashes;\n }\n }\n\n Type = DefinedInfo;\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n\n/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nconst html$2 = merge([xml, xlink, xmlns, aria, html$3], 'html');\nconst svg = merge([xml, xlink, xmlns, aria, svg$1], 'svg');\n\n/**\n * @callback Handler\n * Handle a value, with a certain ID field set to a certain value.\n * The ID field is passed to `zwitch`, and it’s value is this function’s\n * place on the `handlers` record.\n * @param {...any} parameters\n * Arbitrary parameters passed to the zwitch.\n * The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback UnknownHandler\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @param {unknown} value\n * An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback InvalidHandler\n * Handle values that do not have a certain ID field.\n * @param {unknown} value\n * Any unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n * This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @typedef Options\n * Configuration (required).\n * @property {Invalid} [invalid]\n * Handler to use for invalid values.\n * @property {Unknown} [unknown]\n * Handler to use for unknown values.\n * @property {Handlers} [handlers]\n * Handlers to use.\n */\n\nconst own$2 = {}.hasOwnProperty;\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @param {string} key\n * Field to switch on.\n * @param {Options<Invalid, Unknown, Handlers>} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters<Handlers[keyof Handlers]>): ReturnType<Handlers[keyof Handlers]>, (...parameters: Parameters<Unknown>): ReturnType<Unknown>}}\n */\nfunction zwitch(key, options) {\n const settings = options || {};\n\n /**\n * Handle one value.\n *\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid” handler will be called.\n * If `value` has an unknown `key`, the special “unknown” handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @this {unknown}\n * Any context object.\n * @param {unknown} [value]\n * Any value.\n * @param {...unknown} parameters\n * Arbitrary parameters passed to the zwitch.\n * @property {Handler} invalid\n * Handle for values that do not have a certain ID field.\n * @property {Handler} unknown\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @property {Handlers} handlers\n * Record of handlers.\n * @returns {unknown}\n * Anything.\n */\n function one(value, ...parameters) {\n /** @type {Handler|undefined} */\n let fn = one.invalid;\n const handlers = one.handlers;\n\n if (value && own$2.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key]);\n // @ts-expect-error Indexable.\n fn = own$2.call(handlers, id) ? handlers[id] : one.unknown;\n }\n\n if (fn) {\n return fn.call(this, value, ...parameters)\n }\n }\n\n one.handlers = settings.handlers || {};\n one.invalid = settings.invalid;\n one.unknown = settings.unknown;\n\n // @ts-expect-error: matches!\n return one\n}\n\n/**\n * @typedef CoreOptions\n * @property {Array<string>} [subset=[]]\n * Whether to only escape the given subset of characters.\n * @property {boolean} [escapeOnly=false]\n * Whether to only escape possibly dangerous characters.\n * Those characters are `\"`, `&`, `'`, `<`, `>`, and `` ` ``.\n *\n * @typedef FormatOptions\n * @property {(code: number, next: number, options: CoreWithFormatOptions) => string} format\n * Format strategy.\n *\n * @typedef {CoreOptions & FormatOptions & import('./util/format-smart.js').FormatSmartOptions} CoreWithFormatOptions\n */\n\n/**\n * Encode certain characters in `value`.\n *\n * @param {string} value\n * @param {CoreWithFormatOptions} options\n * @returns {string}\n */\nfunction core(value, options) {\n value = value.replace(\n options.subset ? charactersToExpression(options.subset) : /[\"&'<>`]/g,\n basic\n );\n\n if (options.subset || options.escapeOnly) {\n return value\n }\n\n return (\n value\n // Surrogate pairs.\n .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, surrogate)\n // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n // non-ASCII ones).\n .replace(\n // eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n /[\\x01-\\t\\v\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g,\n basic\n )\n )\n\n /**\n * @param {string} pair\n * @param {number} index\n * @param {string} all\n */\n function surrogate(pair, index, all) {\n return options.format(\n (pair.charCodeAt(0) - 0xd800) * 0x400 +\n pair.charCodeAt(1) -\n 0xdc00 +\n 0x10000,\n all.charCodeAt(index + 2),\n options\n )\n }\n\n /**\n * @param {string} character\n * @param {number} index\n * @param {string} all\n */\n function basic(character, index, all) {\n return options.format(\n character.charCodeAt(0),\n all.charCodeAt(index + 1),\n options\n )\n }\n}\n\n/**\n * @param {Array<string>} subset\n * @returns {RegExp}\n */\nfunction charactersToExpression(subset) {\n /** @type {Array<string>} */\n const groups = [];\n let index = -1;\n\n while (++index < subset.length) {\n groups.push(subset[index].replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'));\n }\n\n return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\n\n/**\n * Configurable ways to encode characters as hexadecimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nfunction toHexadecimal(code, next, omit) {\n const value = '&#x' + code.toString(16).toUpperCase();\n return omit && next && !/[\\dA-Fa-f]/.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n\n/**\n * Configurable ways to encode characters as decimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nfunction toDecimal(code, next, omit) {\n const value = '&#' + String(code);\n return omit && next && !/\\d/.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n\n/**\n * List of legacy HTML named character references that don’t need a trailing semicolon.\n *\n * @type {Array<string>}\n */\nconst characterEntitiesLegacy = [\n 'AElig',\n 'AMP',\n 'Aacute',\n 'Acirc',\n 'Agrave',\n 'Aring',\n 'Atilde',\n 'Auml',\n 'COPY',\n 'Ccedil',\n 'ETH',\n 'Eacute',\n 'Ecirc',\n 'Egrave',\n 'Euml',\n 'GT',\n 'Iacute',\n 'Icirc',\n 'Igrave',\n 'Iuml',\n 'LT',\n 'Ntilde',\n 'Oacute',\n 'Ocirc',\n 'Ograve',\n 'Oslash',\n 'Otilde',\n 'Ouml',\n 'QUOT',\n 'REG',\n 'THORN',\n 'Uacute',\n 'Ucirc',\n 'Ugrave',\n 'Uuml',\n 'Yacute',\n 'aacute',\n 'acirc',\n 'acute',\n 'aelig',\n 'agrave',\n 'amp',\n 'aring',\n 'atilde',\n 'auml',\n 'brvbar',\n 'ccedil',\n 'cedil',\n 'cent',\n 'copy',\n 'curren',\n 'deg',\n 'divide',\n 'eacute',\n 'ecirc',\n 'egrave',\n 'eth',\n 'euml',\n 'frac12',\n 'frac14',\n 'frac34',\n 'gt',\n 'iacute',\n 'icirc',\n 'iexcl',\n 'igrave',\n 'iquest',\n 'iuml',\n 'laquo',\n 'lt',\n 'macr',\n 'micro',\n 'middot',\n 'nbsp',\n 'not',\n 'ntilde',\n 'oacute',\n 'ocirc',\n 'ograve',\n 'ordf',\n 'ordm',\n 'oslash',\n 'otilde',\n 'ouml',\n 'para',\n 'plusmn',\n 'pound',\n 'quot',\n 'raquo',\n 'reg',\n 'sect',\n 'shy',\n 'sup1',\n 'sup2',\n 'sup3',\n 'szlig',\n 'thorn',\n 'times',\n 'uacute',\n 'ucirc',\n 'ugrave',\n 'uml',\n 'uuml',\n 'yacute',\n 'yen',\n 'yuml'\n];\n\n/**\n * Map of named character references from HTML 4.\n *\n * @type {Record<string, string>}\n */\nconst characterEntitiesHtml4 = {\n nbsp: ' ',\n iexcl: '¡',\n cent: '¢',\n pound: '£',\n curren: '¤',\n yen: '¥',\n brvbar: '¦',\n sect: '§',\n uml: '¨',\n copy: '©',\n ordf: 'ª',\n laquo: '«',\n not: '¬',\n shy: '­',\n reg: '®',\n macr: '¯',\n deg: '°',\n plusmn: '±',\n sup2: '²',\n sup3: '³',\n acute: '´',\n micro: 'µ',\n para: '¶',\n middot: '·',\n cedil: '¸',\n sup1: '¹',\n ordm: 'º',\n raquo: '»',\n frac14: '¼',\n frac12: '½',\n frac34: '¾',\n iquest: '¿',\n Agrave: 'À',\n Aacute: 'Á',\n Acirc: 'Â',\n Atilde: 'Ã',\n Auml: 'Ä',\n Aring: 'Å',\n AElig: 'Æ',\n Ccedil: 'Ç',\n Egrave: 'È',\n Eacute: 'É',\n Ecirc: 'Ê',\n Euml: 'Ë',\n Igrave: 'Ì',\n Iacute: 'Í',\n Icirc: 'Î',\n Iuml: 'Ï',\n ETH: 'Ð',\n Ntilde: 'Ñ',\n Ograve: 'Ò',\n Oacute: 'Ó',\n Ocirc: 'Ô',\n Otilde: 'Õ',\n Ouml: 'Ö',\n times: '×',\n Oslash: 'Ø',\n Ugrave: 'Ù',\n Uacute: 'Ú',\n Ucirc: 'Û',\n Uuml: 'Ü',\n Yacute: 'Ý',\n THORN: 'Þ',\n szlig: 'ß',\n agrave: 'à',\n aacute: 'á',\n acirc: 'â',\n atilde: 'ã',\n auml: 'ä',\n aring: 'å',\n aelig: 'æ',\n ccedil: 'ç',\n egrave: 'è',\n eacute: 'é',\n ecirc: 'ê',\n euml: 'ë',\n igrave: 'ì',\n iacute: 'í',\n icirc: 'î',\n iuml: 'ï',\n eth: 'ð',\n ntilde: 'ñ',\n ograve: 'ò',\n oacute: 'ó',\n ocirc: 'ô',\n otilde: 'õ',\n ouml: 'ö',\n divide: '÷',\n oslash: 'ø',\n ugrave: 'ù',\n uacute: 'ú',\n ucirc: 'û',\n uuml: 'ü',\n yacute: 'ý',\n thorn: 'þ',\n yuml: 'ÿ',\n fnof: 'ƒ',\n Alpha: 'Α',\n Beta: 'Β',\n Gamma: 'Γ',\n Delta: 'Δ',\n Epsilon: 'Ε',\n Zeta: 'Ζ',\n Eta: 'Η',\n Theta: 'Θ',\n Iota: 'Ι',\n Kappa: 'Κ',\n Lambda: 'Λ',\n Mu: 'Μ',\n Nu: 'Ν',\n Xi: 'Ξ',\n Omicron: 'Ο',\n Pi: 'Π',\n Rho: 'Ρ',\n Sigma: 'Σ',\n Tau: 'Τ',\n Upsilon: 'Υ',\n Phi: 'Φ',\n Chi: 'Χ',\n Psi: 'Ψ',\n Omega: 'Ω',\n alpha: 'α',\n beta: 'β',\n gamma: 'γ',\n delta: 'δ',\n epsilon: 'ε',\n zeta: 'ζ',\n eta: 'η',\n theta: 'θ',\n iota: 'ι',\n kappa: 'κ',\n lambda: 'λ',\n mu: 'μ',\n nu: 'ν',\n xi: 'ξ',\n omicron: 'ο',\n pi: 'π',\n rho: 'ρ',\n sigmaf: 'ς',\n sigma: 'σ',\n tau: 'τ',\n upsilon: 'υ',\n phi: 'φ',\n chi: 'χ',\n psi: 'ψ',\n omega: 'ω',\n thetasym: 'ϑ',\n upsih: 'ϒ',\n piv: 'ϖ',\n bull: '•',\n hellip: '…',\n prime: '′',\n Prime: '″',\n oline: '‾',\n frasl: '⁄',\n weierp: '℘',\n image: 'ℑ',\n real: 'ℜ',\n trade: '™',\n alefsym: 'ℵ',\n larr: '←',\n uarr: '↑',\n rarr: '→',\n darr: '↓',\n harr: '↔',\n crarr: '↵',\n lArr: '⇐',\n uArr: '⇑',\n rArr: '⇒',\n dArr: '⇓',\n hArr: '⇔',\n forall: '∀',\n part: '∂',\n exist: '∃',\n empty: '∅',\n nabla: '∇',\n isin: '∈',\n notin: '∉',\n ni: '∋',\n prod: '∏',\n sum: '∑',\n minus: '−',\n lowast: '∗',\n radic: '√',\n prop: '∝',\n infin: '∞',\n ang: '∠',\n and: '∧',\n or: '∨',\n cap: '∩',\n cup: '∪',\n int: '∫',\n there4: '∴',\n sim: '∼',\n cong: '≅',\n asymp: '≈',\n ne: '≠',\n equiv: '≡',\n le: '≤',\n ge: '≥',\n sub: '⊂',\n sup: '⊃',\n nsub: '⊄',\n sube: '⊆',\n supe: '⊇',\n oplus: '⊕',\n otimes: '⊗',\n perp: '⊥',\n sdot: '⋅',\n lceil: '⌈',\n rceil: '⌉',\n lfloor: '⌊',\n rfloor: '⌋',\n lang: '〈',\n rang: '〉',\n loz: '◊',\n spades: '♠',\n clubs: '♣',\n hearts: '♥',\n diams: '♦',\n quot: '\"',\n amp: '&',\n lt: '<',\n gt: '>',\n OElig: 'Œ',\n oelig: 'œ',\n Scaron: 'Š',\n scaron: 'š',\n Yuml: 'Ÿ',\n circ: 'ˆ',\n tilde: '˜',\n ensp: ' ',\n emsp: ' ',\n thinsp: ' ',\n zwnj: '‌',\n zwj: '‍',\n lrm: '‎',\n rlm: '‏',\n ndash: '–',\n mdash: '—',\n lsquo: '‘',\n rsquo: '’',\n sbquo: '‚',\n ldquo: '“',\n rdquo: '”',\n bdquo: '„',\n dagger: '†',\n Dagger: '‡',\n permil: '‰',\n lsaquo: '‹',\n rsaquo: '›',\n euro: '€'\n};\n\n/**\n * List of legacy (that don’t need a trailing `;`) named references which could,\n * depending on what follows them, turn into a different meaning\n *\n * @type {Array<string>}\n */\nconst dangerous = [\n 'cent',\n 'copy',\n 'divide',\n 'gt',\n 'lt',\n 'not',\n 'para',\n 'times'\n];\n\nconst own$1 = {}.hasOwnProperty;\n\n/**\n * `characterEntitiesHtml4` but inverted.\n *\n * @type {Record<string, string>}\n */\nconst characters = {};\n\n/** @type {string} */\nlet key;\n\nfor (key in characterEntitiesHtml4) {\n if (own$1.call(characterEntitiesHtml4, key)) {\n characters[characterEntitiesHtml4[key]] = key;\n }\n}\n\n/**\n * Configurable ways to encode characters as named references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @param {boolean|undefined} attribute\n * @returns {string}\n */\nfunction toNamed(code, next, omit, attribute) {\n const character = String.fromCharCode(code);\n\n if (own$1.call(characters, character)) {\n const name = characters[character];\n const value = '&' + name;\n\n if (\n omit &&\n characterEntitiesLegacy.includes(name) &&\n !dangerous.includes(name) &&\n (!attribute ||\n (next &&\n next !== 61 /* `=` */ &&\n /[^\\da-z]/i.test(String.fromCharCode(next))))\n ) {\n return value\n }\n\n return value + ';'\n }\n\n return ''\n}\n\n/**\n * @typedef FormatSmartOptions\n * @property {boolean} [useNamedReferences=false]\n * Prefer named character references (`&amp;`) 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 // * `&#99;` vs `&#x63;` (decimal shorter)\n // * `&#100;` vs `&#x64;` (equal)\n //\n // However, because we take `next` into consideration when `omit` is used,\n // And it would be possible that decimals are shorter on bigger values as\n // well if `next` is hexadecimal but not decimal, we instead compare both.\n if (\n (options.useShortestReferences || !named) &&\n options.useShortestReferences\n ) {\n const decimal = toDecimal(code, next, options.omitOptionalSemicolons);\n\n if (decimal.length < numeric.length) {\n numeric = decimal;\n }\n }\n\n return named &&\n (!options.useShortestReferences || named.length < numeric.length)\n ? named\n : numeric\n}\n\n/**\n * @typedef {import('./core.js').CoreOptions & import('./util/format-smart.js').FormatSmartOptions} Options\n * @typedef {import('./core.js').CoreOptions} LightOptions\n */\n\n\n/**\n * Encode special characters in `value`.\n *\n * @param {string} value\n * Value to encode.\n * @param {Options} [options]\n * Configuration.\n * @returns {string}\n * Encoded value.\n */\nfunction stringifyEntities(value, options) {\n return core(value, Object.assign({format: formatSmart}, options))\n}\n\n/**\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\n */\n\n\nconst htmlCommentRegex = /^>|^->|<!--|-->|--!>|<!-$/g;\n\n// Declare arrays as variables so it can be cached by `stringifyEntities`\nconst bogusCommentEntitySubset = ['>'];\nconst commentEntitySubset = ['<', '>'];\n\n/**\n * Serialize a comment.\n *\n * @param {Comment} node\n * Node to handle.\n * @param {number | undefined} _1\n * Index of `node` in `parent.\n * @param {Parents | undefined} _2\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction comment(node, _1, _2, state) {\n // See: <https://html.spec.whatwg.org/multipage/syntax.html#comments>\n return state.settings.bogusComments\n ? '<?' +\n stringifyEntities(\n node.value,\n Object.assign({}, state.settings.characterReferences, {\n subset: bogusCommentEntitySubset\n })\n ) +\n '>'\n : '<!--' + node.value.replace(htmlCommentRegex, encode) + '-->'\n\n /**\n * @param {string} $0\n */\n function encode($0) {\n return stringifyEntities(\n $0,\n Object.assign({}, state.settings.characterReferences, {\n subset: commentEntitySubset\n })\n )\n }\n}\n\n/**\n * @typedef {import('hast').Doctype} Doctype\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * Serialize a doctype.\n *\n * @param {Doctype} _1\n * Node to handle.\n * @param {number | undefined} _2\n * Index of `node` in `parent.\n * @param {Parents | undefined} _3\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction doctype(_1, _2, _3, state) {\n return (\n '<!' +\n (state.settings.upperDoctype ? 'DOCTYPE' : 'doctype') +\n (state.settings.tightDoctype ? '' : ' ') +\n 'html>'\n )\n}\n\n/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nfunction ccount(value, character) {\n const source = String(value);\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0;\n let index = source.indexOf(character);\n\n while (index !== -1) {\n count++;\n index = source.indexOf(character, index + character.length);\n }\n\n return count\n}\n\n/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nfunction stringify$1(values, options) {\n const settings = options || {};\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values;\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n\n/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nfunction stringify(values) {\n return values.join(' ').trim()\n}\n\n/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g;\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nfunction whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n\n/**\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').RootContent} RootContent\n */\n\n\nconst siblingAfter = siblings(1);\nconst siblingBefore = siblings(-1);\n\n/** @type {Array<RootContent>} */\nconst emptyChildren$1 = [];\n\n/**\n * Factory to check siblings in a direction.\n *\n * @param {number} increment\n */\nfunction siblings(increment) {\n return sibling\n\n /**\n * Find applicable siblings in a direction.\n *\n * @template {Parents} Parent\n * Parent type.\n * @param {Parent | undefined} parent\n * Parent.\n * @param {number | undefined} index\n * Index of child in `parent`.\n * @param {boolean | undefined} [includeWhitespace=false]\n * Whether to include whitespace (default: `false`).\n * @returns {Parent extends {children: Array<infer Child>} ? Child | undefined : never}\n * Child of parent.\n */\n function sibling(parent, index, includeWhitespace) {\n const siblings = parent ? parent.children : emptyChildren$1;\n let offset = (index || 0) + increment;\n let next = siblings[offset];\n\n if (!includeWhitespace) {\n while (next && whitespace(next)) {\n offset += increment;\n next = siblings[offset];\n }\n }\n\n // @ts-expect-error: it’s a correct child.\n return next\n }\n}\n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n/**\n * @callback OmitHandle\n * Check if a tag can be omitted.\n * @param {Element} element\n * Element to check.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether to omit a tag.\n *\n */\n\nconst own = {}.hasOwnProperty;\n\n/**\n * Factory to check if a given node can have a tag omitted.\n *\n * @param {Record<string, OmitHandle>} handlers\n * Omission handlers, where each key is a tag name, and each value is the\n * corresponding handler.\n * @returns {OmitHandle}\n * Whether to omit a tag of an element.\n */\nfunction omission(handlers) {\n return omit\n\n /**\n * Check if a given node can have a tag omitted.\n *\n * @type {OmitHandle}\n */\n function omit(node, index, parent) {\n return (\n own.call(handlers, node.tagName) &&\n handlers[node.tagName](node, index, parent)\n )\n }\n}\n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n\nconst closing = omission({\n body: body$1,\n caption: headOrColgroupOrCaption,\n colgroup: headOrColgroupOrCaption,\n dd,\n dt,\n head: headOrColgroupOrCaption,\n html: html$1,\n li,\n optgroup,\n option,\n p,\n rp: rubyElement,\n rt: rubyElement,\n tbody: tbody$1,\n td: cells,\n tfoot,\n th: cells,\n thead,\n tr\n});\n\n/**\n * Macro for `</head>`, `</colgroup>`, and `</caption>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction headOrColgroupOrCaption(_, index, parent) {\n const next = siblingAfter(parent, index, true);\n return (\n !next ||\n (next.type !== 'comment' &&\n !(next.type === 'text' && whitespace(next.value.charAt(0))))\n )\n}\n\n/**\n * Whether to omit `</html>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction html$1(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</body>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction body$1(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</p>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction p(_, index, parent) {\n const next = siblingAfter(parent, index);\n return next\n ? next.type === 'element' &&\n (next.tagName === 'address' ||\n next.tagName === 'article' ||\n next.tagName === 'aside' ||\n next.tagName === 'blockquote' ||\n next.tagName === 'details' ||\n next.tagName === 'div' ||\n next.tagName === 'dl' ||\n next.tagName === 'fieldset' ||\n next.tagName === 'figcaption' ||\n next.tagName === 'figure' ||\n next.tagName === 'footer' ||\n next.tagName === 'form' ||\n next.tagName === 'h1' ||\n next.tagName === 'h2' ||\n next.tagName === 'h3' ||\n next.tagName === 'h4' ||\n next.tagName === 'h5' ||\n next.tagName === 'h6' ||\n next.tagName === 'header' ||\n next.tagName === 'hgroup' ||\n next.tagName === 'hr' ||\n next.tagName === 'main' ||\n next.tagName === 'menu' ||\n next.tagName === 'nav' ||\n next.tagName === 'ol' ||\n next.tagName === 'p' ||\n next.tagName === 'pre' ||\n next.tagName === 'section' ||\n next.tagName === 'table' ||\n next.tagName === 'ul')\n : !parent ||\n // Confusing parent.\n !(\n parent.type === 'element' &&\n (parent.tagName === 'a' ||\n parent.tagName === 'audio' ||\n parent.tagName === 'del' ||\n parent.tagName === 'ins' ||\n parent.tagName === 'map' ||\n parent.tagName === 'noscript' ||\n parent.tagName === 'video')\n )\n}\n\n/**\n * Whether to omit `</li>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction li(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || (next.type === 'element' && next.tagName === 'li')\n}\n\n/**\n * Whether to omit `</dt>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction dt(_, index, parent) {\n const next = siblingAfter(parent, index);\n return Boolean(\n next &&\n next.type === 'element' &&\n (next.tagName === 'dt' || next.tagName === 'dd')\n )\n}\n\n/**\n * Whether to omit `</dd>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction dd(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'dt' || next.tagName === 'dd'))\n )\n}\n\n/**\n * Whether to omit `</rt>` or `</rp>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction rubyElement(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'rp' || next.tagName === 'rt'))\n )\n}\n\n/**\n * Whether to omit `</optgroup>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction optgroup(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || (next.type === 'element' && next.tagName === 'optgroup')\n}\n\n/**\n * Whether to omit `</option>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction option(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'option' || next.tagName === 'optgroup'))\n )\n}\n\n/**\n * Whether to omit `</thead>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction thead(_, index, parent) {\n const next = siblingAfter(parent, index);\n return Boolean(\n next &&\n next.type === 'element' &&\n (next.tagName === 'tbody' || next.tagName === 'tfoot')\n )\n}\n\n/**\n * Whether to omit `</tbody>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tbody$1(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'tbody' || next.tagName === 'tfoot'))\n )\n}\n\n/**\n * Whether to omit `</tfoot>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tfoot(_, index, parent) {\n return !siblingAfter(parent, index)\n}\n\n/**\n * Whether to omit `</tr>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tr(_, index, parent) {\n const next = siblingAfter(parent, index);\n return !next || (next.type === 'element' && next.tagName === 'tr')\n}\n\n/**\n * Whether to omit `</td>` or `</th>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction cells(_, index, parent) {\n const next = siblingAfter(parent, index);\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'td' || next.tagName === 'th'))\n )\n}\n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n\nconst opening = omission({\n body,\n colgroup,\n head,\n html,\n tbody\n});\n\n/**\n * Whether to omit `<html>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction html(node) {\n const head = siblingAfter(node, -1);\n return !head || head.type !== 'comment'\n}\n\n/**\n * Whether to omit `<head>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction head(node) {\n const children = node.children;\n /** @type {Array<string>} */\n const seen = [];\n let index = -1;\n\n while (++index < children.length) {\n const child = children[index];\n if (\n child.type === 'element' &&\n (child.tagName === 'title' || child.tagName === 'base')\n ) {\n if (seen.includes(child.tagName)) return false\n seen.push(child.tagName);\n }\n }\n\n return children.length > 0\n}\n\n/**\n * Whether to omit `<body>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction body(node) {\n const head = siblingAfter(node, -1, true);\n\n return (\n !head ||\n (head.type !== 'comment' &&\n !(head.type === 'text' && whitespace(head.value.charAt(0))) &&\n !(\n head.type === 'element' &&\n (head.tagName === 'meta' ||\n head.tagName === 'link' ||\n head.tagName === 'script' ||\n head.tagName === 'style' ||\n head.tagName === 'template')\n ))\n )\n}\n\n/**\n * Whether to omit `<colgroup>`.\n * The spec describes some logic for the opening tag, but it’s easier to\n * implement in the closing tag, to the same effect, so we handle it there\n * instead.\n *\n * @param {Element} node\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction colgroup(node, index, parent) {\n const previous = siblingBefore(parent, index);\n const head = siblingAfter(node, -1, true);\n\n // Previous colgroup was already omitted.\n if (\n parent &&\n previous &&\n previous.type === 'element' &&\n previous.tagName === 'colgroup' &&\n closing(previous, parent.children.indexOf(previous), parent)\n ) {\n return false\n }\n\n return Boolean(head && head.type === 'element' && head.tagName === 'col')\n}\n\n/**\n * Whether to omit `<tbody>`.\n *\n * @param {Element} node\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction tbody(node, index, parent) {\n const previous = siblingBefore(parent, index);\n const head = siblingAfter(node, -1);\n\n // Previous table section was already omitted.\n if (\n parent &&\n previous &&\n previous.type === 'element' &&\n (previous.tagName === 'thead' || previous.tagName === 'tbody') &&\n closing(previous, parent.children.indexOf(previous), parent)\n ) {\n return false\n }\n\n return Boolean(head && head.type === 'element' && head.tagName === 'tr')\n}\n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Properties} Properties\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * Maps of subsets.\n *\n * Each value is a matrix of tuples.\n * The value at `0` causes parse errors, the value at `1` is valid.\n * Of both, the value at `0` is unsafe, and the value at `1` is safe.\n *\n * @type {Record<'double' | 'name' | 'single' | 'unquoted', Array<[Array<string>, Array<string>]>>}\n */\nconst constants = {\n // See: <https://html.spec.whatwg.org/#attribute-name-state>.\n name: [\n ['\\t\\n\\f\\r &/=>'.split(''), '\\t\\n\\f\\r \"&\\'/=>`'.split('')],\n ['\\0\\t\\n\\f\\r \"&\\'/<=>'.split(''), '\\0\\t\\n\\f\\r \"&\\'/<=>`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(unquoted)-state>.\n unquoted: [\n ['\\t\\n\\f\\r &>'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')],\n ['\\0\\t\\n\\f\\r \"&\\'<=>`'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(single-quoted)-state>.\n single: [\n [\"&'\".split(''), '\"&\\'`'.split('')],\n [\"\\0&'\".split(''), '\\0\"&\\'`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(double-quoted)-state>.\n double: [\n ['\"&'.split(''), '\"&\\'`'.split('')],\n ['\\0\"&'.split(''), '\\0\"&\\'`'.split('')]\n ]\n};\n\n/**\n * Serialize an element node.\n *\n * @param {Element} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction element(node, index, parent, state) {\n const schema = state.schema;\n const omit = schema.space === 'svg' ? false : state.settings.omitOptionalTags;\n let selfClosing =\n schema.space === 'svg'\n ? state.settings.closeEmptyElements\n : state.settings.voids.includes(node.tagName.toLowerCase());\n /** @type {Array<string>} */\n const parts = [];\n /** @type {string} */\n let last;\n\n if (schema.space === 'html' && node.tagName === 'svg') {\n state.schema = svg;\n }\n\n const attributes = serializeAttributes(state, node.properties);\n\n const content = state.all(\n schema.space === 'html' && node.tagName === 'template' ? node.content : node\n );\n\n state.schema = schema;\n\n // If the node is categorised as void, but it has children, remove the\n // categorisation.\n // This enables for example `menuitem`s, which are void in W3C HTML but not\n // void in WHATWG HTML, to be stringified properly.\n // Note: `menuitem` has since been removed from the HTML spec, and so is no\n // longer void.\n if (content) selfClosing = false;\n\n if (attributes || !omit || !opening(node, index, parent)) {\n parts.push('<', node.tagName, attributes ? ' ' + attributes : '');\n\n if (\n selfClosing &&\n (schema.space === 'svg' || state.settings.closeSelfClosing)\n ) {\n last = attributes.charAt(attributes.length - 1);\n if (\n !state.settings.tightSelfClosing ||\n last === '/' ||\n (last && last !== '\"' && last !== \"'\")\n ) {\n parts.push(' ');\n }\n\n parts.push('/');\n }\n\n parts.push('>');\n }\n\n parts.push(content);\n\n if (!selfClosing && (!omit || !closing(node, index, parent))) {\n parts.push('</' + node.tagName + '>');\n }\n\n return parts.join('')\n}\n\n/**\n * @param {State} state\n * @param {Properties | null | undefined} properties\n * @returns {string}\n */\nfunction serializeAttributes(state, properties) {\n /** @type {Array<string>} */\n const values = [];\n let index = -1;\n /** @type {string} */\n let key;\n\n if (properties) {\n for (key in properties) {\n if (properties[key] !== null && properties[key] !== undefined) {\n const value = serializeAttribute(state, key, properties[key]);\n if (value) values.push(value);\n }\n }\n }\n\n while (++index < values.length) {\n const last = state.settings.tightAttributes\n ? values[index].charAt(values[index].length - 1)\n : undefined;\n\n // In tight mode, don’t add a space after quoted attributes.\n if (index !== values.length - 1 && last !== '\"' && last !== \"'\") {\n values[index] += ' ';\n }\n }\n\n return values.join('')\n}\n\n/**\n * @param {State} state\n * @param {string} key\n * @param {Properties[keyof Properties]} value\n * @returns {string}\n */\nfunction serializeAttribute(state, key, value) {\n const info = find(state.schema, key);\n const x =\n state.settings.allowParseErrors && state.schema.space === 'html' ? 0 : 1;\n const y = state.settings.allowDangerousCharacters ? 0 : 1;\n let quote = state.quote;\n /** @type {string | undefined} */\n let result;\n\n if (info.overloadedBoolean && (value === info.attribute || value === '')) {\n value = true;\n } else if (\n info.boolean ||\n (info.overloadedBoolean && typeof value !== 'string')\n ) {\n value = Boolean(value);\n }\n\n if (\n value === null ||\n value === undefined ||\n value === false ||\n (typeof value === 'number' && Number.isNaN(value))\n ) {\n return ''\n }\n\n const name = stringifyEntities(\n info.attribute,\n Object.assign({}, state.settings.characterReferences, {\n // Always encode without parse errors in non-HTML.\n subset: constants.name[x][y]\n })\n );\n\n // No value.\n // There is currently only one boolean property in SVG: `[download]` on\n // `<a>`.\n // This property does not seem to work in browsers (Firefox, Safari, Chrome),\n // so I can’t test if dropping the value works.\n // But I assume that it should:\n //\n // ```html\n // <!doctype html>\n // <svg viewBox=\"0 0 100 100\">\n // <a href=https://example.com download>\n // <circle cx=50 cy=40 r=35 />\n // </a>\n // </svg>\n // ```\n //\n // See: <https://github.com/wooorm/property-information/blob/main/lib/svg.js>\n if (value === true) return name\n\n // `spaces` doesn’t accept a second argument, but it’s given here just to\n // keep the code cleaner.\n value = Array.isArray(value)\n ? (info.commaSeparated ? stringify$1 : stringify)(value, {\n padLeft: !state.settings.tightCommaSeparatedLists\n })\n : String(value);\n\n if (state.settings.collapseEmptyAttributes && !value) return name\n\n // Check unquoted value.\n if (state.settings.preferUnquoted) {\n result = stringifyEntities(\n value,\n Object.assign({}, state.settings.characterReferences, {\n attribute: true,\n subset: constants.unquoted[x][y]\n })\n );\n }\n\n // If we don’t want unquoted, or if `value` contains character references when\n // unquoted…\n if (result !== value) {\n // If the alternative is less common than `quote`, switch.\n if (\n state.settings.quoteSmart &&\n ccount(value, quote) > ccount(value, state.alternative)\n ) {\n quote = state.alternative;\n }\n\n result =\n quote +\n stringifyEntities(\n value,\n Object.assign({}, state.settings.characterReferences, {\n // Always encode without parse errors in non-HTML.\n subset: (quote === \"'\" ? constants.single : constants.double)[x][y],\n attribute: true\n })\n ) +\n quote;\n }\n\n // Don’t add a `=` for unquoted empties.\n return name + (result ? '=' + result : result)\n}\n\n/**\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('mdast-util-to-hast').Raw} Raw\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n// Declare array as variable so it can be cached by `stringifyEntities`\nconst textEntitySubset = ['<', '&'];\n\n/**\n * Serialize a text node.\n *\n * @param {Raw | Text} node\n * Node to handle.\n * @param {number | undefined} _\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction text(node, _, parent, state) {\n // Check if content of `node` should be escaped.\n return parent &&\n parent.type === 'element' &&\n (parent.tagName === 'script' || parent.tagName === 'style')\n ? node.value\n : stringifyEntities(\n node.value,\n Object.assign({}, state.settings.characterReferences, {\n subset: textEntitySubset\n })\n )\n}\n\n/**\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('mdast-util-to-hast').Raw} Raw\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * Serialize a raw node.\n *\n * @param {Raw} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction raw(node, index, parent, state) {\n return state.settings.allowDangerousHtml\n ? node.value\n : text(node, index, parent, state)\n}\n\n/**\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * Serialize a root.\n *\n * @param {Root} node\n * Node to handle.\n * @param {number | undefined} _1\n * Index of `node` in `parent.\n * @param {Parents | undefined} _2\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nfunction root(node, _1, _2, state) {\n return state.all(node)\n}\n\n/**\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\n */\n\n\n/**\n * @type {(node: Nodes, index: number | undefined, parent: Parents | undefined, state: State) => string}\n */\nconst handle = zwitch('type', {\n invalid,\n unknown,\n handlers: {comment, doctype, element, raw, root, text}\n});\n\n/**\n * Fail when a non-node is found in the tree.\n *\n * @param {unknown} node\n * Unknown value.\n * @returns {never}\n * Never.\n */\nfunction invalid(node) {\n throw new Error('Expected node, not `' + node + '`')\n}\n\n/**\n * Fail when a node with an unknown type is found in the tree.\n *\n * @param {unknown} node_\n * Unknown node.\n * @returns {never}\n * Never.\n */\nfunction unknown(node_) {\n // `type` is guaranteed by runtime JS.\n const node = /** @type {Nodes} */ (node_);\n throw new Error('Cannot compile unknown node `' + node.type + '`')\n}\n\n/**\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').RootContent} RootContent\n *\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {import('stringify-entities').Options} StringifyEntitiesOptions\n */\n\n\n/** @type {Options} */\nconst emptyOptions = {};\n\n/** @type {CharacterReferences} */\nconst emptyCharacterReferences = {};\n\n/** @type {Array<never>} */\nconst emptyChildren = [];\n\n/**\n * Serialize hast as HTML.\n *\n * @param {Array<RootContent> | Nodes} tree\n * Tree to serialize.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized HTML.\n */\nfunction toHtml(tree, options) {\n const options_ = options || emptyOptions;\n const quote = options_.quote || '\"';\n const alternative = quote === '\"' ? \"'\" : '\"';\n\n if (quote !== '\"' && quote !== \"'\") {\n throw new Error('Invalid quote `' + quote + '`, expected `\\'` or `\"`')\n }\n\n /** @type {State} */\n const state = {\n one,\n all,\n settings: {\n omitOptionalTags: options_.omitOptionalTags || false,\n allowParseErrors: options_.allowParseErrors || false,\n allowDangerousCharacters: options_.allowDangerousCharacters || false,\n quoteSmart: options_.quoteSmart || false,\n preferUnquoted: options_.preferUnquoted || false,\n tightAttributes: options_.tightAttributes || false,\n upperDoctype: options_.upperDoctype || false,\n tightDoctype: options_.tightDoctype || false,\n bogusComments: options_.bogusComments || false,\n tightCommaSeparatedLists: options_.tightCommaSeparatedLists || false,\n tightSelfClosing: options_.tightSelfClosing || false,\n collapseEmptyAttributes: options_.collapseEmptyAttributes || false,\n allowDangerousHtml: options_.allowDangerousHtml || false,\n voids: options_.voids || htmlVoidElements,\n characterReferences:\n options_.characterReferences || emptyCharacterReferences,\n closeSelfClosing: options_.closeSelfClosing || false,\n closeEmptyElements: options_.closeEmptyElements || false\n },\n schema: options_.space === 'svg' ? svg : html$2,\n quote,\n alternative\n };\n\n return state.one(\n Array.isArray(tree) ? {type: 'root', children: tree} : tree,\n undefined,\n undefined\n )\n}\n\n/**\n * Serialize a node.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Nodes} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {string}\n * Serialized node.\n */\nfunction one(node, index, parent) {\n return handle(node, index, parent, this)\n}\n\n/**\n * Serialize all children of `parent`.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Parents | undefined} parent\n * Parent whose children to serialize.\n * @returns {string}\n */\nfunction all(parent) {\n /** @type {Array<string>} */\n const results = [];\n const children = (parent && parent.children) || emptyChildren;\n let index = -1;\n\n while (++index < children.length) {\n results[index] = this.one(children[index], index, parent);\n }\n\n return results.join('')\n}\n\n/**\n * Get highlighted code in HTML.\n */\nfunction codeToHtml(internal, code, options) {\n const context = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options),\n };\n let result = toHtml(codeToHast(internal, code, options, context));\n for (const transformer of getTransformers(options))\n result = transformer.postprocess?.call(context, result, options) || result;\n return result;\n}\n\nasync function main(init) {\n let wasmMemory;\n let buffer;\n const binding = {};\n function updateGlobalBufferAndViews(buf) {\n buffer = buf;\n binding.HEAPU8 = new Uint8Array(buf);\n binding.HEAPU32 = new Uint32Array(buf);\n }\n function _emscripten_get_now() {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n }\n function _emscripten_memcpy_big(dest, src, num) {\n binding.HEAPU8.copyWithin(dest, src, src + num);\n }\n function getHeapMax() {\n return 2147483648;\n }\n function emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n }\n catch { }\n }\n function _emscripten_resize_heap(requestedSize) {\n const oldSize = binding.HEAPU8.length;\n requestedSize = requestedSize >>> 0;\n const maxHeapSize = getHeapMax();\n if (requestedSize > maxHeapSize)\n return false;\n const alignUp = (x, multiple) => x + ((multiple - (x % multiple)) % multiple);\n for (let cutDown = 1; cutDown <= 4; cutDown *= 2) {\n let overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n const newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));\n const replacement = emscripten_realloc_buffer(newSize);\n if (replacement)\n return true;\n }\n return false;\n }\n const UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf8') : undefined;\n function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead = 1024) {\n const endIdx = idx + maxBytesToRead;\n let endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx))\n ++endPtr;\n if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));\n }\n let str = '';\n while (idx < endPtr) {\n let u0 = heapOrArray[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n const u1 = heapOrArray[idx++] & 63;\n if ((u0 & 224) === 192) {\n str += String.fromCharCode(((u0 & 31) << 6) | u1);\n continue;\n }\n const u2 = heapOrArray[idx++] & 63;\n if ((u0 & 240) === 224) {\n u0 = ((u0 & 15) << 12) | (u1 << 6) | u2;\n }\n else {\n u0 = ((u0 & 7) << 18)\n | (u1 << 12)\n | (u2 << 6)\n | (heapOrArray[idx++] & 63);\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n }\n else {\n const ch = u0 - 65536;\n str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023));\n }\n }\n return str;\n }\n function UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(binding.HEAPU8, ptr, maxBytesToRead) : '';\n }\n const asmLibraryArg = {\n emscripten_get_now: _emscripten_get_now,\n emscripten_memcpy_big: _emscripten_memcpy_big,\n emscripten_resize_heap: _emscripten_resize_heap,\n fd_write: () => 0,\n };\n async function createWasm() {\n const info = {\n env: asmLibraryArg,\n wasi_snapshot_preview1: asmLibraryArg,\n };\n const exports = await init(info);\n wasmMemory = exports.memory;\n updateGlobalBufferAndViews(wasmMemory.buffer);\n Object.assign(binding, exports);\n binding.UTF8ToString = UTF8ToString;\n }\n await createWasm();\n return binding;\n}\n\n/* ---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *-------------------------------------------------------- */\nlet onigBinding = null;\nlet defaultDebugCall = false;\nfunction throwLastOnigError(onigBinding) {\n throw new ShikiError(onigBinding.UTF8ToString(onigBinding.getLastOnigError()));\n}\nclass UtfString {\n static _utf8ByteLength(str) {\n let result = 0;\n for (let i = 0, len = str.length; i < len; i++) {\n const charCode = str.charCodeAt(i);\n let codepoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n // Hit a high surrogate, try to look for a matching low surrogate\n if (i + 1 < len) {\n const nextCharCode = str.charCodeAt(i + 1);\n if (nextCharCode >= 0xDC00 && nextCharCode <= 0xDFFF) {\n // Found the matching low surrogate\n codepoint = (((charCode - 0xD800) << 10) + 0x10000) | (nextCharCode - 0xDC00);\n wasSurrogatePair = true;\n }\n }\n }\n if (codepoint <= 0x7F)\n result += 1;\n else if (codepoint <= 0x7FF)\n result += 2;\n else if (codepoint <= 0xFFFF)\n result += 3;\n else\n result += 4;\n if (wasSurrogatePair)\n i++;\n }\n return result;\n }\n utf16Length;\n utf8Length;\n utf16Value;\n utf8Value;\n utf16OffsetToUtf8;\n utf8OffsetToUtf16;\n constructor(str) {\n const utf16Length = str.length;\n const utf8Length = UtfString._utf8ByteLength(str);\n const computeIndicesMapping = (utf8Length !== utf16Length);\n const utf16OffsetToUtf8 = computeIndicesMapping ? new Uint32Array(utf16Length + 1) : null;\n if (computeIndicesMapping)\n utf16OffsetToUtf8[utf16Length] = utf8Length;\n const utf8OffsetToUtf16 = computeIndicesMapping ? new Uint32Array(utf8Length + 1) : null;\n if (computeIndicesMapping)\n utf8OffsetToUtf16[utf8Length] = utf16Length;\n const utf8Value = new Uint8Array(utf8Length);\n let i8 = 0;\n for (let i16 = 0; i16 < utf16Length; i16++) {\n const charCode = str.charCodeAt(i16);\n let codePoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n // Hit a high surrogate, try to look for a matching low surrogate\n if (i16 + 1 < utf16Length) {\n const nextCharCode = str.charCodeAt(i16 + 1);\n if (nextCharCode >= 0xDC00 && nextCharCode <= 0xDFFF) {\n // Found the matching low surrogate\n codePoint = (((charCode - 0xD800) << 10) + 0x10000) | (nextCharCode - 0xDC00);\n wasSurrogatePair = true;\n }\n }\n }\n if (computeIndicesMapping) {\n utf16OffsetToUtf8[i16] = i8;\n if (wasSurrogatePair)\n utf16OffsetToUtf8[i16 + 1] = i8;\n if (codePoint <= 0x7F) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n }\n else if (codePoint <= 0x7FF) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n }\n else if (codePoint <= 0xFFFF) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n }\n else {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n utf8OffsetToUtf16[i8 + 3] = i16;\n }\n }\n if (codePoint <= 0x7F) {\n utf8Value[i8++] = codePoint;\n }\n else if (codePoint <= 0x7FF) {\n utf8Value[i8++] = 0b11000000 | ((codePoint & 0b00000000000000000000011111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else if (codePoint <= 0xFFFF) {\n utf8Value[i8++] = 0b11100000 | ((codePoint & 0b00000000000000001111000000000000) >>> 12);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else {\n utf8Value[i8++] = 0b11110000 | ((codePoint & 0b00000000000111000000000000000000) >>> 18);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000111111000000000000) >>> 12);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n utf8Value[i8++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n if (wasSurrogatePair)\n i16++;\n }\n this.utf16Length = utf16Length;\n this.utf8Length = utf8Length;\n this.utf16Value = str;\n this.utf8Value = utf8Value;\n this.utf16OffsetToUtf8 = utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utf8OffsetToUtf16;\n }\n createString(onigBinding) {\n const result = onigBinding.omalloc(this.utf8Length);\n onigBinding.HEAPU8.set(this.utf8Value, result);\n return result;\n }\n}\nclass OnigString {\n static LAST_ID = 0;\n static _sharedPtr = 0; // a pointer to a string of 10000 bytes\n static _sharedPtrInUse = false;\n id = (++OnigString.LAST_ID);\n _onigBinding;\n content;\n utf16Length;\n utf8Length;\n utf16OffsetToUtf8;\n utf8OffsetToUtf16;\n ptr;\n constructor(str) {\n if (!onigBinding)\n throw new ShikiError('Must invoke loadWasm first.');\n this._onigBinding = onigBinding;\n this.content = str;\n const utfString = new UtfString(str);\n this.utf16Length = utfString.utf16Length;\n this.utf8Length = utfString.utf8Length;\n this.utf16OffsetToUtf8 = utfString.utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utfString.utf8OffsetToUtf16;\n if (this.utf8Length < 10000 && !OnigString._sharedPtrInUse) {\n if (!OnigString._sharedPtr)\n OnigString._sharedPtr = onigBinding.omalloc(10000);\n OnigString._sharedPtrInUse = true;\n onigBinding.HEAPU8.set(utfString.utf8Value, OnigString._sharedPtr);\n this.ptr = OnigString._sharedPtr;\n }\n else {\n this.ptr = utfString.createString(onigBinding);\n }\n }\n convertUtf8OffsetToUtf16(utf8Offset) {\n if (this.utf8OffsetToUtf16) {\n if (utf8Offset < 0)\n return 0;\n if (utf8Offset > this.utf8Length)\n return this.utf16Length;\n return this.utf8OffsetToUtf16[utf8Offset];\n }\n return utf8Offset;\n }\n convertUtf16OffsetToUtf8(utf16Offset) {\n if (this.utf16OffsetToUtf8) {\n if (utf16Offset < 0)\n return 0;\n if (utf16Offset > this.utf16Length)\n return this.utf8Length;\n return this.utf16OffsetToUtf8[utf16Offset];\n }\n return utf16Offset;\n }\n dispose() {\n if (this.ptr === OnigString._sharedPtr)\n OnigString._sharedPtrInUse = false;\n else\n this._onigBinding.ofree(this.ptr);\n }\n}\nclass OnigScanner {\n _onigBinding;\n _ptr;\n constructor(patterns) {\n if (!onigBinding)\n throw new ShikiError('Must invoke loadWasm first.');\n const strPtrsArr = [];\n const strLenArr = [];\n for (let i = 0, len = patterns.length; i < len; i++) {\n const utfString = new UtfString(patterns[i]);\n strPtrsArr[i] = utfString.createString(onigBinding);\n strLenArr[i] = utfString.utf8Length;\n }\n const strPtrsPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strPtrsArr, strPtrsPtr / 4);\n const strLenPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strLenArr, strLenPtr / 4);\n const scannerPtr = onigBinding.createOnigScanner(strPtrsPtr, strLenPtr, patterns.length);\n for (let i = 0, len = patterns.length; i < len; i++)\n onigBinding.ofree(strPtrsArr[i]);\n onigBinding.ofree(strLenPtr);\n onigBinding.ofree(strPtrsPtr);\n if (scannerPtr === 0)\n throwLastOnigError(onigBinding);\n this._onigBinding = onigBinding;\n this._ptr = scannerPtr;\n }\n dispose() {\n this._onigBinding.freeOnigScanner(this._ptr);\n }\n findNextMatchSync(string, startPosition, arg) {\n let debugCall = defaultDebugCall;\n let options = 0 /* FindOption.None */;\n if (typeof arg === 'number') {\n if (arg & 8 /* FindOption.DebugCall */)\n debugCall = true;\n options = arg;\n }\n else if (typeof arg === 'boolean') {\n debugCall = arg;\n }\n if (typeof string === 'string') {\n string = new OnigString(string);\n const result = this._findNextMatchSync(string, startPosition, debugCall, options);\n string.dispose();\n return result;\n }\n return this._findNextMatchSync(string, startPosition, debugCall, options);\n }\n _findNextMatchSync(string, startPosition, debugCall, options) {\n const onigBinding = this._onigBinding;\n let resultPtr;\n if (debugCall)\n resultPtr = onigBinding.findNextOnigScannerMatchDbg(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n else\n resultPtr = onigBinding.findNextOnigScannerMatch(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n if (resultPtr === 0) {\n // no match\n return null;\n }\n const HEAPU32 = onigBinding.HEAPU32;\n let offset = resultPtr / 4; // byte offset -> uint32 offset\n const index = HEAPU32[offset++];\n const count = HEAPU32[offset++];\n const captureIndices = [];\n for (let i = 0; i < count; i++) {\n const beg = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n const end = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n captureIndices[i] = {\n start: beg,\n end,\n length: end - beg,\n };\n }\n return {\n index,\n captureIndices,\n };\n }\n}\nfunction isInstantiatorOptionsObject(dataOrOptions) {\n return (typeof dataOrOptions.instantiator === 'function');\n}\nfunction isInstantiatorModule(dataOrOptions) {\n return (typeof dataOrOptions.default === 'function');\n}\nfunction isDataOptionsObject(dataOrOptions) {\n return (typeof dataOrOptions.data !== 'undefined');\n}\nfunction isResponse(dataOrOptions) {\n return (typeof Response !== 'undefined' && dataOrOptions instanceof Response);\n}\nfunction isArrayBuffer(data) {\n return (typeof ArrayBuffer !== 'undefined' && (data instanceof ArrayBuffer || ArrayBuffer.isView(data)))\n // eslint-disable-next-line node/prefer-global/buffer\n || (typeof Buffer !== 'undefined' && Buffer.isBuffer?.(data))\n || (typeof SharedArrayBuffer !== 'undefined' && data instanceof SharedArrayBuffer)\n || (typeof Uint32Array !== 'undefined' && data instanceof Uint32Array);\n}\nlet initPromise;\nfunction loadWasm(options) {\n if (initPromise)\n return initPromise;\n async function _load() {\n onigBinding = await main(async (info) => {\n let instance = options;\n instance = await instance;\n if (typeof instance === 'function')\n instance = await instance(info);\n if (typeof instance === 'function')\n instance = await instance(info);\n if (isInstantiatorOptionsObject(instance)) {\n instance = await instance.instantiator(info);\n }\n else if (isInstantiatorModule(instance)) {\n instance = await instance.default(info);\n }\n else {\n if (isDataOptionsObject(instance))\n instance = instance.data;\n if (isResponse(instance)) {\n if (typeof WebAssembly.instantiateStreaming === 'function')\n instance = await _makeResponseStreamingLoader(instance)(info);\n else\n instance = await _makeResponseNonStreamingLoader(instance)(info);\n }\n else if (isArrayBuffer(instance)) {\n instance = await _makeArrayBufferLoader(instance)(info);\n }\n // import(\"shiki/onig.wasm\") returns `{ default: WebAssembly.Module }` on cloudflare workers\n // https://developers.cloudflare.com/workers/wrangler/bundling/\n else if (instance instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance)(info);\n }\n else if ('default' in instance && instance.default instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance.default)(info);\n }\n }\n if ('instance' in instance)\n instance = instance.instance;\n if ('exports' in instance)\n instance = instance.exports;\n return instance;\n });\n }\n initPromise = _load();\n return initPromise;\n}\nfunction _makeArrayBufferLoader(data) {\n return importObject => WebAssembly.instantiate(data, importObject);\n}\nfunction _makeResponseStreamingLoader(data) {\n return importObject => WebAssembly.instantiateStreaming(data, importObject);\n}\nfunction _makeResponseNonStreamingLoader(data) {\n return async (importObject) => {\n const arrayBuffer = await data.arrayBuffer();\n return WebAssembly.instantiate(arrayBuffer, importObject);\n };\n}\nfunction createOnigString(str) {\n return new OnigString(str);\n}\nfunction createOnigScanner(patterns) {\n return new OnigScanner(patterns);\n}\n\n/**\n * https://github.com/microsoft/vscode/blob/f7f05dee53fb33fe023db2e06e30a89d3094488f/src/vs/platform/theme/common/colorRegistry.ts#L258-L268\n */\nconst VSCODE_FALLBACK_EDITOR_FG = { light: '#333333', dark: '#bbbbbb' };\nconst VSCODE_FALLBACK_EDITOR_BG = { light: '#fffffe', dark: '#1e1e1e' };\nconst RESOLVED_KEY = '__shiki_resolved';\n/**\n * Normalize a textmate theme to shiki theme\n */\nfunction normalizeTheme(rawTheme) {\n // @ts-expect-error private field\n if (rawTheme?.[RESOLVED_KEY])\n return rawTheme;\n const theme = {\n ...rawTheme,\n };\n // Fallback settings\n if (theme.tokenColors && !theme.settings) {\n theme.settings = theme.tokenColors;\n delete theme.tokenColors;\n }\n theme.type ||= 'dark';\n theme.colorReplacements = { ...theme.colorReplacements };\n theme.settings ||= [];\n // Guess fg/bg colors\n let { bg, fg } = theme;\n if (!bg || !fg) {\n /**\n * First try:\n * Theme might contain a global `tokenColor` without `name` or `scope`\n * Used as default value for foreground/background\n */\n const globalSetting = theme.settings\n ? theme.settings.find((s) => !s.name && !s.scope)\n : undefined;\n if (globalSetting?.settings?.foreground)\n fg = globalSetting.settings.foreground;\n if (globalSetting?.settings?.background)\n bg = globalSetting.settings.background;\n /**\n * Second try:\n * If there's no global `tokenColor` without `name` or `scope`\n * Use `editor.foreground` and `editor.background`\n */\n if (!fg && theme?.colors?.['editor.foreground'])\n fg = theme.colors['editor.foreground'];\n if (!bg && theme?.colors?.['editor.background'])\n bg = theme.colors['editor.background'];\n /**\n * Last try:\n * If there's no fg/bg color specified in theme, use default\n */\n if (!fg)\n fg = theme.type === 'light' ? VSCODE_FALLBACK_EDITOR_FG.light : VSCODE_FALLBACK_EDITOR_FG.dark;\n if (!bg)\n bg = theme.type === 'light' ? VSCODE_FALLBACK_EDITOR_BG.light : VSCODE_FALLBACK_EDITOR_BG.dark;\n theme.fg = fg;\n theme.bg = bg;\n }\n // Push a no-scope setting with fallback colors\n if (!(theme.settings[0] && theme.settings[0].settings && !theme.settings[0].scope)) {\n theme.settings.unshift({\n settings: {\n foreground: theme.fg,\n background: theme.bg,\n },\n });\n }\n // Push non-hex colors to color replacements, as `vscode-textmate` doesn't support them\n let replacementCount = 0;\n const replacementMap = new Map();\n function getReplacementColor(value) {\n if (replacementMap.has(value))\n return replacementMap.get(value);\n replacementCount += 1;\n const hex = `#${replacementCount.toString(16).padStart(8, '0').toLowerCase()}`;\n if (theme.colorReplacements?.[`#${hex}`]) // already exists\n return getReplacementColor(value);\n replacementMap.set(value, hex);\n return hex;\n }\n theme.settings = theme.settings.map((setting) => {\n const replaceFg = setting.settings?.foreground && !setting.settings.foreground.startsWith('#');\n const replaceBg = setting.settings?.background && !setting.settings.background.startsWith('#');\n if (!replaceFg && !replaceBg)\n return setting;\n const clone = {\n ...setting,\n settings: {\n ...setting.settings,\n },\n };\n if (replaceFg) {\n const replacement = getReplacementColor(setting.settings.foreground);\n theme.colorReplacements[replacement] = setting.settings.foreground;\n clone.settings.foreground = replacement;\n }\n if (replaceBg) {\n const replacement = getReplacementColor(setting.settings.background);\n theme.colorReplacements[replacement] = setting.settings.background;\n clone.settings.background = replacement;\n }\n return clone;\n });\n for (const key of Object.keys(theme.colors || {})) {\n // Only patch for known keys\n if (key === 'editor.foreground' || key === 'editor.background' || key.startsWith('terminal.ansi')) {\n if (!theme.colors[key]?.startsWith('#')) {\n const replacement = getReplacementColor(theme.colors[key]);\n theme.colorReplacements[replacement] = theme.colors[key];\n theme.colors[key] = replacement;\n }\n }\n }\n Object.defineProperty(theme, RESOLVED_KEY, {\n enumerable: false,\n writable: false,\n value: true,\n });\n return theme;\n}\n\nclass Registry extends Registry$1 {\n _resolver;\n _themes;\n _langs;\n _alias;\n _resolvedThemes = new Map();\n _resolvedGrammars = new Map();\n _langMap = new Map();\n _langGraph = new Map();\n _textmateThemeCache = new WeakMap();\n _loadedThemesCache = null;\n _loadedLanguagesCache = null;\n constructor(_resolver, _themes, _langs, _alias = {}) {\n super(_resolver);\n this._resolver = _resolver;\n this._themes = _themes;\n this._langs = _langs;\n this._alias = _alias;\n _themes.forEach(t => this.loadTheme(t));\n _langs.forEach(l => this.loadLanguage(l));\n }\n getTheme(theme) {\n if (typeof theme === 'string')\n return this._resolvedThemes.get(theme);\n else\n return this.loadTheme(theme);\n }\n loadTheme(theme) {\n const _theme = normalizeTheme(theme);\n if (_theme.name) {\n this._resolvedThemes.set(_theme.name, _theme);\n // Reset cache\n this._loadedThemesCache = null;\n }\n return _theme;\n }\n getLoadedThemes() {\n if (!this._loadedThemesCache)\n this._loadedThemesCache = [...this._resolvedThemes.keys()];\n return this._loadedThemesCache;\n }\n // Override and re-implement this method to cache the textmate themes as `TextMateTheme.createFromRawTheme`\n // is expensive. Themes can switch often especially for dual-theme support.\n //\n // The parent class also accepts `colorMap` as the second parameter, but since we don't use that,\n // we omit here so it's easier to cache the themes.\n setTheme(theme) {\n let textmateTheme = this._textmateThemeCache.get(theme);\n if (!textmateTheme) {\n textmateTheme = Theme.createFromRawTheme(theme);\n this._textmateThemeCache.set(theme, textmateTheme);\n }\n // @ts-expect-error Access private `_syncRegistry`, but should work in runtime\n this._syncRegistry.setTheme(textmateTheme);\n }\n getGrammar(name) {\n if (this._alias[name]) {\n const resolved = new Set([name]);\n while (this._alias[name]) {\n name = this._alias[name];\n if (resolved.has(name))\n throw new ShikiError(`Circular alias \\`${Array.from(resolved).join(' -> ')} -> ${name}\\``);\n resolved.add(name);\n }\n }\n return this._resolvedGrammars.get(name);\n }\n async loadLanguage(lang) {\n if (this.getGrammar(lang.name))\n return;\n const embeddedLazilyBy = new Set([...this._langMap.values()]\n .filter(i => i.embeddedLangsLazy?.includes(lang.name)));\n this._resolver.addLanguage(lang);\n const grammarConfig = {\n balancedBracketSelectors: lang.balancedBracketSelectors || ['*'],\n unbalancedBracketSelectors: lang.unbalancedBracketSelectors || [],\n };\n // @ts-expect-error Private members, set this to override the previous grammar (that can be a stub)\n this._syncRegistry._rawGrammars.set(lang.scopeName, lang);\n const g = await this.loadGrammarWithConfiguration(lang.scopeName, 1, grammarConfig);\n g.name = lang.name;\n this._resolvedGrammars.set(lang.name, g);\n if (lang.aliases) {\n lang.aliases.forEach((alias) => {\n this._alias[alias] = lang.name;\n });\n }\n // Reset cache\n this._loadedLanguagesCache = null;\n // If there is a language that embeds this language lazily, we need to reload it\n if (embeddedLazilyBy.size) {\n for (const e of embeddedLazilyBy) {\n this._resolvedGrammars.delete(e.name);\n // Reset cache\n this._loadedLanguagesCache = null;\n // @ts-expect-error clear cache\n this._syncRegistry?._injectionGrammars?.delete(e.scopeName);\n // @ts-expect-error clear cache\n this._syncRegistry?._grammars?.delete(e.scopeName);\n await this.loadLanguage(this._langMap.get(e.name));\n }\n }\n }\n async init() {\n this._themes.map(t => this.loadTheme(t));\n await this.loadLanguages(this._langs);\n }\n dispose() {\n super.dispose();\n this._resolvedThemes.clear();\n this._resolvedGrammars.clear();\n this._langMap.clear();\n this._langGraph.clear();\n this._loadedThemesCache = null;\n }\n async loadLanguages(langs) {\n for (const lang of langs)\n this.resolveEmbeddedLanguages(lang);\n const langsGraphArray = Array.from(this._langGraph.entries());\n const missingLangs = langsGraphArray.filter(([_, lang]) => !lang);\n if (missingLangs.length) {\n const dependents = langsGraphArray\n .filter(([_, lang]) => lang && lang.embeddedLangs?.some(l => missingLangs.map(([name]) => name).includes(l)))\n .filter(lang => !missingLangs.includes(lang));\n throw new ShikiError(`Missing languages ${missingLangs.map(([name]) => `\\`${name}\\``).join(', ')}, required by ${dependents.map(([name]) => `\\`${name}\\``).join(', ')}`);\n }\n for (const [_, lang] of langsGraphArray)\n this._resolver.addLanguage(lang);\n for (const [_, lang] of langsGraphArray)\n await this.loadLanguage(lang);\n }\n getLoadedLanguages() {\n if (!this._loadedLanguagesCache) {\n this._loadedLanguagesCache = [\n ...new Set([...this._resolvedGrammars.keys(), ...Object.keys(this._alias)]),\n ];\n }\n return this._loadedLanguagesCache;\n }\n resolveEmbeddedLanguages(lang) {\n this._langMap.set(lang.name, lang);\n this._langGraph.set(lang.name, lang);\n if (lang.embeddedLangs) {\n for (const embeddedLang of lang.embeddedLangs)\n this._langGraph.set(embeddedLang, this._langMap.get(embeddedLang));\n }\n }\n}\n\nclass Resolver {\n _langs = new Map();\n _scopeToLang = new Map();\n _injections = new Map();\n _onigLibPromise;\n constructor(onigLibPromise, langs) {\n this._onigLibPromise = onigLibPromise;\n langs.forEach(i => this.addLanguage(i));\n }\n get onigLib() {\n return this._onigLibPromise;\n }\n getLangRegistration(langIdOrAlias) {\n return this._langs.get(langIdOrAlias);\n }\n async loadGrammar(scopeName) {\n return this._scopeToLang.get(scopeName);\n }\n addLanguage(l) {\n this._langs.set(l.name, l);\n if (l.aliases) {\n l.aliases.forEach((a) => {\n this._langs.set(a, l);\n });\n }\n this._scopeToLang.set(l.scopeName, l);\n if (l.injectTo) {\n l.injectTo.forEach((i) => {\n if (!this._injections.get(i))\n this._injections.set(i, []);\n this._injections.get(i).push(l.scopeName);\n });\n }\n }\n getInjections(scopeName) {\n const scopeParts = scopeName.split('.');\n let injections = [];\n for (let i = 1; i <= scopeParts.length; i++) {\n const subScopeName = scopeParts.slice(0, i).join('.');\n injections = [...injections, ...(this._injections.get(subScopeName) || [])];\n }\n return injections;\n }\n}\n\nlet _defaultWasmLoader;\n/**\n * Set the default wasm loader for `loadWasm`.\n * @internal\n */\nfunction setDefaultWasmLoader(_loader) {\n _defaultWasmLoader = _loader;\n}\nlet instancesCount = 0;\n/**\n * Get the minimal shiki context for rendering.\n */\nasync function createShikiInternal(options = {}) {\n instancesCount += 1;\n if (options.warnings !== false && instancesCount >= 10 && instancesCount % 10 === 0)\n console.warn(`[Shiki] ${instancesCount} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \\`highlighter.dispose()\\` to release unused instances.`);\n let isDisposed = false;\n async function normalizeGetter(p) {\n return Promise.resolve(typeof p === 'function' ? p() : p).then(r => r.default || r);\n }\n async function resolveLangs(langs) {\n return Array.from(new Set((await Promise.all(langs\n .filter(l => !isSpecialLang(l))\n .map(async (lang) => await normalizeGetter(lang).then(r => Array.isArray(r) ? r : [r])))).flat()));\n }\n const wasmLoader = options.loadWasm || _defaultWasmLoader;\n const [themes, langs,] = await Promise.all([\n Promise.all((options.themes || []).map(normalizeGetter)).then(r => r.map(normalizeTheme)),\n resolveLangs(options.langs || []),\n wasmLoader ? loadWasm(wasmLoader) : undefined,\n ]);\n const resolver = new Resolver(Promise.resolve({\n createOnigScanner(patterns) {\n return createOnigScanner(patterns);\n },\n createOnigString(s) {\n return createOnigString(s);\n },\n }), langs);\n const _registry = new Registry(resolver, themes, langs, options.langAlias);\n await _registry.init();\n let _lastTheme;\n function getLanguage(name) {\n ensureNotDisposed();\n const _lang = _registry.getGrammar(typeof name === 'string' ? name : name.name);\n if (!_lang)\n throw new ShikiError(`Language \\`${name}\\` not found, you may need to load it first`);\n return _lang;\n }\n function getTheme(name) {\n if (name === 'none')\n return { bg: '', fg: '', name: 'none', settings: [], type: 'dark' };\n ensureNotDisposed();\n const _theme = _registry.getTheme(name);\n if (!_theme)\n throw new ShikiError(`Theme \\`${name}\\` not found, you may need to load it first`);\n return _theme;\n }\n function setTheme(name) {\n ensureNotDisposed();\n const theme = getTheme(name);\n if (_lastTheme !== name) {\n _registry.setTheme(theme);\n _lastTheme = name;\n }\n const colorMap = _registry.getColorMap();\n return {\n theme,\n colorMap,\n };\n }\n function getLoadedThemes() {\n ensureNotDisposed();\n return _registry.getLoadedThemes();\n }\n function getLoadedLanguages() {\n ensureNotDisposed();\n return _registry.getLoadedLanguages();\n }\n async function loadLanguage(...langs) {\n ensureNotDisposed();\n await _registry.loadLanguages(await resolveLangs(langs));\n }\n async function loadTheme(...themes) {\n ensureNotDisposed();\n await Promise.all(themes.map(async (theme) => isSpecialTheme(theme)\n ? null\n : _registry.loadTheme(await normalizeGetter(theme))));\n }\n function ensureNotDisposed() {\n if (isDisposed)\n throw new ShikiError('Shiki instance has been disposed');\n }\n function dispose() {\n if (isDisposed)\n return;\n isDisposed = true;\n _registry.dispose();\n instancesCount -= 1;\n }\n return {\n setTheme,\n getTheme,\n getLanguage,\n getLoadedThemes,\n getLoadedLanguages,\n loadLanguage,\n loadTheme,\n dispose,\n [Symbol.dispose]: dispose,\n };\n}\n/**\n * @deprecated Use `createShikiInternal` instead.\n */\nfunction getShikiInternal(options = {}) {\n // TODO: next: console.warn('`getShikiInternal` is deprecated. Use `createShikiInternal` instead.')\n return createShikiInternal(options);\n}\n\n/**\n * Create a Shiki core highlighter instance, with no languages or themes bundled.\n * Wasm and each language and theme must be loaded manually.\n *\n * @see http://shiki.style/guide/install#fine-grained-bundle\n */\nasync function createHighlighterCore(options = {}) {\n const internal = await createShikiInternal(options);\n return {\n getLastGrammarState: (code, options) => getLastGrammarState(internal, code, options),\n codeToTokensBase: (code, options) => codeToTokensBase(internal, code, options),\n codeToTokensWithThemes: (code, options) => codeToTokensWithThemes(internal, code, options),\n codeToTokens: (code, options) => codeToTokens(internal, code, options),\n codeToHast: (code, options) => codeToHast(internal, code, options),\n codeToHtml: (code, options) => codeToHtml(internal, code, options),\n ...internal,\n getInternalContext: () => internal,\n };\n}\nfunction makeSingletonHighlighterCore(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighterCore(options = {}) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: options.themes || [],\n langs: options.langs || [],\n });\n return _shiki;\n }\n else {\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...(options.themes || [])),\n s.loadLanguage(...(options.langs || [])),\n ]);\n return s;\n }\n }\n return getSingletonHighlighterCore;\n}\nconst getSingletonHighlighterCore = /* @__PURE__ */ makeSingletonHighlighterCore(createHighlighterCore);\n/**\n * @deprecated Use `createHighlighterCore` or `getSingletonHighlighterCore` instead.\n */\n/* v8 ignore next 5 */\nfunction getHighlighterCore(options = {}) {\n // TODO: next: console.warn('`getHighlighterCore` is deprecated. Use `createHighlighterCore` or `getSingletonHighlighterCore` instead.')\n return createHighlighterCore(options);\n}\n\n/**\n * Create a `createHighlighter` function with bundled themes and languages.\n *\n * @param bundledLanguages\n * @param bundledThemes\n * @param loadWasm\n */\nfunction createdBundledHighlighter(bundledLanguages, bundledThemes, loadWasm) {\n async function createHighlighter(options) {\n function resolveLang(lang) {\n if (typeof lang === 'string') {\n if (isSpecialLang(lang))\n return [];\n const bundle = bundledLanguages[lang];\n if (!bundle)\n throw new ShikiError(`Language \\`${lang}\\` is not included in this bundle. You may want to load it from external source.`);\n return bundle;\n }\n return lang;\n }\n function resolveTheme(theme) {\n if (isSpecialTheme(theme))\n return 'none';\n if (typeof theme === 'string') {\n const bundle = bundledThemes[theme];\n if (!bundle)\n throw new ShikiError(`Theme \\`${theme}\\` is not included in this bundle. You may want to load it from external source.`);\n return bundle;\n }\n return theme;\n }\n const _themes = (options.themes ?? []).map(i => resolveTheme(i));\n const langs = (options.langs ?? [])\n .map(i => resolveLang(i));\n const core = await createHighlighterCore({\n ...options,\n themes: _themes,\n langs,\n loadWasm,\n });\n return {\n ...core,\n loadLanguage(...langs) {\n return core.loadLanguage(...langs.map(resolveLang));\n },\n loadTheme(...themes) {\n return core.loadTheme(...themes.map(resolveTheme));\n },\n };\n }\n return createHighlighter;\n}\nfunction makeSingletonHighlighter(createHighlighter) {\n let _shiki;\n async function getSingletonHighlighter(options = {}) {\n if (!_shiki) {\n _shiki = createHighlighter({\n ...options,\n themes: options.themes || [],\n langs: options.langs || [],\n });\n return _shiki;\n }\n else {\n const s = await _shiki;\n await Promise.all([\n s.loadTheme(...(options.themes || [])),\n s.loadLanguage(...(options.langs || [])),\n ]);\n return s;\n }\n }\n return getSingletonHighlighter;\n}\nfunction createSingletonShorthands(createHighlighter) {\n const getSingletonHighlighter = makeSingletonHighlighter(createHighlighter);\n return {\n getSingletonHighlighter(options) {\n return getSingletonHighlighter(options);\n },\n async codeToHtml(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToHtml(code, options);\n },\n async codeToHast(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToHast(code, options);\n },\n async codeToTokens(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: ('theme' in options ? [options.theme] : Object.values(options.themes)),\n });\n return shiki.codeToTokens(code, options);\n },\n async codeToTokensBase(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: [options.theme],\n });\n return shiki.codeToTokensBase(code, options);\n },\n async codeToTokensWithThemes(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: Object.values(options.themes).filter(Boolean),\n });\n return shiki.codeToTokensWithThemes(code, options);\n },\n async getLastGrammarState(code, options) {\n const shiki = await getSingletonHighlighter({\n langs: [options.lang],\n themes: [options.theme],\n });\n return shiki.getLastGrammarState(code, options);\n },\n };\n}\n\nexport { FontStyle, ShikiError, addClassToHast, applyColorReplacements, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighterCore, createPositionConverter, createShikiInternal, createSingletonShorthands, createdBundledHighlighter, getHighlighterCore, getShikiInternal, getSingletonHighlighterCore, getTokenStyleObject, toHtml as hastToHtml, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, loadWasm, makeSingletonHighlighter, makeSingletonHighlighterCore, normalizeTheme, resolveColorReplacements, setDefaultWasmLoader, splitLines, splitToken, splitTokens, stringifyTokenStyle, toArray, tokenizeAnsiWithTheme, tokenizeWithTheme, tokensToHast, transformerDecorations };\n","import { bundledLanguages } from './langs.mjs';\nexport { bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo } from './langs.mjs';\nimport { g as getWasmInlined } from './chunks/wasm-dynamic.mjs';\nimport { bundledThemes } from './themes.mjs';\nexport { bundledThemesInfo } from './themes.mjs';\nimport { createdBundledHighlighter, createSingletonShorthands } from '@shikijs/core';\nexport * from '@shikijs/core';\nexport { createCssVariablesTheme } from './theme-css-variables.mjs';\n\nconst createHighlighter = /* @__PURE__ */ createdBundledHighlighter(\n bundledLanguages,\n bundledThemes,\n getWasmInlined\n);\nconst {\n codeToHtml,\n codeToHast,\n codeToTokens,\n codeToTokensBase,\n codeToTokensWithThemes,\n getSingletonHighlighter,\n getLastGrammarState\n} = /* @__PURE__ */ createSingletonShorthands(\n createHighlighter\n);\nconst getHighlighter = (options) => {\n return createHighlighter(options);\n};\n\nexport { bundledLanguages, bundledThemes, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighter, getHighlighter, getLastGrammarState, getSingletonHighlighter, getWasmInlined };\n","const bundledLanguagesInfo = [\n {\n \"id\": \"abap\",\n \"name\": \"ABAP\",\n \"import\": () => import('./langs/abap.mjs')\n },\n {\n \"id\": \"actionscript-3\",\n \"name\": \"ActionScript\",\n \"import\": () => import('./langs/actionscript-3.mjs')\n },\n {\n \"id\": \"ada\",\n \"name\": \"Ada\",\n \"import\": () => import('./langs/ada.mjs')\n },\n {\n \"id\": \"angular-html\",\n \"name\": \"Angular HTML\",\n \"import\": () => import('./langs/angular-html.mjs')\n },\n {\n \"id\": \"angular-ts\",\n \"name\": \"Angular TypeScript\",\n \"import\": () => import('./langs/angular-ts.mjs')\n },\n {\n \"id\": \"apache\",\n \"name\": \"Apache Conf\",\n \"import\": () => import('./langs/apache.mjs')\n },\n {\n \"id\": \"apex\",\n \"name\": \"Apex\",\n \"import\": () => import('./langs/apex.mjs')\n },\n {\n \"id\": \"apl\",\n \"name\": \"APL\",\n \"import\": () => import('./langs/apl.mjs')\n },\n {\n \"id\": \"applescript\",\n \"name\": \"AppleScript\",\n \"import\": () => import('./langs/applescript.mjs')\n },\n {\n \"id\": \"ara\",\n \"name\": \"Ara\",\n \"import\": () => import('./langs/ara.mjs')\n },\n {\n \"id\": \"asciidoc\",\n \"name\": \"AsciiDoc\",\n \"aliases\": [\n \"adoc\"\n ],\n \"import\": () => import('./langs/asciidoc.mjs')\n },\n {\n \"id\": \"asm\",\n \"name\": \"Assembly\",\n \"import\": () => import('./langs/asm.mjs')\n },\n {\n \"id\": \"astro\",\n \"name\": \"Astro\",\n \"import\": () => import('./langs/astro.mjs')\n },\n {\n \"id\": \"awk\",\n \"name\": \"AWK\",\n \"import\": () => import('./langs/awk.mjs')\n },\n {\n \"id\": \"ballerina\",\n \"name\": \"Ballerina\",\n \"import\": () => import('./langs/ballerina.mjs')\n },\n {\n \"id\": \"bat\",\n \"name\": \"Batch File\",\n \"aliases\": [\n \"batch\"\n ],\n \"import\": () => import('./langs/bat.mjs')\n },\n {\n \"id\": \"beancount\",\n \"name\": \"Beancount\",\n \"import\": () => import('./langs/beancount.mjs')\n },\n {\n \"id\": \"berry\",\n \"name\": \"Berry\",\n \"aliases\": [\n \"be\"\n ],\n \"import\": () => import('./langs/berry.mjs')\n },\n {\n \"id\": \"bibtex\",\n \"name\": \"BibTeX\",\n \"import\": () => import('./langs/bibtex.mjs')\n },\n {\n \"id\": \"bicep\",\n \"name\": \"Bicep\",\n \"import\": () => import('./langs/bicep.mjs')\n },\n {\n \"id\": \"blade\",\n \"name\": \"Blade\",\n \"import\": () => import('./langs/blade.mjs')\n },\n {\n \"id\": \"c\",\n \"name\": \"C\",\n \"import\": () => import('./langs/c.mjs')\n },\n {\n \"id\": \"cadence\",\n \"name\": \"Cadence\",\n \"aliases\": [\n \"cdc\"\n ],\n \"import\": () => import('./langs/cadence.mjs')\n },\n {\n \"id\": \"clarity\",\n \"name\": \"Clarity\",\n \"import\": () => import('./langs/clarity.mjs')\n },\n {\n \"id\": \"clojure\",\n \"name\": \"Clojure\",\n \"aliases\": [\n \"clj\"\n ],\n \"import\": () => import('./langs/clojure.mjs')\n },\n {\n \"id\": \"cmake\",\n \"name\": \"CMake\",\n \"import\": () => import('./langs/cmake.mjs')\n },\n {\n \"id\": \"cobol\",\n \"name\": \"COBOL\",\n \"import\": () => import('./langs/cobol.mjs')\n },\n {\n \"id\": \"codeowners\",\n \"name\": \"CODEOWNERS\",\n \"import\": () => import('./langs/codeowners.mjs')\n },\n {\n \"id\": \"codeql\",\n \"name\": \"CodeQL\",\n \"aliases\": [\n \"ql\"\n ],\n \"import\": () => import('./langs/codeql.mjs')\n },\n {\n \"id\": \"coffee\",\n \"name\": \"CoffeeScript\",\n \"aliases\": [\n \"coffeescript\"\n ],\n \"import\": () => import('./langs/coffee.mjs')\n },\n {\n \"id\": \"common-lisp\",\n \"name\": \"Common Lisp\",\n \"aliases\": [\n \"lisp\"\n ],\n \"import\": () => import('./langs/common-lisp.mjs')\n },\n {\n \"id\": \"cpp\",\n \"name\": \"C++\",\n \"aliases\": [\n \"c++\"\n ],\n \"import\": () => import('./langs/cpp.mjs')\n },\n {\n \"id\": \"crystal\",\n \"name\": \"Crystal\",\n \"import\": () => import('./langs/crystal.mjs')\n },\n {\n \"id\": \"csharp\",\n \"name\": \"C#\",\n \"aliases\": [\n \"c#\",\n \"cs\"\n ],\n \"import\": () => import('./langs/csharp.mjs')\n },\n {\n \"id\": \"css\",\n \"name\": \"CSS\",\n \"import\": () => import('./langs/css.mjs')\n },\n {\n \"id\": \"csv\",\n \"name\": \"CSV\",\n \"import\": () => import('./langs/csv.mjs')\n },\n {\n \"id\": \"cue\",\n \"name\": \"CUE\",\n \"import\": () => import('./langs/cue.mjs')\n },\n {\n \"id\": \"cypher\",\n \"name\": \"Cypher\",\n \"aliases\": [\n \"cql\"\n ],\n \"import\": () => import('./langs/cypher.mjs')\n },\n {\n \"id\": \"d\",\n \"name\": \"D\",\n \"import\": () => import('./langs/d.mjs')\n },\n {\n \"id\": \"dart\",\n \"name\": \"Dart\",\n \"import\": () => import('./langs/dart.mjs')\n },\n {\n \"id\": \"dax\",\n \"name\": \"DAX\",\n \"import\": () => import('./langs/dax.mjs')\n },\n {\n \"id\": \"desktop\",\n \"name\": \"Desktop\",\n \"import\": () => import('./langs/desktop.mjs')\n },\n {\n \"id\": \"diff\",\n \"name\": \"Diff\",\n \"import\": () => import('./langs/diff.mjs')\n },\n {\n \"id\": \"docker\",\n \"name\": \"Dockerfile\",\n \"aliases\": [\n \"dockerfile\"\n ],\n \"import\": () => import('./langs/docker.mjs')\n },\n {\n \"id\": \"dream-maker\",\n \"name\": \"Dream Maker\",\n \"import\": () => import('./langs/dream-maker.mjs')\n },\n {\n \"id\": \"edge\",\n \"name\": \"Edge\",\n \"import\": () => import('./langs/edge.mjs')\n },\n {\n \"id\": \"elixir\",\n \"name\": \"Elixir\",\n \"import\": () => import('./langs/elixir.mjs')\n },\n {\n \"id\": \"elm\",\n \"name\": \"Elm\",\n \"import\": () => import('./langs/elm.mjs')\n },\n {\n \"id\": \"emacs-lisp\",\n \"name\": \"Emacs Lisp\",\n \"aliases\": [\n \"elisp\"\n ],\n \"import\": () => import('./langs/emacs-lisp.mjs')\n },\n {\n \"id\": \"erb\",\n \"name\": \"ERB\",\n \"import\": () => import('./langs/erb.mjs')\n },\n {\n \"id\": \"erlang\",\n \"name\": \"Erlang\",\n \"aliases\": [\n \"erl\"\n ],\n \"import\": () => import('./langs/erlang.mjs')\n },\n {\n \"id\": \"fennel\",\n \"name\": \"Fennel\",\n \"import\": () => import('./langs/fennel.mjs')\n },\n {\n \"id\": \"fish\",\n \"name\": \"Fish\",\n \"import\": () => import('./langs/fish.mjs')\n },\n {\n \"id\": \"fluent\",\n \"name\": \"Fluent\",\n \"aliases\": [\n \"ftl\"\n ],\n \"import\": () => import('./langs/fluent.mjs')\n },\n {\n \"id\": \"fortran-fixed-form\",\n \"name\": \"Fortran (Fixed Form)\",\n \"aliases\": [\n \"f\",\n \"for\",\n \"f77\"\n ],\n \"import\": () => import('./langs/fortran-fixed-form.mjs')\n },\n {\n \"id\": \"fortran-free-form\",\n \"name\": \"Fortran (Free Form)\",\n \"aliases\": [\n \"f90\",\n \"f95\",\n \"f03\",\n \"f08\",\n \"f18\"\n ],\n \"import\": () => import('./langs/fortran-free-form.mjs')\n },\n {\n \"id\": \"fsharp\",\n \"name\": \"F#\",\n \"aliases\": [\n \"f#\",\n \"fs\"\n ],\n \"import\": () => import('./langs/fsharp.mjs')\n },\n {\n \"id\": \"gdresource\",\n \"name\": \"GDResource\",\n \"import\": () => import('./langs/gdresource.mjs')\n },\n {\n \"id\": \"gdscript\",\n \"name\": \"GDScript\",\n \"import\": () => import('./langs/gdscript.mjs')\n },\n {\n \"id\": \"gdshader\",\n \"name\": \"GDShader\",\n \"import\": () => import('./langs/gdshader.mjs')\n },\n {\n \"id\": \"genie\",\n \"name\": \"Genie\",\n \"import\": () => import('./langs/genie.mjs')\n },\n {\n \"id\": \"gherkin\",\n \"name\": \"Gherkin\",\n \"import\": () => import('./langs/gherkin.mjs')\n },\n {\n \"id\": \"git-commit\",\n \"name\": \"Git Commit Message\",\n \"import\": () => import('./langs/git-commit.mjs')\n },\n {\n \"id\": \"git-rebase\",\n \"name\": \"Git Rebase Message\",\n \"import\": () => import('./langs/git-rebase.mjs')\n },\n {\n \"id\": \"gleam\",\n \"name\": \"Gleam\",\n \"import\": () => import('./langs/gleam.mjs')\n },\n {\n \"id\": \"glimmer-js\",\n \"name\": \"Glimmer JS\",\n \"aliases\": [\n \"gjs\"\n ],\n \"import\": () => import('./langs/glimmer-js.mjs')\n },\n {\n \"id\": \"glimmer-ts\",\n \"name\": \"Glimmer TS\",\n \"aliases\": [\n \"gts\"\n ],\n \"import\": () => import('./langs/glimmer-ts.mjs')\n },\n {\n \"id\": \"glsl\",\n \"name\": \"GLSL\",\n \"import\": () => import('./langs/glsl.mjs')\n },\n {\n \"id\": \"gnuplot\",\n \"name\": \"Gnuplot\",\n \"import\": () => import('./langs/gnuplot.mjs')\n },\n {\n \"id\": \"go\",\n \"name\": \"Go\",\n \"import\": () => import('./langs/go.mjs')\n },\n {\n \"id\": \"graphql\",\n \"name\": \"GraphQL\",\n \"aliases\": [\n \"gql\"\n ],\n \"import\": () => import('./langs/graphql.mjs')\n },\n {\n \"id\": \"groovy\",\n \"name\": \"Groovy\",\n \"import\": () => import('./langs/groovy.mjs')\n },\n {\n \"id\": \"hack\",\n \"name\": \"Hack\",\n \"import\": () => import('./langs/hack.mjs')\n },\n {\n \"id\": \"haml\",\n \"name\": \"Ruby Haml\",\n \"import\": () => import('./langs/haml.mjs')\n },\n {\n \"id\": \"handlebars\",\n \"name\": \"Handlebars\",\n \"aliases\": [\n \"hbs\"\n ],\n \"import\": () => import('./langs/handlebars.mjs')\n },\n {\n \"id\": \"haskell\",\n \"name\": \"Haskell\",\n \"aliases\": [\n \"hs\"\n ],\n \"import\": () => import('./langs/haskell.mjs')\n },\n {\n \"id\": \"haxe\",\n \"name\": \"Haxe\",\n \"import\": () => import('./langs/haxe.mjs')\n },\n {\n \"id\": \"hcl\",\n \"name\": \"HashiCorp HCL\",\n \"import\": () => import('./langs/hcl.mjs')\n },\n {\n \"id\": \"hjson\",\n \"name\": \"Hjson\",\n \"import\": () => import('./langs/hjson.mjs')\n },\n {\n \"id\": \"hlsl\",\n \"name\": \"HLSL\",\n \"import\": () => import('./langs/hlsl.mjs')\n },\n {\n \"id\": \"html\",\n \"name\": \"HTML\",\n \"import\": () => import('./langs/html.mjs')\n },\n {\n \"id\": \"html-derivative\",\n \"name\": \"HTML (Derivative)\",\n \"import\": () => import('./langs/html-derivative.mjs')\n },\n {\n \"id\": \"http\",\n \"name\": \"HTTP\",\n \"import\": () => import('./langs/http.mjs')\n },\n {\n \"id\": \"hxml\",\n \"name\": \"HXML\",\n \"import\": () => import('./langs/hxml.mjs')\n },\n {\n \"id\": \"hy\",\n \"name\": \"Hy\",\n \"import\": () => import('./langs/hy.mjs')\n },\n {\n \"id\": \"imba\",\n \"name\": \"Imba\",\n \"import\": () => import('./langs/imba.mjs')\n },\n {\n \"id\": \"ini\",\n \"name\": \"INI\",\n \"aliases\": [\n \"properties\"\n ],\n \"import\": () => import('./langs/ini.mjs')\n },\n {\n \"id\": \"java\",\n \"name\": \"Java\",\n \"import\": () => import('./langs/java.mjs')\n },\n {\n \"id\": \"javascript\",\n \"name\": \"JavaScript\",\n \"aliases\": [\n \"js\"\n ],\n \"import\": () => import('./langs/javascript.mjs')\n },\n {\n \"id\": \"jinja\",\n \"name\": \"Jinja\",\n \"import\": () => import('./langs/jinja.mjs')\n },\n {\n \"id\": \"jison\",\n \"name\": \"Jison\",\n \"import\": () => import('./langs/jison.mjs')\n },\n {\n \"id\": \"json\",\n \"name\": \"JSON\",\n \"import\": () => import('./langs/json.mjs')\n },\n {\n \"id\": \"json5\",\n \"name\": \"JSON5\",\n \"import\": () => import('./langs/json5.mjs')\n },\n {\n \"id\": \"jsonc\",\n \"name\": \"JSON with Comments\",\n \"import\": () => import('./langs/jsonc.mjs')\n },\n {\n \"id\": \"jsonl\",\n \"name\": \"JSON Lines\",\n \"import\": () => import('./langs/jsonl.mjs')\n },\n {\n \"id\": \"jsonnet\",\n \"name\": \"Jsonnet\",\n \"import\": () => import('./langs/jsonnet.mjs')\n },\n {\n \"id\": \"jssm\",\n \"name\": \"JSSM\",\n \"aliases\": [\n \"fsl\"\n ],\n \"import\": () => import('./langs/jssm.mjs')\n },\n {\n \"id\": \"jsx\",\n \"name\": \"JSX\",\n \"import\": () => import('./langs/jsx.mjs')\n },\n {\n \"id\": \"julia\",\n \"name\": \"Julia\",\n \"aliases\": [\n \"jl\"\n ],\n \"import\": () => import('./langs/julia.mjs')\n },\n {\n \"id\": \"kotlin\",\n \"name\": \"Kotlin\",\n \"aliases\": [\n \"kt\",\n \"kts\"\n ],\n \"import\": () => import('./langs/kotlin.mjs')\n },\n {\n \"id\": \"kusto\",\n \"name\": \"Kusto\",\n \"aliases\": [\n \"kql\"\n ],\n \"import\": () => import('./langs/kusto.mjs')\n },\n {\n \"id\": \"latex\",\n \"name\": \"LaTeX\",\n \"import\": () => import('./langs/latex.mjs')\n },\n {\n \"id\": \"lean\",\n \"name\": \"Lean 4\",\n \"aliases\": [\n \"lean4\"\n ],\n \"import\": () => import('./langs/lean.mjs')\n },\n {\n \"id\": \"less\",\n \"name\": \"Less\",\n \"import\": () => import('./langs/less.mjs')\n },\n {\n \"id\": \"liquid\",\n \"name\": \"Liquid\",\n \"import\": () => import('./langs/liquid.mjs')\n },\n {\n \"id\": \"log\",\n \"name\": \"Log file\",\n \"import\": () => import('./langs/log.mjs')\n },\n {\n \"id\": \"logo\",\n \"name\": \"Logo\",\n \"import\": () => import('./langs/logo.mjs')\n },\n {\n \"id\": \"lua\",\n \"name\": \"Lua\",\n \"import\": () => import('./langs/lua.mjs')\n },\n {\n \"id\": \"luau\",\n \"name\": \"Luau\",\n \"import\": () => import('./langs/luau.mjs')\n },\n {\n \"id\": \"make\",\n \"name\": \"Makefile\",\n \"aliases\": [\n \"makefile\"\n ],\n \"import\": () => import('./langs/make.mjs')\n },\n {\n \"id\": \"markdown\",\n \"name\": \"Markdown\",\n \"aliases\": [\n \"md\"\n ],\n \"import\": () => import('./langs/markdown.mjs')\n },\n {\n \"id\": \"marko\",\n \"name\": \"Marko\",\n \"import\": () => import('./langs/marko.mjs')\n },\n {\n \"id\": \"matlab\",\n \"name\": \"MATLAB\",\n \"import\": () => import('./langs/matlab.mjs')\n },\n {\n \"id\": \"mdc\",\n \"name\": \"MDC\",\n \"import\": () => import('./langs/mdc.mjs')\n },\n {\n \"id\": \"mdx\",\n \"name\": \"MDX\",\n \"import\": () => import('./langs/mdx.mjs')\n },\n {\n \"id\": \"mermaid\",\n \"name\": \"Mermaid\",\n \"import\": () => import('./langs/mermaid.mjs')\n },\n {\n \"id\": \"mojo\",\n \"name\": \"Mojo\",\n \"import\": () => import('./langs/mojo.mjs')\n },\n {\n \"id\": \"move\",\n \"name\": \"Move\",\n \"import\": () => import('./langs/move.mjs')\n },\n {\n \"id\": \"narrat\",\n \"name\": \"Narrat Language\",\n \"aliases\": [\n \"nar\"\n ],\n \"import\": () => import('./langs/narrat.mjs')\n },\n {\n \"id\": \"nextflow\",\n \"name\": \"Nextflow\",\n \"aliases\": [\n \"nf\"\n ],\n \"import\": () => import('./langs/nextflow.mjs')\n },\n {\n \"id\": \"nginx\",\n \"name\": \"Nginx\",\n \"import\": () => import('./langs/nginx.mjs')\n },\n {\n \"id\": \"nim\",\n \"name\": \"Nim\",\n \"import\": () => import('./langs/nim.mjs')\n },\n {\n \"id\": \"nix\",\n \"name\": \"Nix\",\n \"import\": () => import('./langs/nix.mjs')\n },\n {\n \"id\": \"nushell\",\n \"name\": \"nushell\",\n \"aliases\": [\n \"nu\"\n ],\n \"import\": () => import('./langs/nushell.mjs')\n },\n {\n \"id\": \"objective-c\",\n \"name\": \"Objective-C\",\n \"aliases\": [\n \"objc\"\n ],\n \"import\": () => import('./langs/objective-c.mjs')\n },\n {\n \"id\": \"objective-cpp\",\n \"name\": \"Objective-C++\",\n \"import\": () => import('./langs/objective-cpp.mjs')\n },\n {\n \"id\": \"ocaml\",\n \"name\": \"OCaml\",\n \"import\": () => import('./langs/ocaml.mjs')\n },\n {\n \"id\": \"pascal\",\n \"name\": \"Pascal\",\n \"import\": () => import('./langs/pascal.mjs')\n },\n {\n \"id\": \"perl\",\n \"name\": \"Perl\",\n \"import\": () => import('./langs/perl.mjs')\n },\n {\n \"id\": \"php\",\n \"name\": \"PHP\",\n \"import\": () => import('./langs/php.mjs')\n },\n {\n \"id\": \"plsql\",\n \"name\": \"PL/SQL\",\n \"import\": () => import('./langs/plsql.mjs')\n },\n {\n \"id\": \"po\",\n \"name\": \"Gettext PO\",\n \"aliases\": [\n \"pot\",\n \"potx\"\n ],\n \"import\": () => import('./langs/po.mjs')\n },\n {\n \"id\": \"postcss\",\n \"name\": \"PostCSS\",\n \"import\": () => import('./langs/postcss.mjs')\n },\n {\n \"id\": \"powerquery\",\n \"name\": \"PowerQuery\",\n \"import\": () => import('./langs/powerquery.mjs')\n },\n {\n \"id\": \"powershell\",\n \"name\": \"PowerShell\",\n \"aliases\": [\n \"ps\",\n \"ps1\"\n ],\n \"import\": () => import('./langs/powershell.mjs')\n },\n {\n \"id\": \"prisma\",\n \"name\": \"Prisma\",\n \"import\": () => import('./langs/prisma.mjs')\n },\n {\n \"id\": \"prolog\",\n \"name\": \"Prolog\",\n \"import\": () => import('./langs/prolog.mjs')\n },\n {\n \"id\": \"proto\",\n \"name\": \"Protocol Buffer 3\",\n \"import\": () => import('./langs/proto.mjs')\n },\n {\n \"id\": \"pug\",\n \"name\": \"Pug\",\n \"aliases\": [\n \"jade\"\n ],\n \"import\": () => import('./langs/pug.mjs')\n },\n {\n \"id\": \"puppet\",\n \"name\": \"Puppet\",\n \"import\": () => import('./langs/puppet.mjs')\n },\n {\n \"id\": \"purescript\",\n \"name\": \"PureScript\",\n \"import\": () => import('./langs/purescript.mjs')\n },\n {\n \"id\": \"python\",\n \"name\": \"Python\",\n \"aliases\": [\n \"py\"\n ],\n \"import\": () => import('./langs/python.mjs')\n },\n {\n \"id\": \"qml\",\n \"name\": \"QML\",\n \"import\": () => import('./langs/qml.mjs')\n },\n {\n \"id\": \"qmldir\",\n \"name\": \"QML Directory\",\n \"import\": () => import('./langs/qmldir.mjs')\n },\n {\n \"id\": \"qss\",\n \"name\": \"Qt Style Sheets\",\n \"import\": () => import('./langs/qss.mjs')\n },\n {\n \"id\": \"r\",\n \"name\": \"R\",\n \"import\": () => import('./langs/r.mjs')\n },\n {\n \"id\": \"racket\",\n \"name\": \"Racket\",\n \"import\": () => import('./langs/racket.mjs')\n },\n {\n \"id\": \"raku\",\n \"name\": \"Raku\",\n \"aliases\": [\n \"perl6\"\n ],\n \"import\": () => import('./langs/raku.mjs')\n },\n {\n \"id\": \"razor\",\n \"name\": \"ASP.NET Razor\",\n \"import\": () => import('./langs/razor.mjs')\n },\n {\n \"id\": \"reg\",\n \"name\": \"Windows Registry Script\",\n \"import\": () => import('./langs/reg.mjs')\n },\n {\n \"id\": \"regexp\",\n \"name\": \"RegExp\",\n \"aliases\": [\n \"regex\"\n ],\n \"import\": () => import('./langs/regexp.mjs')\n },\n {\n \"id\": \"rel\",\n \"name\": \"Rel\",\n \"import\": () => import('./langs/rel.mjs')\n },\n {\n \"id\": \"riscv\",\n \"name\": \"RISC-V\",\n \"import\": () => import('./langs/riscv.mjs')\n },\n {\n \"id\": \"rst\",\n \"name\": \"reStructuredText\",\n \"import\": () => import('./langs/rst.mjs')\n },\n {\n \"id\": \"ruby\",\n \"name\": \"Ruby\",\n \"aliases\": [\n \"rb\"\n ],\n \"import\": () => import('./langs/ruby.mjs')\n },\n {\n \"id\": \"rust\",\n \"name\": \"Rust\",\n \"aliases\": [\n \"rs\"\n ],\n \"import\": () => import('./langs/rust.mjs')\n },\n {\n \"id\": \"sas\",\n \"name\": \"SAS\",\n \"import\": () => import('./langs/sas.mjs')\n },\n {\n \"id\": \"sass\",\n \"name\": \"Sass\",\n \"import\": () => import('./langs/sass.mjs')\n },\n {\n \"id\": \"scala\",\n \"name\": \"Scala\",\n \"import\": () => import('./langs/scala.mjs')\n },\n {\n \"id\": \"scheme\",\n \"name\": \"Scheme\",\n \"import\": () => import('./langs/scheme.mjs')\n },\n {\n \"id\": \"scss\",\n \"name\": \"SCSS\",\n \"import\": () => import('./langs/scss.mjs')\n },\n {\n \"id\": \"shaderlab\",\n \"name\": \"ShaderLab\",\n \"aliases\": [\n \"shader\"\n ],\n \"import\": () => import('./langs/shaderlab.mjs')\n },\n {\n \"id\": \"shellscript\",\n \"name\": \"Shell\",\n \"aliases\": [\n \"bash\",\n \"sh\",\n \"shell\",\n \"zsh\"\n ],\n \"import\": () => import('./langs/shellscript.mjs')\n },\n {\n \"id\": \"shellsession\",\n \"name\": \"Shell Session\",\n \"aliases\": [\n \"console\"\n ],\n \"import\": () => import('./langs/shellsession.mjs')\n },\n {\n \"id\": \"smalltalk\",\n \"name\": \"Smalltalk\",\n \"import\": () => import('./langs/smalltalk.mjs')\n },\n {\n \"id\": \"solidity\",\n \"name\": \"Solidity\",\n \"import\": () => import('./langs/solidity.mjs')\n },\n {\n \"id\": \"soy\",\n \"name\": \"Closure Templates\",\n \"aliases\": [\n \"closure-templates\"\n ],\n \"import\": () => import('./langs/soy.mjs')\n },\n {\n \"id\": \"sparql\",\n \"name\": \"SPARQL\",\n \"import\": () => import('./langs/sparql.mjs')\n },\n {\n \"id\": \"splunk\",\n \"name\": \"Splunk Query Language\",\n \"aliases\": [\n \"spl\"\n ],\n \"import\": () => import('./langs/splunk.mjs')\n },\n {\n \"id\": \"sql\",\n \"name\": \"SQL\",\n \"import\": () => import('./langs/sql.mjs')\n },\n {\n \"id\": \"ssh-config\",\n \"name\": \"SSH Config\",\n \"import\": () => import('./langs/ssh-config.mjs')\n },\n {\n \"id\": \"stata\",\n \"name\": \"Stata\",\n \"import\": () => import('./langs/stata.mjs')\n },\n {\n \"id\": \"stylus\",\n \"name\": \"Stylus\",\n \"aliases\": [\n \"styl\"\n ],\n \"import\": () => import('./langs/stylus.mjs')\n },\n {\n \"id\": \"svelte\",\n \"name\": \"Svelte\",\n \"import\": () => import('./langs/svelte.mjs')\n },\n {\n \"id\": \"swift\",\n \"name\": \"Swift\",\n \"import\": () => import('./langs/swift.mjs')\n },\n {\n \"id\": \"system-verilog\",\n \"name\": \"SystemVerilog\",\n \"import\": () => import('./langs/system-verilog.mjs')\n },\n {\n \"id\": \"systemd\",\n \"name\": \"Systemd Units\",\n \"import\": () => import('./langs/systemd.mjs')\n },\n {\n \"id\": \"tasl\",\n \"name\": \"Tasl\",\n \"import\": () => import('./langs/tasl.mjs')\n },\n {\n \"id\": \"tcl\",\n \"name\": \"Tcl\",\n \"import\": () => import('./langs/tcl.mjs')\n },\n {\n \"id\": \"templ\",\n \"name\": \"Templ\",\n \"import\": () => import('./langs/templ.mjs')\n },\n {\n \"id\": \"terraform\",\n \"name\": \"Terraform\",\n \"aliases\": [\n \"tf\",\n \"tfvars\"\n ],\n \"import\": () => import('./langs/terraform.mjs')\n },\n {\n \"id\": \"tex\",\n \"name\": \"TeX\",\n \"import\": () => import('./langs/tex.mjs')\n },\n {\n \"id\": \"toml\",\n \"name\": \"TOML\",\n \"import\": () => import('./langs/toml.mjs')\n },\n {\n \"id\": \"tsv\",\n \"name\": \"TSV\",\n \"import\": () => import('./langs/tsv.mjs')\n },\n {\n \"id\": \"tsx\",\n \"name\": \"TSX\",\n \"import\": () => import('./langs/tsx.mjs')\n },\n {\n \"id\": \"turtle\",\n \"name\": \"Turtle\",\n \"import\": () => import('./langs/turtle.mjs')\n },\n {\n \"id\": \"twig\",\n \"name\": \"Twig\",\n \"import\": () => import('./langs/twig.mjs')\n },\n {\n \"id\": \"typescript\",\n \"name\": \"TypeScript\",\n \"aliases\": [\n \"ts\"\n ],\n \"import\": () => import('./langs/typescript.mjs')\n },\n {\n \"id\": \"typespec\",\n \"name\": \"TypeSpec\",\n \"aliases\": [\n \"tsp\"\n ],\n \"import\": () => import('./langs/typespec.mjs')\n },\n {\n \"id\": \"typst\",\n \"name\": \"Typst\",\n \"aliases\": [\n \"typ\"\n ],\n \"import\": () => import('./langs/typst.mjs')\n },\n {\n \"id\": \"v\",\n \"name\": \"V\",\n \"import\": () => import('./langs/v.mjs')\n },\n {\n \"id\": \"vala\",\n \"name\": \"Vala\",\n \"import\": () => import('./langs/vala.mjs')\n },\n {\n \"id\": \"vb\",\n \"name\": \"Visual Basic\",\n \"aliases\": [\n \"cmd\"\n ],\n \"import\": () => import('./langs/vb.mjs')\n },\n {\n \"id\": \"verilog\",\n \"name\": \"Verilog\",\n \"import\": () => import('./langs/verilog.mjs')\n },\n {\n \"id\": \"vhdl\",\n \"name\": \"VHDL\",\n \"import\": () => import('./langs/vhdl.mjs')\n },\n {\n \"id\": \"viml\",\n \"name\": \"Vim Script\",\n \"aliases\": [\n \"vim\",\n \"vimscript\"\n ],\n \"import\": () => import('./langs/viml.mjs')\n },\n {\n \"id\": \"vue\",\n \"name\": \"Vue\",\n \"import\": () => import('./langs/vue.mjs')\n },\n {\n \"id\": \"vue-html\",\n \"name\": \"Vue HTML\",\n \"import\": () => import('./langs/vue-html.mjs')\n },\n {\n \"id\": \"vyper\",\n \"name\": \"Vyper\",\n \"aliases\": [\n \"vy\"\n ],\n \"import\": () => import('./langs/vyper.mjs')\n },\n {\n \"id\": \"wasm\",\n \"name\": \"WebAssembly\",\n \"import\": () => import('./langs/wasm.mjs')\n },\n {\n \"id\": \"wenyan\",\n \"name\": \"Wenyan\",\n \"aliases\": [\n \"\\u6587\\u8A00\"\n ],\n \"import\": () => import('./langs/wenyan.mjs')\n },\n {\n \"id\": \"wgsl\",\n \"name\": \"WGSL\",\n \"import\": () => import('./langs/wgsl.mjs')\n },\n {\n \"id\": \"wikitext\",\n \"name\": \"Wikitext\",\n \"aliases\": [\n \"mediawiki\",\n \"wiki\"\n ],\n \"import\": () => import('./langs/wikitext.mjs')\n },\n {\n \"id\": \"wolfram\",\n \"name\": \"Wolfram\",\n \"aliases\": [\n \"wl\"\n ],\n \"import\": () => import('./langs/wolfram.mjs')\n },\n {\n \"id\": \"xml\",\n \"name\": \"XML\",\n \"import\": () => import('./langs/xml.mjs')\n },\n {\n \"id\": \"xsl\",\n \"name\": \"XSL\",\n \"import\": () => import('./langs/xsl.mjs')\n },\n {\n \"id\": \"yaml\",\n \"name\": \"YAML\",\n \"aliases\": [\n \"yml\"\n ],\n \"import\": () => import('./langs/yaml.mjs')\n },\n {\n \"id\": \"zenscript\",\n \"name\": \"ZenScript\",\n \"import\": () => import('./langs/zenscript.mjs')\n },\n {\n \"id\": \"zig\",\n \"name\": \"Zig\",\n \"import\": () => import('./langs/zig.mjs')\n }\n];\nconst bundledLanguagesBase = Object.fromEntries(bundledLanguagesInfo.map((i) => [i.id, i.import]));\nconst bundledLanguagesAlias = Object.fromEntries(bundledLanguagesInfo.flatMap((i) => i.aliases?.map((a) => [a, i.import]) || []));\nconst bundledLanguages = {\n ...bundledLanguagesBase,\n ...bundledLanguagesAlias\n};\n\nexport { bundledLanguages, bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo };\n","const getWasmInlined = async (info) => {\n return import('shiki/wasm').then((wasm) => wasm.default(info));\n};\n\nexport { getWasmInlined as g };\n","const bundledThemesInfo = [\n {\n \"id\": \"andromeeda\",\n \"displayName\": \"Andromeeda\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/andromeeda.mjs')\n },\n {\n \"id\": \"aurora-x\",\n \"displayName\": \"Aurora X\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/aurora-x.mjs')\n },\n {\n \"id\": \"ayu-dark\",\n \"displayName\": \"Ayu Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/ayu-dark.mjs')\n },\n {\n \"id\": \"catppuccin-frappe\",\n \"displayName\": \"Catppuccin Frapp\\xE9\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-frappe.mjs')\n },\n {\n \"id\": \"catppuccin-latte\",\n \"displayName\": \"Catppuccin Latte\",\n \"type\": \"light\",\n \"import\": () => import('./themes/catppuccin-latte.mjs')\n },\n {\n \"id\": \"catppuccin-macchiato\",\n \"displayName\": \"Catppuccin Macchiato\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-macchiato.mjs')\n },\n {\n \"id\": \"catppuccin-mocha\",\n \"displayName\": \"Catppuccin Mocha\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-mocha.mjs')\n },\n {\n \"id\": \"dark-plus\",\n \"displayName\": \"Dark Plus\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dark-plus.mjs')\n },\n {\n \"id\": \"dracula\",\n \"displayName\": \"Dracula Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula.mjs')\n },\n {\n \"id\": \"dracula-soft\",\n \"displayName\": \"Dracula Theme Soft\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula-soft.mjs')\n },\n {\n \"id\": \"github-dark\",\n \"displayName\": \"GitHub Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark.mjs')\n },\n {\n \"id\": \"github-dark-default\",\n \"displayName\": \"GitHub Dark Default\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-default.mjs')\n },\n {\n \"id\": \"github-dark-dimmed\",\n \"displayName\": \"GitHub Dark Dimmed\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-dimmed.mjs')\n },\n {\n \"id\": \"github-light\",\n \"displayName\": \"GitHub Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light.mjs')\n },\n {\n \"id\": \"github-light-default\",\n \"displayName\": \"GitHub Light Default\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light-default.mjs')\n },\n {\n \"id\": \"houston\",\n \"displayName\": \"Houston\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/houston.mjs')\n },\n {\n \"id\": \"laserwave\",\n \"displayName\": \"LaserWave\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/laserwave.mjs')\n },\n {\n \"id\": \"light-plus\",\n \"displayName\": \"Light Plus\",\n \"type\": \"light\",\n \"import\": () => import('./themes/light-plus.mjs')\n },\n {\n \"id\": \"material-theme\",\n \"displayName\": \"Material Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme.mjs')\n },\n {\n \"id\": \"material-theme-darker\",\n \"displayName\": \"Material Theme Darker\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-darker.mjs')\n },\n {\n \"id\": \"material-theme-lighter\",\n \"displayName\": \"Material Theme Lighter\",\n \"type\": \"light\",\n \"import\": () => import('./themes/material-theme-lighter.mjs')\n },\n {\n \"id\": \"material-theme-ocean\",\n \"displayName\": \"Material Theme Ocean\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-ocean.mjs')\n },\n {\n \"id\": \"material-theme-palenight\",\n \"displayName\": \"Material Theme Palenight\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-palenight.mjs')\n },\n {\n \"id\": \"min-dark\",\n \"displayName\": \"Min Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/min-dark.mjs')\n },\n {\n \"id\": \"min-light\",\n \"displayName\": \"Min Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/min-light.mjs')\n },\n {\n \"id\": \"monokai\",\n \"displayName\": \"Monokai\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/monokai.mjs')\n },\n {\n \"id\": \"night-owl\",\n \"displayName\": \"Night Owl\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/night-owl.mjs')\n },\n {\n \"id\": \"nord\",\n \"displayName\": \"Nord\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/nord.mjs')\n },\n {\n \"id\": \"one-dark-pro\",\n \"displayName\": \"One Dark Pro\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/one-dark-pro.mjs')\n },\n {\n \"id\": \"one-light\",\n \"displayName\": \"One Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/one-light.mjs')\n },\n {\n \"id\": \"poimandres\",\n \"displayName\": \"Poimandres\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/poimandres.mjs')\n },\n {\n \"id\": \"red\",\n \"displayName\": \"Red\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/red.mjs')\n },\n {\n \"id\": \"rose-pine\",\n \"displayName\": \"Ros\\xE9 Pine\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/rose-pine.mjs')\n },\n {\n \"id\": \"rose-pine-dawn\",\n \"displayName\": \"Ros\\xE9 Pine Dawn\",\n \"type\": \"light\",\n \"import\": () => import('./themes/rose-pine-dawn.mjs')\n },\n {\n \"id\": \"rose-pine-moon\",\n \"displayName\": \"Ros\\xE9 Pine Moon\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/rose-pine-moon.mjs')\n },\n {\n \"id\": \"slack-dark\",\n \"displayName\": \"Slack Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/slack-dark.mjs')\n },\n {\n \"id\": \"slack-ochin\",\n \"displayName\": \"Slack Ochin\",\n \"type\": \"light\",\n \"import\": () => import('./themes/slack-ochin.mjs')\n },\n {\n \"id\": \"snazzy-light\",\n \"displayName\": \"Snazzy Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/snazzy-light.mjs')\n },\n {\n \"id\": \"solarized-dark\",\n \"displayName\": \"Solarized Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/solarized-dark.mjs')\n },\n {\n \"id\": \"solarized-light\",\n \"displayName\": \"Solarized Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/solarized-light.mjs')\n },\n {\n \"id\": \"synthwave-84\",\n \"displayName\": \"Synthwave '84\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/synthwave-84.mjs')\n },\n {\n \"id\": \"tokyo-night\",\n \"displayName\": \"Tokyo Night\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/tokyo-night.mjs')\n },\n {\n \"id\": \"vesper\",\n \"displayName\": \"Vesper\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vesper.mjs')\n },\n {\n \"id\": \"vitesse-black\",\n \"displayName\": \"Vitesse Black\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vitesse-black.mjs')\n },\n {\n \"id\": \"vitesse-dark\",\n \"displayName\": \"Vitesse Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/vitesse-dark.mjs')\n },\n {\n \"id\": \"vitesse-light\",\n \"displayName\": \"Vitesse Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/vitesse-light.mjs')\n }\n];\nconst bundledThemes = Object.fromEntries(bundledThemesInfo.map((i) => [i.id, i.import]));\n\nexport { bundledThemes, bundledThemesInfo };\n","var FontStyle;\n(function (FontStyle) {\n FontStyle[FontStyle[\"NotSet\"] = -1] = \"NotSet\";\n FontStyle[FontStyle[\"None\"] = 0] = \"None\";\n FontStyle[FontStyle[\"Italic\"] = 1] = \"Italic\";\n FontStyle[FontStyle[\"Bold\"] = 2] = \"Bold\";\n FontStyle[FontStyle[\"Underline\"] = 4] = \"Underline\";\n})(FontStyle || (FontStyle = {}));\n\nexport { FontStyle };\n","/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html, property, CSSResultArray, TemplateResult, PropertyValueMap } from 'lit-element';\nimport { customElement, state } from 'lit/decorators.js';\nimport { styles } from './nile-highlighter.css';\nimport NileElement from '../internal/nile-element';\n\nimport { codeToHtml } from 'shiki'\nimport { ShikiTheme, ShikiLanguage } from './theme-list';\n\n\n/**\n * Nile highlighter component.\n *\n * @tag nile-highlighter\n *\n */\n@customElement('nile-highlighter')\nexport class NileHighlighter extends NileElement {\n\n\t@property({ type: String}) code = ``;\n\t\n\t@property({ type: String, reflect:true }) language : ShikiLanguage = 'javascript';\n\n\t@property({ type: String, reflect:true }) theme: ShikiTheme = 'min-light';\n\n\t@state() highlightedCode = '';\n\t\n\t/**\n\t * The styles for nile-highlighter\n\t * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n\t */\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\n\t/* #endregion */\n\n\n\tprotected async updated(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>) {\n\t\tif (changedProperties.has('code') || changedProperties.has('language') || changedProperties.has('theme')) {\n\t\t\tthis.highlightedCode = await codeToHtml(this.code, {\n\t\t\t\tlang: this.language,\n\t\t\t\ttheme: this.theme\n\t\t\t})\n\t\t\tthis.requestUpdate();\n\t\t}\n\t}\n\t/* #region Methods */\n\t/**\n\t * Render method\n\t * @slot This is a slot test\n\t */\n\tpublic render(): TemplateResult {\n\t\treturn html`\n\t\t\t\t<div class=\"code-container\" .innerHTML=${this.highlightedCode}></div>\n\t\t\t`;\n\t}\n\n\t/* #endregion */\n}\n\nexport default NileHighlighter;\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'nile-highlighter': NileHighlighter;\n\t}\n}"],"names":["createMatchers","selector","matchesName","results","tokenizer","input","regex","match","exec","next","res","newTokenizer","token","priority","length","charAt","console","log","matcher","parseConjunction","push","t","parseOperand","o","expressionToNegate","matcherInput","expressionInParents","matchers","some","parseInnerExpression","isIdentifier","identifiers","every","disposeOnigString","str","dispose","doClone","something","Array","isArray","arr","r","i","len","cloneArray","obj","key","cloneObj","mergeObjects","target","_len","arguments","sources","_key","forEach","source","basename","path","idx","lastIndexOf","substring","substr","strcmp","a","b","strArrCmp","len1","len2","isValidHexColor","hex","test","escapeRegExpCharacters","value","replace","collectReferencesOfReference","reference","baseGrammarScopeName","repo","result","selfGrammar","lookup","scopeName","Error","baseGrammar","TopLevelRuleReference","collectExternalReferencesInTopLevelRule","collectExternalReferencesInTopLevelRepositoryRule","ruleName","repository","injections","_iterator3","_createForOfIteratorHelper","s","_step3","n","done","injection","add","err","e","f","context","collectExternalReferencesInRules","patterns","Object","values","_objectSpread","rules","_iterator4","_step4","rule","visitedRule","has","patternRepository","include","parseInclude","kind","undefined","newContext","TopLevelRepositoryRuleReference","BaseReference","SelfReference","indexOfSharp","indexOf","TopLevelReference","RelativeReference","TopLevelRepositoryReference","_matchesScope","scopePattern","startsWith","_tokenizeString","grammar","lineText","isFirstLine","linePos","stack","lineTokens","checkWhileConditions","timeLimit","lineLength","content","STOP","anchorPosition","whileCheckResult","beginRuleCapturedEOL","whileRules","node","pop","nodeRule","getRule","BeginWhileRule","whileRule","_ft","prepareRuleWhileSearch","endRule","ruleScanner","findOptions","findNextMatchSync","ruleId","whileRuleId","captureIndices","produce","start","handleCaptures","whileCaptures","end","_checkWhileConditions","startTime","Date","now","TokenizeStringResult","scanNext","p","matchResult","prepareRuleSearch","matchedRuleId","matchRule","getInjections","injectionResult","bestMatchRuleId","bestMatchRating","Number","MAX_VALUE","bestMatchCaptureIndices","bestMatchResultPriority","scopes","contentNameScopesList","getScopeNames","matchRating","priorityMatch","matchInjections","matchResultScore","injectionResultScore","matchRuleOrInjections","hasAdvanced","endRuleId","poppedRule","withContentNameScopesList","nameScopesList","endCaptures","popped","parent","getAnchorPos","getEnterPos","_rule","beforePush","getName","pushAttributed","BeginEndRule","pushedRule","beginCaptures","contentName","getContentName","endHasBackReferences","withEndRule","getEndWithResolvedBackReferences","hasSameRuleAs","whileHasBackReferences","getWhileWithResolvedBackReferences","captures","safePop","endRegexSource","allowA","allowG","compileAG","compileWhileAG","lineTextContent","Math","min","localStack","maxEnd","captureRule","captureIndex","endPos","produceFromScopes","retokenizeCapturedWithRuleId","stackClone","onigSubStr","createOnigString","captureRuleScopeName","captureRuleScopesList","LocalStackElement","collectInjections","ruleFactoryHelper","nameMatcher","RuleFactory","getCompiledRuleId","_iterator9","_step9","debugSelector","identifers","lastIndex","identifier","scopesAreMatching","thisScopeName","initGrammar","base","$self","$vscodeTextmateLocation","name","$base","splitLines","code","preserveEnding","parts","split","index","lines","_n28","line","isPlainLang","lang","includes","isSpecialLang","isNoneTheme","theme","isSpecialTheme","addClassToHast","className","_t$properties","properties","targets","_iterator18","c","_step18","class","resolveColorReplacements","options","replacements","colorReplacements","themeName","_i17","_Object$entries","entries","_Object$entries$_i","_slicedToArray","assign","applyColorReplacements","color","toLowerCase","getTokenStyleObject","styles","bgColor","fontStyle","FontStyle","Italic","Bold","Underline","stringifyTokenStyle","map","_ref4","_ref5","join","findSequence","position","nextEscape","nextClose","sequence","startPosition","parseColor","offset","colorMode","rgb","x","parseInt","isNaN","type","colorIndex","parseSequence","commands","codeInt","decorations","decoration","namedColors","_ne","_ne3","createColorPalette","defaultNamedColorsMap","namedColorsMap","namedColor","rgbColor","concat","max","toString","padStart","colorTable","tableColor","levels","g","level","getColorTable","tokenizeAnsiWithTheme","fileContents","colorPalette","fromEntries","_t$colors","colors","toUpperCase","parser","foreground","background","decorations2","Set","parse","tokens","findResult","text","_iterator19","_step19","styleToken","clear","_iterator20","_step20","createAnsiSequenceParser","bg","fg","hexMatch","alpha","round","from","cssVarMatch","dimColor","None","codeToTokensBase","internal","_n$lang","getLoadedThemes","_t$setTheme","setTheme","colorMap","_grammar","getLanguage","grammarState","ShikiError","_tokenizeWithTheme","tokenizeWithTheme","tokenizeMaxLineLength","_r$tokenizeMaxLineLen","_r$tokenizeTimeLimit","tokenizeTimeLimit","stateStack","state","GrammarState","_stack","getGrammarStack","grammarContextCode","INITIAL","actual","final","themeSettingsSelectors","includeExplanation","_iterator21","settings","_step21","setting","selectors","_typeof","scope","trim","_a$_t","lineOffset","resultWithScopes","tokensWithScopes","tokensWithScopesIndex","tokenizeLine","tokenizeLine2","tokensLength","j","startIndex","nextStartIndex","metadata","StackElementMetadata","getForeground","getFontStyle","explanation","tokenWithScopes","tokenWithScopesText","endIndex","explainThemeScopes","ruleStack","themeSelectors","parentScopes","slice","themeMatches","explainThemeScope","matchesOne","matches","selectorParentIndex","parentIndex","_iterator22","_step22","_step22$value","_iterator23","_step23","selectorPieces","codeToTokensWithThemes","themes","filter","_len2","_key2","outThemes","count","_loop","_i26","outLines","indexes","current","l","minLength","syncThemesTokenization","mergedTokens","lineIdx","_token","tokenIdx","mergedToken","variants","themeIdx","_t$e$o","_","__","___","codeToTokens","rootStyle","_n$defaultColor","defaultColor","cssVariablePrefix","_n$cssVariablePrefix","sort","themeTokens","find","themeRegs","getTheme","themesOrder","merged","variantsOrder","styleKeys","flatMap","keys","mergedStyles","reduce","acc","cur","_iterator24","_step24","keyName","varKey","htmlStyle","mergeToken","themeColorReplacements","_theme","transformerDecorations","je","WeakMap","getContext","shiki","meta","normalizePosition","converter","indexToPos","posToIndex","character","_ref6","_ref7","_iterator25","_step25","createPositionConverter","d","items","foo","JSON","stringify","bar","isFooHasBarStart","isFooHasBarEnd","isBarHasFooStart","isBarHasFooEnd","verifyIntersections","set","get","_this$options$decorat","this","splitted","breakpoints","sorted","breakpointsInToken","offsets","lastOffset","_iterator26","_step26","splitToken","splitTokens","codeEl","ctx","children","tagName","applyLineSection","lineEl","el","POSITIVE_INFINITY","alwaysWrap","wrapper","applyDecoration","splice","applyLine","_e$properties","transform","lineApplies","_iterator27","_loop3","_i30","unshift","_step27","_loop2","getTransformers","_toConsumableArray","transformers","builtInTransformers","codeToHast","transformerContext","_code","_options","_iterator28","_step28","transformer","preprocess","call","_ge","_n$mergeWhitespaces","mergeWhitespaces","newLine","carryOnContent","firstOffset","couldMerge","mergeWhitespaceTokens","_e36","leading","trailing","expanded","splitWhitespaceTokens","contextSource","_iterator29","_step29","root","structure","preNode","style","tabindex","_ref8","_ref9","codeNode","lineNodes","pre","lineNode","col","_iterator30","_step30","tokenNode","_iterator32","_step32","span","_iterator31","_step31","_iterator33","_step33","_iterator34","_step34","_iterator35","_step35","tokensToHast","merge","definitions","space","property","normal","Schema","normalize","increment","pow","powers","mark","create","definition","prop","own$3","info","DefinedInfo","attributes","mustUseProperty","attribute","caseSensitiveTransform","caseInsensitiveTransform","kebab","$0","camelcase","core","subset","groups","RegExp","charactersToExpression","basic","escapeOnly","pair","all","format","charCodeAt","formatSmart","named","numeric","omit","String","fromCharCode","toHexadecimal","omitOptionalSemicolons","useNamedReferences","useShortestReferences","own$1","characters","characterEntitiesLegacy","dangerous","toNamed","decimal","toDecimal","stringifyEntities","ccount","TypeError","stringify$1","padRight","padLeft","whitespace","thing","empty","re","siblings","includeWhitespace","emptyChildren$1","omission","handlers","own","headOrColgroupOrCaption","siblingAfter","rubyElement","cells","serializeAttribute","schema","Type","Info","valid","rest","dash","dashes","cap","allowParseErrors","y","allowDangerousCharacters","quote","overloadedBoolean","Boolean","characterReferences","constants","commaSeparated","tightCommaSeparatedLists","collapseEmptyAttributes","preferUnquoted","unquoted","quoteSmart","alternative","single","double","textEntitySubset","one","handle","emptyChildren","codeToHtml","tree","options_","emptyOptions","omitOptionalTags","tightAttributes","upperDoctype","tightDoctype","bogusComments","tightSelfClosing","allowDangerousHtml","voids","htmlVoidElements","emptyCharacterReferences","closeSelfClosing","closeEmptyElements","svg","html$2","toHtml","_iterator36","_step36","postprocess","async","main","init","updateGlobalBufferAndViews","buf","emscripten_realloc_buffer","size","UTF8ToString","ptr","maxBytesToRead","heapOrArray","endIdx","endPtr","buffer","UTF8Decoder","decode","subarray","u0","u1","u2","ch","UTF8ArrayToString","binding","HEAPU8","wasmMemory","grow","byteLength","_unused","Uint8Array","HEAPU32","Uint32Array","TextDecoder","asmLibraryArg","emscripten_get_now","performance","emscripten_memcpy_big","dest","src","num","copyWithin","emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","alignUp","multiple","cutDown","overGrownHeapSize","fd_write","_context25","env","wasi_snapshot_preview1","exports","memory","_context24","stop","_callee23","createWasm","_callee24","_Un","apply","loadWasm","initPromise","_regeneratorRuntime","wrap","_callee8$","_context9","prev","instance","instantiator","dataOrOptions","isInstantiatorModule","data","isDataOptionsObject","Response","isResponse","_Buffer$isBuffer","_Buffer","ArrayBuffer","isView","Buffer","isBuffer","SharedArrayBuffer","isArrayBuffer","WebAssembly","Module","_makeArrayBufferLoader","default","instantiateStreaming","importObject","t3","sent","_ref12","_asyncToGenerator","_callee7$","_context8","arrayBuffer","instantiate","_callee7","_x17","_makeResponseNonStreamingLoader","_callee8","onigBinding","_load","normalizeTheme","rawTheme","RESOLVED_KEY","tokenColors","_t60$settings","_t60$settings2","_e$colors","_e$colors2","globalSetting","VSCODE_FALLBACK_EDITOR_FG","light","dark","VSCODE_FALLBACK_EDITOR_BG","replacementCount","replacementMap","Map","getReplacementColor","_e$colorReplacements","replaceFg","replaceBg","clone","replacement","_i36","_Object$keys2","_e$colors$_t","defineProperty","enumerable","writable","createShikiInternal","normalizeGetter","resolveLangs","ensureNotDisposed","isDisposed","_registry","instancesCount","_m7","_i41","_i43","langs","Promise","then","flat","_context31","t1","t2","abrupt","t0","_callee28$","_context29","resolve","_callee28","_args11","warnings","warn","wasmLoader","_defaultWasmLoader","resolver","Resolver","createOnigScanner","OnigScanner","OnigString","Registry","langAlias","_context32","_defineProperty","_lastTheme","getColorMap","_lang","getGrammar","getLoadedLanguages","loadLanguage","loadLanguages","loadTheme","_context27","_context28","_callee27","Symbol","_callee31","createHighlighterCore","_context33","getLastGrammarState","_n$lang2","_n$theme2","_t$setTheme2","getInternalContext","_li","createdBundledHighlighter","bundledLanguages","bundledThemes","_ref23","_i$themes","_i$langs","resolveLang","resolveTheme","bundle","_themes","_len4","_len5","_x21","createSingletonShorthands","createHighlighter","getSingletonHighlighter","_shiki","_context16","_callee15","makeSingletonHighlighter","_callee16","_callee17","_codeToTokens","_callee18","_callee19","_callee20","_getLastGrammarState","_callee21","setters","_tslib","bundledLanguagesInfo","id","import","_import","_context","aliases","getWasmInlined","wasm","bundledThemesInfo","displayName","NotSet","process","VSCODE_TEXTMATE_DEBUG","EncodedTokenAttributes","toBinaryStr","encodedTokenAttributes","print","languageId","getLanguageId","tokenType","getTokenType","getBackground","containsBalancedBrackets","_languageId","_tokenType","_containsBalancedBracketsBit","_fontStyle","_foreground","_background","CAPTURING_REGEX_SOURCE","RegexSource","hasCaptures","regexSource","replaceCaptures","captureSource","commandIndex","command","capture","CachedFn","T","fn","_createClass","cache","L","toKey","A","ExternalReferenceCollector","_references","P","_seenReferenceKeys","ScopeDependencyProcessor","O","initialScopeName","seenFullScopeRequests","Q","processQueue","q","deps","_iterator","_step","dep","_iterator2","references","_step2","seenPartialScopeRequests","B","$","I","HAS_BACK_REFERENCES","BACK_REFERENCING_END","Rule","$location","_name","_nameIsCapturing","_contentName","_contentNameIsCapturing","location","filename","constructor","CaptureRule","W","super","_this","_inherits","_q2","collectPatterns","out","compile","MatchRule","V","_assertThisInitialized","_this2","_match","RegExpSource","_cachedCompiledPatterns","_q3","debugMatchRegExp","_getCachedCompiledPatterns","RegExpSourceList","IncludeOnlyRule","X","hasMissingPatterns","_this3","_q4","_step5","_iterator5","pattern","J","begin","applyEndPatternLast","_begin","_end","hasBackReferences","_this4","_q5","resolveBackReferences","_iterator6","_step6","setSource","K","_while","_cachedCompiledWhilePatterns","_this5","_q6","debugBeginRegExp","debugWhileRegExp","_iterator7","_step7","compileWhile","_getCachedCompiledWhilePatterns","createCaptureRule","helper","registerRule","desc","_compileCaptures","_compilePatterns","while","maximumCaptureId","captureId","numericCaptureId","localIncludedRule","externalGrammarName","externalGrammarInclude","externalGrammar","getExternalGrammar","externalIncludedRule","skipRule","regExpSource","lastPushedPos","output","hasAnchor","pos","nextCh","_anchorCache","_buildAnchorCache","newSource","capturedValues","g1","A0_G0_result","A0_G1_result","A1_G0_result","A1_G1_result","A0_G0","A0_G1","A1_G0","A1_G1","resolveAnchors","Z","_items","_hasAnchors","_cached","_disposeCaches","item","onigLib","regExps","CompiledRule","_resolveAnchors","tt","scanner","string","Theme","_colorMap","et","_defaults","_root","getDefaults","scopePath","effectiveRule","_cachedMatchRoot","v","_scopePathMatchesParentScopes","StyleAttributes","createFromRawTheme","createFromParsedTheme","resultLen","entry","_scope","segments","lenJ","reverse","ParsedThemeRule","parseTheme","parsedThemeRules","defaultFontStyle","defaultForeground","defaultBackground","incomingDefaults","shift","ColorMap","defaults","getId","ThemeTrieElement","ThemeTrieElementRule","insert","resolveParsedThemeRules","ScopeStack","nt","getSegments","_extends","other","getExtensionIfDefined","scopeNames","_iterator8","_step8","rt","foregroundId","backgroundId","ot","_isFrozen","st","_lastColorId","_id2color","_color2id","lt","scopeDepth","acceptOverwrite","cloneArr","at","_mainRule","rulesWithParentScopes","_children","_classCallCheck","_rulesWithParentScopes","_sortBySpecificity","head","tail","dotIndex","hasOwnProperty","_doInsertHere","child","_cmpBySpecificity","aParentScopes","bParentScopes","aParentScopesLen","bParentScopesLen","aLen","bLen","BasicScopeAttributes","ct","BasicScopeAttributesProvider","ut","initialLanguageId","embeddedLanguages","_scopeToLanguage","standardTokenType","_toStandardTokenType","_defaultAttributes","_embeddedLanguagesMatcher","ScopeMatcher","getDefaultAttributes","getBasicScopeAttributes","_NULL_SCOPE_METADATA","_getBasicScopeAttributes","static","m","STANDARD_TOKEN_TYPE_REGEXP","mt","scopesRegExp","escapedScopes","_ref2","_ref3","pt","stoppedEarly","jt","Grammar","kt","_rootScopeName","initialLanguage","tokenTypes","balancedBracketSelectors","grammarRepository","_onigLib","_basicScopeAttributesProvider","_rootId","_lastRuleId","_ruleId2desc","_includedGrammars","_grammarRepository","_injections","_tokenTypeMatchers","_i14","_Object$keys","_iterator10","_step10","_iterator11","_step11","getMetadataForScope","_collectInjections","rawInjections","expression","injectionScopeNames","injectionScopeName","injectionGrammar","injectionSelector","i1","i2","factory","rawIncludedGrammar","prevState","_tokenize","getResult","getBinaryResult","emitBinaryTokens","StateStackImpl","NULL","reset","rawDefaultMetadata","defaultStyle","themeProvider","defaultMetadata","rootScopeName","scopeList","AttributedScopeStack","createRootAndLookUpScopeName","createRoot","onigLineText","LineTokens","St","tokenAttributes","equals","_pushAttributed","_iterator12","_step12","self","_n$parent$scopePath","fromExtension","namesScopeList","_iterator13","_step13","frame","rawRootMetadata","themeMatch","resolvedTokenAttributes","mergeAttributes","existingTokenAttributes","basicScopeAttributes","styleAttributes","rawMetadata","newPath","scopeThemeMatchResult","xt","enterPos","anchorPos","_stackElementBrand","depth","_enterPos","_anchorPos","_equals","_reset","_writeString","outIndex","_this$nameScopesList","_this$contentNameScop","contentNameScopeStack","toStateStackFrame","_this$nameScopesList$","_this$nameScopesList2","_this$parent$nameScop","_this$parent","_this$contentNameScop2","_this$contentNameScop3","_structuralEquals","pushFrame","_t$nameScopesList","_e$enterPos","_e$anchorPos","_xt","BalancedBracketSelectors","balancedBracketScopes","Ct","unbalancedBracketScopes","allowAny","matchesAlways","_iterator14","_step14","excluder","_iterator15","_step15","includer","Tt","tokenTypeOverrides","_emitBinaryTokens","_tokenTypeOverrides","_lineText","_tokens","_binaryTokens","_lastTokenEndIndex","scopesList","_t$tokenAttributes","_this$balancedBracket","matchesNever","_t$getScopeNames","_iterator16","_step16","SyncRegistry","_onigLibPromise","Lt","_grammars","_iterator17","_step17","addGrammar","_rawGrammars","_injectionGrammars","targetScope","_grammarForScopeName","_callee2","rawGrammar","_context3","createGrammar","t10","t11","t4","t5","t6","t7","t8","t9","grammarForScopeName","_x2","_x3","_x4","_x5","_x6","Registry$1","At","_syncRegistry","_ensureGrammarCache","loadGrammarWithEmbeddedLanguages","loadGrammarWithConfiguration","configuration","_loadGrammar","unbalancedBracketSelectors","loadGrammar","_loadGrammar2","_callee3","_this10","_callee3$","_context4","dependencyProcessor","request","_loadSingleGrammar","_x7","_x8","_x9","_x10","_x11","_loadSingleGrammar2","_callee4","_doLoadSingleGrammar","_context5","_x12","_doLoadSingleGrammar2","_callee5","_context6","_x13","_addGrammar","_callee6","_args6","_context7","_x14","MetadataConsts","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","le","message","_this11","ae","visited","pushScope","getScopes","toJSON","ve","prototype","Ce","boolean","booleanish","number","spaceSeparated","commaOrSpaceSeparated","defined","types","freeze","__proto__","checks","Be","mask","_this12","check","_Ce","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","xmlLang","xmlBase","xmlSpace","xmlns","xmlnsxlink","xmlnsXLink","aria","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","html$3","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","alt","as","autoCapitalize","autoComplete","autoFocus","autoPlay","blocking","charSet","checked","cite","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","defer","dir","dirName","disabled","download","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","label","language","list","loading","loop","low","manifest","maxLength","media","method","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","ping","placeholder","playsInline","popover","popoverTarget","popoverTargetAction","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rows","rowSpan","sandbox","scoped","seamless","selected","shadowRootDelegatesFocus","shadowRootMode","shape","sizes","slot","spellCheck","srcDoc","srcLang","srcSet","step","tabIndex","title","translate","typeMustMatch","useMap","width","align","aLink","archive","axis","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","codeBase","codeType","compact","declare","event","face","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","object","profile","prompt","rev","rightMargin","scheme","scrolling","standby","summary","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","security","unselectable","svg$1","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","transformOrigin","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","defaultAction","descent","diffuseConstant","direction","display","dur","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","fill","filterRes","filterUnits","focusable","focusHighlight","fr","fx","fy","g2","glyphRef","gradientTransform","gradientUnits","handler","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","mode","numOctaves","observer","opacity","operator","order","orient","orientation","origin","overflow","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","to","unicode","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","z","zoomAndPan","own$2","characterEntitiesHtml4","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","fnof","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","bull","hellip","prime","Prime","oline","frasl","weierp","image","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cup","int","there4","sim","cong","asymp","ne","equiv","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","rang","loz","spades","clubs","hearts","diams","quot","amp","gt","OElig","oelig","Scaron","scaron","Yuml","circ","tilde","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","permil","lsaquo","rsaquo","euro","htmlCommentRegex","bogusCommentEntitySubset","commentEntitySubset","siblingBefore","closing","body","caption","colgroup","dd","dt","html","li","optgroup","option","rp","tbody","td","tfoot","th","thead","tr","opening","previous","seen","_r30","invalid","unknown","_len3","parameters","_key3","zwitch","node_","comment","_1","_2","doctype","_3","element","selfClosing","last","serializeAttributes","raw","UtfString","Vn","utf16Length","utf8Length","_utf8ByteLength","computeIndicesMapping","utf16OffsetToUtf8","utf8OffsetToUtf16","utf8Value","i8","i16","charCode","codePoint","wasSurrogatePair","nextCharCode","utf16Value","createString","omalloc","codepoint","Xn","LAST_ID","_onigBinding","utfString","_sharedPtrInUse","_sharedPtr","convertUtf8OffsetToUtf16","utf8Offset","convertUtf16OffsetToUtf8","utf16Offset","ofree","Jn","strPtrsArr","strLenArr","strPtrsPtr","strLenPtr","scannerPtr","getLastOnigError","throwLastOnigError","_ptr","freeOnigScanner","arg","debugCall","_findNextMatchSync","resultPtr","findNextOnigScannerMatchDbg","findNextOnigScannerMatch","beg","_resolver","_langs","_this13","_alias","_textmateThemeCache","_loadedThemesCache","_At","_resolvedThemes","textmateTheme","resolved","_resolvedGrammars","_loadLanguage","_callee10","_context11","embeddedLazilyBy","_langMap","embeddedLangsLazy","addLanguage","grammarConfig","alias","_loadedLanguagesCache","delete","_iterator37","finish","_x18","_init","_callee11","_this15","_callee11$","_context12","_langGraph","_loadLanguages","_callee12","_iterator38","_step38","resolveEmbeddedLanguages","langsGraphArray","missingLangs","_ref13","_ref14","dependents","_ref15","_e$embeddedLangs","_ref16","embeddedLangs","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_i37","_e42","_i38","_e43","_context13","_x19","_iterator39","_step39","embeddedLang","ii","onigLibPromise","_scopeToLang","getLangRegistration","langIdOrAlias","_loadGrammar3","_callee13","_callee13$","_context14","_x20","injectTo","scopeParts","subScopeName","NileHighlighter","yi","highlightedCode","_this18","_o24","_updated","_callee22","changedProperties","_context23","requestUpdate","updated","_x34","render","_templateObject","_taggedTemplateLiteral","__decorate","NileElement","reflect","_export","customElement"],"mappings":"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,CAAQ,CAAE,CAAC51B,CAAAA,cAAAA,CAoMXhiB,EAAAA,CAA0B,CAC9B,OAAA,CACA,MACA,QACA,CAAA,OAAA,CACA,SACA,OACA,CAAA,QAAA,CACA,OACA,MACA,CAAA,QAAA,CACA,KACA,CAAA,QAAA,CACA,QACA,QACA,CAAA,MAAA,CACA,KACA,QACA,CAAA,OAAA,CACA,SACA,MACA,CAAA,IAAA,CACA,QACA,CAAA,QAAA,CACA,QACA,QACA,CAAA,QAAA,CACA,SACA,MACA,CAAA,MAAA,CACA,MACA,OACA,CAAA,QAAA,CACA,OACA,CAAA,QAAA,CACA,OACA,QACA,CAAA,QAAA,CACA,QACA,OACA,CAAA,OAAA,CACA,SACA,KACA,CAAA,OAAA,CACA,QACA,CAAA,MAAA,CACA,SACA,QACA,CAAA,OAAA,CACA,OACA,MACA,CAAA,QAAA,CACA,MACA,QACA,CAAA,QAAA,CACA,OACA,CAAA,QAAA,CACA,MACA,MACA,CAAA,QAAA,CACA,SACA,QACA,CAAA,IAAA,CACA,SACA,OACA,CAAA,OAAA,CACA,QACA,CAAA,QAAA,CACA,OACA,OACA,CAAA,IAAA,CACA,OACA,OACA,CAAA,QAAA,CACA,OACA,KACA,CAAA,QAAA,CACA,QACA,CAAA,OAAA,CACA,SACA,MACA,CAAA,MAAA,CACA,SACA,QACA,CAAA,MAAA,CACA,OACA,QACA,CAAA,OAAA,CACA,MACA,CAAA,OAAA,CACA,MACA,MACA,CAAA,KAAA,CACA,OACA,MACA,CAAA,MAAA,CACA,QACA,OACA,CAAA,OAAA,CACA,QACA,CAAA,OAAA,CACA,SACA,KACA,CAAA,MAAA,CACA,SACA,KACA,CAAA,MAAA,CAAA,CAQI63C,GAAyB,CAC7BC,IAAAA,CAAM,GACNC,CAAAA,KAAAA,CAAO,IACPC,IAAM,CAAA,GAAA,CACNC,MAAO,GACPC,CAAAA,MAAAA,CAAQ,IACRC,GAAK,CAAA,GAAA,CACLC,MAAQ,CAAA,GAAA,CACRC,KAAM,GACNC,CAAAA,GAAAA,CAAK,IACLC,IAAM,CAAA,GAAA,CACNC,KAAM,GACNC,CAA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","x_google_ignoreList":[0,1,2,3,4,5,6]}
1
+ {"version":3,"file":"nile-highlighter.cjs.js","sources":["../../../../node_modules/@shikijs/core/dist/textmate.mjs","../../../../node_modules/@shikijs/core/dist/index.mjs","../../../../node_modules/shiki/dist/bundle-full.mjs","../../../../node_modules/shiki/dist/langs.mjs","../../../../node_modules/shiki/dist/chunks/wasm-dynamic.mjs","../../../../node_modules/shiki/dist/themes.mjs","../../../../node_modules/@shikijs/core/dist/types.mjs","../../../src/nile-highlighter/nile-highlighter.ts"],"sourcesContent":["import { FontStyle } from './types.mjs';\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n({\n InDebugMode: (typeof process !== 'undefined' && !!process.env['VSCODE_TEXTMATE_DEBUG'])\n});\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nvar EncodedTokenAttributes;\n(function (EncodedTokenAttributes) {\n function toBinaryStr(encodedTokenAttributes) {\n return encodedTokenAttributes.toString(2).padStart(32, \"0\");\n }\n EncodedTokenAttributes.toBinaryStr = toBinaryStr;\n function print(encodedTokenAttributes) {\n const languageId = EncodedTokenAttributes.getLanguageId(encodedTokenAttributes);\n const tokenType = EncodedTokenAttributes.getTokenType(encodedTokenAttributes);\n const fontStyle = EncodedTokenAttributes.getFontStyle(encodedTokenAttributes);\n const foreground = EncodedTokenAttributes.getForeground(encodedTokenAttributes);\n const background = EncodedTokenAttributes.getBackground(encodedTokenAttributes);\n console.log({\n languageId: languageId,\n tokenType: tokenType,\n fontStyle: fontStyle,\n foreground: foreground,\n background: background,\n });\n }\n EncodedTokenAttributes.print = print;\n function getLanguageId(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 255 /* EncodedTokenDataConsts.LANGUAGEID_MASK */) >>>\n 0 /* EncodedTokenDataConsts.LANGUAGEID_OFFSET */);\n }\n EncodedTokenAttributes.getLanguageId = getLanguageId;\n function getTokenType(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 768 /* EncodedTokenDataConsts.TOKEN_TYPE_MASK */) >>>\n 8 /* EncodedTokenDataConsts.TOKEN_TYPE_OFFSET */);\n }\n EncodedTokenAttributes.getTokenType = getTokenType;\n function containsBalancedBrackets(encodedTokenAttributes) {\n return (encodedTokenAttributes & 1024 /* EncodedTokenDataConsts.BALANCED_BRACKETS_MASK */) !== 0;\n }\n EncodedTokenAttributes.containsBalancedBrackets = containsBalancedBrackets;\n function getFontStyle(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 30720 /* EncodedTokenDataConsts.FONT_STYLE_MASK */) >>>\n 11 /* EncodedTokenDataConsts.FONT_STYLE_OFFSET */);\n }\n EncodedTokenAttributes.getFontStyle = getFontStyle;\n function getForeground(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 16744448 /* EncodedTokenDataConsts.FOREGROUND_MASK */) >>>\n 15 /* EncodedTokenDataConsts.FOREGROUND_OFFSET */);\n }\n EncodedTokenAttributes.getForeground = getForeground;\n function getBackground(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 4278190080 /* EncodedTokenDataConsts.BACKGROUND_MASK */) >>>\n 24 /* EncodedTokenDataConsts.BACKGROUND_OFFSET */);\n }\n EncodedTokenAttributes.getBackground = getBackground;\n /**\n * Updates the fields in `metadata`.\n * A value of `0`, `NotSet` or `null` indicates that the corresponding field should be left as is.\n */\n function set(encodedTokenAttributes, languageId, tokenType, containsBalancedBrackets, fontStyle, foreground, background) {\n let _languageId = EncodedTokenAttributes.getLanguageId(encodedTokenAttributes);\n let _tokenType = EncodedTokenAttributes.getTokenType(encodedTokenAttributes);\n let _containsBalancedBracketsBit = EncodedTokenAttributes.containsBalancedBrackets(encodedTokenAttributes) ? 1 : 0;\n let _fontStyle = EncodedTokenAttributes.getFontStyle(encodedTokenAttributes);\n let _foreground = EncodedTokenAttributes.getForeground(encodedTokenAttributes);\n let _background = EncodedTokenAttributes.getBackground(encodedTokenAttributes);\n if (languageId !== 0) {\n _languageId = languageId;\n }\n if (tokenType !== 8 /* OptionalStandardTokenType.NotSet */) {\n _tokenType = fromOptionalTokenType(tokenType);\n }\n if (containsBalancedBrackets !== null) {\n _containsBalancedBracketsBit = containsBalancedBrackets ? 1 : 0;\n }\n if (fontStyle !== -1 /* FontStyle.NotSet */) {\n _fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n _foreground = foreground;\n }\n if (background !== 0) {\n _background = background;\n }\n return (((_languageId << 0 /* EncodedTokenDataConsts.LANGUAGEID_OFFSET */) |\n (_tokenType << 8 /* EncodedTokenDataConsts.TOKEN_TYPE_OFFSET */) |\n (_containsBalancedBracketsBit <<\n 10 /* EncodedTokenDataConsts.BALANCED_BRACKETS_OFFSET */) |\n (_fontStyle << 11 /* EncodedTokenDataConsts.FONT_STYLE_OFFSET */) |\n (_foreground << 15 /* EncodedTokenDataConsts.FOREGROUND_OFFSET */) |\n (_background << 24 /* EncodedTokenDataConsts.BACKGROUND_OFFSET */)) >>>\n 0);\n }\n EncodedTokenAttributes.set = set;\n})(EncodedTokenAttributes || (EncodedTokenAttributes = {}));\nfunction toOptionalTokenType(standardType) {\n return standardType;\n}\nfunction fromOptionalTokenType(standardType) {\n return standardType;\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction createMatchers(selector, matchesName) {\n const results = [];\n const tokenizer = newTokenizer(selector);\n let token = tokenizer.next();\n while (token !== null) {\n let priority = 0;\n if (token.length === 2 && token.charAt(1) === ':') {\n switch (token.charAt(0)) {\n case 'R':\n priority = 1;\n break;\n case 'L':\n priority = -1;\n break;\n default:\n console.log(`Unknown priority ${token} in scope selector`);\n }\n token = tokenizer.next();\n }\n let matcher = parseConjunction();\n results.push({ matcher, priority });\n if (token !== ',') {\n break;\n }\n token = tokenizer.next();\n }\n return results;\n function parseOperand() {\n if (token === '-') {\n token = tokenizer.next();\n const expressionToNegate = parseOperand();\n return matcherInput => !!expressionToNegate && !expressionToNegate(matcherInput);\n }\n if (token === '(') {\n token = tokenizer.next();\n const expressionInParents = parseInnerExpression();\n if (token === ')') {\n token = tokenizer.next();\n }\n return expressionInParents;\n }\n if (isIdentifier(token)) {\n const identifiers = [];\n do {\n identifiers.push(token);\n token = tokenizer.next();\n } while (isIdentifier(token));\n return matcherInput => matchesName(identifiers, matcherInput);\n }\n return null;\n }\n function parseConjunction() {\n const matchers = [];\n let matcher = parseOperand();\n while (matcher) {\n matchers.push(matcher);\n matcher = parseOperand();\n }\n return matcherInput => matchers.every(matcher => matcher(matcherInput)); // and\n }\n function parseInnerExpression() {\n const matchers = [];\n let matcher = parseConjunction();\n while (matcher) {\n matchers.push(matcher);\n if (token === '|' || token === ',') {\n do {\n token = tokenizer.next();\n } while (token === '|' || token === ','); // ignore subsequent commas\n }\n else {\n break;\n }\n matcher = parseConjunction();\n }\n return matcherInput => matchers.some(matcher => matcher(matcherInput)); // or\n }\n}\nfunction isIdentifier(token) {\n return !!token && !!token.match(/[\\w\\.:]+/);\n}\nfunction newTokenizer(input) {\n let regex = /([LR]:|[\\w\\.:][\\w\\.:\\-]*|[\\,\\|\\-\\(\\)])/g;\n let match = regex.exec(input);\n return {\n next: () => {\n if (!match) {\n return null;\n }\n const res = match[0];\n match = regex.exec(input);\n return res;\n }\n };\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction disposeOnigString(str) {\n if (typeof str.dispose === 'function') {\n str.dispose();\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction clone(something) {\n return doClone(something);\n}\nfunction doClone(something) {\n if (Array.isArray(something)) {\n return cloneArray(something);\n }\n if (typeof something === 'object') {\n return cloneObj(something);\n }\n return something;\n}\nfunction cloneArray(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = doClone(arr[i]);\n }\n return r;\n}\nfunction cloneObj(obj) {\n let r = {};\n for (let key in obj) {\n r[key] = doClone(obj[key]);\n }\n return r;\n}\nfunction mergeObjects(target, ...sources) {\n sources.forEach(source => {\n for (let key in source) {\n target[key] = source[key];\n }\n });\n return target;\n}\nfunction basename(path) {\n const idx = ~path.lastIndexOf('/') || ~path.lastIndexOf('\\\\');\n if (idx === 0) {\n return path;\n }\n else if (~idx === path.length - 1) {\n return basename(path.substring(0, path.length - 1));\n }\n else {\n return path.substr(~idx + 1);\n }\n}\nlet CAPTURING_REGEX_SOURCE = /\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/g;\nclass RegexSource {\n static hasCaptures(regexSource) {\n if (regexSource === null) {\n return false;\n }\n CAPTURING_REGEX_SOURCE.lastIndex = 0;\n return CAPTURING_REGEX_SOURCE.test(regexSource);\n }\n static replaceCaptures(regexSource, captureSource, captureIndices) {\n return regexSource.replace(CAPTURING_REGEX_SOURCE, (match, index, commandIndex, command) => {\n let capture = captureIndices[parseInt(index || commandIndex, 10)];\n if (capture) {\n let result = captureSource.substring(capture.start, capture.end);\n // Remove leading dots that would make the selector invalid\n while (result[0] === '.') {\n result = result.substring(1);\n }\n switch (command) {\n case 'downcase':\n return result.toLowerCase();\n case 'upcase':\n return result.toUpperCase();\n default:\n return result;\n }\n }\n else {\n return match;\n }\n });\n }\n}\nfunction strcmp(a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n}\nfunction strArrCmp(a, b) {\n if (a === null && b === null) {\n return 0;\n }\n if (!a) {\n return -1;\n }\n if (!b) {\n return 1;\n }\n let len1 = a.length;\n let len2 = b.length;\n if (len1 === len2) {\n for (let i = 0; i < len1; i++) {\n let res = strcmp(a[i], b[i]);\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n }\n return len1 - len2;\n}\nfunction isValidHexColor(hex) {\n if (/^#[0-9a-f]{6}$/i.test(hex)) {\n // #rrggbb\n return true;\n }\n if (/^#[0-9a-f]{8}$/i.test(hex)) {\n // #rrggbbaa\n return true;\n }\n if (/^#[0-9a-f]{3}$/i.test(hex)) {\n // #rgb\n return true;\n }\n if (/^#[0-9a-f]{4}$/i.test(hex)) {\n // #rgba\n return true;\n }\n return false;\n}\n/**\n * Escapes regular expression characters in a given string\n */\nfunction escapeRegExpCharacters(value) {\n return value.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, '\\\\$&');\n}\nclass CachedFn {\n fn;\n cache = new Map();\n constructor(fn) {\n this.fn = fn;\n }\n get(key) {\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n const value = this.fn(key);\n this.cache.set(key, value);\n return value;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n/**\n * References the top level rule of a grammar with the given scope name.\n*/\nclass TopLevelRuleReference {\n scopeName;\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n toKey() {\n return this.scopeName;\n }\n}\n/**\n * References a rule of a grammar in the top level repository section with the given name.\n*/\nclass TopLevelRepositoryRuleReference {\n scopeName;\n ruleName;\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n toKey() {\n return `${this.scopeName}#${this.ruleName}`;\n }\n}\nclass ExternalReferenceCollector {\n _references = [];\n _seenReferenceKeys = new Set();\n get references() {\n return this._references;\n }\n visitedRule = new Set();\n add(reference) {\n const key = reference.toKey();\n if (this._seenReferenceKeys.has(key)) {\n return;\n }\n this._seenReferenceKeys.add(key);\n this._references.push(reference);\n }\n}\nclass ScopeDependencyProcessor {\n repo;\n initialScopeName;\n seenFullScopeRequests = new Set();\n seenPartialScopeRequests = new Set();\n Q;\n constructor(repo, initialScopeName) {\n this.repo = repo;\n this.initialScopeName = initialScopeName;\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\n processQueue() {\n const q = this.Q;\n this.Q = [];\n const deps = new ExternalReferenceCollector();\n for (const dep of q) {\n collectReferencesOfReference(dep, this.initialScopeName, this.repo, deps);\n }\n for (const dep of deps.references) {\n if (dep instanceof TopLevelRuleReference) {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n // already processed\n continue;\n }\n this.seenFullScopeRequests.add(dep.scopeName);\n this.Q.push(dep);\n }\n else {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n // already processed in full\n continue;\n }\n if (this.seenPartialScopeRequests.has(dep.toKey())) {\n // already processed\n continue;\n }\n this.seenPartialScopeRequests.add(dep.toKey());\n this.Q.push(dep);\n }\n }\n }\n}\nfunction collectReferencesOfReference(reference, baseGrammarScopeName, repo, result) {\n const selfGrammar = repo.lookup(reference.scopeName);\n if (!selfGrammar) {\n if (reference.scopeName === baseGrammarScopeName) {\n throw new Error(`No grammar provided for <${baseGrammarScopeName}>`);\n }\n return;\n }\n const baseGrammar = repo.lookup(baseGrammarScopeName);\n if (reference instanceof TopLevelRuleReference) {\n collectExternalReferencesInTopLevelRule({ baseGrammar, selfGrammar }, result);\n }\n else {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { baseGrammar, selfGrammar, repository: selfGrammar.repository }, result);\n }\n const injections = repo.injections(reference.scopeName);\n if (injections) {\n for (const injection of injections) {\n result.add(new TopLevelRuleReference(injection));\n }\n }\n}\nfunction collectExternalReferencesInTopLevelRepositoryRule(ruleName, context, result) {\n if (context.repository && context.repository[ruleName]) {\n const rule = context.repository[ruleName];\n collectExternalReferencesInRules([rule], context, result);\n }\n}\nfunction collectExternalReferencesInTopLevelRule(context, result) {\n if (context.selfGrammar.patterns && Array.isArray(context.selfGrammar.patterns)) {\n collectExternalReferencesInRules(context.selfGrammar.patterns, { ...context, repository: context.selfGrammar.repository }, result);\n }\n if (context.selfGrammar.injections) {\n collectExternalReferencesInRules(Object.values(context.selfGrammar.injections), { ...context, repository: context.selfGrammar.repository }, result);\n }\n}\nfunction collectExternalReferencesInRules(rules, context, result) {\n for (const rule of rules) {\n if (result.visitedRule.has(rule)) {\n continue;\n }\n result.visitedRule.add(rule);\n const patternRepository = rule.repository ? mergeObjects({}, context.repository, rule.repository) : context.repository;\n if (Array.isArray(rule.patterns)) {\n collectExternalReferencesInRules(rule.patterns, { ...context, repository: patternRepository }, result);\n }\n const include = rule.include;\n if (!include) {\n continue;\n }\n const reference = parseInclude(include);\n switch (reference.kind) {\n case 0 /* IncludeReferenceKind.Base */:\n collectExternalReferencesInTopLevelRule({ ...context, selfGrammar: context.baseGrammar }, result);\n break;\n case 1 /* IncludeReferenceKind.Self */:\n collectExternalReferencesInTopLevelRule(context, result);\n break;\n case 2 /* IncludeReferenceKind.RelativeReference */:\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { ...context, repository: patternRepository }, result);\n break;\n case 3 /* IncludeReferenceKind.TopLevelReference */:\n case 4 /* IncludeReferenceKind.TopLevelRepositoryReference */:\n const selfGrammar = reference.scopeName === context.selfGrammar.scopeName\n ? context.selfGrammar\n : reference.scopeName === context.baseGrammar.scopeName\n ? context.baseGrammar\n : undefined;\n if (selfGrammar) {\n const newContext = { baseGrammar: context.baseGrammar, selfGrammar, repository: patternRepository };\n if (reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */) {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, newContext, result);\n }\n else {\n collectExternalReferencesInTopLevelRule(newContext, result);\n }\n }\n else {\n if (reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */) {\n result.add(new TopLevelRepositoryRuleReference(reference.scopeName, reference.ruleName));\n }\n else {\n result.add(new TopLevelRuleReference(reference.scopeName));\n }\n }\n break;\n }\n }\n}\nclass BaseReference {\n kind = 0 /* IncludeReferenceKind.Base */;\n}\nclass SelfReference {\n kind = 1 /* IncludeReferenceKind.Self */;\n}\nclass RelativeReference {\n ruleName;\n kind = 2 /* IncludeReferenceKind.RelativeReference */;\n constructor(ruleName) {\n this.ruleName = ruleName;\n }\n}\nclass TopLevelReference {\n scopeName;\n kind = 3 /* IncludeReferenceKind.TopLevelReference */;\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n}\nclass TopLevelRepositoryReference {\n scopeName;\n ruleName;\n kind = 4 /* IncludeReferenceKind.TopLevelRepositoryReference */;\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n}\nfunction parseInclude(include) {\n if (include === '$base') {\n return new BaseReference();\n }\n else if (include === '$self') {\n return new SelfReference();\n }\n const indexOfSharp = include.indexOf(\"#\");\n if (indexOfSharp === -1) {\n return new TopLevelReference(include);\n }\n else if (indexOfSharp === 0) {\n return new RelativeReference(include.substring(1));\n }\n else {\n const scopeName = include.substring(0, indexOfSharp);\n const ruleName = include.substring(indexOfSharp + 1);\n return new TopLevelRepositoryReference(scopeName, ruleName);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nconst HAS_BACK_REFERENCES = /\\\\(\\d+)/;\nconst BACK_REFERENCING_END = /\\\\(\\d+)/g;\n// This is a special constant to indicate that the end regexp matched.\nconst endRuleId = -1;\n// This is a special constant to indicate that the while regexp matched.\nconst whileRuleId = -2;\nfunction ruleIdFromNumber(id) {\n return id;\n}\nfunction ruleIdToNumber(id) {\n return id;\n}\nclass Rule {\n $location;\n id;\n _nameIsCapturing;\n _name;\n _contentNameIsCapturing;\n _contentName;\n constructor($location, id, name, contentName) {\n this.$location = $location;\n this.id = id;\n this._name = name || null;\n this._nameIsCapturing = RegexSource.hasCaptures(this._name);\n this._contentName = contentName || null;\n this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);\n }\n get debugName() {\n const location = this.$location ? `${basename(this.$location.filename)}:${this.$location.line}` : 'unknown';\n return `${this.constructor.name}#${this.id} @ ${location}`;\n }\n getName(lineText, captureIndices) {\n if (!this._nameIsCapturing || this._name === null || lineText === null || captureIndices === null) {\n return this._name;\n }\n return RegexSource.replaceCaptures(this._name, lineText, captureIndices);\n }\n getContentName(lineText, captureIndices) {\n if (!this._contentNameIsCapturing || this._contentName === null) {\n return this._contentName;\n }\n return RegexSource.replaceCaptures(this._contentName, lineText, captureIndices);\n }\n}\nclass CaptureRule extends Rule {\n retokenizeCapturedWithRuleId;\n constructor($location, id, name, contentName, retokenizeCapturedWithRuleId) {\n super($location, id, name, contentName);\n this.retokenizeCapturedWithRuleId = retokenizeCapturedWithRuleId;\n }\n dispose() {\n // nothing to dispose\n }\n collectPatterns(grammar, out) {\n throw new Error('Not supported!');\n }\n compile(grammar, endRegexSource) {\n throw new Error('Not supported!');\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n throw new Error('Not supported!');\n }\n}\nclass MatchRule extends Rule {\n _match;\n captures;\n _cachedCompiledPatterns;\n constructor($location, id, name, match, captures) {\n super($location, id, name, null);\n this._match = new RegExpSource(match, this.id);\n this.captures = captures;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugMatchRegExp() {\n return `${this._match.source}`;\n }\n collectPatterns(grammar, out) {\n out.push(this._match);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass IncludeOnlyRule extends Rule {\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, patterns) {\n super($location, id, name, contentName);\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n collectPatterns(grammar, out) {\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, out);\n }\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass BeginEndRule extends Rule {\n _begin;\n beginCaptures;\n _end;\n endHasBackReferences;\n endCaptures;\n applyEndPatternLast;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, end, endCaptures, applyEndPatternLast, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this._end = new RegExpSource(end ? end : '\\uFFFF', -1);\n this.endHasBackReferences = this._end.hasBackReferences;\n this.endCaptures = endCaptures;\n this.applyEndPatternLast = applyEndPatternLast || false;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugEndRegExp() {\n return `${this._end.source}`;\n }\n getEndWithResolvedBackReferences(lineText, captureIndices) {\n return this._end.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.push(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n else {\n this._cachedCompiledPatterns.unshift(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n }\n if (this._end.hasBackReferences) {\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length() - 1, endRegexSource);\n }\n else {\n this._cachedCompiledPatterns.setSource(0, endRegexSource);\n }\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass BeginWhileRule extends Rule {\n _begin;\n beginCaptures;\n whileCaptures;\n _while;\n whileHasBackReferences;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n _cachedCompiledWhilePatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, _while, whileCaptures, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this.whileCaptures = whileCaptures;\n this._while = new RegExpSource(_while, whileRuleId);\n this.whileHasBackReferences = this._while.hasBackReferences;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n this._cachedCompiledWhilePatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n if (this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns.dispose();\n this._cachedCompiledWhilePatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugWhileRegExp() {\n return `${this._while.source}`;\n }\n getWhileWithResolvedBackReferences(lineText, captureIndices) {\n return this._while.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n }\n return this._cachedCompiledPatterns;\n }\n compileWhile(grammar, endRegexSource) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compile(grammar);\n }\n compileWhileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledWhilePatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns = new RegExpSourceList();\n this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences ? this._while.clone() : this._while);\n }\n if (this._while.hasBackReferences) {\n this._cachedCompiledWhilePatterns.setSource(0, endRegexSource ? endRegexSource : '\\uFFFF');\n }\n return this._cachedCompiledWhilePatterns;\n }\n}\nclass RuleFactory {\n static createCaptureRule(helper, $location, name, contentName, retokenizeCapturedWithRuleId) {\n return helper.registerRule((id) => {\n return new CaptureRule($location, id, name, contentName, retokenizeCapturedWithRuleId);\n });\n }\n static getCompiledRuleId(desc, helper, repository) {\n if (!desc.id) {\n helper.registerRule((id) => {\n desc.id = id;\n if (desc.match) {\n return new MatchRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.match, RuleFactory._compileCaptures(desc.captures, helper, repository));\n }\n if (typeof desc.begin === 'undefined') {\n if (desc.repository) {\n repository = mergeObjects({}, repository, desc.repository);\n }\n let patterns = desc.patterns;\n if (typeof patterns === 'undefined' && desc.include) {\n patterns = [{ include: desc.include }];\n }\n return new IncludeOnlyRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, RuleFactory._compilePatterns(patterns, helper, repository));\n }\n if (desc.while) {\n return new BeginWhileRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.while, RuleFactory._compileCaptures(desc.whileCaptures || desc.captures, helper, repository), RuleFactory._compilePatterns(desc.patterns, helper, repository));\n }\n return new BeginEndRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.end, RuleFactory._compileCaptures(desc.endCaptures || desc.captures, helper, repository), desc.applyEndPatternLast, RuleFactory._compilePatterns(desc.patterns, helper, repository));\n });\n }\n return desc.id;\n }\n static _compileCaptures(captures, helper, repository) {\n let r = [];\n if (captures) {\n // Find the maximum capture id\n let maximumCaptureId = 0;\n for (const captureId in captures) {\n if (captureId === '$vscodeTextmateLocation') {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n if (numericCaptureId > maximumCaptureId) {\n maximumCaptureId = numericCaptureId;\n }\n }\n // Initialize result\n for (let i = 0; i <= maximumCaptureId; i++) {\n r[i] = null;\n }\n // Fill out result\n for (const captureId in captures) {\n if (captureId === '$vscodeTextmateLocation') {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n let retokenizeCapturedWithRuleId = 0;\n if (captures[captureId].patterns) {\n retokenizeCapturedWithRuleId = RuleFactory.getCompiledRuleId(captures[captureId], helper, repository);\n }\n r[numericCaptureId] = RuleFactory.createCaptureRule(helper, captures[captureId].$vscodeTextmateLocation, captures[captureId].name, captures[captureId].contentName, retokenizeCapturedWithRuleId);\n }\n }\n return r;\n }\n static _compilePatterns(patterns, helper, repository) {\n let r = [];\n if (patterns) {\n for (let i = 0, len = patterns.length; i < len; i++) {\n const pattern = patterns[i];\n let ruleId = -1;\n if (pattern.include) {\n const reference = parseInclude(pattern.include);\n switch (reference.kind) {\n case 0 /* IncludeReferenceKind.Base */:\n case 1 /* IncludeReferenceKind.Self */:\n ruleId = RuleFactory.getCompiledRuleId(repository[pattern.include], helper, repository);\n break;\n case 2 /* IncludeReferenceKind.RelativeReference */:\n // Local include found in `repository`\n let localIncludedRule = repository[reference.ruleName];\n if (localIncludedRule) {\n ruleId = RuleFactory.getCompiledRuleId(localIncludedRule, helper, repository);\n }\n break;\n case 3 /* IncludeReferenceKind.TopLevelReference */:\n case 4 /* IncludeReferenceKind.TopLevelRepositoryReference */:\n const externalGrammarName = reference.scopeName;\n const externalGrammarInclude = reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */\n ? reference.ruleName\n : null;\n // External include\n const externalGrammar = helper.getExternalGrammar(externalGrammarName, repository);\n if (externalGrammar) {\n if (externalGrammarInclude) {\n let externalIncludedRule = externalGrammar.repository[externalGrammarInclude];\n if (externalIncludedRule) {\n ruleId = RuleFactory.getCompiledRuleId(externalIncludedRule, helper, externalGrammar.repository);\n }\n }\n else {\n ruleId = RuleFactory.getCompiledRuleId(externalGrammar.repository.$self, helper, externalGrammar.repository);\n }\n }\n break;\n }\n }\n else {\n ruleId = RuleFactory.getCompiledRuleId(pattern, helper, repository);\n }\n if (ruleId !== -1) {\n const rule = helper.getRule(ruleId);\n let skipRule = false;\n if (rule instanceof IncludeOnlyRule || rule instanceof BeginEndRule || rule instanceof BeginWhileRule) {\n if (rule.hasMissingPatterns && rule.patterns.length === 0) {\n skipRule = true;\n }\n }\n if (skipRule) {\n // console.log('REMOVING RULE ENTIRELY DUE TO EMPTY PATTERNS THAT ARE MISSING');\n continue;\n }\n r.push(ruleId);\n }\n }\n }\n return {\n patterns: r,\n hasMissingPatterns: ((patterns ? patterns.length : 0) !== r.length)\n };\n }\n}\nclass RegExpSource {\n source;\n ruleId;\n hasAnchor;\n hasBackReferences;\n _anchorCache;\n constructor(regExpSource, ruleId) {\n if (regExpSource) {\n const len = regExpSource.length;\n let lastPushedPos = 0;\n let output = [];\n let hasAnchor = false;\n for (let pos = 0; pos < len; pos++) {\n const ch = regExpSource.charAt(pos);\n if (ch === '\\\\') {\n if (pos + 1 < len) {\n const nextCh = regExpSource.charAt(pos + 1);\n if (nextCh === 'z') {\n output.push(regExpSource.substring(lastPushedPos, pos));\n output.push('$(?!\\\\n)(?<!\\\\n)');\n lastPushedPos = pos + 2;\n }\n else if (nextCh === 'A' || nextCh === 'G') {\n hasAnchor = true;\n }\n pos++;\n }\n }\n }\n this.hasAnchor = hasAnchor;\n if (lastPushedPos === 0) {\n // No \\z hit\n this.source = regExpSource;\n }\n else {\n output.push(regExpSource.substring(lastPushedPos, len));\n this.source = output.join('');\n }\n }\n else {\n this.hasAnchor = false;\n this.source = regExpSource;\n }\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n else {\n this._anchorCache = null;\n }\n this.ruleId = ruleId;\n this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);\n // console.log('input: ' + regExpSource + ' => ' + this.source + ', ' + this.hasAnchor);\n }\n clone() {\n return new RegExpSource(this.source, this.ruleId);\n }\n setSource(newSource) {\n if (this.source === newSource) {\n return;\n }\n this.source = newSource;\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n }\n resolveBackReferences(lineText, captureIndices) {\n let capturedValues = captureIndices.map((capture) => {\n return lineText.substring(capture.start, capture.end);\n });\n BACK_REFERENCING_END.lastIndex = 0;\n return this.source.replace(BACK_REFERENCING_END, (match, g1) => {\n return escapeRegExpCharacters(capturedValues[parseInt(g1, 10)] || '');\n });\n }\n _buildAnchorCache() {\n let A0_G0_result = [];\n let A0_G1_result = [];\n let A1_G0_result = [];\n let A1_G1_result = [];\n let pos, len, ch, nextCh;\n for (pos = 0, len = this.source.length; pos < len; pos++) {\n ch = this.source.charAt(pos);\n A0_G0_result[pos] = ch;\n A0_G1_result[pos] = ch;\n A1_G0_result[pos] = ch;\n A1_G1_result[pos] = ch;\n if (ch === '\\\\') {\n if (pos + 1 < len) {\n nextCh = this.source.charAt(pos + 1);\n if (nextCh === 'A') {\n A0_G0_result[pos + 1] = '\\uFFFF';\n A0_G1_result[pos + 1] = '\\uFFFF';\n A1_G0_result[pos + 1] = 'A';\n A1_G1_result[pos + 1] = 'A';\n }\n else if (nextCh === 'G') {\n A0_G0_result[pos + 1] = '\\uFFFF';\n A0_G1_result[pos + 1] = 'G';\n A1_G0_result[pos + 1] = '\\uFFFF';\n A1_G1_result[pos + 1] = 'G';\n }\n else {\n A0_G0_result[pos + 1] = nextCh;\n A0_G1_result[pos + 1] = nextCh;\n A1_G0_result[pos + 1] = nextCh;\n A1_G1_result[pos + 1] = nextCh;\n }\n pos++;\n }\n }\n }\n return {\n A0_G0: A0_G0_result.join(''),\n A0_G1: A0_G1_result.join(''),\n A1_G0: A1_G0_result.join(''),\n A1_G1: A1_G1_result.join('')\n };\n }\n resolveAnchors(allowA, allowG) {\n if (!this.hasAnchor || !this._anchorCache) {\n return this.source;\n }\n if (allowA) {\n if (allowG) {\n return this._anchorCache.A1_G1;\n }\n else {\n return this._anchorCache.A1_G0;\n }\n }\n else {\n if (allowG) {\n return this._anchorCache.A0_G1;\n }\n else {\n return this._anchorCache.A0_G0;\n }\n }\n }\n}\nclass RegExpSourceList {\n _items;\n _hasAnchors;\n _cached;\n _anchorCache;\n constructor() {\n this._items = [];\n this._hasAnchors = false;\n this._cached = null;\n this._anchorCache = {\n A0_G0: null,\n A0_G1: null,\n A1_G0: null,\n A1_G1: null\n };\n }\n dispose() {\n this._disposeCaches();\n }\n _disposeCaches() {\n if (this._cached) {\n this._cached.dispose();\n this._cached = null;\n }\n if (this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0.dispose();\n this._anchorCache.A0_G0 = null;\n }\n if (this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1.dispose();\n this._anchorCache.A0_G1 = null;\n }\n if (this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0.dispose();\n this._anchorCache.A1_G0 = null;\n }\n if (this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1.dispose();\n this._anchorCache.A1_G1 = null;\n }\n }\n push(item) {\n this._items.push(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n unshift(item) {\n this._items.unshift(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n length() {\n return this._items.length;\n }\n setSource(index, newSource) {\n if (this._items[index].source !== newSource) {\n // bust the cache\n this._disposeCaches();\n this._items[index].setSource(newSource);\n }\n }\n compile(onigLib) {\n if (!this._cached) {\n let regExps = this._items.map(e => e.source);\n this._cached = new CompiledRule(onigLib, regExps, this._items.map(e => e.ruleId));\n }\n return this._cached;\n }\n compileAG(onigLib, allowA, allowG) {\n if (!this._hasAnchors) {\n return this.compile(onigLib);\n }\n else {\n if (allowA) {\n if (allowG) {\n if (!this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G1;\n }\n else {\n if (!this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G0;\n }\n }\n else {\n if (allowG) {\n if (!this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G1;\n }\n else {\n if (!this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G0;\n }\n }\n }\n }\n _resolveAnchors(onigLib, allowA, allowG) {\n let regExps = this._items.map(e => e.resolveAnchors(allowA, allowG));\n return new CompiledRule(onigLib, regExps, this._items.map(e => e.ruleId));\n }\n}\nclass CompiledRule {\n regExps;\n rules;\n scanner;\n constructor(onigLib, regExps, rules) {\n this.regExps = regExps;\n this.rules = rules;\n this.scanner = onigLib.createOnigScanner(regExps);\n }\n dispose() {\n if (typeof this.scanner.dispose === \"function\") {\n this.scanner.dispose();\n }\n }\n toString() {\n const r = [];\n for (let i = 0, len = this.rules.length; i < len; i++) {\n r.push(\" - \" + this.rules[i] + \": \" + this.regExps[i]);\n }\n return r.join(\"\\n\");\n }\n findNextMatchSync(string, startPosition, options) {\n const result = this.scanner.findNextMatchSync(string, startPosition, options);\n if (!result) {\n return null;\n }\n return {\n ruleId: this.rules[result.index],\n captureIndices: result.captureIndices,\n };\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass Theme {\n _colorMap;\n _defaults;\n _root;\n static createFromRawTheme(source, colorMap) {\n return this.createFromParsedTheme(parseTheme(source), colorMap);\n }\n static createFromParsedTheme(source, colorMap) {\n return resolveParsedThemeRules(source, colorMap);\n }\n _cachedMatchRoot = new CachedFn((scopeName) => this._root.match(scopeName));\n constructor(_colorMap, _defaults, _root) {\n this._colorMap = _colorMap;\n this._defaults = _defaults;\n this._root = _root;\n }\n getColorMap() {\n return this._colorMap.getColorMap();\n }\n getDefaults() {\n return this._defaults;\n }\n match(scopePath) {\n if (scopePath === null) {\n return this._defaults;\n }\n const scopeName = scopePath.scopeName;\n const matchingTrieElements = this._cachedMatchRoot.get(scopeName);\n const effectiveRule = matchingTrieElements.find((v) => _scopePathMatchesParentScopes(scopePath.parent, v.parentScopes));\n if (!effectiveRule) {\n return null;\n }\n return new StyleAttributes(effectiveRule.fontStyle, effectiveRule.foreground, effectiveRule.background);\n }\n}\nclass ScopeStack {\n parent;\n scopeName;\n static push(path, scopeNames) {\n for (const name of scopeNames) {\n path = new ScopeStack(path, name);\n }\n return path;\n }\n static from(...segments) {\n let result = null;\n for (let i = 0; i < segments.length; i++) {\n result = new ScopeStack(result, segments[i]);\n }\n return result;\n }\n constructor(parent, scopeName) {\n this.parent = parent;\n this.scopeName = scopeName;\n }\n push(scopeName) {\n return new ScopeStack(this, scopeName);\n }\n getSegments() {\n let item = this;\n const result = [];\n while (item) {\n result.push(item.scopeName);\n item = item.parent;\n }\n result.reverse();\n return result;\n }\n toString() {\n return this.getSegments().join(' ');\n }\n extends(other) {\n if (this === other) {\n return true;\n }\n if (this.parent === null) {\n return false;\n }\n return this.parent.extends(other);\n }\n getExtensionIfDefined(base) {\n const result = [];\n let item = this;\n while (item && item !== base) {\n result.push(item.scopeName);\n item = item.parent;\n }\n return item === base ? result.reverse() : undefined;\n }\n}\nfunction _scopePathMatchesParentScopes(scopePath, parentScopes) {\n if (parentScopes === null) {\n return true;\n }\n let index = 0;\n let scopePattern = parentScopes[index];\n while (scopePath) {\n if (_matchesScope(scopePath.scopeName, scopePattern)) {\n index++;\n if (index === parentScopes.length) {\n return true;\n }\n scopePattern = parentScopes[index];\n }\n scopePath = scopePath.parent;\n }\n return false;\n}\nfunction _matchesScope(scopeName, scopePattern) {\n return scopePattern === scopeName || (scopeName.startsWith(scopePattern) && scopeName[scopePattern.length] === '.');\n}\nclass StyleAttributes {\n fontStyle;\n foregroundId;\n backgroundId;\n constructor(fontStyle, foregroundId, backgroundId) {\n this.fontStyle = fontStyle;\n this.foregroundId = foregroundId;\n this.backgroundId = backgroundId;\n }\n}\n/**\n * Parse a raw theme into rules.\n */\nfunction parseTheme(source) {\n if (!source) {\n return [];\n }\n if (!source.settings || !Array.isArray(source.settings)) {\n return [];\n }\n let settings = source.settings;\n let result = [], resultLen = 0;\n for (let i = 0, len = settings.length; i < len; i++) {\n let entry = settings[i];\n if (!entry.settings) {\n continue;\n }\n let scopes;\n if (typeof entry.scope === 'string') {\n let _scope = entry.scope;\n // remove leading commas\n _scope = _scope.replace(/^[,]+/, '');\n // remove trailing commans\n _scope = _scope.replace(/[,]+$/, '');\n scopes = _scope.split(',');\n }\n else if (Array.isArray(entry.scope)) {\n scopes = entry.scope;\n }\n else {\n scopes = [''];\n }\n let fontStyle = -1 /* FontStyle.NotSet */;\n if (typeof entry.settings.fontStyle === 'string') {\n fontStyle = 0 /* FontStyle.None */;\n let segments = entry.settings.fontStyle.split(' ');\n for (let j = 0, lenJ = segments.length; j < lenJ; j++) {\n let segment = segments[j];\n switch (segment) {\n case 'italic':\n fontStyle = fontStyle | 1 /* FontStyle.Italic */;\n break;\n case 'bold':\n fontStyle = fontStyle | 2 /* FontStyle.Bold */;\n break;\n case 'underline':\n fontStyle = fontStyle | 4 /* FontStyle.Underline */;\n break;\n case 'strikethrough':\n fontStyle = fontStyle | 8 /* FontStyle.Strikethrough */;\n break;\n }\n }\n }\n let foreground = null;\n if (typeof entry.settings.foreground === 'string' && isValidHexColor(entry.settings.foreground)) {\n foreground = entry.settings.foreground;\n }\n let background = null;\n if (typeof entry.settings.background === 'string' && isValidHexColor(entry.settings.background)) {\n background = entry.settings.background;\n }\n for (let j = 0, lenJ = scopes.length; j < lenJ; j++) {\n let _scope = scopes[j].trim();\n let segments = _scope.split(' ');\n let scope = segments[segments.length - 1];\n let parentScopes = null;\n if (segments.length > 1) {\n parentScopes = segments.slice(0, segments.length - 1);\n parentScopes.reverse();\n }\n result[resultLen++] = new ParsedThemeRule(scope, parentScopes, i, fontStyle, foreground, background);\n }\n }\n return result;\n}\nclass ParsedThemeRule {\n scope;\n parentScopes;\n index;\n fontStyle;\n foreground;\n background;\n constructor(scope, parentScopes, index, fontStyle, foreground, background) {\n this.scope = scope;\n this.parentScopes = parentScopes;\n this.index = index;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n}\n/**\n * Resolve rules (i.e. inheritance).\n */\nfunction resolveParsedThemeRules(parsedThemeRules, _colorMap) {\n // Sort rules lexicographically, and then by index if necessary\n parsedThemeRules.sort((a, b) => {\n let r = strcmp(a.scope, b.scope);\n if (r !== 0) {\n return r;\n }\n r = strArrCmp(a.parentScopes, b.parentScopes);\n if (r !== 0) {\n return r;\n }\n return a.index - b.index;\n });\n // Determine defaults\n let defaultFontStyle = 0 /* FontStyle.None */;\n let defaultForeground = '#000000';\n let defaultBackground = '#ffffff';\n while (parsedThemeRules.length >= 1 && parsedThemeRules[0].scope === '') {\n let incomingDefaults = parsedThemeRules.shift();\n if (incomingDefaults.fontStyle !== -1 /* FontStyle.NotSet */) {\n defaultFontStyle = incomingDefaults.fontStyle;\n }\n if (incomingDefaults.foreground !== null) {\n defaultForeground = incomingDefaults.foreground;\n }\n if (incomingDefaults.background !== null) {\n defaultBackground = incomingDefaults.background;\n }\n }\n let colorMap = new ColorMap(_colorMap);\n let defaults = new StyleAttributes(defaultFontStyle, colorMap.getId(defaultForeground), colorMap.getId(defaultBackground));\n let root = new ThemeTrieElement(new ThemeTrieElementRule(0, null, -1 /* FontStyle.NotSet */, 0, 0), []);\n for (let i = 0, len = parsedThemeRules.length; i < len; i++) {\n let rule = parsedThemeRules[i];\n root.insert(0, rule.scope, rule.parentScopes, rule.fontStyle, colorMap.getId(rule.foreground), colorMap.getId(rule.background));\n }\n return new Theme(colorMap, defaults, root);\n}\nclass ColorMap {\n _isFrozen;\n _lastColorId;\n _id2color;\n _color2id;\n constructor(_colorMap) {\n this._lastColorId = 0;\n this._id2color = [];\n this._color2id = Object.create(null);\n if (Array.isArray(_colorMap)) {\n this._isFrozen = true;\n for (let i = 0, len = _colorMap.length; i < len; i++) {\n this._color2id[_colorMap[i]] = i;\n this._id2color[i] = _colorMap[i];\n }\n }\n else {\n this._isFrozen = false;\n }\n }\n getId(color) {\n if (color === null) {\n return 0;\n }\n color = color.toUpperCase();\n let value = this._color2id[color];\n if (value) {\n return value;\n }\n if (this._isFrozen) {\n throw new Error(`Missing color in color map - ${color}`);\n }\n value = ++this._lastColorId;\n this._color2id[color] = value;\n this._id2color[value] = color;\n return value;\n }\n getColorMap() {\n return this._id2color.slice(0);\n }\n}\nclass ThemeTrieElementRule {\n scopeDepth;\n parentScopes;\n fontStyle;\n foreground;\n background;\n constructor(scopeDepth, parentScopes, fontStyle, foreground, background) {\n this.scopeDepth = scopeDepth;\n this.parentScopes = parentScopes;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n clone() {\n return new ThemeTrieElementRule(this.scopeDepth, this.parentScopes, this.fontStyle, this.foreground, this.background);\n }\n static cloneArr(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = arr[i].clone();\n }\n return r;\n }\n acceptOverwrite(scopeDepth, fontStyle, foreground, background) {\n if (this.scopeDepth > scopeDepth) {\n console.log('how did this happen?');\n }\n else {\n this.scopeDepth = scopeDepth;\n }\n // console.log('TODO -> my depth: ' + this.scopeDepth + ', overwriting depth: ' + scopeDepth);\n if (fontStyle !== -1 /* FontStyle.NotSet */) {\n this.fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n this.foreground = foreground;\n }\n if (background !== 0) {\n this.background = background;\n }\n }\n}\nclass ThemeTrieElement {\n _mainRule;\n _children;\n _rulesWithParentScopes;\n constructor(_mainRule, rulesWithParentScopes = [], _children = {}) {\n this._mainRule = _mainRule;\n this._children = _children;\n this._rulesWithParentScopes = rulesWithParentScopes;\n }\n static _sortBySpecificity(arr) {\n if (arr.length === 1) {\n return arr;\n }\n arr.sort(this._cmpBySpecificity);\n return arr;\n }\n static _cmpBySpecificity(a, b) {\n if (a.scopeDepth === b.scopeDepth) {\n const aParentScopes = a.parentScopes;\n const bParentScopes = b.parentScopes;\n let aParentScopesLen = aParentScopes === null ? 0 : aParentScopes.length;\n let bParentScopesLen = bParentScopes === null ? 0 : bParentScopes.length;\n if (aParentScopesLen === bParentScopesLen) {\n for (let i = 0; i < aParentScopesLen; i++) {\n const aLen = aParentScopes[i].length;\n const bLen = bParentScopes[i].length;\n if (aLen !== bLen) {\n return bLen - aLen;\n }\n }\n }\n return bParentScopesLen - aParentScopesLen;\n }\n return b.scopeDepth - a.scopeDepth;\n }\n match(scope) {\n if (scope === '') {\n return ThemeTrieElement._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\n }\n let dotIndex = scope.indexOf('.');\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = '';\n }\n else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n if (this._children.hasOwnProperty(head)) {\n return this._children[head].match(tail);\n }\n return ThemeTrieElement._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\n }\n insert(scopeDepth, scope, parentScopes, fontStyle, foreground, background) {\n if (scope === '') {\n this._doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background);\n return;\n }\n let dotIndex = scope.indexOf('.');\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = '';\n }\n else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n let child;\n if (this._children.hasOwnProperty(head)) {\n child = this._children[head];\n }\n else {\n child = new ThemeTrieElement(this._mainRule.clone(), ThemeTrieElementRule.cloneArr(this._rulesWithParentScopes));\n this._children[head] = child;\n }\n child.insert(scopeDepth + 1, tail, parentScopes, fontStyle, foreground, background);\n }\n _doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background) {\n if (parentScopes === null) {\n // Merge into the main rule\n this._mainRule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n // Try to merge into existing rule\n for (let i = 0, len = this._rulesWithParentScopes.length; i < len; i++) {\n let rule = this._rulesWithParentScopes[i];\n if (strArrCmp(rule.parentScopes, parentScopes) === 0) {\n // bingo! => we get to merge this into an existing one\n rule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n }\n // Must add a new rule\n // Inherit from main rule\n if (fontStyle === -1 /* FontStyle.NotSet */) {\n fontStyle = this._mainRule.fontStyle;\n }\n if (foreground === 0) {\n foreground = this._mainRule.foreground;\n }\n if (background === 0) {\n background = this._mainRule.background;\n }\n this._rulesWithParentScopes.push(new ThemeTrieElementRule(scopeDepth, parentScopes, fontStyle, foreground, background));\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass BasicScopeAttributes {\n languageId;\n tokenType;\n constructor(languageId, tokenType) {\n this.languageId = languageId;\n this.tokenType = tokenType;\n }\n}\nclass BasicScopeAttributesProvider {\n _defaultAttributes;\n _embeddedLanguagesMatcher;\n constructor(initialLanguageId, embeddedLanguages) {\n this._defaultAttributes = new BasicScopeAttributes(initialLanguageId, 8 /* OptionalStandardTokenType.NotSet */);\n this._embeddedLanguagesMatcher = new ScopeMatcher(Object.entries(embeddedLanguages || {}));\n }\n getDefaultAttributes() {\n return this._defaultAttributes;\n }\n getBasicScopeAttributes(scopeName) {\n if (scopeName === null) {\n return BasicScopeAttributesProvider._NULL_SCOPE_METADATA;\n }\n return this._getBasicScopeAttributes.get(scopeName);\n }\n static _NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n _getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\n /**\n * Given a produced TM scope, return the language that token describes or null if unknown.\n * e.g. source.html => html, source.css.embedded.html => css, punctuation.definition.tag.html => null\n */\n _scopeToLanguage(scope) {\n return this._embeddedLanguagesMatcher.match(scope) || 0;\n }\n _toStandardTokenType(scopeName) {\n const m = scopeName.match(BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP);\n if (!m) {\n return 8 /* OptionalStandardTokenType.NotSet */;\n }\n switch (m[1]) {\n case \"comment\":\n return 1 /* OptionalStandardTokenType.Comment */;\n case \"string\":\n return 2 /* OptionalStandardTokenType.String */;\n case \"regex\":\n return 3 /* OptionalStandardTokenType.RegEx */;\n case \"meta.embedded\":\n return 0 /* OptionalStandardTokenType.Other */;\n }\n throw new Error(\"Unexpected match for standard token type!\");\n }\n static STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\n}\nclass ScopeMatcher {\n values;\n scopesRegExp;\n constructor(values) {\n if (values.length === 0) {\n this.values = null;\n this.scopesRegExp = null;\n }\n else {\n this.values = new Map(values);\n // create the regex\n const escapedScopes = values.map(([scopeName, value]) => escapeRegExpCharacters(scopeName));\n escapedScopes.sort();\n escapedScopes.reverse(); // Longest scope first\n this.scopesRegExp = new RegExp(`^((${escapedScopes.join(\")|(\")}))($|\\\\.)`, \"\");\n }\n }\n match(scope) {\n if (!this.scopesRegExp) {\n return undefined;\n }\n const m = scope.match(this.scopesRegExp);\n if (!m) {\n // no scopes matched\n return undefined;\n }\n return this.values.get(m[1]);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass TokenizeStringResult {\n stack;\n stoppedEarly;\n constructor(stack, stoppedEarly) {\n this.stack = stack;\n this.stoppedEarly = stoppedEarly;\n }\n}\n/**\n * Tokenize a string\n * @param grammar\n * @param lineText\n * @param isFirstLine\n * @param linePos\n * @param stack\n * @param lineTokens\n * @param checkWhileConditions\n * @param timeLimit Use `0` to indicate no time limit\n * @returns the StackElement or StackElement.TIME_LIMIT_REACHED if the time limit has been reached\n */\nfunction _tokenizeString(grammar, lineText, isFirstLine, linePos, stack, lineTokens, checkWhileConditions, timeLimit) {\n const lineLength = lineText.content.length;\n let STOP = false;\n let anchorPosition = -1;\n if (checkWhileConditions) {\n const whileCheckResult = _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens);\n stack = whileCheckResult.stack;\n linePos = whileCheckResult.linePos;\n isFirstLine = whileCheckResult.isFirstLine;\n anchorPosition = whileCheckResult.anchorPosition;\n }\n const startTime = Date.now();\n while (!STOP) {\n if (timeLimit !== 0) {\n const elapsedTime = Date.now() - startTime;\n if (elapsedTime > timeLimit) {\n return new TokenizeStringResult(stack, true);\n }\n }\n scanNext(); // potentially modifies linePos && anchorPosition\n }\n return new TokenizeStringResult(stack, false);\n function scanNext() {\n const r = matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!r) {\n // No match\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n const captureIndices = r.captureIndices;\n const matchedRuleId = r.matchedRuleId;\n const hasAdvanced = captureIndices && captureIndices.length > 0\n ? captureIndices[0].end > linePos\n : false;\n if (matchedRuleId === endRuleId) {\n // We matched the `end` for this rule => pop it\n const poppedRule = stack.getRule(grammar);\n lineTokens.produce(stack, captureIndices[0].start);\n stack = stack.withContentNameScopesList(stack.nameScopesList);\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, poppedRule.endCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n // pop\n const popped = stack;\n stack = stack.parent;\n anchorPosition = popped.getAnchorPos();\n if (!hasAdvanced && popped.getEnterPos() === linePos) {\n // See https://github.com/Microsoft/vscode-textmate/issues/12\n // Let's assume this was a mistake by the grammar author and the intent was to continue in this state\n stack = popped;\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else {\n // We matched a rule!\n const _rule = grammar.getRule(matchedRuleId);\n lineTokens.produce(stack, captureIndices[0].start);\n const beforePush = stack;\n // push it on the stack rule\n const scopeName = _rule.getName(lineText.content, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n stack = stack.push(matchedRuleId, linePos, anchorPosition, captureIndices[0].end === lineLength, null, nameScopesList, nameScopesList);\n if (_rule instanceof BeginEndRule) {\n const pushedRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(lineText.content, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.endHasBackReferences) {\n stack = stack.withEndRule(pushedRule.getEndWithResolvedBackReferences(lineText.content, captureIndices));\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else if (_rule instanceof BeginWhileRule) {\n const pushedRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(lineText.content, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.whileHasBackReferences) {\n stack = stack.withEndRule(pushedRule.getWhileWithResolvedBackReferences(lineText.content, captureIndices));\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else {\n const matchingRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, matchingRule.captures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n // pop rule immediately since it is a MatchRule\n stack = stack.pop();\n if (!hasAdvanced) {\n stack = stack.safePop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n }\n if (captureIndices[0].end > linePos) {\n // Advance stream\n linePos = captureIndices[0].end;\n isFirstLine = false;\n }\n }\n}\n/**\n * Walk the stack from bottom to top, and check each while condition in this order.\n * If any fails, cut off the entire stack above the failed while condition. While conditions\n * may also advance the linePosition.\n */\nfunction _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens) {\n let anchorPosition = (stack.beginRuleCapturedEOL ? 0 : -1);\n const whileRules = [];\n for (let node = stack; node; node = node.pop()) {\n const nodeRule = node.getRule(grammar);\n if (nodeRule instanceof BeginWhileRule) {\n whileRules.push({\n rule: nodeRule,\n stack: node\n });\n }\n }\n for (let whileRule = whileRules.pop(); whileRule; whileRule = whileRules.pop()) {\n const { ruleScanner, findOptions } = prepareRuleWhileSearch(whileRule.rule, grammar, whileRule.stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n const matchedRuleId = r.ruleId;\n if (matchedRuleId !== whileRuleId) {\n // we shouldn't end up here\n stack = whileRule.stack.pop();\n break;\n }\n if (r.captureIndices && r.captureIndices.length) {\n lineTokens.produce(whileRule.stack, r.captureIndices[0].start);\n handleCaptures(grammar, lineText, isFirstLine, whileRule.stack, lineTokens, whileRule.rule.whileCaptures, r.captureIndices);\n lineTokens.produce(whileRule.stack, r.captureIndices[0].end);\n anchorPosition = r.captureIndices[0].end;\n if (r.captureIndices[0].end > linePos) {\n linePos = r.captureIndices[0].end;\n isFirstLine = false;\n }\n }\n }\n else {\n stack = whileRule.stack.pop();\n break;\n }\n }\n return { stack: stack, linePos: linePos, anchorPosition: anchorPosition, isFirstLine: isFirstLine };\n}\nfunction matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n // Look for normal grammar rule\n const matchResult = matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n // Look for injected rules\n const injections = grammar.getInjections();\n if (injections.length === 0) {\n // No injections whatsoever => early return\n return matchResult;\n }\n const injectionResult = matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!injectionResult) {\n // No injections matched => early return\n return matchResult;\n }\n if (!matchResult) {\n // Only injections matched => early return\n return injectionResult;\n }\n // Decide if `matchResult` or `injectionResult` should win\n const matchResultScore = matchResult.captureIndices[0].start;\n const injectionResultScore = injectionResult.captureIndices[0].start;\n if (injectionResultScore < matchResultScore || (injectionResult.priorityMatch && injectionResultScore === matchResultScore)) {\n // injection won!\n return injectionResult;\n }\n return matchResult;\n}\nfunction matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const rule = stack.getRule(grammar);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n return {\n captureIndices: r.captureIndices,\n matchedRuleId: r.ruleId\n };\n }\n return null;\n}\nfunction matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n // The lower the better\n let bestMatchRating = Number.MAX_VALUE;\n let bestMatchCaptureIndices = null;\n let bestMatchRuleId;\n let bestMatchResultPriority = 0;\n const scopes = stack.contentNameScopesList.getScopeNames();\n for (let i = 0, len = injections.length; i < len; i++) {\n const injection = injections[i];\n if (!injection.matcher(scopes)) {\n // injection selector doesn't match stack\n continue;\n }\n const rule = grammar.getRule(injection.ruleId);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, null, isFirstLine, linePos === anchorPosition);\n const matchResult = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (!matchResult) {\n continue;\n }\n const matchRating = matchResult.captureIndices[0].start;\n if (matchRating >= bestMatchRating) {\n // Injections are sorted by priority, so the previous injection had a better or equal priority\n continue;\n }\n bestMatchRating = matchRating;\n bestMatchCaptureIndices = matchResult.captureIndices;\n bestMatchRuleId = matchResult.ruleId;\n bestMatchResultPriority = injection.priority;\n if (bestMatchRating === linePos) {\n // No more need to look at the rest of the injections.\n break;\n }\n }\n if (bestMatchCaptureIndices) {\n return {\n priorityMatch: bestMatchResultPriority === -1,\n captureIndices: bestMatchCaptureIndices,\n matchedRuleId: bestMatchRuleId\n };\n }\n return null;\n}\nfunction prepareRuleSearch(rule, grammar, endRegexSource, allowA, allowG) {\n const ruleScanner = rule.compileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* FindOption.None */ };\n}\nfunction prepareRuleWhileSearch(rule, grammar, endRegexSource, allowA, allowG) {\n const ruleScanner = rule.compileWhileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* FindOption.None */ };\n}\nfunction handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, captures, captureIndices) {\n if (captures.length === 0) {\n return;\n }\n const lineTextContent = lineText.content;\n const len = Math.min(captures.length, captureIndices.length);\n const localStack = [];\n const maxEnd = captureIndices[0].end;\n for (let i = 0; i < len; i++) {\n const captureRule = captures[i];\n if (captureRule === null) {\n // Not interested\n continue;\n }\n const captureIndex = captureIndices[i];\n if (captureIndex.length === 0) {\n // Nothing really captured\n continue;\n }\n if (captureIndex.start > maxEnd) {\n // Capture going beyond consumed string\n break;\n }\n // pop captures while needed\n while (localStack.length > 0 && localStack[localStack.length - 1].endPos <= captureIndex.start) {\n // pop!\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n if (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, captureIndex.start);\n }\n else {\n lineTokens.produce(stack, captureIndex.start);\n }\n if (captureRule.retokenizeCapturedWithRuleId) {\n // the capture requires additional matching\n const scopeName = captureRule.getName(lineTextContent, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n const contentName = captureRule.getContentName(lineTextContent, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n const stackClone = stack.push(captureRule.retokenizeCapturedWithRuleId, captureIndex.start, -1, false, null, nameScopesList, contentNameScopesList);\n const onigSubStr = grammar.createOnigString(lineTextContent.substring(0, captureIndex.end));\n _tokenizeString(grammar, onigSubStr, (isFirstLine && captureIndex.start === 0), captureIndex.start, stackClone, lineTokens, false, /* no time limit */ 0);\n disposeOnigString(onigSubStr);\n continue;\n }\n const captureRuleScopeName = captureRule.getName(lineTextContent, captureIndices);\n if (captureRuleScopeName !== null) {\n // push\n const base = localStack.length > 0 ? localStack[localStack.length - 1].scopes : stack.contentNameScopesList;\n const captureRuleScopesList = base.pushAttributed(captureRuleScopeName, grammar);\n localStack.push(new LocalStackElement(captureRuleScopesList, captureIndex.end));\n }\n }\n while (localStack.length > 0) {\n // pop!\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n}\nclass LocalStackElement {\n scopes;\n endPos;\n constructor(scopes, endPos) {\n this.scopes = scopes;\n this.endPos = endPos;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction createGrammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib) {\n return new Grammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib); //TODO\n}\nfunction collectInjections(result, selector, rule, ruleFactoryHelper, grammar) {\n const matchers = createMatchers(selector, nameMatcher);\n const ruleId = RuleFactory.getCompiledRuleId(rule, ruleFactoryHelper, grammar.repository);\n for (const matcher of matchers) {\n result.push({\n debugSelector: selector,\n matcher: matcher.matcher,\n ruleId: ruleId,\n grammar: grammar,\n priority: matcher.priority\n });\n }\n}\nfunction nameMatcher(identifers, scopes) {\n if (scopes.length < identifers.length) {\n return false;\n }\n let lastIndex = 0;\n return identifers.every(identifier => {\n for (let i = lastIndex; i < scopes.length; i++) {\n if (scopesAreMatching(scopes[i], identifier)) {\n lastIndex = i + 1;\n return true;\n }\n }\n return false;\n });\n}\nfunction scopesAreMatching(thisScopeName, scopeName) {\n if (!thisScopeName) {\n return false;\n }\n if (thisScopeName === scopeName) {\n return true;\n }\n const len = scopeName.length;\n return thisScopeName.length > len && thisScopeName.substr(0, len) === scopeName && thisScopeName[len] === '.';\n}\nclass Grammar {\n _rootScopeName;\n balancedBracketSelectors;\n _onigLib;\n _rootId;\n _lastRuleId;\n _ruleId2desc;\n _includedGrammars;\n _grammarRepository;\n _grammar;\n _injections;\n _basicScopeAttributesProvider;\n _tokenTypeMatchers;\n get themeProvider() { return this._grammarRepository; }\n constructor(_rootScopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, _onigLib) {\n this._rootScopeName = _rootScopeName;\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._onigLib = _onigLib;\n this._basicScopeAttributesProvider = new BasicScopeAttributesProvider(initialLanguage, embeddedLanguages);\n this._rootId = -1;\n this._lastRuleId = 0;\n this._ruleId2desc = [null];\n this._includedGrammars = {};\n this._grammarRepository = grammarRepository;\n this._grammar = initGrammar(grammar, null);\n this._injections = null;\n this._tokenTypeMatchers = [];\n if (tokenTypes) {\n for (const selector of Object.keys(tokenTypes)) {\n const matchers = createMatchers(selector, nameMatcher);\n for (const matcher of matchers) {\n this._tokenTypeMatchers.push({\n matcher: matcher.matcher,\n type: tokenTypes[selector],\n });\n }\n }\n }\n }\n dispose() {\n for (const rule of this._ruleId2desc) {\n if (rule) {\n rule.dispose();\n }\n }\n }\n createOnigScanner(sources) {\n return this._onigLib.createOnigScanner(sources);\n }\n createOnigString(sources) {\n return this._onigLib.createOnigString(sources);\n }\n getMetadataForScope(scope) {\n return this._basicScopeAttributesProvider.getBasicScopeAttributes(scope);\n }\n _collectInjections() {\n const grammarRepository = {\n lookup: (scopeName) => {\n if (scopeName === this._rootScopeName) {\n return this._grammar;\n }\n return this.getExternalGrammar(scopeName);\n },\n injections: (scopeName) => {\n return this._grammarRepository.injections(scopeName);\n },\n };\n const result = [];\n const scopeName = this._rootScopeName;\n const grammar = grammarRepository.lookup(scopeName);\n if (grammar) {\n // add injections from the current grammar\n const rawInjections = grammar.injections;\n if (rawInjections) {\n for (let expression in rawInjections) {\n collectInjections(result, expression, rawInjections[expression], this, grammar);\n }\n }\n // add injection grammars contributed for the current scope\n const injectionScopeNames = this._grammarRepository.injections(scopeName);\n if (injectionScopeNames) {\n injectionScopeNames.forEach((injectionScopeName) => {\n const injectionGrammar = this.getExternalGrammar(injectionScopeName);\n if (injectionGrammar) {\n const selector = injectionGrammar.injectionSelector;\n if (selector) {\n collectInjections(result, selector, injectionGrammar, this, injectionGrammar);\n }\n }\n });\n }\n }\n result.sort((i1, i2) => i1.priority - i2.priority); // sort by priority\n return result;\n }\n getInjections() {\n if (this._injections === null) {\n this._injections = this._collectInjections();\n }\n return this._injections;\n }\n registerRule(factory) {\n const id = ++this._lastRuleId;\n const result = factory(ruleIdFromNumber(id));\n this._ruleId2desc[id] = result;\n return result;\n }\n getRule(ruleId) {\n return this._ruleId2desc[ruleIdToNumber(ruleId)];\n }\n getExternalGrammar(scopeName, repository) {\n if (this._includedGrammars[scopeName]) {\n return this._includedGrammars[scopeName];\n }\n else if (this._grammarRepository) {\n const rawIncludedGrammar = this._grammarRepository.lookup(scopeName);\n if (rawIncludedGrammar) {\n // console.log('LOADED GRAMMAR ' + pattern.include);\n this._includedGrammars[scopeName] = initGrammar(rawIncludedGrammar, repository && repository.$base);\n return this._includedGrammars[scopeName];\n }\n }\n return undefined;\n }\n tokenizeLine(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, false, timeLimit);\n return {\n tokens: r.lineTokens.getResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n tokenizeLine2(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, true, timeLimit);\n return {\n tokens: r.lineTokens.getBinaryResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n _tokenize(lineText, prevState, emitBinaryTokens, timeLimit) {\n if (this._rootId === -1) {\n this._rootId = RuleFactory.getCompiledRuleId(this._grammar.repository.$self, this, this._grammar.repository);\n // This ensures ids are deterministic, and thus equal in renderer and webworker.\n this.getInjections();\n }\n let isFirstLine;\n if (!prevState || prevState === StateStackImpl.NULL) {\n isFirstLine = true;\n const rawDefaultMetadata = this._basicScopeAttributesProvider.getDefaultAttributes();\n const defaultStyle = this.themeProvider.getDefaults();\n const defaultMetadata = EncodedTokenAttributes.set(0, rawDefaultMetadata.languageId, rawDefaultMetadata.tokenType, null, defaultStyle.fontStyle, defaultStyle.foregroundId, defaultStyle.backgroundId);\n const rootScopeName = this.getRule(this._rootId).getName(null, null);\n let scopeList;\n if (rootScopeName) {\n scopeList = AttributedScopeStack.createRootAndLookUpScopeName(rootScopeName, defaultMetadata, this);\n }\n else {\n scopeList = AttributedScopeStack.createRoot(\"unknown\", defaultMetadata);\n }\n prevState = new StateStackImpl(null, this._rootId, -1, -1, false, null, scopeList, scopeList);\n }\n else {\n isFirstLine = false;\n prevState.reset();\n }\n lineText = lineText + \"\\n\";\n const onigLineText = this.createOnigString(lineText);\n const lineLength = onigLineText.content.length;\n const lineTokens = new LineTokens(emitBinaryTokens, lineText, this._tokenTypeMatchers, this.balancedBracketSelectors);\n const r = _tokenizeString(this, onigLineText, isFirstLine, 0, prevState, lineTokens, true, timeLimit);\n disposeOnigString(onigLineText);\n return {\n lineLength: lineLength,\n lineTokens: lineTokens,\n ruleStack: r.stack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n}\nfunction initGrammar(grammar, base) {\n grammar = clone(grammar);\n grammar.repository = grammar.repository || {};\n grammar.repository.$self = {\n $vscodeTextmateLocation: grammar.$vscodeTextmateLocation,\n patterns: grammar.patterns,\n name: grammar.scopeName\n };\n grammar.repository.$base = base || grammar.repository.$self;\n return grammar;\n}\nclass AttributedScopeStack {\n parent;\n scopePath;\n tokenAttributes;\n static fromExtension(namesScopeList, contentNameScopesList) {\n let current = namesScopeList;\n let scopeNames = namesScopeList?.scopePath ?? null;\n for (const frame of contentNameScopesList) {\n scopeNames = ScopeStack.push(scopeNames, frame.scopeNames);\n current = new AttributedScopeStack(current, scopeNames, frame.encodedTokenAttributes);\n }\n return current;\n }\n static createRoot(scopeName, tokenAttributes) {\n return new AttributedScopeStack(null, new ScopeStack(null, scopeName), tokenAttributes);\n }\n static createRootAndLookUpScopeName(scopeName, tokenAttributes, grammar) {\n const rawRootMetadata = grammar.getMetadataForScope(scopeName);\n const scopePath = new ScopeStack(null, scopeName);\n const rootStyle = grammar.themeProvider.themeMatch(scopePath);\n const resolvedTokenAttributes = AttributedScopeStack.mergeAttributes(tokenAttributes, rawRootMetadata, rootStyle);\n return new AttributedScopeStack(null, scopePath, resolvedTokenAttributes);\n }\n get scopeName() { return this.scopePath.scopeName; }\n /**\n * Invariant:\n * ```\n * if (parent && !scopePath.extends(parent.scopePath)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, scopePath, tokenAttributes) {\n this.parent = parent;\n this.scopePath = scopePath;\n this.tokenAttributes = tokenAttributes;\n }\n toString() {\n return this.getScopeNames().join(' ');\n }\n equals(other) {\n return AttributedScopeStack.equals(this, other);\n }\n static equals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n // End of list reached for both\n return true;\n }\n if (!a || !b) {\n // End of list reached only for one\n return false;\n }\n if (a.scopeName !== b.scopeName || a.tokenAttributes !== b.tokenAttributes) {\n return false;\n }\n // Go to previous pair\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n static mergeAttributes(existingTokenAttributes, basicScopeAttributes, styleAttributes) {\n let fontStyle = -1 /* FontStyle.NotSet */;\n let foreground = 0;\n let background = 0;\n if (styleAttributes !== null) {\n fontStyle = styleAttributes.fontStyle;\n foreground = styleAttributes.foregroundId;\n background = styleAttributes.backgroundId;\n }\n return EncodedTokenAttributes.set(existingTokenAttributes, basicScopeAttributes.languageId, basicScopeAttributes.tokenType, null, fontStyle, foreground, background);\n }\n pushAttributed(scopePath, grammar) {\n if (scopePath === null) {\n return this;\n }\n if (scopePath.indexOf(' ') === -1) {\n // This is the common case and much faster\n return AttributedScopeStack._pushAttributed(this, scopePath, grammar);\n }\n const scopes = scopePath.split(/ /g);\n let result = this;\n for (const scope of scopes) {\n result = AttributedScopeStack._pushAttributed(result, scope, grammar);\n }\n return result;\n }\n static _pushAttributed(target, scopeName, grammar) {\n const rawMetadata = grammar.getMetadataForScope(scopeName);\n const newPath = target.scopePath.push(scopeName);\n const scopeThemeMatchResult = grammar.themeProvider.themeMatch(newPath);\n const metadata = AttributedScopeStack.mergeAttributes(target.tokenAttributes, rawMetadata, scopeThemeMatchResult);\n return new AttributedScopeStack(target, newPath, metadata);\n }\n getScopeNames() {\n return this.scopePath.getSegments();\n }\n getExtensionIfDefined(base) {\n const result = [];\n let self = this;\n while (self && self !== base) {\n result.push({\n encodedTokenAttributes: self.tokenAttributes,\n scopeNames: self.scopePath.getExtensionIfDefined(self.parent?.scopePath ?? null),\n });\n self = self.parent;\n }\n return self === base ? result.reverse() : undefined;\n }\n}\n/**\n * Represents a \"pushed\" state on the stack (as a linked list element).\n */\nclass StateStackImpl {\n parent;\n ruleId;\n beginRuleCapturedEOL;\n endRule;\n nameScopesList;\n contentNameScopesList;\n _stackElementBrand = undefined;\n // TODO remove me\n static NULL = new StateStackImpl(null, 0, 0, 0, false, null, null, null);\n /**\n * The position on the current line where this state was pushed.\n * This is relevant only while tokenizing a line, to detect endless loops.\n * Its value is meaningless across lines.\n */\n _enterPos;\n /**\n * The captured anchor position when this stack element was pushed.\n * This is relevant only while tokenizing a line, to restore the anchor position when popping.\n * Its value is meaningless across lines.\n */\n _anchorPos;\n /**\n * The depth of the stack.\n */\n depth;\n /**\n * Invariant:\n * ```\n * if (contentNameScopesList !== nameScopesList && contentNameScopesList?.parent !== nameScopesList) {\n * \tthrow new Error();\n * }\n * if (this.parent && !nameScopesList.extends(this.parent.contentNameScopesList)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(\n /**\n * The previous state on the stack (or null for the root state).\n */\n parent, \n /**\n * The state (rule) that this element represents.\n */\n ruleId, enterPos, anchorPos, \n /**\n * The state has entered and captured \\n. This means that the next line should have an anchorPosition of 0.\n */\n beginRuleCapturedEOL, \n /**\n * The \"pop\" (end) condition for this state in case that it was dynamically generated through captured text.\n */\n endRule, \n /**\n * The list of scopes containing the \"name\" for this state.\n */\n nameScopesList, \n /**\n * The list of scopes containing the \"contentName\" (besides \"name\") for this state.\n * This list **must** contain as an element `scopeName`.\n */\n contentNameScopesList) {\n this.parent = parent;\n this.ruleId = ruleId;\n this.beginRuleCapturedEOL = beginRuleCapturedEOL;\n this.endRule = endRule;\n this.nameScopesList = nameScopesList;\n this.contentNameScopesList = contentNameScopesList;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\n equals(other) {\n if (other === null) {\n return false;\n }\n return StateStackImpl._equals(this, other);\n }\n static _equals(a, b) {\n if (a === b) {\n return true;\n }\n if (!this._structuralEquals(a, b)) {\n return false;\n }\n return AttributedScopeStack.equals(a.contentNameScopesList, b.contentNameScopesList);\n }\n /**\n * A structural equals check. Does not take into account `scopes`.\n */\n static _structuralEquals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n // End of list reached for both\n return true;\n }\n if (!a || !b) {\n // End of list reached only for one\n return false;\n }\n if (a.depth !== b.depth ||\n a.ruleId !== b.ruleId ||\n a.endRule !== b.endRule) {\n return false;\n }\n // Go to previous pair\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n clone() {\n return this;\n }\n static _reset(el) {\n while (el) {\n el._enterPos = -1;\n el._anchorPos = -1;\n el = el.parent;\n }\n }\n reset() {\n StateStackImpl._reset(this);\n }\n pop() {\n return this.parent;\n }\n safePop() {\n if (this.parent) {\n return this.parent;\n }\n return this;\n }\n push(ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n return new StateStackImpl(this, ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList);\n }\n getEnterPos() {\n return this._enterPos;\n }\n getAnchorPos() {\n return this._anchorPos;\n }\n getRule(grammar) {\n return grammar.getRule(this.ruleId);\n }\n toString() {\n const r = [];\n this._writeString(r, 0);\n return \"[\" + r.join(\",\") + \"]\";\n }\n _writeString(res, outIndex) {\n if (this.parent) {\n outIndex = this.parent._writeString(res, outIndex);\n }\n res[outIndex++] = `(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`;\n return outIndex;\n }\n withContentNameScopesList(contentNameScopeStack) {\n if (this.contentNameScopesList === contentNameScopeStack) {\n return this;\n }\n return this.parent.push(this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, this.endRule, this.nameScopesList, contentNameScopeStack);\n }\n withEndRule(endRule) {\n if (this.endRule === endRule) {\n return this;\n }\n return new StateStackImpl(this.parent, this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, endRule, this.nameScopesList, this.contentNameScopesList);\n }\n // Used to warn of endless loops\n hasSameRuleAs(other) {\n let el = this;\n while (el && el._enterPos === other._enterPos) {\n if (el.ruleId === other.ruleId) {\n return true;\n }\n el = el.parent;\n }\n return false;\n }\n toStateStackFrame() {\n return {\n ruleId: ruleIdToNumber(this.ruleId),\n beginRuleCapturedEOL: this.beginRuleCapturedEOL,\n endRule: this.endRule,\n nameScopesList: this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList ?? null) ?? [],\n contentNameScopesList: this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList) ?? [],\n };\n }\n static pushFrame(self, frame) {\n const namesScopeList = AttributedScopeStack.fromExtension(self?.nameScopesList ?? null, frame.nameScopesList);\n return new StateStackImpl(self, ruleIdFromNumber(frame.ruleId), frame.enterPos ?? -1, frame.anchorPos ?? -1, frame.beginRuleCapturedEOL, frame.endRule, namesScopeList, AttributedScopeStack.fromExtension(namesScopeList, frame.contentNameScopesList));\n }\n}\nclass BalancedBracketSelectors {\n balancedBracketScopes;\n unbalancedBracketScopes;\n allowAny = false;\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.balancedBracketScopes = balancedBracketScopes.flatMap((selector) => {\n if (selector === '*') {\n this.allowAny = true;\n return [];\n }\n return createMatchers(selector, nameMatcher).map((m) => m.matcher);\n });\n this.unbalancedBracketScopes = unbalancedBracketScopes.flatMap((selector) => createMatchers(selector, nameMatcher).map((m) => m.matcher));\n }\n get matchesAlways() {\n return this.allowAny && this.unbalancedBracketScopes.length === 0;\n }\n get matchesNever() {\n return this.balancedBracketScopes.length === 0 && !this.allowAny;\n }\n match(scopes) {\n for (const excluder of this.unbalancedBracketScopes) {\n if (excluder(scopes)) {\n return false;\n }\n }\n for (const includer of this.balancedBracketScopes) {\n if (includer(scopes)) {\n return true;\n }\n }\n return this.allowAny;\n }\n}\nclass LineTokens {\n balancedBracketSelectors;\n _emitBinaryTokens;\n /**\n * defined only if `false`.\n */\n _lineText;\n /**\n * used only if `_emitBinaryTokens` is false.\n */\n _tokens;\n /**\n * used only if `_emitBinaryTokens` is true.\n */\n _binaryTokens;\n _lastTokenEndIndex;\n _tokenTypeOverrides;\n constructor(emitBinaryTokens, lineText, tokenTypeOverrides, balancedBracketSelectors) {\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._emitBinaryTokens = emitBinaryTokens;\n this._tokenTypeOverrides = tokenTypeOverrides;\n {\n this._lineText = null;\n }\n this._tokens = [];\n this._binaryTokens = [];\n this._lastTokenEndIndex = 0;\n }\n produce(stack, endIndex) {\n this.produceFromScopes(stack.contentNameScopesList, endIndex);\n }\n produceFromScopes(scopesList, endIndex) {\n if (this._lastTokenEndIndex >= endIndex) {\n return;\n }\n if (this._emitBinaryTokens) {\n let metadata = scopesList?.tokenAttributes ?? 0;\n let containsBalancedBrackets = false;\n if (this.balancedBracketSelectors?.matchesAlways) {\n containsBalancedBrackets = true;\n }\n if (this._tokenTypeOverrides.length > 0 || (this.balancedBracketSelectors && !this.balancedBracketSelectors.matchesAlways && !this.balancedBracketSelectors.matchesNever)) {\n // Only generate scope array when required to improve performance\n const scopes = scopesList?.getScopeNames() ?? [];\n for (const tokenType of this._tokenTypeOverrides) {\n if (tokenType.matcher(scopes)) {\n metadata = EncodedTokenAttributes.set(metadata, 0, toOptionalTokenType(tokenType.type), null, -1 /* FontStyle.NotSet */, 0, 0);\n }\n }\n if (this.balancedBracketSelectors) {\n containsBalancedBrackets = this.balancedBracketSelectors.match(scopes);\n }\n }\n if (containsBalancedBrackets) {\n metadata = EncodedTokenAttributes.set(metadata, 0, 8 /* OptionalStandardTokenType.NotSet */, containsBalancedBrackets, -1 /* FontStyle.NotSet */, 0, 0);\n }\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === metadata) {\n // no need to push a token with the same metadata\n this._lastTokenEndIndex = endIndex;\n return;\n }\n this._binaryTokens.push(this._lastTokenEndIndex);\n this._binaryTokens.push(metadata);\n this._lastTokenEndIndex = endIndex;\n return;\n }\n const scopes = scopesList?.getScopeNames() ?? [];\n this._tokens.push({\n startIndex: this._lastTokenEndIndex,\n endIndex: endIndex,\n // value: lineText.substring(lastTokenEndIndex, endIndex),\n scopes: scopes\n });\n this._lastTokenEndIndex = endIndex;\n }\n getResult(stack, lineLength) {\n if (this._tokens.length > 0 && this._tokens[this._tokens.length - 1].startIndex === lineLength - 1) {\n // pop produced token for newline\n this._tokens.pop();\n }\n if (this._tokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._tokens[this._tokens.length - 1].startIndex = 0;\n }\n return this._tokens;\n }\n getBinaryResult(stack, lineLength) {\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 2] === lineLength - 1) {\n // pop produced token for newline\n this._binaryTokens.pop();\n this._binaryTokens.pop();\n }\n if (this._binaryTokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._binaryTokens[this._binaryTokens.length - 2] = 0;\n }\n const result = new Uint32Array(this._binaryTokens.length);\n for (let i = 0, len = this._binaryTokens.length; i < len; i++) {\n result[i] = this._binaryTokens[i];\n }\n return result;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass SyncRegistry {\n _onigLibPromise;\n _grammars = new Map();\n _rawGrammars = new Map();\n _injectionGrammars = new Map();\n _theme;\n constructor(theme, _onigLibPromise) {\n this._onigLibPromise = _onigLibPromise;\n this._theme = theme;\n }\n dispose() {\n for (const grammar of this._grammars.values()) {\n grammar.dispose();\n }\n }\n setTheme(theme) {\n this._theme = theme;\n }\n getColorMap() {\n return this._theme.getColorMap();\n }\n /**\n * Add `grammar` to registry and return a list of referenced scope names\n */\n addGrammar(grammar, injectionScopeNames) {\n this._rawGrammars.set(grammar.scopeName, grammar);\n if (injectionScopeNames) {\n this._injectionGrammars.set(grammar.scopeName, injectionScopeNames);\n }\n }\n /**\n * Lookup a raw grammar.\n */\n lookup(scopeName) {\n return this._rawGrammars.get(scopeName);\n }\n /**\n * Returns the injections for the given grammar\n */\n injections(targetScope) {\n return this._injectionGrammars.get(targetScope);\n }\n /**\n * Get the default theme settings\n */\n getDefaults() {\n return this._theme.getDefaults();\n }\n /**\n * Match a scope in the theme.\n */\n themeMatch(scopePath) {\n return this._theme.match(scopePath);\n }\n /**\n * Lookup a grammar.\n */\n async grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n if (!this._grammars.has(scopeName)) {\n let rawGrammar = this._rawGrammars.get(scopeName);\n if (!rawGrammar) {\n return null;\n }\n this._grammars.set(scopeName, createGrammar(scopeName, rawGrammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, this, await this._onigLibPromise));\n }\n return this._grammars.get(scopeName);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n/**\n * The registry that will hold all grammars.\n */\nlet Registry$1 = class Registry {\n _options;\n _syncRegistry;\n _ensureGrammarCache;\n constructor(options) {\n this._options = options;\n this._syncRegistry = new SyncRegistry(Theme.createFromRawTheme(options.theme, options.colorMap), options.onigLib);\n this._ensureGrammarCache = new Map();\n }\n dispose() {\n this._syncRegistry.dispose();\n }\n /**\n * Change the theme. Once called, no previous `ruleStack` should be used anymore.\n */\n setTheme(theme, colorMap) {\n this._syncRegistry.setTheme(Theme.createFromRawTheme(theme, colorMap));\n }\n /**\n * Returns a lookup array for color ids.\n */\n getColorMap() {\n return this._syncRegistry.getColorMap();\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithEmbeddedLanguages(initialScopeName, initialLanguage, embeddedLanguages) {\n return this.loadGrammarWithConfiguration(initialScopeName, initialLanguage, { embeddedLanguages });\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithConfiguration(initialScopeName, initialLanguage, configuration) {\n return this._loadGrammar(initialScopeName, initialLanguage, configuration.embeddedLanguages, configuration.tokenTypes, new BalancedBracketSelectors(configuration.balancedBracketSelectors || [], configuration.unbalancedBracketSelectors || []));\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n */\n loadGrammar(initialScopeName) {\n return this._loadGrammar(initialScopeName, 0, null, null, null);\n }\n async _loadGrammar(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n const dependencyProcessor = new ScopeDependencyProcessor(this._syncRegistry, initialScopeName);\n while (dependencyProcessor.Q.length > 0) {\n await Promise.all(dependencyProcessor.Q.map((request) => this._loadSingleGrammar(request.scopeName)));\n dependencyProcessor.processQueue();\n }\n return this._grammarForScopeName(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors);\n }\n async _loadSingleGrammar(scopeName) {\n if (!this._ensureGrammarCache.has(scopeName)) {\n this._ensureGrammarCache.set(scopeName, this._doLoadSingleGrammar(scopeName));\n }\n return this._ensureGrammarCache.get(scopeName);\n }\n async _doLoadSingleGrammar(scopeName) {\n const grammar = await this._options.loadGrammar(scopeName);\n if (grammar) {\n const injections = typeof this._options.getInjections === \"function\" ? this._options.getInjections(scopeName) : undefined;\n this._syncRegistry.addGrammar(grammar, injections);\n }\n }\n /**\n * Adds a rawGrammar.\n */\n async addGrammar(rawGrammar, injections = [], initialLanguage = 0, embeddedLanguages = null) {\n this._syncRegistry.addGrammar(rawGrammar, injections);\n return (await this._grammarForScopeName(rawGrammar.scopeName, initialLanguage, embeddedLanguages));\n }\n /**\n * Get the grammar for `scopeName`. The grammar must first be created via `loadGrammar` or `addGrammar`.\n */\n _grammarForScopeName(scopeName, initialLanguage = 0, embeddedLanguages = null, tokenTypes = null, balancedBracketSelectors = null) {\n return this._syncRegistry.grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors);\n }\n};\nconst INITIAL = StateStackImpl.NULL;\n\n/**\n * Helpers to manage the \"collapsed\" metadata of an entire StackElement stack.\n * The following assumptions have been made:\n * - languageId < 256 => needs 8 bits\n * - unique color count < 512 => needs 9 bits\n *\n * The binary format is:\n * - -------------------------------------------\n * 3322 2222 2222 1111 1111 1100 0000 0000\n * 1098 7654 3210 9876 5432 1098 7654 3210\n * - -------------------------------------------\n * xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx\n * bbbb bbbb bfff ffff ffFF FTTT LLLL LLLL\n * - -------------------------------------------\n * - L = LanguageId (8 bits)\n * - T = StandardTokenType (3 bits)\n * - F = FontStyle (3 bits)\n * - f = foreground color (9 bits)\n * - b = background color (9 bits)\n */\nconst MetadataConsts = {\n LANGUAGEID_MASK: 0b00000000000000000000000011111111,\n TOKEN_TYPE_MASK: 0b00000000000000000000001100000000,\n BALANCED_BRACKETS_MASK: 0b00000000000000000000010000000000,\n FONT_STYLE_MASK: 0b00000000000000000011100000000000,\n FOREGROUND_MASK: 0b00000000011111111100000000000000,\n BACKGROUND_MASK: 0b11111111100000000000000000000000,\n LANGUAGEID_OFFSET: 0,\n TOKEN_TYPE_OFFSET: 8,\n BALANCED_BRACKETS_OFFSET: 10,\n FONT_STYLE_OFFSET: 11,\n FOREGROUND_OFFSET: 15,\n BACKGROUND_OFFSET: 24,\n};\nclass StackElementMetadata {\n static toBinaryStr(metadata) {\n let r = metadata.toString(2);\n while (r.length < 32)\n r = `0${r}`;\n return r;\n }\n // public static printMetadata(metadata: number): void {\n // const languageId = StackElementMetadata.getLanguageId(metadata)\n // const tokenType = StackElementMetadata.getTokenType(metadata)\n // const fontStyle = StackElementMetadata.getFontStyle(metadata)\n // const foreground = StackElementMetadata.getForeground(metadata)\n // const background = StackElementMetadata.getBackground(metadata)\n // console.log({\n // languageId,\n // tokenType,\n // fontStyle,\n // foreground,\n // background,\n // })\n // }\n static getLanguageId(metadata) {\n return (metadata & MetadataConsts.LANGUAGEID_MASK) >>> MetadataConsts.LANGUAGEID_OFFSET;\n }\n static getTokenType(metadata) {\n return (metadata & MetadataConsts.TOKEN_TYPE_MASK) >>> MetadataConsts.TOKEN_TYPE_OFFSET;\n }\n static getFontStyle(metadata) {\n return (metadata & MetadataConsts.FONT_STYLE_MASK) >>> MetadataConsts.FONT_STYLE_OFFSET;\n }\n static getForeground(metadata) {\n return (metadata & MetadataConsts.FOREGROUND_MASK) >>> MetadataConsts.FOREGROUND_OFFSET;\n }\n static getBackground(metadata) {\n return (metadata & MetadataConsts.BACKGROUND_MASK) >>> MetadataConsts.BACKGROUND_OFFSET;\n }\n static containsBalancedBrackets(metadata) {\n return (metadata & MetadataConsts.BALANCED_BRACKETS_MASK) !== 0;\n }\n static set(metadata, languageId, tokenType, fontStyle, foreground, background) {\n let _languageId = StackElementMetadata.getLanguageId(metadata);\n let _tokenType = StackElementMetadata.getTokenType(metadata);\n let _fontStyle = StackElementMetadata.getFontStyle(metadata);\n let _foreground = StackElementMetadata.getForeground(metadata);\n let _background = StackElementMetadata.getBackground(metadata);\n const _containsBalancedBracketsBit = StackElementMetadata.containsBalancedBrackets(metadata)\n ? 1\n : 0;\n if (languageId !== 0)\n _languageId = languageId;\n if (tokenType !== 0 /* TemporaryStandardTokenType.Other */) {\n _tokenType\n = tokenType === 8 /* TemporaryStandardTokenType.MetaEmbedded */ ? 0 /* StandardTokenType.Other */ : tokenType;\n }\n if (fontStyle !== FontStyle.NotSet)\n _fontStyle = fontStyle;\n if (foreground !== 0)\n _foreground = foreground;\n if (background !== 0)\n _background = background;\n return (((_languageId << MetadataConsts.LANGUAGEID_OFFSET)\n | (_tokenType << MetadataConsts.TOKEN_TYPE_OFFSET)\n | (_fontStyle << MetadataConsts.FONT_STYLE_OFFSET)\n | (_containsBalancedBracketsBit << MetadataConsts.BALANCED_BRACKETS_OFFSET)\n | (_foreground << MetadataConsts.FOREGROUND_OFFSET)\n | (_background << MetadataConsts.BACKGROUND_OFFSET))\n >>> 0);\n }\n}\n\nexport { INITIAL, Registry$1 as Registry, StackElementMetadata, Theme };\n","import { INITIAL, StackElementMetadata, Registry as Registry$1, Theme } from './textmate.mjs';\nimport { FontStyle } from './types.mjs';\n\nfunction toArray(x) {\n return Array.isArray(x) ? x : [x];\n}\n/**\n * Split a string into lines, each line preserves the line ending.\n */\nfunction splitLines(code, preserveEnding = false) {\n const parts = code.split(/(\\r?\\n)/g);\n let index = 0;\n const lines = [];\n for (let i = 0; i < parts.length; i += 2) {\n const line = preserveEnding\n ? parts[i] + (parts[i + 1] || '')\n : parts[i];\n lines.push([line, index]);\n index += parts[i].length;\n index += parts[i + 1]?.length || 0;\n }\n return lines;\n}\n/**\n * Check if the language is plaintext that is ignored by Shiki.\n *\n * Hard-coded plain text languages: `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isPlainLang(lang) {\n return !lang || ['plaintext', 'txt', 'text', 'plain'].includes(lang);\n}\n/**\n * Check if the language is specially handled or bypassed by Shiki.\n *\n * Hard-coded languages: `ansi` and plaintexts like `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isSpecialLang(lang) {\n return lang === 'ansi' || isPlainLang(lang);\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isNoneTheme(theme) {\n return theme === 'none';\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isSpecialTheme(theme) {\n return isNoneTheme(theme);\n}\n/**\n * Utility to append class to a hast node\n *\n * If the `property.class` is a string, it will be splitted by space and converted to an array.\n */\nfunction addClassToHast(node, className) {\n if (!className)\n return node;\n node.properties ||= {};\n node.properties.class ||= [];\n if (typeof node.properties.class === 'string')\n node.properties.class = node.properties.class.split(/\\s+/g);\n if (!Array.isArray(node.properties.class))\n node.properties.class = [];\n const targets = Array.isArray(className) ? className : className.split(/\\s+/g);\n for (const c of targets) {\n if (c && !node.properties.class.includes(c))\n node.properties.class.push(c);\n }\n return node;\n}\n/**\n * Split a token into multiple tokens by given offsets.\n *\n * The offsets are relative to the token, and should be sorted.\n */\nfunction splitToken(token, offsets) {\n let lastOffset = 0;\n const tokens = [];\n for (const offset of offsets) {\n if (offset > lastOffset) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset, offset),\n offset: token.offset + lastOffset,\n });\n }\n lastOffset = offset;\n }\n if (lastOffset < token.content.length) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset),\n offset: token.offset + lastOffset,\n });\n }\n return tokens;\n}\n/**\n * Split 2D tokens array by given breakpoints.\n */\nfunction splitTokens(tokens, breakpoints) {\n const sorted = Array.from(breakpoints instanceof Set ? breakpoints : new Set(breakpoints))\n .sort((a, b) => a - b);\n if (!sorted.length)\n return tokens;\n return tokens.map((line) => {\n return line.flatMap((token) => {\n const breakpointsInToken = sorted\n .filter(i => token.offset < i && i < token.offset + token.content.length)\n .map(i => i - token.offset)\n .sort((a, b) => a - b);\n if (!breakpointsInToken.length)\n return token;\n return splitToken(token, breakpointsInToken);\n });\n });\n}\nfunction resolveColorReplacements(theme, options) {\n const replacements = typeof theme === 'string' ? {} : { ...theme.colorReplacements };\n const themeName = typeof theme === 'string' ? theme : theme.name;\n for (const [key, value] of Object.entries(options?.colorReplacements || {})) {\n if (typeof value === 'string')\n replacements[key] = value;\n else if (key === themeName)\n Object.assign(replacements, value);\n }\n return replacements;\n}\nfunction applyColorReplacements(color, replacements) {\n if (!color)\n return color;\n return replacements?.[color?.toLowerCase()] || color;\n}\nfunction getTokenStyleObject(token) {\n const styles = {};\n if (token.color)\n styles.color = token.color;\n if (token.bgColor)\n styles['background-color'] = token.bgColor;\n if (token.fontStyle) {\n if (token.fontStyle & FontStyle.Italic)\n styles['font-style'] = 'italic';\n if (token.fontStyle & FontStyle.Bold)\n styles['font-weight'] = 'bold';\n if (token.fontStyle & FontStyle.Underline)\n styles['text-decoration'] = 'underline';\n }\n return styles;\n}\nfunction stringifyTokenStyle(token) {\n return Object.entries(token).map(([key, value]) => `${key}:${value}`).join(';');\n}\n/**\n * Creates a converter between index and position in a code block.\n *\n * Overflow/underflow are unchecked.\n */\nfunction createPositionConverter(code) {\n const lines = splitLines(code, true).map(([line]) => line);\n function indexToPos(index) {\n if (index === code.length) {\n return {\n line: lines.length - 1,\n character: lines[lines.length - 1].length,\n };\n }\n let character = index;\n let line = 0;\n for (const lineText of lines) {\n if (character < lineText.length)\n break;\n character -= lineText.length;\n line++;\n }\n return { line, character };\n }\n function posToIndex(line, character) {\n let index = 0;\n for (let i = 0; i < line; i++)\n index += lines[i].length;\n index += character;\n return index;\n }\n return {\n lines,\n indexToPos,\n posToIndex,\n };\n}\n\n// src/colors.ts\nvar namedColors = [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"brightBlack\",\n \"brightRed\",\n \"brightGreen\",\n \"brightYellow\",\n \"brightBlue\",\n \"brightMagenta\",\n \"brightCyan\",\n \"brightWhite\"\n];\n\n// src/decorations.ts\nvar decorations = {\n 1: \"bold\",\n 2: \"dim\",\n 3: \"italic\",\n 4: \"underline\",\n 7: \"reverse\",\n 9: \"strikethrough\"\n};\n\n// src/parser.ts\nfunction findSequence(value, position) {\n const nextEscape = value.indexOf(\"\\x1B[\", position);\n if (nextEscape !== -1) {\n const nextClose = value.indexOf(\"m\", nextEscape);\n return {\n sequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n startPosition: nextEscape,\n position: nextClose + 1\n };\n }\n return {\n position: value.length\n };\n}\nfunction parseColor(sequence, index) {\n let offset = 1;\n const colorMode = sequence[index + offset++];\n let color;\n if (colorMode === \"2\") {\n const rgb = [\n sequence[index + offset++],\n sequence[index + offset++],\n sequence[index + offset]\n ].map((x) => Number.parseInt(x));\n if (rgb.length === 3 && !rgb.some((x) => Number.isNaN(x))) {\n color = {\n type: \"rgb\",\n rgb\n };\n }\n } else if (colorMode === \"5\") {\n const colorIndex = Number.parseInt(sequence[index + offset]);\n if (!Number.isNaN(colorIndex)) {\n color = { type: \"table\", index: Number(colorIndex) };\n }\n }\n return [offset, color];\n}\nfunction parseSequence(sequence) {\n const commands = [];\n for (let i = 0; i < sequence.length; i++) {\n const code = sequence[i];\n const codeInt = Number.parseInt(code);\n if (Number.isNaN(codeInt))\n continue;\n if (codeInt === 0) {\n commands.push({ type: \"resetAll\" });\n } else if (codeInt <= 9) {\n const decoration = decorations[codeInt];\n if (decoration) {\n commands.push({\n type: \"setDecoration\",\n value: decorations[codeInt]\n });\n }\n } else if (codeInt <= 29) {\n const decoration = decorations[codeInt - 20];\n if (decoration) {\n commands.push({\n type: \"resetDecoration\",\n value: decoration\n });\n }\n } else if (codeInt <= 37) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 30] }\n });\n } else if (codeInt === 38) {\n const [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setForegroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 39) {\n commands.push({\n type: \"resetForegroundColor\"\n });\n } else if (codeInt <= 47) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 40] }\n });\n } else if (codeInt === 48) {\n const [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setBackgroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 49) {\n commands.push({\n type: \"resetBackgroundColor\"\n });\n } else if (codeInt >= 90 && codeInt <= 97) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 90 + 8] }\n });\n } else if (codeInt >= 100 && codeInt <= 107) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 100 + 8] }\n });\n }\n }\n return commands;\n}\nfunction createAnsiSequenceParser() {\n let foreground = null;\n let background = null;\n let decorations2 = /* @__PURE__ */ new Set();\n return {\n parse(value) {\n const tokens = [];\n let position = 0;\n do {\n const findResult = findSequence(value, position);\n const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position);\n if (text.length > 0) {\n tokens.push({\n value: text,\n foreground,\n background,\n decorations: new Set(decorations2)\n });\n }\n if (findResult.sequence) {\n const commands = parseSequence(findResult.sequence);\n for (const styleToken of commands) {\n if (styleToken.type === \"resetAll\") {\n foreground = null;\n background = null;\n decorations2.clear();\n } else if (styleToken.type === \"resetForegroundColor\") {\n foreground = null;\n } else if (styleToken.type === \"resetBackgroundColor\") {\n background = null;\n } else if (styleToken.type === \"resetDecoration\") {\n decorations2.delete(styleToken.value);\n }\n }\n for (const styleToken of commands) {\n if (styleToken.type === \"setForegroundColor\") {\n foreground = styleToken.value;\n } else if (styleToken.type === \"setBackgroundColor\") {\n background = styleToken.value;\n } else if (styleToken.type === \"setDecoration\") {\n decorations2.add(styleToken.value);\n }\n }\n }\n position = findResult.position;\n } while (position < value.length);\n return tokens;\n }\n };\n}\n\n// src/palette.ts\nvar defaultNamedColorsMap = {\n black: \"#000000\",\n red: \"#bb0000\",\n green: \"#00bb00\",\n yellow: \"#bbbb00\",\n blue: \"#0000bb\",\n magenta: \"#ff00ff\",\n cyan: \"#00bbbb\",\n white: \"#eeeeee\",\n brightBlack: \"#555555\",\n brightRed: \"#ff5555\",\n brightGreen: \"#00ff00\",\n brightYellow: \"#ffff55\",\n brightBlue: \"#5555ff\",\n brightMagenta: \"#ff55ff\",\n brightCyan: \"#55ffff\",\n brightWhite: \"#ffffff\"\n};\nfunction createColorPalette(namedColorsMap = defaultNamedColorsMap) {\n function namedColor(name) {\n return namedColorsMap[name];\n }\n function rgbColor(rgb) {\n return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, \"0\")).join(\"\")}`;\n }\n let colorTable;\n function getColorTable() {\n if (colorTable) {\n return colorTable;\n }\n colorTable = [];\n for (let i = 0; i < namedColors.length; i++) {\n colorTable.push(namedColor(namedColors[i]));\n }\n let levels = [0, 95, 135, 175, 215, 255];\n for (let r = 0; r < 6; r++) {\n for (let g = 0; g < 6; g++) {\n for (let b = 0; b < 6; b++) {\n colorTable.push(rgbColor([levels[r], levels[g], levels[b]]));\n }\n }\n }\n let level = 8;\n for (let i = 0; i < 24; i++, level += 10) {\n colorTable.push(rgbColor([level, level, level]));\n }\n return colorTable;\n }\n function tableColor(index) {\n return getColorTable()[index];\n }\n function value(color) {\n switch (color.type) {\n case \"named\":\n return namedColor(color.name);\n case \"rgb\":\n return rgbColor(color.rgb);\n case \"table\":\n return tableColor(color.index);\n }\n }\n return {\n value\n };\n}\n\nfunction tokenizeAnsiWithTheme(theme, fileContents, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const lines = splitLines(fileContents);\n const colorPalette = createColorPalette(Object.fromEntries(namedColors.map(name => [\n name,\n theme.colors?.[`terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`],\n ])));\n const parser = createAnsiSequenceParser();\n return lines.map(line => parser.parse(line[0]).map((token) => {\n let color;\n let bgColor;\n if (token.decorations.has('reverse')) {\n color = token.background ? colorPalette.value(token.background) : theme.bg;\n bgColor = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n }\n else {\n color = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n bgColor = token.background ? colorPalette.value(token.background) : undefined;\n }\n color = applyColorReplacements(color, colorReplacements);\n bgColor = applyColorReplacements(bgColor, colorReplacements);\n if (token.decorations.has('dim'))\n color = dimColor(color);\n let fontStyle = FontStyle.None;\n if (token.decorations.has('bold'))\n fontStyle |= FontStyle.Bold;\n if (token.decorations.has('italic'))\n fontStyle |= FontStyle.Italic;\n if (token.decorations.has('underline'))\n fontStyle |= FontStyle.Underline;\n return {\n content: token.value,\n offset: line[1], // TODO: more accurate offset? might need to fork ansi-sequence-parser\n color,\n bgColor,\n fontStyle,\n };\n }));\n}\n/**\n * Adds 50% alpha to a hex color string or the \"-dim\" postfix to a CSS variable\n */\nfunction dimColor(color) {\n const hexMatch = color.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);\n if (hexMatch) {\n if (hexMatch[3]) {\n // convert from #rrggbbaa to #rrggbb(aa/2)\n const alpha = Math.round(Number.parseInt(hexMatch[3], 16) / 2)\n .toString(16)\n .padStart(2, '0');\n return `#${hexMatch[1]}${hexMatch[2]}${alpha}`;\n }\n else if (hexMatch[2]) {\n // convert from #rrggbb to #rrggbb80\n return `#${hexMatch[1]}${hexMatch[2]}80`;\n }\n else {\n // convert from #rgb to #rrggbb80\n return `#${Array.from(hexMatch[1])\n .map(x => `${x}${x}`)\n .join('')}80`;\n }\n }\n const cssVarMatch = color.match(/var\\((--[\\w-]+-ansi-[\\w-]+)\\)/);\n if (cssVarMatch)\n return `var(${cssVarMatch[1]}-dim)`;\n return color;\n}\n\nclass ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = 'ShikiError';\n }\n}\n\n/**\n * GrammarState is a special reference object that holds the state of a grammar.\n *\n * It's used to highlight code snippets that are part of the target language.\n */\nclass GrammarState {\n _stack;\n lang;\n theme;\n /**\n * Static method to create a initial grammar state.\n */\n static initial(lang, theme) {\n return new GrammarState(INITIAL, lang, theme);\n }\n constructor(_stack, lang, theme) {\n this._stack = _stack;\n this.lang = lang;\n this.theme = theme;\n }\n get scopes() {\n return getScopes(this._stack);\n }\n toJSON() {\n return {\n lang: this.lang,\n theme: this.theme,\n scopes: this.scopes,\n };\n }\n}\nfunction getScopes(stack) {\n const scopes = [];\n const visited = new Set();\n function pushScope(stack) {\n if (visited.has(stack))\n return;\n visited.add(stack);\n const name = stack?.nameScopesList?.scopeName;\n if (name)\n scopes.push(name);\n if (stack.parent)\n pushScope(stack.parent);\n }\n pushScope(stack);\n return scopes;\n}\nfunction getGrammarStack(state) {\n if (!(state instanceof GrammarState))\n throw new ShikiError('Invalid grammar state');\n // @ts-expect-error _stack is private\n return state._stack;\n}\n\n/**\n * Code to tokens, with a simple theme.\n */\nfunction codeToTokensBase(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n return splitLines(code).map(line => [{ content: line[0], offset: line[1] }]);\n const { theme, colorMap } = internal.setTheme(themeName);\n if (lang === 'ansi')\n return tokenizeAnsiWithTheme(theme, code, options);\n const _grammar = internal.getLanguage(lang);\n if (options.grammarState) {\n if (options.grammarState.lang !== _grammar.name) {\n throw new ShikiError(`Grammar state language \"${options.grammarState.lang}\" does not match highlight language \"${_grammar.name}\"`);\n }\n if (options.grammarState.theme !== themeName) {\n throw new ShikiError(`Grammar state theme \"${options.grammarState.theme}\" does not match highlight theme \"${themeName}\"`);\n }\n }\n return tokenizeWithTheme(code, _grammar, theme, colorMap, options);\n}\nfunction getLastGrammarState(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n throw new ShikiError('Plain language does not have grammar state');\n if (lang === 'ansi')\n throw new ShikiError('ANSI language does not have grammar state');\n const { theme, colorMap } = internal.setTheme(themeName);\n const _grammar = internal.getLanguage(lang);\n return new GrammarState(_tokenizeWithTheme(code, _grammar, theme, colorMap, options).stateStack, _grammar.name, theme.name);\n}\nfunction tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n return _tokenizeWithTheme(code, grammar, theme, colorMap, options).tokens;\n}\nfunction _tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const { tokenizeMaxLineLength = 0, tokenizeTimeLimit = 500, } = options;\n const lines = splitLines(code);\n let stateStack = options.grammarState\n ? getGrammarStack(options.grammarState)\n : options.grammarContextCode != null\n ? _tokenizeWithTheme(options.grammarContextCode, grammar, theme, colorMap, {\n ...options,\n grammarState: undefined,\n grammarContextCode: undefined,\n }).stateStack\n : INITIAL;\n let actual = [];\n const final = [];\n const themeSettingsSelectors = [];\n if (options.includeExplanation) {\n for (const setting of theme.settings) {\n let selectors;\n switch (typeof setting.scope) {\n case 'string':\n selectors = setting.scope.split(/,/).map(scope => scope.trim());\n break;\n case 'object':\n selectors = setting.scope;\n break;\n default:\n continue;\n }\n themeSettingsSelectors.push({\n settings: setting,\n selectors: selectors.map(selector => selector.split(/ /)),\n });\n }\n }\n for (let i = 0, len = lines.length; i < len; i++) {\n const [line, lineOffset] = lines[i];\n if (line === '') {\n actual = [];\n final.push([]);\n continue;\n }\n // Do not attempt to tokenize if the line length is longer than the `tokenizationMaxLineLength`\n if (tokenizeMaxLineLength > 0 && line.length >= tokenizeMaxLineLength) {\n actual = [];\n final.push([{\n content: line,\n offset: lineOffset,\n color: '',\n fontStyle: 0,\n }]);\n continue;\n }\n let resultWithScopes;\n let tokensWithScopes;\n let tokensWithScopesIndex;\n if (options.includeExplanation) {\n resultWithScopes = grammar.tokenizeLine(line, stateStack);\n tokensWithScopes = resultWithScopes.tokens;\n tokensWithScopesIndex = 0;\n }\n const result = grammar.tokenizeLine2(line, stateStack, tokenizeTimeLimit);\n const tokensLength = result.tokens.length / 2;\n for (let j = 0; j < tokensLength; j++) {\n const startIndex = result.tokens[2 * j];\n const nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length;\n if (startIndex === nextStartIndex)\n continue;\n const metadata = result.tokens[2 * j + 1];\n const color = applyColorReplacements(colorMap[StackElementMetadata.getForeground(metadata)], colorReplacements);\n const fontStyle = StackElementMetadata.getFontStyle(metadata);\n const token = {\n content: line.substring(startIndex, nextStartIndex),\n offset: lineOffset + startIndex,\n color,\n fontStyle,\n };\n if (options.includeExplanation) {\n token.explanation = [];\n let offset = 0;\n while (startIndex + offset < nextStartIndex) {\n const tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];\n const tokenWithScopesText = line.substring(tokenWithScopes.startIndex, tokenWithScopes.endIndex);\n offset += tokenWithScopesText.length;\n token.explanation.push({\n content: tokenWithScopesText,\n scopes: explainThemeScopes(themeSettingsSelectors, tokenWithScopes.scopes),\n });\n tokensWithScopesIndex += 1;\n }\n }\n actual.push(token);\n }\n final.push(actual);\n actual = [];\n stateStack = result.ruleStack;\n }\n return {\n tokens: final,\n stateStack,\n };\n}\nfunction explainThemeScopes(themeSelectors, scopes) {\n const result = [];\n for (let i = 0, len = scopes.length; i < len; i++) {\n const parentScopes = scopes.slice(0, i);\n const scope = scopes[i];\n result[i] = {\n scopeName: scope,\n themeMatches: explainThemeScope(themeSelectors, scope, parentScopes),\n };\n }\n return result;\n}\nfunction matchesOne(selector, scope) {\n return selector === scope\n || (scope.substring(0, selector.length) === selector && scope[selector.length] === '.');\n}\nfunction matches(selectors, scope, parentScopes) {\n if (!matchesOne(selectors[selectors.length - 1], scope))\n return false;\n let selectorParentIndex = selectors.length - 2;\n let parentIndex = parentScopes.length - 1;\n while (selectorParentIndex >= 0 && parentIndex >= 0) {\n if (matchesOne(selectors[selectorParentIndex], parentScopes[parentIndex]))\n selectorParentIndex -= 1;\n parentIndex -= 1;\n }\n if (selectorParentIndex === -1)\n return true;\n return false;\n}\nfunction explainThemeScope(themeSettingsSelectors, scope, parentScopes) {\n const result = [];\n for (const { selectors, settings } of themeSettingsSelectors) {\n for (const selectorPieces of selectors) {\n if (matches(selectorPieces, scope, parentScopes)) {\n result.push(settings);\n break; // continue to the next theme settings\n }\n }\n }\n return result;\n}\n\n/**\n * Get tokens with multiple themes\n */\nfunction codeToTokensWithThemes(internal, code, options) {\n const themes = Object.entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }));\n const tokens = syncThemesTokenization(...themes.map(t => codeToTokensBase(internal, code, {\n ...options,\n theme: t.theme,\n })));\n const mergedTokens = tokens[0]\n .map((line, lineIdx) => line\n .map((_token, tokenIdx) => {\n const mergedToken = {\n content: _token.content,\n variants: {},\n offset: _token.offset,\n };\n if ('includeExplanation' in options && options.includeExplanation) {\n mergedToken.explanation = _token.explanation;\n }\n tokens.forEach((t, themeIdx) => {\n const { content: _, explanation: __, offset: ___, ...styles } = t[lineIdx][tokenIdx];\n mergedToken.variants[themes[themeIdx].color] = styles;\n });\n return mergedToken;\n }));\n return mergedTokens;\n}\n/**\n * Break tokens from multiple themes into same tokenization.\n *\n * For example, given two themes that tokenize `console.log(\"hello\")` as:\n *\n * - `console . log (\" hello \")` (6 tokens)\n * - `console .log ( \"hello\" )` (5 tokens)\n *\n * This function will return:\n *\n * - `console . log ( \" hello \" )` (8 tokens)\n * - `console . log ( \" hello \" )` (8 tokens)\n */\nfunction syncThemesTokenization(...themes) {\n const outThemes = themes.map(() => []);\n const count = themes.length;\n for (let i = 0; i < themes[0].length; i++) {\n const lines = themes.map(t => t[i]);\n const outLines = outThemes.map(() => []);\n outThemes.forEach((t, i) => t.push(outLines[i]));\n const indexes = lines.map(() => 0);\n const current = lines.map(l => l[0]);\n while (current.every(t => t)) {\n const minLength = Math.min(...current.map(t => t.content.length));\n for (let n = 0; n < count; n++) {\n const token = current[n];\n if (token.content.length === minLength) {\n outLines[n].push(token);\n indexes[n] += 1;\n current[n] = lines[n][indexes[n]];\n }\n else {\n outLines[n].push({\n ...token,\n content: token.content.slice(0, minLength),\n });\n current[n] = {\n ...token,\n content: token.content.slice(minLength),\n offset: token.offset + minLength,\n };\n }\n }\n }\n }\n return outThemes;\n}\n\n/**\n * High-level code-to-tokens API.\n *\n * It will use `codeToTokensWithThemes` or `codeToTokensBase` based on the options.\n */\nfunction codeToTokens(internal, code, options) {\n let bg;\n let fg;\n let tokens;\n let themeName;\n let rootStyle;\n if ('themes' in options) {\n const { defaultColor = 'light', cssVariablePrefix = '--shiki-', } = options;\n const themes = Object.entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }))\n .sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);\n if (themes.length === 0)\n throw new ShikiError('`themes` option must not be empty');\n const themeTokens = codeToTokensWithThemes(internal, code, options);\n if (defaultColor && !themes.find(t => t.color === defaultColor))\n throw new ShikiError(`\\`themes\\` option must contain the defaultColor key \\`${defaultColor}\\``);\n const themeRegs = themes.map(t => internal.getTheme(t.theme));\n const themesOrder = themes.map(t => t.color);\n tokens = themeTokens\n .map(line => line.map(token => mergeToken(token, themesOrder, cssVariablePrefix, defaultColor)));\n const themeColorReplacements = themes.map(t => resolveColorReplacements(t.theme, options));\n fg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}:`) + (applyColorReplacements(themeRegs[idx].fg, themeColorReplacements[idx]) || 'inherit')).join(';');\n bg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}-bg:`) + (applyColorReplacements(themeRegs[idx].bg, themeColorReplacements[idx]) || 'inherit')).join(';');\n themeName = `shiki-themes ${themeRegs.map(t => t.name).join(' ')}`;\n rootStyle = defaultColor ? undefined : [fg, bg].join(';');\n }\n else if ('theme' in options) {\n const colorReplacements = resolveColorReplacements(options.theme, options);\n tokens = codeToTokensBase(internal, code, options);\n const _theme = internal.getTheme(options.theme);\n bg = applyColorReplacements(_theme.bg, colorReplacements);\n fg = applyColorReplacements(_theme.fg, colorReplacements);\n themeName = _theme.name;\n }\n else {\n throw new ShikiError('Invalid options, either `theme` or `themes` must be provided');\n }\n return {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n };\n}\nfunction mergeToken(merged, variantsOrder, cssVariablePrefix, defaultColor) {\n const token = {\n content: merged.content,\n explanation: merged.explanation,\n offset: merged.offset,\n };\n const styles = variantsOrder.map(t => getTokenStyleObject(merged.variants[t]));\n // Get all style keys, for themes that missing some style, we put `inherit` to override as needed\n const styleKeys = new Set(styles.flatMap(t => Object.keys(t)));\n const mergedStyles = styles.reduce((acc, cur, idx) => {\n for (const key of styleKeys) {\n const value = cur[key] || 'inherit';\n if (idx === 0 && defaultColor) {\n acc[key] = value;\n }\n else {\n const keyName = key === 'color' ? '' : key === 'background-color' ? '-bg' : `-${key}`;\n const varKey = cssVariablePrefix + variantsOrder[idx] + (key === 'color' ? '' : keyName);\n if (acc[key])\n acc[key] += `;${varKey}:${value}`;\n else\n acc[key] = `${varKey}:${value}`;\n }\n }\n return acc;\n }, {});\n token.htmlStyle = defaultColor\n ? stringifyTokenStyle(mergedStyles)\n : Object.values(mergedStyles).join(';');\n return token;\n}\n\n/**\n * A built-in transformer to add decorations to the highlighted code.\n */\nfunction transformerDecorations() {\n const map = new WeakMap();\n function getContext(shiki) {\n if (!map.has(shiki.meta)) {\n const converter = createPositionConverter(shiki.source);\n function normalizePosition(p) {\n if (typeof p === 'number') {\n if (p < 0 || p > shiki.source.length)\n throw new ShikiError(`Invalid decoration offset: ${p}. Code length: ${shiki.source.length}`);\n return {\n ...converter.indexToPos(p),\n offset: p,\n };\n }\n else {\n const line = converter.lines[p.line];\n if (line === undefined)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Lines length: ${converter.lines.length}`);\n if (p.character < 0 || p.character > line.length)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Line ${p.line} length: ${line.length}`);\n return {\n ...p,\n offset: converter.posToIndex(p.line, p.character),\n };\n }\n }\n const decorations = (shiki.options.decorations || [])\n .map((d) => ({\n ...d,\n start: normalizePosition(d.start),\n end: normalizePosition(d.end),\n }));\n verifyIntersections(decorations);\n map.set(shiki.meta, {\n decorations,\n converter,\n source: shiki.source,\n });\n }\n return map.get(shiki.meta);\n }\n function verifyIntersections(items) {\n for (let i = 0; i < items.length; i++) {\n const foo = items[i];\n if (foo.start.offset > foo.end.offset)\n throw new ShikiError(`Invalid decoration range: ${JSON.stringify(foo.start)} - ${JSON.stringify(foo.end)}`);\n for (let j = i + 1; j < items.length; j++) {\n const bar = items[j];\n const isFooHasBarStart = foo.start.offset < bar.start.offset && bar.start.offset < foo.end.offset;\n const isFooHasBarEnd = foo.start.offset < bar.end.offset && bar.end.offset < foo.end.offset;\n const isBarHasFooStart = bar.start.offset < foo.start.offset && foo.start.offset < bar.end.offset;\n const isBarHasFooEnd = bar.start.offset < foo.end.offset && foo.end.offset < bar.end.offset;\n if (isFooHasBarStart || isFooHasBarEnd || isBarHasFooStart || isBarHasFooEnd) {\n if (isFooHasBarEnd && isFooHasBarEnd)\n continue; // nested\n if (isBarHasFooStart && isBarHasFooEnd)\n continue; // nested\n throw new ShikiError(`Decorations ${JSON.stringify(foo.start)} and ${JSON.stringify(bar.start)} intersect.`);\n }\n }\n }\n }\n return {\n name: 'shiki:decorations',\n tokens(tokens) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const breakpoints = ctx.decorations.flatMap(d => [d.start.offset, d.end.offset]);\n const splitted = splitTokens(tokens, breakpoints);\n return splitted;\n },\n code(codeEl) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const lines = Array.from(codeEl.children).filter(i => i.type === 'element' && i.tagName === 'span');\n if (lines.length !== ctx.converter.lines.length)\n throw new ShikiError(`Number of lines in code element (${lines.length}) does not match the number of lines in the source (${ctx.converter.lines.length}). Failed to apply decorations.`);\n function applyLineSection(line, start, end, decoration) {\n const lineEl = lines[line];\n let text = '';\n let startIndex = -1;\n let endIndex = -1;\n function stringify(el) {\n if (el.type === 'text')\n return el.value;\n if (el.type === 'element')\n return el.children.map(stringify).join('');\n return '';\n }\n if (start === 0)\n startIndex = 0;\n if (end === 0)\n endIndex = 0;\n if (end === Number.POSITIVE_INFINITY)\n endIndex = lineEl.children.length;\n if (startIndex === -1 || endIndex === -1) {\n for (let i = 0; i < lineEl.children.length; i++) {\n text += stringify(lineEl.children[i]);\n if (startIndex === -1 && text.length === start)\n startIndex = i + 1;\n if (endIndex === -1 && text.length === end)\n endIndex = i + 1;\n }\n }\n if (startIndex === -1)\n throw new ShikiError(`Failed to find start index for decoration ${JSON.stringify(decoration.start)}`);\n if (endIndex === -1)\n throw new ShikiError(`Failed to find end index for decoration ${JSON.stringify(decoration.end)}`);\n const children = lineEl.children.slice(startIndex, endIndex);\n // Full line decoration\n if (!decoration.alwaysWrap && children.length === lineEl.children.length) {\n applyDecoration(lineEl, decoration, 'line');\n }\n // Single token decoration\n else if (!decoration.alwaysWrap && children.length === 1 && children[0].type === 'element') {\n applyDecoration(children[0], decoration, 'token');\n }\n // Create a wrapper for the decoration\n else {\n const wrapper = {\n type: 'element',\n tagName: 'span',\n properties: {},\n children,\n };\n applyDecoration(wrapper, decoration, 'wrapper');\n lineEl.children.splice(startIndex, children.length, wrapper);\n }\n }\n function applyLine(line, decoration) {\n lines[line] = applyDecoration(lines[line], decoration, 'line');\n }\n function applyDecoration(el, decoration, type) {\n const properties = decoration.properties || {};\n const transform = decoration.transform || (i => i);\n el.tagName = decoration.tagName || 'span';\n el.properties = {\n ...el.properties,\n ...properties,\n class: el.properties.class,\n };\n if (decoration.properties?.class)\n addClassToHast(el, decoration.properties.class);\n el = transform(el, type) || el;\n return el;\n }\n const lineApplies = [];\n // Apply decorations in reverse order so the nested ones get applied first.\n const sorted = ctx.decorations.sort((a, b) => b.start.offset - a.start.offset);\n for (const decoration of sorted) {\n const { start, end } = decoration;\n if (start.line === end.line) {\n applyLineSection(start.line, start.character, end.character, decoration);\n }\n else if (start.line < end.line) {\n applyLineSection(start.line, start.character, Number.POSITIVE_INFINITY, decoration);\n for (let i = start.line + 1; i < end.line; i++)\n lineApplies.unshift(() => applyLine(i, decoration));\n applyLineSection(end.line, 0, end.character, decoration);\n }\n }\n lineApplies.forEach(i => i());\n },\n };\n}\n\nconst builtInTransformers = [\n /* @__PURE__ */ transformerDecorations(),\n];\nfunction getTransformers(options) {\n return [\n ...options.transformers || [],\n ...builtInTransformers,\n ];\n}\n\nfunction codeToHast(internal, code, options, transformerContext = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options),\n}) {\n let input = code;\n for (const transformer of getTransformers(options))\n input = transformer.preprocess?.call(transformerContext, input, options) || input;\n let { tokens, fg, bg, themeName, rootStyle, } = codeToTokens(internal, input, options);\n const { mergeWhitespaces = true, } = options;\n if (mergeWhitespaces === true)\n tokens = mergeWhitespaceTokens(tokens);\n else if (mergeWhitespaces === 'never')\n tokens = splitWhitespaceTokens(tokens);\n const contextSource = {\n ...transformerContext,\n get source() {\n return input;\n },\n };\n for (const transformer of getTransformers(options))\n tokens = transformer.tokens?.call(contextSource, tokens) || tokens;\n return tokensToHast(tokens, {\n ...options,\n fg,\n bg,\n themeName,\n rootStyle,\n }, contextSource);\n}\nfunction tokensToHast(tokens, options, transformerContext) {\n const transformers = getTransformers(options);\n const lines = [];\n const root = {\n type: 'root',\n children: [],\n };\n const { structure = 'classic', } = options;\n let preNode = {\n type: 'element',\n tagName: 'pre',\n properties: {\n class: `shiki ${options.themeName || ''}`,\n style: options.rootStyle || `background-color:${options.bg};color:${options.fg}`,\n tabindex: '0',\n ...Object.fromEntries(Array.from(Object.entries(options.meta || {}))\n .filter(([key]) => !key.startsWith('_'))),\n },\n children: [],\n };\n let codeNode = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: lines,\n };\n const lineNodes = [];\n const context = {\n ...transformerContext,\n structure,\n addClassToHast,\n get source() {\n return transformerContext.source;\n },\n get tokens() {\n return tokens;\n },\n get options() {\n return options;\n },\n get root() {\n return root;\n },\n get pre() {\n return preNode;\n },\n get code() {\n return codeNode;\n },\n get lines() {\n return lineNodes;\n },\n };\n tokens.forEach((line, idx) => {\n if (idx) {\n if (structure === 'inline')\n root.children.push({ type: 'element', tagName: 'br', properties: {}, children: [] });\n else if (structure === 'classic')\n lines.push({ type: 'text', value: '\\n' });\n }\n let lineNode = {\n type: 'element',\n tagName: 'span',\n properties: { class: 'line' },\n children: [],\n };\n let col = 0;\n for (const token of line) {\n let tokenNode = {\n type: 'element',\n tagName: 'span',\n properties: {},\n children: [{ type: 'text', value: token.content }],\n };\n const style = token.htmlStyle || stringifyTokenStyle(getTokenStyleObject(token));\n if (style)\n tokenNode.properties.style = style;\n for (const transformer of transformers)\n tokenNode = transformer?.span?.call(context, tokenNode, idx + 1, col, lineNode) || tokenNode;\n if (structure === 'inline')\n root.children.push(tokenNode);\n else if (structure === 'classic')\n lineNode.children.push(tokenNode);\n col += token.content.length;\n }\n if (structure === 'classic') {\n for (const transformer of transformers)\n lineNode = transformer?.line?.call(context, lineNode, idx + 1) || lineNode;\n lineNodes.push(lineNode);\n lines.push(lineNode);\n }\n });\n if (structure === 'classic') {\n for (const transformer of transformers)\n codeNode = transformer?.code?.call(context, codeNode) || codeNode;\n preNode.children.push(codeNode);\n for (const transformer of transformers)\n preNode = transformer?.pre?.call(context, preNode) || preNode;\n root.children.push(preNode);\n }\n let result = root;\n for (const transformer of transformers)\n result = transformer?.root?.call(context, result) || result;\n return result;\n}\nfunction mergeWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n let carryOnContent = '';\n let firstOffset = 0;\n line.forEach((token, idx) => {\n const isUnderline = token.fontStyle && token.fontStyle & FontStyle.Underline;\n const couldMerge = !isUnderline;\n if (couldMerge && token.content.match(/^\\s+$/) && line[idx + 1]) {\n if (!firstOffset)\n firstOffset = token.offset;\n carryOnContent += token.content;\n }\n else {\n if (carryOnContent) {\n if (couldMerge) {\n newLine.push({\n ...token,\n offset: firstOffset,\n content: carryOnContent + token.content,\n });\n }\n else {\n newLine.push({\n content: carryOnContent,\n offset: firstOffset,\n }, token);\n }\n firstOffset = 0;\n carryOnContent = '';\n }\n else {\n newLine.push(token);\n }\n }\n });\n return newLine;\n });\n}\nfunction splitWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n return line.flatMap((token) => {\n if (token.content.match(/^\\s+$/))\n return token;\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n const match = token.content.match(/^(\\s*)(.*?)(\\s*)$/);\n if (!match)\n return token;\n const [, leading, content, trailing] = match;\n if (!leading && !trailing)\n return token;\n const expanded = [{\n ...token,\n offset: token.offset + leading.length,\n content,\n }];\n if (leading) {\n expanded.unshift({\n content: leading,\n offset: token.offset,\n });\n }\n if (trailing) {\n expanded.push({\n content: trailing,\n offset: token.offset + leading.length + content.length,\n });\n }\n return expanded;\n });\n });\n}\n\n/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nconst htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n];\n\n/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nclass Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property;\n this.normal = normal;\n if (space) {\n this.space = space;\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {};\n/** @type {Normal} */\nSchema.prototype.normal = {};\n/** @type {string|null} */\nSchema.prototype.space = null;\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nfunction merge(definitions, space) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n let index = -1;\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property);\n Object.assign(normal, definitions[index].normal);\n }\n\n return new Schema(property, normal, space)\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction normalize(value) {\n return value.toLowerCase()\n}\n\nclass Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property;\n /** @type {string} */\n this.attribute = attribute;\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null;\nInfo.prototype.boolean = false;\nInfo.prototype.booleanish = false;\nInfo.prototype.overloadedBoolean = false;\nInfo.prototype.number = false;\nInfo.prototype.commaSeparated = false;\nInfo.prototype.spaceSeparated = false;\nInfo.prototype.commaOrSpaceSeparated = false;\nInfo.prototype.mustUseProperty = false;\nInfo.prototype.defined = false;\n\nlet powers = 0;\n\nconst boolean = increment();\nconst booleanish = increment();\nconst overloadedBoolean = increment();\nconst number = increment();\nconst spaceSeparated = increment();\nconst commaSeparated = increment();\nconst commaOrSpaceSeparated = increment();\n\nfunction increment() {\n return 2 ** ++powers\n}\n\nvar types = /*#__PURE__*/Object.freeze({\n __proto__: null,\n boolean: boolean,\n booleanish: booleanish,\n commaOrSpaceSeparated: commaOrSpaceSeparated,\n commaSeparated: commaSeparated,\n number: number,\n overloadedBoolean: overloadedBoolean,\n spaceSeparated: spaceSeparated\n});\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types);\n\nclass DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1;\n\n super(property, attribute);\n\n mark(this, 'space', space);\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index];\n mark(this, checks[index], (mask & types[check]) === types[check]);\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true;\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value;\n }\n}\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\n\nconst own$3 = {}.hasOwnProperty;\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nfunction create(definition) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n /** @type {string} */\n let prop;\n\n for (prop in definition.properties) {\n if (own$3.call(definition.properties, prop)) {\n const value = definition.properties[prop];\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n );\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true;\n }\n\n property[prop] = info;\n\n normal[normalize(prop)] = prop;\n normal[normalize(info.attribute)] = prop;\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n\nconst xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n});\n\nconst xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n});\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n\nconst xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n});\n\nconst aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n});\n\nconst html$3 = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n});\n\nconst svg$1 = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n});\n\n/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\n\nconst valid = /^data[-\\w.:]+$/i;\nconst dash = /-[a-z]/g;\nconst cap = /[A-Z]/g;\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nfunction find(schema, value) {\n const normal = normalize(value);\n let prop = value;\n let Type = Info;\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase);\n prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1);\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4);\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab);\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes;\n }\n\n value = 'data' + dashes;\n }\n }\n\n Type = DefinedInfo;\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n\n/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nconst html$2 = merge([xml, xlink, xmlns, aria, html$3], 'html');\nconst svg = merge([xml, xlink, xmlns, aria, svg$1], 'svg');\n\n/**\n * @callback Handler\n * Handle a value, with a certain ID field set to a certain value.\n * The ID field is passed to `zwitch`, and it’s value is this function’s\n * place on the `handlers` record.\n * @param {...any} parameters\n * Arbitrary parameters passed to the zwitch.\n * The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback UnknownHandler\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @param {unknown} value\n * An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback InvalidHandler\n * Handle values that do not have a certain ID field.\n * @param {unknown} value\n * Any unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n * This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @typedef Options\n * Configuration (required).\n * @property {Invalid} [invalid]\n * Handler to use for invalid values.\n * @property {Unknown} [unknown]\n * Handler to use for unknown values.\n * @property {Handlers} [handlers]\n * Handlers to use.\n */\n\nconst own$2 = {}.hasOwnProperty;\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @param {string} key\n * Field to switch on.\n * @param {Options<Invalid, Unknown, Handlers>} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters<Handlers[keyof Handlers]>): ReturnType<Handlers[keyof Handlers]>, (...parameters: Parameters<Unknown>): ReturnType<Unknown>}}\n */\nfunction zwitch(key, options) {\n const settings = options || {};\n\n /**\n * Handle one value.\n *\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid” handler will be called.\n * If `value` has an unknown `key`, the special “unknown” handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @this {unknown}\n * Any context object.\n * @param {unknown} [value]\n * Any value.\n * @param {...unknown} parameters\n * Arbitrary parameters passed to the zwitch.\n * @property {Handler} invalid\n * Handle for values that do not have a certain ID field.\n * @property {Handler} unknown\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @property {Handlers} handlers\n * Record of handlers.\n * @returns {unknown}\n * Anything.\n */\n function one(value, ...parameters) {\n /** @type {Handler|undefined} */\n let fn = one.invalid;\n const handlers = one.handlers;\n\n if (value && own$2.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key]);\n // @ts-expect-error Indexable.\n fn = own$2.call(handlers, id) ? handlers[id] : one.unknown;\n }\n\n if (fn) {\n return fn.call(this, value, ...parameters)\n }\n }\n\n one.handlers = settings.handlers || {};\n one.invalid = settings.invalid;\n one.unknown = settings.unknown;\n\n // @ts-expect-error: matches!\n return one\n}\n\n/**\n * @typedef CoreOptions\n * @property {Array<string>} [subset=[]]\n * Whether to only escape the given subset of characters.\n * @property {boolean} [escapeOnly=false]\n * Whether to only escape possibly dangerous characters.\n * Those characters are `\"`, `&`, `'`, `<`, `>`, and `` ` ``.\n *\n * @typedef FormatOptions\n * @property {(code: number, next: number, options: CoreWithFormatOptions) => string} format\n * Format strategy.\n *\n * @typedef {CoreOptions & FormatOptions & import('./util/format-smart.js').FormatSmartOptions} CoreWithFormatOptions\n */\n\n/**\n * Encode certain characters in `value`.\n *\n * @param {string} value\n * @param {CoreWithFormatOptions} options\n * @returns {string}\n */\nfunction core(value, options) {\n value = value.replace(\n options.subset ? charactersToExpression(options.subset) : /[\"&'<>`]/g,\n basic\n );\n\n if (options.subset || options.escapeOnly) {\n return value\n }\n\n return (\n value\n // Surrogate pairs.\n .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, surrogate)\n // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n // non-ASCII ones).\n .replace(\n // eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n /[\\x01-\\t\\v\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g,\n basic\n )\n )\n\n /**\n * @param {string} pair\n * @param {number} index\n * @param {string} all\n */\n function surrogate(pair, index, all) {\n return options.format(\n (pair.charCodeAt(0) - 0xd800) * 0x400 +\n pair.charCodeAt(1) -\n 0xdc00 +\n 0x10000,\n all.charCodeAt(index + 2),\n options\n )\n }\n\n /**\n * @param {string} character\n * @param {number} index\n * @param {string} all\n */\n function basic(character, index, all) {\n return options.format(\n character.charCodeAt(0),\n all.charCodeAt(index + 1),\n options\n )\n }\n}\n\n/**\n * @param {Array<string>} subset\n * @returns {RegExp}\n */\nfunction charactersToExpression(subset) {\n /** @type {Array<string>} */\n const groups = [];\n let index = -1;\n\n while (++index < subset.length) {\n groups.push(subset[index].replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'));\n }\n\n return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\n\n/**\n * Configurable ways to encode characters as hexadecimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nfunction toHexadecimal(code, next, omit) {\n const value = '&#x' + code.toString(16).toUpperCase();\n return omit && next && !/[\\dA-Fa-f]/.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n\n/**\n * Configurable ways to encode characters as decimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nfunction toDecimal(code, next, omit) {\n const value = '&#' + String(code);\n return omit && next && !/\\d/.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n\n/**\n * List of legacy HTML named character references that don’t need a trailing semicolon.\n *\n * @type {Array<string>}\n */\nconst characterEntitiesLegacy = [\n 'AElig',\n 'AMP',\n 'Aacute',\n 'Acirc',\n 'Agrave',\n 'Aring',\n 'Atilde',\n 'Auml',\n 'COPY',\n 'Ccedil',\n 'ETH',\n 'Eacute',\n 'Ecirc',\n 'Egrave',\n 'Euml',\n 'GT',\n 'Iacute',\n 'Icirc',\n 'Igrave',\n 'Iuml',\n 'LT',\n 'Ntilde',\n 'Oacute',\n 'Ocirc',\n 'Ograve',\n 'Oslash',\n 'Otilde',\n 'Ouml',\n 'QUOT',\n 'REG',\n 'THORN',\n 'Uacute',\n 'Ucirc',\n 'Ugrave',\n 'Uuml',\n 'Yacute',\n 'aacute',\n 'acirc',\n 'acute',\n 'aelig',\n 'agrave',\n 'amp',\n 'aring',\n 'atilde',\n 'auml',\n 'brvbar',\n 'ccedil',\n 'cedil',\n 'cent',\n 'copy',\n 'curren',\n 'deg',\n 'divide',\n 'eacute',\n 'ecirc',\n 'egrave',\n 'eth',\n 'euml',\n 'frac12',\n 'frac14',\n 'frac34',\n 'gt',\n 'iacute',\n 'icirc',\n 'iexcl',\n 'igrave',\n 'iquest',\n 'iuml',\n 'laquo',\n 'lt',\n 'macr',\n 'micro',\n 'middot',\n 'nbsp',\n 'not',\n 'ntilde',\n 'oacute',\n 'ocirc',\n 'ograve',\n 'ordf',\n 'ordm',\n 'oslash',\n 'otilde',\n 'ouml',\n 'para',\n 'plusmn',\n 'pound',\n 'quot',\n 'raquo',\n 'reg',\n 'sect',\n 'shy',\n 'sup1',\n 'sup2',\n 'sup3',\n 'szlig',\n 'thorn',\n 'times',\n 'uacute',\n 'ucirc',\n 'ugrave',\n 'uml',\n 'uuml',\n 'yacute',\n 'yen',\n 'yuml'\n];\n\n/**\n * Map of named character references from HTML 4.\n *\n * @type {Record<string, string>}\n */\nconst characterEntitiesHtml4 = {\n nbsp: ' ',\n iexcl: '¡',\n cent: '¢',\n pound: '£',\n curren: '¤',\n yen: '¥',\n brvbar: '¦',\n sect: '§',\n uml: '¨',\n copy: '©',\n ordf: 'ª',\n laquo: '«',\n not: '¬',\n shy: '­',\n reg: '®',\n macr: '¯',\n deg: '°',\n plusmn: '±',\n sup2: '²',\n sup3: '³',\n acute: '´',\n micro: 'µ',\n para: '¶',\n middot: '·',\n cedil: '¸',\n sup1: '¹',\n ordm: 'º',\n raquo: '»',\n frac14: '¼',\n frac12: '½',\n frac34: '¾',\n iquest: '¿',\n Agrave: 'À',\n Aacute: 'Á',\n Acirc: 'Â',\n Atilde: 'Ã',\n Auml: 'Ä',\n Aring: 'Å',\n AElig: 'Æ',\n Ccedil: 'Ç',\n Egrave: 'È',\n Eacute: 'É',\n Ecirc: 'Ê',\n Euml: 'Ë',\n Igrave: 'Ì',\n Iacute: 'Í',\n Icirc: 'Î',\n Iuml: 'Ï',\n ETH: 'Ð',\n Ntilde: 'Ñ',\n Ograve: 'Ò',\n Oacute: 'Ó',\n Ocirc: 'Ô',\n Otilde: 'Õ',\n Ouml: 'Ö',\n times: '×',\n Oslash: 'Ø',\n Ugrave: 'Ù',\n Uacute: 'Ú',\n Ucirc: 'Û',\n Uuml: 'Ü',\n Yacute: 'Ý',\n THORN: 'Þ',\n szlig: 'ß',\n agrave: 'à',\n aacute: 'á',\n acirc: 'â',\n atilde: 'ã',\n auml: 'ä',\n aring: 'å',\n aelig: 'æ',\n ccedil: 'ç',\n egrave: 'è',\n eacute: 'é',\n ecirc: 'ê',\n euml: 'ë',\n igrave: 'ì',\n iacute: 'í',\n icirc: 'î',\n iuml: 'ï',\n eth: 'ð',\n ntilde: 'ñ',\n ograve: 'ò',\n oacute: 'ó',\n ocirc: 'ô',\n otilde: 'õ',\n ouml: 'ö',\n divide: '÷',\n oslash: 'ø',\n ugrave: 'ù',\n uacute: 'ú',\n ucirc: 'û',\n uuml: 'ü',\n yacute: 'ý',\n thorn: 'þ',\n yuml: 'ÿ',\n fnof: 'ƒ',\n Alpha: 'Α',\n Beta: 'Β',\n Gamma: 'Γ',\n Delta: 'Δ',\n Epsilon: 'Ε',\n Zeta: 'Ζ',\n Eta: 'Η',\n Theta: 'Θ',\n Iota: 'Ι',\n Kappa: 'Κ',\n Lambda: 'Λ',\n Mu: 'Μ',\n Nu: 'Ν',\n Xi: 'Ξ',\n Omicron: 'Ο',\n Pi: 'Π',\n Rho: 'Ρ',\n Sigma: 'Σ',\n Tau: 'Τ',\n Upsilon: 'Υ',\n Phi: 'Φ',\n Chi: 'Χ',\n Psi: 'Ψ',\n Omega: 'Ω',\n alpha: 'α',\n beta: 'β',\n gamma: 'γ',\n delta: 'δ',\n epsilon: 'ε',\n zeta: 'ζ',\n eta: 'η',\n theta: 'θ',\n iota: 'ι',\n kappa: 'κ',\n lambda: 'λ',\n mu: 'μ',\n nu: 'ν',\n xi: 'ξ',\n omicron: 'ο',\n pi: 'π',\n rho: 'ρ',\n sigmaf: 'ς',\n sigma: 'σ',\n tau: 'τ',\n upsilon: 'υ',\n phi: 'φ',\n chi: 'χ',\n psi: 'ψ',\n omega: 'ω',\n thetasym: 'ϑ',\n upsih: 'ϒ',\n piv: 'ϖ',\n bull: '•',\n hellip: '…',\n prime: '′',\n Prime: '″',\n oline: '‾',\n frasl: '⁄',\n weierp: '℘',\n image: 'ℑ',\n real: 'ℜ',\n trade: '™',\n alefsym: 'ℵ',\n larr: '←',\n uarr: '↑',\n rarr: '→',\n darr: '↓',\n harr: '↔',\n crarr: '↵',\n lArr: '⇐',\n uArr: '⇑',\n rArr: '⇒',\n dArr: '⇓',\n hArr: '⇔',\n forall: '∀',\n part: '∂',\n exist: '∃',\n empty: '∅',\n nabla: '∇',\n isin: '∈',\n notin: '∉',\n ni: '∋',\n prod: '∏',\n sum: '∑',\n minus: '−',\n lowast: '∗',\n radic: '√',\n prop: '∝',\n infin: '∞',\n ang: '∠',\n and: '∧',\n or: '∨',\n cap: '∩',\n cup: '∪',\n int: '∫',\n there4: '∴',\n sim: '∼',\n cong: '≅',\n asymp: '≈',\n ne: '≠',\n equiv: '≡',\n le: '≤',\n ge: '≥',\n sub: '⊂',\n sup: '⊃',\n nsub: '⊄',\n sube: '⊆',\n supe: '⊇',\n oplus: '⊕',\n otimes: '⊗',\n perp: '⊥',\n sdot: '⋅',\n lceil: '⌈',\n rceil: '⌉',\n lfloor: '⌊',\n rfloor: '⌋',\n lang: '〈',\n rang: '〉',\n loz: '◊',\n spades: '♠',\n clubs: '♣',\n hearts: '♥',\n diams: '♦',\n quot: '\"',\n amp: '&',\n lt: '<',\n gt: '>',\n OElig: 'Œ',\n oelig: 'œ',\n Scaron: 'Š',\n scaron: 'š',\n Yuml: 'Ÿ',\n circ: 'ˆ',\n tilde: '˜',\n ensp: ' ',\n emsp: ' ',\n thinsp: ' ',\n zwnj: '‌',\n zwj: '‍',\n lrm: '‎',\n rlm: '‏',\n ndash: '–',\n mdash: '—',\n lsquo: '‘',\n rsquo: '’',\n sbquo: '‚',\n ldquo: '“',\n rdquo: '”',\n bdquo: '„',\n dagger: '†',\n Dagger: '‡',\n permil: '‰',\n lsaquo: '‹',\n rsaquo: '›',\n euro: '€'\n};\n\n/**\n * List of legacy (that don’t need a trailing `;`) named references which could,\n * depending on what follows them, turn into a different meaning\n *\n * @type {Array<string>}\n */\nconst dangerous = [\n 'cent',\n 'copy',\n 'divide',\n 'gt',\n 'lt',\n 'not',\n 'para',\n 'times'\n];\n\nconst own$1 = {}.hasOwnProperty;\n\n/**\n * `characterEntitiesHtml4` but inverted.\n *\n * @type {Record<string, string>}\n */\nconst characters = {};\n\n/** @type {string} */\nlet key;\n\nfor (key in characterEntitiesHtml4) {\n if (own$1.call(characterEntitiesHtml4, key)) {\n characters[characterEntitiesHtml4[key]] = key;\n }\n}\n\n/**\n * Configurable ways to encode characters as named references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @param {boolean|undefined} attribute\n * @returns {string}\n */\nfunction toNamed(code, next, omit, attribute) {\n const character = String.fromCharCode(code);\n\n if (own$1.call(characters, character)) {\n const name = characters[character];\n const value = '&' + name;\n\n if (\n omit &&\n characterEntitiesLegacy.includes(name) &&\n !dangerous.includes(name) &&\n (!attribute ||\n (next &&\n next !== 61 /* `=` */ &&\n /[^\\da-z]/i.test(String.fromCharCode(next))))\n ) {\n return value\n }\n\n return value + ';'\n }\n\n return ''\n}\n\n/**\n * @typedef FormatSmartOptions\n * @property {boolean} [useNamedReferences=false]\n * Prefer named character references (`&amp;`) 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 // * `&#99;` vs `&#x63;` (decimal shorter)\n // * `&#100;` vs `&#x64;` (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]}