@ai-ecoverse/slicc-spectrum 1.104.2 → 1.105.0

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 (246) hide show
  1. package/README.md +14 -21
  2. package/dist/{chunk-D2HYQOCH.js → chunk-2GER7OHY.js} +4 -4
  3. package/dist/{chunk-JPIG5BAD.js → chunk-2JLDRHGH.js} +2 -2
  4. package/dist/chunk-2PTCZ3HU.js +177 -0
  5. package/dist/chunk-2PTCZ3HU.js.map +7 -0
  6. package/dist/chunk-2QGVEUM3.js +218 -0
  7. package/dist/chunk-2QGVEUM3.js.map +7 -0
  8. package/dist/chunk-2QTNHBD6.js +236 -0
  9. package/dist/chunk-2QTNHBD6.js.map +7 -0
  10. package/dist/chunk-3HYCVQIZ.js +2135 -0
  11. package/dist/chunk-3HYCVQIZ.js.map +7 -0
  12. package/dist/chunk-3TKJZ3WO.js +211 -0
  13. package/dist/chunk-3TKJZ3WO.js.map +7 -0
  14. package/dist/chunk-45RRK5H7.js +218 -0
  15. package/dist/chunk-45RRK5H7.js.map +7 -0
  16. package/dist/chunk-4LHTT5CM.js +260 -0
  17. package/dist/chunk-4LHTT5CM.js.map +7 -0
  18. package/dist/chunk-4LNENAB3.js +84 -0
  19. package/dist/chunk-4LNENAB3.js.map +7 -0
  20. package/dist/chunk-4UVLBBK5.js +229 -0
  21. package/dist/chunk-4UVLBBK5.js.map +7 -0
  22. package/dist/chunk-4V2XWPVI.js +260 -0
  23. package/dist/chunk-4V2XWPVI.js.map +7 -0
  24. package/dist/chunk-4VL4W65X.js +218 -0
  25. package/dist/chunk-4VL4W65X.js.map +7 -0
  26. package/dist/{chunk-442GNVWR.js → chunk-57NDK5DC.js} +2805 -2630
  27. package/dist/chunk-57NDK5DC.js.map +7 -0
  28. package/dist/chunk-5DQGKJYU.js +231 -0
  29. package/dist/chunk-5DQGKJYU.js.map +7 -0
  30. package/dist/chunk-5PPA6KWN.js +166 -0
  31. package/dist/chunk-5PPA6KWN.js.map +7 -0
  32. package/dist/chunk-5RPMYYR5.js +9 -0
  33. package/dist/chunk-5RPMYYR5.js.map +7 -0
  34. package/dist/chunk-5TKCBABJ.js +169 -0
  35. package/dist/chunk-5TKCBABJ.js.map +7 -0
  36. package/dist/chunk-5YPJDKI6.js +170 -0
  37. package/dist/chunk-5YPJDKI6.js.map +7 -0
  38. package/dist/{chunk-GHS6XYSQ.js → chunk-6FZ7EIP5.js} +6 -6
  39. package/dist/{chunk-LMH4BAKD.js → chunk-6JS2SZJ5.js} +12 -10
  40. package/dist/{chunk-LMH4BAKD.js.map → chunk-6JS2SZJ5.js.map} +2 -2
  41. package/dist/chunk-6UISDSQ6.js +229 -0
  42. package/dist/chunk-6UISDSQ6.js.map +7 -0
  43. package/dist/chunk-AADI6MVB.js +245 -0
  44. package/dist/chunk-AADI6MVB.js.map +7 -0
  45. package/dist/{chunk-22NCU4NL.js → chunk-AL43JFHF.js} +2 -2
  46. package/dist/chunk-ALX3M6E3.js +368 -0
  47. package/dist/chunk-ALX3M6E3.js.map +7 -0
  48. package/dist/chunk-APWLBR4J.js +173 -0
  49. package/dist/chunk-APWLBR4J.js.map +7 -0
  50. package/dist/chunk-B26VSXYC.js +297 -0
  51. package/dist/chunk-B26VSXYC.js.map +7 -0
  52. package/dist/chunk-B3ZH3IZR.js +82 -0
  53. package/dist/chunk-B3ZH3IZR.js.map +7 -0
  54. package/dist/chunk-BA2ER7NA.js +169 -0
  55. package/dist/chunk-BA2ER7NA.js.map +7 -0
  56. package/dist/chunk-BAVPQSVQ.js +190 -0
  57. package/dist/chunk-BAVPQSVQ.js.map +7 -0
  58. package/dist/{chunk-44HPUTOU.js → chunk-CEAD4W2I.js} +6 -6
  59. package/dist/chunk-CTBCZ6QP.js +368 -0
  60. package/dist/chunk-CTBCZ6QP.js.map +7 -0
  61. package/dist/chunk-D2BSCPOZ.js +204 -0
  62. package/dist/chunk-D2BSCPOZ.js.map +7 -0
  63. package/dist/chunk-DBTSLS2U.js +171 -0
  64. package/dist/chunk-DBTSLS2U.js.map +7 -0
  65. package/dist/chunk-DUHSH5IA.js +392 -0
  66. package/dist/chunk-DUHSH5IA.js.map +7 -0
  67. package/dist/chunk-E3XF2JYD.js +175 -0
  68. package/dist/chunk-E3XF2JYD.js.map +7 -0
  69. package/dist/chunk-E6FGQYBA.js +2 -0
  70. package/dist/{chunk-Y7O6BIKA.js → chunk-EAVYCN2X.js} +3 -3
  71. package/dist/chunk-EG2LH2D6.js +368 -0
  72. package/dist/chunk-EG2LH2D6.js.map +7 -0
  73. package/dist/chunk-EJCS2A67.js +248 -0
  74. package/dist/chunk-EJCS2A67.js.map +7 -0
  75. package/dist/chunk-ENK72MDX.js +247 -0
  76. package/dist/chunk-ENK72MDX.js.map +7 -0
  77. package/dist/chunk-ETY2K3PP.js +185 -0
  78. package/dist/chunk-ETY2K3PP.js.map +7 -0
  79. package/dist/chunk-FVU5ETHN.js +244 -0
  80. package/dist/chunk-FVU5ETHN.js.map +7 -0
  81. package/dist/chunk-FWORTALJ.js +392 -0
  82. package/dist/chunk-FWORTALJ.js.map +7 -0
  83. package/dist/chunk-G3AQILQL.js +377 -0
  84. package/dist/chunk-G3AQILQL.js.map +7 -0
  85. package/dist/chunk-GFOHPOWP.js +8 -0
  86. package/dist/chunk-GG2YLBBY.js +211 -0
  87. package/dist/chunk-GG2YLBBY.js.map +7 -0
  88. package/dist/chunk-GULF27HF.js +204 -0
  89. package/dist/chunk-GULF27HF.js.map +7 -0
  90. package/dist/chunk-I54HXPPH.js +242 -0
  91. package/dist/chunk-I54HXPPH.js.map +7 -0
  92. package/dist/chunk-I67XBOU7.js +241 -0
  93. package/dist/chunk-I67XBOU7.js.map +7 -0
  94. package/dist/chunk-I7E74Y7Y.js +368 -0
  95. package/dist/chunk-I7E74Y7Y.js.map +7 -0
  96. package/dist/chunk-IGMG5I7K.js +204 -0
  97. package/dist/chunk-IGMG5I7K.js.map +7 -0
  98. package/dist/chunk-JSVDUJOF.js +418 -0
  99. package/dist/chunk-JSVDUJOF.js.map +7 -0
  100. package/dist/chunk-JWEDQMOH.js +204 -0
  101. package/dist/chunk-JWEDQMOH.js.map +7 -0
  102. package/dist/chunk-K7CQ2PRH.js +243 -0
  103. package/dist/chunk-K7CQ2PRH.js.map +7 -0
  104. package/dist/chunk-KIDTSHLT.js +3239 -0
  105. package/dist/chunk-KIDTSHLT.js.map +7 -0
  106. package/dist/chunk-KIKLCSNJ.js +3 -0
  107. package/dist/chunk-KIKLCSNJ.js.map +7 -0
  108. package/dist/chunk-KUTFS7K7.js +170 -0
  109. package/dist/chunk-KUTFS7K7.js.map +7 -0
  110. package/dist/chunk-L25HPU52.js +229 -0
  111. package/dist/chunk-L25HPU52.js.map +7 -0
  112. package/dist/{chunk-WXAII75O.js → chunk-LJ5HWLFA.js} +2 -2
  113. package/dist/{chunk-WXAII75O.js.map → chunk-LJ5HWLFA.js.map} +1 -1
  114. package/dist/chunk-LNZHKQQB.js +175 -0
  115. package/dist/chunk-LNZHKQQB.js.map +7 -0
  116. package/dist/{chunk-LVH4CKV3.js → chunk-LSXQD3LS.js} +3 -3
  117. package/dist/chunk-LW7FUR35.js +368 -0
  118. package/dist/chunk-LW7FUR35.js.map +7 -0
  119. package/dist/chunk-MCIHORAJ.js +229 -0
  120. package/dist/chunk-MCIHORAJ.js.map +7 -0
  121. package/dist/chunk-MD3SFR65.js +418 -0
  122. package/dist/chunk-MD3SFR65.js.map +7 -0
  123. package/dist/chunk-MGYKF4CA.js +175 -0
  124. package/dist/chunk-MGYKF4CA.js.map +7 -0
  125. package/dist/chunk-N7NGXLLM.js +368 -0
  126. package/dist/chunk-N7NGXLLM.js.map +7 -0
  127. package/dist/chunk-NEW2Q7FF.js +101 -0
  128. package/dist/chunk-NEW2Q7FF.js.map +7 -0
  129. package/dist/chunk-NQH6RQYV.js +250 -0
  130. package/dist/chunk-NQH6RQYV.js.map +7 -0
  131. package/dist/chunk-NSXLBNK4.js +238 -0
  132. package/dist/chunk-NSXLBNK4.js.map +7 -0
  133. package/dist/chunk-OIEY3JII.js +233 -0
  134. package/dist/chunk-OIEY3JII.js.map +7 -0
  135. package/dist/chunk-OKPKENUF.js +211 -0
  136. package/dist/chunk-OKPKENUF.js.map +7 -0
  137. package/dist/chunk-OY4ZZY7W.js +218 -0
  138. package/dist/chunk-OY4ZZY7W.js.map +7 -0
  139. package/dist/chunk-QQNGYZLJ.js +173 -0
  140. package/dist/chunk-QQNGYZLJ.js.map +7 -0
  141. package/dist/chunk-RE5FCGM4.js +233 -0
  142. package/dist/chunk-RE5FCGM4.js.map +7 -0
  143. package/dist/chunk-RTUIJYIL.js +368 -0
  144. package/dist/chunk-RTUIJYIL.js.map +7 -0
  145. package/dist/chunk-RVP4DE3X.js +368 -0
  146. package/dist/chunk-RVP4DE3X.js.map +7 -0
  147. package/dist/chunk-RZNHWRZX.js +175 -0
  148. package/dist/chunk-RZNHWRZX.js.map +7 -0
  149. package/dist/chunk-SI4KACA7.js +368 -0
  150. package/dist/chunk-SI4KACA7.js.map +7 -0
  151. package/dist/chunk-SIN26ESQ.js +392 -0
  152. package/dist/chunk-SIN26ESQ.js.map +7 -0
  153. package/dist/chunk-SXLM67S4.js +185 -0
  154. package/dist/chunk-SXLM67S4.js.map +7 -0
  155. package/dist/chunk-SZDSSMHM.js +218 -0
  156. package/dist/chunk-SZDSSMHM.js.map +7 -0
  157. package/dist/chunk-TIVNHKKC.js +418 -0
  158. package/dist/chunk-TIVNHKKC.js.map +7 -0
  159. package/dist/chunk-TXJNAXHT.js +418 -0
  160. package/dist/chunk-TXJNAXHT.js.map +7 -0
  161. package/dist/chunk-U2CRYG2Y.js +368 -0
  162. package/dist/chunk-U2CRYG2Y.js.map +7 -0
  163. package/dist/chunk-UAZ7ATZ5.js +770 -0
  164. package/dist/chunk-UAZ7ATZ5.js.map +7 -0
  165. package/dist/chunk-UFGJPRGL.js +104 -0
  166. package/dist/chunk-UFGJPRGL.js.map +7 -0
  167. package/dist/chunk-UI7G5S4O.js +211 -0
  168. package/dist/chunk-UI7G5S4O.js.map +7 -0
  169. package/dist/{chunk-MZMRYCS6.js → chunk-WQ7OXFOF.js} +2 -2
  170. package/dist/chunk-WVWSLJ4A.js +160 -0
  171. package/dist/chunk-WVWSLJ4A.js.map +7 -0
  172. package/dist/chunk-X2FGXM6T.js +657 -0
  173. package/dist/chunk-X2FGXM6T.js.map +7 -0
  174. package/dist/chunk-XJ4X6OZN.js +175 -0
  175. package/dist/chunk-XJ4X6OZN.js.map +7 -0
  176. package/dist/chunk-YCSUWIOE.js +218 -0
  177. package/dist/chunk-YCSUWIOE.js.map +7 -0
  178. package/dist/chunk-YG7YEPYG.js +238 -0
  179. package/dist/chunk-YG7YEPYG.js.map +7 -0
  180. package/dist/chunk-YMUYQTBG.js +170 -0
  181. package/dist/chunk-YMUYQTBG.js.map +7 -0
  182. package/dist/chunk-YYRMCQGB.js +347 -0
  183. package/dist/chunk-YYRMCQGB.js.map +7 -0
  184. package/dist/chunk-YYU64C2K.js +233 -0
  185. package/dist/chunk-YYU64C2K.js.map +7 -0
  186. package/dist/{chunk-OS3ZND7O.js → chunk-ZSLV7QHA.js} +2 -2
  187. package/dist/chunk-ZYWHNLZW.js +200 -0
  188. package/dist/chunk-ZYWHNLZW.js.map +7 -0
  189. package/dist/slicc-ui.js +4868 -18113
  190. package/dist/slicc-ui.js.map +4 -4
  191. package/dist/types/app/app.d.ts +0 -2
  192. package/dist/types/components/code-theme.d.ts +12 -0
  193. package/dist/types/components/code-view.d.ts +3 -2
  194. package/dist/types/ui.d.ts +0 -2
  195. package/package.json +23 -33
  196. package/dist/chunk-442GNVWR.js.map +0 -7
  197. package/dist/chunk-5G3X76IR.js +0 -8
  198. package/dist/chunk-64K5VONJ.js +0 -11
  199. package/dist/chunk-64K5VONJ.js.map +0 -7
  200. package/dist/chunk-6T3O5K6R.js +0 -8
  201. package/dist/chunk-BHAGWMDD.js +0 -8
  202. package/dist/chunk-BHAGWMDD.js.map +0 -7
  203. package/dist/chunk-CGS66GRP.js +0 -11
  204. package/dist/chunk-CGS66GRP.js.map +0 -7
  205. package/dist/chunk-CONYKGKV.js +0 -11
  206. package/dist/chunk-CONYKGKV.js.map +0 -7
  207. package/dist/chunk-CU7BC2RI.js +0 -11
  208. package/dist/chunk-CU7BC2RI.js.map +0 -7
  209. package/dist/chunk-FXM4K5WL.js +0 -19
  210. package/dist/chunk-FXM4K5WL.js.map +0 -7
  211. package/dist/chunk-I4OYHPAU.js +0 -11
  212. package/dist/chunk-I4OYHPAU.js.map +0 -7
  213. package/dist/chunk-KMP5HO3E.js +0 -11
  214. package/dist/chunk-KMP5HO3E.js.map +0 -7
  215. package/dist/chunk-KWPU2PY3.js +0 -14
  216. package/dist/chunk-KWPU2PY3.js.map +0 -7
  217. package/dist/chunk-LBXW6XNL.js +0 -18
  218. package/dist/chunk-LBXW6XNL.js.map +0 -7
  219. package/dist/chunk-LII3WY6Y.js +0 -11
  220. package/dist/chunk-LII3WY6Y.js.map +0 -7
  221. package/dist/chunk-LY7WVBCB.js +0 -10
  222. package/dist/chunk-LY7WVBCB.js.map +0 -7
  223. package/dist/chunk-NLDFGCIL.js +0 -11
  224. package/dist/chunk-NLDFGCIL.js.map +0 -7
  225. package/dist/chunk-S5EGO4NA.js +0 -11
  226. package/dist/chunk-S5EGO4NA.js.map +0 -7
  227. package/dist/chunk-TAZBKRHT.js +0 -10
  228. package/dist/chunk-TAZBKRHT.js.map +0 -7
  229. package/dist/chunk-UCIBH53C.js +0 -11
  230. package/dist/chunk-UCIBH53C.js.map +0 -7
  231. package/dist/chunk-XZM23TK4.js +0 -11
  232. package/dist/chunk-XZM23TK4.js.map +0 -7
  233. package/dist/chunk-YX6SI5VA.js +0 -11
  234. package/dist/chunk-YX6SI5VA.js.map +0 -7
  235. package/dist/types/app/grammars.d.ts +0 -6
  236. /package/dist/{chunk-D2HYQOCH.js.map → chunk-2GER7OHY.js.map} +0 -0
  237. /package/dist/{chunk-JPIG5BAD.js.map → chunk-2JLDRHGH.js.map} +0 -0
  238. /package/dist/{chunk-GHS6XYSQ.js.map → chunk-6FZ7EIP5.js.map} +0 -0
  239. /package/dist/{chunk-22NCU4NL.js.map → chunk-AL43JFHF.js.map} +0 -0
  240. /package/dist/{chunk-44HPUTOU.js.map → chunk-CEAD4W2I.js.map} +0 -0
  241. /package/dist/{chunk-5G3X76IR.js.map → chunk-E6FGQYBA.js.map} +0 -0
  242. /package/dist/{chunk-Y7O6BIKA.js.map → chunk-EAVYCN2X.js.map} +0 -0
  243. /package/dist/{chunk-6T3O5K6R.js.map → chunk-GFOHPOWP.js.map} +0 -0
  244. /package/dist/{chunk-LVH4CKV3.js.map → chunk-LSXQD3LS.js.map} +0 -0
  245. /package/dist/{chunk-MZMRYCS6.js.map → chunk-WQ7OXFOF.js.map} +0 -0
  246. /package/dist/{chunk-OS3ZND7O.js.map → chunk-ZSLV7QHA.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../node_modules/@pierre/highlights/lib/languages.ts", "../node_modules/@pierre/highlights/lib/token-types.ts", "../node_modules/@pierre/highlights/lib/theme.ts", "../node_modules/@pierre/highlights/lib/tokens.ts", "../node_modules/@pierre/highlights/lib/highlighter.ts", "../node_modules/@pierre/highlights/lib/live.ts", "../node_modules/@pierre/highlights/dist/highlights.wasm.mjs", "../node_modules/@pierre/highlights/lib/default.ts", "../node_modules/@pierre/diffs/src/highlighter/highlights-editor.ts", "../node_modules/@pierre/diffs/src/highlighter/highlights-stream.ts", "../node_modules/@pierre/diffs/src/highlighter/backends/highlights.ts"],
4
+ "sourcesContent": ["// generated by scripts/build.ts - do not edit\nconst languages = {\n plain: 0,\n plaintext: 0,\n text: 0,\n txt: 0,\n 'angular-html': 1,\n asm: 2,\n assembly: 2,\n s: 2,\n astro: 3,\n bash: 4,\n sh: 4,\n shell: 4,\n shellscript: 4,\n shellsession: 4,\n zsh: 4,\n bat: 5,\n batch: 5,\n batchfile: 5,\n cmd: 5,\n dos: 5,\n c: 6,\n h: 6,\n c3: 7,\n clj: 8,\n cljc: 8,\n cljs: 8,\n clojure: 8,\n edn: 8,\n cmake: 9,\n 'c++': 10,\n cc: 10,\n cpp: 10,\n cxx: 10,\n hh: 10,\n hpp: 10,\n hxx: 10,\n 'c#': 11,\n cs: 11,\n csharp: 11,\n css: 12,\n cu: 13,\n cuda: 13,\n cuh: 13,\n dart: 14,\n diff: 15,\n 'git-commit': 15,\n 'git-rebase': 15,\n patch: 15,\n containerfile: 16,\n docker: 16,\n dockerfile: 16,\n elixir: 17,\n ex: 17,\n exs: 17,\n elm: 18,\n erl: 19,\n erlang: 19,\n hrl: 19,\n f03: 20,\n f08: 20,\n f90: 20,\n f95: 20,\n fortran: 20,\n 'fortran-free-form': 20,\n f: 21,\n f77: 21,\n for: 21,\n 'fortran-fixed-form': 21,\n 'f#': 22,\n fs: 22,\n fsharp: 22,\n fsi: 22,\n fsx: 22,\n gdresource: 23,\n 'godot-resource': 23,\n tres: 23,\n tscn: 23,\n gd: 24,\n gdscript: 24,\n gdshader: 25,\n gdshaderinc: 25,\n 'godot-shader': 25,\n gleam: 26,\n comp: 27,\n frag: 27,\n geom: 27,\n glsl: 27,\n vert: 27,\n go: 28,\n golang: 28,\n gql: 29,\n graphql: 29,\n gradle: 30,\n groovy: 30,\n gsh: 30,\n gvy: 30,\n gy: 30,\n haskell: 31,\n hs: 31,\n hlsl: 32,\n htm: 33,\n html: 33,\n java: 34,\n cjs: 35,\n javascript: 35,\n js: 35,\n mjs: 35,\n json: 36,\n jsonc: 36,\n json5: 37,\n jsonl: 38,\n jsx: 39,\n jl: 40,\n julia: 40,\n kotlin: 41,\n kt: 41,\n kts: 41,\n latex: 42,\n tex: 42,\n less: 43,\n cl: 44,\n el: 44,\n elisp: 44,\n 'emacs-lisp': 44,\n lisp: 44,\n lsp: 44,\n scheme: 44,\n scm: 44,\n lua: 45,\n make: 46,\n makefile: 46,\n mk: 46,\n markdown: 47,\n md: 47,\n matlab: 48,\n octave: 48,\n mdx: 49,\n nim: 50,\n nix: 51,\n m: 52,\n mm: 52,\n objc: 52,\n objcpp: 52,\n 'objective-c': 52,\n 'objective-cpp': 52,\n objectivec: 52,\n ml: 53,\n mli: 53,\n ocaml: 53,\n delphi: 54,\n dpk: 54,\n dpr: 54,\n lpr: 54,\n 'object-pascal': 54,\n objectpascal: 54,\n pas: 54,\n pascal: 54,\n pp: 54,\n perl: 55,\n pl: 55,\n pm: 55,\n php: 56,\n powershell: 57,\n ps: 57,\n ps1: 57,\n psd1: 57,\n psm1: 57,\n pwsh: 57,\n proto: 58,\n protobuf: 58,\n py: 59,\n python: 59,\n r: 60,\n rscript: 60,\n rb: 61,\n ruby: 61,\n rs: 62,\n rust: 62,\n sass: 63,\n sbt: 64,\n sc: 64,\n scala: 64,\n scss: 65,\n sol: 66,\n solidity: 66,\n sql: 67,\n svelte: 68,\n swift: 69,\n hcl: 70,\n terraform: 70,\n tf: 70,\n tfvars: 70,\n toml: 71,\n 'angular-ts': 72,\n cts: 72,\n mts: 72,\n ts: 72,\n typescript: 72,\n tsrx: 73,\n tsx: 74,\n vue: 75,\n wasm: 76,\n wat: 76,\n wgsl: 77,\n svg: 78,\n xml: 78,\n xsd: 78,\n yaml: 79,\n yml: 79,\n zig: 80,\n zon: 80,\n} as const;\n\n/** A language name or alias supported by a built-in lexer. */\nexport type Lang = keyof typeof languages;\n\nexport default languages;\n", "// generated by scripts/build.ts - do not edit\nconst tokenTypes: readonly string[] = [\n 'none',\n 'attribute',\n 'attribute.jsx',\n 'boolean',\n 'comment',\n 'comment.doc',\n 'constant',\n 'constant.builtin',\n 'constructor',\n 'diff.minus',\n 'diff.plus',\n 'embedded',\n 'emphasis',\n 'emphasis.strong',\n 'function',\n 'function.definition',\n 'function.method',\n 'keyword',\n 'keyword.control',\n 'keyword.declaration',\n 'keyword.import',\n 'keyword.operator',\n 'label',\n 'namespace',\n 'number',\n 'operator',\n 'predictive',\n 'preproc',\n 'primary',\n 'property',\n 'property.json_key',\n 'punctuation',\n 'punctuation.bracket',\n 'punctuation.bracket.html',\n 'punctuation.bracket.jsx',\n 'punctuation.delimiter',\n 'punctuation.delimiter.html',\n 'punctuation.delimiter.jsx',\n 'punctuation.list_marker',\n 'punctuation.markup',\n 'punctuation.special',\n 'selector',\n 'selector.class',\n 'selector.id',\n 'string',\n 'string.escape',\n 'string.regex',\n 'string.special',\n 'string.special.symbol',\n 'tag',\n 'tag.doctype',\n 'tag.jsx',\n 'text.jsx',\n 'text.literal',\n 'title',\n 'type',\n 'type.builtin',\n 'type.class',\n 'variable',\n 'variable.parameter',\n 'variable.special',\n 'enum',\n 'hint',\n 'keyword.jsdoc',\n 'link_text',\n 'link_uri',\n 'selector.pseudo',\n 'tag.component.jsx',\n 'type.jsdoc',\n 'variable.jsdoc',\n 'variant',\n 'background',\n 'foreground',\n];\n\nexport default tokenTypes;\n", "import type {\n Theme,\n ThemeFamily,\n ThemeStyle,\n ThemeSyntaxSettings,\n} from './index';\nimport tokenTypes from './token-types';\n\nexport const defaultCssVariablePrefix = '--hls-';\n\n/**\n * Bytes of one packed Wasm theme table: 73 five-byte records padded for the\n * emitter's SIMD comparisons. Mirrors `$mem.themeTable` in src/memory.wat.\n */\nexport const themeTableBytes = 384;\n\nconst enc = new TextEncoder();\nconst colorReg = /^#([a-f0-9]{3,4}|[a-f0-9]{6}|[a-f0-9]{8})$/i;\nconst displayP3Reg =\n /^color\\(display-p3\\s+[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)\\s+[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)\\s+[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:\\s*\\/\\s*[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+))?\\s*\\)$/i;\n\n/** One theme slot's resolved styling for a token type. */\nexport interface TokenStyle {\n color: string | undefined;\n italic: boolean;\n weight: number;\n}\n\n/**\n * Accept hex and numeric Display P3 colors that cannot escape a CSS declaration.\n * Named colors, variables, and arbitrary CSS fragments are rejected.\n */\nexport function isThemeColor(value: unknown): value is string {\n return (\n typeof value === 'string' &&\n (colorReg.test(value.trim()) || displayP3Reg.test(value.trim()))\n );\n}\n\n/** A theme's default text color: `editor.foreground`, `text`, then `foreground`. */\nexport function themeForeground(style: ThemeStyle): string | undefined {\n return style['editor.foreground'] ?? style.text ?? style.foreground;\n}\n\n/** A theme's editor background: `editor.background`, then `background`. */\nexport function themeBackground(style: ThemeStyle): string | undefined {\n return style['editor.background'] ?? style.background;\n}\n\n/** Describe a rejected theme value for the `invalid theme` error message. */\nfunction describeThemeValue(value: unknown): string {\n if (value === null) return 'null';\n if (value === undefined) return 'undefined';\n if (typeof value === 'string') {\n return `the string ${JSON.stringify(value)} (theme ids are not supported; import the theme object from \"@pierre/highlights/themes\")`;\n }\n if (Array.isArray(value)) return 'an array';\n if (typeof value === 'object') {\n if ('themes' in value && Array.isArray(value.themes)) {\n return `a ThemeFamily whose first member is ${describeThemeValue(value.themes[0])}`;\n }\n return 'an object without a `name`';\n }\n return `a ${typeof value}`;\n}\n\n/** True for an object with a non-empty `name`, the shape every theme needs. */\nfunction isThemeObject(value: unknown): value is Theme {\n return (\n value != null &&\n typeof value === 'object' &&\n 'name' in value &&\n typeof value.name === 'string' &&\n value.name !== ''\n );\n}\n\n/**\n * Resolve a `theme` option. For a `ThemeFamily`, use its first member.\n * Throw a `TypeError` that describes the received value if it is invalid.\n * Theme ID strings are not supported.\n */\nexport function resolveTheme(theme: Theme | ThemeFamily): Theme {\n const resolved: unknown =\n theme != null &&\n typeof theme === 'object' &&\n 'themes' in theme &&\n theme.themes != null\n ? theme.themes[0]\n : theme;\n if (!isThemeObject(resolved)) {\n throw new TypeError(\n `invalid theme: expected a Theme or ThemeFamily object, received ${describeThemeValue(theme)}`\n );\n }\n return resolved;\n}\n\n/** Keep the nearest scope's font settings while finding an inherited color. */\nexport function resolveThemeSyntax(\n syntax: Record<string, string | ThemeSyntaxSettings>,\n name: string\n): ThemeSyntaxSettings | undefined {\n let settings: ThemeSyntaxSettings | undefined;\n for (let k = name; k !== ''; ) {\n const v = syntax[k];\n if (typeof v === 'string') return { ...settings, color: v };\n if (v != null && typeof v === 'object') {\n settings ??= v;\n if (v.color != null) return { ...settings, color: v.color };\n }\n const dot = k.lastIndexOf('.');\n k = dot < 0 ? '' : k.slice(0, dot);\n }\n return settings;\n}\n\n/** Resolve identical colors and font settings for Wasm and JavaScript output. */\nexport function resolveThemeStyle(style: ThemeStyle, name: string): TokenStyle {\n let color: string | undefined;\n let font_style: string | undefined;\n let font_weight: number | undefined;\n if (name === 'background') color = themeBackground(style);\n else if (name === 'foreground') color = themeForeground(style);\n else {\n ({ color, font_style, font_weight } =\n resolveThemeSyntax(style.syntax ?? {}, name) ?? {});\n if (font_style != null || font_weight != null)\n color ??= themeForeground(style);\n }\n if (isThemeColor(color)) {\n color = color.trim().toLowerCase();\n if (color.startsWith('#')) {\n if (color.length <= 5) color = color.replace(/[^#]/g, '$&$&');\n if (color.length === 9 && color.endsWith('ff')) color = color.slice(0, 7);\n // A zero RGBA record inherits the foreground in the Wasm emitter.\n if (color === '#00000000') color = undefined;\n }\n } else {\n color = undefined;\n }\n return {\n color,\n italic: font_style === 'italic',\n weight:\n font_weight != null && font_weight >= 100 && font_weight <= 900\n ? Math.round(font_weight / 100) * 100\n : 0,\n };\n}\n\n/** A prefixed CSS variable for a token slot, matching the Wasm emitter. */\nfunction cssVariable(name: string, cssVariablePrefix: string): string {\n return `var(${cssVariablePrefix}${name.replace(/[._]/g, '-')})`;\n}\n\n/**\n * Escape a string for a double-quoted HTML attribute.\n * Prefixes and theme keys need escaping. Validated theme colors do not.\n */\nexport function escapeAttribute(value: string): string {\n return value\n .replaceAll('&', '&amp;')\n .replaceAll('\"', '&quot;')\n .replaceAll('<', '&lt;')\n .replaceAll('>', '&gt;');\n}\n\n/**\n * Pack HTML openers for Wasm mode 4. Store the u32 span reserve, then\n * u32 byte offset/length pairs per token ID, then the UTF-8 bytes.\n * Slot 0 holds the root opener with `<code>`. Other slots hold span openers.\n */\nexport function packHtmlOpeners(openers: string[]): Uint8Array {\n const bytes = openers.map((opener) => enc.encode(opener));\n let offset = 4 + 8 * bytes.length;\n const blob = new Uint8Array(\n offset + bytes.reduce((sum, entry) => sum + entry.length, 0)\n );\n const dv = new DataView(blob.buffer);\n let spanReserve = 32;\n for (let i = 0; i < bytes.length; i++) {\n dv.setUint32(4 + 8 * i, offset, true);\n dv.setUint32(8 + 8 * i, bytes[i].length, true);\n blob.set(bytes[i], offset);\n offset += bytes[i].length;\n if (i !== 0) spanReserve = Math.max(spanReserve, bytes[i].length + 32);\n }\n dv.setUint32(0, spanReserve, true);\n return blob;\n}\n\n/** Resolved token styles, root colors, and the theme's HTML representation. */\nexport interface PreparedTheme {\n name: string;\n /** Indexed by token id; null slots inherit the foreground. */\n styles: (TokenStyle | null)[];\n fg?: string;\n bg?: string;\n /** Five-byte RGBA/style records; undefined for Display P3 and CSS variables. */\n table: Uint8Array | undefined;\n /** Lazy UTF-8 HTML openers for Display P3 themes and named CSS palettes. */\n readonly htmlOpeners: Uint8Array | undefined;\n}\n\n// Theme names are not unique. Replace the object to change its cached styles.\nconst preparedCache = new WeakMap<Theme, Map<string, PreparedTheme>>();\n\n/**\n * Resolve all token styles for a theme or family.\n * Cache by theme object identity and, for CSS-variable themes, by prefix.\n * HTML, token, stream, and live output share the prepared object.\n */\nexport function prepareTheme(\n theme: Theme | ThemeFamily,\n cssVariablePrefix: string = defaultCssVariablePrefix\n): PreparedTheme {\n const resolved = resolveTheme(theme);\n const prefix = resolved.cssVariables === true ? cssVariablePrefix : '';\n let prefixes = preparedCache.get(resolved);\n const cached = prefixes?.get(prefix);\n if (cached !== undefined) return cached;\n const prepared =\n resolved.cssVariables === true\n ? prepareCssVariables(resolved.name, cssVariablePrefix)\n : typeof resolved.cssVariables === 'object'\n ? prepareCssPalette(resolved)\n : prepareStyles(resolved);\n if (prefixes === undefined) {\n prefixes = new Map();\n preparedCache.set(resolved, prefixes);\n }\n prefixes.set(prefix, prepared);\n return prepared;\n}\n\n/** Palette colors are variable suffixes, not literal CSS values. */\nfunction prepareCssPalette(theme: Theme): PreparedTheme {\n const config = theme.cssVariables;\n if (typeof config !== 'object') throw new Error('Expected CSS palette');\n const prefix = config.prefix ?? defaultCssVariablePrefix;\n const variable = (name: string): string => {\n const fallback = config.defaults?.[name];\n return `var(${prefix}${name}${fallback ? `, ${fallback}` : ''})`;\n };\n const styles: (TokenStyle | null)[] = new Array(tokenTypes.length).fill(null);\n const syntax = theme.style.syntax ?? {};\n for (let i = 1; i < tokenTypes.length; i++) {\n const setting = resolveThemeSyntax(syntax, tokenTypes[i]);\n styles[i] = {\n color: variable(setting?.color ?? 'foreground'),\n italic: setting?.font_style === 'italic',\n weight:\n setting?.font_weight === undefined\n ? 0\n : Math.round(setting.font_weight / 100) * 100,\n };\n }\n const fg = variable(themeForeground(theme.style) ?? 'foreground');\n const bg = variable(themeBackground(theme.style) ?? 'background');\n let htmlOpeners: Uint8Array | undefined;\n return {\n name: theme.name,\n styles,\n fg,\n bg,\n table: undefined,\n get htmlOpeners() {\n return (htmlOpeners ??= themeHtmlOpeners(styles, fg, bg));\n },\n };\n}\n\n/**\n * Each slot uses its prefixed CSS custom property. The theme's `style`\n * is not read. Build these references on first use. HTML output only\n * needs to know that there is no packed theme table.\n */\nfunction prepareCssVariables(\n name: string,\n cssVariablePrefix: string\n): PreparedTheme {\n let variables: Pick<PreparedTheme, 'styles' | 'fg' | 'bg'> | undefined;\n const resolve = () => (variables ??= cssVariableStyles(cssVariablePrefix));\n return {\n name,\n get styles() {\n return resolve().styles;\n },\n get fg() {\n return resolve().fg;\n },\n get bg() {\n return resolve().bg;\n },\n table: undefined,\n htmlOpeners: undefined,\n };\n}\n\n/** Variable references for every token slot plus the foreground and background. */\nfunction cssVariableStyles(\n cssVariablePrefix: string\n): Pick<PreparedTheme, 'styles' | 'fg' | 'bg'> {\n const styles: (TokenStyle | null)[] = new Array(tokenTypes.length).fill(null);\n for (let i = 1; i < tokenTypes.length; i++) {\n styles[i] = {\n color: cssVariable(tokenTypes[i], cssVariablePrefix),\n italic: false,\n weight: 0,\n };\n }\n return {\n styles,\n fg: cssVariable('foreground', cssVariablePrefix),\n bg: cssVariable('background', cssVariablePrefix),\n };\n}\n\n/**\n * Resolve token styles and pack hex colors and font settings into a Wasm\n * theme table. Keep font settings even when the color is absent.\n * Display P3 colors do not fit RGBA records. Themes with these colors\n * use prepared HTML openers instead of a packed table.\n */\nfunction prepareStyles(theme: Theme): PreparedTheme {\n const themeStyle = theme.style ?? {};\n const styles: (TokenStyle | null)[] = new Array(tokenTypes.length).fill(null);\n const table = new Uint8Array(tokenTypes.length * 5);\n let fg: string | undefined;\n let bg: string | undefined;\n let usesDisplayP3 = false;\n for (let i = 1; i < tokenTypes.length; i++) {\n const name = tokenTypes[i];\n const style = resolveThemeStyle(themeStyle, name);\n const { color, italic, weight } = style;\n const o = i * 5;\n if (color !== undefined) {\n if (color.startsWith('#')) {\n const rgb = parseInt(color.slice(1, 7), 16);\n table[o] = rgb >> 16;\n table[o + 1] = (rgb >> 8) & 0xff;\n table[o + 2] = rgb & 0xff;\n table[o + 3] = color.length === 9 ? parseInt(color.slice(7), 16) : 0xff;\n } else {\n // `resolveThemeStyle` only returns hex or `color(display-p3 …)`.\n usesDisplayP3 = true;\n }\n }\n table[o + 4] = (italic ? 0x10 : 0) | (weight / 100);\n if (color === undefined && !italic && weight === 0) continue;\n if (name === 'foreground') fg = color;\n else if (name === 'background') bg = color;\n else styles[i] = style;\n }\n let htmlOpeners: Uint8Array | undefined;\n return {\n name: theme.name,\n styles,\n fg,\n bg,\n table: usesDisplayP3 ? undefined : table,\n get htmlOpeners() {\n if (!usesDisplayP3) return undefined;\n return (htmlOpeners ??= themeHtmlOpeners(styles, fg, bg));\n },\n };\n}\n\n/**\n * Pack theme colors and font styles for the Wasm HTML emitter.\n * Escape attributes because CSS prefixes and defaults may contain quotes.\n */\nfunction themeHtmlOpeners(\n styles: (TokenStyle | null)[],\n fg: string | undefined,\n bg: string | undefined\n): Uint8Array {\n const rootStyle =\n (bg === undefined ? '' : `background-color:${bg};`) +\n (fg === undefined ? '' : `color:${fg}`);\n const openers = [\n `<pre class=\"highlights\" style=\"${escapeAttribute(rootStyle)}\"><code>`,\n ];\n for (let i = 1; i < tokenTypes.length; i++) {\n const style = styles[i];\n const css =\n `color:${style?.color ?? 'inherit'}` +\n (style?.italic === true ? ';font-style:italic' : '') +\n (style != null && style.weight !== 0\n ? `;font-weight:${style.weight}`\n : '');\n openers.push(`<span style=\"${escapeAttribute(css)}\">`);\n }\n return packHtmlOpeners(openers);\n}\n", "import type { CodeToHtmlOptions, ThemedToken, TokensResult } from './index';\nimport type { PreparedTheme } from './theme';\nimport {\n escapeAttribute,\n packHtmlOpeners,\n prepareTheme,\n themeTableBytes,\n} from './theme';\nimport tokenTypes from './token-types';\n\nconst enc = new TextEncoder();\n\n/**\n * How a resolved theme appears in the output:\n * - `single`: plain `color` and `fontStyle` for the `theme` option.\n * - `default`: plain `color`, `font-style`, and `font-weight` in `htmlStyle`.\n * - `variable`: custom properties for other members of a `themes` set.\n * - `light-dark`: combine `light` and `dark` colors with CSS `light-dark()`.\n */\nexport type ThemeRole = 'single' | 'default' | 'variable' | 'light-dark';\n\n/**\n * A prepared theme's rendering fields tagged with the option color key\n * (`null` for `theme`) and its role in the output.\n */\nexport interface ResolvedTheme extends Pick<\n PreparedTheme,\n 'name' | 'styles' | 'fg' | 'bg' | 'table'\n> {\n color: string | null;\n role: ThemeRole;\n}\n\n/**\n * Map each `$Token` slot to Shiki's `ThemedToken.type`.\n *\n * Values match TextMate's `StandardTokenType`: `0` other, `1` comment,\n * `2` string, `3` regex. Bracket matching and editor heuristics ignore brackets\n * in non-zero ranges.\n */\nexport const standardTypes: Uint8Array = new Uint8Array(tokenTypes.length);\nfor (let i = 0; i < tokenTypes.length; i++) {\n const name = tokenTypes[i];\n if (name === 'string.regex') standardTypes[i] = 3;\n else if (name === 'comment' || name.startsWith('comment.'))\n standardTypes[i] = 1;\n else if (name === 'string' || name.startsWith('string.'))\n standardTypes[i] = 2;\n}\n\n// Multi-theme tokens with the same token id share styles for their theme set.\nconst htmlStyleCache = new WeakMap<\n ResolvedTheme[],\n Map<string, Record<string, string>[]>\n>();\n\n// Packed theme sets for the Wasm multi-theme emitter, one per set and\n// prefix; `null` records a set the emitter cannot render.\nconst blobCache = new WeakMap<\n ResolvedTheme[],\n Map<string, Uint8Array | null>\n>();\nlet nextBlobId = 1;\n\n// Prepared HTML openers for sets with Display P3 or CSS-variable colors.\nconst htmlOpenersCache = new WeakMap<\n ResolvedTheme[],\n Map<string, Uint8Array>\n>();\n\n// Reuse resolved theme sets and their cached styles and HTML openers.\n// Identify a set by its prepared theme objects, color keys, and roles.\n// Each entry lives as long as its first prepared theme remains reachable.\n// Limit each first theme to 128 sets to bound retained partner themes.\nconst resolvedSetCache = new WeakMap<\n PreparedTheme,\n Map<string, ResolvedTheme[]>\n>();\nconst preparedIds = new WeakMap<PreparedTheme, number>();\nlet nextPreparedId = 0;\n\n/** A stable number for a prepared theme, assigned on first use. */\nfunction preparedId(prepared: PreparedTheme): number {\n let id = preparedIds.get(prepared);\n if (id === undefined) {\n id = nextPreparedId++;\n preparedIds.set(prepared, id);\n }\n return id;\n}\n\n/** Tag one prepared theme with its color key and role. */\nfunction tagTheme(\n { name, styles, fg, bg, table }: PreparedTheme,\n color: string | null,\n role: ThemeRole\n): ResolvedTheme {\n return { color, role, name, styles, fg, bg, table };\n}\n\n/**\n * Convert Shiki-style options to a theme list.\n * With `themes`, put the inline `defaultColor` theme first (`light` by\n * default). Sort the remaining themes by name and use custom properties.\n * `defaultColor: false` uses custom properties for all themes.\n * `'light-dark()'` pairs the `light` and `dark` themes.\n * Reuse cached list objects so their style caches remain available.\n */\nexport function resolveOptionThemes(\n options: CodeToHtmlOptions\n): ResolvedTheme[] {\n const { cssVariablePrefix } = options;\n if (options.themes == null) {\n return [\n tagTheme(prepareTheme(options.theme, cssVariablePrefix), null, 'single'),\n ];\n }\n const entries = Object.entries(options.themes)\n .filter(([, t]) => t != null)\n .sort(([a], [b]) => (a < b ? -1 : 1));\n if (entries.length === 0) throw new TypeError('themes must not be empty');\n const defaultColor = options.defaultColor ?? 'light';\n let roles: ThemeRole[];\n if (defaultColor === 'light-dark()') {\n const light = entries.find(([key]) => key === 'light');\n const dark = entries.find(([key]) => key === 'dark');\n if (light === undefined || dark === undefined) {\n throw new TypeError(\n \"`themes` must contain `light` and `dark` when defaultColor is 'light-dark()'\"\n );\n }\n entries.splice(0, entries.length, light, dark);\n roles = ['light-dark', 'light-dark'];\n } else {\n if (defaultColor !== false) {\n const at = entries.findIndex(([key]) => key === defaultColor);\n if (at < 0) {\n throw new TypeError(\n `\\`themes\\` must contain the defaultColor key \\`${defaultColor}\\``\n );\n }\n entries.unshift(...entries.splice(at, 1));\n }\n roles = entries.map((_, i) =>\n defaultColor !== false && i === 0 ? 'default' : 'variable'\n );\n }\n const prepared = entries.map(([, theme]) =>\n prepareTheme(theme, cssVariablePrefix)\n );\n const key = JSON.stringify(\n entries.map(([color], i) => [preparedId(prepared[i]), roles[i], color])\n );\n let sets = resolvedSetCache.get(prepared[0]);\n const cached = sets?.get(key);\n if (cached !== undefined) return cached;\n const themes = entries.map(([color], i) =>\n tagTheme(prepared[i], color, roles[i])\n );\n if (sets === undefined) {\n sets = new Map();\n resolvedSetCache.set(prepared[0], sets);\n }\n sets.set(key, themes);\n if (sets.size > 128) {\n const oldest = sets.keys().next().value;\n if (oldest !== undefined) sets.delete(oldest);\n }\n return themes;\n}\n\n/** Convert an offset range and token id to a Shiki `ThemedToken`. */\nexport function rangeToToken(\n code: string,\n start: number,\n end: number,\n hl: number,\n themes: ResolvedTheme[],\n cssVariablePrefix: string,\n offsetBase = 0\n): ThemedToken {\n const token: ThemedToken = {\n content: code.slice(start, end),\n offset: start + offsetBase,\n };\n if (themes[0].role === 'single') {\n const { styles, fg } = themes[0];\n const style = styles[hl];\n token.color = style?.color ?? fg;\n let bits = 0;\n if (style?.italic === true) bits |= 1;\n if ((style?.weight ?? 0) >= 600) bits |= 2;\n token.fontStyle = bits;\n } else {\n token.htmlStyle = themeHtmlStyle(themes, hl, cssVariablePrefix);\n }\n const type = standardTypes[hl];\n if (type !== 0) token.type = type;\n return token;\n}\n\nfunction themeHtmlStyles(\n themes: ResolvedTheme[],\n cssVariablePrefix: string\n): Record<string, string>[] {\n let prefixes = htmlStyleCache.get(themes);\n if (prefixes === undefined) {\n prefixes = new Map();\n htmlStyleCache.set(themes, prefixes);\n }\n let slots = prefixes.get(cssVariablePrefix);\n if (slots === undefined) {\n slots = [];\n prefixes.set(cssVariablePrefix, slots);\n }\n return slots;\n}\n\n/**\n * Build `htmlStyle` for token ID `hl` and a theme set.\n * Use plain styles for the default theme and custom properties for the\n * others, or combine colors with `light-dark()`.\n * Cache by set, prefix, and token ID. All matching tokens and HTML tags\n * share the map.\n */\nexport function themeHtmlStyle(\n themes: ResolvedTheme[],\n hl: number,\n cssVariablePrefix: string\n): Record<string, string> {\n const slots = themeHtmlStyles(themes, cssVariablePrefix);\n let htmlStyle = slots[hl];\n if (htmlStyle === undefined) {\n if (themes[0].role === 'light-dark') {\n htmlStyle = lightDarkStyle(themes, hl, cssVariablePrefix);\n } else {\n htmlStyle = {};\n for (const { color, role, styles, fg } of themes) {\n const style = styles[hl];\n // The default theme is applied inline; the others are custom\n // properties the page switches between.\n const plain = role === 'default';\n htmlStyle[plain ? 'color' : cssVariablePrefix + color] =\n style?.color ?? fg ?? 'inherit';\n if (style?.italic === true) {\n htmlStyle[\n plain ? 'font-style' : `${cssVariablePrefix}${color}-font-style`\n ] = 'italic';\n }\n if (style != null && style.weight !== 0) {\n htmlStyle[\n plain ? 'font-weight' : `${cssVariablePrefix}${color}-font-weight`\n ] = String(style.weight);\n }\n }\n }\n slots[hl] = htmlStyle;\n }\n return htmlStyle;\n}\n\n/**\n * Pack a theme set for Wasm HTML mode 2. The emitter writes each theme's\n * colors and font settings into spans. Layout (see `$multiRec` in emit.wat):\n *\n * 0 u8 slot count 1 u8 kind: 0 custom properties, 1 light-dark()\n * 4 u32 tables offset 8 u32 span reserve 12 u32 prologue reserve\n * 16 u32 set id\n * 32 per slot, 16 bytes: u32 name offset, u32 name length, u32 inline\n * then one padded theme table per slot, then the name bytes\n *\n * Each slot name is an escaped custom property, such as `--hls-dark`.\n * The inline `defaultColor` slot has no name. Reserves bound the size of\n * span and `<pre>` openers, including property names supplied by the host.\n * The unique set ID identifies this data in the opener cache.\n *\n * Cache by set and prefix. Return `undefined` if any theme lacks a packed\n * table (Display P3 or CSS-variable colors). HTML output then uses\n * `multiThemeHtmlOpeners`.\n */\nexport function multiThemeBlob(\n themes: ResolvedTheme[],\n cssVariablePrefix: string\n): Uint8Array | undefined {\n let prefixes = blobCache.get(themes);\n if (prefixes === undefined) {\n prefixes = new Map();\n blobCache.set(themes, prefixes);\n }\n const cached = prefixes.get(cssVariablePrefix);\n if (cached !== undefined) return cached ?? undefined;\n const count = themes.length;\n const packable = count <= 255 && themes.every((t) => t.table !== undefined);\n if (!packable) {\n prefixes.set(cssVariablePrefix, null);\n return undefined;\n }\n const names = themes.map((t) =>\n t.role === 'default'\n ? new Uint8Array(0)\n : enc.encode(escapeAttribute(`${cssVariablePrefix}${t.color}`))\n );\n const tablesOffset = 32 + 16 * count;\n const namesOffset = tablesOffset + themeTableBytes * count;\n let spanReserve = 64;\n let prologueReserve = 128;\n let nameBytes = 0;\n for (const { length } of names) {\n // per slot: `NAME:#rrggbbaa;`, `NAME-font-style:italic;`, and\n // `NAME-font-weight:N00;` (or the light-dark() forms) for a span;\n // `NAME-bg:#rrggbbaa;` and `NAME:#rrggbbaa;` for the root\n spanReserve += 64 + 3 * length;\n prologueReserve += 48 + 2 * length;\n nameBytes += length;\n }\n const blob = new Uint8Array(namesOffset + nameBytes);\n const dv = new DataView(blob.buffer);\n blob[0] = count;\n blob[1] = themes[0].role === 'light-dark' ? 1 : 0;\n dv.setUint32(4, tablesOffset, true);\n dv.setUint32(8, spanReserve, true);\n dv.setUint32(12, prologueReserve, true);\n dv.setUint32(16, nextBlobId++, true);\n let nameOffset = namesOffset;\n for (let i = 0; i < count; i++) {\n const slot = 32 + 16 * i;\n dv.setUint32(slot, nameOffset, true);\n dv.setUint32(slot + 4, names[i].length, true);\n dv.setUint32(slot + 8, themes[i].role === 'default' ? 1 : 0, true);\n blob.set(themes[i].table as Uint8Array, tablesOffset + themeTableBytes * i);\n blob.set(names[i], nameOffset);\n nameOffset += names[i].length;\n }\n prefixes.set(cssVariablePrefix, blob);\n return blob;\n}\n\n/**\n * Build HTML openers for theme sets without packed RGBA tables.\n * Spans use `htmlStyle`. The root uses `themeMeta`.\n * Cache by set and prefix. Escape prefixes and theme keys for HTML attributes.\n */\nexport function multiThemeHtmlOpeners(\n themes: ResolvedTheme[],\n cssVariablePrefix: string\n): Uint8Array {\n let prefixes = htmlOpenersCache.get(themes);\n if (prefixes === undefined) {\n prefixes = new Map();\n htmlOpenersCache.set(themes, prefixes);\n }\n const cached = prefixes.get(cssVariablePrefix);\n if (cached !== undefined) return cached;\n const { fg, bg, rootStyle } = themeMeta(themes, cssVariablePrefix);\n const openers = [\n `<pre class=\"highlights\" style=\"${escapeAttribute(\n rootStyle ?? `background-color:${bg};color:${fg}`\n )}\"><code>`,\n ];\n for (let hl = 1; hl < tokenTypes.length; hl++) {\n const htmlStyle = themeHtmlStyle(themes, hl, cssVariablePrefix);\n let css = '';\n for (const property in htmlStyle) {\n css += `${css === '' ? '' : ';'}${property}:${htmlStyle[property]}`;\n }\n openers.push(`<span style=\"${escapeAttribute(css)}\">`);\n }\n const blob = packHtmlOpeners(openers);\n prefixes.set(cssVariablePrefix, blob);\n return blob;\n}\n\n/**\n * Build `htmlStyle` for `defaultColor: 'light-dark()'`.\n * Combine both colors with CSS `light-dark()`. Use plain font settings\n * when the themes agree, or per-theme custom properties when they differ.\n */\nfunction lightDarkStyle(\n themes: ResolvedTheme[],\n hl: number,\n cssVariablePrefix: string\n): Record<string, string> {\n const [light, dark] = themes;\n const a = light.styles[hl];\n const b = dark.styles[hl];\n const ac = a?.color ?? light.fg ?? 'currentcolor';\n const bc = b?.color ?? dark.fg ?? 'currentcolor';\n const htmlStyle: Record<string, string> = {\n color: ac === bc ? ac : `light-dark(${ac}, ${bc})`,\n };\n const ai = a?.italic === true;\n const bi = b?.italic === true;\n if (ai && bi) htmlStyle['font-style'] = 'italic';\n else {\n if (ai) htmlStyle[`${cssVariablePrefix}light-font-style`] = 'italic';\n if (bi) htmlStyle[`${cssVariablePrefix}dark-font-style`] = 'italic';\n }\n const aw = a?.weight ?? 0;\n const bw = b?.weight ?? 0;\n if (aw !== 0 && aw === bw) htmlStyle['font-weight'] = String(aw);\n else {\n if (aw !== 0)\n htmlStyle[`${cssVariablePrefix}light-font-weight`] = String(aw);\n if (bw !== 0)\n htmlStyle[`${cssVariablePrefix}dark-font-weight`] = String(bw);\n }\n return htmlStyle;\n}\n\n/** Convert UTF-16 token records with `0xffffffff` line markers to tokens. */\nexport function lineRecordsToTokens(\n code: string,\n recs: Uint32Array,\n themes: ResolvedTheme[],\n cssVariablePrefix: string,\n maxLineLength?: number,\n offsetBase = 0\n): ThemedToken[][] {\n const lines: ThemedToken[][] = [];\n const max = maxLineLength ?? 0;\n const { styles, fg, role } = themes[0];\n const htmlStyles =\n role === 'single' ? undefined : themeHtmlStyles(themes, cssVariablePrefix);\n let start = 0;\n for (let rec = 0; ; rec += 2) {\n const first = rec;\n while (rec < recs.length && recs[rec + 1] !== 0xffffffff) rec += 2;\n const end = rec === first ? start : recs[rec - 2];\n let line: ThemedToken[];\n if (max > 0 && end - start >= max) {\n line = [\n rangeToToken(\n code,\n start,\n end,\n 0,\n themes,\n cssVariablePrefix,\n offsetBase\n ),\n ];\n } else {\n line = new Array((rec - first) / 2);\n let count = 0;\n for (let at = first; at < rec; at += 2) {\n const end = recs[at];\n if (end > start) {\n const hl = recs[at + 1];\n let token: ThemedToken;\n if (htmlStyles === undefined) {\n const style = styles[hl];\n token = {\n content: code.slice(start, end),\n offset: start + offsetBase,\n color: style?.color ?? fg,\n fontStyle:\n (style?.italic === true ? 1 : 0) |\n ((style?.weight ?? 0) >= 600 ? 2 : 0),\n };\n } else {\n token = {\n content: code.slice(start, end),\n offset: start + offsetBase,\n htmlStyle:\n htmlStyles[hl] ?? themeHtmlStyle(themes, hl, cssVariablePrefix),\n };\n }\n const type = standardTypes[hl];\n if (type !== 0) token.type = type;\n line[count++] = token;\n start = end;\n }\n }\n line.length = count;\n }\n lines.push(line);\n if (rec === recs.length) break;\n start = recs[rec];\n }\n return lines;\n}\n\n/**\n * Build `fg`, `bg`, `themeName`, and `rootStyle` for a Shiki `TokensResult`.\n * With `themes`, `fg` and `bg` are CSS declaration lists. Each list starts\n * with the default theme's plain color, then the other themes' properties.\n * Set `rootStyle` only when no theme is inline. The `<pre>` style uses\n * `rootStyle` if set, or `background-color:bg;color:fg` otherwise.\n */\nexport function themeMeta(\n themes: ResolvedTheme[],\n cssVariablePrefix: string\n): Pick<TokensResult, 'fg' | 'bg' | 'themeName' | 'rootStyle'> {\n if (themes[0].role === 'single') {\n return {\n fg: themes[0].fg,\n bg: themes[0].bg,\n themeName: themes[0].name,\n };\n }\n const themeName = `highlights-themes ${themes.map((t) => t.name).join(' ')}`;\n if (themes[0].role === 'light-dark') {\n const pair = (\n a: string | undefined,\n b: string | undefined,\n fallback: string\n ) => {\n const x = a ?? fallback;\n const y = b ?? fallback;\n return x === y ? x : `light-dark(${x}, ${y})`;\n };\n return {\n fg: pair(themes[0].fg, themes[1].fg, 'currentcolor'),\n bg: pair(themes[0].bg, themes[1].bg, 'transparent'),\n themeName,\n };\n }\n const fg = themes\n .map((t) =>\n t.role === 'default'\n ? (t.fg ?? 'inherit')\n : `${cssVariablePrefix}${t.color}:${t.fg ?? 'inherit'}`\n )\n .join(';');\n const bg = themes\n .map((t) =>\n t.role === 'default'\n ? (t.bg ?? 'inherit')\n : `${cssVariablePrefix}${t.color}-bg:${t.bg ?? 'inherit'}`\n )\n .join(';');\n return {\n fg,\n bg,\n themeName,\n rootStyle: themes[0].role === 'default' ? undefined : `${fg};${bg}`,\n };\n}\n", "import type {\n CodeToHtmlOptions,\n CodeToTokensOptions,\n Highlighter,\n Lang,\n ThemedToken,\n TokensResult,\n} from './index';\nimport languages from './languages';\nimport {\n defaultCssVariablePrefix,\n escapeAttribute,\n prepareTheme,\n themeTableBytes,\n} from './theme';\nimport type { ResolvedTheme } from './tokens';\nimport {\n lineRecordsToTokens,\n multiThemeBlob,\n multiThemeHtmlOpeners,\n resolveOptionThemes,\n themeMeta,\n} from './tokens';\n\nconst enc = new TextEncoder();\nconst dec = new TextDecoder('utf-8', { ignoreBOM: true });\nconst pageSize = 65536;\nconst themePtr = 64; // $mem.themeTable in src/memory.wat\n// Unicode identifier classes for the ECMAScript lexers; see #idClass.\nconst idClassRegex = [/^\\p{ID_Start}$/u, /^[\\u200C\\u200D\\p{ID_Continue}]$/u];\nlet idClassCache: Uint8Array | undefined;\n\n/**\n * Language names and Wasm IDs, sorted by ID and then name.\n */\nexport const LANGS: Record<string, number> = languages;\n\n/** Resolve the Wasm language ID for a name or alias, or throw. */\nexport function langIdOf(lang: string): number {\n const langId = LANGS[String(lang).toLowerCase()];\n if (typeof langId !== 'number') throw new RangeError(`unknown lang: ${lang}`);\n return langId;\n}\n\n/**\n * Check whether a name or alias has a built-in lexer, including `plain`/`text`.\n */\nexport function isSupportedLanguage(lang: string): lang is Lang {\n return typeof LANGS[String(lang).toLowerCase()] === 'number';\n}\n\nexport class HighlightsHighlighter implements Highlighter {\n #highlight: () => void;\n #highlightStream: (reset: number | boolean) => void;\n #themeWritten: Uint8Array | undefined;\n #htmlPrefix: string | undefined;\n #htmlPrefixBytes = new Uint8Array(0);\n wasmModule: WebAssembly.Module;\n instance: WebAssembly.Instance;\n memory: WebAssembly.Memory;\n buffer: Uint8Array;\n dv: DataView;\n pageN: number;\n\n constructor(wasmModule: WebAssembly.Module) {\n this.wasmModule = wasmModule;\n const env = {\n is_id_start: (ptr: number, len: number) => this.#idClass(ptr, len, 0),\n is_id_continue: (ptr: number, len: number) => this.#idClass(ptr, len, 2),\n };\n const instance = new WebAssembly.Instance(wasmModule, { env });\n this.instance = instance;\n this.memory = instance.exports.memory as WebAssembly.Memory;\n this.#highlight = instance.exports.highlight as () => void;\n this.#highlightStream = instance.exports.highlightStream as (\n reset: number | boolean\n ) => void;\n this.pageN = this.memory.buffer.byteLength / pageSize;\n this.buffer = new Uint8Array(this.memory.buffer);\n this.dv = new DataView(this.memory.buffer);\n }\n\n /** Write input at a byte offset in the text buffer and return its byte length. */\n writeInput(input: string | Uint8Array | ArrayBuffer, offset = 0): number {\n if (typeof input === 'string') {\n // Use spare capacity for UTF-8, keeping 96 bytes for lexer lookahead.\n this.#growMemoryIfNeeded(offset + input.length + 96);\n let { read, written } = enc.encodeInto(\n input,\n this.buffer.subarray(pageSize + offset, this.buffer.length - 96)\n );\n if (read < input.length) {\n const rest = input.slice(read);\n this.#growMemoryIfNeeded(offset + written + rest.length * 3 + 96);\n written += enc.encodeInto(\n rest,\n this.buffer.subarray(\n pageSize + offset + written,\n this.buffer.length - 96\n )\n ).written;\n }\n return written;\n }\n if (input instanceof ArrayBuffer) {\n input = new Uint8Array(input);\n }\n if (!(input instanceof Uint8Array)) {\n throw new TypeError('input must be a string, Uint8Array, or ArrayBuffer');\n }\n this.#growMemoryIfNeeded(offset + input.length + 96);\n this.buffer.set(input, pageSize + offset);\n return input.length;\n }\n\n /**\n * Lex the first `inputLength` bytes. Output modes:\n * 0 inline colors, 1 CSS variables, 2 packed themes, 3 UTF-16 line records,\n * 4 prepared HTML openers. `reset` selects streaming mode.\n */\n #run(\n langId: number,\n mode: number,\n inputLength: number,\n reset?: boolean\n ): void {\n this.dv.setUint8(0, langId);\n this.dv.setUint8(1, mode);\n this.dv.setUint32(2, inputLength, true);\n this.buffer[pageSize + inputLength] = 0; // NUL sentinel: lexers treat byte 0 at EOF as end\n try {\n if (reset === undefined) this.#highlight();\n else this.#highlightStream(reset);\n } finally {\n this.bindMemory();\n }\n }\n\n /**\n * Return highlighted HTML bytes.\n * The bytes can reference Wasm memory that the next call overwrites.\n */\n codeToHtml(\n input: string | Uint8Array | ArrayBuffer,\n options: CodeToHtmlOptions\n ): Uint8Array {\n const langId = langIdOf(options.lang);\n const cssVariablePrefix =\n options.cssVariablePrefix ?? defaultCssVariablePrefix;\n let table: Uint8Array | undefined;\n let blob: Uint8Array | undefined;\n let mode = 0;\n if (options.themes != null) {\n const themes = resolveOptionThemes(options);\n blob = multiThemeBlob(themes, cssVariablePrefix);\n mode = 2;\n if (blob === undefined) {\n blob = multiThemeHtmlOpeners(themes, cssVariablePrefix);\n mode = 4;\n }\n } else {\n const prepared = prepareTheme(options.theme, cssVariablePrefix);\n table = prepared.table;\n blob = prepared.htmlOpeners;\n if (blob !== undefined) mode = 4;\n }\n const inputLength = this.writeInput(input);\n if (blob !== undefined) {\n this.#growMemoryIfNeeded(inputLength + blob.length + 96);\n const blobPtr = (pageSize + inputLength + 47) & ~15;\n this.buffer.set(blob, blobPtr);\n this.dv.setUint32(14, blobPtr, true);\n this.dv.setUint32(18, blob.length, true);\n } else if (table === undefined) {\n if (this.#htmlPrefix !== cssVariablePrefix) {\n this.#htmlPrefixBytes = enc.encode(escapeAttribute(cssVariablePrefix));\n this.#htmlPrefix = cssVariablePrefix;\n }\n const bytes = this.#htmlPrefixBytes;\n this.#growMemoryIfNeeded(inputLength + bytes.length + 96);\n const prefixPtr = (pageSize + inputLength + 47) & ~15;\n this.buffer.set(bytes, prefixPtr);\n this.dv.setUint32(14, prefixPtr, true);\n this.dv.setUint32(18, bytes.length, true);\n mode = 1;\n } else {\n if (this.#themeWritten !== table) {\n this.buffer.set(table, themePtr);\n this.buffer.fill(\n 0,\n themePtr + table.length,\n themePtr + themeTableBytes\n );\n this.#themeWritten = table;\n }\n mode = 0;\n }\n this.#run(langId, mode, inputLength);\n const outStart = this.dv.getUint32(6, true);\n const outLength = this.dv.getUint32(10, true);\n return this.buffer.subarray(outStart, outStart + outLength);\n }\n\n /** Return UTF-16 token records; `reset` starts or continues a stream. */\n tokenizeLineRecords(\n langId: number,\n inputLength: number,\n reset?: boolean\n ): Uint32Array {\n this.#run(langId, 3, inputLength, reset);\n const outStart = this.dv.getUint32(6, true);\n const outLength = this.dv.getUint32(10, true);\n return new Uint32Array(this.buffer.buffer, outStart, outLength >> 2);\n }\n\n /**\n * Tokenize code into Shiki-compatible themed tokens, one array per line.\n */\n codeToTokens(\n input: string | Uint8Array | ArrayBuffer,\n options: CodeToTokensOptions\n ): TokensResult {\n const code = toCode(input);\n // Normalize malformed UTF-8 and avoid detaching borrowed input on memory growth.\n if (\n typeof input !== 'string' &&\n (code.includes('\\ufffd') ||\n input === this.memory.buffer ||\n (input instanceof Uint8Array && input.buffer === this.memory.buffer))\n ) {\n input = code;\n }\n const themes = resolveOptionThemes(options);\n const cssVariablePrefix =\n options.cssVariablePrefix ?? defaultCssVariablePrefix;\n const recs = this.tokenizeLineRecords(\n langIdOf(options.lang),\n this.writeInput(input)\n );\n const tokens = lineRecordsToTokens(\n code,\n recs,\n themes,\n cssVariablePrefix,\n options.tokenizeMaxLineLength\n );\n return { tokens, ...themeMeta(themes, cssVariablePrefix) };\n }\n\n /** Grow the wasm linear memory if needed. */\n #growMemoryIfNeeded(len: number): void {\n const neededPages = 1 + Math.ceil(len / pageSize);\n if (neededPages > this.pageN) {\n this.memory.grow(neededPages - this.pageN);\n this.bindMemory();\n }\n }\n\n /**\n * Check `is_id_start` or `is_id_continue` for the code point at `ptr`.\n * `len` is its UTF-8 byte length. `shift` is 0 for ID_Start or 2 for\n * ID_Continue. Each BMP code point uses two cache bits per class:\n * 0 unknown, 1 no, 2 yes. Use the Unicode regex for cache misses and\n * astral code points.\n */\n #idClass(ptr: number, len: number, shift: number): number {\n this.bindMemory();\n const b = this.buffer;\n let cp: number;\n if (len === 2) cp = ((b[ptr] & 0x1f) << 6) | (b[ptr + 1] & 0x3f);\n else if (len === 3)\n cp =\n ((b[ptr] & 0x0f) << 12) |\n ((b[ptr + 1] & 0x3f) << 6) |\n (b[ptr + 2] & 0x3f);\n else\n cp =\n ((b[ptr] & 0x07) << 18) |\n ((b[ptr + 1] & 0x3f) << 12) |\n ((b[ptr + 2] & 0x3f) << 6) |\n (b[ptr + 3] & 0x3f);\n // invalid UTF-8 (a lead byte above 0xf4) decodes past the last code\n // point; it is never an identifier\n if (cp > 0x10ffff) return 0;\n if (cp > 0xffff || (cp >= 0xd800 && cp <= 0xdfff)) {\n return idClassRegex[shift >> 1].test(String.fromCodePoint(cp)) ? 1 : 0;\n }\n idClassCache ??= new Uint8Array(0x10000);\n const known = (idClassCache[cp] >> shift) & 3;\n if (known !== 0) return known - 1;\n const yes = idClassRegex[shift >> 1].test(String.fromCharCode(cp));\n idClassCache[cp] |= (yes ? 2 : 1) << shift;\n return yes ? 1 : 0;\n }\n\n /** Rebind views after growing wasm memory. */\n bindMemory(): void {\n if (this.buffer.buffer === this.memory.buffer) return;\n this.pageN = this.memory.buffer.byteLength / pageSize;\n this.buffer = new Uint8Array(this.memory.buffer);\n this.dv = new DataView(this.memory.buffer);\n }\n}\n\n/** Decode bytes for token content; keep string input's original UTF-16. */\nfunction toCode(input: string | Uint8Array | ArrayBuffer): string {\n if (typeof input === 'string') return input;\n if (input instanceof Uint8Array || input instanceof ArrayBuffer) {\n return dec.decode(input);\n }\n throw new TypeError('input must be a string, Uint8Array, or ArrayBuffer');\n}\n\n/** The shared highlighter instance created by `init`. */\nlet shared: HighlightsHighlighter | undefined;\n\n/** The compiled Wasm module required by the shared highlighter. */\nlet wasmModule: WebAssembly.Module | undefined;\n\n// Reuse one completed stream instance. Bun's Wasm instantiation is expensive,\n// while one slot keeps concurrent streams isolated and bounds retained memory.\nlet pooledStreamHighlighter: HighlightsHighlighter | undefined;\n\n/** The shared highlighter, or throw before `init`. */\nfunction assertShared(\n input: string | Uint8Array | ArrayBuffer\n): HighlightsHighlighter {\n if (shared == null) throw new Error('highlights is not initialized');\n // Wasm memory cannot shrink. Replace instances above 8 MiB when small\n // inputs resume, but keep reusing capacity for consecutive large calls.\n if (\n shared.pageN > 128 &&\n (typeof input === 'string' ? input.length : input.byteLength) <= pageSize\n ) {\n shared = new HighlightsHighlighter(shared.wasmModule);\n }\n return shared;\n}\n\n/** The compiled Wasm module required by isolated tokenizers. */\nexport function assertWasmModule(): WebAssembly.Module {\n if (wasmModule == null) throw new Error('highlights is not initialized');\n return wasmModule;\n}\n\n/**\n * Initialize the shared highlighter from a compiled WebAssembly module.\n */\nexport function init(wasm: WebAssembly.Module): Highlighter {\n wasmModule = wasm;\n pooledStreamHighlighter = undefined;\n return (shared = new HighlightsHighlighter(wasm));\n}\n\n/**\n * Create a highlighter with its own WebAssembly instance.\n * The shared highlighter is unchanged.\n */\nexport function createHighlighter(\n wasmModule: WebAssembly.Module = assertWasmModule()\n): Highlighter {\n return new HighlightsHighlighter(wasmModule);\n}\n\n/**\n * Return a `<pre class=\"highlights\">` fragment with inline colors.\n * With `themes`, each span uses the default theme inline and CSS custom\n * properties for the other themes, as in `codeToTokens`'s `htmlStyle`.\n */\nexport function codeToHtml(\n input: string | Uint8Array | ArrayBuffer,\n options: CodeToHtmlOptions\n): Uint8Array {\n return assertShared(input).codeToHtml(input, options);\n}\n\n/**\n * Return Shiki-compatible tokens, grouped by line.\n * WebAssembly lexes the input and splits lines. JavaScript converts the\n * style records to tokens.\n */\nexport function codeToTokens(\n input: string | Uint8Array | ArrayBuffer,\n options: CodeToTokensOptions\n): TokensResult {\n return assertShared(input).codeToTokens(input, options);\n}\n\n/**\n * Convert UTF-8 chunks to themed token arrays, one per completed line.\n * Use synchronous `pushCode` and `end` calls for strings or UTF-8 bytes.\n * An isolated Wasm instance scans each completed chunk once and keeps\n * lexer state between chunks.\n */\nexport class StreamTokenizer extends TransformStream<\n Uint8Array,\n ThemedToken[]\n> {\n #hl: HighlightsHighlighter | undefined;\n #langId: number;\n #themes: ResolvedTheme[];\n #cssVariablePrefix: string;\n #maxLineLength: number | undefined;\n #pendingBytes: Uint8Array = new Uint8Array(0);\n #pendingByteLength = 0;\n #pendingSurrogate = '';\n #tail = '';\n #streamChar = 0;\n #streamStarted = false;\n\n constructor(options: CodeToTokensOptions) {\n const transformer = {\n transform: (\n chunk: Uint8Array,\n controller: TransformStreamDefaultController<ThemedToken[]>\n ) => {\n try {\n for (const line of this.pushCode(chunk)) controller.enqueue(line);\n } catch (error) {\n this.dispose();\n throw error;\n }\n },\n flush: (controller: TransformStreamDefaultController<ThemedToken[]>) => {\n for (const line of this.end()) controller.enqueue(line);\n },\n cancel: () => this.dispose(),\n };\n super(transformer);\n\n // validate the options before taking the pooled instance so a rejected\n // language or theme leaves the pool intact\n this.#langId = langIdOf(options.lang);\n this.#themes = resolveOptionThemes(options);\n const compiledWasm = assertWasmModule();\n this.#hl =\n pooledStreamHighlighter?.wasmModule === compiledWasm\n ? pooledStreamHighlighter\n : new HighlightsHighlighter(compiledWasm);\n pooledStreamHighlighter = undefined;\n this.#cssVariablePrefix =\n options.cssVariablePrefix ?? defaultCssVariablePrefix;\n this.#maxLineLength = options.tokenizeMaxLineLength;\n }\n\n /**\n * Append text or UTF-8 bytes. Return tokens for each completed line,\n * with offsets relative to the full input.\n * Incomplete UTF-8 stays buffered between byte chunks. A nonempty\n * string flushes those bytes first. The final line stays buffered\n * until a newline or `end()`.\n */\n pushCode(chunk: string | Uint8Array): ThemedToken[][] {\n if (this.#hl == null) throw new Error('stream has ended');\n if (chunk.length === 0) return [];\n if (typeof chunk !== 'string') {\n let end = chunk.lastIndexOf(10) + 1;\n if (end === 0) {\n this.#bufferBytes(chunk);\n return [];\n }\n if (this.#pendingByteLength > 0) {\n end += this.#pendingByteLength;\n chunk = this.#bufferBytes(chunk);\n }\n const lines = this.#tokenizeChunk(\n chunk.subarray(0, end),\n this.#tail + this.#pendingSurrogate\n );\n this.#tail = '';\n this.#pendingSurrogate = '';\n this.#pendingByteLength = 0;\n if (end < chunk.length) this.#bufferBytes(chunk.subarray(end));\n lines.pop(); // The trailing empty line belongs to the next chunk.\n return lines;\n }\n if (this.#pendingByteLength > 0) {\n // Finish pending UTF-8 before appending text to preserve chunk order.\n chunk =\n dec.decode(this.#pendingBytes.subarray(0, this.#pendingByteLength)) +\n chunk;\n this.#pendingByteLength = 0;\n }\n chunk = this.#pendingSurrogate + chunk;\n this.#pendingSurrogate = '';\n const lastCode = chunk.charCodeAt(chunk.length - 1);\n if (lastCode >= 0xd800 && lastCode <= 0xdbff) {\n this.#pendingSurrogate = chunk.slice(-1);\n chunk = chunk.slice(0, -1);\n }\n const end = chunk.lastIndexOf('\\n') + 1;\n if (end === 0) {\n this.#tail += chunk;\n return [];\n }\n const code = this.#tail + chunk.slice(0, end);\n this.#tail = chunk.slice(end);\n const lines = this.#tokenizeChunk(code);\n lines.pop(); // The trailing empty line belongs to the next chunk.\n return lines;\n }\n\n /**\n * Finish UTF-8 decoding and return the remaining lines.\n * A trailing line terminator produces a final empty line, as in\n * `codeToTokens`.\n */\n end(): ThemedToken[][] {\n if (this.#hl == null) throw new Error('stream has ended');\n try {\n if (this.#pendingByteLength > 0) {\n return this.#tokenizeChunk(\n this.#pendingBytes.subarray(0, this.#pendingByteLength),\n this.#tail + this.#pendingSurrogate\n );\n }\n this.#tail += this.#pendingSurrogate;\n this.#pendingSurrogate = '';\n if (this.#tail === '') return [[]];\n const code = this.#tail;\n this.#tail = '';\n return this.#tokenizeChunk(code);\n } finally {\n this.dispose();\n }\n }\n\n /** Release the Wasm instance and discard buffered input; later calls throw. */\n dispose(): void {\n const hl = this.#hl;\n if (hl == null) return;\n // Do not retain unusually large stream buffers in the single pool slot.\n if (\n pooledStreamHighlighter == null &&\n hl.wasmModule === wasmModule &&\n hl.pageN <= 16\n ) {\n pooledStreamHighlighter = hl;\n }\n this.#hl = undefined;\n this.#pendingBytes = new Uint8Array(0);\n this.#pendingByteLength = 0;\n this.#pendingSurrogate = '';\n this.#tail = '';\n }\n\n /** Own unfinished bytes so callers can reuse chunks; grow geometrically for long lines. */\n #bufferBytes(chunk: Uint8Array): Uint8Array {\n const length = this.#pendingByteLength + chunk.length;\n if (length > this.#pendingBytes.length) {\n const buffer = new Uint8Array(\n Math.max(length, this.#pendingBytes.length * 2, 1024)\n );\n buffer.set(this.#pendingBytes.subarray(0, this.#pendingByteLength));\n this.#pendingBytes = buffer;\n }\n this.#pendingBytes.set(chunk, this.#pendingByteLength);\n this.#pendingByteLength = length;\n return this.#pendingBytes.subarray(0, length);\n }\n\n /** Tokenize completed input; a string prefix preserves original UTF-16 when mixing inputs. */\n #tokenizeChunk(input: string | Uint8Array, prefix = ''): ThemedToken[][] {\n const hl = this.#hl;\n if (hl == null) throw new Error('stream has ended');\n let code = toCode(input);\n // Replacement characters must reach Wasm as valid UTF-8 for matching offsets.\n if (typeof input !== 'string' && code.includes('\\ufffd')) input = code;\n code = prefix + code;\n let byteLen = prefix === '' ? 0 : hl.writeInput(prefix);\n byteLen += hl.writeInput(input, byteLen);\n const recs = hl.tokenizeLineRecords(\n this.#langId,\n byteLen,\n !this.#streamStarted\n );\n this.#streamStarted = true;\n const lines = lineRecordsToTokens(\n code,\n recs,\n this.#themes,\n this.#cssVariablePrefix,\n this.#maxLineLength,\n this.#streamChar\n );\n this.#streamChar += code.length;\n return lines;\n }\n}\n", "import {\n assertWasmModule,\n HighlightsHighlighter,\n langIdOf,\n} from './highlighter';\nimport type { CodeToTokensOptions, ThemedToken } from './index';\nimport { defaultCssVariablePrefix } from './theme';\nimport tokenTypes from './token-types';\nimport type { ResolvedTheme } from './tokens';\nimport { rangeToToken, resolveOptionThemes, standardTypes } from './tokens';\n\nconst enc = new TextEncoder();\n\n/** `$Token` names in slot order; a raw record's token id indexes this list. */\nexport const tokenNames: readonly string[] = tokenTypes;\n\n/** A zero-based UTF-16 position; `character` may equal the line length. */\nexport interface Position {\n readonly line: number;\n readonly character: number;\n}\n\n/** One replacement of an end-exclusive range in the pre-edit document. */\nexport interface TextEdit {\n readonly range: {\n readonly start: Position;\n readonly end: Position;\n };\n readonly newText: string;\n}\n\n/** One coalesced half-open span of changed or re-tokenized lines. */\nexport interface LiveLineChange {\n readonly oldStartLine: number;\n readonly oldEndLine: number;\n readonly newStartLine: number;\n readonly newEndLine: number;\n}\n\n/**\n * One styled run: its UTF-16 start column, CSS color, and text.\n * Unstyled runs use the theme foreground, or `''` if none is defined.\n * Colors come from the first resolved theme. Use `getLineTokens` for\n * font styles or custom properties for multiple themes.\n */\nexport type HighlightedToken = [char: number, fg: string, text: string];\n\n/**\n * A half-open `[startLine, endLine)` range in post-edit line numbers.\n * Synchronous tokenization targets this range with a one-millisecond\n * budget. `onDeferTokenize` receives unfinished lines later.\n */\nexport interface LiveUpdateOptions {\n readonly renderRange?: readonly [startLine: number, endLine: number];\n}\n\n/** Constructor options: tokenization options plus the initial document. */\nexport type LiveTokenizerOptions = CodeToTokensOptions & {\n /** The initial document; defaults to the empty document. */\n code?: string;\n /**\n * Receive completed lines outside `renderRange` during the update,\n * then all deferred lines in background batches. Deferred lines can\n * include lines in `renderRange`. Line numbers refer to the document\n * at delivery time.\n *\n * With a constructor `renderRange`, this callback can run before the\n * instance is assigned to a variable.\n */\n onDeferTokenize?: (lines: Map<number, HighlightedToken[]>) => void;\n /**\n * Request initial tokenization of this range within the time budget.\n * `onDeferTokenize` receives unfinished lines later. The callback can\n * first run inside the constructor.\n */\n renderRange?: readonly [startLine: number, endLine: number];\n};\n\n/** The result of a successful update batch. */\nexport interface LiveTokenizerUpdate {\n readonly revision: number;\n readonly previousLineCount: number;\n readonly lineCount: number;\n readonly lineChanges: readonly LiveLineChange[];\n /**\n * Lines completed within `renderRange` during synchronous tokenization,\n * keyed by post-edit line number. Empty if the update has no `renderRange`.\n * `onDeferTokenize` receives unfinished lines later. Use `flush` to\n * complete them synchronously.\n */\n readonly lines: Map<number, HighlightedToken[]>;\n}\n\n/**\n * A borrowed view of one line's token records.\n * `packed24` stores one `(tokenId << 24) | endUtf16` word per token.\n * `wide32` stores `[endUtf16, tokenId]` pairs when line ends exceed 24 bits.\n * Each record starts at the previous end, or 0 for the first record.\n *\n * The next successful edit, reset, disposal, or deferred tokenization\n * slice invalidates this view. Use `.slice()` to keep a copy.\n */\nexport interface LiveTokenRecords {\n readonly revision: number;\n readonly format: 'packed24' | 'wide32';\n readonly data: Uint32Array;\n}\n\n/** The live-tokenizer entry points exported by the Wasm module. */\ninterface LiveWasmExports {\n liveStage(len: number): number;\n liveInitDoc(ptr: number, len: number, lang: number): void;\n liveApplyEdits(ptr: number, undelivered?: number): void;\n liveRun(budget: number, endLine?: number, work?: number): number;\n liveLineCount(): number;\n liveLineLen(i: number): number;\n liveLineByteLen(i: number): number;\n liveLineTextPtr(i: number): number;\n liveLineFlags(i: number): number;\n liveLineTokPtr(i: number): number;\n liveLineTokCount(i: number): number;\n liveChangesPtr(): number;\n liveStats(k: number): number;\n}\n\n/** A validated, normalized edit in ascending document order. */\ninterface NormalizedEdit {\n sl: number;\n sc: number;\n el: number;\n ec: number;\n newText: string;\n}\n\nconst fatalDecoder = new TextDecoder('utf-8', { fatal: true, ignoreBOM: true });\n\nconst loneSurrogateRe =\n /[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:^|[^\\uD800-\\uDBFF])[\\uDC00-\\uDFFF]/;\n\n/** Encode preserving lone surrogates as 3-byte WTF-8 sequences. */\nfunction encodeLiveText(s: string): Uint8Array {\n if (!loneSurrogateRe.test(s)) return enc.encode(s);\n const out = new Uint8Array(s.length * 3);\n let w = 0;\n for (let i = 0; i < s.length; i++) {\n const c = s.charCodeAt(i);\n if (c < 0x80) {\n out[w++] = c;\n } else if (c < 0x800) {\n out[w++] = 0xc0 | (c >> 6);\n out[w++] = 0x80 | (c & 63);\n } else {\n if (c >= 0xd800 && c < 0xdc00) {\n const lo = s.charCodeAt(i + 1);\n if (lo >= 0xdc00 && lo < 0xe000) {\n const cp = 0x10000 + ((c - 0xd800) << 10) + (lo - 0xdc00);\n out[w++] = 0xf0 | (cp >> 18);\n out[w++] = 0x80 | ((cp >> 12) & 63);\n out[w++] = 0x80 | ((cp >> 6) & 63);\n out[w++] = 0x80 | (cp & 63);\n i++;\n continue;\n }\n }\n out[w++] = 0xe0 | (c >> 12);\n out[w++] = 0x80 | ((c >> 6) & 63);\n out[w++] = 0x80 | (c & 63);\n }\n }\n return out.subarray(0, w);\n}\n\n/** Decode WTF-8 bytes, restoring lone surrogates the fatal decoder rejects. */\nfunction decodeWtf8(bytes: Uint8Array, length: number): string {\n const units = new Array<number>(length);\n let written = 0;\n let i = 0;\n while (i < bytes.length) {\n const b = bytes[i];\n if (b < 0x80) {\n units[written++] = b;\n i += 1;\n } else if (b < 0xe0) {\n units[written++] = ((b & 31) << 6) | (bytes[i + 1] & 63);\n i += 2;\n } else if (b < 0xf0) {\n units[written++] =\n ((b & 15) << 12) | ((bytes[i + 1] & 63) << 6) | (bytes[i + 2] & 63);\n i += 3;\n } else {\n const cp =\n ((b & 7) << 18) |\n ((bytes[i + 1] & 63) << 12) |\n ((bytes[i + 2] & 63) << 6) |\n (bytes[i + 3] & 63);\n units[written++] = 0xd800 + ((cp - 0x10000) >> 10);\n units[written++] = 0xdc00 + ((cp - 0x10000) & 0x3ff);\n i += 4;\n }\n }\n let text = '';\n for (let at = 0; at < written; at += 4096) {\n text += String.fromCharCode(\n ...units.slice(at, Math.min(at + 4096, written))\n );\n }\n return text;\n}\n\n/** Validate a half-open `[startLine, endLine)` render range option. */\nfunction checkRenderRange(\n range: readonly [number, number] | undefined\n): readonly [number, number] | undefined {\n if (range === undefined) return undefined;\n if (\n !Array.isArray(range) ||\n range.length !== 2 ||\n !Number.isInteger(range[0]) ||\n !Number.isInteger(range[1]) ||\n range[0] < 0 ||\n range[1] < range[0]\n ) {\n throw new TypeError(\n 'renderRange must be [startLine, endLine] with 0 <= startLine <= endLine'\n );\n }\n return range;\n}\n\n/**\n * Ref or unref a MessagePort. Node and Bun keep the event loop active\n * while a started port is referenced. Browser ports have neither method.\n */\nfunction refPort(port: MessagePort, alive: boolean): void {\n const p = port as MessagePort & { ref?: () => void; unref?: () => void };\n if (alive) p.ref?.();\n else p.unref?.();\n}\n\n/** A line's terminator from its descriptor flags: byte-count bits 0-1\n * (0 none, 1 one byte, 2 CRLF) plus bit 4 marking a one-byte CR. */\nfunction eol(flags: number): string {\n const term = flags & 3;\n if (term === 0) return '';\n if (term === 2) return '\\r\\n';\n return (flags & 16) !== 0 ? '\\r' : '\\n';\n}\n\n/**\n * An editable document with an incremental tokenizer and its own Wasm\n * instance. Edits use UTF-16 positions and can split or join `\\r\\n`,\n * `\\n`, or lone `\\r` terminators. Lexers receive each line break as `\\n`.\n *\n * Tokenization starts at each changed region. It stops when the outgoing\n * lexer state matches the previous state. `renderRange` limits synchronous\n * work. Background batches deliver the rest through `onDeferTokenize`.\n * Pending lines keep their previous tokens until processed. Use `flush`\n * to complete them synchronously.\n */\nexport class LiveTokenizer {\n #hl: HighlightsHighlighter | undefined;\n #langId: number;\n #themes: ResolvedTheme[];\n #cssVariablePrefix: string;\n #maxLineLength: number;\n #onDeferTokenize:\n | ((lines: Map<number, HighlightedToken[]>) => void)\n | undefined;\n #revision = 0;\n // Incremented by edits, reset, flush, pause, and dispose to cancel old slices.\n #deferGeneration = 0;\n // Created on first use and closed by dispose.\n #channel: MessageChannel | undefined;\n // Keep Node/Bun alive only while slice messages are pending.\n #postedSlices = 0;\n #materializing:\n | {\n line: number;\n byte: number;\n text: string;\n record: number;\n start: number;\n tokens: HighlightedToken[];\n }\n | undefined;\n #paused = false;\n // Set while applyEdits or reset runs, including the synchronous\n // onDeferTokenize delivery inside it: a mutating call from that callback\n // would replace the change list the outer update is about to report.\n #updating = false;\n\n constructor(options: LiveTokenizerOptions) {\n this.#langId = langIdOf(options.lang);\n this.#themes = resolveOptionThemes(options);\n this.#cssVariablePrefix =\n options.cssVariablePrefix ?? defaultCssVariablePrefix;\n this.#maxLineLength = options.tokenizeMaxLineLength ?? 0;\n this.#onDeferTokenize = options.onDeferTokenize;\n const renderRange = checkRenderRange(options.renderRange);\n this.#hl = LiveTokenizer.#createStaged(options.code ?? '', this.#langId);\n this.#runSlice(this.#hl, this.#ex, renderRange);\n }\n\n /** Instantiate an isolated Wasm instance and stage `code` into its line\n * table; the caller drives tokenization. */\n static #createStaged(code: string, langId: number): HighlightsHighlighter {\n const hl = new HighlightsHighlighter(assertWasmModule());\n const ex = hl.instance.exports as unknown as LiveWasmExports;\n const bytes = encodeLiveText(code);\n const ptr = ex.liveStage(bytes.length);\n hl.bindMemory();\n hl.buffer.set(bytes, ptr);\n ex.liveInitDoc(ptr, bytes.length, langId);\n hl.bindMemory();\n return hl;\n }\n\n /** Return the active instance or throw after disposal. */\n #live(): HighlightsHighlighter {\n const hl = this.#hl;\n if (hl == null) throw new Error('tokenizer is disposed');\n return hl;\n }\n\n /** Resolve exports through the active instance so disposal releases both. */\n get #ex(): LiveWasmExports {\n return this.#live().instance.exports as unknown as LiveWasmExports;\n }\n\n /** Monotonic revision; bumps once per successful mutating batch. */\n get revision(): number {\n this.#live();\n return this.#revision;\n }\n\n /** Number of lines in the document (a trailing terminator adds one). */\n get lineCount(): number {\n this.#live();\n return this.#ex.liveLineCount();\n }\n\n /** True while deferred scanning or token materialization remains pending. */\n get pendingTokenization(): boolean {\n this.#live();\n return this.#materializing !== undefined || this.#ex.liveStats(9) !== 0;\n }\n\n /**\n * Complete pending lines before `endLine`, or all lines if it is omitted.\n * Deliver completed lines through `onDeferTokenize`. Clear any pause and\n * schedule remaining work in the background.\n */\n flush(endLine?: number): void {\n const hl = this.#live();\n if (endLine !== undefined) checkRenderRange([0, endLine]);\n const ex = this.#ex;\n this.#paused = false;\n const generation = ++this.#deferGeneration;\n const end = Math.min(endLine ?? ex.liveLineCount(), ex.liveLineCount());\n try {\n this.#workSlice(hl, ex, end, Infinity);\n } finally {\n if (\n generation === this.#deferGeneration &&\n this.#hl === hl &&\n !this.#paused &&\n this.pendingTokenization\n )\n this.#scheduleSlice(generation);\n }\n }\n\n /**\n * Pause background tokenization and keep the pending work.\n * No background batches run or deliver tokens while paused. Pending lines\n * keep their previous tokens. `resume`, `flush`, `applyEdits`, and `reset`\n * clear the pause. Edits and resets schedule their own remaining work.\n */\n pause(): void {\n this.#live();\n if (this.#paused) return;\n this.#paused = true;\n this.#deferGeneration += 1;\n }\n\n /** Resume background re-tokenization suspended by `pause`. */\n resume(): void {\n this.#live();\n if (!this.#paused) return;\n this.#paused = false;\n if (this.pendingTokenization) {\n this.#scheduleSlice(this.#deferGeneration);\n }\n }\n\n /** Release the Wasm instance and drop deferred work; later calls throw. */\n dispose(): void {\n if (this.#hl == null) return;\n this.#deferGeneration += 1;\n this.#hl = undefined;\n this.#materializing = undefined;\n if (this.#channel !== undefined) {\n this.#channel.port1.close();\n this.#channel.port2.close();\n this.#channel = undefined;\n }\n }\n\n /** UTF-16 length of one line, excluding its terminator. */\n getLineLength(line: number): number {\n this.#live();\n const ex = this.#ex;\n this.#checkLine(line, ex);\n return ex.liveLineLen(line);\n }\n\n /** One line's text, excluding its terminator. */\n getLineText(line: number): string {\n const hl = this.#live();\n const ex = this.#ex;\n this.#checkLine(line, ex);\n return this.#lineText(hl, ex, line);\n }\n\n /** The whole document's text, reconstructing each line's terminator. */\n getText(): string {\n const hl = this.#live();\n const ex = this.#ex;\n const count = ex.liveLineCount();\n let text = '';\n for (let line = 0; line < count; line++) {\n text += this.#lineText(hl, ex, line);\n text += eol(ex.liveLineFlags(line));\n }\n return text;\n }\n\n #lineText(\n hl: HighlightsHighlighter,\n ex: LiveWasmExports,\n line: number\n ): string {\n const ptr = ex.liveLineTextPtr(line);\n const len = ex.liveLineByteLen(line);\n if (len === 0) return '';\n const bytes = hl.buffer.subarray(ptr, ptr + len);\n try {\n return fatalDecoder.decode(bytes);\n } catch {\n return decodeWtf8(bytes, ex.liveLineLen(line));\n }\n }\n\n /**\n * Zero-copy packed records for one line. The view is invalidated by the\n * next successful edit, reset, dispose, or deferred tokenization slice.\n */\n getLineRecords(line: number): LiveTokenRecords {\n const hl = this.#live();\n const ex = this.#ex;\n this.#checkLine(line, ex);\n const n = ex.liveLineTokCount(line);\n const wide = (ex.liveLineFlags(line) & 4) !== 0;\n return {\n revision: this.#revision,\n format: wide ? 'wide32' : 'packed24',\n data: new Uint32Array(\n hl.memory.buffer,\n n === 0 ? 0 : ex.liveLineTokPtr(line),\n wide ? n * 2 : n\n ),\n };\n }\n\n /**\n * Return themed tokens and string, comment, and regex ranges for bracket\n * matching. All offsets are relative to the line.\n * At `tokenizeMaxLineLength`, return one token without syntax styles.\n * Raw records remain available.\n *\n * Pending lines return their previous tokens. A new line with no records\n * returns its text as one token without syntax styles.\n */\n getLineTokens(line: number): {\n tokens: ThemedToken[];\n bracketIgnoredRanges: [start: number, end: number][];\n } {\n const hl = this.#live();\n const ex = this.#ex;\n this.#checkLine(line, ex);\n const text = this.#lineText(hl, ex, line);\n const max = this.#maxLineLength;\n if (max > 0 && text.length >= max) {\n return {\n tokens: [\n rangeToToken(\n text,\n 0,\n text.length,\n 0,\n this.#themes,\n this.#cssVariablePrefix\n ),\n ],\n bracketIgnoredRanges: [],\n };\n }\n const n = ex.liveLineTokCount(line);\n const wide = (ex.liveLineFlags(line) & 4) !== 0;\n const ptr = ex.liveLineTokPtr(line);\n const data = new Uint32Array(\n hl.memory.buffer,\n n === 0 ? 0 : ptr,\n wide ? n * 2 : n\n );\n const tokens: ThemedToken[] = [];\n const bracketIgnoredRanges: [number, number][] = [];\n let start = 0;\n for (let r = 0; r < n; r++) {\n const end = wide ? data[r * 2] : data[r] & 0xffffff;\n const hli = wide ? data[r * 2 + 1] : data[r] >>> 24;\n if (end > start) {\n tokens.push(\n rangeToToken(\n text,\n start,\n end,\n hli,\n this.#themes,\n this.#cssVariablePrefix\n )\n );\n if (standardTypes[hli] !== 0) {\n const last = bracketIgnoredRanges[bracketIgnoredRanges.length - 1];\n if (last !== undefined && last[1] >= start) last[1] = end;\n else bracketIgnoredRanges.push([start, end]);\n }\n start = end;\n }\n }\n // no records does not imply an empty line: a freshly spliced line that\n // deferred work has not reached yet still has text to show unstyled\n if (tokens.length === 0 && text.length > 0) {\n tokens.push(\n rangeToToken(\n text,\n 0,\n text.length,\n 0,\n this.#themes,\n this.#cssVariablePrefix\n )\n );\n }\n return { tokens, bracketIgnoredRanges };\n }\n\n /**\n * Validate and apply edits to the current document. Without `renderRange`,\n * tokenization completes synchronously and `lines` is empty.\n * With `renderRange`, return lines completed within its time budget.\n * `onDeferTokenize` receives all remaining lines later.\n *\n * Remap pending work through the edits without waiting for completion.\n * Calling `applyEdits` or `reset` from this update's synchronous callback\n * throws. Reads, `pause`, and `flush` are allowed.\n */\n applyEdits(\n edits: readonly TextEdit[],\n options?: LiveUpdateOptions\n ): LiveTokenizerUpdate {\n const hl = this.#live();\n const ex = this.#ex;\n this.#checkNotUpdating();\n const renderRange = checkRenderRange(options?.renderRange);\n const batch = this.#validate(edits, hl, ex);\n const previousLineCount = ex.liveLineCount();\n if (batch.length === 0) {\n this.resume();\n return {\n revision: this.#revision,\n previousLineCount,\n lineCount: previousLineCount,\n lineChanges: [],\n lines: new Map(),\n };\n }\n // scheduled slices are superseded: the native splice absorbs the pending\n // dirty ranges into this batch and #runSlice restarts the background tail\n this.#deferGeneration += 1;\n this.#paused = false;\n this.#updating = true;\n try {\n this.#stageEdits(hl, ex, batch);\n this.#revision += 1;\n const lines = this.#runSlice(hl, ex, renderRange);\n return this.#readUpdate(hl, ex, previousLineCount, lines);\n } finally {\n this.#updating = false;\n }\n }\n\n /** Replace the document in a fresh Wasm instance and swap it in. */\n reset(code: string, options?: LiveUpdateOptions): LiveTokenizerUpdate {\n this.#live();\n this.#checkNotUpdating();\n const renderRange = checkRenderRange(options?.renderRange);\n if (typeof code !== 'string') throw new TypeError('code must be a string');\n // pending tokens describe the outgoing document; drop them, don't settle\n this.#deferGeneration += 1;\n this.#paused = false;\n const previousLineCount = this.#ex.liveLineCount();\n this.#materializing = undefined;\n const hl = LiveTokenizer.#createStaged(code, this.#langId);\n this.#hl = hl;\n const ex = this.#ex;\n this.#revision += 1;\n this.#updating = true;\n let lines: Map<number, HighlightedToken[]>;\n try {\n lines = this.#runSlice(hl, ex, renderRange);\n } finally {\n this.#updating = false;\n }\n const lineCount = ex.liveLineCount();\n return {\n revision: this.#revision,\n previousLineCount,\n lineCount,\n lineChanges: [\n {\n oldStartLine: 0,\n oldEndLine: previousLineCount,\n newStartLine: 0,\n newEndLine: lineCount,\n },\n ],\n lines,\n };\n }\n\n /** Reject a mutating call made from inside a synchronous update. */\n #checkNotUpdating(): void {\n if (this.#updating) {\n throw new Error(\n 'applyEdits and reset cannot be called from onDeferTokenize during an update; use pause, flush, or the reads instead'\n );\n }\n }\n\n #runSlice(\n hl: HighlightsHighlighter,\n ex: LiveWasmExports,\n renderRange: readonly [number, number] | undefined\n ): Map<number, HighlightedToken[]> {\n if (renderRange === undefined) {\n ex.liveRun(0x7fffffff);\n hl.bindMemory();\n return new Map();\n }\n const generation = this.#deferGeneration;\n const end =\n renderRange[0] >= ex.liveLineCount()\n ? 0\n : Math.min(renderRange[1], ex.liveLineCount());\n try {\n return this.#workSlice(hl, ex, end, performance.now() + 1, renderRange);\n } finally {\n if (\n generation === this.#deferGeneration &&\n this.#hl === hl &&\n !this.#paused &&\n this.pendingTokenization\n )\n this.#scheduleSlice(generation);\n }\n }\n\n /**\n * Schedule a background batch through MessageChannel to avoid delays\n * from nested timers. Use a timer if MessageChannel is unavailable.\n */\n #scheduleSlice(generation: number): void {\n if (typeof MessageChannel === 'undefined') {\n setTimeout(() => this.#deferSlice(generation), 0);\n return;\n }\n if (this.#channel === undefined) {\n const created = new MessageChannel();\n created.port1.addEventListener('message', (event) => {\n const posted = (event as MessageEvent<unknown>).data;\n this.#postedSlices -= 1;\n try {\n if (typeof posted === 'number') this.#deferSlice(posted);\n } finally {\n if (this.#postedSlices === 0) refPort(created.port1, false);\n }\n });\n created.port1.start();\n this.#channel = created;\n }\n if (this.#postedSlices === 0) refPort(this.#channel.port1, true);\n this.#postedSlices += 1;\n this.#channel.port2.postMessage(generation);\n }\n\n #deferSlice(generation: number): void {\n if (\n generation !== this.#deferGeneration ||\n this.#hl == null ||\n this.#paused\n )\n return;\n const hl = this.#hl;\n try {\n this.#workSlice(\n hl,\n this.#ex,\n this.#ex.liveLineCount(),\n performance.now() + 1\n );\n } finally {\n if (\n generation === this.#deferGeneration &&\n this.#hl === hl &&\n !this.#paused &&\n this.pendingTokenization\n )\n this.#scheduleSlice(generation);\n }\n }\n\n #workSlice(\n hl: HighlightsHighlighter,\n ex: LiveWasmExports,\n endLine: number,\n deadline: number,\n renderRange?: readonly [number, number]\n ): Map<number, HighlightedToken[]> {\n const generation = this.#deferGeneration;\n const lines = new Map<number, HighlightedToken[]>();\n let deferred = new Map<number, HighlightedToken[]>();\n const { styles, fg } = this.#themes[0];\n while (\n generation === this.#deferGeneration &&\n performance.now() < deadline\n ) {\n let current = this.#materializing;\n if (current === undefined) {\n const line = ex.liveStats(10);\n if (ex.liveStats(9) === 0 || line >= endLine) break;\n ex.liveRun(1, endLine, deadline === Infinity ? 0 : 4096);\n hl.bindMemory();\n if (ex.liveStats(10) === line) continue;\n if (\n this.#onDeferTokenize === undefined &&\n (renderRange === undefined ||\n line < renderRange[0] ||\n line >= renderRange[1])\n )\n continue;\n current = { line, byte: 0, text: '', record: 0, start: 0, tokens: [] };\n this.#materializing = current;\n if (performance.now() >= deadline) break;\n }\n const { line } = current;\n if (line >= endLine) break;\n const byteLength = ex.liveLineByteLen(line);\n if (current.byte < byteLength) {\n const ptr = ex.liveLineTextPtr(line);\n let to = Math.min(byteLength, current.byte + 65536);\n while (to < byteLength && (hl.buffer[ptr + to] & 0xc0) === 0x80) to++;\n const bytes = hl.buffer.subarray(ptr + current.byte, ptr + to);\n try {\n current.text += fatalDecoder.decode(bytes);\n } catch {\n current.text += decodeWtf8(bytes, bytes.length);\n }\n current.byte = to;\n if (to < byteLength || performance.now() >= deadline) continue;\n }\n const max = this.#maxLineLength;\n const count =\n max > 0 && ex.liveLineLen(line) >= max ? 0 : ex.liveLineTokCount(line);\n const wide = (ex.liveLineFlags(line) & 4) !== 0;\n const data = new Uint32Array(\n hl.memory.buffer,\n count === 0 ? 0 : ex.liveLineTokPtr(line),\n wide ? count * 2 : count\n );\n const stop = Math.min(count, current.record + 256);\n for (; current.record < stop; current.record++) {\n const r = current.record;\n const end = wide ? data[r * 2] : data[r] & 0xffffff;\n const hli = wide ? data[r * 2 + 1] : data[r] >>> 24;\n if (end > current.start) {\n current.tokens.push([\n current.start,\n styles[hli]?.color ?? fg ?? '',\n current.text.slice(current.start, end),\n ]);\n current.start = end;\n }\n }\n if (current.record < count) continue;\n if (current.tokens.length === 0)\n current.tokens.push([\n 0,\n current.text.length > 0 ? (fg ?? '') : '',\n current.text,\n ]);\n if (\n renderRange !== undefined &&\n line >= renderRange[0] &&\n line < renderRange[1]\n )\n lines.set(line, current.tokens);\n else deferred.set(line, current.tokens);\n this.#materializing = undefined;\n if (renderRange === undefined && deferred.size >= 16) {\n const ready = deferred;\n deferred = new Map();\n this.#onDeferTokenize?.(ready);\n }\n }\n if (deferred.size > 0) this.#onDeferTokenize?.(deferred);\n return lines;\n }\n\n /** Read the coalesced change list the native driver produced. */\n #readUpdate(\n hl: HighlightsHighlighter,\n ex: LiveWasmExports,\n previousLineCount: number,\n lines: Map<number, HighlightedToken[]>\n ): LiveTokenizerUpdate {\n const base = ex.liveChangesPtr();\n const count = hl.dv.getUint32(base, true);\n const lineChanges: LiveLineChange[] = [];\n for (let i = 0; i < count; i++) {\n const at = base + 4 + i * 16;\n lineChanges.push({\n oldStartLine: hl.dv.getUint32(at, true),\n oldEndLine: hl.dv.getUint32(at + 4, true),\n newStartLine: hl.dv.getUint32(at + 8, true),\n newEndLine: hl.dv.getUint32(at + 12, true),\n });\n }\n return {\n revision: this.#revision,\n previousLineCount,\n lineCount: ex.liveLineCount(),\n lineChanges,\n lines,\n };\n }\n\n #checkLine(line: number, ex: LiveWasmExports): void {\n if (!Number.isInteger(line) || line < 0 || line >= ex.liveLineCount()) {\n throw new RangeError(`line ${line} out of range`);\n }\n }\n\n /**\n * Validate all edit shapes, bounds, ordering, and overlaps before changing\n * the document. Return edits in ascending order. Remove replacements\n * whose bytes match the existing text.\n */\n #validate(\n edits: readonly TextEdit[],\n hl: HighlightsHighlighter,\n ex: LiveWasmExports\n ): NormalizedEdit[] {\n if (!Array.isArray(edits)) throw new TypeError('edits must be an array');\n const lineCount = ex.liveLineCount();\n const items: NormalizedEdit[] = [];\n for (const edit of edits as readonly TextEdit[]) {\n if (edit == null || typeof edit !== 'object' || edit.range == null) {\n throw new TypeError('each edit needs a range and newText');\n }\n const { start, end } = edit.range;\n const newText = edit.newText;\n if (typeof newText !== 'string') {\n throw new TypeError('newText must be a string');\n }\n for (const pos of [start, end]) {\n if (\n pos == null ||\n !Number.isInteger(pos.line) ||\n !Number.isInteger(pos.character) ||\n pos.line < 0 ||\n pos.character < 0\n ) {\n throw new TypeError('positions must be non-negative integers');\n }\n if (pos.line >= lineCount) {\n throw new RangeError(`line ${pos.line} out of range`);\n }\n if (pos.character > ex.liveLineLen(pos.line)) {\n throw new RangeError(\n `character ${pos.character} past the end of line ${pos.line}`\n );\n }\n }\n if (\n start.line > end.line ||\n (start.line === end.line && start.character > end.character)\n ) {\n throw new RangeError('range start is after its end');\n }\n items.push({\n sl: start.line,\n sc: start.character,\n el: end.line,\n ec: end.character,\n newText,\n });\n }\n items.sort((a, b) => {\n if (a.sl !== b.sl) return a.sl - b.sl;\n if (a.sc !== b.sc) return a.sc - b.sc;\n if (a.el !== b.el) return a.el - b.el;\n return a.ec - b.ec;\n });\n for (let i = 1; i < items.length; i++) {\n const prev = items[i - 1];\n const cur = items[i];\n if (prev.el > cur.sl || (prev.el === cur.sl && prev.ec > cur.sc)) {\n throw new RangeError('edit ranges overlap');\n }\n // two inserts at one position have no defined order; reject them\n if (\n prev.sl === cur.sl &&\n prev.sc === cur.sc &&\n prev.el === cur.el &&\n prev.ec === cur.ec &&\n prev.sl === prev.el &&\n prev.sc === prev.ec\n ) {\n throw new RangeError('edit ranges overlap');\n }\n }\n // Edits sharing a line collapse into one splice, preserving untouched\n // text between them. Reuse decoded text for no-op checks and gaps.\n let lastLine = -1;\n let lastText = '';\n const readLine = (line: number) => {\n if (line !== lastLine) {\n lastText = this.#lineText(hl, ex, line);\n lastLine = line;\n }\n return lastText;\n };\n const merged: NormalizedEdit[] = [];\n for (const e of items) {\n if (this.#isNoopEdit(e, ex, readLine)) continue;\n const prev = merged[merged.length - 1];\n if (prev !== undefined && prev.el === e.sl) {\n prev.newText += readLine(e.sl).slice(prev.ec, e.sc) + e.newText;\n prev.el = e.el;\n prev.ec = e.ec;\n } else {\n merged.push(e);\n }\n }\n return merged;\n }\n\n /** True when the replacement text equals the range's current text. */\n #isNoopEdit(\n e: NormalizedEdit,\n ex: LiveWasmExports,\n readLine: (line: number) => string\n ): boolean {\n let rangeLen = e.ec - e.sc;\n for (let line = e.sl; line < e.el; line++) {\n rangeLen += ex.liveLineLen(line) + (ex.liveLineFlags(line) & 3);\n if (rangeLen > e.newText.length) return false;\n }\n if (rangeLen !== e.newText.length) return false;\n if (rangeLen === 0) return true;\n let offset = 0;\n for (let line = e.sl; line <= e.el; line++) {\n const lineText = readLine(line);\n const text = lineText.slice(\n line === e.sl ? e.sc : 0,\n line === e.el ? e.ec : lineText.length\n );\n if (!e.newText.startsWith(text, offset)) return false;\n offset += text.length;\n if (line < e.el) {\n const terminator = eol(ex.liveLineFlags(line));\n if (!e.newText.startsWith(terminator, offset)) return false;\n offset += terminator.length;\n }\n }\n return true;\n }\n\n /** Encode and copy the batch into a staged block, then splice natively. */\n #stageEdits(\n hl: HighlightsHighlighter,\n ex: LiveWasmExports,\n batch: NormalizedEdit[]\n ): void {\n const encoded = batch.map((e) => encodeLiveText(e.newText));\n let total = 4 + batch.length * 24;\n for (const bytes of encoded) total += bytes.length;\n const ptr = ex.liveStage(total);\n hl.bindMemory();\n let textOff = 4 + batch.length * 24;\n for (let i = 0; i < batch.length; i++) {\n const at = ptr + 4 + i * 24;\n const e = batch[i];\n hl.dv.setUint32(at, e.sl, true);\n hl.dv.setUint32(at + 4, e.sc, true);\n hl.dv.setUint32(at + 8, e.el, true);\n hl.dv.setUint32(at + 12, e.ec, true);\n hl.dv.setUint32(at + 16, textOff, true);\n hl.dv.setUint32(at + 20, encoded[i].length, true);\n hl.buffer.set(encoded[i], ptr + textOff);\n textOff += encoded[i].length;\n }\n hl.dv.setUint32(ptr, batch.length, true);\n ex.liveApplyEdits(ptr, (this.#materializing?.line ?? -1) + 1);\n this.#materializing = undefined;\n hl.bindMemory();\n }\n}\n", "const s = atob(\"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QAAAAAAAQAAAEKwQpABBnTELAQQAQbAxCxAEEwgEABMTAAAAExIEEgATAEHMMQsEEhISAgBB7DELIwgEEQAAAAgAAAgIAAAAAAAAAAgAAAAIAAgAAAAAAAAAEwQTAEHAAwvbAZsCAJsCCZsCDagCBwADBwADCwoDCAoDEB8DC70CCt0CCbYCCPECCPECDyoDCCoDEz0DD0wDB0wDD2sDE34DDp4DEFoDBa4CCRkDBqYDCK4DCrsDB8IDB8kDCMkDEeQDC+QDE+QDGAMEFxoEFRoEGjQEGU0EF2QEEnUEE8YCCMYCDtMCC+UCBuUCDYgEDJQEDpQEFYsDA4sDC6kEB2MDCLAEDLwEBZIDBJIDDMEECtkECNkEEusEELcDBPsEBNcDDV4DCfsDCMoED/4EEQ8FChkFDicFBy4FCjgFCgBBmwULpwVhdHRyaWJ1dGUtanN4Ym9vbGVhbmFtZXNwYWNlbWJlZGRlZGlmZi1taW51c2VsZWN0b3ItY2xhc3NlbGVjdG9yLWlkaWZmLXBsdXN0cmluZy1lc2NhcGVtcGhhc2lzLXN0cm9uZ2NvbW1lbnQtZG9jb25zdGFudC1idWlsdGludW1iZXJjb25zdHJ1Y3RvcmZ1bmN0aW9uLWRlZmluaXRpb25mdW5jdGlvbi1tZXRob2RrZXl3b3JkLWNvbnRyb2xhYmVsaW5rLXRleHQtanN4a2V5d29yZC1kZWNsYXJhdGlvbmtleXdvcmQtaW1wb3J0YWctZG9jdHlwZS1idWlsdGlua2V5d29yZC1vcGVyYXRvcnByZWRpY3RpdmVudW1wcmVwcm9jcHJpbWFyeXByb3BlcnR5LWpzb24ta2V5d29yZC1qc2RvY3B1bmN0dWF0aW9uLWJyYWNrZXQtaHRtbGluay11cmlwdW5jdHVhdGlvbi1icmFja2V0LWpzeHB1bmN0dWF0aW9uLWRlbGltaXRlci1odG1scHVuY3R1YXRpb24tZGVsaW1pdGVyLWpzeHB1bmN0dWF0aW9uLWxpc3QtbWFya2VycHVuY3R1YXRpb24tbWFya3VwdW5jdHVhdGlvbi1zcGVjaWFsc3RyaW5nLXJlZ2V4c3RyaW5nLXNwZWNpYWwtc3ltYm9sdGFnLWpzeHRleHQtbGl0ZXJhbHRpdGxldHlwZS1jbGFzc2VsZWN0b3ItcHNldWRvdmFyaWFibGUtcGFyYW1ldGVydmFyaWFibGUtc3BlY2lhbGhpbnRhZy1jb21wb25lbnQtanN4dHlwZS1qc2RvY3ZhcmlhYmxlLWpzZG9jdmFyaWFudGJhY2tncm91bmRmb3JlZ3JvdW5kAEGQNwuWATAxMjM0NTY3ODlhYmNkZWY8cHJlIGNsYXNzPSJoaWdobGlnaHRzIiBzdHlsZT0iPHNwYW4gc3R5bGU9ImNvbG9yOmJhY2tncm91bmQtY29sb3I6O2ZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtd2VpZ2h0OnZhcigiPjxjb2RlPjwvY29kZT48L3ByZT5saWdodC1kYXJrKABBwN0BC/g3aGludF9ub3JtYWxfcm91Z2huZXNzX3RleHR1cmVpbnRlcnByZXRfY2FzdGF0aWNfYXNzZXJ0ZXJtaW5hdGVJbnZvY2F0aW9uYnVpbGRlc3RydWN0dXJpbmctYmluZGluZ2xvYmFsbHljb2hlcmVudHJ5cG9pbnRlcmFjdGl2ZXJiYXRpbXBsZW1lbnRhdGlvbmV3YXlhY2NlbGVyYXRpb25TdHJ1Y3R1cmVFWFRFWFRVUkVfUElYRUxfU0laRXh0UmVzb3VyY2VfY29sb3JkZXJieXRlYXJyYXlQYXlsb2FkSW5FWFRyYW5zZm9ybTJEZWNsYXJlTWF0aE9wZXJhdG9yZWxzZXdoZXJlbmV3ZW52aXJvbm1lbnRlcm1pbmF0ZVJheU5WRVJTSU9OX0dSRUFURVJfRVFVQUxCRURPYmplY3R5cGVvZl91bnF1YWxpZmllZGl0YWJsZXNzdG9yZWRvY3VtZW50Y2xhc3NfbmFtZXNwYWNlbnRyb2lkZWZvdmVycmlkYWJsZXQtdmFsdWVzYWNvbXBhdGliaWxpdHlfYWxpYXNfbWV0aG9kc2FtcGxlcl9jb21wYXJpc29uZW9mZnNldG9maWx0ZXJfbmVhcmVzdF9taXBtYXBwaW5ncm91cF91bmlmb3Jtc3RvcmVxdWlyZV9yZWxhdGl2ZWN0b3JpZ2luY2x1ZGVfZGlyZWN0b3JpZXNoYWRlclJlY29yZEVYVFJBTlNGT1JNT0RFTF9OT1JNQUxfTUFUUklYaGludF9kZWZhdWx0X3RyYW5zcGFyZW50aHJlYWRfbG9jYWxsYWJsZURhdGFJbkVYVEFOR0VOVEFSR0VURVNUUkdSRUFURVJlcXVpcmVQYWNrYWdldGF0dHJpYnV0ZWNobmlxdWVyeUlOVl9QUk9KRUNUSU9OX01BVFJJWGhpbnRfcm91Z2huZXNzX25vcm1hbGxvY2F0YWJsZW5ndGhyZWFkbG9jYWxsYWJsZURhdGFJbk5WRVJTSU9OX0xFU1NfRVFVQUxQSEFUVEVOVUFUSU9OT1JNQUxfTUFQX0RFUFRIaWdub3JlSW50ZXJzZWN0aW9uRVhUUlVFTUlTU0lPTm90SW1wbGVtZW50ZWRpdGlvbnVsbF91bnNwZWNpZmllZGVmaW5lLXN5bnRheC1ydWxlc2F2ZS1leGN1cnNpb25vaW50ZXJwb2xhdGlvbnVsbF9yZXNldHRhYmxldHJlY3Vyc2l2ZXJpZnlfX3RocmVhZGZlbmNlX3N5c3RlbXBsYXRlaW5pdGlhbGl6YXRpb25vcGVyc3BlY3RpdmVuZHN1YnJvdXRpbmV4dGNhc2VsZmRlc3RydWN0b3JheVBheWxvYWRJbk5WRVJTSU9OX0VRVUFMSUdIVF9FTkVSR1lFU0NSRUVOX1BJWEVMX1NJWkVsbGlwc2lzdWJwYXNzSW5wdXRzaGFkZXJSZWNvcmROVklFV1BPUlRfU0laRVhJU1RTUEVDVUxBUl9MSUdIVF9DT0xPUk9VR0hORVNTdWJSZXNvdXJjZXF1aXZhbGVuY2VuZGludGVyZmFjZXhwZXJpbWVudGFsbG9jYXRlZGVmaW5lX21ldGhvZGlzcGludGVyZmFjZXh0X3Jlc291cmNlc3RyaW5naWZ5ZmlsdGVyX2xpbmVhcl9taXBtYXBwZW5kZnVuY3Rpb25vdGNvbnRhaW5zdGFuY2V0eXBlY2FzZWxlY3RvcmVwZWF0X2Rpc2FibGVhdmVudW1lcmF0aW9uYXRpdmV1aW50MTI4aWdub3JlSW50ZXJzZWN0aW9uTlZFTE9DSVRZX190aHJlYWRmZW5jZV9ibG9ja2hhc2hhZGVyX3R5cGVhbGlhc3luY2hyb25vdXN1YnBhc3NJbnB1dGRhdGV0aW1lbW9yeXZpZXdpdGgtY3VycmVudC1idWZmZXJyb3JsZXZlbGVtZW50YWxsb3d6ZXJvd19tYWpvcmV0dXJuZGF0YWNvcHlfX3Vuc2FmZV91bnJldGFpbmVkZWZleGNlcHRpb25vZGVmYXVsdGRlZmluZS1tYWNyb3VuZGVmaW5lZGVmaW50ZXJmYWNlbmRmb3JlYWNoX3JldHVybmRhdGFzaXplb2ZldGNoVGFyYmFsbGlua3NlY3Rpb25vbmF0b21pY191aW50OF90ZXJyYWZvcm1hdGNoZXNhbXBsZXJfc3RhdGV4dGNpdGVwc2JvdW5kcGFyYW1ldGVyc3Vic3Vic2VjdGlvbm9zdXNwZW5kcHJvZ3JhbXVsdGlwbGUtdmFsdWUtYmluZGV4ZWRlZnBhcmFtZXRlcnJkZWZlcnJlZGVsZWdhdGVjYWxsYWJsZURhdGFFWFRydWVudW1lcmF0b3JheVBheWxvYWRFWFR5cGVyc2lzdGVudGhyZWFkSWR4b3JfZXFuYXJyYXlQYXlsb2FkTlZlcmJhdGltcGxlbWVudHN1Yl9yZXNvdXJjZXh0ZW5zaW9uc3VicGFyYWdyYXBoaW50X3NjcmVlbl90ZXh0dXJlcGVhdF9lbmFibGV0Zm5hbWVsaXN0YXRpY19jYXN0YWNrYWxsb2NhbGxhYmxlRGF0YU5WYXJpYW50aHJlYWR2YXJhcmdzdWJzY3JpcHRpb25vZXhjZXB0cmFuc2llbnRleHRmaWxlcHJpdmF0ZXh0YmZsb2F0MTZfdG9TdHJpbmdOYW1lZGl1bXByb3ZpZGVjb21tYW5kYWxzb3J0ZWR5bmFtaWNfY2FzdGF0aWNjYWxsZGF0YWNvcHloaW50X2RlZmF1bHRfYmxhY2tlY2NhazI1NmhpbnRfZGVmYXVsdF93aGl0ZXJhYmxlcXVhdGlvbm9pbmxpbmVzY3JpcHRyYXZlcnNlcXVlbmNlY3JlY292ZXJsb2FkaW5nZF9yZXNvdXJjZW5kZm9yYWxsc3RsaXN0aW5ncm91cHNoYXJlZHluYW1pY3BhcmFtc2dkX3NjZW5ld3R5cGVkZXNjZW5kaW5nYXNsZWZ0eXBlZnJvbW9kdWxlX2Z1bmN0aW9ub25sb2NhbGxkYXRhbG9hZGRfc3ViZGlyZWN0b3J5X19icmlkZ2VfcmV0YWluZWRlZmNhbGxiYWNrc3BhY2VuZG1vZHVsZW5kc2VsZWN0eXBlbmFtZXJlZmVyZW5jZW5kc3dpdGNoZWNrLXR5cGVkZWZjb25zdGFudGFnYm9keV9fYnJpZGdlX3RyYW5zZmVyYXNldGxvY2FsbGNvbnZlcnRlcmVuZXdjb21tYW5kX2VxdWFsc2xpY2VudW1lcmF0ZXh0aXRsZXZhbC13aGVuLWZpcnN0d29yZGJvb2xlYW5zaXN0cmluZ3JpZERpbW11dGFibGV4dG5hbWVvZmluYWxpemF0aW9ub3JldHVybi1mcm9tYWludGFpbmVyZXF1aXJlX29uY2VuZGJsb2NrRGltYXRjaGFyMTZfdGJ1ZmZlcmF5UXVlcnlFWFRBVW5pdGVyYXRvcmVpbnRyb2R1Y2VuZGxvY2FsaWduYXNzb2NpYXRlZGVmZGVsZWdhdGVzdG9wc2lnbmFsaWduYXRvbWljQWRkZWZwcm90b2NvbHVtbl9tYWpvcmVtb3ZlQXR0cnN5bmNocm9uaXplZGlzcGxheW1hdGhlbmRtYWNyb2xldmFyaWFudG9iamVjdHlwZXNldHRlcmVuZGVyX21vZGVhbGxvY2F0ZW5kd2hlcmVhZF93cml0ZW9ubHlfX2xhdW5jaF9ib3VuZHNfX2F1dG9yZWxlYXNpbmdsZW5kd2hpbGV2YWx0eXBlaWRlZmdlbmVyaWNvbXB0aW1lX2Zsb2F0MTI4TU9ERUxWSUVXX01BVFJJWGhpbnRfcm91Z2huZXNzX2F1dG9yZWxlYXNlcG9vbGFzdHdvcmRsaXN0cmljdGZwc3ZlcnNpb250YWJsZXhwbGljaXRldGhlcmVwZWF0YWJsZXhwb3NpbmdhdGhlcmVhZHdyaXRleHRlbmRlZGVmcGFja2FnZXR0ZXJpcGVtZDE2MGhpbnRfcm91Z2huZXNzX2JpYmxpb2dyYXBoeWRyYXRleHRlcm5hbGlnbm9maW5kX2xpYnJhcnloaW50X3JvdWdobmVzc19naXZlbmR0eXBlcm1pdHNob3J0c3RyaW5nb3RvZG9Bc3NlcnRhcmdldHJhY2tleXNwZWNpYWxpemV4cG9ydHN5bnRoZXNpemV4dGVuZHN1Ym1vZHVsZWxzZWlmLXNvbWVzc2FnZXFyZWZpbmRfcGFja2FnZW5jb2RlcHJlY2F0ZWRlcml2YXRpb25vdG1hdGNoYXB0ZXJlYWRvbmx5aGludF9yb3VnaG5lc3NfcmVhbHBhdGhpc2luc3RhbmNlb2ZpbmRfcHJvZ3JhbW9kaWZpZXJlZ2lzdGVyZXBlYXRlZGlhZ25vc3RpY29uZGl0aW9uLWNhc2Vjb25kc2FmZWNhbGxvbmdib29sb25nd29yZHNmaXhlZDMySU5TVEFOQ0VfQ1VTVE9NT0RFTF9NQVRSSVhJTlZfVklFV19NQVRSSVhfX2ZvcmNlaW5saW5lX19zeW5jdGhyZWFkc2ZpeGVkNjRoaW50X2FuaXNvdHJvcHloaXRBdHRyaWJ1dGVFWFRpbmNsdWRlZ3JhcGhpY3N0cmluZ3JlcHJvcGVydGllc2hvcnRpbnRyaW5zaWNvbmZpZ3VyYXRpb25vYWxpYXNjZW5kaW5nd2VpZ25vcmUtZXJyb3JzaW5jbHVkZV9ndWFyZGVmY3VzdG9tdWx0bGluZXZlcmVxdWlyZWRlZmlubGluZXF2b2xhdGlsZW5zdXJlcXVpcmVzdHJpY3RyYWl0dXBsZXZlbnRzbWFsbGludGVybmFsb2dpY2Fsb25naW50ZW50YWlsaWtleGlzdHNlcnZpY2V4cG9zZWFsZWRlZm1hY3JvcGVuQXJyYXlfU3RhdGljX2Fzc2VydHJhcGxhY2Vob2xkZXJpdmluZ3RyaW1wb3J0cnVlY2hvLmFkZGJpYnJlc291cmNlbHNpZi1ub3RoaW5naGl0QXR0cmlidXRlTlZlY3RvcjJ1bndpbmQtcHJvdGVjdGVkZWZtZXRob2RlZm1vZHVsZW1iZWRlZnN0cnVjdHh3aXRoLW9wZW4tZmlsZW1wdHlESUZGVVNFX0xJR0hUSVNfTkVXRVJfVEhBTkFfY2hhcmFjdGVyX1RocmVhZF9sb2NhbGFiZWxzcmV0aHJvd3NwcmludGZhbGx0aHJvdWdoYW5kbGVyLWJpbmRpbWVuc2lvbm90bGlrZW5kZG93bmNhc3RkY2FsbGFtYmRheXN0b3JhZ2VuZGlmbmRlZmNsYXNzZGVmZ3JvdXBjYXN0cmVhbXV0YXRpbmd1bmljb2Rlc3RyaW5nSVNfRElSRUNUT1JZX19jb25zdGFudF9fbWFuYWdlZF9fc2hmbF9zeW5jX2xvbmdkb3VibGUyY29tcHRpbWVfaW50MmNvbnN0X2Fzc2VydGN1ZGFTdHJlYW1fdGhhbmRsZXItY2FzZXQhaW5jbHVkZV9vbmNlbGlmZGVmZ3VhcmRpcmVjdGl2ZW1pdElOU1RBTkNFX0lEaWN0aW9uYXJ5SVNfQUJTT0xVVEVZRURJUkVTVEFSVE5BX2ludGVnZXJfSW1hZ2luYXJ5UE9JTlRfQ09PUkRFRklORURFTlNJVFljX3Vsb25nbG9uZ2NvbnN0cnVjdG9yZWNlaXZlbXBoZWFsdGhjaGVja3NjYWxhcmd1bWVudHNjaGVtYXRtdWxtb2RlY2x0eXBleGVjdWRhRXJyb3JfdGluY2x1ZGVfbGliYXJlbW9kdWxleGl0aW5jbHVkZW9ubHlpbml0aWFsaXplcmVpZmllZGVmbXVsdGluLXBhY2thZ2V4bm90bnVsbGlmeXVucmVhY2hhYmxldXNlLXBhY2thZ2VJU19TWU1MSU5LUEFUSF9FUVVBTG9hZENsYXNzZW1ibGVyZXNoYXBlUE9JTlRfU0laRU5Eb3VibGVQcm9qZWN0aW9udWxscHRyZXR1cm5zaGEyNTZRdWF0ZXJuaW9ub2NpdGVTS1lfQ09PUkRTQ1JFRU5fVVYyX19nbG9iYWxfX251bGxhYmxlX19zeW5jd2FycFNpemViYXNlTmFtZU9maWx0ZXItb3V0cmVmaW5kc3RyaW5nYnJlYWtwb2ludDRjX2xvbmdsb25nY29tcGFyYWJsZWNvbXBsZXgxMjhjb25jdXJyZW50Y29ubmVjdGlvbm9ucmVjb3JkZWZzdWJzdHJpcGFja29mZnNldGZpbmRfZmlsZWNvbnN0X2Nhc3RhcnRjb25zdHJhaW50b3RoZXJ3aXNldHFuYW1lb2ZpbmRfcGF0aGludF9yYW5nZWNvbnRpZ3VvdXNlcGFja2FnZWNvbnRpbnVpbmd1bmF0aXZlaW50d2lkZXN0cmluZ3dpdGgtc2xvdHNpbnQzMiRpbXBsaWNpdEZSQUdDT09SREVMVEFDVElWRVJURVhfTm9yZXR1cm5vdF9lcV9OdWxsYWJsZV9fYWxpZ25fX25vbm51bGxheW91dGVyZW5hbWVtYmVyZXNjdWVhZGRyc3BhY2VhZGRzdWZmaXhhbm9ueW1vdXNpbmdhbnlvcGFxdWVhdG9taWNDQVNUUkVRVUFMSUZFVElNRVRBTExJQ2FsbGFibGVhdmFpbGFibGViaXRzdHJ1Y3Rjb19yZXR1cm5vdGRpck9mcm96ZW5zZXRjb21wYW5pb251bWJlcmVzdWx0Y29tcGxleDY0Y29uc3RldmFsYW5kaXN0aW5jdGNvbnN0ZXhwcmVjaXNpb25vdGluaGVyaXRlZGVjaW1hbGF6eWNvbnN0aW5pdGNvdmFyaWFudGhpbnRfZW51bXV0YXRpb251aW50cHRyZXN1bWVpbnN0ZWFkb2ZhaWx3aXRoZWxwZXJldmVydGludmFyaWFudHBhbnNpY2hhcjhfdHBhcmVuY2l0ZXByaW1pdGl2ZXByb2NlZHVyZXdpbmRlY2xhaW1wdXJldHJ5cHVibGlzaGVkZWNsYXJlcHdpZGVjaGFyYWlzZXVuY2hlY2tlZGVmaW1wbGF0Zm9ybWRpcmVwbGFjZXdhbnRhcnJheXdoZW4tc29tZXdvcmtncm91cHRyaWdodC1pbmNsdWRlZnR5cGVCSU5PUk1BTGlzdEZ1bmN0aW9uaW50SUJBY3Rpb25vbmVJQk91dGxldEl0ZXJhYmxlTkFfcmVhbF9BbGlnbmFzc2VtYmx5Tk9URk9VTkROb2RlUGF0aGlkZGVuYW55ZXJyb3J1bmV4cG9ydFBPU0lUSU9Ob3RoaW5nX0FsaWdub2ZhbGxiYWNrX0NvbXBsZXhfR2VuZXJpY191c2hvcnRfTm9ubnVsbG9vcGVyYXRvcnBjaGFyX19ob3N0X19raW5kb2ZldGNoR2l0X19zdHJvbmdhYnNvbHV0ZWFic3RyYWN0YW55ZmF1bHRhbnlmcmFtZWJhc2VuYW1lYmxvYmhhc2hlbGxvd3BhcmFsbGVseG9yYmxvY2tJZHhidWlsdGluc2ludDY0Ynl0ZWJvb2xzc21vb3RoaWRpbmdjYXJkaW5hbGNvX2F3YWl0Y29feWllbGRlcml2ZXNieXRlc2xvYWRkcmVzc25vcm1pbnV0ZXNwbGl0Y29udGludWVjb250cmFjdGNyZXBsYWNlY3VycmVuY3ljbGVhbnl0eXBlZnJhZ21lbnRpc19jb25zdG9wdGlvbmFsb3ZlcnJpZGVmdmFyeWluZ3BhdHN1YnN0cHJlZmV0Y2hvaWNlcHJvcGVydHlwc2NtZGxldHVuc2lnbmVkaXNjYXJkb3RpbWVzdXBlcndoZW4tbm90d2lsZGNhcmRlaW5pdHdvcmtmbG93YXJuaW5nQm9vbGVhbmlsQ09NTUFOREZsb2F0MzJGbG9hdDY0SU5fTElTVFJMRVNTaWduYWxNQVRDSEVTeW1ib2xWZWN0b3IzVmVjdG9yNF9BdG9taWNfc2hvcnRfX2Jsb2NrYWJzcGF0aGlnaHBhZ2VyZWZhY3RvcnlhdHRyZGVmbi1hdXRvcmVmZWF0dXJlY2J1ZmZlcmNvbW1lbnRjb25jZXB0ZmluYWxseWZsYWxpZ25mbG9hdDMyZmxvYXQ2NGZvclNvbWVmb3JlaWduZm9yd2FyZGVsZXRlZnVuY3Rvcm1pc3NpbmdwYXJ0aWFscGF0dGVybnBheWFibGVwcmVjaXNlcHJlbG9hZGRtb2RlbW90ZXByZXBlbmRpc3BpZG9saXN0cHJlc2VudHByb2Nlc3Nob3djaGFyX3R1bm93bmVkb3dudG91bnF1b3RldW5zaGlmdHVudHlwZWRlZnVubGVzc3BtZG9zZXF2YWNvdW50aWx2aXJ0dWFsd29ya2RpciRjb3VudCRldmVudCRmaXJzdCRpbmRleEZ1dHVyZUlHTk9SRU5VTUJFUmVjdDJpbmZpeGxQT0xJQ1lSZXN1bHRfX3dlYWthc3NpZ25hdXRob3JiaWdpbnRiaXRhbmR3b3JkaWN0Ynljb3B5Y19jaGFyY21hdGNoZGlyY29tbW9uY29uY2F0Y2hvbXBhY2tlZGltM2NvcHJvY19pbnRmYW1pbHlmbGF2b3JmbG9hdDJmbG9hdDRmcmVlemVmcmllbmRvbmVpbmZpeHJpc051bGxtYXRyaXhtaW50ZWRvdG9ta2xpbmtwYXJmb3JwYXNjYWxwcmFnbWF5YmVnaW4tbnNxcnRwcm9tcHRwc2l0ZW1peGVkaWVxcHVibGljZGVjbGlrZXVmaXhlZGl2YWV4cHJvZzF1aW50MTZ1aW50MzJ1aW50NjR2YXR5cGV2b2x1bWUkbGFzdEJFR0lOREVYQmFzaXNpemVDb2xvckZBTFNFTG9uZ0ZhbHNlSW50MzJJbnQ2NE1heWJlTmV2ZXJQbGFuZV9Cb29sYWJvcnRhZnRlcmJpdG9yYnlyZWZhbHNlY2xvbmVjbG9zZWNvbmRwYW5pY3JhdGVmbHVzaGxmb2xkbGZvbGRyaG91cnNheWlmbmVxaW5uZXJpbm91dGlucHV0aW5yZWYxMjhpc25vdGlzc2V0bWl4aW5mb21rZGlybWxvYWRwYXRjaGFucGF1c2VycHJvZzJwcm9nbnB1c2hkdW5pb251bm9ybWF4dW5zZXR1c2l6ZXZhYXJndmFyZWZsYXR2cGF0aGFsZmxldHdlZWtzaHJlZmxpcG9wZCRvZGRBQUJCT09MQnl0ZUNoYXJDcmVmbWFwb3dOVUxMTm9uZVNlbGYxNlZvaWRfY21kYmFuZGJub3RieG9yY2hvcHdkY3JlZjMyaGVhZGhpZGVob21laWZlcWlvdGFiaTE2am9pbnVuaXR1c2VzdjEyOHZvaWRBbnlJTVBJTkZJbmY2NE1hcE5BTmFOYVROaWxPRkZSSURTZXRhc215YXNyYnNsYnNyY2xzY21wY25lY29zZjgwaTMyaTY0aXN6aXB1MTZ1MzJ1NjR1cmx1c3pBT2k4dTgAQaDtAAuOAQILBQoBBgUODA8NAAA9AABRwyCIQRhLKTAQxki7+DDqIBiyJSjqazhFIjgGbijB+DC7+CjJ7CD98kgi+yCBKDg/bChGYBDRJigbLyjrIyBGYRCrriBPIRDNjFCULli1+DCUmyDgdkAoYBC2aSBfuihCgTACISDH+DAG+igBgBAAABIAEwARABUAAwAHADwAQcCtAgsBAgBByq0CC30BAQAAAAAQCAAAAAACAAhBYUIAAAAAADAAAAAIAAAAAAEAAAAAAAAAAwEAAAAAIwABAgAAEEEAAAAAAAEAAAAAgKAAAAAAgAACggAAAAEChCCEAAAAAAEAAYBBAAGCAAAABAQAAAAAEBAQAgBBQUFBYQFhQUFBQUFBUVFBQQBB4dQBC5kEAQUALQoqABIwAAkHGCcMxgaOBpcMahPKCBIKJAt0CTgMNQcwCfsOBwjaFIMUJxC/DA0NdgRXBW0QngoAAGAT5RJRCzkFQBEAAAwKAxPVCGkGeQyCEe8GYQ4eECoLUw4bC7AKWguSCHkRGApCCKsIpAxJDyEFuwYBChQNgAQ/BDAOzwrzDkwMRwi2CDwHWwpJYnJlYWtKY2FzZUtjYXRjaExjbGFzc01jb25zdE5jb250aW51ZU9kZWJ1Z2dlclBkZWZhdWx0UWRlbGV0ZVJkb1NlbHNlVGVudW1VZXhwb3J0VmV4dGVuZHNXZmFsc2VYZmluYWxseVlmb3JaZnVuY3Rpb25baWZcaW1wb3J0XWluXmluc3RhbmNlb2ZfbmV3YG51bGxhcmV0dXJuYnN1cGVyY3N3aXRjaGR0aGlzZXRocm93ZnRydWVndHJ5aHR5cGVvZml2YXJqdm9pZGt3aGlsZWx3aXRobWltcGxlbWVudHNu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b25Ec3ZlbHRlNmRlbHBoaRBkb2NrZXIcZ29sYW5nHmdyYWRsZTRvYmpjcHAwb2N0YXZlLHNjaGVtZUZ0ZnZhcnMIY2xvanVyZRRmb3J0cmFuHWdyYXBocWwfaGFza2VsbDxyc2NyaXB0GGdkc2NyaXB0GWdkc2hhZGVyLm1ha2VmaWxlL21hcmtkb3duQnNvbGlkaXR5AmFzc2VtYmx5OnByb3RvYnVmRnRlcnJhZm9ybQViYXRjaGZpbGUQZG9ja2VyZmlsZRdnZHJlc291cmNlOXBvd2Vyc2hlbGxIYW5ndWxhci10cyxlbWFjcy1saXNwD2dpdC1jb21taXQPZ2l0LXJlYmFzZSNqYXZhc2NyaXB0NG9iamVjdGl2ZWNIdHlwZXNjcmlwdBlnZHNoYWRlcmluYzRvYmplY3RpdmUtYwRzaGVsbHNjcmlwdAFhbmd1bGFyLWh0bWwZZ29kb3Qtc2hhZGVyNm9iamVjdHBhc2NhbARzaGVsbHNlc3Npb24QY29udGFpbmVyZmlsZTZvYmplY3QtcGFzY2FsNG9iamVjdGl2ZS1jcHAXZ29kb3QtcmVzb3VyY2UUZm9ydHJhbi1mcmVlLWZvcm0VZm9ydHJhbi1maXhlZC1mb3Jt\");\nconst b = new Uint8Array(s.length);\nfor (let i = 0; i < s.length; i++) b[i] = s.charCodeAt(i);\nexport default b;\n", "import wasmBytes from './highlights.wasm.mjs';\nimport { init } from './index';\n\ninit(new WebAssembly.Module(wasmBytes));\n\nexport * from './index';\n", "import {\n type CodeToTokensOptions as HighlightsOptions,\n LiveTokenizer,\n type LiveTokenizerUpdate,\n} from '@pierre/highlights';\n\nimport type { TextDocumentChange } from '../editor/textDocument';\nimport type { HighlightedToken, RenderRange } from '../types';\nimport { formatCSSVariablePrefix } from '../utils/formatCSSVariablePrefix';\nimport type { DiffsEditorTokenizer } from './DiffsEditorTokenizer';\nimport type { DiffsEditorTokenizerOptions } from './tokenizer-types';\nimport type { CodeToTokensOptions } from './types';\n\nexport class HighlightsEditorTokenizer implements DiffsEditorTokenizer {\n #tokenizer: LiveTokenizer;\n #version: number;\n #disposed = false;\n // Delivering these lines through onDeferTokenize would patch them twice.\n #returnedRange: readonly [start: number, end: number] | undefined;\n // Flush, edit and reset resume the lexer; reads must restore this pause.\n #paused = false;\n // Defer callbacks during bracket matching to avoid re-entering the renderer.\n #capturedLines: Map<number, HighlightedToken[]> | undefined;\n #pendingDelivery: Map<number, HighlightedToken[]> | undefined;\n\n constructor(\n private readonly options: DiffsEditorTokenizerOptions,\n private readonly resolveOptions: (\n options: CodeToTokensOptions\n ) => HighlightsOptions\n ) {\n this.#version = options.textDocument.version;\n this.#tokenizer = this.#createTokenizer();\n }\n\n #createTokenizer(): LiveTokenizer {\n return new LiveTokenizer({\n ...this.resolveOptions({\n lang: this.options.textDocument.languageId,\n theme: this.options.theme,\n cssVariablePrefix: formatCSSVariablePrefix('token'),\n tokenizeMaxLineLength: this.options.tokenizeMaxLineLength ?? 1000,\n }),\n code: this.options.textDocument.getText(),\n renderRange: [0, 0],\n onDeferTokenize: (lines) => this.#deliver(lines),\n });\n }\n\n #deliver(lines: Map<number, HighlightedToken[]>): void {\n const captured = this.#capturedLines;\n if (captured != null) {\n for (const [line, tokens] of lines) captured.set(line, tokens);\n return;\n }\n const range = this.#returnedRange;\n if (range != null) {\n for (const line of lines.keys()) {\n if (line >= range[0] && line < range[1]) lines.delete(line);\n }\n if (lines.size === 0) return;\n }\n this.options.onDeferTokenize(lines);\n }\n\n // Wait until bracket matching returns before patching rows. Edits, resets\n // and theme changes discard the batch because its tokens may be stale.\n #queueDelivery(lines: Map<number, HighlightedToken[]>): void {\n const pending = this.#pendingDelivery;\n if (pending != null) {\n for (const [line, tokens] of lines) pending.set(line, tokens);\n return;\n }\n this.#pendingDelivery = lines;\n queueMicrotask(() => {\n const batch = this.#pendingDelivery;\n this.#pendingDelivery = undefined;\n if (batch != null && batch.size > 0 && !this.#disposed)\n this.options.onDeferTokenize(batch);\n });\n }\n\n tokenize(\n change: TextDocumentChange,\n renderRange?: RenderRange,\n hostRealignsRows = false\n ): Map<number, HighlightedToken[]> {\n const document = this.options.textDocument;\n const start = Math.min(renderRange?.startingLine ?? 0, document.lineCount);\n const end = Math.min(\n start + (renderRange?.totalLines ?? Infinity),\n document.lineCount\n );\n const returnedStart = Math.max(start, change.startLine);\n // Edits, resets and flushes all resume the native background work.\n this.#paused = false;\n let lines: Map<number, HighlightedToken[]>;\n if (this.#version !== document.version) {\n this.#pendingDelivery = undefined;\n lines = this.#syncDocument(change, [start, end]).lines;\n this.#version = document.version;\n } else if (this.#tokenizer.lineCount !== document.lineCount) {\n this.#pendingDelivery = undefined;\n lines = this.#tokenizer.reset(document.getText(), {\n renderRange: [start, end],\n }).lines;\n } else {\n lines = new Map();\n this.#readLines(lines, returnedStart, end);\n if (this.#pendingDelivery != null) {\n for (const line of lines.keys()) this.#pendingDelivery.delete(line);\n }\n return lines;\n }\n // Balanced insert/delete batches shift rows without triggering host realignment.\n // Other structural edits need the suffix only when the host does not move rows.\n if (\n change.lineDelta === 0\n ? (change.changedLineChanges?.some(\n ([, , lineDelta]) => lineDelta !== 0\n ) ?? false)\n : !hostRealignsRows\n ) {\n this.#readLines(lines, returnedStart, end);\n }\n return lines;\n }\n\n // Reload the lexer document if edits were skipped or combined; applying\n // them to stale text can produce incorrect tokens or out-of-range reads.\n #syncDocument(\n change: TextDocumentChange,\n renderRange: readonly [start: number, end: number]\n ): LiveTokenizerUpdate {\n const document = this.options.textDocument;\n const options = { renderRange };\n if (\n Math.abs(document.version - this.#version) === 1 &&\n change.changes.length > 0 &&\n this.#tokenizer.lineCount === change.previousLineCount\n ) {\n try {\n const update = this.#tokenizer.applyEdits(\n change.changes.map(({ range, text }) => ({ range, newText: text })),\n options\n );\n if (this.#tokenizer.lineCount === document.lineCount) return update;\n } catch (error) {\n // Out-of-range edits require a reload; other errors must propagate.\n if (!(error instanceof RangeError)) throw error;\n }\n }\n return this.#tokenizer.reset(document.getText(), options);\n }\n\n // Flushing may complete lines outside [from, to); deliver those by callback.\n #readLines(\n lines: Map<number, HighlightedToken[]>,\n from: number,\n to: number\n ): void {\n this.#returnedRange = [from, to];\n try {\n this.#tokenizer.flush(to);\n } finally {\n this.#returnedRange = undefined;\n }\n for (let line = from; line < to; line++) {\n if (lines.has(line)) continue;\n const { tokens } = this.#tokenizer.getLineTokens(line);\n lines.set(\n line,\n tokens.length === 0\n ? [[0, '', '']]\n : tokens.map((token) => [\n token.offset,\n token.color ?? '',\n token.content,\n ])\n );\n }\n }\n\n setTheme(themeName: string): void {\n if (themeName === this.options.theme) return;\n this.options.theme = themeName;\n this.#tokenizer.dispose();\n this.#pendingDelivery = undefined;\n this.#paused = false;\n this.#version = this.options.textDocument.version;\n this.#tokenizer = this.#createTokenizer();\n }\n\n getStringCommentRegexpRangesInLine(\n lineIndex: number\n ): [number, number][] | null {\n const document = this.options.textDocument;\n if (\n this.options.matchBrackets === false ||\n lineIndex < 0 ||\n lineIndex >= document.lineCount\n )\n return null;\n // Reset and flush resume background work and invoke callbacks immediately.\n // Defer those callbacks and restore any pause before returning.\n const captured = new Map<number, HighlightedToken[]>();\n this.#capturedLines = captured;\n try {\n // Bracket matching can precede rendering. Record the reloaded version\n // so the next render does not apply the same edits again.\n if (\n this.#version !== document.version ||\n this.#tokenizer.lineCount !== document.lineCount\n ) {\n this.#pendingDelivery = undefined;\n this.#tokenizer.reset(document.getText(), {\n renderRange: [lineIndex, lineIndex + 1],\n });\n this.#version = document.version;\n }\n this.#tokenizer.flush(lineIndex + 1);\n } finally {\n this.#capturedLines = undefined;\n if (this.#paused) this.#tokenizer.pause();\n }\n if (captured.size > 0) this.#queueDelivery(captured);\n return this.#tokenizer.getLineTokens(lineIndex).bracketIgnoredRanges;\n }\n\n // Rendering calls this while background tokenization may be paused; do not resume it.\n prebuildStateStack(): void {}\n stopBackgroundTokenize(): void {\n this.pauseBackgroundTokenize();\n }\n pauseBackgroundTokenize(): void {\n this.#paused = true;\n this.#tokenizer.pause();\n }\n resumeBackgroundTokenize(): void {\n this.#paused = false;\n this.#tokenizer.resume();\n }\n dispose(): void {\n this.#disposed = true;\n this.#pendingDelivery = undefined;\n this.#tokenizer.dispose();\n }\n}\n", "import { type CodeToTokensOptions, LiveTokenizer } from '@pierre/highlights';\n\nimport { appendItems } from '../utils/appendItems';\nimport { BaseStreamTokenizer } from './stream-tokenizer';\nimport type { ThemedToken } from './types';\n\n// Completed lines the tokenizer keeps before it tries to drop older ones.\nconst TRIM_LINE_COUNT = 1024;\nconst DOCUMENT_START = { line: 0, character: 0 };\n\n/** Keeps the unfinished line editable so new chunks can recall provisional tokens. */\nexport class HighlightsStreamTokenizer extends BaseStreamTokenizer {\n #tokenizer: LiveTokenizer;\n #trimLineCount = TRIM_LINE_COUNT;\n\n constructor(private readonly options: CodeToTokensOptions) {\n super();\n this.#tokenizer = new LiveTokenizer(options);\n }\n\n protected tokenizeChunk(\n chunk: string,\n stable: ThemedToken[]\n ): { unstable: ThemedToken[]; tailLength: number } {\n const lineBreaks = [...chunk.matchAll(/\\r\\n|\\r|\\n/g)];\n const startLine = this.#tokenizer.lineCount - 1;\n const position = {\n line: startLine,\n character: this.#tokenizer.getLineLength(startLine),\n };\n this.#tokenizer.applyEdits([\n { range: { start: position, end: position }, newText: chunk },\n ]);\n const lastLine = this.#tokenizer.lineCount - 1;\n let unstable: ThemedToken[] = [];\n for (let line = startLine; line <= lastLine; line++) {\n const { tokens } = this.#tokenizer.getLineTokens(line);\n for (const token of tokens) token.offset += this.stableOffset;\n if (line < lastLine) {\n appendItems(stable, tokens);\n this.pushLineBreak(\n stable,\n this.#tokenizer.getLineLength(line),\n lineBreaks[line - startLine][0]\n );\n } else {\n unstable = tokens;\n }\n }\n const tailLength = this.#tokenizer.getLineLength(lastLine);\n if (lastLine > this.#trimLineCount) {\n // Warning: keep the last completed line. Lexed from the initial state,\n // it must end in its old state, or the unfinished line would be lexed\n // from the wrong state; then restore the dropped lines.\n const text = this.#tokenizer.getText();\n const { lineChanges } = this.#tokenizer.applyEdits([\n {\n range: {\n start: DOCUMENT_START,\n end: { line: lastLine - 1, character: 0 },\n },\n newText: '',\n },\n ]);\n if (lineChanges.every((change) => change.newEndLine <= 1)) {\n this.#trimLineCount = TRIM_LINE_COUNT;\n } else {\n const keptLength = this.#tokenizer.getText().length;\n this.#tokenizer.applyEdits([\n {\n range: { start: DOCUMENT_START, end: DOCUMENT_START },\n newText: text.slice(0, text.length - keptLength),\n },\n ]);\n // Retry after the window doubles, such as inside a long comment.\n this.#trimLineCount = lastLine * 2;\n }\n }\n return { unstable, tailLength };\n }\n\n clone(): HighlightsStreamTokenizer {\n this.assertActive();\n const clone = new HighlightsStreamTokenizer(this.options);\n clone.#tokenizer.reset(this.#tokenizer.getText());\n this.copyStateTo(clone);\n return clone;\n }\n\n protected resetSource(): void {\n this.#tokenizer.reset('');\n this.#trimLineCount = TRIM_LINE_COUNT;\n }\n\n protected releaseSource(): void {\n this.#tokenizer.dispose();\n }\n}\n", "import {\n codeToTokens,\n type CodeToTokensOptions as HighlightsOptions,\n isSupportedLanguage,\n type Theme,\n} from '@pierre/highlights';\n\nimport { DiffsHighlighter } from '../DiffsHighlighter';\nimport { HighlightsEditorTokenizer } from '../highlights-editor';\nimport { HighlightsStreamTokenizer } from '../highlights-stream';\nimport { createDiffsThemeResolver } from '../themes/themeResolver';\nimport type { DiffsTheme } from '../themes/types';\nimport type {\n DiffsEditorTokenizerOptions,\n DiffsStreamTokenizer,\n} from '../tokenizer-types';\nimport type { CodeToTokensOptions, TokensResult } from '../types';\n\n/**\n * Highlights uses bundled lexers. Unsupported and custom languages render as text.\n */\nexport class HighlightsHighlighter extends DiffsHighlighter {\n // Independent instances need their themes after the shared cache is cleared.\n private readonly usedThemes = new Map<string, DiffsTheme>();\n\n constructor() {\n super('highlights', createDiffsThemeResolver('highlights'));\n }\n\n getTheme(name: string): DiffsTheme {\n this.assertNotDisposed();\n const theme =\n this.themeResolver.getResolvedTheme(name) ?? this.usedThemes.get(name);\n if (theme == null) {\n throw new Error(`Theme \"${name}\" has not been resolved`);\n }\n this.usedThemes.set(name, theme);\n return theme;\n }\n\n codeToTokens(code: string, options: CodeToTokensOptions): TokensResult {\n this.assertNotDisposed();\n // Warning: use the library's shared Wasm instance. It replaces instances\n // above 8 MiB; a private instance keeps its peak memory.\n return codeToTokens(code, this.resolveOptions(options));\n }\n\n createEditorTokenizer(\n options: DiffsEditorTokenizerOptions\n ): HighlightsEditorTokenizer {\n this.assertNotDisposed();\n return new HighlightsEditorTokenizer(options, (tokenizerOptions) =>\n this.resolveOptions(tokenizerOptions)\n );\n }\n\n createStreamTokenizer(options: CodeToTokensOptions): DiffsStreamTokenizer {\n return new HighlightsStreamTokenizer(this.resolveOptions(options));\n }\n\n loadLanguages(): Promise<void> {\n this.assertNotDisposed();\n return Promise.resolve();\n }\n\n hasLoadedLanguages(): boolean {\n return !this.disposed;\n }\n\n attachLanguages(): void {\n this.assertNotDisposed();\n }\n\n protected releaseResources(): void {\n this.usedThemes.clear();\n }\n\n // Omit the unused theme key; callers may pass both keys with one undefined.\n private resolveOptions({\n theme,\n themes,\n ...options\n }: CodeToTokensOptions): HighlightsOptions {\n const lang = isSupportedLanguage(options.lang) ? options.lang : 'text';\n if (theme != null) {\n return { ...options, lang, theme: this.getZedTheme(theme) };\n }\n if (themes == null) {\n throw new Error('A theme or themes option is required');\n }\n const resolved: Record<string, Theme> = {};\n for (const [key, name] of Object.entries(themes)) {\n resolved[key] = this.getZedTheme(name);\n }\n return { ...options, lang, themes: resolved };\n }\n\n private getZedTheme(name: string): Theme {\n const theme = this.getTheme(name);\n if (theme.zed == null) {\n throw new Error(`Theme \"${name}\" does not support Highlights`);\n }\n return theme.zed;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["enc", "b", "key", "end", "enc", "wasmModule", "b", "end", "lines", "enc", "s", "enc", "b", "LiveTokenizer", "line", "HighlightsStreamTokenizer", "HighlightsHighlighter"]
7
+ }