@aquera/nile-elements 0.0.95 → 0.0.97

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 (353) hide show
  1. package/README.md +11 -0
  2. package/demo/filenames.txt +1 -1
  3. package/demo/variables.css +16 -0
  4. package/demo/variables_v2.css +3 -0
  5. package/dist/{angular-ts-a95c67aa.cjs.js → angular-ts-8eef275b.cjs.js} +2 -2
  6. package/dist/{angular-ts-a95c67aa.cjs.js.map → angular-ts-8eef275b.cjs.js.map} +1 -1
  7. package/dist/{asciidoc-b8046ce8.esm.js → asciidoc-45b24fbf.esm.js} +1 -1
  8. package/dist/{asciidoc-c0ae04c3.cjs.js → asciidoc-d9a554a9.cjs.js} +2 -2
  9. package/dist/{asciidoc-c0ae04c3.cjs.js.map → asciidoc-d9a554a9.cjs.js.map} +1 -1
  10. package/dist/coq-112048d4.cjs.js +2 -0
  11. package/dist/coq-112048d4.cjs.js.map +1 -0
  12. package/dist/coq-2b59f292.esm.js +1 -0
  13. package/dist/{edge-f122fee4.cjs.js → edge-117795ef.cjs.js} +2 -2
  14. package/dist/{edge-f122fee4.cjs.js.map → edge-117795ef.cjs.js.map} +1 -1
  15. package/dist/{fortran-fixed-form-48ce1631.cjs.js → fortran-fixed-form-04eb2c2b.cjs.js} +2 -2
  16. package/dist/{fortran-fixed-form-48ce1631.cjs.js.map → fortran-fixed-form-04eb2c2b.cjs.js.map} +1 -1
  17. package/dist/{fsharp-9f65d045.cjs.js → fsharp-b73adc59.cjs.js} +2 -2
  18. package/dist/{fsharp-9f65d045.cjs.js.map → fsharp-b73adc59.cjs.js.map} +1 -1
  19. package/dist/{gdresource-f69c4269.cjs.js → gdresource-165d80c9.cjs.js} +2 -2
  20. package/dist/{gdresource-f69c4269.cjs.js.map → gdresource-165d80c9.cjs.js.map} +1 -1
  21. package/dist/github-dark-high-contrast-7b0d7429.cjs.js +2 -0
  22. package/dist/github-dark-high-contrast-7b0d7429.cjs.js.map +1 -0
  23. package/dist/github-dark-high-contrast-bf87cfb0.esm.js +1 -0
  24. package/dist/github-light-high-contrast-3683d923.esm.js +1 -0
  25. package/dist/github-light-high-contrast-caee8ed6.cjs.js +2 -0
  26. package/dist/github-light-high-contrast-caee8ed6.cjs.js.map +1 -0
  27. package/dist/gleam-69ca4750.cjs.js +2 -0
  28. package/dist/gleam-69ca4750.cjs.js.map +1 -0
  29. package/dist/gleam-79f887fd.esm.js +1 -0
  30. package/dist/{haml-a62722ee.cjs.js → haml-bdfaf5bf.cjs.js} +2 -2
  31. package/dist/{haml-a62722ee.cjs.js.map → haml-bdfaf5bf.cjs.js.map} +1 -1
  32. package/dist/{http-243ce707.cjs.js → http-bdc26351.cjs.js} +2 -2
  33. package/dist/{http-243ce707.cjs.js.map → http-bdc26351.cjs.js.map} +1 -1
  34. package/dist/{hxml-36e954b2.cjs.js → hxml-ec409b05.cjs.js} +2 -2
  35. package/dist/{hxml-36e954b2.cjs.js.map → hxml-ec409b05.cjs.js.map} +1 -1
  36. package/dist/index.cjs.js +1 -1
  37. package/dist/index.esm.js +1 -1
  38. package/dist/{latex-1732805a.cjs.js → latex-13abd118.cjs.js} +2 -2
  39. package/dist/{latex-1732805a.cjs.js.map → latex-13abd118.cjs.js.map} +1 -1
  40. package/dist/{mdc-a3ab9285.cjs.js → mdc-31e30669.cjs.js} +2 -2
  41. package/dist/{mdc-a3ab9285.cjs.js.map → mdc-31e30669.cjs.js.map} +1 -1
  42. package/dist/nile-badge/index.cjs.js +1 -1
  43. package/dist/nile-badge/index.esm.js +1 -1
  44. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  45. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  46. package/dist/nile-badge/nile-badge.esm.js +1 -1
  47. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  48. package/dist/nile-badge/nile-badge.test.cjs.js.map +1 -1
  49. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  50. package/dist/nile-button/index.cjs.js +1 -1
  51. package/dist/nile-button/index.esm.js +1 -1
  52. package/dist/nile-button/nile-button.cjs.js +1 -1
  53. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  54. package/dist/nile-button/nile-button.esm.js +2 -2
  55. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  56. package/dist/nile-button/nile-button.test.cjs.js.map +1 -1
  57. package/dist/nile-button/nile-button.test.esm.js +1 -1
  58. package/dist/nile-calendar/index.cjs.js +1 -1
  59. package/dist/nile-calendar/index.esm.js +1 -1
  60. package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
  61. package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
  62. package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
  63. package/dist/nile-calendar/nile-calendar.css.cjs.js.map +1 -1
  64. package/dist/nile-calendar/nile-calendar.css.esm.js +0 -5
  65. package/dist/nile-calendar/nile-calendar.esm.js +51 -53
  66. package/dist/nile-chip/nile-chip.cjs.js +1 -1
  67. package/dist/nile-chip/nile-chip.cjs.js.map +1 -1
  68. package/dist/nile-chip/nile-chip.esm.js +1 -1
  69. package/dist/nile-code-editor/extensionSetup.cjs.js.map +1 -1
  70. package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
  71. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  72. package/dist/nile-code-editor/nile-code-editor.esm.js +5 -5
  73. package/dist/nile-date-picker/nile-date-picker.cjs.js +1 -1
  74. package/dist/nile-date-picker/nile-date-picker.cjs.js.map +1 -1
  75. package/dist/nile-date-picker/nile-date-picker.css.cjs.js +1 -1
  76. package/dist/nile-date-picker/nile-date-picker.css.cjs.js.map +1 -1
  77. package/dist/nile-date-picker/nile-date-picker.css.esm.js +6 -2
  78. package/dist/nile-date-picker/nile-date-picker.esm.js +6 -6
  79. package/dist/nile-dialog/index.cjs.js +1 -1
  80. package/dist/nile-dialog/index.esm.js +1 -1
  81. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  82. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  83. package/dist/nile-dialog/nile-dialog.esm.js +1 -1
  84. package/dist/nile-drawer/index.cjs.js +1 -1
  85. package/dist/nile-drawer/index.esm.js +1 -1
  86. package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
  87. package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
  88. package/dist/nile-drawer/nile-drawer.esm.js +2 -2
  89. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  90. package/dist/nile-drawer/nile-drawer.test.cjs.js.map +1 -1
  91. package/dist/nile-drawer/nile-drawer.test.esm.js +7 -7
  92. package/dist/nile-highlighter/nile-highlighter.cjs.js +1 -1
  93. package/dist/nile-highlighter/nile-highlighter.cjs.js.map +1 -1
  94. package/dist/nile-highlighter/nile-highlighter.esm.js +1 -1
  95. package/dist/nile-icon/icons/svg/block-02.cjs.js +2 -0
  96. package/dist/nile-icon/icons/svg/block-02.cjs.js.map +1 -0
  97. package/dist/nile-icon/icons/svg/block-02.esm.js +1 -0
  98. package/dist/nile-icon/icons/svg/compare.cjs.js +2 -0
  99. package/dist/nile-icon/icons/svg/compare.cjs.js.map +1 -0
  100. package/dist/nile-icon/icons/svg/compare.esm.js +1 -0
  101. package/dist/nile-icon/icons/svg/dock-to-right.cjs.js +2 -0
  102. package/dist/nile-icon/icons/svg/dock-to-right.cjs.js.map +1 -0
  103. package/dist/nile-icon/icons/svg/dock-to-right.esm.js +1 -0
  104. package/dist/nile-icon/icons/svg/full-union.cjs.js +2 -0
  105. package/dist/nile-icon/icons/svg/full-union.cjs.js.map +1 -0
  106. package/dist/nile-icon/icons/svg/full-union.esm.js +1 -0
  107. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  108. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  109. package/dist/nile-icon/icons/svg/inner-union.cjs.js +2 -0
  110. package/dist/nile-icon/icons/svg/inner-union.cjs.js.map +1 -0
  111. package/dist/nile-icon/icons/svg/inner-union.esm.js +1 -0
  112. package/dist/nile-icon/icons/svg/left-union.cjs.js +2 -0
  113. package/dist/nile-icon/icons/svg/left-union.cjs.js.map +1 -0
  114. package/dist/nile-icon/icons/svg/left-union.esm.js +1 -0
  115. package/dist/nile-icon/icons/svg/palette.cjs.js +2 -0
  116. package/dist/nile-icon/icons/svg/palette.cjs.js.map +1 -0
  117. package/dist/nile-icon/icons/svg/palette.esm.js +1 -0
  118. package/dist/nile-icon/icons/svg/redo-02.cjs.js +2 -0
  119. package/dist/nile-icon/icons/svg/redo-02.cjs.js.map +1 -0
  120. package/dist/nile-icon/icons/svg/redo-02.esm.js +1 -0
  121. package/dist/nile-icon/icons/svg/right-union.cjs.js +2 -0
  122. package/dist/nile-icon/icons/svg/right-union.cjs.js.map +1 -0
  123. package/dist/nile-icon/icons/svg/right-union.esm.js +1 -0
  124. package/dist/nile-icon/icons/svg/section-02.cjs.js +2 -0
  125. package/dist/nile-icon/icons/svg/section-02.cjs.js.map +1 -0
  126. package/dist/nile-icon/icons/svg/section-02.esm.js +1 -0
  127. package/dist/nile-icon/icons/svg/select-02.cjs.js +2 -0
  128. package/dist/nile-icon/icons/svg/select-02.cjs.js.map +1 -0
  129. package/dist/nile-icon/icons/svg/select-02.esm.js +1 -0
  130. package/dist/nile-icon/icons/svg/text-02.cjs.js +2 -0
  131. package/dist/nile-icon/icons/svg/text-02.cjs.js.map +1 -0
  132. package/dist/nile-icon/icons/svg/text-02.esm.js +1 -0
  133. package/dist/nile-icon/icons/svg/undo-02.cjs.js +2 -0
  134. package/dist/nile-icon/icons/svg/undo-02.cjs.js.map +1 -0
  135. package/dist/nile-icon/icons/svg/undo-02.esm.js +1 -0
  136. package/dist/nile-icon/index.cjs.js +1 -1
  137. package/dist/nile-icon/index.cjs.js.map +1 -1
  138. package/dist/nile-icon/index.esm.js +2 -2
  139. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  140. package/dist/nile-icon/nile-icon.test.cjs.js.map +1 -1
  141. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  142. package/dist/nile-icon-button/index.cjs.js +1 -1
  143. package/dist/nile-icon-button/index.esm.js +1 -1
  144. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  145. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  146. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  147. package/dist/nile-inline-edit/index.cjs.js +2 -0
  148. package/dist/nile-inline-edit/index.cjs.js.map +1 -0
  149. package/dist/nile-inline-edit/index.esm.js +1 -0
  150. package/dist/nile-inline-edit/nile-inline-edit.cjs.js +2 -0
  151. package/dist/nile-inline-edit/nile-inline-edit.cjs.js.map +1 -0
  152. package/dist/nile-inline-edit/nile-inline-edit.css.cjs.js +2 -0
  153. package/dist/nile-inline-edit/nile-inline-edit.css.cjs.js.map +1 -0
  154. package/dist/nile-inline-edit/nile-inline-edit.css.esm.js +42 -0
  155. package/dist/nile-inline-edit/nile-inline-edit.esm.js +6 -0
  156. package/dist/nile-input/index.cjs.js +1 -1
  157. package/dist/nile-input/index.esm.js +1 -1
  158. package/dist/nile-input/nile-input.cjs.js +1 -1
  159. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  160. package/dist/nile-input/nile-input.esm.js +1 -1
  161. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  162. package/dist/nile-input/nile-input.test.cjs.js.map +1 -1
  163. package/dist/nile-input/nile-input.test.esm.js +1 -1
  164. package/dist/nile-menu-item/index.cjs.js +1 -1
  165. package/dist/nile-menu-item/index.esm.js +1 -1
  166. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  167. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  168. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  169. package/dist/nile-option/index.cjs.js +1 -1
  170. package/dist/nile-option/index.esm.js +1 -1
  171. package/dist/nile-option/nile-option.cjs.js +1 -1
  172. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  173. package/dist/nile-option/nile-option.esm.js +1 -1
  174. package/dist/nile-select/index.cjs.js +1 -1
  175. package/dist/nile-select/index.esm.js +1 -1
  176. package/dist/nile-select/nile-select.cjs.js +1 -1
  177. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  178. package/dist/nile-select/nile-select.esm.js +1 -1
  179. package/dist/nile-tab/index.cjs.js +1 -1
  180. package/dist/nile-tab/index.esm.js +1 -1
  181. package/dist/nile-tab/nile-tab.cjs.js +1 -1
  182. package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
  183. package/dist/nile-tab/nile-tab.esm.js +1 -1
  184. package/dist/nile-tab-group/index.cjs.js +1 -1
  185. package/dist/nile-tab-group/index.esm.js +1 -1
  186. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  187. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  188. package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
  189. package/dist/nile-tag/index.cjs.js +1 -1
  190. package/dist/nile-tag/index.esm.js +1 -1
  191. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  192. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  193. package/dist/nile-tag/nile-tag.esm.js +1 -1
  194. package/dist/nile-toast/index.cjs.js +1 -1
  195. package/dist/nile-toast/index.esm.js +1 -1
  196. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  197. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  198. package/dist/nile-toast/nile-toast.esm.js +1 -1
  199. package/dist/nile-tree/index.cjs.js +1 -1
  200. package/dist/nile-tree/index.esm.js +1 -1
  201. package/dist/nile-tree/nile-tree.cjs.js +1 -1
  202. package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
  203. package/dist/nile-tree/nile-tree.esm.js +1 -1
  204. package/dist/nile-tree-item/index.cjs.js +1 -1
  205. package/dist/nile-tree-item/index.esm.js +1 -1
  206. package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
  207. package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
  208. package/dist/nile-tree-item/nile-tree-item.esm.js +1 -1
  209. package/dist/{nim-df5f9efe.cjs.js → nim-175a1e94.cjs.js} +2 -2
  210. package/dist/{nim-df5f9efe.cjs.js.map → nim-175a1e94.cjs.js.map} +1 -1
  211. package/dist/{proto-11466e41.esm.js → proto-7cb7fd99.esm.js} +1 -1
  212. package/dist/{proto-bdf8f839.cjs.js → proto-c0d38a59.cjs.js} +2 -2
  213. package/dist/{proto-bdf8f839.cjs.js.map → proto-c0d38a59.cjs.js.map} +1 -1
  214. package/dist/{rst-64e995dc.cjs.js → rst-939eae95.cjs.js} +2 -2
  215. package/dist/{rst-64e995dc.cjs.js.map → rst-939eae95.cjs.js.map} +1 -1
  216. package/dist/{shaderlab-8f7349ac.cjs.js → shaderlab-f1b8150d.cjs.js} +2 -2
  217. package/dist/{shaderlab-8f7349ac.cjs.js.map → shaderlab-f1b8150d.cjs.js.map} +1 -1
  218. package/dist/{sparql-cd3386f5.cjs.js → sparql-fa708d4c.cjs.js} +2 -2
  219. package/dist/{sparql-cd3386f5.cjs.js.map → sparql-fa708d4c.cjs.js.map} +1 -1
  220. package/dist/src/index.d.ts +1 -0
  221. package/dist/src/index.js +1 -0
  222. package/dist/src/index.js.map +1 -1
  223. package/dist/src/nile-calendar/nile-calendar.css.js +0 -5
  224. package/dist/src/nile-calendar/nile-calendar.css.js.map +1 -1
  225. package/dist/src/nile-calendar/nile-calendar.d.ts +94 -56
  226. package/dist/src/nile-calendar/nile-calendar.js +465 -490
  227. package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
  228. package/dist/src/nile-chip/nile-chip.js +2 -2
  229. package/dist/src/nile-chip/nile-chip.js.map +1 -1
  230. package/dist/src/nile-code-editor/extensionSetup.js +7 -14
  231. package/dist/src/nile-code-editor/extensionSetup.js.map +1 -1
  232. package/dist/src/nile-code-editor/nile-code-editor.d.ts +8 -5
  233. package/dist/src/nile-code-editor/nile-code-editor.js +22 -5
  234. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  235. package/dist/src/nile-date-picker/nile-date-picker.css.js +4 -0
  236. package/dist/src/nile-date-picker/nile-date-picker.css.js.map +1 -1
  237. package/dist/src/nile-date-picker/nile-date-picker.js +7 -6
  238. package/dist/src/nile-date-picker/nile-date-picker.js.map +1 -1
  239. package/dist/src/nile-icon/icons/svg/block-02.d.ts +5 -0
  240. package/dist/src/nile-icon/icons/svg/block-02.js +5 -0
  241. package/dist/src/nile-icon/icons/svg/block-02.js.map +1 -0
  242. package/dist/src/nile-icon/icons/svg/compare.d.ts +5 -0
  243. package/dist/src/nile-icon/icons/svg/compare.js +5 -0
  244. package/dist/src/nile-icon/icons/svg/compare.js.map +1 -0
  245. package/dist/src/nile-icon/icons/svg/dock-to-right.d.ts +5 -0
  246. package/dist/src/nile-icon/icons/svg/dock-to-right.js +5 -0
  247. package/dist/src/nile-icon/icons/svg/dock-to-right.js.map +1 -0
  248. package/dist/src/nile-icon/icons/svg/full-union.d.ts +5 -0
  249. package/dist/src/nile-icon/icons/svg/full-union.js +5 -0
  250. package/dist/src/nile-icon/icons/svg/full-union.js.map +1 -0
  251. package/dist/src/nile-icon/icons/svg/index.d.ts +13 -0
  252. package/dist/src/nile-icon/icons/svg/index.js +13 -0
  253. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  254. package/dist/src/nile-icon/icons/svg/inner-union.d.ts +5 -0
  255. package/dist/src/nile-icon/icons/svg/inner-union.js +5 -0
  256. package/dist/src/nile-icon/icons/svg/inner-union.js.map +1 -0
  257. package/dist/src/nile-icon/icons/svg/left-union.d.ts +5 -0
  258. package/dist/src/nile-icon/icons/svg/left-union.js +5 -0
  259. package/dist/src/nile-icon/icons/svg/left-union.js.map +1 -0
  260. package/dist/src/nile-icon/icons/svg/palette.d.ts +5 -0
  261. package/dist/src/nile-icon/icons/svg/palette.js +5 -0
  262. package/dist/src/nile-icon/icons/svg/palette.js.map +1 -0
  263. package/dist/src/nile-icon/icons/svg/redo-02.d.ts +5 -0
  264. package/dist/src/nile-icon/icons/svg/redo-02.js +5 -0
  265. package/dist/src/nile-icon/icons/svg/redo-02.js.map +1 -0
  266. package/dist/src/nile-icon/icons/svg/right-union.d.ts +5 -0
  267. package/dist/src/nile-icon/icons/svg/right-union.js +5 -0
  268. package/dist/src/nile-icon/icons/svg/right-union.js.map +1 -0
  269. package/dist/src/nile-icon/icons/svg/section-02.d.ts +5 -0
  270. package/dist/src/nile-icon/icons/svg/section-02.js +5 -0
  271. package/dist/src/nile-icon/icons/svg/section-02.js.map +1 -0
  272. package/dist/src/nile-icon/icons/svg/select-02.d.ts +5 -0
  273. package/dist/src/nile-icon/icons/svg/select-02.js +5 -0
  274. package/dist/src/nile-icon/icons/svg/select-02.js.map +1 -0
  275. package/dist/src/nile-icon/icons/svg/text-02.d.ts +5 -0
  276. package/dist/src/nile-icon/icons/svg/text-02.js +5 -0
  277. package/dist/src/nile-icon/icons/svg/text-02.js.map +1 -0
  278. package/dist/src/nile-icon/icons/svg/undo-02.d.ts +5 -0
  279. package/dist/src/nile-icon/icons/svg/undo-02.js +5 -0
  280. package/dist/src/nile-icon/icons/svg/undo-02.js.map +1 -0
  281. package/dist/src/nile-inline-edit/index.d.ts +1 -0
  282. package/dist/src/nile-inline-edit/index.js +2 -0
  283. package/dist/src/nile-inline-edit/index.js.map +1 -0
  284. package/dist/src/nile-inline-edit/nile-inline-edit.css.d.ts +12 -0
  285. package/dist/src/nile-inline-edit/nile-inline-edit.css.js +54 -0
  286. package/dist/src/nile-inline-edit/nile-inline-edit.css.js.map +1 -0
  287. package/dist/src/nile-inline-edit/nile-inline-edit.d.ts +41 -0
  288. package/dist/src/nile-inline-edit/nile-inline-edit.js +76 -0
  289. package/dist/src/nile-inline-edit/nile-inline-edit.js.map +1 -0
  290. package/dist/{svelte-eaee6dea.cjs.js → svelte-1c9200e6.cjs.js} +2 -2
  291. package/dist/{svelte-eaee6dea.cjs.js.map → svelte-1c9200e6.cjs.js.map} +1 -1
  292. package/dist/tsconfig.tsbuildinfo +1 -1
  293. package/dist/{twig-ef3a2f8e.cjs.js → twig-e82a0f10.cjs.js} +2 -2
  294. package/dist/{twig-ef3a2f8e.cjs.js.map → twig-e82a0f10.cjs.js.map} +1 -1
  295. package/dist/{typespec-2408a2c5.esm.js → typespec-5b65452b.esm.js} +1 -1
  296. package/dist/{typespec-df7168c5.cjs.js → typespec-5f9c7522.cjs.js} +2 -2
  297. package/dist/{typespec-df7168c5.cjs.js.map → typespec-5f9c7522.cjs.js.map} +1 -1
  298. package/dist/vitesse-black-02f9013c.esm.js +1 -0
  299. package/dist/vitesse-black-c8b0af08.cjs.js +2 -0
  300. package/dist/vitesse-black-c8b0af08.cjs.js.map +1 -0
  301. package/dist/vitesse-dark-362560d8.esm.js +1 -0
  302. package/dist/vitesse-dark-4d62a96c.cjs.js +2 -0
  303. package/dist/vitesse-dark-4d62a96c.cjs.js.map +1 -0
  304. package/dist/vitesse-light-64c34e5b.esm.js +1 -0
  305. package/dist/vitesse-light-c347b81b.cjs.js +2 -0
  306. package/dist/vitesse-light-c347b81b.cjs.js.map +1 -0
  307. package/dist/{vue-711d75a4.esm.js → vue-8a11ba51.esm.js} +1 -1
  308. package/dist/{vue-d4c63178.cjs.js → vue-ec02ac11.cjs.js} +2 -2
  309. package/dist/{vue-d4c63178.cjs.js.map → vue-ec02ac11.cjs.js.map} +1 -1
  310. package/dist/{vue-html-b805e078.esm.js → vue-html-223d6d0d.esm.js} +1 -1
  311. package/dist/{vue-html-13711be2.cjs.js → vue-html-39fa1a8f.cjs.js} +2 -2
  312. package/dist/{vue-html-13711be2.cjs.js.map → vue-html-39fa1a8f.cjs.js.map} +1 -1
  313. package/dist/{wikitext-724303c6.esm.js → wikitext-194e2520.esm.js} +1 -1
  314. package/dist/{wikitext-d4ad7e43.cjs.js → wikitext-f8506da8.cjs.js} +2 -2
  315. package/dist/{wikitext-d4ad7e43.cjs.js.map → wikitext-f8506da8.cjs.js.map} +1 -1
  316. package/package.json +4 -3
  317. package/src/index.ts +2 -0
  318. package/src/nile-calendar/nile-calendar.css.ts +0 -5
  319. package/src/nile-calendar/nile-calendar.ts +481 -557
  320. package/src/nile-chip/nile-chip.ts +2 -2
  321. package/src/nile-code-editor/extensionSetup.ts +7 -14
  322. package/src/nile-code-editor/nile-code-editor.ts +28 -5
  323. package/src/nile-date-picker/nile-date-picker.css.ts +4 -0
  324. package/src/nile-date-picker/nile-date-picker.ts +7 -7
  325. package/src/nile-icon/icons/svg/block-02.ts +5 -0
  326. package/src/nile-icon/icons/svg/compare.ts +5 -0
  327. package/src/nile-icon/icons/svg/dock-to-right.ts +5 -0
  328. package/src/nile-icon/icons/svg/full-union.ts +5 -0
  329. package/src/nile-icon/icons/svg/index.ts +13 -0
  330. package/src/nile-icon/icons/svg/inner-union.ts +5 -0
  331. package/src/nile-icon/icons/svg/left-union.ts +5 -0
  332. package/src/nile-icon/icons/svg/palette.ts +5 -0
  333. package/src/nile-icon/icons/svg/redo-02.ts +5 -0
  334. package/src/nile-icon/icons/svg/right-union.ts +5 -0
  335. package/src/nile-icon/icons/svg/section-02.ts +5 -0
  336. package/src/nile-icon/icons/svg/select-02.ts +5 -0
  337. package/src/nile-icon/icons/svg/text-02.ts +5 -0
  338. package/src/nile-icon/icons/svg/undo-02.ts +5 -0
  339. package/src/nile-inline-edit/index.ts +1 -0
  340. package/src/nile-inline-edit/nile-inline-edit.css.ts +56 -0
  341. package/src/nile-inline-edit/nile-inline-edit.ts +80 -0
  342. package/dist/gleam-13d71b99.cjs.js +0 -2
  343. package/dist/gleam-13d71b99.cjs.js.map +0 -1
  344. package/dist/gleam-780849b8.esm.js +0 -1
  345. package/dist/vitesse-black-36f4f5ae.esm.js +0 -1
  346. package/dist/vitesse-black-8f7b8bf9.cjs.js +0 -2
  347. package/dist/vitesse-black-8f7b8bf9.cjs.js.map +0 -1
  348. package/dist/vitesse-dark-877d0b03.cjs.js +0 -2
  349. package/dist/vitesse-dark-877d0b03.cjs.js.map +0 -1
  350. package/dist/vitesse-dark-b177c06b.esm.js +0 -1
  351. package/dist/vitesse-light-1305bc40.esm.js +0 -1
  352. package/dist/vitesse-light-3f1d75bb.cjs.js +0 -2
  353. package/dist/vitesse-light-3f1d75bb.cjs.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nile-highlighter.cjs.js","sources":["../../../../node_modules/@shikijs/core/dist/textmate.mjs","../../../../node_modules/@shikijs/core/dist/index.mjs","../../../../node_modules/shiki/dist/bundle-full.mjs","../../../../node_modules/shiki/dist/langs.mjs","../../../../node_modules/shiki/dist/chunks/wasm-dynamic.mjs","../../../../node_modules/shiki/dist/themes.mjs","../../../../node_modules/@shikijs/core/dist/types.mjs","../../../src/nile-highlighter/nile-highlighter.ts"],"sourcesContent":["import { FontStyle } from './types.mjs';\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n({\n InDebugMode: (typeof process !== 'undefined' && !!process.env['VSCODE_TEXTMATE_DEBUG'])\n});\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nvar EncodedTokenAttributes;\n(function (EncodedTokenAttributes) {\n function toBinaryStr(encodedTokenAttributes) {\n return encodedTokenAttributes.toString(2).padStart(32, \"0\");\n }\n EncodedTokenAttributes.toBinaryStr = toBinaryStr;\n function print(encodedTokenAttributes) {\n const languageId = EncodedTokenAttributes.getLanguageId(encodedTokenAttributes);\n const tokenType = EncodedTokenAttributes.getTokenType(encodedTokenAttributes);\n const fontStyle = EncodedTokenAttributes.getFontStyle(encodedTokenAttributes);\n const foreground = EncodedTokenAttributes.getForeground(encodedTokenAttributes);\n const background = EncodedTokenAttributes.getBackground(encodedTokenAttributes);\n console.log({\n languageId: languageId,\n tokenType: tokenType,\n fontStyle: fontStyle,\n foreground: foreground,\n background: background,\n });\n }\n EncodedTokenAttributes.print = print;\n function getLanguageId(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 255 /* EncodedTokenDataConsts.LANGUAGEID_MASK */) >>>\n 0 /* EncodedTokenDataConsts.LANGUAGEID_OFFSET */);\n }\n EncodedTokenAttributes.getLanguageId = getLanguageId;\n function getTokenType(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 768 /* EncodedTokenDataConsts.TOKEN_TYPE_MASK */) >>>\n 8 /* EncodedTokenDataConsts.TOKEN_TYPE_OFFSET */);\n }\n EncodedTokenAttributes.getTokenType = getTokenType;\n function containsBalancedBrackets(encodedTokenAttributes) {\n return (encodedTokenAttributes & 1024 /* EncodedTokenDataConsts.BALANCED_BRACKETS_MASK */) !== 0;\n }\n EncodedTokenAttributes.containsBalancedBrackets = containsBalancedBrackets;\n function getFontStyle(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 30720 /* EncodedTokenDataConsts.FONT_STYLE_MASK */) >>>\n 11 /* EncodedTokenDataConsts.FONT_STYLE_OFFSET */);\n }\n EncodedTokenAttributes.getFontStyle = getFontStyle;\n function getForeground(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 16744448 /* EncodedTokenDataConsts.FOREGROUND_MASK */) >>>\n 15 /* EncodedTokenDataConsts.FOREGROUND_OFFSET */);\n }\n EncodedTokenAttributes.getForeground = getForeground;\n function getBackground(encodedTokenAttributes) {\n return ((encodedTokenAttributes & 4278190080 /* EncodedTokenDataConsts.BACKGROUND_MASK */) >>>\n 24 /* EncodedTokenDataConsts.BACKGROUND_OFFSET */);\n }\n EncodedTokenAttributes.getBackground = getBackground;\n /**\n * Updates the fields in `metadata`.\n * A value of `0`, `NotSet` or `null` indicates that the corresponding field should be left as is.\n */\n function set(encodedTokenAttributes, languageId, tokenType, containsBalancedBrackets, fontStyle, foreground, background) {\n let _languageId = EncodedTokenAttributes.getLanguageId(encodedTokenAttributes);\n let _tokenType = EncodedTokenAttributes.getTokenType(encodedTokenAttributes);\n let _containsBalancedBracketsBit = EncodedTokenAttributes.containsBalancedBrackets(encodedTokenAttributes) ? 1 : 0;\n let _fontStyle = EncodedTokenAttributes.getFontStyle(encodedTokenAttributes);\n let _foreground = EncodedTokenAttributes.getForeground(encodedTokenAttributes);\n let _background = EncodedTokenAttributes.getBackground(encodedTokenAttributes);\n if (languageId !== 0) {\n _languageId = languageId;\n }\n if (tokenType !== 8 /* OptionalStandardTokenType.NotSet */) {\n _tokenType = fromOptionalTokenType(tokenType);\n }\n if (containsBalancedBrackets !== null) {\n _containsBalancedBracketsBit = containsBalancedBrackets ? 1 : 0;\n }\n if (fontStyle !== -1 /* FontStyle.NotSet */) {\n _fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n _foreground = foreground;\n }\n if (background !== 0) {\n _background = background;\n }\n return (((_languageId << 0 /* EncodedTokenDataConsts.LANGUAGEID_OFFSET */) |\n (_tokenType << 8 /* EncodedTokenDataConsts.TOKEN_TYPE_OFFSET */) |\n (_containsBalancedBracketsBit <<\n 10 /* EncodedTokenDataConsts.BALANCED_BRACKETS_OFFSET */) |\n (_fontStyle << 11 /* EncodedTokenDataConsts.FONT_STYLE_OFFSET */) |\n (_foreground << 15 /* EncodedTokenDataConsts.FOREGROUND_OFFSET */) |\n (_background << 24 /* EncodedTokenDataConsts.BACKGROUND_OFFSET */)) >>>\n 0);\n }\n EncodedTokenAttributes.set = set;\n})(EncodedTokenAttributes || (EncodedTokenAttributes = {}));\nfunction toOptionalTokenType(standardType) {\n return standardType;\n}\nfunction fromOptionalTokenType(standardType) {\n return standardType;\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction createMatchers(selector, matchesName) {\n const results = [];\n const tokenizer = newTokenizer(selector);\n let token = tokenizer.next();\n while (token !== null) {\n let priority = 0;\n if (token.length === 2 && token.charAt(1) === ':') {\n switch (token.charAt(0)) {\n case 'R':\n priority = 1;\n break;\n case 'L':\n priority = -1;\n break;\n default:\n console.log(`Unknown priority ${token} in scope selector`);\n }\n token = tokenizer.next();\n }\n let matcher = parseConjunction();\n results.push({ matcher, priority });\n if (token !== ',') {\n break;\n }\n token = tokenizer.next();\n }\n return results;\n function parseOperand() {\n if (token === '-') {\n token = tokenizer.next();\n const expressionToNegate = parseOperand();\n return matcherInput => !!expressionToNegate && !expressionToNegate(matcherInput);\n }\n if (token === '(') {\n token = tokenizer.next();\n const expressionInParents = parseInnerExpression();\n if (token === ')') {\n token = tokenizer.next();\n }\n return expressionInParents;\n }\n if (isIdentifier(token)) {\n const identifiers = [];\n do {\n identifiers.push(token);\n token = tokenizer.next();\n } while (isIdentifier(token));\n return matcherInput => matchesName(identifiers, matcherInput);\n }\n return null;\n }\n function parseConjunction() {\n const matchers = [];\n let matcher = parseOperand();\n while (matcher) {\n matchers.push(matcher);\n matcher = parseOperand();\n }\n return matcherInput => matchers.every(matcher => matcher(matcherInput)); // and\n }\n function parseInnerExpression() {\n const matchers = [];\n let matcher = parseConjunction();\n while (matcher) {\n matchers.push(matcher);\n if (token === '|' || token === ',') {\n do {\n token = tokenizer.next();\n } while (token === '|' || token === ','); // ignore subsequent commas\n }\n else {\n break;\n }\n matcher = parseConjunction();\n }\n return matcherInput => matchers.some(matcher => matcher(matcherInput)); // or\n }\n}\nfunction isIdentifier(token) {\n return !!token && !!token.match(/[\\w\\.:]+/);\n}\nfunction newTokenizer(input) {\n let regex = /([LR]:|[\\w\\.:][\\w\\.:\\-]*|[\\,\\|\\-\\(\\)])/g;\n let match = regex.exec(input);\n return {\n next: () => {\n if (!match) {\n return null;\n }\n const res = match[0];\n match = regex.exec(input);\n return res;\n }\n };\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction disposeOnigString(str) {\n if (typeof str.dispose === 'function') {\n str.dispose();\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction clone(something) {\n return doClone(something);\n}\nfunction doClone(something) {\n if (Array.isArray(something)) {\n return cloneArray(something);\n }\n if (typeof something === 'object') {\n return cloneObj(something);\n }\n return something;\n}\nfunction cloneArray(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = doClone(arr[i]);\n }\n return r;\n}\nfunction cloneObj(obj) {\n let r = {};\n for (let key in obj) {\n r[key] = doClone(obj[key]);\n }\n return r;\n}\nfunction mergeObjects(target, ...sources) {\n sources.forEach(source => {\n for (let key in source) {\n target[key] = source[key];\n }\n });\n return target;\n}\nfunction basename(path) {\n const idx = ~path.lastIndexOf('/') || ~path.lastIndexOf('\\\\');\n if (idx === 0) {\n return path;\n }\n else if (~idx === path.length - 1) {\n return basename(path.substring(0, path.length - 1));\n }\n else {\n return path.substr(~idx + 1);\n }\n}\nlet CAPTURING_REGEX_SOURCE = /\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/g;\nclass RegexSource {\n static hasCaptures(regexSource) {\n if (regexSource === null) {\n return false;\n }\n CAPTURING_REGEX_SOURCE.lastIndex = 0;\n return CAPTURING_REGEX_SOURCE.test(regexSource);\n }\n static replaceCaptures(regexSource, captureSource, captureIndices) {\n return regexSource.replace(CAPTURING_REGEX_SOURCE, (match, index, commandIndex, command) => {\n let capture = captureIndices[parseInt(index || commandIndex, 10)];\n if (capture) {\n let result = captureSource.substring(capture.start, capture.end);\n // Remove leading dots that would make the selector invalid\n while (result[0] === '.') {\n result = result.substring(1);\n }\n switch (command) {\n case 'downcase':\n return result.toLowerCase();\n case 'upcase':\n return result.toUpperCase();\n default:\n return result;\n }\n }\n else {\n return match;\n }\n });\n }\n}\nfunction strcmp(a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n}\nfunction strArrCmp(a, b) {\n if (a === null && b === null) {\n return 0;\n }\n if (!a) {\n return -1;\n }\n if (!b) {\n return 1;\n }\n let len1 = a.length;\n let len2 = b.length;\n if (len1 === len2) {\n for (let i = 0; i < len1; i++) {\n let res = strcmp(a[i], b[i]);\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n }\n return len1 - len2;\n}\nfunction isValidHexColor(hex) {\n if (/^#[0-9a-f]{6}$/i.test(hex)) {\n // #rrggbb\n return true;\n }\n if (/^#[0-9a-f]{8}$/i.test(hex)) {\n // #rrggbbaa\n return true;\n }\n if (/^#[0-9a-f]{3}$/i.test(hex)) {\n // #rgb\n return true;\n }\n if (/^#[0-9a-f]{4}$/i.test(hex)) {\n // #rgba\n return true;\n }\n return false;\n}\n/**\n * Escapes regular expression characters in a given string\n */\nfunction escapeRegExpCharacters(value) {\n return value.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, '\\\\$&');\n}\nclass CachedFn {\n fn;\n cache = new Map();\n constructor(fn) {\n this.fn = fn;\n }\n get(key) {\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n const value = this.fn(key);\n this.cache.set(key, value);\n return value;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n/**\n * References the top level rule of a grammar with the given scope name.\n*/\nclass TopLevelRuleReference {\n scopeName;\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n toKey() {\n return this.scopeName;\n }\n}\n/**\n * References a rule of a grammar in the top level repository section with the given name.\n*/\nclass TopLevelRepositoryRuleReference {\n scopeName;\n ruleName;\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n toKey() {\n return `${this.scopeName}#${this.ruleName}`;\n }\n}\nclass ExternalReferenceCollector {\n _references = [];\n _seenReferenceKeys = new Set();\n get references() {\n return this._references;\n }\n visitedRule = new Set();\n add(reference) {\n const key = reference.toKey();\n if (this._seenReferenceKeys.has(key)) {\n return;\n }\n this._seenReferenceKeys.add(key);\n this._references.push(reference);\n }\n}\nclass ScopeDependencyProcessor {\n repo;\n initialScopeName;\n seenFullScopeRequests = new Set();\n seenPartialScopeRequests = new Set();\n Q;\n constructor(repo, initialScopeName) {\n this.repo = repo;\n this.initialScopeName = initialScopeName;\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\n processQueue() {\n const q = this.Q;\n this.Q = [];\n const deps = new ExternalReferenceCollector();\n for (const dep of q) {\n collectReferencesOfReference(dep, this.initialScopeName, this.repo, deps);\n }\n for (const dep of deps.references) {\n if (dep instanceof TopLevelRuleReference) {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n // already processed\n continue;\n }\n this.seenFullScopeRequests.add(dep.scopeName);\n this.Q.push(dep);\n }\n else {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n // already processed in full\n continue;\n }\n if (this.seenPartialScopeRequests.has(dep.toKey())) {\n // already processed\n continue;\n }\n this.seenPartialScopeRequests.add(dep.toKey());\n this.Q.push(dep);\n }\n }\n }\n}\nfunction collectReferencesOfReference(reference, baseGrammarScopeName, repo, result) {\n const selfGrammar = repo.lookup(reference.scopeName);\n if (!selfGrammar) {\n if (reference.scopeName === baseGrammarScopeName) {\n throw new Error(`No grammar provided for <${baseGrammarScopeName}>`);\n }\n return;\n }\n const baseGrammar = repo.lookup(baseGrammarScopeName);\n if (reference instanceof TopLevelRuleReference) {\n collectExternalReferencesInTopLevelRule({ baseGrammar, selfGrammar }, result);\n }\n else {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { baseGrammar, selfGrammar, repository: selfGrammar.repository }, result);\n }\n const injections = repo.injections(reference.scopeName);\n if (injections) {\n for (const injection of injections) {\n result.add(new TopLevelRuleReference(injection));\n }\n }\n}\nfunction collectExternalReferencesInTopLevelRepositoryRule(ruleName, context, result) {\n if (context.repository && context.repository[ruleName]) {\n const rule = context.repository[ruleName];\n collectExternalReferencesInRules([rule], context, result);\n }\n}\nfunction collectExternalReferencesInTopLevelRule(context, result) {\n if (context.selfGrammar.patterns && Array.isArray(context.selfGrammar.patterns)) {\n collectExternalReferencesInRules(context.selfGrammar.patterns, { ...context, repository: context.selfGrammar.repository }, result);\n }\n if (context.selfGrammar.injections) {\n collectExternalReferencesInRules(Object.values(context.selfGrammar.injections), { ...context, repository: context.selfGrammar.repository }, result);\n }\n}\nfunction collectExternalReferencesInRules(rules, context, result) {\n for (const rule of rules) {\n if (result.visitedRule.has(rule)) {\n continue;\n }\n result.visitedRule.add(rule);\n const patternRepository = rule.repository ? mergeObjects({}, context.repository, rule.repository) : context.repository;\n if (Array.isArray(rule.patterns)) {\n collectExternalReferencesInRules(rule.patterns, { ...context, repository: patternRepository }, result);\n }\n const include = rule.include;\n if (!include) {\n continue;\n }\n const reference = parseInclude(include);\n switch (reference.kind) {\n case 0 /* IncludeReferenceKind.Base */:\n collectExternalReferencesInTopLevelRule({ ...context, selfGrammar: context.baseGrammar }, result);\n break;\n case 1 /* IncludeReferenceKind.Self */:\n collectExternalReferencesInTopLevelRule(context, result);\n break;\n case 2 /* IncludeReferenceKind.RelativeReference */:\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { ...context, repository: patternRepository }, result);\n break;\n case 3 /* IncludeReferenceKind.TopLevelReference */:\n case 4 /* IncludeReferenceKind.TopLevelRepositoryReference */:\n const selfGrammar = reference.scopeName === context.selfGrammar.scopeName\n ? context.selfGrammar\n : reference.scopeName === context.baseGrammar.scopeName\n ? context.baseGrammar\n : undefined;\n if (selfGrammar) {\n const newContext = { baseGrammar: context.baseGrammar, selfGrammar, repository: patternRepository };\n if (reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */) {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, newContext, result);\n }\n else {\n collectExternalReferencesInTopLevelRule(newContext, result);\n }\n }\n else {\n if (reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */) {\n result.add(new TopLevelRepositoryRuleReference(reference.scopeName, reference.ruleName));\n }\n else {\n result.add(new TopLevelRuleReference(reference.scopeName));\n }\n }\n break;\n }\n }\n}\nclass BaseReference {\n kind = 0 /* IncludeReferenceKind.Base */;\n}\nclass SelfReference {\n kind = 1 /* IncludeReferenceKind.Self */;\n}\nclass RelativeReference {\n ruleName;\n kind = 2 /* IncludeReferenceKind.RelativeReference */;\n constructor(ruleName) {\n this.ruleName = ruleName;\n }\n}\nclass TopLevelReference {\n scopeName;\n kind = 3 /* IncludeReferenceKind.TopLevelReference */;\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n}\nclass TopLevelRepositoryReference {\n scopeName;\n ruleName;\n kind = 4 /* IncludeReferenceKind.TopLevelRepositoryReference */;\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n}\nfunction parseInclude(include) {\n if (include === '$base') {\n return new BaseReference();\n }\n else if (include === '$self') {\n return new SelfReference();\n }\n const indexOfSharp = include.indexOf(\"#\");\n if (indexOfSharp === -1) {\n return new TopLevelReference(include);\n }\n else if (indexOfSharp === 0) {\n return new RelativeReference(include.substring(1));\n }\n else {\n const scopeName = include.substring(0, indexOfSharp);\n const ruleName = include.substring(indexOfSharp + 1);\n return new TopLevelRepositoryReference(scopeName, ruleName);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nconst HAS_BACK_REFERENCES = /\\\\(\\d+)/;\nconst BACK_REFERENCING_END = /\\\\(\\d+)/g;\n// This is a special constant to indicate that the end regexp matched.\nconst endRuleId = -1;\n// This is a special constant to indicate that the while regexp matched.\nconst whileRuleId = -2;\nfunction ruleIdFromNumber(id) {\n return id;\n}\nfunction ruleIdToNumber(id) {\n return id;\n}\nclass Rule {\n $location;\n id;\n _nameIsCapturing;\n _name;\n _contentNameIsCapturing;\n _contentName;\n constructor($location, id, name, contentName) {\n this.$location = $location;\n this.id = id;\n this._name = name || null;\n this._nameIsCapturing = RegexSource.hasCaptures(this._name);\n this._contentName = contentName || null;\n this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);\n }\n get debugName() {\n const location = this.$location ? `${basename(this.$location.filename)}:${this.$location.line}` : 'unknown';\n return `${this.constructor.name}#${this.id} @ ${location}`;\n }\n getName(lineText, captureIndices) {\n if (!this._nameIsCapturing || this._name === null || lineText === null || captureIndices === null) {\n return this._name;\n }\n return RegexSource.replaceCaptures(this._name, lineText, captureIndices);\n }\n getContentName(lineText, captureIndices) {\n if (!this._contentNameIsCapturing || this._contentName === null) {\n return this._contentName;\n }\n return RegexSource.replaceCaptures(this._contentName, lineText, captureIndices);\n }\n}\nclass CaptureRule extends Rule {\n retokenizeCapturedWithRuleId;\n constructor($location, id, name, contentName, retokenizeCapturedWithRuleId) {\n super($location, id, name, contentName);\n this.retokenizeCapturedWithRuleId = retokenizeCapturedWithRuleId;\n }\n dispose() {\n // nothing to dispose\n }\n collectPatterns(grammar, out) {\n throw new Error('Not supported!');\n }\n compile(grammar, endRegexSource) {\n throw new Error('Not supported!');\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n throw new Error('Not supported!');\n }\n}\nclass MatchRule extends Rule {\n _match;\n captures;\n _cachedCompiledPatterns;\n constructor($location, id, name, match, captures) {\n super($location, id, name, null);\n this._match = new RegExpSource(match, this.id);\n this.captures = captures;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugMatchRegExp() {\n return `${this._match.source}`;\n }\n collectPatterns(grammar, out) {\n out.push(this._match);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass IncludeOnlyRule extends Rule {\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, patterns) {\n super($location, id, name, contentName);\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n collectPatterns(grammar, out) {\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, out);\n }\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass BeginEndRule extends Rule {\n _begin;\n beginCaptures;\n _end;\n endHasBackReferences;\n endCaptures;\n applyEndPatternLast;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, end, endCaptures, applyEndPatternLast, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this._end = new RegExpSource(end ? end : '\\uFFFF', -1);\n this.endHasBackReferences = this._end.hasBackReferences;\n this.endCaptures = endCaptures;\n this.applyEndPatternLast = applyEndPatternLast || false;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugEndRegExp() {\n return `${this._end.source}`;\n }\n getEndWithResolvedBackReferences(lineText, captureIndices) {\n return this._end.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.push(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n else {\n this._cachedCompiledPatterns.unshift(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n }\n if (this._end.hasBackReferences) {\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length() - 1, endRegexSource);\n }\n else {\n this._cachedCompiledPatterns.setSource(0, endRegexSource);\n }\n }\n return this._cachedCompiledPatterns;\n }\n}\nclass BeginWhileRule extends Rule {\n _begin;\n beginCaptures;\n whileCaptures;\n _while;\n whileHasBackReferences;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n _cachedCompiledWhilePatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, _while, whileCaptures, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this.whileCaptures = whileCaptures;\n this._while = new RegExpSource(_while, whileRuleId);\n this.whileHasBackReferences = this._while.hasBackReferences;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n this._cachedCompiledWhilePatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n if (this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns.dispose();\n this._cachedCompiledWhilePatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugWhileRegExp() {\n return `${this._while.source}`;\n }\n getWhileWithResolvedBackReferences(lineText, captureIndices) {\n return this._while.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n }\n return this._cachedCompiledPatterns;\n }\n compileWhile(grammar, endRegexSource) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compile(grammar);\n }\n compileWhileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledWhilePatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns = new RegExpSourceList();\n this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences ? this._while.clone() : this._while);\n }\n if (this._while.hasBackReferences) {\n this._cachedCompiledWhilePatterns.setSource(0, endRegexSource ? endRegexSource : '\\uFFFF');\n }\n return this._cachedCompiledWhilePatterns;\n }\n}\nclass RuleFactory {\n static createCaptureRule(helper, $location, name, contentName, retokenizeCapturedWithRuleId) {\n return helper.registerRule((id) => {\n return new CaptureRule($location, id, name, contentName, retokenizeCapturedWithRuleId);\n });\n }\n static getCompiledRuleId(desc, helper, repository) {\n if (!desc.id) {\n helper.registerRule((id) => {\n desc.id = id;\n if (desc.match) {\n return new MatchRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.match, RuleFactory._compileCaptures(desc.captures, helper, repository));\n }\n if (typeof desc.begin === 'undefined') {\n if (desc.repository) {\n repository = mergeObjects({}, repository, desc.repository);\n }\n let patterns = desc.patterns;\n if (typeof patterns === 'undefined' && desc.include) {\n patterns = [{ include: desc.include }];\n }\n return new IncludeOnlyRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, RuleFactory._compilePatterns(patterns, helper, repository));\n }\n if (desc.while) {\n return new BeginWhileRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.while, RuleFactory._compileCaptures(desc.whileCaptures || desc.captures, helper, repository), RuleFactory._compilePatterns(desc.patterns, helper, repository));\n }\n return new BeginEndRule(desc.$vscodeTextmateLocation, desc.id, desc.name, desc.contentName, desc.begin, RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository), desc.end, RuleFactory._compileCaptures(desc.endCaptures || desc.captures, helper, repository), desc.applyEndPatternLast, RuleFactory._compilePatterns(desc.patterns, helper, repository));\n });\n }\n return desc.id;\n }\n static _compileCaptures(captures, helper, repository) {\n let r = [];\n if (captures) {\n // Find the maximum capture id\n let maximumCaptureId = 0;\n for (const captureId in captures) {\n if (captureId === '$vscodeTextmateLocation') {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n if (numericCaptureId > maximumCaptureId) {\n maximumCaptureId = numericCaptureId;\n }\n }\n // Initialize result\n for (let i = 0; i <= maximumCaptureId; i++) {\n r[i] = null;\n }\n // Fill out result\n for (const captureId in captures) {\n if (captureId === '$vscodeTextmateLocation') {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n let retokenizeCapturedWithRuleId = 0;\n if (captures[captureId].patterns) {\n retokenizeCapturedWithRuleId = RuleFactory.getCompiledRuleId(captures[captureId], helper, repository);\n }\n r[numericCaptureId] = RuleFactory.createCaptureRule(helper, captures[captureId].$vscodeTextmateLocation, captures[captureId].name, captures[captureId].contentName, retokenizeCapturedWithRuleId);\n }\n }\n return r;\n }\n static _compilePatterns(patterns, helper, repository) {\n let r = [];\n if (patterns) {\n for (let i = 0, len = patterns.length; i < len; i++) {\n const pattern = patterns[i];\n let ruleId = -1;\n if (pattern.include) {\n const reference = parseInclude(pattern.include);\n switch (reference.kind) {\n case 0 /* IncludeReferenceKind.Base */:\n case 1 /* IncludeReferenceKind.Self */:\n ruleId = RuleFactory.getCompiledRuleId(repository[pattern.include], helper, repository);\n break;\n case 2 /* IncludeReferenceKind.RelativeReference */:\n // Local include found in `repository`\n let localIncludedRule = repository[reference.ruleName];\n if (localIncludedRule) {\n ruleId = RuleFactory.getCompiledRuleId(localIncludedRule, helper, repository);\n }\n break;\n case 3 /* IncludeReferenceKind.TopLevelReference */:\n case 4 /* IncludeReferenceKind.TopLevelRepositoryReference */:\n const externalGrammarName = reference.scopeName;\n const externalGrammarInclude = reference.kind === 4 /* IncludeReferenceKind.TopLevelRepositoryReference */\n ? reference.ruleName\n : null;\n // External include\n const externalGrammar = helper.getExternalGrammar(externalGrammarName, repository);\n if (externalGrammar) {\n if (externalGrammarInclude) {\n let externalIncludedRule = externalGrammar.repository[externalGrammarInclude];\n if (externalIncludedRule) {\n ruleId = RuleFactory.getCompiledRuleId(externalIncludedRule, helper, externalGrammar.repository);\n }\n }\n else {\n ruleId = RuleFactory.getCompiledRuleId(externalGrammar.repository.$self, helper, externalGrammar.repository);\n }\n }\n break;\n }\n }\n else {\n ruleId = RuleFactory.getCompiledRuleId(pattern, helper, repository);\n }\n if (ruleId !== -1) {\n const rule = helper.getRule(ruleId);\n let skipRule = false;\n if (rule instanceof IncludeOnlyRule || rule instanceof BeginEndRule || rule instanceof BeginWhileRule) {\n if (rule.hasMissingPatterns && rule.patterns.length === 0) {\n skipRule = true;\n }\n }\n if (skipRule) {\n // console.log('REMOVING RULE ENTIRELY DUE TO EMPTY PATTERNS THAT ARE MISSING');\n continue;\n }\n r.push(ruleId);\n }\n }\n }\n return {\n patterns: r,\n hasMissingPatterns: ((patterns ? patterns.length : 0) !== r.length)\n };\n }\n}\nclass RegExpSource {\n source;\n ruleId;\n hasAnchor;\n hasBackReferences;\n _anchorCache;\n constructor(regExpSource, ruleId) {\n if (regExpSource) {\n const len = regExpSource.length;\n let lastPushedPos = 0;\n let output = [];\n let hasAnchor = false;\n for (let pos = 0; pos < len; pos++) {\n const ch = regExpSource.charAt(pos);\n if (ch === '\\\\') {\n if (pos + 1 < len) {\n const nextCh = regExpSource.charAt(pos + 1);\n if (nextCh === 'z') {\n output.push(regExpSource.substring(lastPushedPos, pos));\n output.push('$(?!\\\\n)(?<!\\\\n)');\n lastPushedPos = pos + 2;\n }\n else if (nextCh === 'A' || nextCh === 'G') {\n hasAnchor = true;\n }\n pos++;\n }\n }\n }\n this.hasAnchor = hasAnchor;\n if (lastPushedPos === 0) {\n // No \\z hit\n this.source = regExpSource;\n }\n else {\n output.push(regExpSource.substring(lastPushedPos, len));\n this.source = output.join('');\n }\n }\n else {\n this.hasAnchor = false;\n this.source = regExpSource;\n }\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n else {\n this._anchorCache = null;\n }\n this.ruleId = ruleId;\n this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);\n // console.log('input: ' + regExpSource + ' => ' + this.source + ', ' + this.hasAnchor);\n }\n clone() {\n return new RegExpSource(this.source, this.ruleId);\n }\n setSource(newSource) {\n if (this.source === newSource) {\n return;\n }\n this.source = newSource;\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n }\n resolveBackReferences(lineText, captureIndices) {\n let capturedValues = captureIndices.map((capture) => {\n return lineText.substring(capture.start, capture.end);\n });\n BACK_REFERENCING_END.lastIndex = 0;\n return this.source.replace(BACK_REFERENCING_END, (match, g1) => {\n return escapeRegExpCharacters(capturedValues[parseInt(g1, 10)] || '');\n });\n }\n _buildAnchorCache() {\n let A0_G0_result = [];\n let A0_G1_result = [];\n let A1_G0_result = [];\n let A1_G1_result = [];\n let pos, len, ch, nextCh;\n for (pos = 0, len = this.source.length; pos < len; pos++) {\n ch = this.source.charAt(pos);\n A0_G0_result[pos] = ch;\n A0_G1_result[pos] = ch;\n A1_G0_result[pos] = ch;\n A1_G1_result[pos] = ch;\n if (ch === '\\\\') {\n if (pos + 1 < len) {\n nextCh = this.source.charAt(pos + 1);\n if (nextCh === 'A') {\n A0_G0_result[pos + 1] = '\\uFFFF';\n A0_G1_result[pos + 1] = '\\uFFFF';\n A1_G0_result[pos + 1] = 'A';\n A1_G1_result[pos + 1] = 'A';\n }\n else if (nextCh === 'G') {\n A0_G0_result[pos + 1] = '\\uFFFF';\n A0_G1_result[pos + 1] = 'G';\n A1_G0_result[pos + 1] = '\\uFFFF';\n A1_G1_result[pos + 1] = 'G';\n }\n else {\n A0_G0_result[pos + 1] = nextCh;\n A0_G1_result[pos + 1] = nextCh;\n A1_G0_result[pos + 1] = nextCh;\n A1_G1_result[pos + 1] = nextCh;\n }\n pos++;\n }\n }\n }\n return {\n A0_G0: A0_G0_result.join(''),\n A0_G1: A0_G1_result.join(''),\n A1_G0: A1_G0_result.join(''),\n A1_G1: A1_G1_result.join('')\n };\n }\n resolveAnchors(allowA, allowG) {\n if (!this.hasAnchor || !this._anchorCache) {\n return this.source;\n }\n if (allowA) {\n if (allowG) {\n return this._anchorCache.A1_G1;\n }\n else {\n return this._anchorCache.A1_G0;\n }\n }\n else {\n if (allowG) {\n return this._anchorCache.A0_G1;\n }\n else {\n return this._anchorCache.A0_G0;\n }\n }\n }\n}\nclass RegExpSourceList {\n _items;\n _hasAnchors;\n _cached;\n _anchorCache;\n constructor() {\n this._items = [];\n this._hasAnchors = false;\n this._cached = null;\n this._anchorCache = {\n A0_G0: null,\n A0_G1: null,\n A1_G0: null,\n A1_G1: null\n };\n }\n dispose() {\n this._disposeCaches();\n }\n _disposeCaches() {\n if (this._cached) {\n this._cached.dispose();\n this._cached = null;\n }\n if (this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0.dispose();\n this._anchorCache.A0_G0 = null;\n }\n if (this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1.dispose();\n this._anchorCache.A0_G1 = null;\n }\n if (this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0.dispose();\n this._anchorCache.A1_G0 = null;\n }\n if (this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1.dispose();\n this._anchorCache.A1_G1 = null;\n }\n }\n push(item) {\n this._items.push(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n unshift(item) {\n this._items.unshift(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n length() {\n return this._items.length;\n }\n setSource(index, newSource) {\n if (this._items[index].source !== newSource) {\n // bust the cache\n this._disposeCaches();\n this._items[index].setSource(newSource);\n }\n }\n compile(onigLib) {\n if (!this._cached) {\n let regExps = this._items.map(e => e.source);\n this._cached = new CompiledRule(onigLib, regExps, this._items.map(e => e.ruleId));\n }\n return this._cached;\n }\n compileAG(onigLib, allowA, allowG) {\n if (!this._hasAnchors) {\n return this.compile(onigLib);\n }\n else {\n if (allowA) {\n if (allowG) {\n if (!this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G1;\n }\n else {\n if (!this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G0;\n }\n }\n else {\n if (allowG) {\n if (!this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G1;\n }\n else {\n if (!this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G0;\n }\n }\n }\n }\n _resolveAnchors(onigLib, allowA, allowG) {\n let regExps = this._items.map(e => e.resolveAnchors(allowA, allowG));\n return new CompiledRule(onigLib, regExps, this._items.map(e => e.ruleId));\n }\n}\nclass CompiledRule {\n regExps;\n rules;\n scanner;\n constructor(onigLib, regExps, rules) {\n this.regExps = regExps;\n this.rules = rules;\n this.scanner = onigLib.createOnigScanner(regExps);\n }\n dispose() {\n if (typeof this.scanner.dispose === \"function\") {\n this.scanner.dispose();\n }\n }\n toString() {\n const r = [];\n for (let i = 0, len = this.rules.length; i < len; i++) {\n r.push(\" - \" + this.rules[i] + \": \" + this.regExps[i]);\n }\n return r.join(\"\\n\");\n }\n findNextMatchSync(string, startPosition, options) {\n const result = this.scanner.findNextMatchSync(string, startPosition, options);\n if (!result) {\n return null;\n }\n return {\n ruleId: this.rules[result.index],\n captureIndices: result.captureIndices,\n };\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass Theme {\n _colorMap;\n _defaults;\n _root;\n static createFromRawTheme(source, colorMap) {\n return this.createFromParsedTheme(parseTheme(source), colorMap);\n }\n static createFromParsedTheme(source, colorMap) {\n return resolveParsedThemeRules(source, colorMap);\n }\n _cachedMatchRoot = new CachedFn((scopeName) => this._root.match(scopeName));\n constructor(_colorMap, _defaults, _root) {\n this._colorMap = _colorMap;\n this._defaults = _defaults;\n this._root = _root;\n }\n getColorMap() {\n return this._colorMap.getColorMap();\n }\n getDefaults() {\n return this._defaults;\n }\n match(scopePath) {\n if (scopePath === null) {\n return this._defaults;\n }\n const scopeName = scopePath.scopeName;\n const matchingTrieElements = this._cachedMatchRoot.get(scopeName);\n const effectiveRule = matchingTrieElements.find((v) => _scopePathMatchesParentScopes(scopePath.parent, v.parentScopes));\n if (!effectiveRule) {\n return null;\n }\n return new StyleAttributes(effectiveRule.fontStyle, effectiveRule.foreground, effectiveRule.background);\n }\n}\nclass ScopeStack {\n parent;\n scopeName;\n static push(path, scopeNames) {\n for (const name of scopeNames) {\n path = new ScopeStack(path, name);\n }\n return path;\n }\n static from(...segments) {\n let result = null;\n for (let i = 0; i < segments.length; i++) {\n result = new ScopeStack(result, segments[i]);\n }\n return result;\n }\n constructor(parent, scopeName) {\n this.parent = parent;\n this.scopeName = scopeName;\n }\n push(scopeName) {\n return new ScopeStack(this, scopeName);\n }\n getSegments() {\n let item = this;\n const result = [];\n while (item) {\n result.push(item.scopeName);\n item = item.parent;\n }\n result.reverse();\n return result;\n }\n toString() {\n return this.getSegments().join(' ');\n }\n extends(other) {\n if (this === other) {\n return true;\n }\n if (this.parent === null) {\n return false;\n }\n return this.parent.extends(other);\n }\n getExtensionIfDefined(base) {\n const result = [];\n let item = this;\n while (item && item !== base) {\n result.push(item.scopeName);\n item = item.parent;\n }\n return item === base ? result.reverse() : undefined;\n }\n}\nfunction _scopePathMatchesParentScopes(scopePath, parentScopes) {\n if (parentScopes === null) {\n return true;\n }\n let index = 0;\n let scopePattern = parentScopes[index];\n while (scopePath) {\n if (_matchesScope(scopePath.scopeName, scopePattern)) {\n index++;\n if (index === parentScopes.length) {\n return true;\n }\n scopePattern = parentScopes[index];\n }\n scopePath = scopePath.parent;\n }\n return false;\n}\nfunction _matchesScope(scopeName, scopePattern) {\n return scopePattern === scopeName || (scopeName.startsWith(scopePattern) && scopeName[scopePattern.length] === '.');\n}\nclass StyleAttributes {\n fontStyle;\n foregroundId;\n backgroundId;\n constructor(fontStyle, foregroundId, backgroundId) {\n this.fontStyle = fontStyle;\n this.foregroundId = foregroundId;\n this.backgroundId = backgroundId;\n }\n}\n/**\n * Parse a raw theme into rules.\n */\nfunction parseTheme(source) {\n if (!source) {\n return [];\n }\n if (!source.settings || !Array.isArray(source.settings)) {\n return [];\n }\n let settings = source.settings;\n let result = [], resultLen = 0;\n for (let i = 0, len = settings.length; i < len; i++) {\n let entry = settings[i];\n if (!entry.settings) {\n continue;\n }\n let scopes;\n if (typeof entry.scope === 'string') {\n let _scope = entry.scope;\n // remove leading commas\n _scope = _scope.replace(/^[,]+/, '');\n // remove trailing commans\n _scope = _scope.replace(/[,]+$/, '');\n scopes = _scope.split(',');\n }\n else if (Array.isArray(entry.scope)) {\n scopes = entry.scope;\n }\n else {\n scopes = [''];\n }\n let fontStyle = -1 /* FontStyle.NotSet */;\n if (typeof entry.settings.fontStyle === 'string') {\n fontStyle = 0 /* FontStyle.None */;\n let segments = entry.settings.fontStyle.split(' ');\n for (let j = 0, lenJ = segments.length; j < lenJ; j++) {\n let segment = segments[j];\n switch (segment) {\n case 'italic':\n fontStyle = fontStyle | 1 /* FontStyle.Italic */;\n break;\n case 'bold':\n fontStyle = fontStyle | 2 /* FontStyle.Bold */;\n break;\n case 'underline':\n fontStyle = fontStyle | 4 /* FontStyle.Underline */;\n break;\n case 'strikethrough':\n fontStyle = fontStyle | 8 /* FontStyle.Strikethrough */;\n break;\n }\n }\n }\n let foreground = null;\n if (typeof entry.settings.foreground === 'string' && isValidHexColor(entry.settings.foreground)) {\n foreground = entry.settings.foreground;\n }\n let background = null;\n if (typeof entry.settings.background === 'string' && isValidHexColor(entry.settings.background)) {\n background = entry.settings.background;\n }\n for (let j = 0, lenJ = scopes.length; j < lenJ; j++) {\n let _scope = scopes[j].trim();\n let segments = _scope.split(' ');\n let scope = segments[segments.length - 1];\n let parentScopes = null;\n if (segments.length > 1) {\n parentScopes = segments.slice(0, segments.length - 1);\n parentScopes.reverse();\n }\n result[resultLen++] = new ParsedThemeRule(scope, parentScopes, i, fontStyle, foreground, background);\n }\n }\n return result;\n}\nclass ParsedThemeRule {\n scope;\n parentScopes;\n index;\n fontStyle;\n foreground;\n background;\n constructor(scope, parentScopes, index, fontStyle, foreground, background) {\n this.scope = scope;\n this.parentScopes = parentScopes;\n this.index = index;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n}\n/**\n * Resolve rules (i.e. inheritance).\n */\nfunction resolveParsedThemeRules(parsedThemeRules, _colorMap) {\n // Sort rules lexicographically, and then by index if necessary\n parsedThemeRules.sort((a, b) => {\n let r = strcmp(a.scope, b.scope);\n if (r !== 0) {\n return r;\n }\n r = strArrCmp(a.parentScopes, b.parentScopes);\n if (r !== 0) {\n return r;\n }\n return a.index - b.index;\n });\n // Determine defaults\n let defaultFontStyle = 0 /* FontStyle.None */;\n let defaultForeground = '#000000';\n let defaultBackground = '#ffffff';\n while (parsedThemeRules.length >= 1 && parsedThemeRules[0].scope === '') {\n let incomingDefaults = parsedThemeRules.shift();\n if (incomingDefaults.fontStyle !== -1 /* FontStyle.NotSet */) {\n defaultFontStyle = incomingDefaults.fontStyle;\n }\n if (incomingDefaults.foreground !== null) {\n defaultForeground = incomingDefaults.foreground;\n }\n if (incomingDefaults.background !== null) {\n defaultBackground = incomingDefaults.background;\n }\n }\n let colorMap = new ColorMap(_colorMap);\n let defaults = new StyleAttributes(defaultFontStyle, colorMap.getId(defaultForeground), colorMap.getId(defaultBackground));\n let root = new ThemeTrieElement(new ThemeTrieElementRule(0, null, -1 /* FontStyle.NotSet */, 0, 0), []);\n for (let i = 0, len = parsedThemeRules.length; i < len; i++) {\n let rule = parsedThemeRules[i];\n root.insert(0, rule.scope, rule.parentScopes, rule.fontStyle, colorMap.getId(rule.foreground), colorMap.getId(rule.background));\n }\n return new Theme(colorMap, defaults, root);\n}\nclass ColorMap {\n _isFrozen;\n _lastColorId;\n _id2color;\n _color2id;\n constructor(_colorMap) {\n this._lastColorId = 0;\n this._id2color = [];\n this._color2id = Object.create(null);\n if (Array.isArray(_colorMap)) {\n this._isFrozen = true;\n for (let i = 0, len = _colorMap.length; i < len; i++) {\n this._color2id[_colorMap[i]] = i;\n this._id2color[i] = _colorMap[i];\n }\n }\n else {\n this._isFrozen = false;\n }\n }\n getId(color) {\n if (color === null) {\n return 0;\n }\n color = color.toUpperCase();\n let value = this._color2id[color];\n if (value) {\n return value;\n }\n if (this._isFrozen) {\n throw new Error(`Missing color in color map - ${color}`);\n }\n value = ++this._lastColorId;\n this._color2id[color] = value;\n this._id2color[value] = color;\n return value;\n }\n getColorMap() {\n return this._id2color.slice(0);\n }\n}\nclass ThemeTrieElementRule {\n scopeDepth;\n parentScopes;\n fontStyle;\n foreground;\n background;\n constructor(scopeDepth, parentScopes, fontStyle, foreground, background) {\n this.scopeDepth = scopeDepth;\n this.parentScopes = parentScopes;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n clone() {\n return new ThemeTrieElementRule(this.scopeDepth, this.parentScopes, this.fontStyle, this.foreground, this.background);\n }\n static cloneArr(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = arr[i].clone();\n }\n return r;\n }\n acceptOverwrite(scopeDepth, fontStyle, foreground, background) {\n if (this.scopeDepth > scopeDepth) {\n console.log('how did this happen?');\n }\n else {\n this.scopeDepth = scopeDepth;\n }\n // console.log('TODO -> my depth: ' + this.scopeDepth + ', overwriting depth: ' + scopeDepth);\n if (fontStyle !== -1 /* FontStyle.NotSet */) {\n this.fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n this.foreground = foreground;\n }\n if (background !== 0) {\n this.background = background;\n }\n }\n}\nclass ThemeTrieElement {\n _mainRule;\n _children;\n _rulesWithParentScopes;\n constructor(_mainRule, rulesWithParentScopes = [], _children = {}) {\n this._mainRule = _mainRule;\n this._children = _children;\n this._rulesWithParentScopes = rulesWithParentScopes;\n }\n static _sortBySpecificity(arr) {\n if (arr.length === 1) {\n return arr;\n }\n arr.sort(this._cmpBySpecificity);\n return arr;\n }\n static _cmpBySpecificity(a, b) {\n if (a.scopeDepth === b.scopeDepth) {\n const aParentScopes = a.parentScopes;\n const bParentScopes = b.parentScopes;\n let aParentScopesLen = aParentScopes === null ? 0 : aParentScopes.length;\n let bParentScopesLen = bParentScopes === null ? 0 : bParentScopes.length;\n if (aParentScopesLen === bParentScopesLen) {\n for (let i = 0; i < aParentScopesLen; i++) {\n const aLen = aParentScopes[i].length;\n const bLen = bParentScopes[i].length;\n if (aLen !== bLen) {\n return bLen - aLen;\n }\n }\n }\n return bParentScopesLen - aParentScopesLen;\n }\n return b.scopeDepth - a.scopeDepth;\n }\n match(scope) {\n if (scope === '') {\n return ThemeTrieElement._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\n }\n let dotIndex = scope.indexOf('.');\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = '';\n }\n else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n if (this._children.hasOwnProperty(head)) {\n return this._children[head].match(tail);\n }\n return ThemeTrieElement._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\n }\n insert(scopeDepth, scope, parentScopes, fontStyle, foreground, background) {\n if (scope === '') {\n this._doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background);\n return;\n }\n let dotIndex = scope.indexOf('.');\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = '';\n }\n else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n let child;\n if (this._children.hasOwnProperty(head)) {\n child = this._children[head];\n }\n else {\n child = new ThemeTrieElement(this._mainRule.clone(), ThemeTrieElementRule.cloneArr(this._rulesWithParentScopes));\n this._children[head] = child;\n }\n child.insert(scopeDepth + 1, tail, parentScopes, fontStyle, foreground, background);\n }\n _doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background) {\n if (parentScopes === null) {\n // Merge into the main rule\n this._mainRule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n // Try to merge into existing rule\n for (let i = 0, len = this._rulesWithParentScopes.length; i < len; i++) {\n let rule = this._rulesWithParentScopes[i];\n if (strArrCmp(rule.parentScopes, parentScopes) === 0) {\n // bingo! => we get to merge this into an existing one\n rule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n }\n // Must add a new rule\n // Inherit from main rule\n if (fontStyle === -1 /* FontStyle.NotSet */) {\n fontStyle = this._mainRule.fontStyle;\n }\n if (foreground === 0) {\n foreground = this._mainRule.foreground;\n }\n if (background === 0) {\n background = this._mainRule.background;\n }\n this._rulesWithParentScopes.push(new ThemeTrieElementRule(scopeDepth, parentScopes, fontStyle, foreground, background));\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass BasicScopeAttributes {\n languageId;\n tokenType;\n constructor(languageId, tokenType) {\n this.languageId = languageId;\n this.tokenType = tokenType;\n }\n}\nclass BasicScopeAttributesProvider {\n _defaultAttributes;\n _embeddedLanguagesMatcher;\n constructor(initialLanguageId, embeddedLanguages) {\n this._defaultAttributes = new BasicScopeAttributes(initialLanguageId, 8 /* OptionalStandardTokenType.NotSet */);\n this._embeddedLanguagesMatcher = new ScopeMatcher(Object.entries(embeddedLanguages || {}));\n }\n getDefaultAttributes() {\n return this._defaultAttributes;\n }\n getBasicScopeAttributes(scopeName) {\n if (scopeName === null) {\n return BasicScopeAttributesProvider._NULL_SCOPE_METADATA;\n }\n return this._getBasicScopeAttributes.get(scopeName);\n }\n static _NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n _getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\n /**\n * Given a produced TM scope, return the language that token describes or null if unknown.\n * e.g. source.html => html, source.css.embedded.html => css, punctuation.definition.tag.html => null\n */\n _scopeToLanguage(scope) {\n return this._embeddedLanguagesMatcher.match(scope) || 0;\n }\n _toStandardTokenType(scopeName) {\n const m = scopeName.match(BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP);\n if (!m) {\n return 8 /* OptionalStandardTokenType.NotSet */;\n }\n switch (m[1]) {\n case \"comment\":\n return 1 /* OptionalStandardTokenType.Comment */;\n case \"string\":\n return 2 /* OptionalStandardTokenType.String */;\n case \"regex\":\n return 3 /* OptionalStandardTokenType.RegEx */;\n case \"meta.embedded\":\n return 0 /* OptionalStandardTokenType.Other */;\n }\n throw new Error(\"Unexpected match for standard token type!\");\n }\n static STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\n}\nclass ScopeMatcher {\n values;\n scopesRegExp;\n constructor(values) {\n if (values.length === 0) {\n this.values = null;\n this.scopesRegExp = null;\n }\n else {\n this.values = new Map(values);\n // create the regex\n const escapedScopes = values.map(([scopeName, value]) => escapeRegExpCharacters(scopeName));\n escapedScopes.sort();\n escapedScopes.reverse(); // Longest scope first\n this.scopesRegExp = new RegExp(`^((${escapedScopes.join(\")|(\")}))($|\\\\.)`, \"\");\n }\n }\n match(scope) {\n if (!this.scopesRegExp) {\n return undefined;\n }\n const m = scope.match(this.scopesRegExp);\n if (!m) {\n // no scopes matched\n return undefined;\n }\n return this.values.get(m[1]);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass TokenizeStringResult {\n stack;\n stoppedEarly;\n constructor(stack, stoppedEarly) {\n this.stack = stack;\n this.stoppedEarly = stoppedEarly;\n }\n}\n/**\n * Tokenize a string\n * @param grammar\n * @param lineText\n * @param isFirstLine\n * @param linePos\n * @param stack\n * @param lineTokens\n * @param checkWhileConditions\n * @param timeLimit Use `0` to indicate no time limit\n * @returns the StackElement or StackElement.TIME_LIMIT_REACHED if the time limit has been reached\n */\nfunction _tokenizeString(grammar, lineText, isFirstLine, linePos, stack, lineTokens, checkWhileConditions, timeLimit) {\n const lineLength = lineText.content.length;\n let STOP = false;\n let anchorPosition = -1;\n if (checkWhileConditions) {\n const whileCheckResult = _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens);\n stack = whileCheckResult.stack;\n linePos = whileCheckResult.linePos;\n isFirstLine = whileCheckResult.isFirstLine;\n anchorPosition = whileCheckResult.anchorPosition;\n }\n const startTime = Date.now();\n while (!STOP) {\n if (timeLimit !== 0) {\n const elapsedTime = Date.now() - startTime;\n if (elapsedTime > timeLimit) {\n return new TokenizeStringResult(stack, true);\n }\n }\n scanNext(); // potentially modifies linePos && anchorPosition\n }\n return new TokenizeStringResult(stack, false);\n function scanNext() {\n const r = matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!r) {\n // No match\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n const captureIndices = r.captureIndices;\n const matchedRuleId = r.matchedRuleId;\n const hasAdvanced = captureIndices && captureIndices.length > 0\n ? captureIndices[0].end > linePos\n : false;\n if (matchedRuleId === endRuleId) {\n // We matched the `end` for this rule => pop it\n const poppedRule = stack.getRule(grammar);\n lineTokens.produce(stack, captureIndices[0].start);\n stack = stack.withContentNameScopesList(stack.nameScopesList);\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, poppedRule.endCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n // pop\n const popped = stack;\n stack = stack.parent;\n anchorPosition = popped.getAnchorPos();\n if (!hasAdvanced && popped.getEnterPos() === linePos) {\n // See https://github.com/Microsoft/vscode-textmate/issues/12\n // Let's assume this was a mistake by the grammar author and the intent was to continue in this state\n stack = popped;\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else {\n // We matched a rule!\n const _rule = grammar.getRule(matchedRuleId);\n lineTokens.produce(stack, captureIndices[0].start);\n const beforePush = stack;\n // push it on the stack rule\n const scopeName = _rule.getName(lineText.content, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n stack = stack.push(matchedRuleId, linePos, anchorPosition, captureIndices[0].end === lineLength, null, nameScopesList, nameScopesList);\n if (_rule instanceof BeginEndRule) {\n const pushedRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(lineText.content, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.endHasBackReferences) {\n stack = stack.withEndRule(pushedRule.getEndWithResolvedBackReferences(lineText.content, captureIndices));\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else if (_rule instanceof BeginWhileRule) {\n const pushedRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, pushedRule.beginCaptures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(lineText.content, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.whileHasBackReferences) {\n stack = stack.withEndRule(pushedRule.getWhileWithResolvedBackReferences(lineText.content, captureIndices));\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n else {\n const matchingRule = _rule;\n handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, matchingRule.captures, captureIndices);\n lineTokens.produce(stack, captureIndices[0].end);\n // pop rule immediately since it is a MatchRule\n stack = stack.pop();\n if (!hasAdvanced) {\n stack = stack.safePop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n }\n if (captureIndices[0].end > linePos) {\n // Advance stream\n linePos = captureIndices[0].end;\n isFirstLine = false;\n }\n }\n}\n/**\n * Walk the stack from bottom to top, and check each while condition in this order.\n * If any fails, cut off the entire stack above the failed while condition. While conditions\n * may also advance the linePosition.\n */\nfunction _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens) {\n let anchorPosition = (stack.beginRuleCapturedEOL ? 0 : -1);\n const whileRules = [];\n for (let node = stack; node; node = node.pop()) {\n const nodeRule = node.getRule(grammar);\n if (nodeRule instanceof BeginWhileRule) {\n whileRules.push({\n rule: nodeRule,\n stack: node\n });\n }\n }\n for (let whileRule = whileRules.pop(); whileRule; whileRule = whileRules.pop()) {\n const { ruleScanner, findOptions } = prepareRuleWhileSearch(whileRule.rule, grammar, whileRule.stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n const matchedRuleId = r.ruleId;\n if (matchedRuleId !== whileRuleId) {\n // we shouldn't end up here\n stack = whileRule.stack.pop();\n break;\n }\n if (r.captureIndices && r.captureIndices.length) {\n lineTokens.produce(whileRule.stack, r.captureIndices[0].start);\n handleCaptures(grammar, lineText, isFirstLine, whileRule.stack, lineTokens, whileRule.rule.whileCaptures, r.captureIndices);\n lineTokens.produce(whileRule.stack, r.captureIndices[0].end);\n anchorPosition = r.captureIndices[0].end;\n if (r.captureIndices[0].end > linePos) {\n linePos = r.captureIndices[0].end;\n isFirstLine = false;\n }\n }\n }\n else {\n stack = whileRule.stack.pop();\n break;\n }\n }\n return { stack: stack, linePos: linePos, anchorPosition: anchorPosition, isFirstLine: isFirstLine };\n}\nfunction matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n // Look for normal grammar rule\n const matchResult = matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n // Look for injected rules\n const injections = grammar.getInjections();\n if (injections.length === 0) {\n // No injections whatsoever => early return\n return matchResult;\n }\n const injectionResult = matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!injectionResult) {\n // No injections matched => early return\n return matchResult;\n }\n if (!matchResult) {\n // Only injections matched => early return\n return injectionResult;\n }\n // Decide if `matchResult` or `injectionResult` should win\n const matchResultScore = matchResult.captureIndices[0].start;\n const injectionResultScore = injectionResult.captureIndices[0].start;\n if (injectionResultScore < matchResultScore || (injectionResult.priorityMatch && injectionResultScore === matchResultScore)) {\n // injection won!\n return injectionResult;\n }\n return matchResult;\n}\nfunction matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const rule = stack.getRule(grammar);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n return {\n captureIndices: r.captureIndices,\n matchedRuleId: r.ruleId\n };\n }\n return null;\n}\nfunction matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n // The lower the better\n let bestMatchRating = Number.MAX_VALUE;\n let bestMatchCaptureIndices = null;\n let bestMatchRuleId;\n let bestMatchResultPriority = 0;\n const scopes = stack.contentNameScopesList.getScopeNames();\n for (let i = 0, len = injections.length; i < len; i++) {\n const injection = injections[i];\n if (!injection.matcher(scopes)) {\n // injection selector doesn't match stack\n continue;\n }\n const rule = grammar.getRule(injection.ruleId);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, null, isFirstLine, linePos === anchorPosition);\n const matchResult = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (!matchResult) {\n continue;\n }\n const matchRating = matchResult.captureIndices[0].start;\n if (matchRating >= bestMatchRating) {\n // Injections are sorted by priority, so the previous injection had a better or equal priority\n continue;\n }\n bestMatchRating = matchRating;\n bestMatchCaptureIndices = matchResult.captureIndices;\n bestMatchRuleId = matchResult.ruleId;\n bestMatchResultPriority = injection.priority;\n if (bestMatchRating === linePos) {\n // No more need to look at the rest of the injections.\n break;\n }\n }\n if (bestMatchCaptureIndices) {\n return {\n priorityMatch: bestMatchResultPriority === -1,\n captureIndices: bestMatchCaptureIndices,\n matchedRuleId: bestMatchRuleId\n };\n }\n return null;\n}\nfunction prepareRuleSearch(rule, grammar, endRegexSource, allowA, allowG) {\n const ruleScanner = rule.compileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* FindOption.None */ };\n}\nfunction prepareRuleWhileSearch(rule, grammar, endRegexSource, allowA, allowG) {\n const ruleScanner = rule.compileWhileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* FindOption.None */ };\n}\nfunction handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, captures, captureIndices) {\n if (captures.length === 0) {\n return;\n }\n const lineTextContent = lineText.content;\n const len = Math.min(captures.length, captureIndices.length);\n const localStack = [];\n const maxEnd = captureIndices[0].end;\n for (let i = 0; i < len; i++) {\n const captureRule = captures[i];\n if (captureRule === null) {\n // Not interested\n continue;\n }\n const captureIndex = captureIndices[i];\n if (captureIndex.length === 0) {\n // Nothing really captured\n continue;\n }\n if (captureIndex.start > maxEnd) {\n // Capture going beyond consumed string\n break;\n }\n // pop captures while needed\n while (localStack.length > 0 && localStack[localStack.length - 1].endPos <= captureIndex.start) {\n // pop!\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n if (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, captureIndex.start);\n }\n else {\n lineTokens.produce(stack, captureIndex.start);\n }\n if (captureRule.retokenizeCapturedWithRuleId) {\n // the capture requires additional matching\n const scopeName = captureRule.getName(lineTextContent, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n const contentName = captureRule.getContentName(lineTextContent, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n const stackClone = stack.push(captureRule.retokenizeCapturedWithRuleId, captureIndex.start, -1, false, null, nameScopesList, contentNameScopesList);\n const onigSubStr = grammar.createOnigString(lineTextContent.substring(0, captureIndex.end));\n _tokenizeString(grammar, onigSubStr, (isFirstLine && captureIndex.start === 0), captureIndex.start, stackClone, lineTokens, false, /* no time limit */ 0);\n disposeOnigString(onigSubStr);\n continue;\n }\n const captureRuleScopeName = captureRule.getName(lineTextContent, captureIndices);\n if (captureRuleScopeName !== null) {\n // push\n const base = localStack.length > 0 ? localStack[localStack.length - 1].scopes : stack.contentNameScopesList;\n const captureRuleScopesList = base.pushAttributed(captureRuleScopeName, grammar);\n localStack.push(new LocalStackElement(captureRuleScopesList, captureIndex.end));\n }\n }\n while (localStack.length > 0) {\n // pop!\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n}\nclass LocalStackElement {\n scopes;\n endPos;\n constructor(scopes, endPos) {\n this.scopes = scopes;\n this.endPos = endPos;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nfunction createGrammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib) {\n return new Grammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib); //TODO\n}\nfunction collectInjections(result, selector, rule, ruleFactoryHelper, grammar) {\n const matchers = createMatchers(selector, nameMatcher);\n const ruleId = RuleFactory.getCompiledRuleId(rule, ruleFactoryHelper, grammar.repository);\n for (const matcher of matchers) {\n result.push({\n debugSelector: selector,\n matcher: matcher.matcher,\n ruleId: ruleId,\n grammar: grammar,\n priority: matcher.priority\n });\n }\n}\nfunction nameMatcher(identifers, scopes) {\n if (scopes.length < identifers.length) {\n return false;\n }\n let lastIndex = 0;\n return identifers.every(identifier => {\n for (let i = lastIndex; i < scopes.length; i++) {\n if (scopesAreMatching(scopes[i], identifier)) {\n lastIndex = i + 1;\n return true;\n }\n }\n return false;\n });\n}\nfunction scopesAreMatching(thisScopeName, scopeName) {\n if (!thisScopeName) {\n return false;\n }\n if (thisScopeName === scopeName) {\n return true;\n }\n const len = scopeName.length;\n return thisScopeName.length > len && thisScopeName.substr(0, len) === scopeName && thisScopeName[len] === '.';\n}\nclass Grammar {\n _rootScopeName;\n balancedBracketSelectors;\n _onigLib;\n _rootId;\n _lastRuleId;\n _ruleId2desc;\n _includedGrammars;\n _grammarRepository;\n _grammar;\n _injections;\n _basicScopeAttributesProvider;\n _tokenTypeMatchers;\n get themeProvider() { return this._grammarRepository; }\n constructor(_rootScopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, _onigLib) {\n this._rootScopeName = _rootScopeName;\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._onigLib = _onigLib;\n this._basicScopeAttributesProvider = new BasicScopeAttributesProvider(initialLanguage, embeddedLanguages);\n this._rootId = -1;\n this._lastRuleId = 0;\n this._ruleId2desc = [null];\n this._includedGrammars = {};\n this._grammarRepository = grammarRepository;\n this._grammar = initGrammar(grammar, null);\n this._injections = null;\n this._tokenTypeMatchers = [];\n if (tokenTypes) {\n for (const selector of Object.keys(tokenTypes)) {\n const matchers = createMatchers(selector, nameMatcher);\n for (const matcher of matchers) {\n this._tokenTypeMatchers.push({\n matcher: matcher.matcher,\n type: tokenTypes[selector],\n });\n }\n }\n }\n }\n dispose() {\n for (const rule of this._ruleId2desc) {\n if (rule) {\n rule.dispose();\n }\n }\n }\n createOnigScanner(sources) {\n return this._onigLib.createOnigScanner(sources);\n }\n createOnigString(sources) {\n return this._onigLib.createOnigString(sources);\n }\n getMetadataForScope(scope) {\n return this._basicScopeAttributesProvider.getBasicScopeAttributes(scope);\n }\n _collectInjections() {\n const grammarRepository = {\n lookup: (scopeName) => {\n if (scopeName === this._rootScopeName) {\n return this._grammar;\n }\n return this.getExternalGrammar(scopeName);\n },\n injections: (scopeName) => {\n return this._grammarRepository.injections(scopeName);\n },\n };\n const result = [];\n const scopeName = this._rootScopeName;\n const grammar = grammarRepository.lookup(scopeName);\n if (grammar) {\n // add injections from the current grammar\n const rawInjections = grammar.injections;\n if (rawInjections) {\n for (let expression in rawInjections) {\n collectInjections(result, expression, rawInjections[expression], this, grammar);\n }\n }\n // add injection grammars contributed for the current scope\n const injectionScopeNames = this._grammarRepository.injections(scopeName);\n if (injectionScopeNames) {\n injectionScopeNames.forEach((injectionScopeName) => {\n const injectionGrammar = this.getExternalGrammar(injectionScopeName);\n if (injectionGrammar) {\n const selector = injectionGrammar.injectionSelector;\n if (selector) {\n collectInjections(result, selector, injectionGrammar, this, injectionGrammar);\n }\n }\n });\n }\n }\n result.sort((i1, i2) => i1.priority - i2.priority); // sort by priority\n return result;\n }\n getInjections() {\n if (this._injections === null) {\n this._injections = this._collectInjections();\n }\n return this._injections;\n }\n registerRule(factory) {\n const id = ++this._lastRuleId;\n const result = factory(ruleIdFromNumber(id));\n this._ruleId2desc[id] = result;\n return result;\n }\n getRule(ruleId) {\n return this._ruleId2desc[ruleIdToNumber(ruleId)];\n }\n getExternalGrammar(scopeName, repository) {\n if (this._includedGrammars[scopeName]) {\n return this._includedGrammars[scopeName];\n }\n else if (this._grammarRepository) {\n const rawIncludedGrammar = this._grammarRepository.lookup(scopeName);\n if (rawIncludedGrammar) {\n // console.log('LOADED GRAMMAR ' + pattern.include);\n this._includedGrammars[scopeName] = initGrammar(rawIncludedGrammar, repository && repository.$base);\n return this._includedGrammars[scopeName];\n }\n }\n return undefined;\n }\n tokenizeLine(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, false, timeLimit);\n return {\n tokens: r.lineTokens.getResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n tokenizeLine2(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, true, timeLimit);\n return {\n tokens: r.lineTokens.getBinaryResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n _tokenize(lineText, prevState, emitBinaryTokens, timeLimit) {\n if (this._rootId === -1) {\n this._rootId = RuleFactory.getCompiledRuleId(this._grammar.repository.$self, this, this._grammar.repository);\n // This ensures ids are deterministic, and thus equal in renderer and webworker.\n this.getInjections();\n }\n let isFirstLine;\n if (!prevState || prevState === StateStackImpl.NULL) {\n isFirstLine = true;\n const rawDefaultMetadata = this._basicScopeAttributesProvider.getDefaultAttributes();\n const defaultStyle = this.themeProvider.getDefaults();\n const defaultMetadata = EncodedTokenAttributes.set(0, rawDefaultMetadata.languageId, rawDefaultMetadata.tokenType, null, defaultStyle.fontStyle, defaultStyle.foregroundId, defaultStyle.backgroundId);\n const rootScopeName = this.getRule(this._rootId).getName(null, null);\n let scopeList;\n if (rootScopeName) {\n scopeList = AttributedScopeStack.createRootAndLookUpScopeName(rootScopeName, defaultMetadata, this);\n }\n else {\n scopeList = AttributedScopeStack.createRoot(\"unknown\", defaultMetadata);\n }\n prevState = new StateStackImpl(null, this._rootId, -1, -1, false, null, scopeList, scopeList);\n }\n else {\n isFirstLine = false;\n prevState.reset();\n }\n lineText = lineText + \"\\n\";\n const onigLineText = this.createOnigString(lineText);\n const lineLength = onigLineText.content.length;\n const lineTokens = new LineTokens(emitBinaryTokens, lineText, this._tokenTypeMatchers, this.balancedBracketSelectors);\n const r = _tokenizeString(this, onigLineText, isFirstLine, 0, prevState, lineTokens, true, timeLimit);\n disposeOnigString(onigLineText);\n return {\n lineLength: lineLength,\n lineTokens: lineTokens,\n ruleStack: r.stack,\n stoppedEarly: r.stoppedEarly,\n };\n }\n}\nfunction initGrammar(grammar, base) {\n grammar = clone(grammar);\n grammar.repository = grammar.repository || {};\n grammar.repository.$self = {\n $vscodeTextmateLocation: grammar.$vscodeTextmateLocation,\n patterns: grammar.patterns,\n name: grammar.scopeName\n };\n grammar.repository.$base = base || grammar.repository.$self;\n return grammar;\n}\nclass AttributedScopeStack {\n parent;\n scopePath;\n tokenAttributes;\n static fromExtension(namesScopeList, contentNameScopesList) {\n let current = namesScopeList;\n let scopeNames = namesScopeList?.scopePath ?? null;\n for (const frame of contentNameScopesList) {\n scopeNames = ScopeStack.push(scopeNames, frame.scopeNames);\n current = new AttributedScopeStack(current, scopeNames, frame.encodedTokenAttributes);\n }\n return current;\n }\n static createRoot(scopeName, tokenAttributes) {\n return new AttributedScopeStack(null, new ScopeStack(null, scopeName), tokenAttributes);\n }\n static createRootAndLookUpScopeName(scopeName, tokenAttributes, grammar) {\n const rawRootMetadata = grammar.getMetadataForScope(scopeName);\n const scopePath = new ScopeStack(null, scopeName);\n const rootStyle = grammar.themeProvider.themeMatch(scopePath);\n const resolvedTokenAttributes = AttributedScopeStack.mergeAttributes(tokenAttributes, rawRootMetadata, rootStyle);\n return new AttributedScopeStack(null, scopePath, resolvedTokenAttributes);\n }\n get scopeName() { return this.scopePath.scopeName; }\n /**\n * Invariant:\n * ```\n * if (parent && !scopePath.extends(parent.scopePath)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, scopePath, tokenAttributes) {\n this.parent = parent;\n this.scopePath = scopePath;\n this.tokenAttributes = tokenAttributes;\n }\n toString() {\n return this.getScopeNames().join(' ');\n }\n equals(other) {\n return AttributedScopeStack.equals(this, other);\n }\n static equals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n // End of list reached for both\n return true;\n }\n if (!a || !b) {\n // End of list reached only for one\n return false;\n }\n if (a.scopeName !== b.scopeName || a.tokenAttributes !== b.tokenAttributes) {\n return false;\n }\n // Go to previous pair\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n static mergeAttributes(existingTokenAttributes, basicScopeAttributes, styleAttributes) {\n let fontStyle = -1 /* FontStyle.NotSet */;\n let foreground = 0;\n let background = 0;\n if (styleAttributes !== null) {\n fontStyle = styleAttributes.fontStyle;\n foreground = styleAttributes.foregroundId;\n background = styleAttributes.backgroundId;\n }\n return EncodedTokenAttributes.set(existingTokenAttributes, basicScopeAttributes.languageId, basicScopeAttributes.tokenType, null, fontStyle, foreground, background);\n }\n pushAttributed(scopePath, grammar) {\n if (scopePath === null) {\n return this;\n }\n if (scopePath.indexOf(' ') === -1) {\n // This is the common case and much faster\n return AttributedScopeStack._pushAttributed(this, scopePath, grammar);\n }\n const scopes = scopePath.split(/ /g);\n let result = this;\n for (const scope of scopes) {\n result = AttributedScopeStack._pushAttributed(result, scope, grammar);\n }\n return result;\n }\n static _pushAttributed(target, scopeName, grammar) {\n const rawMetadata = grammar.getMetadataForScope(scopeName);\n const newPath = target.scopePath.push(scopeName);\n const scopeThemeMatchResult = grammar.themeProvider.themeMatch(newPath);\n const metadata = AttributedScopeStack.mergeAttributes(target.tokenAttributes, rawMetadata, scopeThemeMatchResult);\n return new AttributedScopeStack(target, newPath, metadata);\n }\n getScopeNames() {\n return this.scopePath.getSegments();\n }\n getExtensionIfDefined(base) {\n const result = [];\n let self = this;\n while (self && self !== base) {\n result.push({\n encodedTokenAttributes: self.tokenAttributes,\n scopeNames: self.scopePath.getExtensionIfDefined(self.parent?.scopePath ?? null),\n });\n self = self.parent;\n }\n return self === base ? result.reverse() : undefined;\n }\n}\n/**\n * Represents a \"pushed\" state on the stack (as a linked list element).\n */\nclass StateStackImpl {\n parent;\n ruleId;\n beginRuleCapturedEOL;\n endRule;\n nameScopesList;\n contentNameScopesList;\n _stackElementBrand = undefined;\n // TODO remove me\n static NULL = new StateStackImpl(null, 0, 0, 0, false, null, null, null);\n /**\n * The position on the current line where this state was pushed.\n * This is relevant only while tokenizing a line, to detect endless loops.\n * Its value is meaningless across lines.\n */\n _enterPos;\n /**\n * The captured anchor position when this stack element was pushed.\n * This is relevant only while tokenizing a line, to restore the anchor position when popping.\n * Its value is meaningless across lines.\n */\n _anchorPos;\n /**\n * The depth of the stack.\n */\n depth;\n /**\n * Invariant:\n * ```\n * if (contentNameScopesList !== nameScopesList && contentNameScopesList?.parent !== nameScopesList) {\n * \tthrow new Error();\n * }\n * if (this.parent && !nameScopesList.extends(this.parent.contentNameScopesList)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(\n /**\n * The previous state on the stack (or null for the root state).\n */\n parent, \n /**\n * The state (rule) that this element represents.\n */\n ruleId, enterPos, anchorPos, \n /**\n * The state has entered and captured \\n. This means that the next line should have an anchorPosition of 0.\n */\n beginRuleCapturedEOL, \n /**\n * The \"pop\" (end) condition for this state in case that it was dynamically generated through captured text.\n */\n endRule, \n /**\n * The list of scopes containing the \"name\" for this state.\n */\n nameScopesList, \n /**\n * The list of scopes containing the \"contentName\" (besides \"name\") for this state.\n * This list **must** contain as an element `scopeName`.\n */\n contentNameScopesList) {\n this.parent = parent;\n this.ruleId = ruleId;\n this.beginRuleCapturedEOL = beginRuleCapturedEOL;\n this.endRule = endRule;\n this.nameScopesList = nameScopesList;\n this.contentNameScopesList = contentNameScopesList;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\n equals(other) {\n if (other === null) {\n return false;\n }\n return StateStackImpl._equals(this, other);\n }\n static _equals(a, b) {\n if (a === b) {\n return true;\n }\n if (!this._structuralEquals(a, b)) {\n return false;\n }\n return AttributedScopeStack.equals(a.contentNameScopesList, b.contentNameScopesList);\n }\n /**\n * A structural equals check. Does not take into account `scopes`.\n */\n static _structuralEquals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n // End of list reached for both\n return true;\n }\n if (!a || !b) {\n // End of list reached only for one\n return false;\n }\n if (a.depth !== b.depth ||\n a.ruleId !== b.ruleId ||\n a.endRule !== b.endRule) {\n return false;\n }\n // Go to previous pair\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n clone() {\n return this;\n }\n static _reset(el) {\n while (el) {\n el._enterPos = -1;\n el._anchorPos = -1;\n el = el.parent;\n }\n }\n reset() {\n StateStackImpl._reset(this);\n }\n pop() {\n return this.parent;\n }\n safePop() {\n if (this.parent) {\n return this.parent;\n }\n return this;\n }\n push(ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n return new StateStackImpl(this, ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList);\n }\n getEnterPos() {\n return this._enterPos;\n }\n getAnchorPos() {\n return this._anchorPos;\n }\n getRule(grammar) {\n return grammar.getRule(this.ruleId);\n }\n toString() {\n const r = [];\n this._writeString(r, 0);\n return \"[\" + r.join(\",\") + \"]\";\n }\n _writeString(res, outIndex) {\n if (this.parent) {\n outIndex = this.parent._writeString(res, outIndex);\n }\n res[outIndex++] = `(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`;\n return outIndex;\n }\n withContentNameScopesList(contentNameScopeStack) {\n if (this.contentNameScopesList === contentNameScopeStack) {\n return this;\n }\n return this.parent.push(this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, this.endRule, this.nameScopesList, contentNameScopeStack);\n }\n withEndRule(endRule) {\n if (this.endRule === endRule) {\n return this;\n }\n return new StateStackImpl(this.parent, this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, endRule, this.nameScopesList, this.contentNameScopesList);\n }\n // Used to warn of endless loops\n hasSameRuleAs(other) {\n let el = this;\n while (el && el._enterPos === other._enterPos) {\n if (el.ruleId === other.ruleId) {\n return true;\n }\n el = el.parent;\n }\n return false;\n }\n toStateStackFrame() {\n return {\n ruleId: ruleIdToNumber(this.ruleId),\n beginRuleCapturedEOL: this.beginRuleCapturedEOL,\n endRule: this.endRule,\n nameScopesList: this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList ?? null) ?? [],\n contentNameScopesList: this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList) ?? [],\n };\n }\n static pushFrame(self, frame) {\n const namesScopeList = AttributedScopeStack.fromExtension(self?.nameScopesList ?? null, frame.nameScopesList);\n return new StateStackImpl(self, ruleIdFromNumber(frame.ruleId), frame.enterPos ?? -1, frame.anchorPos ?? -1, frame.beginRuleCapturedEOL, frame.endRule, namesScopeList, AttributedScopeStack.fromExtension(namesScopeList, frame.contentNameScopesList));\n }\n}\nclass BalancedBracketSelectors {\n balancedBracketScopes;\n unbalancedBracketScopes;\n allowAny = false;\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.balancedBracketScopes = balancedBracketScopes.flatMap((selector) => {\n if (selector === '*') {\n this.allowAny = true;\n return [];\n }\n return createMatchers(selector, nameMatcher).map((m) => m.matcher);\n });\n this.unbalancedBracketScopes = unbalancedBracketScopes.flatMap((selector) => createMatchers(selector, nameMatcher).map((m) => m.matcher));\n }\n get matchesAlways() {\n return this.allowAny && this.unbalancedBracketScopes.length === 0;\n }\n get matchesNever() {\n return this.balancedBracketScopes.length === 0 && !this.allowAny;\n }\n match(scopes) {\n for (const excluder of this.unbalancedBracketScopes) {\n if (excluder(scopes)) {\n return false;\n }\n }\n for (const includer of this.balancedBracketScopes) {\n if (includer(scopes)) {\n return true;\n }\n }\n return this.allowAny;\n }\n}\nclass LineTokens {\n balancedBracketSelectors;\n _emitBinaryTokens;\n /**\n * defined only if `false`.\n */\n _lineText;\n /**\n * used only if `_emitBinaryTokens` is false.\n */\n _tokens;\n /**\n * used only if `_emitBinaryTokens` is true.\n */\n _binaryTokens;\n _lastTokenEndIndex;\n _tokenTypeOverrides;\n constructor(emitBinaryTokens, lineText, tokenTypeOverrides, balancedBracketSelectors) {\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._emitBinaryTokens = emitBinaryTokens;\n this._tokenTypeOverrides = tokenTypeOverrides;\n {\n this._lineText = null;\n }\n this._tokens = [];\n this._binaryTokens = [];\n this._lastTokenEndIndex = 0;\n }\n produce(stack, endIndex) {\n this.produceFromScopes(stack.contentNameScopesList, endIndex);\n }\n produceFromScopes(scopesList, endIndex) {\n if (this._lastTokenEndIndex >= endIndex) {\n return;\n }\n if (this._emitBinaryTokens) {\n let metadata = scopesList?.tokenAttributes ?? 0;\n let containsBalancedBrackets = false;\n if (this.balancedBracketSelectors?.matchesAlways) {\n containsBalancedBrackets = true;\n }\n if (this._tokenTypeOverrides.length > 0 || (this.balancedBracketSelectors && !this.balancedBracketSelectors.matchesAlways && !this.balancedBracketSelectors.matchesNever)) {\n // Only generate scope array when required to improve performance\n const scopes = scopesList?.getScopeNames() ?? [];\n for (const tokenType of this._tokenTypeOverrides) {\n if (tokenType.matcher(scopes)) {\n metadata = EncodedTokenAttributes.set(metadata, 0, toOptionalTokenType(tokenType.type), null, -1 /* FontStyle.NotSet */, 0, 0);\n }\n }\n if (this.balancedBracketSelectors) {\n containsBalancedBrackets = this.balancedBracketSelectors.match(scopes);\n }\n }\n if (containsBalancedBrackets) {\n metadata = EncodedTokenAttributes.set(metadata, 0, 8 /* OptionalStandardTokenType.NotSet */, containsBalancedBrackets, -1 /* FontStyle.NotSet */, 0, 0);\n }\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === metadata) {\n // no need to push a token with the same metadata\n this._lastTokenEndIndex = endIndex;\n return;\n }\n this._binaryTokens.push(this._lastTokenEndIndex);\n this._binaryTokens.push(metadata);\n this._lastTokenEndIndex = endIndex;\n return;\n }\n const scopes = scopesList?.getScopeNames() ?? [];\n this._tokens.push({\n startIndex: this._lastTokenEndIndex,\n endIndex: endIndex,\n // value: lineText.substring(lastTokenEndIndex, endIndex),\n scopes: scopes\n });\n this._lastTokenEndIndex = endIndex;\n }\n getResult(stack, lineLength) {\n if (this._tokens.length > 0 && this._tokens[this._tokens.length - 1].startIndex === lineLength - 1) {\n // pop produced token for newline\n this._tokens.pop();\n }\n if (this._tokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._tokens[this._tokens.length - 1].startIndex = 0;\n }\n return this._tokens;\n }\n getBinaryResult(stack, lineLength) {\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 2] === lineLength - 1) {\n // pop produced token for newline\n this._binaryTokens.pop();\n this._binaryTokens.pop();\n }\n if (this._binaryTokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._binaryTokens[this._binaryTokens.length - 2] = 0;\n }\n const result = new Uint32Array(this._binaryTokens.length);\n for (let i = 0, len = this._binaryTokens.length; i < len; i++) {\n result[i] = this._binaryTokens[i];\n }\n return result;\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\nclass SyncRegistry {\n _onigLibPromise;\n _grammars = new Map();\n _rawGrammars = new Map();\n _injectionGrammars = new Map();\n _theme;\n constructor(theme, _onigLibPromise) {\n this._onigLibPromise = _onigLibPromise;\n this._theme = theme;\n }\n dispose() {\n for (const grammar of this._grammars.values()) {\n grammar.dispose();\n }\n }\n setTheme(theme) {\n this._theme = theme;\n }\n getColorMap() {\n return this._theme.getColorMap();\n }\n /**\n * Add `grammar` to registry and return a list of referenced scope names\n */\n addGrammar(grammar, injectionScopeNames) {\n this._rawGrammars.set(grammar.scopeName, grammar);\n if (injectionScopeNames) {\n this._injectionGrammars.set(grammar.scopeName, injectionScopeNames);\n }\n }\n /**\n * Lookup a raw grammar.\n */\n lookup(scopeName) {\n return this._rawGrammars.get(scopeName);\n }\n /**\n * Returns the injections for the given grammar\n */\n injections(targetScope) {\n return this._injectionGrammars.get(targetScope);\n }\n /**\n * Get the default theme settings\n */\n getDefaults() {\n return this._theme.getDefaults();\n }\n /**\n * Match a scope in the theme.\n */\n themeMatch(scopePath) {\n return this._theme.match(scopePath);\n }\n /**\n * Lookup a grammar.\n */\n async grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n if (!this._grammars.has(scopeName)) {\n let rawGrammar = this._rawGrammars.get(scopeName);\n if (!rawGrammar) {\n return null;\n }\n this._grammars.set(scopeName, createGrammar(scopeName, rawGrammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, this, await this._onigLibPromise));\n }\n return this._grammars.get(scopeName);\n }\n}\n\n/*---------------------------------------------------------\n * Copyright (C) Microsoft Corporation. All rights reserved.\n *--------------------------------------------------------*/\n/**\n * The registry that will hold all grammars.\n */\nlet Registry$1 = class Registry {\n _options;\n _syncRegistry;\n _ensureGrammarCache;\n constructor(options) {\n this._options = options;\n this._syncRegistry = new SyncRegistry(Theme.createFromRawTheme(options.theme, options.colorMap), options.onigLib);\n this._ensureGrammarCache = new Map();\n }\n dispose() {\n this._syncRegistry.dispose();\n }\n /**\n * Change the theme. Once called, no previous `ruleStack` should be used anymore.\n */\n setTheme(theme, colorMap) {\n this._syncRegistry.setTheme(Theme.createFromRawTheme(theme, colorMap));\n }\n /**\n * Returns a lookup array for color ids.\n */\n getColorMap() {\n return this._syncRegistry.getColorMap();\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithEmbeddedLanguages(initialScopeName, initialLanguage, embeddedLanguages) {\n return this.loadGrammarWithConfiguration(initialScopeName, initialLanguage, { embeddedLanguages });\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithConfiguration(initialScopeName, initialLanguage, configuration) {\n return this._loadGrammar(initialScopeName, initialLanguage, configuration.embeddedLanguages, configuration.tokenTypes, new BalancedBracketSelectors(configuration.balancedBracketSelectors || [], configuration.unbalancedBracketSelectors || []));\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n */\n loadGrammar(initialScopeName) {\n return this._loadGrammar(initialScopeName, 0, null, null, null);\n }\n async _loadGrammar(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n const dependencyProcessor = new ScopeDependencyProcessor(this._syncRegistry, initialScopeName);\n while (dependencyProcessor.Q.length > 0) {\n await Promise.all(dependencyProcessor.Q.map((request) => this._loadSingleGrammar(request.scopeName)));\n dependencyProcessor.processQueue();\n }\n return this._grammarForScopeName(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors);\n }\n async _loadSingleGrammar(scopeName) {\n if (!this._ensureGrammarCache.has(scopeName)) {\n this._ensureGrammarCache.set(scopeName, this._doLoadSingleGrammar(scopeName));\n }\n return this._ensureGrammarCache.get(scopeName);\n }\n async _doLoadSingleGrammar(scopeName) {\n const grammar = await this._options.loadGrammar(scopeName);\n if (grammar) {\n const injections = typeof this._options.getInjections === \"function\" ? this._options.getInjections(scopeName) : undefined;\n this._syncRegistry.addGrammar(grammar, injections);\n }\n }\n /**\n * Adds a rawGrammar.\n */\n async addGrammar(rawGrammar, injections = [], initialLanguage = 0, embeddedLanguages = null) {\n this._syncRegistry.addGrammar(rawGrammar, injections);\n return (await this._grammarForScopeName(rawGrammar.scopeName, initialLanguage, embeddedLanguages));\n }\n /**\n * Get the grammar for `scopeName`. The grammar must first be created via `loadGrammar` or `addGrammar`.\n */\n _grammarForScopeName(scopeName, initialLanguage = 0, embeddedLanguages = null, tokenTypes = null, balancedBracketSelectors = null) {\n return this._syncRegistry.grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors);\n }\n};\nconst INITIAL = StateStackImpl.NULL;\n\n/**\n * Helpers to manage the \"collapsed\" metadata of an entire StackElement stack.\n * The following assumptions have been made:\n * - languageId < 256 => needs 8 bits\n * - unique color count < 512 => needs 9 bits\n *\n * The binary format is:\n * - -------------------------------------------\n * 3322 2222 2222 1111 1111 1100 0000 0000\n * 1098 7654 3210 9876 5432 1098 7654 3210\n * - -------------------------------------------\n * xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx\n * bbbb bbbb bfff ffff ffFF FTTT LLLL LLLL\n * - -------------------------------------------\n * - L = LanguageId (8 bits)\n * - T = StandardTokenType (3 bits)\n * - F = FontStyle (3 bits)\n * - f = foreground color (9 bits)\n * - b = background color (9 bits)\n */\nconst MetadataConsts = {\n LANGUAGEID_MASK: 0b00000000000000000000000011111111,\n TOKEN_TYPE_MASK: 0b00000000000000000000001100000000,\n BALANCED_BRACKETS_MASK: 0b00000000000000000000010000000000,\n FONT_STYLE_MASK: 0b00000000000000000011100000000000,\n FOREGROUND_MASK: 0b00000000011111111100000000000000,\n BACKGROUND_MASK: 0b11111111100000000000000000000000,\n LANGUAGEID_OFFSET: 0,\n TOKEN_TYPE_OFFSET: 8,\n BALANCED_BRACKETS_OFFSET: 10,\n FONT_STYLE_OFFSET: 11,\n FOREGROUND_OFFSET: 15,\n BACKGROUND_OFFSET: 24,\n};\nclass StackElementMetadata {\n static toBinaryStr(metadata) {\n let r = metadata.toString(2);\n while (r.length < 32)\n r = `0${r}`;\n return r;\n }\n // public static printMetadata(metadata: number): void {\n // const languageId = StackElementMetadata.getLanguageId(metadata)\n // const tokenType = StackElementMetadata.getTokenType(metadata)\n // const fontStyle = StackElementMetadata.getFontStyle(metadata)\n // const foreground = StackElementMetadata.getForeground(metadata)\n // const background = StackElementMetadata.getBackground(metadata)\n // console.log({\n // languageId,\n // tokenType,\n // fontStyle,\n // foreground,\n // background,\n // })\n // }\n static getLanguageId(metadata) {\n return (metadata & MetadataConsts.LANGUAGEID_MASK) >>> MetadataConsts.LANGUAGEID_OFFSET;\n }\n static getTokenType(metadata) {\n return (metadata & MetadataConsts.TOKEN_TYPE_MASK) >>> MetadataConsts.TOKEN_TYPE_OFFSET;\n }\n static getFontStyle(metadata) {\n return (metadata & MetadataConsts.FONT_STYLE_MASK) >>> MetadataConsts.FONT_STYLE_OFFSET;\n }\n static getForeground(metadata) {\n return (metadata & MetadataConsts.FOREGROUND_MASK) >>> MetadataConsts.FOREGROUND_OFFSET;\n }\n static getBackground(metadata) {\n return (metadata & MetadataConsts.BACKGROUND_MASK) >>> MetadataConsts.BACKGROUND_OFFSET;\n }\n static containsBalancedBrackets(metadata) {\n return (metadata & MetadataConsts.BALANCED_BRACKETS_MASK) !== 0;\n }\n static set(metadata, languageId, tokenType, fontStyle, foreground, background) {\n let _languageId = StackElementMetadata.getLanguageId(metadata);\n let _tokenType = StackElementMetadata.getTokenType(metadata);\n let _fontStyle = StackElementMetadata.getFontStyle(metadata);\n let _foreground = StackElementMetadata.getForeground(metadata);\n let _background = StackElementMetadata.getBackground(metadata);\n const _containsBalancedBracketsBit = StackElementMetadata.containsBalancedBrackets(metadata)\n ? 1\n : 0;\n if (languageId !== 0)\n _languageId = languageId;\n if (tokenType !== 0 /* TemporaryStandardTokenType.Other */) {\n _tokenType\n = tokenType === 8 /* TemporaryStandardTokenType.MetaEmbedded */ ? 0 /* StandardTokenType.Other */ : tokenType;\n }\n if (fontStyle !== FontStyle.NotSet)\n _fontStyle = fontStyle;\n if (foreground !== 0)\n _foreground = foreground;\n if (background !== 0)\n _background = background;\n return (((_languageId << MetadataConsts.LANGUAGEID_OFFSET)\n | (_tokenType << MetadataConsts.TOKEN_TYPE_OFFSET)\n | (_fontStyle << MetadataConsts.FONT_STYLE_OFFSET)\n | (_containsBalancedBracketsBit << MetadataConsts.BALANCED_BRACKETS_OFFSET)\n | (_foreground << MetadataConsts.FOREGROUND_OFFSET)\n | (_background << MetadataConsts.BACKGROUND_OFFSET))\n >>> 0);\n }\n}\n\nexport { INITIAL, Registry$1 as Registry, StackElementMetadata, Theme };\n","import { INITIAL, StackElementMetadata, Registry as Registry$1, Theme } from './textmate.mjs';\nimport { FontStyle } from './types.mjs';\n\nfunction toArray(x) {\n return Array.isArray(x) ? x : [x];\n}\n/**\n * Split a string into lines, each line preserves the line ending.\n */\nfunction splitLines(code, preserveEnding = false) {\n const parts = code.split(/(\\r?\\n)/g);\n let index = 0;\n const lines = [];\n for (let i = 0; i < parts.length; i += 2) {\n const line = preserveEnding\n ? parts[i] + (parts[i + 1] || '')\n : parts[i];\n lines.push([line, index]);\n index += parts[i].length;\n index += parts[i + 1]?.length || 0;\n }\n return lines;\n}\n/**\n * Check if the language is plaintext that is ignored by Shiki.\n *\n * Hard-coded plain text languages: `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isPlainLang(lang) {\n return !lang || ['plaintext', 'txt', 'text', 'plain'].includes(lang);\n}\n/**\n * Check if the language is specially handled or bypassed by Shiki.\n *\n * Hard-coded languages: `ansi` and plaintexts like `plaintext`, `txt`, `text`, `plain`.\n */\nfunction isSpecialLang(lang) {\n return lang === 'ansi' || isPlainLang(lang);\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isNoneTheme(theme) {\n return theme === 'none';\n}\n/**\n * Check if the theme is specially handled or bypassed by Shiki.\n *\n * Hard-coded themes: `none`.\n */\nfunction isSpecialTheme(theme) {\n return isNoneTheme(theme);\n}\n/**\n * Utility to append class to a hast node\n *\n * If the `property.class` is a string, it will be splitted by space and converted to an array.\n */\nfunction addClassToHast(node, className) {\n if (!className)\n return node;\n node.properties ||= {};\n node.properties.class ||= [];\n if (typeof node.properties.class === 'string')\n node.properties.class = node.properties.class.split(/\\s+/g);\n if (!Array.isArray(node.properties.class))\n node.properties.class = [];\n const targets = Array.isArray(className) ? className : className.split(/\\s+/g);\n for (const c of targets) {\n if (c && !node.properties.class.includes(c))\n node.properties.class.push(c);\n }\n return node;\n}\n/**\n * Split a token into multiple tokens by given offsets.\n *\n * The offsets are relative to the token, and should be sorted.\n */\nfunction splitToken(token, offsets) {\n let lastOffset = 0;\n const tokens = [];\n for (const offset of offsets) {\n if (offset > lastOffset) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset, offset),\n offset: token.offset + lastOffset,\n });\n }\n lastOffset = offset;\n }\n if (lastOffset < token.content.length) {\n tokens.push({\n ...token,\n content: token.content.slice(lastOffset),\n offset: token.offset + lastOffset,\n });\n }\n return tokens;\n}\n/**\n * Split 2D tokens array by given breakpoints.\n */\nfunction splitTokens(tokens, breakpoints) {\n const sorted = Array.from(breakpoints instanceof Set ? breakpoints : new Set(breakpoints))\n .sort((a, b) => a - b);\n if (!sorted.length)\n return tokens;\n return tokens.map((line) => {\n return line.flatMap((token) => {\n const breakpointsInToken = sorted\n .filter(i => token.offset < i && i < token.offset + token.content.length)\n .map(i => i - token.offset)\n .sort((a, b) => a - b);\n if (!breakpointsInToken.length)\n return token;\n return splitToken(token, breakpointsInToken);\n });\n });\n}\nfunction resolveColorReplacements(theme, options) {\n const replacements = typeof theme === 'string' ? {} : { ...theme.colorReplacements };\n const themeName = typeof theme === 'string' ? theme : theme.name;\n for (const [key, value] of Object.entries(options?.colorReplacements || {})) {\n if (typeof value === 'string')\n replacements[key] = value;\n else if (key === themeName)\n Object.assign(replacements, value);\n }\n return replacements;\n}\nfunction applyColorReplacements(color, replacements) {\n if (!color)\n return color;\n return replacements?.[color?.toLowerCase()] || color;\n}\nfunction getTokenStyleObject(token) {\n const styles = {};\n if (token.color)\n styles.color = token.color;\n if (token.bgColor)\n styles['background-color'] = token.bgColor;\n if (token.fontStyle) {\n if (token.fontStyle & FontStyle.Italic)\n styles['font-style'] = 'italic';\n if (token.fontStyle & FontStyle.Bold)\n styles['font-weight'] = 'bold';\n if (token.fontStyle & FontStyle.Underline)\n styles['text-decoration'] = 'underline';\n }\n return styles;\n}\nfunction stringifyTokenStyle(token) {\n return Object.entries(token).map(([key, value]) => `${key}:${value}`).join(';');\n}\n/**\n * Creates a converter between index and position in a code block.\n *\n * Overflow/underflow are unchecked.\n */\nfunction createPositionConverter(code) {\n const lines = splitLines(code, true).map(([line]) => line);\n function indexToPos(index) {\n if (index === code.length) {\n return {\n line: lines.length - 1,\n character: lines[lines.length - 1].length,\n };\n }\n let character = index;\n let line = 0;\n for (const lineText of lines) {\n if (character < lineText.length)\n break;\n character -= lineText.length;\n line++;\n }\n return { line, character };\n }\n function posToIndex(line, character) {\n let index = 0;\n for (let i = 0; i < line; i++)\n index += lines[i].length;\n index += character;\n return index;\n }\n return {\n lines,\n indexToPos,\n posToIndex,\n };\n}\n\n// src/colors.ts\nvar namedColors = [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"brightBlack\",\n \"brightRed\",\n \"brightGreen\",\n \"brightYellow\",\n \"brightBlue\",\n \"brightMagenta\",\n \"brightCyan\",\n \"brightWhite\"\n];\n\n// src/decorations.ts\nvar decorations = {\n 1: \"bold\",\n 2: \"dim\",\n 3: \"italic\",\n 4: \"underline\",\n 7: \"reverse\",\n 9: \"strikethrough\"\n};\n\n// src/parser.ts\nfunction findSequence(value, position) {\n const nextEscape = value.indexOf(\"\\x1B[\", position);\n if (nextEscape !== -1) {\n const nextClose = value.indexOf(\"m\", nextEscape);\n return {\n sequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n startPosition: nextEscape,\n position: nextClose + 1\n };\n }\n return {\n position: value.length\n };\n}\nfunction parseColor(sequence, index) {\n let offset = 1;\n const colorMode = sequence[index + offset++];\n let color;\n if (colorMode === \"2\") {\n const rgb = [\n sequence[index + offset++],\n sequence[index + offset++],\n sequence[index + offset]\n ].map((x) => Number.parseInt(x));\n if (rgb.length === 3 && !rgb.some((x) => Number.isNaN(x))) {\n color = {\n type: \"rgb\",\n rgb\n };\n }\n } else if (colorMode === \"5\") {\n const colorIndex = Number.parseInt(sequence[index + offset]);\n if (!Number.isNaN(colorIndex)) {\n color = { type: \"table\", index: Number(colorIndex) };\n }\n }\n return [offset, color];\n}\nfunction parseSequence(sequence) {\n const commands = [];\n for (let i = 0; i < sequence.length; i++) {\n const code = sequence[i];\n const codeInt = Number.parseInt(code);\n if (Number.isNaN(codeInt))\n continue;\n if (codeInt === 0) {\n commands.push({ type: \"resetAll\" });\n } else if (codeInt <= 9) {\n const decoration = decorations[codeInt];\n if (decoration) {\n commands.push({\n type: \"setDecoration\",\n value: decorations[codeInt]\n });\n }\n } else if (codeInt <= 29) {\n const decoration = decorations[codeInt - 20];\n if (decoration) {\n commands.push({\n type: \"resetDecoration\",\n value: decoration\n });\n }\n } else if (codeInt <= 37) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 30] }\n });\n } else if (codeInt === 38) {\n const [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setForegroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 39) {\n commands.push({\n type: \"resetForegroundColor\"\n });\n } else if (codeInt <= 47) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 40] }\n });\n } else if (codeInt === 48) {\n const [offset, color] = parseColor(sequence, i);\n if (color) {\n commands.push({\n type: \"setBackgroundColor\",\n value: color\n });\n }\n i += offset;\n } else if (codeInt === 49) {\n commands.push({\n type: \"resetBackgroundColor\"\n });\n } else if (codeInt >= 90 && codeInt <= 97) {\n commands.push({\n type: \"setForegroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 90 + 8] }\n });\n } else if (codeInt >= 100 && codeInt <= 107) {\n commands.push({\n type: \"setBackgroundColor\",\n value: { type: \"named\", name: namedColors[codeInt - 100 + 8] }\n });\n }\n }\n return commands;\n}\nfunction createAnsiSequenceParser() {\n let foreground = null;\n let background = null;\n let decorations2 = /* @__PURE__ */ new Set();\n return {\n parse(value) {\n const tokens = [];\n let position = 0;\n do {\n const findResult = findSequence(value, position);\n const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position);\n if (text.length > 0) {\n tokens.push({\n value: text,\n foreground,\n background,\n decorations: new Set(decorations2)\n });\n }\n if (findResult.sequence) {\n const commands = parseSequence(findResult.sequence);\n for (const styleToken of commands) {\n if (styleToken.type === \"resetAll\") {\n foreground = null;\n background = null;\n decorations2.clear();\n } else if (styleToken.type === \"resetForegroundColor\") {\n foreground = null;\n } else if (styleToken.type === \"resetBackgroundColor\") {\n background = null;\n } else if (styleToken.type === \"resetDecoration\") {\n decorations2.delete(styleToken.value);\n }\n }\n for (const styleToken of commands) {\n if (styleToken.type === \"setForegroundColor\") {\n foreground = styleToken.value;\n } else if (styleToken.type === \"setBackgroundColor\") {\n background = styleToken.value;\n } else if (styleToken.type === \"setDecoration\") {\n decorations2.add(styleToken.value);\n }\n }\n }\n position = findResult.position;\n } while (position < value.length);\n return tokens;\n }\n };\n}\n\n// src/palette.ts\nvar defaultNamedColorsMap = {\n black: \"#000000\",\n red: \"#bb0000\",\n green: \"#00bb00\",\n yellow: \"#bbbb00\",\n blue: \"#0000bb\",\n magenta: \"#ff00ff\",\n cyan: \"#00bbbb\",\n white: \"#eeeeee\",\n brightBlack: \"#555555\",\n brightRed: \"#ff5555\",\n brightGreen: \"#00ff00\",\n brightYellow: \"#ffff55\",\n brightBlue: \"#5555ff\",\n brightMagenta: \"#ff55ff\",\n brightCyan: \"#55ffff\",\n brightWhite: \"#ffffff\"\n};\nfunction createColorPalette(namedColorsMap = defaultNamedColorsMap) {\n function namedColor(name) {\n return namedColorsMap[name];\n }\n function rgbColor(rgb) {\n return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, \"0\")).join(\"\")}`;\n }\n let colorTable;\n function getColorTable() {\n if (colorTable) {\n return colorTable;\n }\n colorTable = [];\n for (let i = 0; i < namedColors.length; i++) {\n colorTable.push(namedColor(namedColors[i]));\n }\n let levels = [0, 95, 135, 175, 215, 255];\n for (let r = 0; r < 6; r++) {\n for (let g = 0; g < 6; g++) {\n for (let b = 0; b < 6; b++) {\n colorTable.push(rgbColor([levels[r], levels[g], levels[b]]));\n }\n }\n }\n let level = 8;\n for (let i = 0; i < 24; i++, level += 10) {\n colorTable.push(rgbColor([level, level, level]));\n }\n return colorTable;\n }\n function tableColor(index) {\n return getColorTable()[index];\n }\n function value(color) {\n switch (color.type) {\n case \"named\":\n return namedColor(color.name);\n case \"rgb\":\n return rgbColor(color.rgb);\n case \"table\":\n return tableColor(color.index);\n }\n }\n return {\n value\n };\n}\n\nfunction tokenizeAnsiWithTheme(theme, fileContents, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const lines = splitLines(fileContents);\n const colorPalette = createColorPalette(Object.fromEntries(namedColors.map(name => [\n name,\n theme.colors?.[`terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`],\n ])));\n const parser = createAnsiSequenceParser();\n return lines.map(line => parser.parse(line[0]).map((token) => {\n let color;\n let bgColor;\n if (token.decorations.has('reverse')) {\n color = token.background ? colorPalette.value(token.background) : theme.bg;\n bgColor = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n }\n else {\n color = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n bgColor = token.background ? colorPalette.value(token.background) : undefined;\n }\n color = applyColorReplacements(color, colorReplacements);\n bgColor = applyColorReplacements(bgColor, colorReplacements);\n if (token.decorations.has('dim'))\n color = dimColor(color);\n let fontStyle = FontStyle.None;\n if (token.decorations.has('bold'))\n fontStyle |= FontStyle.Bold;\n if (token.decorations.has('italic'))\n fontStyle |= FontStyle.Italic;\n if (token.decorations.has('underline'))\n fontStyle |= FontStyle.Underline;\n return {\n content: token.value,\n offset: line[1], // TODO: more accurate offset? might need to fork ansi-sequence-parser\n color,\n bgColor,\n fontStyle,\n };\n }));\n}\n/**\n * Adds 50% alpha to a hex color string or the \"-dim\" postfix to a CSS variable\n */\nfunction dimColor(color) {\n const hexMatch = color.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);\n if (hexMatch) {\n if (hexMatch[3]) {\n // convert from #rrggbbaa to #rrggbb(aa/2)\n const alpha = Math.round(Number.parseInt(hexMatch[3], 16) / 2)\n .toString(16)\n .padStart(2, '0');\n return `#${hexMatch[1]}${hexMatch[2]}${alpha}`;\n }\n else if (hexMatch[2]) {\n // convert from #rrggbb to #rrggbb80\n return `#${hexMatch[1]}${hexMatch[2]}80`;\n }\n else {\n // convert from #rgb to #rrggbb80\n return `#${Array.from(hexMatch[1])\n .map(x => `${x}${x}`)\n .join('')}80`;\n }\n }\n const cssVarMatch = color.match(/var\\((--[\\w-]+-ansi-[\\w-]+)\\)/);\n if (cssVarMatch)\n return `var(${cssVarMatch[1]}-dim)`;\n return color;\n}\n\nclass ShikiError extends Error {\n constructor(message) {\n super(message);\n this.name = 'ShikiError';\n }\n}\n\n/**\n * GrammarState is a special reference object that holds the state of a grammar.\n *\n * It's used to highlight code snippets that are part of the target language.\n */\nclass GrammarState {\n _stack;\n lang;\n theme;\n /**\n * Static method to create a initial grammar state.\n */\n static initial(lang, theme) {\n return new GrammarState(INITIAL, lang, theme);\n }\n constructor(_stack, lang, theme) {\n this._stack = _stack;\n this.lang = lang;\n this.theme = theme;\n }\n get scopes() {\n return getScopes(this._stack);\n }\n toJSON() {\n return {\n lang: this.lang,\n theme: this.theme,\n scopes: this.scopes,\n };\n }\n}\nfunction getScopes(stack) {\n const scopes = [];\n const visited = new Set();\n function pushScope(stack) {\n if (visited.has(stack))\n return;\n visited.add(stack);\n const name = stack?.nameScopesList?.scopeName;\n if (name)\n scopes.push(name);\n if (stack.parent)\n pushScope(stack.parent);\n }\n pushScope(stack);\n return scopes;\n}\nfunction getGrammarStack(state) {\n if (!(state instanceof GrammarState))\n throw new ShikiError('Invalid grammar state');\n // @ts-expect-error _stack is private\n return state._stack;\n}\n\n/**\n * Code to tokens, with a simple theme.\n */\nfunction codeToTokensBase(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n return splitLines(code).map(line => [{ content: line[0], offset: line[1] }]);\n const { theme, colorMap } = internal.setTheme(themeName);\n if (lang === 'ansi')\n return tokenizeAnsiWithTheme(theme, code, options);\n const _grammar = internal.getLanguage(lang);\n if (options.grammarState) {\n if (options.grammarState.lang !== _grammar.name) {\n throw new ShikiError(`Grammar state language \"${options.grammarState.lang}\" does not match highlight language \"${_grammar.name}\"`);\n }\n if (options.grammarState.theme !== themeName) {\n throw new ShikiError(`Grammar state theme \"${options.grammarState.theme}\" does not match highlight theme \"${themeName}\"`);\n }\n }\n return tokenizeWithTheme(code, _grammar, theme, colorMap, options);\n}\nfunction getLastGrammarState(internal, code, options = {}) {\n const { lang = 'text', theme: themeName = internal.getLoadedThemes()[0], } = options;\n if (isPlainLang(lang) || isNoneTheme(themeName))\n throw new ShikiError('Plain language does not have grammar state');\n if (lang === 'ansi')\n throw new ShikiError('ANSI language does not have grammar state');\n const { theme, colorMap } = internal.setTheme(themeName);\n const _grammar = internal.getLanguage(lang);\n return new GrammarState(_tokenizeWithTheme(code, _grammar, theme, colorMap, options).stateStack, _grammar.name, theme.name);\n}\nfunction tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n return _tokenizeWithTheme(code, grammar, theme, colorMap, options).tokens;\n}\nfunction _tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n const colorReplacements = resolveColorReplacements(theme, options);\n const { tokenizeMaxLineLength = 0, tokenizeTimeLimit = 500, } = options;\n const lines = splitLines(code);\n let stateStack = options.grammarState\n ? getGrammarStack(options.grammarState)\n : options.grammarContextCode != null\n ? _tokenizeWithTheme(options.grammarContextCode, grammar, theme, colorMap, {\n ...options,\n grammarState: undefined,\n grammarContextCode: undefined,\n }).stateStack\n : INITIAL;\n let actual = [];\n const final = [];\n const themeSettingsSelectors = [];\n if (options.includeExplanation) {\n for (const setting of theme.settings) {\n let selectors;\n switch (typeof setting.scope) {\n case 'string':\n selectors = setting.scope.split(/,/).map(scope => scope.trim());\n break;\n case 'object':\n selectors = setting.scope;\n break;\n default:\n continue;\n }\n themeSettingsSelectors.push({\n settings: setting,\n selectors: selectors.map(selector => selector.split(/ /)),\n });\n }\n }\n for (let i = 0, len = lines.length; i < len; i++) {\n const [line, lineOffset] = lines[i];\n if (line === '') {\n actual = [];\n final.push([]);\n continue;\n }\n // Do not attempt to tokenize if the line length is longer than the `tokenizationMaxLineLength`\n if (tokenizeMaxLineLength > 0 && line.length >= tokenizeMaxLineLength) {\n actual = [];\n final.push([{\n content: line,\n offset: lineOffset,\n color: '',\n fontStyle: 0,\n }]);\n continue;\n }\n let resultWithScopes;\n let tokensWithScopes;\n let tokensWithScopesIndex;\n if (options.includeExplanation) {\n resultWithScopes = grammar.tokenizeLine(line, stateStack);\n tokensWithScopes = resultWithScopes.tokens;\n tokensWithScopesIndex = 0;\n }\n const result = grammar.tokenizeLine2(line, stateStack, tokenizeTimeLimit);\n const tokensLength = result.tokens.length / 2;\n for (let j = 0; j < tokensLength; j++) {\n const startIndex = result.tokens[2 * j];\n const nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length;\n if (startIndex === nextStartIndex)\n continue;\n const metadata = result.tokens[2 * j + 1];\n const color = applyColorReplacements(colorMap[StackElementMetadata.getForeground(metadata)], colorReplacements);\n const fontStyle = StackElementMetadata.getFontStyle(metadata);\n const token = {\n content: line.substring(startIndex, nextStartIndex),\n offset: lineOffset + startIndex,\n color,\n fontStyle,\n };\n if (options.includeExplanation) {\n token.explanation = [];\n let offset = 0;\n while (startIndex + offset < nextStartIndex) {\n const tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];\n const tokenWithScopesText = line.substring(tokenWithScopes.startIndex, tokenWithScopes.endIndex);\n offset += tokenWithScopesText.length;\n token.explanation.push({\n content: tokenWithScopesText,\n scopes: explainThemeScopes(themeSettingsSelectors, tokenWithScopes.scopes),\n });\n tokensWithScopesIndex += 1;\n }\n }\n actual.push(token);\n }\n final.push(actual);\n actual = [];\n stateStack = result.ruleStack;\n }\n return {\n tokens: final,\n stateStack,\n };\n}\nfunction explainThemeScopes(themeSelectors, scopes) {\n const result = [];\n for (let i = 0, len = scopes.length; i < len; i++) {\n const parentScopes = scopes.slice(0, i);\n const scope = scopes[i];\n result[i] = {\n scopeName: scope,\n themeMatches: explainThemeScope(themeSelectors, scope, parentScopes),\n };\n }\n return result;\n}\nfunction matchesOne(selector, scope) {\n return selector === scope\n || (scope.substring(0, selector.length) === selector && scope[selector.length] === '.');\n}\nfunction matches(selectors, scope, parentScopes) {\n if (!matchesOne(selectors[selectors.length - 1], scope))\n return false;\n let selectorParentIndex = selectors.length - 2;\n let parentIndex = parentScopes.length - 1;\n while (selectorParentIndex >= 0 && parentIndex >= 0) {\n if (matchesOne(selectors[selectorParentIndex], parentScopes[parentIndex]))\n selectorParentIndex -= 1;\n parentIndex -= 1;\n }\n if (selectorParentIndex === -1)\n return true;\n return false;\n}\nfunction explainThemeScope(themeSettingsSelectors, scope, parentScopes) {\n const result = [];\n for (const { selectors, settings } of themeSettingsSelectors) {\n for (const selectorPieces of selectors) {\n if (matches(selectorPieces, scope, parentScopes)) {\n result.push(settings);\n break; // continue to the next theme settings\n }\n }\n }\n return result;\n}\n\n/**\n * Get tokens with multiple themes\n */\nfunction codeToTokensWithThemes(internal, code, options) {\n const themes = Object.entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }));\n const tokens = syncThemesTokenization(...themes.map(t => codeToTokensBase(internal, code, {\n ...options,\n theme: t.theme,\n })));\n const mergedTokens = tokens[0]\n .map((line, lineIdx) => line\n .map((_token, tokenIdx) => {\n const mergedToken = {\n content: _token.content,\n variants: {},\n offset: _token.offset,\n };\n if ('includeExplanation' in options && options.includeExplanation) {\n mergedToken.explanation = _token.explanation;\n }\n tokens.forEach((t, themeIdx) => {\n const { content: _, explanation: __, offset: ___, ...styles } = t[lineIdx][tokenIdx];\n mergedToken.variants[themes[themeIdx].color] = styles;\n });\n return mergedToken;\n }));\n return mergedTokens;\n}\n/**\n * Break tokens from multiple themes into same tokenization.\n *\n * For example, given two themes that tokenize `console.log(\"hello\")` as:\n *\n * - `console . log (\" hello \")` (6 tokens)\n * - `console .log ( \"hello\" )` (5 tokens)\n *\n * This function will return:\n *\n * - `console . log ( \" hello \" )` (8 tokens)\n * - `console . log ( \" hello \" )` (8 tokens)\n */\nfunction syncThemesTokenization(...themes) {\n const outThemes = themes.map(() => []);\n const count = themes.length;\n for (let i = 0; i < themes[0].length; i++) {\n const lines = themes.map(t => t[i]);\n const outLines = outThemes.map(() => []);\n outThemes.forEach((t, i) => t.push(outLines[i]));\n const indexes = lines.map(() => 0);\n const current = lines.map(l => l[0]);\n while (current.every(t => t)) {\n const minLength = Math.min(...current.map(t => t.content.length));\n for (let n = 0; n < count; n++) {\n const token = current[n];\n if (token.content.length === minLength) {\n outLines[n].push(token);\n indexes[n] += 1;\n current[n] = lines[n][indexes[n]];\n }\n else {\n outLines[n].push({\n ...token,\n content: token.content.slice(0, minLength),\n });\n current[n] = {\n ...token,\n content: token.content.slice(minLength),\n offset: token.offset + minLength,\n };\n }\n }\n }\n }\n return outThemes;\n}\n\n/**\n * High-level code-to-tokens API.\n *\n * It will use `codeToTokensWithThemes` or `codeToTokensBase` based on the options.\n */\nfunction codeToTokens(internal, code, options) {\n let bg;\n let fg;\n let tokens;\n let themeName;\n let rootStyle;\n if ('themes' in options) {\n const { defaultColor = 'light', cssVariablePrefix = '--shiki-', } = options;\n const themes = Object.entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }))\n .sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);\n if (themes.length === 0)\n throw new ShikiError('`themes` option must not be empty');\n const themeTokens = codeToTokensWithThemes(internal, code, options);\n if (defaultColor && !themes.find(t => t.color === defaultColor))\n throw new ShikiError(`\\`themes\\` option must contain the defaultColor key \\`${defaultColor}\\``);\n const themeRegs = themes.map(t => internal.getTheme(t.theme));\n const themesOrder = themes.map(t => t.color);\n tokens = themeTokens\n .map(line => line.map(token => mergeToken(token, themesOrder, cssVariablePrefix, defaultColor)));\n const themeColorReplacements = themes.map(t => resolveColorReplacements(t.theme, options));\n fg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}:`) + (applyColorReplacements(themeRegs[idx].fg, themeColorReplacements[idx]) || 'inherit')).join(';');\n bg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}-bg:`) + (applyColorReplacements(themeRegs[idx].bg, themeColorReplacements[idx]) || 'inherit')).join(';');\n themeName = `shiki-themes ${themeRegs.map(t => t.name).join(' ')}`;\n rootStyle = defaultColor ? undefined : [fg, bg].join(';');\n }\n else if ('theme' in options) {\n const colorReplacements = resolveColorReplacements(options.theme, options);\n tokens = codeToTokensBase(internal, code, options);\n const _theme = internal.getTheme(options.theme);\n bg = applyColorReplacements(_theme.bg, colorReplacements);\n fg = applyColorReplacements(_theme.fg, colorReplacements);\n themeName = _theme.name;\n }\n else {\n throw new ShikiError('Invalid options, either `theme` or `themes` must be provided');\n }\n return {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n };\n}\nfunction mergeToken(merged, variantsOrder, cssVariablePrefix, defaultColor) {\n const token = {\n content: merged.content,\n explanation: merged.explanation,\n offset: merged.offset,\n };\n const styles = variantsOrder.map(t => getTokenStyleObject(merged.variants[t]));\n // Get all style keys, for themes that missing some style, we put `inherit` to override as needed\n const styleKeys = new Set(styles.flatMap(t => Object.keys(t)));\n const mergedStyles = styles.reduce((acc, cur, idx) => {\n for (const key of styleKeys) {\n const value = cur[key] || 'inherit';\n if (idx === 0 && defaultColor) {\n acc[key] = value;\n }\n else {\n const keyName = key === 'color' ? '' : key === 'background-color' ? '-bg' : `-${key}`;\n const varKey = cssVariablePrefix + variantsOrder[idx] + (key === 'color' ? '' : keyName);\n if (acc[key])\n acc[key] += `;${varKey}:${value}`;\n else\n acc[key] = `${varKey}:${value}`;\n }\n }\n return acc;\n }, {});\n token.htmlStyle = defaultColor\n ? stringifyTokenStyle(mergedStyles)\n : Object.values(mergedStyles).join(';');\n return token;\n}\n\n/**\n * A built-in transformer to add decorations to the highlighted code.\n */\nfunction transformerDecorations() {\n const map = new WeakMap();\n function getContext(shiki) {\n if (!map.has(shiki.meta)) {\n const converter = createPositionConverter(shiki.source);\n function normalizePosition(p) {\n if (typeof p === 'number') {\n if (p < 0 || p > shiki.source.length)\n throw new ShikiError(`Invalid decoration offset: ${p}. Code length: ${shiki.source.length}`);\n return {\n ...converter.indexToPos(p),\n offset: p,\n };\n }\n else {\n const line = converter.lines[p.line];\n if (line === undefined)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Lines length: ${converter.lines.length}`);\n if (p.character < 0 || p.character > line.length)\n throw new ShikiError(`Invalid decoration position ${JSON.stringify(p)}. Line ${p.line} length: ${line.length}`);\n return {\n ...p,\n offset: converter.posToIndex(p.line, p.character),\n };\n }\n }\n const decorations = (shiki.options.decorations || [])\n .map((d) => ({\n ...d,\n start: normalizePosition(d.start),\n end: normalizePosition(d.end),\n }));\n verifyIntersections(decorations);\n map.set(shiki.meta, {\n decorations,\n converter,\n source: shiki.source,\n });\n }\n return map.get(shiki.meta);\n }\n function verifyIntersections(items) {\n for (let i = 0; i < items.length; i++) {\n const foo = items[i];\n if (foo.start.offset > foo.end.offset)\n throw new ShikiError(`Invalid decoration range: ${JSON.stringify(foo.start)} - ${JSON.stringify(foo.end)}`);\n for (let j = i + 1; j < items.length; j++) {\n const bar = items[j];\n const isFooHasBarStart = foo.start.offset < bar.start.offset && bar.start.offset < foo.end.offset;\n const isFooHasBarEnd = foo.start.offset < bar.end.offset && bar.end.offset < foo.end.offset;\n const isBarHasFooStart = bar.start.offset < foo.start.offset && foo.start.offset < bar.end.offset;\n const isBarHasFooEnd = bar.start.offset < foo.end.offset && foo.end.offset < bar.end.offset;\n if (isFooHasBarStart || isFooHasBarEnd || isBarHasFooStart || isBarHasFooEnd) {\n if (isFooHasBarEnd && isFooHasBarEnd)\n continue; // nested\n if (isBarHasFooStart && isBarHasFooEnd)\n continue; // nested\n throw new ShikiError(`Decorations ${JSON.stringify(foo.start)} and ${JSON.stringify(bar.start)} intersect.`);\n }\n }\n }\n }\n return {\n name: 'shiki:decorations',\n tokens(tokens) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const breakpoints = ctx.decorations.flatMap(d => [d.start.offset, d.end.offset]);\n const splitted = splitTokens(tokens, breakpoints);\n return splitted;\n },\n code(codeEl) {\n if (!this.options.decorations?.length)\n return;\n const ctx = getContext(this);\n const lines = Array.from(codeEl.children).filter(i => i.type === 'element' && i.tagName === 'span');\n if (lines.length !== ctx.converter.lines.length)\n throw new ShikiError(`Number of lines in code element (${lines.length}) does not match the number of lines in the source (${ctx.converter.lines.length}). Failed to apply decorations.`);\n function applyLineSection(line, start, end, decoration) {\n const lineEl = lines[line];\n let text = '';\n let startIndex = -1;\n let endIndex = -1;\n function stringify(el) {\n if (el.type === 'text')\n return el.value;\n if (el.type === 'element')\n return el.children.map(stringify).join('');\n return '';\n }\n if (start === 0)\n startIndex = 0;\n if (end === 0)\n endIndex = 0;\n if (end === Number.POSITIVE_INFINITY)\n endIndex = lineEl.children.length;\n if (startIndex === -1 || endIndex === -1) {\n for (let i = 0; i < lineEl.children.length; i++) {\n text += stringify(lineEl.children[i]);\n if (startIndex === -1 && text.length === start)\n startIndex = i + 1;\n if (endIndex === -1 && text.length === end)\n endIndex = i + 1;\n }\n }\n if (startIndex === -1)\n throw new ShikiError(`Failed to find start index for decoration ${JSON.stringify(decoration.start)}`);\n if (endIndex === -1)\n throw new ShikiError(`Failed to find end index for decoration ${JSON.stringify(decoration.end)}`);\n const children = lineEl.children.slice(startIndex, endIndex);\n // Full line decoration\n if (!decoration.alwaysWrap && children.length === lineEl.children.length) {\n applyDecoration(lineEl, decoration, 'line');\n }\n // Single token decoration\n else if (!decoration.alwaysWrap && children.length === 1 && children[0].type === 'element') {\n applyDecoration(children[0], decoration, 'token');\n }\n // Create a wrapper for the decoration\n else {\n const wrapper = {\n type: 'element',\n tagName: 'span',\n properties: {},\n children,\n };\n applyDecoration(wrapper, decoration, 'wrapper');\n lineEl.children.splice(startIndex, children.length, wrapper);\n }\n }\n function applyLine(line, decoration) {\n lines[line] = applyDecoration(lines[line], decoration, 'line');\n }\n function applyDecoration(el, decoration, type) {\n const properties = decoration.properties || {};\n const transform = decoration.transform || (i => i);\n el.tagName = decoration.tagName || 'span';\n el.properties = {\n ...el.properties,\n ...properties,\n class: el.properties.class,\n };\n if (decoration.properties?.class)\n addClassToHast(el, decoration.properties.class);\n el = transform(el, type) || el;\n return el;\n }\n const lineApplies = [];\n // Apply decorations in reverse order so the nested ones get applied first.\n const sorted = ctx.decorations.sort((a, b) => b.start.offset - a.start.offset);\n for (const decoration of sorted) {\n const { start, end } = decoration;\n if (start.line === end.line) {\n applyLineSection(start.line, start.character, end.character, decoration);\n }\n else if (start.line < end.line) {\n applyLineSection(start.line, start.character, Number.POSITIVE_INFINITY, decoration);\n for (let i = start.line + 1; i < end.line; i++)\n lineApplies.unshift(() => applyLine(i, decoration));\n applyLineSection(end.line, 0, end.character, decoration);\n }\n }\n lineApplies.forEach(i => i());\n },\n };\n}\n\nconst builtInTransformers = [\n /* @__PURE__ */ transformerDecorations(),\n];\nfunction getTransformers(options) {\n return [\n ...options.transformers || [],\n ...builtInTransformers,\n ];\n}\n\nfunction codeToHast(internal, code, options, transformerContext = {\n meta: {},\n options,\n codeToHast: (_code, _options) => codeToHast(internal, _code, _options),\n codeToTokens: (_code, _options) => codeToTokens(internal, _code, _options),\n}) {\n let input = code;\n for (const transformer of getTransformers(options))\n input = transformer.preprocess?.call(transformerContext, input, options) || input;\n let { tokens, fg, bg, themeName, rootStyle, } = codeToTokens(internal, input, options);\n const { mergeWhitespaces = true, } = options;\n if (mergeWhitespaces === true)\n tokens = mergeWhitespaceTokens(tokens);\n else if (mergeWhitespaces === 'never')\n tokens = splitWhitespaceTokens(tokens);\n const contextSource = {\n ...transformerContext,\n get source() {\n return input;\n },\n };\n for (const transformer of getTransformers(options))\n tokens = transformer.tokens?.call(contextSource, tokens) || tokens;\n return tokensToHast(tokens, {\n ...options,\n fg,\n bg,\n themeName,\n rootStyle,\n }, contextSource);\n}\nfunction tokensToHast(tokens, options, transformerContext) {\n const transformers = getTransformers(options);\n const lines = [];\n const root = {\n type: 'root',\n children: [],\n };\n const { structure = 'classic', } = options;\n let preNode = {\n type: 'element',\n tagName: 'pre',\n properties: {\n class: `shiki ${options.themeName || ''}`,\n style: options.rootStyle || `background-color:${options.bg};color:${options.fg}`,\n tabindex: '0',\n ...Object.fromEntries(Array.from(Object.entries(options.meta || {}))\n .filter(([key]) => !key.startsWith('_'))),\n },\n children: [],\n };\n let codeNode = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: lines,\n };\n const lineNodes = [];\n const context = {\n ...transformerContext,\n structure,\n addClassToHast,\n get source() {\n return transformerContext.source;\n },\n get tokens() {\n return tokens;\n },\n get options() {\n return options;\n },\n get root() {\n return root;\n },\n get pre() {\n return preNode;\n },\n get code() {\n return codeNode;\n },\n get lines() {\n return lineNodes;\n },\n };\n tokens.forEach((line, idx) => {\n if (idx) {\n if (structure === 'inline')\n root.children.push({ type: 'element', tagName: 'br', properties: {}, children: [] });\n else if (structure === 'classic')\n lines.push({ type: 'text', value: '\\n' });\n }\n let lineNode = {\n type: 'element',\n tagName: 'span',\n properties: { class: 'line' },\n children: [],\n };\n let col = 0;\n for (const token of line) {\n let tokenNode = {\n type: 'element',\n tagName: 'span',\n properties: {},\n children: [{ type: 'text', value: token.content }],\n };\n const style = token.htmlStyle || stringifyTokenStyle(getTokenStyleObject(token));\n if (style)\n tokenNode.properties.style = style;\n for (const transformer of transformers)\n tokenNode = transformer?.span?.call(context, tokenNode, idx + 1, col, lineNode) || tokenNode;\n if (structure === 'inline')\n root.children.push(tokenNode);\n else if (structure === 'classic')\n lineNode.children.push(tokenNode);\n col += token.content.length;\n }\n if (structure === 'classic') {\n for (const transformer of transformers)\n lineNode = transformer?.line?.call(context, lineNode, idx + 1) || lineNode;\n lineNodes.push(lineNode);\n lines.push(lineNode);\n }\n });\n if (structure === 'classic') {\n for (const transformer of transformers)\n codeNode = transformer?.code?.call(context, codeNode) || codeNode;\n preNode.children.push(codeNode);\n for (const transformer of transformers)\n preNode = transformer?.pre?.call(context, preNode) || preNode;\n root.children.push(preNode);\n }\n let result = root;\n for (const transformer of transformers)\n result = transformer?.root?.call(context, result) || result;\n return result;\n}\nfunction mergeWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n const newLine = [];\n let carryOnContent = '';\n let firstOffset = 0;\n line.forEach((token, idx) => {\n const isUnderline = token.fontStyle && token.fontStyle & FontStyle.Underline;\n const couldMerge = !isUnderline;\n if (couldMerge && token.content.match(/^\\s+$/) && line[idx + 1]) {\n if (!firstOffset)\n firstOffset = token.offset;\n carryOnContent += token.content;\n }\n else {\n if (carryOnContent) {\n if (couldMerge) {\n newLine.push({\n ...token,\n offset: firstOffset,\n content: carryOnContent + token.content,\n });\n }\n else {\n newLine.push({\n content: carryOnContent,\n offset: firstOffset,\n }, token);\n }\n firstOffset = 0;\n carryOnContent = '';\n }\n else {\n newLine.push(token);\n }\n }\n });\n return newLine;\n });\n}\nfunction splitWhitespaceTokens(tokens) {\n return tokens.map((line) => {\n return line.flatMap((token) => {\n if (token.content.match(/^\\s+$/))\n return token;\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n const match = token.content.match(/^(\\s*)(.*?)(\\s*)$/);\n if (!match)\n return token;\n const [, leading, content, trailing] = match;\n if (!leading && !trailing)\n return token;\n const expanded = [{\n ...token,\n offset: token.offset + leading.length,\n content,\n }];\n if (leading) {\n expanded.unshift({\n content: leading,\n offset: token.offset,\n });\n }\n if (trailing) {\n expanded.push({\n content: trailing,\n offset: token.offset + leading.length + content.length,\n });\n }\n return expanded;\n });\n });\n}\n\n/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nconst htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n];\n\n/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nclass Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property;\n this.normal = normal;\n if (space) {\n this.space = space;\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {};\n/** @type {Normal} */\nSchema.prototype.normal = {};\n/** @type {string|null} */\nSchema.prototype.space = null;\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nfunction merge(definitions, space) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n let index = -1;\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property);\n Object.assign(normal, definitions[index].normal);\n }\n\n return new Schema(property, normal, space)\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction normalize(value) {\n return value.toLowerCase()\n}\n\nclass Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property;\n /** @type {string} */\n this.attribute = attribute;\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null;\nInfo.prototype.boolean = false;\nInfo.prototype.booleanish = false;\nInfo.prototype.overloadedBoolean = false;\nInfo.prototype.number = false;\nInfo.prototype.commaSeparated = false;\nInfo.prototype.spaceSeparated = false;\nInfo.prototype.commaOrSpaceSeparated = false;\nInfo.prototype.mustUseProperty = false;\nInfo.prototype.defined = false;\n\nlet powers = 0;\n\nconst boolean = increment();\nconst booleanish = increment();\nconst overloadedBoolean = increment();\nconst number = increment();\nconst spaceSeparated = increment();\nconst commaSeparated = increment();\nconst commaOrSpaceSeparated = increment();\n\nfunction increment() {\n return 2 ** ++powers\n}\n\nvar types = /*#__PURE__*/Object.freeze({\n __proto__: null,\n boolean: boolean,\n booleanish: booleanish,\n commaOrSpaceSeparated: commaOrSpaceSeparated,\n commaSeparated: commaSeparated,\n number: number,\n overloadedBoolean: overloadedBoolean,\n spaceSeparated: spaceSeparated\n});\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types);\n\nclass DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1;\n\n super(property, attribute);\n\n mark(this, 'space', space);\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index];\n mark(this, checks[index], (mask & types[check]) === types[check]);\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true;\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value;\n }\n}\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\n\nconst own$3 = {}.hasOwnProperty;\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nfunction create(definition) {\n /** @type {Properties} */\n const property = {};\n /** @type {Normal} */\n const normal = {};\n /** @type {string} */\n let prop;\n\n for (prop in definition.properties) {\n if (own$3.call(definition.properties, prop)) {\n const value = definition.properties[prop];\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n );\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true;\n }\n\n property[prop] = info;\n\n normal[normalize(prop)] = prop;\n normal[normalize(info.attribute)] = prop;\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n\nconst xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n});\n\nconst xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n});\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n\nconst xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n});\n\nconst aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n});\n\nconst html$3 = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n});\n\nconst svg$1 = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n});\n\n/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\n\nconst valid = /^data[-\\w.:]+$/i;\nconst dash = /-[a-z]/g;\nconst cap = /[A-Z]/g;\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nfunction find(schema, value) {\n const normal = normalize(value);\n let prop = value;\n let Type = Info;\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase);\n prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1);\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4);\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab);\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes;\n }\n\n value = 'data' + dashes;\n }\n }\n\n Type = DefinedInfo;\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n\n/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nconst html$2 = merge([xml, xlink, xmlns, aria, html$3], 'html');\nconst svg = merge([xml, xlink, xmlns, aria, svg$1], 'svg');\n\n/**\n * @callback Handler\n * Handle a value, with a certain ID field set to a certain value.\n * The ID field is passed to `zwitch`, and it’s value is this function’s\n * place on the `handlers` record.\n * @param {...any} parameters\n * Arbitrary parameters passed to the zwitch.\n * The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback UnknownHandler\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @param {unknown} value\n * An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback InvalidHandler\n * Handle values that do not have a certain ID field.\n * @param {unknown} value\n * Any unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n * This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @typedef Options\n * Configuration (required).\n * @property {Invalid} [invalid]\n * Handler to use for invalid values.\n * @property {Unknown} [unknown]\n * Handler to use for unknown values.\n * @property {Handlers} [handlers]\n * Handlers to use.\n */\n\nconst own$2 = {}.hasOwnProperty;\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @param {string} key\n * Field to switch on.\n * @param {Options<Invalid, Unknown, Handlers>} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters<Handlers[keyof Handlers]>): ReturnType<Handlers[keyof Handlers]>, (...parameters: Parameters<Unknown>): ReturnType<Unknown>}}\n */\nfunction zwitch(key, options) {\n const settings = options || {};\n\n /**\n * Handle one value.\n *\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid” handler will be called.\n * If `value` has an unknown `key`, the special “unknown” handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @this {unknown}\n * Any context object.\n * @param {unknown} [value]\n * Any value.\n * @param {...unknown} parameters\n * Arbitrary parameters passed to the zwitch.\n * @property {Handler} invalid\n * Handle for values that do not have a certain ID field.\n * @property {Handler} unknown\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @property {Handlers} handlers\n * Record of handlers.\n * @returns {unknown}\n * Anything.\n */\n function one(value, ...parameters) {\n /** @type {Handler|undefined} */\n let fn = one.invalid;\n const handlers = one.handlers;\n\n if (value && own$2.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key]);\n // @ts-expect-error Indexable.\n fn = own$2.call(handlers, id) ? handlers[id] : one.unknown;\n }\n\n if (fn) {\n return fn.call(this, value, ...parameters)\n }\n }\n\n one.handlers = settings.handlers || {};\n one.invalid = settings.invalid;\n one.unknown = settings.unknown;\n\n // @ts-expect-error: matches!\n return one\n}\n\n/**\n * @typedef CoreOptions\n * @property {Array<string>} [subset=[]]\n * Whether to only escape the given subset of characters.\n * @property {boolean} [escapeOnly=false]\n * Whether to only escape possibly dangerous characters.\n * Those characters are `\"`, `&`, `'`, `<`, `>`, and `` ` ``.\n *\n * @typedef FormatOptions\n * @property {(code: number, next: number, options: CoreWithFormatOptions) => string} format\n * Format strategy.\n *\n * @typedef {CoreOptions & FormatOptions & import('./util/format-smart.js').FormatSmartOptions} CoreWithFormatOptions\n */\n\n/**\n * Encode certain characters in `value`.\n *\n * @param {string} value\n * @param {CoreWithFormatOptions} options\n * @returns {string}\n */\nfunction core(value, options) {\n value = value.replace(\n options.subset ? charactersToExpression(options.subset) : /[\"&'<>`]/g,\n basic\n );\n\n if (options.subset || options.escapeOnly) {\n return value\n }\n\n return (\n value\n // Surrogate pairs.\n .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, surrogate)\n // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n // non-ASCII ones).\n .replace(\n // eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n /[\\x01-\\t\\v\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g,\n basic\n )\n )\n\n /**\n * @param {string} pair\n * @param {number} index\n * @param {string} all\n */\n function surrogate(pair, index, all) {\n return options.format(\n (pair.charCodeAt(0) - 0xd800) * 0x400 +\n pair.charCodeAt(1) -\n 0xdc00 +\n 0x10000,\n all.charCodeAt(index + 2),\n options\n )\n }\n\n /**\n * @param {string} character\n * @param {number} index\n * @param {string} all\n */\n function basic(character, index, all) {\n return options.format(\n character.charCodeAt(0),\n all.charCodeAt(index + 1),\n options\n )\n }\n}\n\n/**\n * @param {Array<string>} subset\n * @returns {RegExp}\n */\nfunction charactersToExpression(subset) {\n /** @type {Array<string>} */\n const groups = [];\n let index = -1;\n\n while (++index < subset.length) {\n groups.push(subset[index].replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'));\n }\n\n return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\n\n/**\n * Configurable ways to encode characters as hexadecimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nfunction toHexadecimal(code, next, omit) {\n const value = '&#x' + code.toString(16).toUpperCase();\n return omit && next && !/[\\dA-Fa-f]/.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n\n/**\n * Configurable ways to encode characters as decimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nfunction toDecimal(code, next, omit) {\n const value = '&#' + String(code);\n return omit && next && !/\\d/.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n\n/**\n * List of legacy HTML named character references that don’t need a trailing semicolon.\n *\n * @type {Array<string>}\n */\nconst characterEntitiesLegacy = [\n 'AElig',\n 'AMP',\n 'Aacute',\n 'Acirc',\n 'Agrave',\n 'Aring',\n 'Atilde',\n 'Auml',\n 'COPY',\n 'Ccedil',\n 'ETH',\n 'Eacute',\n 'Ecirc',\n 'Egrave',\n 'Euml',\n 'GT',\n 'Iacute',\n 'Icirc',\n 'Igrave',\n 'Iuml',\n 'LT',\n 'Ntilde',\n 'Oacute',\n 'Ocirc',\n 'Ograve',\n 'Oslash',\n 'Otilde',\n 'Ouml',\n 'QUOT',\n 'REG',\n 'THORN',\n 'Uacute',\n 'Ucirc',\n 'Ugrave',\n 'Uuml',\n 'Yacute',\n 'aacute',\n 'acirc',\n 'acute',\n 'aelig',\n 'agrave',\n 'amp',\n 'aring',\n 'atilde',\n 'auml',\n 'brvbar',\n 'ccedil',\n 'cedil',\n 'cent',\n 'copy',\n 'curren',\n 'deg',\n 'divide',\n 'eacute',\n 'ecirc',\n 'egrave',\n 'eth',\n 'euml',\n 'frac12',\n 'frac14',\n 'frac34',\n 'gt',\n 'iacute',\n 'icirc',\n 'iexcl',\n 'igrave',\n 'iquest',\n 'iuml',\n 'laquo',\n 'lt',\n 'macr',\n 'micro',\n 'middot',\n 'nbsp',\n 'not',\n 'ntilde',\n 'oacute',\n 'ocirc',\n 'ograve',\n 'ordf',\n 'ordm',\n 'oslash',\n 'otilde',\n 'ouml',\n 'para',\n 'plusmn',\n 'pound',\n 'quot',\n 'raquo',\n 'reg',\n 'sect',\n 'shy',\n 'sup1',\n 'sup2',\n 'sup3',\n 'szlig',\n 'thorn',\n 'times',\n 'uacute',\n 'ucirc',\n 'ugrave',\n 'uml',\n 'uuml',\n 'yacute',\n 'yen',\n 'yuml'\n];\n\n/**\n * Map of named character references from HTML 4.\n *\n * @type {Record<string, string>}\n */\nconst characterEntitiesHtml4 = {\n nbsp: ' ',\n iexcl: '¡',\n cent: '¢',\n pound: '£',\n curren: '¤',\n yen: '¥',\n brvbar: '¦',\n sect: '§',\n uml: '¨',\n copy: '©',\n ordf: 'ª',\n laquo: '«',\n not: '¬',\n shy: '­',\n reg: '®',\n macr: '¯',\n deg: '°',\n plusmn: '±',\n sup2: '²',\n sup3: '³',\n acute: '´',\n micro: 'µ',\n para: '¶',\n middot: '·',\n cedil: '¸',\n sup1: '¹',\n ordm: 'º',\n raquo: '»',\n frac14: '¼',\n frac12: '½',\n frac34: '¾',\n iquest: '¿',\n Agrave: 'À',\n Aacute: 'Á',\n Acirc: 'Â',\n Atilde: 'Ã',\n Auml: 'Ä',\n Aring: 'Å',\n AElig: 'Æ',\n Ccedil: 'Ç',\n Egrave: 'È',\n Eacute: 'É',\n Ecirc: 'Ê',\n Euml: 'Ë',\n Igrave: 'Ì',\n Iacute: 'Í',\n Icirc: 'Î',\n Iuml: 'Ï',\n ETH: 'Ð',\n Ntilde: 'Ñ',\n Ograve: 'Ò',\n Oacute: 'Ó',\n Ocirc: 'Ô',\n Otilde: 'Õ',\n Ouml: 'Ö',\n times: '×',\n Oslash: 'Ø',\n Ugrave: 'Ù',\n Uacute: 'Ú',\n Ucirc: 'Û',\n Uuml: 'Ü',\n Yacute: 'Ý',\n THORN: 'Þ',\n szlig: 'ß',\n agrave: 'à',\n aacute: 'á',\n acirc: 'â',\n atilde: 'ã',\n auml: 'ä',\n aring: 'å',\n aelig: 'æ',\n ccedil: 'ç',\n egrave: 'è',\n eacute: 'é',\n ecirc: 'ê',\n euml: 'ë',\n igrave: 'ì',\n iacute: 'í',\n icirc: 'î',\n iuml: 'ï',\n eth: 'ð',\n ntilde: 'ñ',\n ograve: 'ò',\n oacute: 'ó',\n ocirc: 'ô',\n otilde: 'õ',\n ouml: 'ö',\n divide: '÷',\n oslash: 'ø',\n ugrave: 'ù',\n uacute: 'ú',\n ucirc: 'û',\n uuml: 'ü',\n yacute: 'ý',\n thorn: 'þ',\n yuml: 'ÿ',\n fnof: 'ƒ',\n Alpha: 'Α',\n Beta: 'Β',\n Gamma: 'Γ',\n Delta: 'Δ',\n Epsilon: 'Ε',\n Zeta: 'Ζ',\n Eta: 'Η',\n Theta: 'Θ',\n Iota: 'Ι',\n Kappa: 'Κ',\n Lambda: 'Λ',\n Mu: 'Μ',\n Nu: 'Ν',\n Xi: 'Ξ',\n Omicron: 'Ο',\n Pi: 'Π',\n Rho: 'Ρ',\n Sigma: 'Σ',\n Tau: 'Τ',\n Upsilon: 'Υ',\n Phi: 'Φ',\n Chi: 'Χ',\n Psi: 'Ψ',\n Omega: 'Ω',\n alpha: 'α',\n beta: 'β',\n gamma: 'γ',\n delta: 'δ',\n epsilon: 'ε',\n zeta: 'ζ',\n eta: 'η',\n theta: 'θ',\n iota: 'ι',\n kappa: 'κ',\n lambda: 'λ',\n mu: 'μ',\n nu: 'ν',\n xi: 'ξ',\n omicron: 'ο',\n pi: 'π',\n rho: 'ρ',\n sigmaf: 'ς',\n sigma: 'σ',\n tau: 'τ',\n upsilon: 'υ',\n phi: 'φ',\n chi: 'χ',\n psi: 'ψ',\n omega: 'ω',\n thetasym: 'ϑ',\n upsih: 'ϒ',\n piv: 'ϖ',\n bull: '•',\n hellip: '…',\n prime: '′',\n Prime: '″',\n oline: '‾',\n frasl: '⁄',\n weierp: '℘',\n image: 'ℑ',\n real: 'ℜ',\n trade: '™',\n alefsym: 'ℵ',\n larr: '←',\n uarr: '↑',\n rarr: '→',\n darr: '↓',\n harr: '↔',\n crarr: '↵',\n lArr: '⇐',\n uArr: '⇑',\n rArr: '⇒',\n dArr: '⇓',\n hArr: '⇔',\n forall: '∀',\n part: '∂',\n exist: '∃',\n empty: '∅',\n nabla: '∇',\n isin: '∈',\n notin: '∉',\n ni: '∋',\n prod: '∏',\n sum: '∑',\n minus: '−',\n lowast: '∗',\n radic: '√',\n prop: '∝',\n infin: '∞',\n ang: '∠',\n and: '∧',\n or: '∨',\n cap: '∩',\n cup: '∪',\n int: '∫',\n there4: '∴',\n sim: '∼',\n cong: '≅',\n asymp: '≈',\n ne: '≠',\n equiv: '≡',\n le: '≤',\n ge: '≥',\n sub: '⊂',\n sup: '⊃',\n nsub: '⊄',\n sube: '⊆',\n supe: '⊇',\n oplus: '⊕',\n otimes: '⊗',\n perp: '⊥',\n sdot: '⋅',\n lceil: '⌈',\n rceil: '⌉',\n lfloor: '⌊',\n rfloor: '⌋',\n lang: '〈',\n rang: '〉',\n loz: '◊',\n spades: '♠',\n clubs: '♣',\n hearts: '♥',\n diams: '♦',\n quot: '\"',\n amp: '&',\n lt: '<',\n gt: '>',\n OElig: 'Œ',\n oelig: 'œ',\n Scaron: 'Š',\n scaron: 'š',\n Yuml: 'Ÿ',\n circ: 'ˆ',\n tilde: '˜',\n ensp: ' ',\n emsp: ' ',\n thinsp: ' ',\n zwnj: '‌',\n zwj: '‍',\n lrm: '‎',\n rlm: '‏',\n ndash: '–',\n mdash: '—',\n lsquo: '‘',\n rsquo: '’',\n sbquo: '‚',\n ldquo: '“',\n rdquo: '”',\n bdquo: '„',\n dagger: '†',\n Dagger: '‡',\n permil: '‰',\n lsaquo: '‹',\n rsaquo: '›',\n euro: '€'\n};\n\n/**\n * List of legacy (that don’t need a trailing `;`) named references which could,\n * depending on what follows them, turn into a different meaning\n *\n * @type {Array<string>}\n */\nconst dangerous = [\n 'cent',\n 'copy',\n 'divide',\n 'gt',\n 'lt',\n 'not',\n 'para',\n 'times'\n];\n\nconst own$1 = {}.hasOwnProperty;\n\n/**\n * `characterEntitiesHtml4` but inverted.\n *\n * @type {Record<string, string>}\n */\nconst characters = {};\n\n/** @type {string} */\nlet key;\n\nfor (key in characterEntitiesHtml4) {\n if (own$1.call(characterEntitiesHtml4, key)) {\n characters[characterEntitiesHtml4[key]] = key;\n }\n}\n\n/**\n * Configurable ways to encode characters as named references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @param {boolean|undefined} attribute\n * @returns {string}\n */\nfunction toNamed(code, next, omit, attribute) {\n const character = String.fromCharCode(code);\n\n if (own$1.call(characters, character)) {\n const name = characters[character];\n const value = '&' + name;\n\n if (\n omit &&\n characterEntitiesLegacy.includes(name) &&\n !dangerous.includes(name) &&\n (!attribute ||\n (next &&\n next !== 61 /* `=` */ &&\n /[^\\da-z]/i.test(String.fromCharCode(next))))\n ) {\n return value\n }\n\n return value + ';'\n }\n\n return ''\n}\n\n/**\n * @typedef FormatSmartOptions\n * @property {boolean} [useNamedReferences=false]\n * Prefer named character references (`&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]}
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 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 const themeSettingsSelectors = [];\n if (options.includeExplanation !== 'scopeName') {\n for (const setting of theme.settings) {\n let selectors;\n switch (typeof setting.scope) {\n case 'string':\n selectors = setting.scope.split(/,/).map(scope => scope.trim());\n break;\n case 'object':\n selectors = setting.scope;\n break;\n default:\n continue;\n }\n themeSettingsSelectors.push({\n settings: setting,\n selectors: selectors.map(selector => selector.split(/ /)),\n });\n }\n }\n token.explanation = [];\n let offset = 0;\n while (startIndex + offset < nextStartIndex) {\n const tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];\n const tokenWithScopesText = line.substring(tokenWithScopes.startIndex, tokenWithScopes.endIndex);\n offset += tokenWithScopesText.length;\n token.explanation.push({\n content: tokenWithScopesText,\n scopes: options.includeExplanation === 'scopeName'\n ? explainThemeScopesNameOnly(tokenWithScopes.scopes)\n : explainThemeScopesFull(themeSettingsSelectors, tokenWithScopes.scopes),\n });\n tokensWithScopesIndex += 1;\n }\n }\n actual.push(token);\n }\n final.push(actual);\n actual = [];\n stateStack = result.ruleStack;\n }\n return {\n tokens: final,\n stateStack,\n };\n}\nfunction explainThemeScopesNameOnly(scopes) {\n return scopes.map(scope => ({ scopeName: scope }));\n}\nfunction explainThemeScopesFull(themeSelectors, scopes) {\n const result = [];\n for (let i = 0, len = scopes.length; i < len; i++) {\n const scope = scopes[i];\n result[i] = {\n scopeName: scope,\n themeMatches: explainThemeScope(themeSelectors, scope, scopes.slice(0, i)),\n };\n }\n return result;\n}\nfunction matchesOne(selector, scope) {\n return selector === scope\n || (scope.substring(0, selector.length) === selector && scope[selector.length] === '.');\n}\nfunction matches(selectors, scope, parentScopes) {\n if (!matchesOne(selectors[selectors.length - 1], scope))\n return false;\n let selectorParentIndex = selectors.length - 2;\n let parentIndex = parentScopes.length - 1;\n while (selectorParentIndex >= 0 && parentIndex >= 0) {\n if (matchesOne(selectors[selectorParentIndex], parentScopes[parentIndex]))\n selectorParentIndex -= 1;\n parentIndex -= 1;\n }\n if (selectorParentIndex === -1)\n return true;\n return false;\n}\nfunction explainThemeScope(themeSettingsSelectors, scope, parentScopes) {\n const result = [];\n for (const { selectors, settings } of themeSettingsSelectors) {\n for (const selectorPieces of selectors) {\n if (matches(selectorPieces, scope, parentScopes)) {\n result.push(settings);\n break; // continue to the next theme settings\n }\n }\n }\n return result;\n}\n\n/**\n * Get tokens with multiple themes\n */\nfunction codeToTokensWithThemes(internal, code, options) {\n const themes = Object.entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }));\n const tokens = syncThemesTokenization(...themes.map(t => codeToTokensBase(internal, code, {\n ...options,\n theme: t.theme,\n })));\n const mergedTokens = tokens[0]\n .map((line, lineIdx) => line\n .map((_token, tokenIdx) => {\n const mergedToken = {\n content: _token.content,\n variants: {},\n offset: _token.offset,\n };\n if ('includeExplanation' in options && options.includeExplanation) {\n mergedToken.explanation = _token.explanation;\n }\n tokens.forEach((t, themeIdx) => {\n const { content: _, explanation: __, offset: ___, ...styles } = t[lineIdx][tokenIdx];\n mergedToken.variants[themes[themeIdx].color] = styles;\n });\n return mergedToken;\n }));\n return mergedTokens;\n}\n/**\n * Break tokens from multiple themes into same tokenization.\n *\n * For example, given two themes that tokenize `console.log(\"hello\")` as:\n *\n * - `console . log (\" hello \")` (6 tokens)\n * - `console .log ( \"hello\" )` (5 tokens)\n *\n * This function will return:\n *\n * - `console . log ( \" hello \" )` (8 tokens)\n * - `console . log ( \" hello \" )` (8 tokens)\n */\nfunction syncThemesTokenization(...themes) {\n const outThemes = themes.map(() => []);\n const count = themes.length;\n for (let i = 0; i < themes[0].length; i++) {\n const lines = themes.map(t => t[i]);\n const outLines = outThemes.map(() => []);\n outThemes.forEach((t, i) => t.push(outLines[i]));\n const indexes = lines.map(() => 0);\n const current = lines.map(l => l[0]);\n while (current.every(t => t)) {\n const minLength = Math.min(...current.map(t => t.content.length));\n for (let n = 0; n < count; n++) {\n const token = current[n];\n if (token.content.length === minLength) {\n outLines[n].push(token);\n indexes[n] += 1;\n current[n] = lines[n][indexes[n]];\n }\n else {\n outLines[n].push({\n ...token,\n content: token.content.slice(0, minLength),\n });\n current[n] = {\n ...token,\n content: token.content.slice(minLength),\n offset: token.offset + minLength,\n };\n }\n }\n }\n }\n return outThemes;\n}\n\n/**\n * High-level code-to-tokens API.\n *\n * It will use `codeToTokensWithThemes` or `codeToTokensBase` based on the options.\n */\nfunction codeToTokens(internal, code, options) {\n let bg;\n let fg;\n let tokens;\n let themeName;\n let rootStyle;\n if ('themes' in options) {\n const { defaultColor = 'light', cssVariablePrefix = '--shiki-', } = options;\n const themes = Object.entries(options.themes)\n .filter(i => i[1])\n .map(i => ({ color: i[0], theme: i[1] }))\n .sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);\n if (themes.length === 0)\n throw new ShikiError('`themes` option must not be empty');\n const themeTokens = codeToTokensWithThemes(internal, code, options);\n if (defaultColor && !themes.find(t => t.color === defaultColor))\n throw new ShikiError(`\\`themes\\` option must contain the defaultColor key \\`${defaultColor}\\``);\n const themeRegs = themes.map(t => internal.getTheme(t.theme));\n const themesOrder = themes.map(t => t.color);\n tokens = themeTokens\n .map(line => line.map(token => mergeToken(token, themesOrder, cssVariablePrefix, defaultColor)));\n const themeColorReplacements = themes.map(t => resolveColorReplacements(t.theme, options));\n fg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}:`) + (applyColorReplacements(themeRegs[idx].fg, themeColorReplacements[idx]) || 'inherit')).join(';');\n bg = themes.map((t, idx) => (idx === 0 && defaultColor\n ? ''\n : `${cssVariablePrefix + t.color}-bg:`) + (applyColorReplacements(themeRegs[idx].bg, themeColorReplacements[idx]) || 'inherit')).join(';');\n themeName = `shiki-themes ${themeRegs.map(t => t.name).join(' ')}`;\n rootStyle = defaultColor ? undefined : [fg, bg].join(';');\n }\n else if ('theme' in options) {\n const colorReplacements = resolveColorReplacements(options.theme, options);\n tokens = codeToTokensBase(internal, code, options);\n const _theme = internal.getTheme(options.theme);\n bg = applyColorReplacements(_theme.bg, colorReplacements);\n fg = applyColorReplacements(_theme.fg, colorReplacements);\n themeName = _theme.name;\n }\n else {\n throw new ShikiError('Invalid options, either `theme` or `themes` must be provided');\n }\n return {\n tokens,\n fg,\n bg,\n themeName,\n rootStyle,\n };\n}\nfunction mergeToken(merged, variantsOrder, cssVariablePrefix, defaultColor) {\n const token = {\n content: merged.content,\n explanation: merged.explanation,\n offset: merged.offset,\n };\n const styles = variantsOrder.map(t => getTokenStyleObject(merged.variants[t]));\n // Get all style keys, for themes that missing some style, we put `inherit` to override as needed\n const styleKeys = new Set(styles.flatMap(t => Object.keys(t)));\n const mergedStyles = styles.reduce((acc, cur, idx) => {\n for (const key of styleKeys) {\n const value = cur[key] || 'inherit';\n if (idx === 0 && defaultColor) {\n acc[key] = value;\n }\n else {\n const keyName = key === 'color' ? '' : key === 'background-color' ? '-bg' : `-${key}`;\n const varKey = cssVariablePrefix + variantsOrder[idx] + (key === 'color' ? '' : keyName);\n if (acc[key])\n acc[key] += `;${varKey}:${value}`;\n else\n acc[key] = `${varKey}:${value}`;\n }\n }\n return acc;\n }, {});\n token.htmlStyle = defaultColor\n ? stringifyTokenStyle(mergedStyles)\n : Object.values(mergedStyles).join(';');\n return token;\n}\n\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\": \"coq\",\n \"name\": \"Coq\",\n \"import\": () => import('./langs/coq.mjs')\n },\n {\n \"id\": \"cpp\",\n \"name\": \"C++\",\n \"aliases\": [\n \"c++\"\n ],\n \"import\": () => import('./langs/cpp.mjs')\n },\n {\n \"id\": \"crystal\",\n \"name\": \"Crystal\",\n \"import\": () => import('./langs/crystal.mjs')\n },\n {\n \"id\": \"csharp\",\n \"name\": \"C#\",\n \"aliases\": [\n \"c#\",\n \"cs\"\n ],\n \"import\": () => import('./langs/csharp.mjs')\n },\n {\n \"id\": \"css\",\n \"name\": \"CSS\",\n \"import\": () => import('./langs/css.mjs')\n },\n {\n \"id\": \"csv\",\n \"name\": \"CSV\",\n \"import\": () => import('./langs/csv.mjs')\n },\n {\n \"id\": \"cue\",\n \"name\": \"CUE\",\n \"import\": () => import('./langs/cue.mjs')\n },\n {\n \"id\": \"cypher\",\n \"name\": \"Cypher\",\n \"aliases\": [\n \"cql\"\n ],\n \"import\": () => import('./langs/cypher.mjs')\n },\n {\n \"id\": \"d\",\n \"name\": \"D\",\n \"import\": () => import('./langs/d.mjs')\n },\n {\n \"id\": \"dart\",\n \"name\": \"Dart\",\n \"import\": () => import('./langs/dart.mjs')\n },\n {\n \"id\": \"dax\",\n \"name\": \"DAX\",\n \"import\": () => import('./langs/dax.mjs')\n },\n {\n \"id\": \"desktop\",\n \"name\": \"Desktop\",\n \"import\": () => import('./langs/desktop.mjs')\n },\n {\n \"id\": \"diff\",\n \"name\": \"Diff\",\n \"import\": () => import('./langs/diff.mjs')\n },\n {\n \"id\": \"docker\",\n \"name\": \"Dockerfile\",\n \"aliases\": [\n \"dockerfile\"\n ],\n \"import\": () => import('./langs/docker.mjs')\n },\n {\n \"id\": \"dotenv\",\n \"name\": \"dotEnv\",\n \"import\": () => import('./langs/dotenv.mjs')\n },\n {\n \"id\": \"dream-maker\",\n \"name\": \"Dream Maker\",\n \"import\": () => import('./langs/dream-maker.mjs')\n },\n {\n \"id\": \"edge\",\n \"name\": \"Edge\",\n \"import\": () => import('./langs/edge.mjs')\n },\n {\n \"id\": \"elixir\",\n \"name\": \"Elixir\",\n \"import\": () => import('./langs/elixir.mjs')\n },\n {\n \"id\": \"elm\",\n \"name\": \"Elm\",\n \"import\": () => import('./langs/elm.mjs')\n },\n {\n \"id\": \"emacs-lisp\",\n \"name\": \"Emacs Lisp\",\n \"aliases\": [\n \"elisp\"\n ],\n \"import\": () => import('./langs/emacs-lisp.mjs')\n },\n {\n \"id\": \"erb\",\n \"name\": \"ERB\",\n \"import\": () => import('./langs/erb.mjs')\n },\n {\n \"id\": \"erlang\",\n \"name\": \"Erlang\",\n \"aliases\": [\n \"erl\"\n ],\n \"import\": () => import('./langs/erlang.mjs')\n },\n {\n \"id\": \"fennel\",\n \"name\": \"Fennel\",\n \"import\": () => import('./langs/fennel.mjs')\n },\n {\n \"id\": \"fish\",\n \"name\": \"Fish\",\n \"import\": () => import('./langs/fish.mjs')\n },\n {\n \"id\": \"fluent\",\n \"name\": \"Fluent\",\n \"aliases\": [\n \"ftl\"\n ],\n \"import\": () => import('./langs/fluent.mjs')\n },\n {\n \"id\": \"fortran-fixed-form\",\n \"name\": \"Fortran (Fixed Form)\",\n \"aliases\": [\n \"f\",\n \"for\",\n \"f77\"\n ],\n \"import\": () => import('./langs/fortran-fixed-form.mjs')\n },\n {\n \"id\": \"fortran-free-form\",\n \"name\": \"Fortran (Free Form)\",\n \"aliases\": [\n \"f90\",\n \"f95\",\n \"f03\",\n \"f08\",\n \"f18\"\n ],\n \"import\": () => import('./langs/fortran-free-form.mjs')\n },\n {\n \"id\": \"fsharp\",\n \"name\": \"F#\",\n \"aliases\": [\n \"f#\",\n \"fs\"\n ],\n \"import\": () => import('./langs/fsharp.mjs')\n },\n {\n \"id\": \"gdresource\",\n \"name\": \"GDResource\",\n \"import\": () => import('./langs/gdresource.mjs')\n },\n {\n \"id\": \"gdscript\",\n \"name\": \"GDScript\",\n \"import\": () => import('./langs/gdscript.mjs')\n },\n {\n \"id\": \"gdshader\",\n \"name\": \"GDShader\",\n \"import\": () => import('./langs/gdshader.mjs')\n },\n {\n \"id\": \"genie\",\n \"name\": \"Genie\",\n \"import\": () => import('./langs/genie.mjs')\n },\n {\n \"id\": \"gherkin\",\n \"name\": \"Gherkin\",\n \"import\": () => import('./langs/gherkin.mjs')\n },\n {\n \"id\": \"git-commit\",\n \"name\": \"Git Commit Message\",\n \"import\": () => import('./langs/git-commit.mjs')\n },\n {\n \"id\": \"git-rebase\",\n \"name\": \"Git Rebase Message\",\n \"import\": () => import('./langs/git-rebase.mjs')\n },\n {\n \"id\": \"gleam\",\n \"name\": \"Gleam\",\n \"import\": () => import('./langs/gleam.mjs')\n },\n {\n \"id\": \"glimmer-js\",\n \"name\": \"Glimmer JS\",\n \"aliases\": [\n \"gjs\"\n ],\n \"import\": () => import('./langs/glimmer-js.mjs')\n },\n {\n \"id\": \"glimmer-ts\",\n \"name\": \"Glimmer TS\",\n \"aliases\": [\n \"gts\"\n ],\n \"import\": () => import('./langs/glimmer-ts.mjs')\n },\n {\n \"id\": \"glsl\",\n \"name\": \"GLSL\",\n \"import\": () => import('./langs/glsl.mjs')\n },\n {\n \"id\": \"gnuplot\",\n \"name\": \"Gnuplot\",\n \"import\": () => import('./langs/gnuplot.mjs')\n },\n {\n \"id\": \"go\",\n \"name\": \"Go\",\n \"import\": () => import('./langs/go.mjs')\n },\n {\n \"id\": \"graphql\",\n \"name\": \"GraphQL\",\n \"aliases\": [\n \"gql\"\n ],\n \"import\": () => import('./langs/graphql.mjs')\n },\n {\n \"id\": \"groovy\",\n \"name\": \"Groovy\",\n \"import\": () => import('./langs/groovy.mjs')\n },\n {\n \"id\": \"hack\",\n \"name\": \"Hack\",\n \"import\": () => import('./langs/hack.mjs')\n },\n {\n \"id\": \"haml\",\n \"name\": \"Ruby Haml\",\n \"import\": () => import('./langs/haml.mjs')\n },\n {\n \"id\": \"handlebars\",\n \"name\": \"Handlebars\",\n \"aliases\": [\n \"hbs\"\n ],\n \"import\": () => import('./langs/handlebars.mjs')\n },\n {\n \"id\": \"haskell\",\n \"name\": \"Haskell\",\n \"aliases\": [\n \"hs\"\n ],\n \"import\": () => import('./langs/haskell.mjs')\n },\n {\n \"id\": \"haxe\",\n \"name\": \"Haxe\",\n \"import\": () => import('./langs/haxe.mjs')\n },\n {\n \"id\": \"hcl\",\n \"name\": \"HashiCorp HCL\",\n \"import\": () => import('./langs/hcl.mjs')\n },\n {\n \"id\": \"hjson\",\n \"name\": \"Hjson\",\n \"import\": () => import('./langs/hjson.mjs')\n },\n {\n \"id\": \"hlsl\",\n \"name\": \"HLSL\",\n \"import\": () => import('./langs/hlsl.mjs')\n },\n {\n \"id\": \"html\",\n \"name\": \"HTML\",\n \"import\": () => import('./langs/html.mjs')\n },\n {\n \"id\": \"html-derivative\",\n \"name\": \"HTML (Derivative)\",\n \"import\": () => import('./langs/html-derivative.mjs')\n },\n {\n \"id\": \"http\",\n \"name\": \"HTTP\",\n \"import\": () => import('./langs/http.mjs')\n },\n {\n \"id\": \"hxml\",\n \"name\": \"HXML\",\n \"import\": () => import('./langs/hxml.mjs')\n },\n {\n \"id\": \"hy\",\n \"name\": \"Hy\",\n \"import\": () => import('./langs/hy.mjs')\n },\n {\n \"id\": \"imba\",\n \"name\": \"Imba\",\n \"import\": () => import('./langs/imba.mjs')\n },\n {\n \"id\": \"ini\",\n \"name\": \"INI\",\n \"aliases\": [\n \"properties\"\n ],\n \"import\": () => import('./langs/ini.mjs')\n },\n {\n \"id\": \"java\",\n \"name\": \"Java\",\n \"import\": () => import('./langs/java.mjs')\n },\n {\n \"id\": \"javascript\",\n \"name\": \"JavaScript\",\n \"aliases\": [\n \"js\"\n ],\n \"import\": () => import('./langs/javascript.mjs')\n },\n {\n \"id\": \"jinja\",\n \"name\": \"Jinja\",\n \"import\": () => import('./langs/jinja.mjs')\n },\n {\n \"id\": \"jison\",\n \"name\": \"Jison\",\n \"import\": () => import('./langs/jison.mjs')\n },\n {\n \"id\": \"json\",\n \"name\": \"JSON\",\n \"import\": () => import('./langs/json.mjs')\n },\n {\n \"id\": \"json5\",\n \"name\": \"JSON5\",\n \"import\": () => import('./langs/json5.mjs')\n },\n {\n \"id\": \"jsonc\",\n \"name\": \"JSON with Comments\",\n \"import\": () => import('./langs/jsonc.mjs')\n },\n {\n \"id\": \"jsonl\",\n \"name\": \"JSON Lines\",\n \"import\": () => import('./langs/jsonl.mjs')\n },\n {\n \"id\": \"jsonnet\",\n \"name\": \"Jsonnet\",\n \"import\": () => import('./langs/jsonnet.mjs')\n },\n {\n \"id\": \"jssm\",\n \"name\": \"JSSM\",\n \"aliases\": [\n \"fsl\"\n ],\n \"import\": () => import('./langs/jssm.mjs')\n },\n {\n \"id\": \"jsx\",\n \"name\": \"JSX\",\n \"import\": () => import('./langs/jsx.mjs')\n },\n {\n \"id\": \"julia\",\n \"name\": \"Julia\",\n \"aliases\": [\n \"jl\"\n ],\n \"import\": () => import('./langs/julia.mjs')\n },\n {\n \"id\": \"kotlin\",\n \"name\": \"Kotlin\",\n \"aliases\": [\n \"kt\",\n \"kts\"\n ],\n \"import\": () => import('./langs/kotlin.mjs')\n },\n {\n \"id\": \"kusto\",\n \"name\": \"Kusto\",\n \"aliases\": [\n \"kql\"\n ],\n \"import\": () => import('./langs/kusto.mjs')\n },\n {\n \"id\": \"latex\",\n \"name\": \"LaTeX\",\n \"import\": () => import('./langs/latex.mjs')\n },\n {\n \"id\": \"lean\",\n \"name\": \"Lean 4\",\n \"aliases\": [\n \"lean4\"\n ],\n \"import\": () => import('./langs/lean.mjs')\n },\n {\n \"id\": \"less\",\n \"name\": \"Less\",\n \"import\": () => import('./langs/less.mjs')\n },\n {\n \"id\": \"liquid\",\n \"name\": \"Liquid\",\n \"import\": () => import('./langs/liquid.mjs')\n },\n {\n \"id\": \"log\",\n \"name\": \"Log file\",\n \"import\": () => import('./langs/log.mjs')\n },\n {\n \"id\": \"logo\",\n \"name\": \"Logo\",\n \"import\": () => import('./langs/logo.mjs')\n },\n {\n \"id\": \"lua\",\n \"name\": \"Lua\",\n \"import\": () => import('./langs/lua.mjs')\n },\n {\n \"id\": \"luau\",\n \"name\": \"Luau\",\n \"import\": () => import('./langs/luau.mjs')\n },\n {\n \"id\": \"make\",\n \"name\": \"Makefile\",\n \"aliases\": [\n \"makefile\"\n ],\n \"import\": () => import('./langs/make.mjs')\n },\n {\n \"id\": \"markdown\",\n \"name\": \"Markdown\",\n \"aliases\": [\n \"md\"\n ],\n \"import\": () => import('./langs/markdown.mjs')\n },\n {\n \"id\": \"marko\",\n \"name\": \"Marko\",\n \"import\": () => import('./langs/marko.mjs')\n },\n {\n \"id\": \"matlab\",\n \"name\": \"MATLAB\",\n \"import\": () => import('./langs/matlab.mjs')\n },\n {\n \"id\": \"mdc\",\n \"name\": \"MDC\",\n \"import\": () => import('./langs/mdc.mjs')\n },\n {\n \"id\": \"mdx\",\n \"name\": \"MDX\",\n \"import\": () => import('./langs/mdx.mjs')\n },\n {\n \"id\": \"mermaid\",\n \"name\": \"Mermaid\",\n \"import\": () => import('./langs/mermaid.mjs')\n },\n {\n \"id\": \"mojo\",\n \"name\": \"Mojo\",\n \"import\": () => import('./langs/mojo.mjs')\n },\n {\n \"id\": \"move\",\n \"name\": \"Move\",\n \"import\": () => import('./langs/move.mjs')\n },\n {\n \"id\": \"narrat\",\n \"name\": \"Narrat Language\",\n \"aliases\": [\n \"nar\"\n ],\n \"import\": () => import('./langs/narrat.mjs')\n },\n {\n \"id\": \"nextflow\",\n \"name\": \"Nextflow\",\n \"aliases\": [\n \"nf\"\n ],\n \"import\": () => import('./langs/nextflow.mjs')\n },\n {\n \"id\": \"nginx\",\n \"name\": \"Nginx\",\n \"import\": () => import('./langs/nginx.mjs')\n },\n {\n \"id\": \"nim\",\n \"name\": \"Nim\",\n \"import\": () => import('./langs/nim.mjs')\n },\n {\n \"id\": \"nix\",\n \"name\": \"Nix\",\n \"import\": () => import('./langs/nix.mjs')\n },\n {\n \"id\": \"nushell\",\n \"name\": \"nushell\",\n \"aliases\": [\n \"nu\"\n ],\n \"import\": () => import('./langs/nushell.mjs')\n },\n {\n \"id\": \"objective-c\",\n \"name\": \"Objective-C\",\n \"aliases\": [\n \"objc\"\n ],\n \"import\": () => import('./langs/objective-c.mjs')\n },\n {\n \"id\": \"objective-cpp\",\n \"name\": \"Objective-C++\",\n \"import\": () => import('./langs/objective-cpp.mjs')\n },\n {\n \"id\": \"ocaml\",\n \"name\": \"OCaml\",\n \"import\": () => import('./langs/ocaml.mjs')\n },\n {\n \"id\": \"pascal\",\n \"name\": \"Pascal\",\n \"import\": () => import('./langs/pascal.mjs')\n },\n {\n \"id\": \"perl\",\n \"name\": \"Perl\",\n \"import\": () => import('./langs/perl.mjs')\n },\n {\n \"id\": \"php\",\n \"name\": \"PHP\",\n \"import\": () => import('./langs/php.mjs')\n },\n {\n \"id\": \"plsql\",\n \"name\": \"PL/SQL\",\n \"import\": () => import('./langs/plsql.mjs')\n },\n {\n \"id\": \"po\",\n \"name\": \"Gettext PO\",\n \"aliases\": [\n \"pot\",\n \"potx\"\n ],\n \"import\": () => import('./langs/po.mjs')\n },\n {\n \"id\": \"postcss\",\n \"name\": \"PostCSS\",\n \"import\": () => import('./langs/postcss.mjs')\n },\n {\n \"id\": \"powerquery\",\n \"name\": \"PowerQuery\",\n \"import\": () => import('./langs/powerquery.mjs')\n },\n {\n \"id\": \"powershell\",\n \"name\": \"PowerShell\",\n \"aliases\": [\n \"ps\",\n \"ps1\"\n ],\n \"import\": () => import('./langs/powershell.mjs')\n },\n {\n \"id\": \"prisma\",\n \"name\": \"Prisma\",\n \"import\": () => import('./langs/prisma.mjs')\n },\n {\n \"id\": \"prolog\",\n \"name\": \"Prolog\",\n \"import\": () => import('./langs/prolog.mjs')\n },\n {\n \"id\": \"proto\",\n \"name\": \"Protocol Buffer 3\",\n \"aliases\": [\n \"protobuf\"\n ],\n \"import\": () => import('./langs/proto.mjs')\n },\n {\n \"id\": \"pug\",\n \"name\": \"Pug\",\n \"aliases\": [\n \"jade\"\n ],\n \"import\": () => import('./langs/pug.mjs')\n },\n {\n \"id\": \"puppet\",\n \"name\": \"Puppet\",\n \"import\": () => import('./langs/puppet.mjs')\n },\n {\n \"id\": \"purescript\",\n \"name\": \"PureScript\",\n \"import\": () => import('./langs/purescript.mjs')\n },\n {\n \"id\": \"python\",\n \"name\": \"Python\",\n \"aliases\": [\n \"py\"\n ],\n \"import\": () => import('./langs/python.mjs')\n },\n {\n \"id\": \"qml\",\n \"name\": \"QML\",\n \"import\": () => import('./langs/qml.mjs')\n },\n {\n \"id\": \"qmldir\",\n \"name\": \"QML Directory\",\n \"import\": () => import('./langs/qmldir.mjs')\n },\n {\n \"id\": \"qss\",\n \"name\": \"Qt Style Sheets\",\n \"import\": () => import('./langs/qss.mjs')\n },\n {\n \"id\": \"r\",\n \"name\": \"R\",\n \"import\": () => import('./langs/r.mjs')\n },\n {\n \"id\": \"racket\",\n \"name\": \"Racket\",\n \"import\": () => import('./langs/racket.mjs')\n },\n {\n \"id\": \"raku\",\n \"name\": \"Raku\",\n \"aliases\": [\n \"perl6\"\n ],\n \"import\": () => import('./langs/raku.mjs')\n },\n {\n \"id\": \"razor\",\n \"name\": \"ASP.NET Razor\",\n \"import\": () => import('./langs/razor.mjs')\n },\n {\n \"id\": \"reg\",\n \"name\": \"Windows Registry Script\",\n \"import\": () => import('./langs/reg.mjs')\n },\n {\n \"id\": \"regexp\",\n \"name\": \"RegExp\",\n \"aliases\": [\n \"regex\"\n ],\n \"import\": () => import('./langs/regexp.mjs')\n },\n {\n \"id\": \"rel\",\n \"name\": \"Rel\",\n \"import\": () => import('./langs/rel.mjs')\n },\n {\n \"id\": \"riscv\",\n \"name\": \"RISC-V\",\n \"import\": () => import('./langs/riscv.mjs')\n },\n {\n \"id\": \"rst\",\n \"name\": \"reStructuredText\",\n \"import\": () => import('./langs/rst.mjs')\n },\n {\n \"id\": \"ruby\",\n \"name\": \"Ruby\",\n \"aliases\": [\n \"rb\"\n ],\n \"import\": () => import('./langs/ruby.mjs')\n },\n {\n \"id\": \"rust\",\n \"name\": \"Rust\",\n \"aliases\": [\n \"rs\"\n ],\n \"import\": () => import('./langs/rust.mjs')\n },\n {\n \"id\": \"sas\",\n \"name\": \"SAS\",\n \"import\": () => import('./langs/sas.mjs')\n },\n {\n \"id\": \"sass\",\n \"name\": \"Sass\",\n \"import\": () => import('./langs/sass.mjs')\n },\n {\n \"id\": \"scala\",\n \"name\": \"Scala\",\n \"import\": () => import('./langs/scala.mjs')\n },\n {\n \"id\": \"scheme\",\n \"name\": \"Scheme\",\n \"import\": () => import('./langs/scheme.mjs')\n },\n {\n \"id\": \"scss\",\n \"name\": \"SCSS\",\n \"import\": () => import('./langs/scss.mjs')\n },\n {\n \"id\": \"shaderlab\",\n \"name\": \"ShaderLab\",\n \"aliases\": [\n \"shader\"\n ],\n \"import\": () => import('./langs/shaderlab.mjs')\n },\n {\n \"id\": \"shellscript\",\n \"name\": \"Shell\",\n \"aliases\": [\n \"bash\",\n \"sh\",\n \"shell\",\n \"zsh\"\n ],\n \"import\": () => import('./langs/shellscript.mjs')\n },\n {\n \"id\": \"shellsession\",\n \"name\": \"Shell Session\",\n \"aliases\": [\n \"console\"\n ],\n \"import\": () => import('./langs/shellsession.mjs')\n },\n {\n \"id\": \"smalltalk\",\n \"name\": \"Smalltalk\",\n \"import\": () => import('./langs/smalltalk.mjs')\n },\n {\n \"id\": \"solidity\",\n \"name\": \"Solidity\",\n \"import\": () => import('./langs/solidity.mjs')\n },\n {\n \"id\": \"soy\",\n \"name\": \"Closure Templates\",\n \"aliases\": [\n \"closure-templates\"\n ],\n \"import\": () => import('./langs/soy.mjs')\n },\n {\n \"id\": \"sparql\",\n \"name\": \"SPARQL\",\n \"import\": () => import('./langs/sparql.mjs')\n },\n {\n \"id\": \"splunk\",\n \"name\": \"Splunk Query Language\",\n \"aliases\": [\n \"spl\"\n ],\n \"import\": () => import('./langs/splunk.mjs')\n },\n {\n \"id\": \"sql\",\n \"name\": \"SQL\",\n \"import\": () => import('./langs/sql.mjs')\n },\n {\n \"id\": \"ssh-config\",\n \"name\": \"SSH Config\",\n \"import\": () => import('./langs/ssh-config.mjs')\n },\n {\n \"id\": \"stata\",\n \"name\": \"Stata\",\n \"import\": () => import('./langs/stata.mjs')\n },\n {\n \"id\": \"stylus\",\n \"name\": \"Stylus\",\n \"aliases\": [\n \"styl\"\n ],\n \"import\": () => import('./langs/stylus.mjs')\n },\n {\n \"id\": \"svelte\",\n \"name\": \"Svelte\",\n \"import\": () => import('./langs/svelte.mjs')\n },\n {\n \"id\": \"swift\",\n \"name\": \"Swift\",\n \"import\": () => import('./langs/swift.mjs')\n },\n {\n \"id\": \"system-verilog\",\n \"name\": \"SystemVerilog\",\n \"import\": () => import('./langs/system-verilog.mjs')\n },\n {\n \"id\": \"systemd\",\n \"name\": \"Systemd Units\",\n \"import\": () => import('./langs/systemd.mjs')\n },\n {\n \"id\": \"tasl\",\n \"name\": \"Tasl\",\n \"import\": () => import('./langs/tasl.mjs')\n },\n {\n \"id\": \"tcl\",\n \"name\": \"Tcl\",\n \"import\": () => import('./langs/tcl.mjs')\n },\n {\n \"id\": \"templ\",\n \"name\": \"Templ\",\n \"import\": () => import('./langs/templ.mjs')\n },\n {\n \"id\": \"terraform\",\n \"name\": \"Terraform\",\n \"aliases\": [\n \"tf\",\n \"tfvars\"\n ],\n \"import\": () => import('./langs/terraform.mjs')\n },\n {\n \"id\": \"tex\",\n \"name\": \"TeX\",\n \"import\": () => import('./langs/tex.mjs')\n },\n {\n \"id\": \"toml\",\n \"name\": \"TOML\",\n \"import\": () => import('./langs/toml.mjs')\n },\n {\n \"id\": \"ts-tags\",\n \"name\": \"TypeScript with Tags\",\n \"aliases\": [\n \"lit\"\n ],\n \"import\": () => import('./langs/ts-tags.mjs')\n },\n {\n \"id\": \"tsv\",\n \"name\": \"TSV\",\n \"import\": () => import('./langs/tsv.mjs')\n },\n {\n \"id\": \"tsx\",\n \"name\": \"TSX\",\n \"import\": () => import('./langs/tsx.mjs')\n },\n {\n \"id\": \"turtle\",\n \"name\": \"Turtle\",\n \"import\": () => import('./langs/turtle.mjs')\n },\n {\n \"id\": \"twig\",\n \"name\": \"Twig\",\n \"import\": () => import('./langs/twig.mjs')\n },\n {\n \"id\": \"typescript\",\n \"name\": \"TypeScript\",\n \"aliases\": [\n \"ts\"\n ],\n \"import\": () => import('./langs/typescript.mjs')\n },\n {\n \"id\": \"typespec\",\n \"name\": \"TypeSpec\",\n \"aliases\": [\n \"tsp\"\n ],\n \"import\": () => import('./langs/typespec.mjs')\n },\n {\n \"id\": \"typst\",\n \"name\": \"Typst\",\n \"aliases\": [\n \"typ\"\n ],\n \"import\": () => import('./langs/typst.mjs')\n },\n {\n \"id\": \"v\",\n \"name\": \"V\",\n \"import\": () => import('./langs/v.mjs')\n },\n {\n \"id\": \"vala\",\n \"name\": \"Vala\",\n \"import\": () => import('./langs/vala.mjs')\n },\n {\n \"id\": \"vb\",\n \"name\": \"Visual Basic\",\n \"aliases\": [\n \"cmd\"\n ],\n \"import\": () => import('./langs/vb.mjs')\n },\n {\n \"id\": \"verilog\",\n \"name\": \"Verilog\",\n \"import\": () => import('./langs/verilog.mjs')\n },\n {\n \"id\": \"vhdl\",\n \"name\": \"VHDL\",\n \"import\": () => import('./langs/vhdl.mjs')\n },\n {\n \"id\": \"viml\",\n \"name\": \"Vim Script\",\n \"aliases\": [\n \"vim\",\n \"vimscript\"\n ],\n \"import\": () => import('./langs/viml.mjs')\n },\n {\n \"id\": \"vue\",\n \"name\": \"Vue\",\n \"import\": () => import('./langs/vue.mjs')\n },\n {\n \"id\": \"vue-html\",\n \"name\": \"Vue HTML\",\n \"import\": () => import('./langs/vue-html.mjs')\n },\n {\n \"id\": \"vyper\",\n \"name\": \"Vyper\",\n \"aliases\": [\n \"vy\"\n ],\n \"import\": () => import('./langs/vyper.mjs')\n },\n {\n \"id\": \"wasm\",\n \"name\": \"WebAssembly\",\n \"import\": () => import('./langs/wasm.mjs')\n },\n {\n \"id\": \"wenyan\",\n \"name\": \"Wenyan\",\n \"aliases\": [\n \"\\u6587\\u8A00\"\n ],\n \"import\": () => import('./langs/wenyan.mjs')\n },\n {\n \"id\": \"wgsl\",\n \"name\": \"WGSL\",\n \"import\": () => import('./langs/wgsl.mjs')\n },\n {\n \"id\": \"wikitext\",\n \"name\": \"Wikitext\",\n \"aliases\": [\n \"mediawiki\",\n \"wiki\"\n ],\n \"import\": () => import('./langs/wikitext.mjs')\n },\n {\n \"id\": \"wolfram\",\n \"name\": \"Wolfram\",\n \"aliases\": [\n \"wl\"\n ],\n \"import\": () => import('./langs/wolfram.mjs')\n },\n {\n \"id\": \"xml\",\n \"name\": \"XML\",\n \"import\": () => import('./langs/xml.mjs')\n },\n {\n \"id\": \"xsl\",\n \"name\": \"XSL\",\n \"import\": () => import('./langs/xsl.mjs')\n },\n {\n \"id\": \"yaml\",\n \"name\": \"YAML\",\n \"aliases\": [\n \"yml\"\n ],\n \"import\": () => import('./langs/yaml.mjs')\n },\n {\n \"id\": \"zenscript\",\n \"name\": \"ZenScript\",\n \"import\": () => import('./langs/zenscript.mjs')\n },\n {\n \"id\": \"zig\",\n \"name\": \"Zig\",\n \"import\": () => import('./langs/zig.mjs')\n }\n];\nconst bundledLanguagesBase = Object.fromEntries(bundledLanguagesInfo.map((i) => [i.id, i.import]));\nconst bundledLanguagesAlias = Object.fromEntries(bundledLanguagesInfo.flatMap((i) => i.aliases?.map((a) => [a, i.import]) || []));\nconst bundledLanguages = {\n ...bundledLanguagesBase,\n ...bundledLanguagesAlias\n};\n\nexport { bundledLanguages, bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo };\n","const getWasmInlined = async (info) => {\n return import('shiki/wasm').then((wasm) => wasm.default(info));\n};\n\nexport { getWasmInlined as g };\n","const bundledThemesInfo = [\n {\n \"id\": \"andromeeda\",\n \"displayName\": \"Andromeeda\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/andromeeda.mjs')\n },\n {\n \"id\": \"aurora-x\",\n \"displayName\": \"Aurora X\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/aurora-x.mjs')\n },\n {\n \"id\": \"ayu-dark\",\n \"displayName\": \"Ayu Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/ayu-dark.mjs')\n },\n {\n \"id\": \"catppuccin-frappe\",\n \"displayName\": \"Catppuccin Frapp\\xE9\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-frappe.mjs')\n },\n {\n \"id\": \"catppuccin-latte\",\n \"displayName\": \"Catppuccin Latte\",\n \"type\": \"light\",\n \"import\": () => import('./themes/catppuccin-latte.mjs')\n },\n {\n \"id\": \"catppuccin-macchiato\",\n \"displayName\": \"Catppuccin Macchiato\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-macchiato.mjs')\n },\n {\n \"id\": \"catppuccin-mocha\",\n \"displayName\": \"Catppuccin Mocha\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/catppuccin-mocha.mjs')\n },\n {\n \"id\": \"dark-plus\",\n \"displayName\": \"Dark Plus\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dark-plus.mjs')\n },\n {\n \"id\": \"dracula\",\n \"displayName\": \"Dracula Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula.mjs')\n },\n {\n \"id\": \"dracula-soft\",\n \"displayName\": \"Dracula Theme Soft\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/dracula-soft.mjs')\n },\n {\n \"id\": \"everforest-dark\",\n \"displayName\": \"Everforest Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/everforest-dark.mjs')\n },\n {\n \"id\": \"everforest-light\",\n \"displayName\": \"Everforest Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/everforest-light.mjs')\n },\n {\n \"id\": \"github-dark\",\n \"displayName\": \"GitHub Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark.mjs')\n },\n {\n \"id\": \"github-dark-default\",\n \"displayName\": \"GitHub Dark Default\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-default.mjs')\n },\n {\n \"id\": \"github-dark-dimmed\",\n \"displayName\": \"GitHub Dark Dimmed\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-dimmed.mjs')\n },\n {\n \"id\": \"github-dark-high-contrast\",\n \"displayName\": \"GitHub Dark High Contrast\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/github-dark-high-contrast.mjs')\n },\n {\n \"id\": \"github-light\",\n \"displayName\": \"GitHub Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light.mjs')\n },\n {\n \"id\": \"github-light-default\",\n \"displayName\": \"GitHub Light Default\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light-default.mjs')\n },\n {\n \"id\": \"github-light-high-contrast\",\n \"displayName\": \"GitHub Light High Contrast\",\n \"type\": \"light\",\n \"import\": () => import('./themes/github-light-high-contrast.mjs')\n },\n {\n \"id\": \"houston\",\n \"displayName\": \"Houston\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/houston.mjs')\n },\n {\n \"id\": \"laserwave\",\n \"displayName\": \"LaserWave\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/laserwave.mjs')\n },\n {\n \"id\": \"light-plus\",\n \"displayName\": \"Light Plus\",\n \"type\": \"light\",\n \"import\": () => import('./themes/light-plus.mjs')\n },\n {\n \"id\": \"material-theme\",\n \"displayName\": \"Material Theme\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme.mjs')\n },\n {\n \"id\": \"material-theme-darker\",\n \"displayName\": \"Material Theme Darker\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-darker.mjs')\n },\n {\n \"id\": \"material-theme-lighter\",\n \"displayName\": \"Material Theme Lighter\",\n \"type\": \"light\",\n \"import\": () => import('./themes/material-theme-lighter.mjs')\n },\n {\n \"id\": \"material-theme-ocean\",\n \"displayName\": \"Material Theme Ocean\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-ocean.mjs')\n },\n {\n \"id\": \"material-theme-palenight\",\n \"displayName\": \"Material Theme Palenight\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/material-theme-palenight.mjs')\n },\n {\n \"id\": \"min-dark\",\n \"displayName\": \"Min Dark\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/min-dark.mjs')\n },\n {\n \"id\": \"min-light\",\n \"displayName\": \"Min Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/min-light.mjs')\n },\n {\n \"id\": \"monokai\",\n \"displayName\": \"Monokai\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/monokai.mjs')\n },\n {\n \"id\": \"night-owl\",\n \"displayName\": \"Night Owl\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/night-owl.mjs')\n },\n {\n \"id\": \"nord\",\n \"displayName\": \"Nord\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/nord.mjs')\n },\n {\n \"id\": \"one-dark-pro\",\n \"displayName\": \"One Dark Pro\",\n \"type\": \"dark\",\n \"import\": () => import('./themes/one-dark-pro.mjs')\n },\n {\n \"id\": \"one-light\",\n \"displayName\": \"One Light\",\n \"type\": \"light\",\n \"import\": () => import('./themes/one-light.mjs')\n },\n {\n \"id\": \"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","sources","forEach","source","basename","path","idx","lastIndexOf","substring","substr","strcmp","a","b","strArrCmp","len1","len2","isValidHexColor","hex","test","escapeRegExpCharacters","value","replace","collectReferencesOfReference","reference","baseGrammarScopeName","repo","result","selfGrammar","lookup","scopeName","Error","baseGrammar","TopLevelRuleReference","collectExternalReferencesInTopLevelRule","collectExternalReferencesInTopLevelRepositoryRule","ruleName","repository","injections","_iterator3","s","_step3","n","done","injection","add","err","e","f","context","collectExternalReferencesInRules","patterns","Object","values","rules","_iterator4","_step4","rule","visitedRule","has","patternRepository","include","parseInclude","kind","_objectSpread","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","_createForOfIteratorHelper","_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","defaultNamedColorsMap","namedColorsMap","namedColor","rgbColor","max","toString","padStart","colorTable","tableColor","levels","g","level","getColorTable","tokenizeAnsiWithTheme","fileContents","colorPalette","fromEntries","colors","_t$colors","toUpperCase","parser","foreground","background","decorations2","Set","parse","tokens","findResult","text","_iterator19","_step19","styleToken","clear","delete","_iterator20","_step20","createAnsiSequenceParser","bg","fg","hexMatch","alpha","round","from","cssVarMatch","dimColor","None","codeToTokensBase","internal","_n$lang","_n$theme","getLoadedThemes","_t$setTheme","setTheme","colorMap","_grammar","getLanguage","grammarState","ShikiError","_tokenizeWithTheme","tokenizeWithTheme","tokenizeMaxLineLength","tokenizeTimeLimit","stateStack","state","GrammarState","_stack","getGrammarStack","grammarContextCode","INITIAL","actual","final","_a$_t","lineOffset","resultWithScopes","tokensWithScopes","tokensWithScopesIndex","includeExplanation","tokenizeLine","tokenizeLine2","tokensLength","j","startIndex","nextStartIndex","metadata","StackElementMetadata","getForeground","getFontStyle","themeSettingsSelectors","_iterator21","settings","_step21","setting","selectors","_typeof","scope","trim","explanation","tokenWithScopes","tokenWithScopesText","endIndex","explainThemeScopesFull","ruleStack","themeSelectors","themeMatches","explainThemeScope","slice","matchesOne","matches","parentScopes","selectorParentIndex","parentIndex","_iterator22","_step22","_step22$value","_iterator23","_step23","selectorPieces","codeToTokensWithThemes","themes","filter","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","sort","themeTokens","find","themeRegs","getTheme","themesOrder","merged","variantsOrder","styleKeys","flatMap","keys","mergedStyles","reduce","acc","cur","_iterator24","_step24","keyName","varKey","htmlStyle","mergeToken","themeColorReplacements","_theme","transformerDecorations","WeakMap","getContext","shiki","meta","normalizePosition","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","_step27","_loop2","_loop3","_i30","unshift","getTransformers","_toConsumableArray","transformers","builtInTransformers","codeToHast","_options","transformerContext","_code","_iterator28","_step28","transformer","preprocess","call","_ge","_n$mergeWhitespaces","mergeWhitespaces","newLine","carryOnContent","firstOffset","couldMerge","mergeWhitespaceTokens","_e37","leading","trailing","expanded","splitWhitespaceTokens","contextSource","_iterator29","_step29","root","_e$structure","structure","preNode","style","tabindex","_ref8","_ref9","codeNode","lineNodes","Jt","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","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","emscripten_realloc_buffer","UTF8ToString","ptr","maxBytesToRead","heapOrArray","endIdx","endPtr","buffer","UTF8Decoder","decode","subarray","u0","u1","u2","ch","UTF8ArrayToString","binding","HEAPU8","size","wasmMemory","grow","byteLength","_unused","buf","Uint8Array","HEAPU32","Uint32Array","TextDecoder","asmLibraryArg","emscripten_get_now","performance","emscripten_memcpy_big","dest","src","num","copyWithin","emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","alignUp","multiple","cutDown","overGrownHeapSize","fd_write","env","wasi_snapshot_preview1","exports","memory","_context24","stop","_callee23","createWasm","_context25","_callee24","_Fn","apply","loadWasm","initPromise","instance","instantiator","dataOrOptions","isInstantiatorModule","data","isDataOptionsObject","Response","isResponse","ArrayBuffer","isView","Buffer","isBuffer","SharedArrayBuffer","isArrayBuffer","WebAssembly","Module","_makeArrayBufferLoader","default","instantiateStreaming","importObject","_ref12","_asyncToGenerator","_regeneratorRuntime","wrap","_callee7$","_context8","prev","arrayBuffer","instantiate","_callee7","_x17","_makeResponseNonStreamingLoader","_context9","_callee8","_x16","_ref11","onigBinding","_load","normalizeTheme","rawTheme","RESOLVED_KEY","tokenColors","_t59$settings","_t59$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","_i41","_i43","Promise","then","flat","resolve","_context29","_callee28","warnings","warn","wasmLoader","_defaultWasmLoader","resolver","Resolver","createOnigScanner","OnigScanner","OnigString","Registry","langAlias","_context32","abrupt","_defineProperty","_lastTheme","getColorMap","_lang","getGrammar","getLoadedLanguages","loadLanguage","loadLanguages","loadTheme","_context28","_callee27","Symbol","createHighlighterCore","_args12","getLastGrammarState","_n$lang2","_t$setTheme2","getInternalContext","_context33","_callee32","_li","createdBundledHighlighter","bundledLanguages","bundledThemes","_ref23","resolveLang","resolveTheme","bundle","_themes","_len4","_len5","_context15","_callee14","_x21","createSingletonShorthands","createHighlighter","getSingletonHighlighter","_shiki","_context16","_callee15","makeSingletonHighlighter","_codeToHtml","_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","L","fn","_createClass","cache","T","toKey","A","ExternalReferenceCollector","_references","P","references","_seenReferenceKeys","ScopeDependencyProcessor","O","initialScopeName","Q","seenFullScopeRequests","processQueue","q","deps","_iterator","_step","dep","_iterator2","_step2","seenPartialScopeRequests","$","B","I","HAS_BACK_REFERENCES","BACK_REFERENCING_END","Rule","$location","U","_name","_nameIsCapturing","_contentName","_contentNameIsCapturing","location","filename","constructor","CaptureRule","W","super","_this","_inherits","_U2","collectPatterns","out","compile","MatchRule","V","_assertThisInitialized","_this2","_match","RegExpSource","_cachedCompiledPatterns","_U3","_getCachedCompiledPatterns","RegExpSourceList","IncludeOnlyRule","J","hasMissingPatterns","_this3","_U4","_iterator5","_step5","pattern","X","begin","applyEndPatternLast","_begin","_end","hasBackReferences","_this4","_U5","debugBeginRegExp","resolveBackReferences","_iterator6","_step6","setSource","K","_while","_cachedCompiledWhilePatterns","_this5","_U6","debugWhileRegExp","_iterator7","_step7","compileWhile","_getCachedCompiledWhilePatterns","createCaptureRule","helper","registerRule","desc","_compileCaptures","_compilePatterns","maximumCaptureId","captureId","numericCaptureId","localIncludedRule","externalGrammarName","externalGrammarInclude","externalGrammar","getExternalGrammar","externalIncludedRule","skipRule","regExpSource","_classCallCheck","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","et","_colorMap","_defaults","_root","getDefaults","scopePath","effectiveRule","_cachedMatchRoot","v","_scopePathMatchesParentScopes","StyleAttributes","createFromRawTheme","createFromParsedTheme","resultLen","entry","_scope","segments","lenJ","reverse","ParsedThemeRule","parseTheme","parsedThemeRules","defaultFontStyle","defaultForeground","defaultBackground","incomingDefaults","shift","ColorMap","defaults","getId","ThemeTrieElement","ThemeTrieElementRule","insert","resolveParsedThemeRules","ScopeStack","nt","getSegments","_extends","other","extends","getExtensionIfDefined","scopeNames","_iterator8","_step8","rt","foregroundId","backgroundId","ot","st","_lastColorId","_id2color","_color2id","_isFrozen","lt","scopeDepth","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","themeProvider","_iterator11","_step11","getMetadataForScope","_collectInjections","rawInjections","expression","injectionScopeNames","injectionScopeName","injectionGrammar","injectionSelector","i1","i2","factory","rawIncludedGrammar","prevState","_tokenize","getResult","getBinaryResult","emitBinaryTokens","StateStackImpl","NULL","reset","rawDefaultMetadata","defaultStyle","defaultMetadata","rootScopeName","scopeList","AttributedScopeStack","createRootAndLookUpScopeName","createRoot","onigLineText","LineTokens","St","tokenAttributes","equals","_pushAttributed","_iterator12","_step12","self","fromExtension","namesScopeList","_t$scopePath","_iterator13","_step13","frame","rawRootMetadata","themeMatch","resolvedTokenAttributes","mergeAttributes","existingTokenAttributes","basicScopeAttributes","styleAttributes","rawMetadata","newPath","scopeThemeMatchResult","xt","enterPos","anchorPos","depth","_enterPos","_anchorPos","_equals","_reset","_writeString","outIndex","contentNameScopeStack","toStateStackFrame","_this$parent$nameScop","_this$nameScopesList$","_this$contentNameScop2","_structuralEquals","pushFrame","_t$nameScopesList","_e$enterPos","_e$anchorPos","BalancedBracketSelectors","Ct","balancedBracketScopes","unbalancedBracketScopes","allowAny","_iterator14","_step14","excluder","_iterator15","_step15","includer","Lt","tokenTypeOverrides","_emitBinaryTokens","_tokenTypeOverrides","_lineText","_tokens","_binaryTokens","_lastTokenEndIndex","scopesList","_t$getScopeNames2","_t$tokenAttributes","_this$balancedBracket","matchesAlways","matchesNever","_t$getScopeNames","_iterator16","_step16","SyncRegistry","Tt","_onigLibPromise","_grammars","_iterator17","_step17","addGrammar","_rawGrammars","_injectionGrammars","targetScope","_grammarForScopeName","_callee2","_context3","rawGrammar","createGrammar","grammarForScopeName","_x2","_x3","_x4","_x5","_x6","Registry$1","At","_syncRegistry","_ensureGrammarCache","loadGrammarWithEmbeddedLanguages","loadGrammarWithConfiguration","configuration","_loadGrammar","unbalancedBracketSelectors","loadGrammar","_loadGrammar2","_callee3","dependencyProcessor","request","_loadSingleGrammar","_context4","_x7","_x8","_x9","_x10","_x11","_loadSingleGrammar2","_callee4","_doLoadSingleGrammar","_context5","_x12","_doLoadSingleGrammar2","_callee5","_n27","_callee5$","_context6","_x13","_addGrammar","_callee6","_args6","_context7","sent","_x14","MetadataConsts","qt","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","le","message","_this11","ae","visited","pushScope","getScopes","toJSON","initial","ve","prototype","Ce","booleanish","number","spaceSeparated","commaOrSpaceSeparated","defined","types","freeze","__proto__","checks","$e","mask","check","_this12","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","parameters","invalid","unknown","_len3","zwitch","node_","comment","_1","_2","doctype","_3","element","selfClosing","last","serializeAttributes","raw","UtfString","Vn","utf16Length","utf8Length","_utf8ByteLength","computeIndicesMapping","utf16OffsetToUtf8","utf8OffsetToUtf16","utf8Value","i8","i16","charCode","codePoint","wasSurrogatePair","nextCharCode","utf16Value","createString","omalloc","codepoint","Jn","LAST_ID","_onigBinding","utfString","_sharedPtrInUse","_sharedPtr","convertUtf8OffsetToUtf16","utf8Offset","convertUtf16OffsetToUtf8","utf16Offset","ofree","Xn","strPtrsArr","strLenArr","strPtrsPtr","strLenPtr","scannerPtr","getLastOnigError","throwLastOnigError","_ptr","freeOnigScanner","arg","debugCall","_findNextMatchSync","resultPtr","findNextOnigScannerMatchDbg","findNextOnigScannerMatch","beg","u","_resolver","_langs","_alias","_this13","_At","_resolvedThemes","_loadedThemesCache","textmateTheme","_textmateThemeCache","resolved","_resolvedGrammars","_loadLanguage","_callee10","_this14","_iterator37","_step37","_this$_syncRegistry","_this$_syncRegistry2","_t61","_callee10$","_context11","embeddedLazilyBy","_langMap","embeddedLangsLazy","addLanguage","grammarConfig","alias","_loadedLanguagesCache","t0","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","_scopeToLang","_context14","_x20","injectTo","scopeParts","subScopeName","NileHighlighter","_o23","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]}