@cogentic-co/ds 0.5.0 → 0.5.3

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 (803) hide show
  1. package/dist/animations/animation-ai-analysis.js +2 -3
  2. package/dist/animations/animation-audit-trail.js +2 -3
  3. package/dist/animations/animation-compliance-reports.js +2 -3
  4. package/dist/animations/animation-custom-rules.js +2 -3
  5. package/dist/animations/animation-jira-ticket.js +2 -3
  6. package/dist/animations/animation-jurisdiction-detection.js +2 -3
  7. package/dist/animations/animation-multi-protocol.js +2 -3
  8. package/dist/animations/animation-pricing-preview.js +2 -3
  9. package/dist/animations/animation-realtime-updates.js +2 -3
  10. package/dist/animations/animation-rest-api.js +2 -3
  11. package/dist/animations/animation-risk-scoring.js +2 -3
  12. package/dist/animations/animation-sandbox.js +2 -3
  13. package/dist/animations/animation-scheduled-reports.js +2 -3
  14. package/dist/animations/animation-secure-messaging.js +2 -3
  15. package/dist/animations/animation-slack-notification.js +2 -3
  16. package/dist/animations/animation-sop-mapping.js +2 -3
  17. package/dist/animations/animation-team-routing.js +2 -3
  18. package/dist/animations/animation-teams-notification.js +2 -3
  19. package/dist/animations/animation-vasp-identification.js +2 -3
  20. package/dist/animations/animation-webhooks.js +2 -3
  21. package/dist/blocks/auth-form.js +4 -5
  22. package/dist/blocks/feature-section.js +2 -3
  23. package/dist/blocks/hero-section.js +2 -3
  24. package/dist/blocks/pricing-table.js +3 -4
  25. package/dist/blocks/stat-card.js +3 -4
  26. package/dist/charts.js +2 -3
  27. package/dist/chatbot.js +1 -2
  28. package/dist/chatbot.js.map +1 -1
  29. package/dist/{chunk-ZLI4DUPN.js → chunk-4NEQV6H2.js} +3 -4
  30. package/dist/chunk-4NEQV6H2.js.map +1 -0
  31. package/dist/{chunk-LPLHBW3D.js → chunk-4YD3YS4B.js} +3 -3
  32. package/dist/{chunk-LPLHBW3D.js.map → chunk-4YD3YS4B.js.map} +1 -1
  33. package/dist/{chunk-XQULNNYI.js → chunk-5JLZ42JT.js} +3 -3
  34. package/dist/{chunk-XQULNNYI.js.map → chunk-5JLZ42JT.js.map} +1 -1
  35. package/dist/{chunk-MWOKG6Q6.js → chunk-5OOO6TRA.js} +3 -3
  36. package/dist/{chunk-MWOKG6Q6.js.map → chunk-5OOO6TRA.js.map} +1 -1
  37. package/dist/{chunk-BDICDLS4.js → chunk-65Z2VEKG.js} +3 -3
  38. package/dist/{chunk-BDICDLS4.js.map → chunk-65Z2VEKG.js.map} +1 -1
  39. package/dist/{chunk-4AMGJ6V6.js → chunk-7HRPF2N2.js} +4 -5
  40. package/dist/chunk-7HRPF2N2.js.map +1 -0
  41. package/dist/{chunk-VLC2H35H.js → chunk-BNFSXNP2.js} +3 -4
  42. package/dist/chunk-BNFSXNP2.js.map +1 -0
  43. package/dist/{chunk-3LQKDTMG.js → chunk-BTFYV3TI.js} +3 -3
  44. package/dist/{chunk-3LQKDTMG.js.map → chunk-BTFYV3TI.js.map} +1 -1
  45. package/dist/{chunk-OSTGUWBQ.js → chunk-BTZB4JRC.js} +3 -3
  46. package/dist/{chunk-OSTGUWBQ.js.map → chunk-BTZB4JRC.js.map} +1 -1
  47. package/dist/{chunk-YFXOWLHW.js → chunk-BZSA47MS.js} +3 -3
  48. package/dist/{chunk-YFXOWLHW.js.map → chunk-BZSA47MS.js.map} +1 -1
  49. package/dist/{chunk-WM7J5AFW.js → chunk-CG5JA7FM.js} +3 -4
  50. package/dist/chunk-CG5JA7FM.js.map +1 -0
  51. package/dist/{chunk-QFT4SUYI.js → chunk-EFLWU2JP.js} +3 -3
  52. package/dist/{chunk-QFT4SUYI.js.map → chunk-EFLWU2JP.js.map} +1 -1
  53. package/dist/{chunk-NCUG7GCF.js → chunk-F7REPQOA.js} +3 -3
  54. package/dist/{chunk-NCUG7GCF.js.map → chunk-F7REPQOA.js.map} +1 -1
  55. package/dist/{chunk-34DL2N2L.js → chunk-FKPK3CB7.js} +3 -4
  56. package/dist/chunk-FKPK3CB7.js.map +1 -0
  57. package/dist/chunk-GZNLQE3I.js +55 -0
  58. package/dist/chunk-GZNLQE3I.js.map +1 -0
  59. package/dist/{chunk-SOGD55OD.js → chunk-H7VUIMEL.js} +3 -4
  60. package/dist/chunk-H7VUIMEL.js.map +1 -0
  61. package/dist/{chunk-ACUHNJB5.js → chunk-HTYR73ON.js} +3 -3
  62. package/dist/{chunk-ACUHNJB5.js.map → chunk-HTYR73ON.js.map} +1 -1
  63. package/dist/{chunk-XRSN2V6U.js → chunk-I26ZXVSY.js} +3 -3
  64. package/dist/{chunk-XRSN2V6U.js.map → chunk-I26ZXVSY.js.map} +1 -1
  65. package/dist/{chunk-PT3UCIZC.js → chunk-IKATDPHG.js} +3 -3
  66. package/dist/{chunk-PT3UCIZC.js.map → chunk-IKATDPHG.js.map} +1 -1
  67. package/dist/{chunk-2FM7MIQO.js → chunk-KUOF3XRZ.js} +3 -3
  68. package/dist/{chunk-2FM7MIQO.js.map → chunk-KUOF3XRZ.js.map} +1 -1
  69. package/dist/{chunk-LCPWR5YQ.js → chunk-LW6GAWZM.js} +5 -6
  70. package/dist/chunk-LW6GAWZM.js.map +1 -0
  71. package/dist/{chunk-4LGHWTQ2.js → chunk-N7PBUY7G.js} +3 -3
  72. package/dist/{chunk-4LGHWTQ2.js.map → chunk-N7PBUY7G.js.map} +1 -1
  73. package/dist/{chunk-XWICRB5T.js → chunk-NAPDFVBI.js} +3 -3
  74. package/dist/{chunk-XWICRB5T.js.map → chunk-NAPDFVBI.js.map} +1 -1
  75. package/dist/{chunk-UEEB7IUZ.js → chunk-RTK7R4KZ.js} +3 -3
  76. package/dist/{chunk-UEEB7IUZ.js.map → chunk-RTK7R4KZ.js.map} +1 -1
  77. package/dist/{chunk-AXFF2MQP.js → chunk-RZZTDJHG.js} +3 -3
  78. package/dist/{chunk-AXFF2MQP.js.map → chunk-RZZTDJHG.js.map} +1 -1
  79. package/dist/{chunk-UA4DQZNB.js → chunk-SNOJLZP4.js} +3 -3
  80. package/dist/{chunk-UA4DQZNB.js.map → chunk-SNOJLZP4.js.map} +1 -1
  81. package/dist/{chunk-OZD3Z7GU.js → chunk-U4EPKN7G.js} +3 -4
  82. package/dist/chunk-U4EPKN7G.js.map +1 -0
  83. package/dist/{chunk-O7JZMTAT.js → chunk-VWSX75RB.js} +4 -5
  84. package/dist/chunk-VWSX75RB.js.map +1 -0
  85. package/dist/{chunk-XOPA23DG.js → chunk-XQYFQ6PU.js} +3 -4
  86. package/dist/chunk-XQYFQ6PU.js.map +1 -0
  87. package/dist/index.d.ts +11 -21
  88. package/dist/index.js +57 -158
  89. package/dist/index.js.map +1 -1
  90. package/dist/workflow.d.ts +4 -4
  91. package/dist/workflow.js +797 -3
  92. package/dist/workflow.js.map +1 -1
  93. package/package.json +3 -2
  94. package/dist/abap-JVNKIOMP.js +0 -12
  95. package/dist/abap-JVNKIOMP.js.map +0 -1
  96. package/dist/actionscript-3-QCPKLQV4.js +0 -12
  97. package/dist/actionscript-3-QCPKLQV4.js.map +0 -1
  98. package/dist/ada-NXDODUUK.js +0 -12
  99. package/dist/ada-NXDODUUK.js.map +0 -1
  100. package/dist/andromeeda-7AT7JT2B.js +0 -9
  101. package/dist/andromeeda-7AT7JT2B.js.map +0 -1
  102. package/dist/angular-html-D25KLDLS.js +0 -8
  103. package/dist/angular-html-D25KLDLS.js.map +0 -1
  104. package/dist/angular-ts-KTYAOQJU.js +0 -38
  105. package/dist/angular-ts-KTYAOQJU.js.map +0 -1
  106. package/dist/apache-WOIOPE2O.js +0 -12
  107. package/dist/apache-WOIOPE2O.js.map +0 -1
  108. package/dist/apex-RXTMDZWW.js +0 -12
  109. package/dist/apex-RXTMDZWW.js.map +0 -1
  110. package/dist/apl-7C6665QV.js +0 -23
  111. package/dist/apl-7C6665QV.js.map +0 -1
  112. package/dist/applescript-6G6HYPPU.js +0 -12
  113. package/dist/applescript-6G6HYPPU.js.map +0 -1
  114. package/dist/ara-IQOJSPC2.js +0 -12
  115. package/dist/ara-IQOJSPC2.js.map +0 -1
  116. package/dist/asciidoc-HA5NDUD7.js +0 -12
  117. package/dist/asciidoc-HA5NDUD7.js.map +0 -1
  118. package/dist/asm-OHQMQR27.js +0 -12
  119. package/dist/asm-OHQMQR27.js.map +0 -1
  120. package/dist/astro-ZG5RIYP7.js +0 -24
  121. package/dist/astro-ZG5RIYP7.js.map +0 -1
  122. package/dist/aurora-x-4KOSDTOS.js +0 -9
  123. package/dist/aurora-x-4KOSDTOS.js.map +0 -1
  124. package/dist/awk-YKWBAWUJ.js +0 -12
  125. package/dist/awk-YKWBAWUJ.js.map +0 -1
  126. package/dist/ayu-dark-PAPGDCBY.js +0 -9
  127. package/dist/ayu-dark-PAPGDCBY.js.map +0 -1
  128. package/dist/ayu-light-YT7XGRXL.js +0 -9
  129. package/dist/ayu-light-YT7XGRXL.js.map +0 -1
  130. package/dist/ayu-mirage-YB3DLB3L.js +0 -9
  131. package/dist/ayu-mirage-YB3DLB3L.js.map +0 -1
  132. package/dist/ballerina-BAIWEDVH.js +0 -12
  133. package/dist/ballerina-BAIWEDVH.js.map +0 -1
  134. package/dist/bat-6FBMYA3T.js +0 -12
  135. package/dist/bat-6FBMYA3T.js.map +0 -1
  136. package/dist/beancount-WMX4MTBY.js +0 -12
  137. package/dist/beancount-WMX4MTBY.js.map +0 -1
  138. package/dist/berry-ESESFRNG.js +0 -12
  139. package/dist/berry-ESESFRNG.js.map +0 -1
  140. package/dist/bibtex-OA2XKETO.js +0 -12
  141. package/dist/bibtex-OA2XKETO.js.map +0 -1
  142. package/dist/bicep-AIVY2HYW.js +0 -12
  143. package/dist/bicep-AIVY2HYW.js.map +0 -1
  144. package/dist/bird2-4KSB7ZME.js +0 -12
  145. package/dist/bird2-4KSB7ZME.js.map +0 -1
  146. package/dist/blade-FVGK7TGV.js +0 -27
  147. package/dist/blade-FVGK7TGV.js.map +0 -1
  148. package/dist/bsl-M47TTDHG.js +0 -14
  149. package/dist/bsl-M47TTDHG.js.map +0 -1
  150. package/dist/c-UWJUSIYD.js +0 -5
  151. package/dist/c-UWJUSIYD.js.map +0 -1
  152. package/dist/c3-2GZGHANU.js +0 -12
  153. package/dist/c3-2GZGHANU.js.map +0 -1
  154. package/dist/cadence-NUKHDSFY.js +0 -12
  155. package/dist/cadence-NUKHDSFY.js.map +0 -1
  156. package/dist/cairo-STJR45SX.js +0 -14
  157. package/dist/cairo-STJR45SX.js.map +0 -1
  158. package/dist/catppuccin-frappe-MMCVVHKL.js +0 -9
  159. package/dist/catppuccin-frappe-MMCVVHKL.js.map +0 -1
  160. package/dist/catppuccin-latte-5C4JLXBH.js +0 -9
  161. package/dist/catppuccin-latte-5C4JLXBH.js.map +0 -1
  162. package/dist/catppuccin-macchiato-3NKYVEOJ.js +0 -9
  163. package/dist/catppuccin-macchiato-3NKYVEOJ.js.map +0 -1
  164. package/dist/catppuccin-mocha-C7I5EOEU.js +0 -9
  165. package/dist/catppuccin-mocha-C7I5EOEU.js.map +0 -1
  166. package/dist/chunk-22YFMYTV.js +0 -27
  167. package/dist/chunk-22YFMYTV.js.map +0 -1
  168. package/dist/chunk-2LYQIOCF.js +0 -10
  169. package/dist/chunk-2LYQIOCF.js.map +0 -1
  170. package/dist/chunk-2ZRWDJYS.js +0 -10
  171. package/dist/chunk-2ZRWDJYS.js.map +0 -1
  172. package/dist/chunk-34DL2N2L.js.map +0 -1
  173. package/dist/chunk-3QIMFXGM.js +0 -10
  174. package/dist/chunk-3QIMFXGM.js.map +0 -1
  175. package/dist/chunk-4AMGJ6V6.js.map +0 -1
  176. package/dist/chunk-4MYIRYOX.js +0 -10
  177. package/dist/chunk-4MYIRYOX.js.map +0 -1
  178. package/dist/chunk-54EST6OV.js +0 -10
  179. package/dist/chunk-54EST6OV.js.map +0 -1
  180. package/dist/chunk-63BWXXFR.js +0 -10
  181. package/dist/chunk-63BWXXFR.js.map +0 -1
  182. package/dist/chunk-6FM4LMXY.js +0 -19
  183. package/dist/chunk-6FM4LMXY.js.map +0 -1
  184. package/dist/chunk-6FQBRWJI.js +0 -10
  185. package/dist/chunk-6FQBRWJI.js.map +0 -1
  186. package/dist/chunk-A76XKW5G.js +0 -10
  187. package/dist/chunk-A76XKW5G.js.map +0 -1
  188. package/dist/chunk-AQNRRS6S.js +0 -13
  189. package/dist/chunk-AQNRRS6S.js.map +0 -1
  190. package/dist/chunk-B2D64IUZ.js +0 -10
  191. package/dist/chunk-B2D64IUZ.js.map +0 -1
  192. package/dist/chunk-B5QAIGHR.js +0 -10
  193. package/dist/chunk-B5QAIGHR.js.map +0 -1
  194. package/dist/chunk-BVICZLAT.js +0 -21
  195. package/dist/chunk-BVICZLAT.js.map +0 -1
  196. package/dist/chunk-BZFNNQZK.js +0 -10
  197. package/dist/chunk-BZFNNQZK.js.map +0 -1
  198. package/dist/chunk-E4QCWVTW.js +0 -10
  199. package/dist/chunk-E4QCWVTW.js.map +0 -1
  200. package/dist/chunk-EDMHTFVV.js +0 -13
  201. package/dist/chunk-EDMHTFVV.js.map +0 -1
  202. package/dist/chunk-FNPZI42S.js +0 -10
  203. package/dist/chunk-FNPZI42S.js.map +0 -1
  204. package/dist/chunk-KTHCJT7O.js +0 -10
  205. package/dist/chunk-KTHCJT7O.js.map +0 -1
  206. package/dist/chunk-LCPWR5YQ.js.map +0 -1
  207. package/dist/chunk-MBZ7WSLK.js +0 -10
  208. package/dist/chunk-MBZ7WSLK.js.map +0 -1
  209. package/dist/chunk-MY5GQN4J.js +0 -10
  210. package/dist/chunk-MY5GQN4J.js.map +0 -1
  211. package/dist/chunk-NMHTFCOE.js +0 -10
  212. package/dist/chunk-NMHTFCOE.js.map +0 -1
  213. package/dist/chunk-NWN7MD4H.js +0 -10
  214. package/dist/chunk-NWN7MD4H.js.map +0 -1
  215. package/dist/chunk-NZGVCQNX.js +0 -15
  216. package/dist/chunk-NZGVCQNX.js.map +0 -1
  217. package/dist/chunk-O7JZMTAT.js.map +0 -1
  218. package/dist/chunk-OGKUGKX6.js +0 -25
  219. package/dist/chunk-OGKUGKX6.js.map +0 -1
  220. package/dist/chunk-OXCEHFR7.js +0 -10
  221. package/dist/chunk-OXCEHFR7.js.map +0 -1
  222. package/dist/chunk-OZD3Z7GU.js.map +0 -1
  223. package/dist/chunk-PHD4ZLAK.js +0 -13
  224. package/dist/chunk-PHD4ZLAK.js.map +0 -1
  225. package/dist/chunk-PTP47UNV.js +0 -10
  226. package/dist/chunk-PTP47UNV.js.map +0 -1
  227. package/dist/chunk-QFY6SZMW.js +0 -13
  228. package/dist/chunk-QFY6SZMW.js.map +0 -1
  229. package/dist/chunk-QJTFKQBI.js +0 -52
  230. package/dist/chunk-QJTFKQBI.js.map +0 -1
  231. package/dist/chunk-ROZEI2UU.js +0 -10
  232. package/dist/chunk-ROZEI2UU.js.map +0 -1
  233. package/dist/chunk-SOGD55OD.js.map +0 -1
  234. package/dist/chunk-SUELDMOS.js +0 -10
  235. package/dist/chunk-SUELDMOS.js.map +0 -1
  236. package/dist/chunk-SUWYKTW7.js +0 -15
  237. package/dist/chunk-SUWYKTW7.js.map +0 -1
  238. package/dist/chunk-TDCIUEGG.js +0 -13
  239. package/dist/chunk-TDCIUEGG.js.map +0 -1
  240. package/dist/chunk-TRW4DQOO.js +0 -10
  241. package/dist/chunk-TRW4DQOO.js.map +0 -1
  242. package/dist/chunk-TSESJ6MI.js +0 -10
  243. package/dist/chunk-TSESJ6MI.js.map +0 -1
  244. package/dist/chunk-UPB4VIC2.js +0 -23
  245. package/dist/chunk-UPB4VIC2.js.map +0 -1
  246. package/dist/chunk-UW2CXNUS.js +0 -801
  247. package/dist/chunk-UW2CXNUS.js.map +0 -1
  248. package/dist/chunk-VG2TYHDF.js +0 -45
  249. package/dist/chunk-VG2TYHDF.js.map +0 -1
  250. package/dist/chunk-VLC2H35H.js.map +0 -1
  251. package/dist/chunk-WF5RFVPW.js +0 -10
  252. package/dist/chunk-WF5RFVPW.js.map +0 -1
  253. package/dist/chunk-WM7J5AFW.js.map +0 -1
  254. package/dist/chunk-WO2NYJQ2.js +0 -10
  255. package/dist/chunk-WO2NYJQ2.js.map +0 -1
  256. package/dist/chunk-WSBNI4CX.js +0 -10
  257. package/dist/chunk-WSBNI4CX.js.map +0 -1
  258. package/dist/chunk-XJ7HRYIM.js +0 -13
  259. package/dist/chunk-XJ7HRYIM.js.map +0 -1
  260. package/dist/chunk-XOPA23DG.js.map +0 -1
  261. package/dist/chunk-XSK6343X.js +0 -10
  262. package/dist/chunk-XSK6343X.js.map +0 -1
  263. package/dist/chunk-YU7R5PEM.js +0 -10
  264. package/dist/chunk-YU7R5PEM.js.map +0 -1
  265. package/dist/chunk-ZIMU3HWF.js +0 -10
  266. package/dist/chunk-ZIMU3HWF.js.map +0 -1
  267. package/dist/chunk-ZLI4DUPN.js.map +0 -1
  268. package/dist/chunk-ZMEHUU4R.js +0 -10
  269. package/dist/chunk-ZMEHUU4R.js.map +0 -1
  270. package/dist/chunk-ZP5CHRCL.js +0 -35
  271. package/dist/chunk-ZP5CHRCL.js.map +0 -1
  272. package/dist/clarity-ZTL44IOC.js +0 -12
  273. package/dist/clarity-ZTL44IOC.js.map +0 -1
  274. package/dist/clojure-XQ65L5AT.js +0 -12
  275. package/dist/clojure-XQ65L5AT.js.map +0 -1
  276. package/dist/cmake-RWIJNOHT.js +0 -5
  277. package/dist/cmake-RWIJNOHT.js.map +0 -1
  278. package/dist/cobol-TAD5SR6F.js +0 -18
  279. package/dist/cobol-TAD5SR6F.js.map +0 -1
  280. package/dist/codeowners-FY723ZMD.js +0 -12
  281. package/dist/codeowners-FY723ZMD.js.map +0 -1
  282. package/dist/codeql-CUEBNFJ7.js +0 -12
  283. package/dist/codeql-CUEBNFJ7.js.map +0 -1
  284. package/dist/coffee-NVLS7247.js +0 -14
  285. package/dist/coffee-NVLS7247.js.map +0 -1
  286. package/dist/common-lisp-THYLK4DO.js +0 -12
  287. package/dist/common-lisp-THYLK4DO.js.map +0 -1
  288. package/dist/coq-QKXPZSD5.js +0 -12
  289. package/dist/coq-QKXPZSD5.js.map +0 -1
  290. package/dist/cpp-VIUMDJM3.js +0 -9
  291. package/dist/cpp-VIUMDJM3.js.map +0 -1
  292. package/dist/crystal-BRBKAOCE.js +0 -24
  293. package/dist/crystal-BRBKAOCE.js.map +0 -1
  294. package/dist/csharp-4UVRFXKI.js +0 -5
  295. package/dist/csharp-4UVRFXKI.js.map +0 -1
  296. package/dist/css-M2HFTEGH.js +0 -5
  297. package/dist/css-M2HFTEGH.js.map +0 -1
  298. package/dist/csv-ZNHI7HNL.js +0 -5
  299. package/dist/csv-ZNHI7HNL.js.map +0 -1
  300. package/dist/cue-NHAEG7EA.js +0 -12
  301. package/dist/cue-NHAEG7EA.js.map +0 -1
  302. package/dist/cypher-52K4HPM5.js +0 -12
  303. package/dist/cypher-52K4HPM5.js.map +0 -1
  304. package/dist/d-T64IGABC.js +0 -12
  305. package/dist/d-T64IGABC.js.map +0 -1
  306. package/dist/dark-plus-VOS3ALRT.js +0 -9
  307. package/dist/dark-plus-VOS3ALRT.js.map +0 -1
  308. package/dist/dart-IYFAMI65.js +0 -12
  309. package/dist/dart-IYFAMI65.js.map +0 -1
  310. package/dist/dax-3O4LF5MM.js +0 -12
  311. package/dist/dax-3O4LF5MM.js.map +0 -1
  312. package/dist/desktop-PYEO5DP7.js +0 -12
  313. package/dist/desktop-PYEO5DP7.js.map +0 -1
  314. package/dist/diff-TFVCNBQ2.js +0 -5
  315. package/dist/diff-TFVCNBQ2.js.map +0 -1
  316. package/dist/dist-42IWCT5F.js +0 -12759
  317. package/dist/dist-42IWCT5F.js.map +0 -1
  318. package/dist/docker-5MP25SCC.js +0 -12
  319. package/dist/docker-5MP25SCC.js.map +0 -1
  320. package/dist/dotenv-LXYOR7Q4.js +0 -12
  321. package/dist/dotenv-LXYOR7Q4.js.map +0 -1
  322. package/dist/dracula-6ED4QBTY.js +0 -9
  323. package/dist/dracula-6ED4QBTY.js.map +0 -1
  324. package/dist/dracula-soft-D3A2YTL6.js +0 -9
  325. package/dist/dracula-soft-D3A2YTL6.js.map +0 -1
  326. package/dist/dream-maker-2ZMNJA26.js +0 -12
  327. package/dist/dream-maker-2ZMNJA26.js.map +0 -1
  328. package/dist/edge-DOYG3TGR.js +0 -20
  329. package/dist/edge-DOYG3TGR.js.map +0 -1
  330. package/dist/elixir-NOIKHGN6.js +0 -16
  331. package/dist/elixir-NOIKHGN6.js.map +0 -1
  332. package/dist/elm-PDSTOTV2.js +0 -15
  333. package/dist/elm-PDSTOTV2.js.map +0 -1
  334. package/dist/emacs-lisp-SRSQL6QD.js +0 -12
  335. package/dist/emacs-lisp-SRSQL6QD.js.map +0 -1
  336. package/dist/erb-ATIP2DNN.js +0 -33
  337. package/dist/erb-ATIP2DNN.js.map +0 -1
  338. package/dist/erlang-TNJ3Y5GQ.js +0 -14
  339. package/dist/erlang-TNJ3Y5GQ.js.map +0 -1
  340. package/dist/everforest-dark-CBMINS2O.js +0 -9
  341. package/dist/everforest-dark-CBMINS2O.js.map +0 -1
  342. package/dist/everforest-light-23KYLIEI.js +0 -9
  343. package/dist/everforest-light-23KYLIEI.js.map +0 -1
  344. package/dist/fennel-TO2TJ524.js +0 -12
  345. package/dist/fennel-TO2TJ524.js.map +0 -1
  346. package/dist/fish-DETI77GR.js +0 -12
  347. package/dist/fish-DETI77GR.js.map +0 -1
  348. package/dist/fluent-AHZ23QC5.js +0 -12
  349. package/dist/fluent-AHZ23QC5.js.map +0 -1
  350. package/dist/fortran-fixed-form-SJW545BA.js +0 -14
  351. package/dist/fortran-fixed-form-SJW545BA.js.map +0 -1
  352. package/dist/fortran-free-form-EVEOH2PB.js +0 -5
  353. package/dist/fortran-free-form-EVEOH2PB.js.map +0 -1
  354. package/dist/fsharp-S3GDMFPN.js +0 -14
  355. package/dist/fsharp-S3GDMFPN.js.map +0 -1
  356. package/dist/gdresource-USYG62QW.js +0 -16
  357. package/dist/gdresource-USYG62QW.js.map +0 -1
  358. package/dist/gdscript-TTCIXZPS.js +0 -5
  359. package/dist/gdscript-TTCIXZPS.js.map +0 -1
  360. package/dist/gdshader-24QXUILK.js +0 -5
  361. package/dist/gdshader-24QXUILK.js.map +0 -1
  362. package/dist/genie-5MKE7EG3.js +0 -12
  363. package/dist/genie-5MKE7EG3.js.map +0 -1
  364. package/dist/gherkin-FK44CFAI.js +0 -12
  365. package/dist/gherkin-FK44CFAI.js.map +0 -1
  366. package/dist/git-commit-BTOU7HF6.js +0 -14
  367. package/dist/git-commit-BTOU7HF6.js.map +0 -1
  368. package/dist/git-rebase-EQNFO4Z3.js +0 -14
  369. package/dist/git-rebase-EQNFO4Z3.js.map +0 -1
  370. package/dist/github-dark-EZ6YMXRD.js +0 -9
  371. package/dist/github-dark-EZ6YMXRD.js.map +0 -1
  372. package/dist/github-dark-default-I5J3RRLU.js +0 -9
  373. package/dist/github-dark-default-I5J3RRLU.js.map +0 -1
  374. package/dist/github-dark-dimmed-MPBBGKWI.js +0 -9
  375. package/dist/github-dark-dimmed-MPBBGKWI.js.map +0 -1
  376. package/dist/github-dark-high-contrast-4TT44JJO.js +0 -9
  377. package/dist/github-dark-high-contrast-4TT44JJO.js.map +0 -1
  378. package/dist/github-light-VJKXKJBG.js +0 -9
  379. package/dist/github-light-VJKXKJBG.js.map +0 -1
  380. package/dist/github-light-default-YLEZHU7A.js +0 -9
  381. package/dist/github-light-default-YLEZHU7A.js.map +0 -1
  382. package/dist/github-light-high-contrast-Q4ABCTE6.js +0 -9
  383. package/dist/github-light-high-contrast-Q4ABCTE6.js.map +0 -1
  384. package/dist/gleam-GJTCHKAL.js +0 -12
  385. package/dist/gleam-GJTCHKAL.js.map +0 -1
  386. package/dist/glimmer-js-HS3N4FUZ.js +0 -20
  387. package/dist/glimmer-js-HS3N4FUZ.js.map +0 -1
  388. package/dist/glimmer-ts-P46OQXAF.js +0 -20
  389. package/dist/glimmer-ts-P46OQXAF.js.map +0 -1
  390. package/dist/glsl-YBUL7CYA.js +0 -6
  391. package/dist/glsl-YBUL7CYA.js.map +0 -1
  392. package/dist/gn-J7YNJDG7.js +0 -12
  393. package/dist/gn-J7YNJDG7.js.map +0 -1
  394. package/dist/gnuplot-H5JB5W3G.js +0 -12
  395. package/dist/gnuplot-H5JB5W3G.js.map +0 -1
  396. package/dist/go-SOJ3BB22.js +0 -5
  397. package/dist/go-SOJ3BB22.js.map +0 -1
  398. package/dist/graphql-KMU6GVUK.js +0 -9
  399. package/dist/graphql-KMU6GVUK.js.map +0 -1
  400. package/dist/groovy-DFYCIBLB.js +0 -12
  401. package/dist/groovy-DFYCIBLB.js.map +0 -1
  402. package/dist/gruvbox-dark-hard-KJZC4QO3.js +0 -9
  403. package/dist/gruvbox-dark-hard-KJZC4QO3.js.map +0 -1
  404. package/dist/gruvbox-dark-medium-YQQCYUGQ.js +0 -9
  405. package/dist/gruvbox-dark-medium-YQQCYUGQ.js.map +0 -1
  406. package/dist/gruvbox-dark-soft-BVW765JB.js +0 -9
  407. package/dist/gruvbox-dark-soft-BVW765JB.js.map +0 -1
  408. package/dist/gruvbox-light-hard-OUPRRXT6.js +0 -9
  409. package/dist/gruvbox-light-hard-OUPRRXT6.js.map +0 -1
  410. package/dist/gruvbox-light-medium-T4RNXI32.js +0 -9
  411. package/dist/gruvbox-light-medium-T4RNXI32.js.map +0 -1
  412. package/dist/gruvbox-light-soft-4MYG3GYS.js +0 -9
  413. package/dist/gruvbox-light-soft-4MYG3GYS.js.map +0 -1
  414. package/dist/hack-FB35KZWJ.js +0 -18
  415. package/dist/hack-FB35KZWJ.js.map +0 -1
  416. package/dist/haml-6AX7CJI4.js +0 -7
  417. package/dist/haml-6AX7CJI4.js.map +0 -1
  418. package/dist/handlebars-YW6ORGVD.js +0 -20
  419. package/dist/handlebars-YW6ORGVD.js.map +0 -1
  420. package/dist/haskell-BW3DSL4L.js +0 -12
  421. package/dist/haskell-BW3DSL4L.js.map +0 -1
  422. package/dist/haxe-RFTTNB72.js +0 -5
  423. package/dist/haxe-RFTTNB72.js.map +0 -1
  424. package/dist/hcl-TVOPV76I.js +0 -12
  425. package/dist/hcl-TVOPV76I.js.map +0 -1
  426. package/dist/hjson-DQ5DDMRQ.js +0 -12
  427. package/dist/hjson-DQ5DDMRQ.js.map +0 -1
  428. package/dist/hlsl-4WA6XPKF.js +0 -5
  429. package/dist/hlsl-4WA6XPKF.js.map +0 -1
  430. package/dist/horizon-BVILCHG6.js +0 -9
  431. package/dist/horizon-BVILCHG6.js.map +0 -1
  432. package/dist/horizon-bright-T7OMJQEC.js +0 -9
  433. package/dist/horizon-bright-T7OMJQEC.js.map +0 -1
  434. package/dist/houston-XEIPRG2B.js +0 -9
  435. package/dist/houston-XEIPRG2B.js.map +0 -1
  436. package/dist/html-DQDBDCCT.js +0 -7
  437. package/dist/html-DQDBDCCT.js.map +0 -1
  438. package/dist/html-derivative-QZTPLKZJ.js +0 -8
  439. package/dist/html-derivative-QZTPLKZJ.js.map +0 -1
  440. package/dist/http-USUTSKZC.js +0 -25
  441. package/dist/http-USUTSKZC.js.map +0 -1
  442. package/dist/hurl-S2ZRIRKI.js +0 -23
  443. package/dist/hurl-S2ZRIRKI.js.map +0 -1
  444. package/dist/hxml-76SBKUKV.js +0 -14
  445. package/dist/hxml-76SBKUKV.js.map +0 -1
  446. package/dist/hy-PUJTV654.js +0 -12
  447. package/dist/hy-PUJTV654.js.map +0 -1
  448. package/dist/imba-V2P77J5O.js +0 -12
  449. package/dist/imba-V2P77J5O.js.map +0 -1
  450. package/dist/ini-F5QATNOY.js +0 -12
  451. package/dist/ini-F5QATNOY.js.map +0 -1
  452. package/dist/java-HPWG7WCC.js +0 -5
  453. package/dist/java-HPWG7WCC.js.map +0 -1
  454. package/dist/javascript-DQEA7M65.js +0 -5
  455. package/dist/javascript-DQEA7M65.js.map +0 -1
  456. package/dist/jinja-NKTTBXCW.js +0 -23
  457. package/dist/jinja-NKTTBXCW.js.map +0 -1
  458. package/dist/jison-QEUB7I5Z.js +0 -14
  459. package/dist/jison-QEUB7I5Z.js.map +0 -1
  460. package/dist/json-KR4DST7J.js +0 -5
  461. package/dist/json-KR4DST7J.js.map +0 -1
  462. package/dist/json5-PPXKH5J5.js +0 -12
  463. package/dist/json5-PPXKH5J5.js.map +0 -1
  464. package/dist/jsonc-ALVA7DTN.js +0 -12
  465. package/dist/jsonc-ALVA7DTN.js.map +0 -1
  466. package/dist/jsonl-XJOT65XQ.js +0 -12
  467. package/dist/jsonl-XJOT65XQ.js.map +0 -1
  468. package/dist/jsonnet-54VMJ66A.js +0 -12
  469. package/dist/jsonnet-54VMJ66A.js.map +0 -1
  470. package/dist/jssm-HTREWWKK.js +0 -12
  471. package/dist/jssm-HTREWWKK.js.map +0 -1
  472. package/dist/jsx-4ZQLDJSY.js +0 -5
  473. package/dist/jsx-4ZQLDJSY.js.map +0 -1
  474. package/dist/julia-6I3SJVQT.js +0 -25
  475. package/dist/julia-6I3SJVQT.js.map +0 -1
  476. package/dist/just-QY6N5FJ6.js +0 -39
  477. package/dist/just-QY6N5FJ6.js.map +0 -1
  478. package/dist/kanagawa-dragon-I4DEB6E3.js +0 -9
  479. package/dist/kanagawa-dragon-I4DEB6E3.js.map +0 -1
  480. package/dist/kanagawa-lotus-MSMTIEQB.js +0 -9
  481. package/dist/kanagawa-lotus-MSMTIEQB.js.map +0 -1
  482. package/dist/kanagawa-wave-ELWGDTGE.js +0 -9
  483. package/dist/kanagawa-wave-ELWGDTGE.js.map +0 -1
  484. package/dist/kdl-TMMSU5DF.js +0 -12
  485. package/dist/kdl-TMMSU5DF.js.map +0 -1
  486. package/dist/kotlin-UNV4CNLK.js +0 -12
  487. package/dist/kotlin-UNV4CNLK.js.map +0 -1
  488. package/dist/kusto-MBCNQRFF.js +0 -12
  489. package/dist/kusto-MBCNQRFF.js.map +0 -1
  490. package/dist/laserwave-OA26JUVA.js +0 -9
  491. package/dist/laserwave-OA26JUVA.js.map +0 -1
  492. package/dist/latex-TMY2B22S.js +0 -15
  493. package/dist/latex-TMY2B22S.js.map +0 -1
  494. package/dist/lean-M5H2JKTM.js +0 -12
  495. package/dist/lean-M5H2JKTM.js.map +0 -1
  496. package/dist/less-DX2OYZQJ.js +0 -5
  497. package/dist/less-DX2OYZQJ.js.map +0 -1
  498. package/dist/light-plus-AA3N4RCX.js +0 -9
  499. package/dist/light-plus-AA3N4RCX.js.map +0 -1
  500. package/dist/liquid-2IPHR3GR.js +0 -20
  501. package/dist/liquid-2IPHR3GR.js.map +0 -1
  502. package/dist/llvm-P53676TG.js +0 -12
  503. package/dist/llvm-P53676TG.js.map +0 -1
  504. package/dist/log-PBSEXWBM.js +0 -12
  505. package/dist/log-PBSEXWBM.js.map +0 -1
  506. package/dist/logo-X27U7UG3.js +0 -12
  507. package/dist/logo-X27U7UG3.js.map +0 -1
  508. package/dist/lua-2NWSFQLY.js +0 -6
  509. package/dist/lua-2NWSFQLY.js.map +0 -1
  510. package/dist/luau-CYRRYPML.js +0 -12
  511. package/dist/luau-CYRRYPML.js.map +0 -1
  512. package/dist/make-MYRMQFS2.js +0 -12
  513. package/dist/make-MYRMQFS2.js.map +0 -1
  514. package/dist/markdown-WHKA7GLD.js +0 -5
  515. package/dist/markdown-WHKA7GLD.js.map +0 -1
  516. package/dist/marko-UWS5ULZ4.js +0 -20
  517. package/dist/marko-UWS5ULZ4.js.map +0 -1
  518. package/dist/material-theme-P445EEGT.js +0 -9
  519. package/dist/material-theme-P445EEGT.js.map +0 -1
  520. package/dist/material-theme-darker-T6QTOW6T.js +0 -9
  521. package/dist/material-theme-darker-T6QTOW6T.js.map +0 -1
  522. package/dist/material-theme-lighter-TYJ7O5LP.js +0 -9
  523. package/dist/material-theme-lighter-TYJ7O5LP.js.map +0 -1
  524. package/dist/material-theme-ocean-EO6O6PSU.js +0 -9
  525. package/dist/material-theme-ocean-EO6O6PSU.js.map +0 -1
  526. package/dist/material-theme-palenight-XN6X7I4T.js +0 -9
  527. package/dist/material-theme-palenight-XN6X7I4T.js.map +0 -1
  528. package/dist/matlab-CIQBNL6S.js +0 -12
  529. package/dist/matlab-CIQBNL6S.js.map +0 -1
  530. package/dist/mdc-RD4NMO6S.js +0 -21
  531. package/dist/mdc-RD4NMO6S.js.map +0 -1
  532. package/dist/mdx-QB3OZADW.js +0 -12
  533. package/dist/mdx-QB3OZADW.js.map +0 -1
  534. package/dist/mermaid-LXLBXMT2.js +0 -12
  535. package/dist/mermaid-LXLBXMT2.js.map +0 -1
  536. package/dist/min-dark-PPUCVVZP.js +0 -9
  537. package/dist/min-dark-PPUCVVZP.js.map +0 -1
  538. package/dist/min-light-IIN2A7TR.js +0 -9
  539. package/dist/min-light-IIN2A7TR.js.map +0 -1
  540. package/dist/mipsasm-FSZYRFUD.js +0 -12
  541. package/dist/mipsasm-FSZYRFUD.js.map +0 -1
  542. package/dist/mojo-FKWCRQPK.js +0 -12
  543. package/dist/mojo-FKWCRQPK.js.map +0 -1
  544. package/dist/monokai-TUNEDZ3V.js +0 -9
  545. package/dist/monokai-TUNEDZ3V.js.map +0 -1
  546. package/dist/moonbit-EOVGBDZH.js +0 -12
  547. package/dist/moonbit-EOVGBDZH.js.map +0 -1
  548. package/dist/move-H4Z2BRGU.js +0 -12
  549. package/dist/move-H4Z2BRGU.js.map +0 -1
  550. package/dist/narrat-E4ECNLTT.js +0 -12
  551. package/dist/narrat-E4ECNLTT.js.map +0 -1
  552. package/dist/nextflow-6VP4M3X5.js +0 -14
  553. package/dist/nextflow-6VP4M3X5.js.map +0 -1
  554. package/dist/nextflow-groovy-CCWLX7KI.js +0 -5
  555. package/dist/nextflow-groovy-CCWLX7KI.js.map +0 -1
  556. package/dist/nginx-E2WBABIK.js +0 -15
  557. package/dist/nginx-E2WBABIK.js.map +0 -1
  558. package/dist/night-owl-HIXXBOZ6.js +0 -9
  559. package/dist/night-owl-HIXXBOZ6.js.map +0 -1
  560. package/dist/night-owl-light-OQSRVHLB.js +0 -9
  561. package/dist/night-owl-light-OQSRVHLB.js.map +0 -1
  562. package/dist/nim-FXE7GRFS.js +0 -27
  563. package/dist/nim-FXE7GRFS.js.map +0 -1
  564. package/dist/nix-5VCLN4DY.js +0 -19
  565. package/dist/nix-5VCLN4DY.js.map +0 -1
  566. package/dist/nord-S5RNMUV5.js +0 -9
  567. package/dist/nord-S5RNMUV5.js.map +0 -1
  568. package/dist/nushell-VNKRRNKS.js +0 -12
  569. package/dist/nushell-VNKRRNKS.js.map +0 -1
  570. package/dist/objective-c-3TNXOGN5.js +0 -12
  571. package/dist/objective-c-3TNXOGN5.js.map +0 -1
  572. package/dist/objective-cpp-E65BQNLE.js +0 -12
  573. package/dist/objective-cpp-E65BQNLE.js.map +0 -1
  574. package/dist/ocaml-7SLL2ZHR.js +0 -12
  575. package/dist/ocaml-7SLL2ZHR.js.map +0 -1
  576. package/dist/odin-NN7X3DMA.js +0 -12
  577. package/dist/odin-NN7X3DMA.js.map +0 -1
  578. package/dist/one-dark-pro-MEHDEOJL.js +0 -9
  579. package/dist/one-dark-pro-MEHDEOJL.js.map +0 -1
  580. package/dist/one-light-MUDQUV3A.js +0 -9
  581. package/dist/one-light-MUDQUV3A.js.map +0 -1
  582. package/dist/openscad-S7LOQOUO.js +0 -12
  583. package/dist/openscad-S7LOQOUO.js.map +0 -1
  584. package/dist/pascal-QXHRO42K.js +0 -12
  585. package/dist/pascal-QXHRO42K.js.map +0 -1
  586. package/dist/perl-YQSH63HF.js +0 -11
  587. package/dist/perl-YQSH63HF.js.map +0 -1
  588. package/dist/php-UTKXTYVY.js +0 -12
  589. package/dist/php-UTKXTYVY.js.map +0 -1
  590. package/dist/pkl-3NV7WMSX.js +0 -12
  591. package/dist/pkl-3NV7WMSX.js.map +0 -1
  592. package/dist/plastic-HANH2CWP.js +0 -9
  593. package/dist/plastic-HANH2CWP.js.map +0 -1
  594. package/dist/plsql-MK4YJ6TT.js +0 -12
  595. package/dist/plsql-MK4YJ6TT.js.map +0 -1
  596. package/dist/po-R5ODK3WK.js +0 -12
  597. package/dist/po-R5ODK3WK.js.map +0 -1
  598. package/dist/poimandres-2F75GCHW.js +0 -9
  599. package/dist/poimandres-2F75GCHW.js.map +0 -1
  600. package/dist/polar-2LGVUP4U.js +0 -12
  601. package/dist/polar-2LGVUP4U.js.map +0 -1
  602. package/dist/postcss-XCLET5GU.js +0 -5
  603. package/dist/postcss-XCLET5GU.js.map +0 -1
  604. package/dist/powerquery-XQCTXPHV.js +0 -12
  605. package/dist/powerquery-XQCTXPHV.js.map +0 -1
  606. package/dist/powershell-CR4WJAGO.js +0 -12
  607. package/dist/powershell-CR4WJAGO.js.map +0 -1
  608. package/dist/prisma-Z4ILVXM2.js +0 -12
  609. package/dist/prisma-Z4ILVXM2.js.map +0 -1
  610. package/dist/prolog-BAZSKAQ6.js +0 -12
  611. package/dist/prolog-BAZSKAQ6.js.map +0 -1
  612. package/dist/proto-WEVH2LTI.js +0 -12
  613. package/dist/proto-WEVH2LTI.js.map +0 -1
  614. package/dist/pug-XBCVMPUE.js +0 -18
  615. package/dist/pug-XBCVMPUE.js.map +0 -1
  616. package/dist/puppet-WFEYTP3B.js +0 -12
  617. package/dist/puppet-WFEYTP3B.js.map +0 -1
  618. package/dist/purescript-SZ56C6X7.js +0 -12
  619. package/dist/purescript-SZ56C6X7.js.map +0 -1
  620. package/dist/python-3HB5K3UR.js +0 -5
  621. package/dist/python-3HB5K3UR.js.map +0 -1
  622. package/dist/qml-5ZTL7SFE.js +0 -14
  623. package/dist/qml-5ZTL7SFE.js.map +0 -1
  624. package/dist/qmldir-T3LV2LL7.js +0 -12
  625. package/dist/qmldir-T3LV2LL7.js.map +0 -1
  626. package/dist/qss-VHFIXD2X.js +0 -12
  627. package/dist/qss-VHFIXD2X.js.map +0 -1
  628. package/dist/r-4M224EWI.js +0 -5
  629. package/dist/r-4M224EWI.js.map +0 -1
  630. package/dist/racket-7NAIL33A.js +0 -12
  631. package/dist/racket-7NAIL33A.js.map +0 -1
  632. package/dist/raku-6QQZDC2L.js +0 -12
  633. package/dist/raku-6QQZDC2L.js.map +0 -1
  634. package/dist/razor-I32TUZ7P.js +0 -18
  635. package/dist/razor-I32TUZ7P.js.map +0 -1
  636. package/dist/red-27PYPCK7.js +0 -9
  637. package/dist/red-27PYPCK7.js.map +0 -1
  638. package/dist/reg-H24WQZTW.js +0 -12
  639. package/dist/reg-H24WQZTW.js.map +0 -1
  640. package/dist/regexp-VAJRS3KM.js +0 -5
  641. package/dist/regexp-VAJRS3KM.js.map +0 -1
  642. package/dist/rel-DCCVKHFU.js +0 -12
  643. package/dist/rel-DCCVKHFU.js.map +0 -1
  644. package/dist/riscv-F3SEVDHQ.js +0 -12
  645. package/dist/riscv-F3SEVDHQ.js.map +0 -1
  646. package/dist/ron-XD3O4IZG.js +0 -12
  647. package/dist/ron-XD3O4IZG.js.map +0 -1
  648. package/dist/rose-pine-RUOKKFA4.js +0 -9
  649. package/dist/rose-pine-RUOKKFA4.js.map +0 -1
  650. package/dist/rose-pine-dawn-TAVGSNJC.js +0 -9
  651. package/dist/rose-pine-dawn-TAVGSNJC.js.map +0 -1
  652. package/dist/rose-pine-moon-FJ45AP64.js +0 -9
  653. package/dist/rose-pine-moon-FJ45AP64.js.map +0 -1
  654. package/dist/rosmsg-3U72DFRK.js +0 -12
  655. package/dist/rosmsg-3U72DFRK.js.map +0 -1
  656. package/dist/rst-YIUM7MOR.js +0 -42
  657. package/dist/rst-YIUM7MOR.js.map +0 -1
  658. package/dist/ruby-FXXFCC4R.js +0 -23
  659. package/dist/ruby-FXXFCC4R.js.map +0 -1
  660. package/dist/rust-RX46MLFD.js +0 -12
  661. package/dist/rust-RX46MLFD.js.map +0 -1
  662. package/dist/sas-KNWLLNSF.js +0 -14
  663. package/dist/sas-KNWLLNSF.js.map +0 -1
  664. package/dist/sass-BFJZ2T4C.js +0 -12
  665. package/dist/sass-BFJZ2T4C.js.map +0 -1
  666. package/dist/scala-5Z2GMMJW.js +0 -12
  667. package/dist/scala-5Z2GMMJW.js.map +0 -1
  668. package/dist/scheme-4PLNSDZL.js +0 -12
  669. package/dist/scheme-4PLNSDZL.js.map +0 -1
  670. package/dist/scss-5EP3AMK7.js +0 -6
  671. package/dist/scss-5EP3AMK7.js.map +0 -1
  672. package/dist/sdbl-7LKDFMKN.js +0 -5
  673. package/dist/sdbl-7LKDFMKN.js.map +0 -1
  674. package/dist/shaderlab-STIROWFG.js +0 -14
  675. package/dist/shaderlab-STIROWFG.js.map +0 -1
  676. package/dist/shellscript-MDDU253R.js +0 -5
  677. package/dist/shellscript-MDDU253R.js.map +0 -1
  678. package/dist/shellsession-A3XNTXNY.js +0 -14
  679. package/dist/shellsession-A3XNTXNY.js.map +0 -1
  680. package/dist/slack-dark-XGEHHKVC.js +0 -9
  681. package/dist/slack-dark-XGEHHKVC.js.map +0 -1
  682. package/dist/slack-ochin-IFNQCV6G.js +0 -9
  683. package/dist/slack-ochin-IFNQCV6G.js.map +0 -1
  684. package/dist/smalltalk-CYUMZGLQ.js +0 -12
  685. package/dist/smalltalk-CYUMZGLQ.js.map +0 -1
  686. package/dist/snazzy-light-O3X4RLHH.js +0 -9
  687. package/dist/snazzy-light-O3X4RLHH.js.map +0 -1
  688. package/dist/solarized-dark-IZJZSHGU.js +0 -9
  689. package/dist/solarized-dark-IZJZSHGU.js.map +0 -1
  690. package/dist/solarized-light-KEG5JCKJ.js +0 -9
  691. package/dist/solarized-light-KEG5JCKJ.js.map +0 -1
  692. package/dist/solidity-POXXRDXA.js +0 -12
  693. package/dist/solidity-POXXRDXA.js.map +0 -1
  694. package/dist/soy-3DFPDIT3.js +0 -16
  695. package/dist/soy-3DFPDIT3.js.map +0 -1
  696. package/dist/sparql-WFFPEPWQ.js +0 -14
  697. package/dist/sparql-WFFPEPWQ.js.map +0 -1
  698. package/dist/splunk-PQOINYTQ.js +0 -12
  699. package/dist/splunk-PQOINYTQ.js.map +0 -1
  700. package/dist/sql-IYJGW3YL.js +0 -5
  701. package/dist/sql-IYJGW3YL.js.map +0 -1
  702. package/dist/ssh-config-HLIBKM6N.js +0 -12
  703. package/dist/ssh-config-HLIBKM6N.js.map +0 -1
  704. package/dist/stata-K4JB4R4H.js +0 -14
  705. package/dist/stata-K4JB4R4H.js.map +0 -1
  706. package/dist/stylus-QT6WHANE.js +0 -5
  707. package/dist/stylus-QT6WHANE.js.map +0 -1
  708. package/dist/surrealql-6ROLRS4U.js +0 -14
  709. package/dist/surrealql-6ROLRS4U.js.map +0 -1
  710. package/dist/svelte-ENLTUBUN.js +0 -20
  711. package/dist/svelte-ENLTUBUN.js.map +0 -1
  712. package/dist/swift-E2MNCIQR.js +0 -12
  713. package/dist/swift-E2MNCIQR.js.map +0 -1
  714. package/dist/synthwave-84-TYT62T26.js +0 -9
  715. package/dist/synthwave-84-TYT62T26.js.map +0 -1
  716. package/dist/system-verilog-Z4N3QF73.js +0 -12
  717. package/dist/system-verilog-Z4N3QF73.js.map +0 -1
  718. package/dist/systemd-Y7VQSFSH.js +0 -12
  719. package/dist/systemd-Y7VQSFSH.js.map +0 -1
  720. package/dist/talonscript-6CLMOXTK.js +0 -12
  721. package/dist/talonscript-6CLMOXTK.js.map +0 -1
  722. package/dist/tasl-A4VDHPKT.js +0 -12
  723. package/dist/tasl-A4VDHPKT.js.map +0 -1
  724. package/dist/tcl-2SL52PE4.js +0 -12
  725. package/dist/tcl-2SL52PE4.js.map +0 -1
  726. package/dist/templ-2UOOWKDY.js +0 -18
  727. package/dist/templ-2UOOWKDY.js.map +0 -1
  728. package/dist/terraform-LNOBCQSQ.js +0 -12
  729. package/dist/terraform-LNOBCQSQ.js.map +0 -1
  730. package/dist/tex-E5Z5K2IQ.js +0 -6
  731. package/dist/tex-E5Z5K2IQ.js.map +0 -1
  732. package/dist/tokyo-night-TUHHTHJQ.js +0 -9
  733. package/dist/tokyo-night-TUHHTHJQ.js.map +0 -1
  734. package/dist/toml-QZT5BBJD.js +0 -12
  735. package/dist/toml-QZT5BBJD.js.map +0 -1
  736. package/dist/ts-tags-JE64CMES.js +0 -69
  737. package/dist/ts-tags-JE64CMES.js.map +0 -1
  738. package/dist/tsv-UDCI7JVS.js +0 -12
  739. package/dist/tsv-UDCI7JVS.js.map +0 -1
  740. package/dist/tsx-ZBWHJW62.js +0 -5
  741. package/dist/tsx-ZBWHJW62.js.map +0 -1
  742. package/dist/turtle-UU53T34M.js +0 -5
  743. package/dist/turtle-UU53T34M.js.map +0 -1
  744. package/dist/twig-EOFGED3G.js +0 -41
  745. package/dist/twig-EOFGED3G.js.map +0 -1
  746. package/dist/typescript-7C7YHR5U.js +0 -5
  747. package/dist/typescript-7C7YHR5U.js.map +0 -1
  748. package/dist/typespec-H7STWLOY.js +0 -12
  749. package/dist/typespec-H7STWLOY.js.map +0 -1
  750. package/dist/typst-KBL32OQY.js +0 -12
  751. package/dist/typst-KBL32OQY.js.map +0 -1
  752. package/dist/v-WENI4OVS.js +0 -12
  753. package/dist/v-WENI4OVS.js.map +0 -1
  754. package/dist/vala-R3YAOOIL.js +0 -12
  755. package/dist/vala-R3YAOOIL.js.map +0 -1
  756. package/dist/vb-RRC3J54L.js +0 -12
  757. package/dist/vb-RRC3J54L.js.map +0 -1
  758. package/dist/verilog-WECG3PRI.js +0 -12
  759. package/dist/verilog-WECG3PRI.js.map +0 -1
  760. package/dist/vesper-ENQ2YO5K.js +0 -9
  761. package/dist/vesper-ENQ2YO5K.js.map +0 -1
  762. package/dist/vhdl-G42HXPDQ.js +0 -12
  763. package/dist/vhdl-G42HXPDQ.js.map +0 -1
  764. package/dist/viml-WECNMVFW.js +0 -12
  765. package/dist/viml-WECNMVFW.js.map +0 -1
  766. package/dist/vitesse-black-4JM4FOZP.js +0 -9
  767. package/dist/vitesse-black-4JM4FOZP.js.map +0 -1
  768. package/dist/vitesse-dark-NZ6KHCWK.js +0 -9
  769. package/dist/vitesse-dark-NZ6KHCWK.js.map +0 -1
  770. package/dist/vitesse-light-6F6FC7ZM.js +0 -9
  771. package/dist/vitesse-light-6F6FC7ZM.js.map +0 -1
  772. package/dist/vue-QH4EUV2Z.js +0 -53
  773. package/dist/vue-QH4EUV2Z.js.map +0 -1
  774. package/dist/vue-html-XQYRERJG.js +0 -14
  775. package/dist/vue-html-XQYRERJG.js.map +0 -1
  776. package/dist/vue-vine-3AQ2LYBZ.js +0 -24
  777. package/dist/vue-vine-3AQ2LYBZ.js.map +0 -1
  778. package/dist/vyper-3A7AVADW.js +0 -12
  779. package/dist/vyper-3A7AVADW.js.map +0 -1
  780. package/dist/wasm-S2373ZDP.js +0 -13
  781. package/dist/wasm-S2373ZDP.js.map +0 -1
  782. package/dist/wasm-YTY2LDIW.js +0 -12
  783. package/dist/wasm-YTY2LDIW.js.map +0 -1
  784. package/dist/wenyan-RG7MYB7C.js +0 -12
  785. package/dist/wenyan-RG7MYB7C.js.map +0 -1
  786. package/dist/wgsl-6B6LRIUC.js +0 -12
  787. package/dist/wgsl-6B6LRIUC.js.map +0 -1
  788. package/dist/wikitext-VW3NBYSD.js +0 -12
  789. package/dist/wikitext-VW3NBYSD.js.map +0 -1
  790. package/dist/wit-K27OMEII.js +0 -12
  791. package/dist/wit-K27OMEII.js.map +0 -1
  792. package/dist/wolfram-FE5SLKFY.js +0 -12
  793. package/dist/wolfram-FE5SLKFY.js.map +0 -1
  794. package/dist/xml-RMR6KFJI.js +0 -6
  795. package/dist/xml-RMR6KFJI.js.map +0 -1
  796. package/dist/xsl-IPJLVHBY.js +0 -15
  797. package/dist/xsl-IPJLVHBY.js.map +0 -1
  798. package/dist/yaml-S2WHJNKF.js +0 -5
  799. package/dist/yaml-S2WHJNKF.js.map +0 -1
  800. package/dist/zenscript-JSWRUHOB.js +0 -12
  801. package/dist/zenscript-JSWRUHOB.js.map +0 -1
  802. package/dist/zig-UETYH7UE.js +0 -12
  803. package/dist/zig-UETYH7UE.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../node_modules/.pnpm/shiki@4.0.2/node_modules/shiki/dist/chunk-CtajNgzt.mjs","../node_modules/.pnpm/shiki@4.0.2/node_modules/shiki/dist/langs-bundle-full-DfKZStlK.mjs","../node_modules/.pnpm/shiki@4.0.2/node_modules/shiki/dist/themes.mjs","../node_modules/.pnpm/@shikijs+engine-oniguruma@4.0.2/node_modules/@shikijs/engine-oniguruma/dist/index.mjs","../node_modules/.pnpm/shiki@4.0.2/node_modules/shiki/dist/engine-oniguruma.mjs","../node_modules/.pnpm/@shikijs+types@4.0.2/node_modules/@shikijs/types/dist/index.mjs","../node_modules/.pnpm/@shikijs+vscode-textmate@10.0.2/node_modules/@shikijs/vscode-textmate/dist/index.js","../node_modules/.pnpm/@shikijs+primitive@4.0.2/node_modules/@shikijs/primitive/dist/index.mjs","../node_modules/.pnpm/html-void-elements@3.0.0/node_modules/html-void-elements/index.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/schema.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/merge.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/normalize.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/info.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/types.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/defined-info.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/create.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/aria.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/html.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/svg.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xlink.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xmlns.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xml.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/find.js","../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/index.js","../node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/index.js","../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/core.js","../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-hexadecimal.js","../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-decimal.js","../node_modules/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/index.js","../node_modules/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/index.js","../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/constant/dangerous.js","../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-named.js","../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-smart.js","../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/index.js","../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/comment.js","../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/doctype.js","../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js","../node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/index.js","../node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/index.js","../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/lib/index.js","../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/omission/util/siblings.js","../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/omission/omission.js","../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/omission/closing.js","../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/omission/opening.js","../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/element.js","../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/text.js","../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/raw.js","../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/root.js","../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/index.js","../node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/index.js","../node_modules/.pnpm/@shikijs+core@4.0.2/node_modules/@shikijs/core/dist/index.mjs","../node_modules/.pnpm/shiki@4.0.2/node_modules/shiki/dist/bundle-full.mjs","../node_modules/.pnpm/@shikijs+engine-javascript@4.0.2/node_modules/@shikijs/engine-javascript/dist/scanner-BFcBmQR1.mjs","../node_modules/.pnpm/oniguruma-parser@0.12.1/node_modules/oniguruma-parser/src/utils.ts","../node_modules/.pnpm/oniguruma-parser@0.12.1/node_modules/oniguruma-parser/src/tokenizer/tokenize.ts","../node_modules/.pnpm/oniguruma-parser@0.12.1/node_modules/oniguruma-parser/src/parser/node-utils.ts","../node_modules/.pnpm/oniguruma-parser@0.12.1/node_modules/oniguruma-parser/src/parser/parse.ts","../node_modules/.pnpm/oniguruma-parser@0.12.1/node_modules/oniguruma-parser/src/traverser/traverse.ts","../node_modules/.pnpm/regex@6.1.0/node_modules/regex/src/utils-internals.js","../node_modules/.pnpm/regex-utilities@2.3.0/node_modules/regex-utilities/src/index.js","../node_modules/.pnpm/regex@6.1.0/node_modules/regex/src/atomic.js","../node_modules/.pnpm/regex-recursion@6.0.2/node_modules/regex-recursion/src/index.js","../node_modules/.pnpm/oniguruma-to-es@4.3.4/node_modules/oniguruma-to-es/src/utils.js","../node_modules/.pnpm/oniguruma-to-es@4.3.4/node_modules/oniguruma-to-es/src/options.js","../node_modules/.pnpm/oniguruma-to-es@4.3.4/node_modules/oniguruma-to-es/src/unicode.js","../node_modules/.pnpm/oniguruma-to-es@4.3.4/node_modules/oniguruma-to-es/src/transform.js","../node_modules/.pnpm/oniguruma-to-es@4.3.4/node_modules/oniguruma-to-es/src/generate.js","../node_modules/.pnpm/oniguruma-to-es@4.3.4/node_modules/oniguruma-to-es/src/subclass.js","../node_modules/.pnpm/oniguruma-to-es@4.3.4/node_modules/oniguruma-to-es/src/index.js","../node_modules/.pnpm/@shikijs+engine-javascript@4.0.2/node_modules/@shikijs/engine-javascript/dist/engine-compile.mjs","../node_modules/.pnpm/shiki@4.0.2/node_modules/shiki/dist/index.mjs"],"names":["all","i","key","k","_a","a","x","__defProp","__publicField","_OnigString","p","s","ShikiError","r","b","v","j","root","head","token","q","m","_b","clone","l","Registry","_","langs","themes","GrammarState","stack","tokens","html","svg","one","own","_2","stringify","increment","siblings","body","tbody","child","y","emptyChildren","decorations","normalizePosition","d","text","transform","codeToTokensBase","t","options","createHighlighter","getSingletonHighlighterCore","bundledLanguages","bundledThemes","core","getSingletonHighlighter","name","codeToHast","codeToHtml","codeToTokens","codeToTokensWithThemes","getLastGrammarState","cpOf","char","getOrInsert","map","defaultValue","PosixClassNames","throwIfNullish","value","msg","charClassOpenPattern","sharedEscapesPattern","quantifierRe","tokenRe","charClassTokenRe","tokenize","pattern","opts","flagProperties","getFlagProperties","xStack","context","isXOn","match","result","getTokenWithDetails","potentialUnnamedCaptureTokens","numNamedAndOptInUnnamedCaptures","numCaptures","splitEscapedNumberToken","lastIndex","m0","m1","getAllTokensForCharClass","createAssertionToken","createSubroutineToken","createBackreferenceToken","createDirectiveToken","createCharacterSetToken","tokenizeSharedEscape","tokenizeNamedCallout","tokenizeFlagModifier","createGroupOpenToken","createGroupCloseToken","end","re","kind","createAlternatorToken","splitQuantifierMatch","createCharacterToken","opener","createCharacterClassOpenToken","numCharClassesOpen","createCharacterClassCloseToken","tokenizeAnyTokenWithinCharClass","raw","posix","createCharacterClassHyphenToken","createCharacterClassIntersectorToken","inCharClass","char1","tokenizeControlCharacter","tokenizeShorthand","tokenizeUnicodeProperty","bytes","hex","decoded","encoder","byte","e","getValidatedHexCharCode","EscapeCharCodes","createEscapedNumberToken","negate","createNamedCalloutToken","tag","args","createQuantifierToken","min","max","CalloutNames","on","off","enabledFlags","getFlagGroupSwitches","disabledFlags","flagChanges","callout","argsArray","arg","arg0","arg1","arg2","tokenizeQuantifier","minStr","maxStr","limit","lower","neg","flags","obj","matches","str","withG","parts","hasOnlyChild","node","props","kid","isQuantifiable","quantifiableTypes","parse","tokenized","walk","parent","state","createAlternative","parseAssertion","parseBackreference","createCharacter","parseCharacterClassHyphen","parseCharacterClassOpen","parseCharacterSet","createDirective","parseGroupOpen","createNamedCallout","parseQuantifier","parseSubroutine","ast","createRegex","createFlags","top","capturingGroups","hasNumberedRef","namedGroupsByName","subroutines","ref","createAssertion","hasKWrapper","fromNum","num","isRelative","numCapturesToLeft","orphan","createBackreference","numberedRef","prevSiblingNode","nextToken","nextNode","createCharacterClassRange","firstClassToken","intersections","createCharacterClass","throwIfUnclosedCharacterClass","cc","normalizeUnknownPropertyNames","skipPropertyNameValidation","unicodePropertyMap","normalized","slug","createUnicodeProperty","createPosixClass","createCharacterSet","skipLookbehindValidation","createByGroupKind","isThisAbsenceFunction","isThisLookbehind","isLookbehind","isThisNegLookbehind","throwIfUnclosedGroup","alt","isLookahead","quantifiedNode","createQuantifier","createSubroutine","createAbsenceFunction","getBodyForAlternativeContainer","getBodyForElementContainer","createCapturingGroup","number","isValidGroupName","charCode","createGroup","atomic","createLookaroundAssertion","normalizeUnicodePropertyName","traverse","visitor","traverseArray","array","keyShift","traverseNode","container","skipTraversingKidsOfPath","path","arrayContainer","numericKey","shifted","newNode","traverseNew","newNodes","keyShiftInLoop","type","anyTypeVisitor","thisTypeVisitor","enterAllFn","enterThisFn","f","incrementIfAtLeast","w","range","A","K","Q","F","B","C","E","o","recursion","P","O","J"],"mappings":"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","file":"dist-42IWCT5F.js","sourcesContent":["//#region \\0rolldown/runtime.js\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __exportAll = (all, no_symbols) => {\n\tlet target = {};\n\tfor (var name in all) {\n\t\t__defProp(target, name, {\n\t\t\tget: all[name],\n\t\t\tenumerable: true\n\t\t});\n\t}\n\tif (!no_symbols) {\n\t\t__defProp(target, Symbol.toStringTag, { value: \"Module\" });\n\t}\n\treturn target;\n};\nvar __copyProps = (to, from, except, desc) => {\n\tif (from && typeof from === \"object\" || typeof from === \"function\") {\n\t\tfor (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {\n\t\t\tkey = keys[i];\n\t\t\tif (!__hasOwnProp.call(to, key) && key !== except) {\n\t\t\t\t__defProp(to, key, {\n\t\t\t\t\tget: ((k) => from[k]).bind(null, key),\n\t\t\t\t\tenumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\treturn to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n//#endregion\nexport { __reExport as n, __exportAll as t };","//#region src/langs-bundle-full.ts\nconst bundledLanguagesInfo = [\n\t{\n\t\t\"id\": \"abap\",\n\t\t\"name\": \"ABAP\",\n\t\t\"import\": (() => import(\"@shikijs/langs/abap\"))\n\t},\n\t{\n\t\t\"id\": \"actionscript-3\",\n\t\t\"name\": \"ActionScript\",\n\t\t\"import\": (() => import(\"@shikijs/langs/actionscript-3\"))\n\t},\n\t{\n\t\t\"id\": \"ada\",\n\t\t\"name\": \"Ada\",\n\t\t\"import\": (() => import(\"@shikijs/langs/ada\"))\n\t},\n\t{\n\t\t\"id\": \"angular-html\",\n\t\t\"name\": \"Angular HTML\",\n\t\t\"import\": (() => import(\"@shikijs/langs/angular-html\"))\n\t},\n\t{\n\t\t\"id\": \"angular-ts\",\n\t\t\"name\": \"Angular TypeScript\",\n\t\t\"import\": (() => import(\"@shikijs/langs/angular-ts\"))\n\t},\n\t{\n\t\t\"id\": \"apache\",\n\t\t\"name\": \"Apache Conf\",\n\t\t\"import\": (() => import(\"@shikijs/langs/apache\"))\n\t},\n\t{\n\t\t\"id\": \"apex\",\n\t\t\"name\": \"Apex\",\n\t\t\"import\": (() => import(\"@shikijs/langs/apex\"))\n\t},\n\t{\n\t\t\"id\": \"apl\",\n\t\t\"name\": \"APL\",\n\t\t\"import\": (() => import(\"@shikijs/langs/apl\"))\n\t},\n\t{\n\t\t\"id\": \"applescript\",\n\t\t\"name\": \"AppleScript\",\n\t\t\"import\": (() => import(\"@shikijs/langs/applescript\"))\n\t},\n\t{\n\t\t\"id\": \"ara\",\n\t\t\"name\": \"Ara\",\n\t\t\"import\": (() => import(\"@shikijs/langs/ara\"))\n\t},\n\t{\n\t\t\"id\": \"asciidoc\",\n\t\t\"name\": \"AsciiDoc\",\n\t\t\"aliases\": [\"adoc\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/asciidoc\"))\n\t},\n\t{\n\t\t\"id\": \"asm\",\n\t\t\"name\": \"Assembly\",\n\t\t\"import\": (() => import(\"@shikijs/langs/asm\"))\n\t},\n\t{\n\t\t\"id\": \"astro\",\n\t\t\"name\": \"Astro\",\n\t\t\"import\": (() => import(\"@shikijs/langs/astro\"))\n\t},\n\t{\n\t\t\"id\": \"awk\",\n\t\t\"name\": \"AWK\",\n\t\t\"import\": (() => import(\"@shikijs/langs/awk\"))\n\t},\n\t{\n\t\t\"id\": \"ballerina\",\n\t\t\"name\": \"Ballerina\",\n\t\t\"import\": (() => import(\"@shikijs/langs/ballerina\"))\n\t},\n\t{\n\t\t\"id\": \"bat\",\n\t\t\"name\": \"Batch File\",\n\t\t\"aliases\": [\"batch\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/bat\"))\n\t},\n\t{\n\t\t\"id\": \"beancount\",\n\t\t\"name\": \"Beancount\",\n\t\t\"import\": (() => import(\"@shikijs/langs/beancount\"))\n\t},\n\t{\n\t\t\"id\": \"berry\",\n\t\t\"name\": \"Berry\",\n\t\t\"aliases\": [\"be\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/berry\"))\n\t},\n\t{\n\t\t\"id\": \"bibtex\",\n\t\t\"name\": \"BibTeX\",\n\t\t\"import\": (() => import(\"@shikijs/langs/bibtex\"))\n\t},\n\t{\n\t\t\"id\": \"bicep\",\n\t\t\"name\": \"Bicep\",\n\t\t\"import\": (() => import(\"@shikijs/langs/bicep\"))\n\t},\n\t{\n\t\t\"id\": \"bird2\",\n\t\t\"name\": \"BIRD2 Configuration\",\n\t\t\"aliases\": [\"bird\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/bird2\"))\n\t},\n\t{\n\t\t\"id\": \"blade\",\n\t\t\"name\": \"Blade\",\n\t\t\"import\": (() => import(\"@shikijs/langs/blade\"))\n\t},\n\t{\n\t\t\"id\": \"bsl\",\n\t\t\"name\": \"1C (Enterprise)\",\n\t\t\"aliases\": [\"1c\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/bsl\"))\n\t},\n\t{\n\t\t\"id\": \"c\",\n\t\t\"name\": \"C\",\n\t\t\"import\": (() => import(\"@shikijs/langs/c\"))\n\t},\n\t{\n\t\t\"id\": \"c3\",\n\t\t\"name\": \"C3\",\n\t\t\"import\": (() => import(\"@shikijs/langs/c3\"))\n\t},\n\t{\n\t\t\"id\": \"cadence\",\n\t\t\"name\": \"Cadence\",\n\t\t\"aliases\": [\"cdc\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/cadence\"))\n\t},\n\t{\n\t\t\"id\": \"cairo\",\n\t\t\"name\": \"Cairo\",\n\t\t\"import\": (() => import(\"@shikijs/langs/cairo\"))\n\t},\n\t{\n\t\t\"id\": \"clarity\",\n\t\t\"name\": \"Clarity\",\n\t\t\"import\": (() => import(\"@shikijs/langs/clarity\"))\n\t},\n\t{\n\t\t\"id\": \"clojure\",\n\t\t\"name\": \"Clojure\",\n\t\t\"aliases\": [\"clj\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/clojure\"))\n\t},\n\t{\n\t\t\"id\": \"cmake\",\n\t\t\"name\": \"CMake\",\n\t\t\"import\": (() => import(\"@shikijs/langs/cmake\"))\n\t},\n\t{\n\t\t\"id\": \"cobol\",\n\t\t\"name\": \"COBOL\",\n\t\t\"import\": (() => import(\"@shikijs/langs/cobol\"))\n\t},\n\t{\n\t\t\"id\": \"codeowners\",\n\t\t\"name\": \"CODEOWNERS\",\n\t\t\"import\": (() => import(\"@shikijs/langs/codeowners\"))\n\t},\n\t{\n\t\t\"id\": \"codeql\",\n\t\t\"name\": \"CodeQL\",\n\t\t\"aliases\": [\"ql\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/codeql\"))\n\t},\n\t{\n\t\t\"id\": \"coffee\",\n\t\t\"name\": \"CoffeeScript\",\n\t\t\"aliases\": [\"coffeescript\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/coffee\"))\n\t},\n\t{\n\t\t\"id\": \"common-lisp\",\n\t\t\"name\": \"Common Lisp\",\n\t\t\"aliases\": [\"lisp\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/common-lisp\"))\n\t},\n\t{\n\t\t\"id\": \"coq\",\n\t\t\"name\": \"Coq\",\n\t\t\"import\": (() => import(\"@shikijs/langs/coq\"))\n\t},\n\t{\n\t\t\"id\": \"cpp\",\n\t\t\"name\": \"C++\",\n\t\t\"aliases\": [\"c++\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/cpp\"))\n\t},\n\t{\n\t\t\"id\": \"crystal\",\n\t\t\"name\": \"Crystal\",\n\t\t\"import\": (() => import(\"@shikijs/langs/crystal\"))\n\t},\n\t{\n\t\t\"id\": \"csharp\",\n\t\t\"name\": \"C#\",\n\t\t\"aliases\": [\"c#\", \"cs\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/csharp\"))\n\t},\n\t{\n\t\t\"id\": \"css\",\n\t\t\"name\": \"CSS\",\n\t\t\"import\": (() => import(\"@shikijs/langs/css\"))\n\t},\n\t{\n\t\t\"id\": \"csv\",\n\t\t\"name\": \"CSV\",\n\t\t\"import\": (() => import(\"@shikijs/langs/csv\"))\n\t},\n\t{\n\t\t\"id\": \"cue\",\n\t\t\"name\": \"CUE\",\n\t\t\"import\": (() => import(\"@shikijs/langs/cue\"))\n\t},\n\t{\n\t\t\"id\": \"cypher\",\n\t\t\"name\": \"Cypher\",\n\t\t\"aliases\": [\"cql\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/cypher\"))\n\t},\n\t{\n\t\t\"id\": \"d\",\n\t\t\"name\": \"D\",\n\t\t\"import\": (() => import(\"@shikijs/langs/d\"))\n\t},\n\t{\n\t\t\"id\": \"dart\",\n\t\t\"name\": \"Dart\",\n\t\t\"import\": (() => import(\"@shikijs/langs/dart\"))\n\t},\n\t{\n\t\t\"id\": \"dax\",\n\t\t\"name\": \"DAX\",\n\t\t\"import\": (() => import(\"@shikijs/langs/dax\"))\n\t},\n\t{\n\t\t\"id\": \"desktop\",\n\t\t\"name\": \"Desktop\",\n\t\t\"import\": (() => import(\"@shikijs/langs/desktop\"))\n\t},\n\t{\n\t\t\"id\": \"diff\",\n\t\t\"name\": \"Diff\",\n\t\t\"import\": (() => import(\"@shikijs/langs/diff\"))\n\t},\n\t{\n\t\t\"id\": \"docker\",\n\t\t\"name\": \"Dockerfile\",\n\t\t\"aliases\": [\"dockerfile\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/docker\"))\n\t},\n\t{\n\t\t\"id\": \"dotenv\",\n\t\t\"name\": \"dotEnv\",\n\t\t\"import\": (() => import(\"@shikijs/langs/dotenv\"))\n\t},\n\t{\n\t\t\"id\": \"dream-maker\",\n\t\t\"name\": \"Dream Maker\",\n\t\t\"import\": (() => import(\"@shikijs/langs/dream-maker\"))\n\t},\n\t{\n\t\t\"id\": \"edge\",\n\t\t\"name\": \"Edge\",\n\t\t\"import\": (() => import(\"@shikijs/langs/edge\"))\n\t},\n\t{\n\t\t\"id\": \"elixir\",\n\t\t\"name\": \"Elixir\",\n\t\t\"import\": (() => import(\"@shikijs/langs/elixir\"))\n\t},\n\t{\n\t\t\"id\": \"elm\",\n\t\t\"name\": \"Elm\",\n\t\t\"import\": (() => import(\"@shikijs/langs/elm\"))\n\t},\n\t{\n\t\t\"id\": \"emacs-lisp\",\n\t\t\"name\": \"Emacs Lisp\",\n\t\t\"aliases\": [\"elisp\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/emacs-lisp\"))\n\t},\n\t{\n\t\t\"id\": \"erb\",\n\t\t\"name\": \"ERB\",\n\t\t\"import\": (() => import(\"@shikijs/langs/erb\"))\n\t},\n\t{\n\t\t\"id\": \"erlang\",\n\t\t\"name\": \"Erlang\",\n\t\t\"aliases\": [\"erl\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/erlang\"))\n\t},\n\t{\n\t\t\"id\": \"fennel\",\n\t\t\"name\": \"Fennel\",\n\t\t\"import\": (() => import(\"@shikijs/langs/fennel\"))\n\t},\n\t{\n\t\t\"id\": \"fish\",\n\t\t\"name\": \"Fish\",\n\t\t\"import\": (() => import(\"@shikijs/langs/fish\"))\n\t},\n\t{\n\t\t\"id\": \"fluent\",\n\t\t\"name\": \"Fluent\",\n\t\t\"aliases\": [\"ftl\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/fluent\"))\n\t},\n\t{\n\t\t\"id\": \"fortran-fixed-form\",\n\t\t\"name\": \"Fortran (Fixed Form)\",\n\t\t\"aliases\": [\n\t\t\t\"f\",\n\t\t\t\"for\",\n\t\t\t\"f77\"\n\t\t],\n\t\t\"import\": (() => import(\"@shikijs/langs/fortran-fixed-form\"))\n\t},\n\t{\n\t\t\"id\": \"fortran-free-form\",\n\t\t\"name\": \"Fortran (Free Form)\",\n\t\t\"aliases\": [\n\t\t\t\"f90\",\n\t\t\t\"f95\",\n\t\t\t\"f03\",\n\t\t\t\"f08\",\n\t\t\t\"f18\"\n\t\t],\n\t\t\"import\": (() => import(\"@shikijs/langs/fortran-free-form\"))\n\t},\n\t{\n\t\t\"id\": \"fsharp\",\n\t\t\"name\": \"F#\",\n\t\t\"aliases\": [\"f#\", \"fs\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/fsharp\"))\n\t},\n\t{\n\t\t\"id\": \"gdresource\",\n\t\t\"name\": \"GDResource\",\n\t\t\"aliases\": [\"tscn\", \"tres\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/gdresource\"))\n\t},\n\t{\n\t\t\"id\": \"gdscript\",\n\t\t\"name\": \"GDScript\",\n\t\t\"aliases\": [\"gd\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/gdscript\"))\n\t},\n\t{\n\t\t\"id\": \"gdshader\",\n\t\t\"name\": \"GDShader\",\n\t\t\"import\": (() => import(\"@shikijs/langs/gdshader\"))\n\t},\n\t{\n\t\t\"id\": \"genie\",\n\t\t\"name\": \"Genie\",\n\t\t\"import\": (() => import(\"@shikijs/langs/genie\"))\n\t},\n\t{\n\t\t\"id\": \"gherkin\",\n\t\t\"name\": \"Gherkin\",\n\t\t\"import\": (() => import(\"@shikijs/langs/gherkin\"))\n\t},\n\t{\n\t\t\"id\": \"git-commit\",\n\t\t\"name\": \"Git Commit Message\",\n\t\t\"import\": (() => import(\"@shikijs/langs/git-commit\"))\n\t},\n\t{\n\t\t\"id\": \"git-rebase\",\n\t\t\"name\": \"Git Rebase Message\",\n\t\t\"import\": (() => import(\"@shikijs/langs/git-rebase\"))\n\t},\n\t{\n\t\t\"id\": \"gleam\",\n\t\t\"name\": \"Gleam\",\n\t\t\"import\": (() => import(\"@shikijs/langs/gleam\"))\n\t},\n\t{\n\t\t\"id\": \"glimmer-js\",\n\t\t\"name\": \"Glimmer JS\",\n\t\t\"aliases\": [\"gjs\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/glimmer-js\"))\n\t},\n\t{\n\t\t\"id\": \"glimmer-ts\",\n\t\t\"name\": \"Glimmer TS\",\n\t\t\"aliases\": [\"gts\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/glimmer-ts\"))\n\t},\n\t{\n\t\t\"id\": \"glsl\",\n\t\t\"name\": \"GLSL\",\n\t\t\"import\": (() => import(\"@shikijs/langs/glsl\"))\n\t},\n\t{\n\t\t\"id\": \"gn\",\n\t\t\"name\": \"GN\",\n\t\t\"import\": (() => import(\"@shikijs/langs/gn\"))\n\t},\n\t{\n\t\t\"id\": \"gnuplot\",\n\t\t\"name\": \"Gnuplot\",\n\t\t\"import\": (() => import(\"@shikijs/langs/gnuplot\"))\n\t},\n\t{\n\t\t\"id\": \"go\",\n\t\t\"name\": \"Go\",\n\t\t\"import\": (() => import(\"@shikijs/langs/go\"))\n\t},\n\t{\n\t\t\"id\": \"graphql\",\n\t\t\"name\": \"GraphQL\",\n\t\t\"aliases\": [\"gql\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/graphql\"))\n\t},\n\t{\n\t\t\"id\": \"groovy\",\n\t\t\"name\": \"Groovy\",\n\t\t\"import\": (() => import(\"@shikijs/langs/groovy\"))\n\t},\n\t{\n\t\t\"id\": \"hack\",\n\t\t\"name\": \"Hack\",\n\t\t\"import\": (() => import(\"@shikijs/langs/hack\"))\n\t},\n\t{\n\t\t\"id\": \"haml\",\n\t\t\"name\": \"Ruby Haml\",\n\t\t\"import\": (() => import(\"@shikijs/langs/haml\"))\n\t},\n\t{\n\t\t\"id\": \"handlebars\",\n\t\t\"name\": \"Handlebars\",\n\t\t\"aliases\": [\"hbs\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/handlebars\"))\n\t},\n\t{\n\t\t\"id\": \"haskell\",\n\t\t\"name\": \"Haskell\",\n\t\t\"aliases\": [\"hs\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/haskell\"))\n\t},\n\t{\n\t\t\"id\": \"haxe\",\n\t\t\"name\": \"Haxe\",\n\t\t\"import\": (() => import(\"@shikijs/langs/haxe\"))\n\t},\n\t{\n\t\t\"id\": \"hcl\",\n\t\t\"name\": \"HashiCorp HCL\",\n\t\t\"import\": (() => import(\"@shikijs/langs/hcl\"))\n\t},\n\t{\n\t\t\"id\": \"hjson\",\n\t\t\"name\": \"Hjson\",\n\t\t\"import\": (() => import(\"@shikijs/langs/hjson\"))\n\t},\n\t{\n\t\t\"id\": \"hlsl\",\n\t\t\"name\": \"HLSL\",\n\t\t\"import\": (() => import(\"@shikijs/langs/hlsl\"))\n\t},\n\t{\n\t\t\"id\": \"html\",\n\t\t\"name\": \"HTML\",\n\t\t\"import\": (() => import(\"@shikijs/langs/html\"))\n\t},\n\t{\n\t\t\"id\": \"html-derivative\",\n\t\t\"name\": \"HTML (Derivative)\",\n\t\t\"import\": (() => import(\"@shikijs/langs/html-derivative\"))\n\t},\n\t{\n\t\t\"id\": \"http\",\n\t\t\"name\": \"HTTP\",\n\t\t\"import\": (() => import(\"@shikijs/langs/http\"))\n\t},\n\t{\n\t\t\"id\": \"hurl\",\n\t\t\"name\": \"Hurl\",\n\t\t\"import\": (() => import(\"@shikijs/langs/hurl\"))\n\t},\n\t{\n\t\t\"id\": \"hxml\",\n\t\t\"name\": \"HXML\",\n\t\t\"import\": (() => import(\"@shikijs/langs/hxml\"))\n\t},\n\t{\n\t\t\"id\": \"hy\",\n\t\t\"name\": \"Hy\",\n\t\t\"import\": (() => import(\"@shikijs/langs/hy\"))\n\t},\n\t{\n\t\t\"id\": \"imba\",\n\t\t\"name\": \"Imba\",\n\t\t\"import\": (() => import(\"@shikijs/langs/imba\"))\n\t},\n\t{\n\t\t\"id\": \"ini\",\n\t\t\"name\": \"INI\",\n\t\t\"aliases\": [\"properties\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/ini\"))\n\t},\n\t{\n\t\t\"id\": \"java\",\n\t\t\"name\": \"Java\",\n\t\t\"import\": (() => import(\"@shikijs/langs/java\"))\n\t},\n\t{\n\t\t\"id\": \"javascript\",\n\t\t\"name\": \"JavaScript\",\n\t\t\"aliases\": [\n\t\t\t\"js\",\n\t\t\t\"cjs\",\n\t\t\t\"mjs\"\n\t\t],\n\t\t\"import\": (() => import(\"@shikijs/langs/javascript\"))\n\t},\n\t{\n\t\t\"id\": \"jinja\",\n\t\t\"name\": \"Jinja\",\n\t\t\"import\": (() => import(\"@shikijs/langs/jinja\"))\n\t},\n\t{\n\t\t\"id\": \"jison\",\n\t\t\"name\": \"Jison\",\n\t\t\"import\": (() => import(\"@shikijs/langs/jison\"))\n\t},\n\t{\n\t\t\"id\": \"json\",\n\t\t\"name\": \"JSON\",\n\t\t\"import\": (() => import(\"@shikijs/langs/json\"))\n\t},\n\t{\n\t\t\"id\": \"json5\",\n\t\t\"name\": \"JSON5\",\n\t\t\"import\": (() => import(\"@shikijs/langs/json5\"))\n\t},\n\t{\n\t\t\"id\": \"jsonc\",\n\t\t\"name\": \"JSON with Comments\",\n\t\t\"import\": (() => import(\"@shikijs/langs/jsonc\"))\n\t},\n\t{\n\t\t\"id\": \"jsonl\",\n\t\t\"name\": \"JSON Lines\",\n\t\t\"import\": (() => import(\"@shikijs/langs/jsonl\"))\n\t},\n\t{\n\t\t\"id\": \"jsonnet\",\n\t\t\"name\": \"Jsonnet\",\n\t\t\"import\": (() => import(\"@shikijs/langs/jsonnet\"))\n\t},\n\t{\n\t\t\"id\": \"jssm\",\n\t\t\"name\": \"JSSM\",\n\t\t\"aliases\": [\"fsl\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/jssm\"))\n\t},\n\t{\n\t\t\"id\": \"jsx\",\n\t\t\"name\": \"JSX\",\n\t\t\"import\": (() => import(\"@shikijs/langs/jsx\"))\n\t},\n\t{\n\t\t\"id\": \"julia\",\n\t\t\"name\": \"Julia\",\n\t\t\"aliases\": [\"jl\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/julia\"))\n\t},\n\t{\n\t\t\"id\": \"just\",\n\t\t\"name\": \"Just\",\n\t\t\"import\": (() => import(\"@shikijs/langs/just\"))\n\t},\n\t{\n\t\t\"id\": \"kdl\",\n\t\t\"name\": \"KDL\",\n\t\t\"import\": (() => import(\"@shikijs/langs/kdl\"))\n\t},\n\t{\n\t\t\"id\": \"kotlin\",\n\t\t\"name\": \"Kotlin\",\n\t\t\"aliases\": [\"kt\", \"kts\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/kotlin\"))\n\t},\n\t{\n\t\t\"id\": \"kusto\",\n\t\t\"name\": \"Kusto\",\n\t\t\"aliases\": [\"kql\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/kusto\"))\n\t},\n\t{\n\t\t\"id\": \"latex\",\n\t\t\"name\": \"LaTeX\",\n\t\t\"import\": (() => import(\"@shikijs/langs/latex\"))\n\t},\n\t{\n\t\t\"id\": \"lean\",\n\t\t\"name\": \"Lean 4\",\n\t\t\"aliases\": [\"lean4\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/lean\"))\n\t},\n\t{\n\t\t\"id\": \"less\",\n\t\t\"name\": \"Less\",\n\t\t\"import\": (() => import(\"@shikijs/langs/less\"))\n\t},\n\t{\n\t\t\"id\": \"liquid\",\n\t\t\"name\": \"Liquid\",\n\t\t\"import\": (() => import(\"@shikijs/langs/liquid\"))\n\t},\n\t{\n\t\t\"id\": \"llvm\",\n\t\t\"name\": \"LLVM IR\",\n\t\t\"import\": (() => import(\"@shikijs/langs/llvm\"))\n\t},\n\t{\n\t\t\"id\": \"log\",\n\t\t\"name\": \"Log file\",\n\t\t\"import\": (() => import(\"@shikijs/langs/log\"))\n\t},\n\t{\n\t\t\"id\": \"logo\",\n\t\t\"name\": \"Logo\",\n\t\t\"import\": (() => import(\"@shikijs/langs/logo\"))\n\t},\n\t{\n\t\t\"id\": \"lua\",\n\t\t\"name\": \"Lua\",\n\t\t\"import\": (() => import(\"@shikijs/langs/lua\"))\n\t},\n\t{\n\t\t\"id\": \"luau\",\n\t\t\"name\": \"Luau\",\n\t\t\"import\": (() => import(\"@shikijs/langs/luau\"))\n\t},\n\t{\n\t\t\"id\": \"make\",\n\t\t\"name\": \"Makefile\",\n\t\t\"aliases\": [\"makefile\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/make\"))\n\t},\n\t{\n\t\t\"id\": \"markdown\",\n\t\t\"name\": \"Markdown\",\n\t\t\"aliases\": [\"md\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/markdown\"))\n\t},\n\t{\n\t\t\"id\": \"marko\",\n\t\t\"name\": \"Marko\",\n\t\t\"import\": (() => import(\"@shikijs/langs/marko\"))\n\t},\n\t{\n\t\t\"id\": \"matlab\",\n\t\t\"name\": \"MATLAB\",\n\t\t\"import\": (() => import(\"@shikijs/langs/matlab\"))\n\t},\n\t{\n\t\t\"id\": \"mdc\",\n\t\t\"name\": \"MDC\",\n\t\t\"import\": (() => import(\"@shikijs/langs/mdc\"))\n\t},\n\t{\n\t\t\"id\": \"mdx\",\n\t\t\"name\": \"MDX\",\n\t\t\"import\": (() => import(\"@shikijs/langs/mdx\"))\n\t},\n\t{\n\t\t\"id\": \"mermaid\",\n\t\t\"name\": \"Mermaid\",\n\t\t\"aliases\": [\"mmd\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/mermaid\"))\n\t},\n\t{\n\t\t\"id\": \"mipsasm\",\n\t\t\"name\": \"MIPS Assembly\",\n\t\t\"aliases\": [\"mips\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/mipsasm\"))\n\t},\n\t{\n\t\t\"id\": \"mojo\",\n\t\t\"name\": \"Mojo\",\n\t\t\"import\": (() => import(\"@shikijs/langs/mojo\"))\n\t},\n\t{\n\t\t\"id\": \"moonbit\",\n\t\t\"name\": \"MoonBit\",\n\t\t\"aliases\": [\"mbt\", \"mbti\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/moonbit\"))\n\t},\n\t{\n\t\t\"id\": \"move\",\n\t\t\"name\": \"Move\",\n\t\t\"import\": (() => import(\"@shikijs/langs/move\"))\n\t},\n\t{\n\t\t\"id\": \"narrat\",\n\t\t\"name\": \"Narrat Language\",\n\t\t\"aliases\": [\"nar\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/narrat\"))\n\t},\n\t{\n\t\t\"id\": \"nextflow\",\n\t\t\"name\": \"Nextflow\",\n\t\t\"aliases\": [\"nf\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/nextflow\"))\n\t},\n\t{\n\t\t\"id\": \"nextflow-groovy\",\n\t\t\"name\": \"Nextflow Groovy\",\n\t\t\"import\": (() => import(\"@shikijs/langs/nextflow-groovy\"))\n\t},\n\t{\n\t\t\"id\": \"nginx\",\n\t\t\"name\": \"Nginx\",\n\t\t\"import\": (() => import(\"@shikijs/langs/nginx\"))\n\t},\n\t{\n\t\t\"id\": \"nim\",\n\t\t\"name\": \"Nim\",\n\t\t\"import\": (() => import(\"@shikijs/langs/nim\"))\n\t},\n\t{\n\t\t\"id\": \"nix\",\n\t\t\"name\": \"Nix\",\n\t\t\"import\": (() => import(\"@shikijs/langs/nix\"))\n\t},\n\t{\n\t\t\"id\": \"nushell\",\n\t\t\"name\": \"nushell\",\n\t\t\"aliases\": [\"nu\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/nushell\"))\n\t},\n\t{\n\t\t\"id\": \"objective-c\",\n\t\t\"name\": \"Objective-C\",\n\t\t\"aliases\": [\"objc\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/objective-c\"))\n\t},\n\t{\n\t\t\"id\": \"objective-cpp\",\n\t\t\"name\": \"Objective-C++\",\n\t\t\"import\": (() => import(\"@shikijs/langs/objective-cpp\"))\n\t},\n\t{\n\t\t\"id\": \"ocaml\",\n\t\t\"name\": \"OCaml\",\n\t\t\"import\": (() => import(\"@shikijs/langs/ocaml\"))\n\t},\n\t{\n\t\t\"id\": \"odin\",\n\t\t\"name\": \"Odin\",\n\t\t\"import\": (() => import(\"@shikijs/langs/odin\"))\n\t},\n\t{\n\t\t\"id\": \"openscad\",\n\t\t\"name\": \"OpenSCAD\",\n\t\t\"aliases\": [\"scad\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/openscad\"))\n\t},\n\t{\n\t\t\"id\": \"pascal\",\n\t\t\"name\": \"Pascal\",\n\t\t\"import\": (() => import(\"@shikijs/langs/pascal\"))\n\t},\n\t{\n\t\t\"id\": \"perl\",\n\t\t\"name\": \"Perl\",\n\t\t\"import\": (() => import(\"@shikijs/langs/perl\"))\n\t},\n\t{\n\t\t\"id\": \"php\",\n\t\t\"name\": \"PHP\",\n\t\t\"import\": (() => import(\"@shikijs/langs/php\"))\n\t},\n\t{\n\t\t\"id\": \"pkl\",\n\t\t\"name\": \"Pkl\",\n\t\t\"import\": (() => import(\"@shikijs/langs/pkl\"))\n\t},\n\t{\n\t\t\"id\": \"plsql\",\n\t\t\"name\": \"PL/SQL\",\n\t\t\"import\": (() => import(\"@shikijs/langs/plsql\"))\n\t},\n\t{\n\t\t\"id\": \"po\",\n\t\t\"name\": \"Gettext PO\",\n\t\t\"aliases\": [\"pot\", \"potx\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/po\"))\n\t},\n\t{\n\t\t\"id\": \"polar\",\n\t\t\"name\": \"Polar\",\n\t\t\"import\": (() => import(\"@shikijs/langs/polar\"))\n\t},\n\t{\n\t\t\"id\": \"postcss\",\n\t\t\"name\": \"PostCSS\",\n\t\t\"import\": (() => import(\"@shikijs/langs/postcss\"))\n\t},\n\t{\n\t\t\"id\": \"powerquery\",\n\t\t\"name\": \"PowerQuery\",\n\t\t\"import\": (() => import(\"@shikijs/langs/powerquery\"))\n\t},\n\t{\n\t\t\"id\": \"powershell\",\n\t\t\"name\": \"PowerShell\",\n\t\t\"aliases\": [\"ps\", \"ps1\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/powershell\"))\n\t},\n\t{\n\t\t\"id\": \"prisma\",\n\t\t\"name\": \"Prisma\",\n\t\t\"import\": (() => import(\"@shikijs/langs/prisma\"))\n\t},\n\t{\n\t\t\"id\": \"prolog\",\n\t\t\"name\": \"Prolog\",\n\t\t\"import\": (() => import(\"@shikijs/langs/prolog\"))\n\t},\n\t{\n\t\t\"id\": \"proto\",\n\t\t\"name\": \"Protocol Buffer 3\",\n\t\t\"aliases\": [\"protobuf\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/proto\"))\n\t},\n\t{\n\t\t\"id\": \"pug\",\n\t\t\"name\": \"Pug\",\n\t\t\"aliases\": [\"jade\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/pug\"))\n\t},\n\t{\n\t\t\"id\": \"puppet\",\n\t\t\"name\": \"Puppet\",\n\t\t\"import\": (() => import(\"@shikijs/langs/puppet\"))\n\t},\n\t{\n\t\t\"id\": \"purescript\",\n\t\t\"name\": \"PureScript\",\n\t\t\"import\": (() => import(\"@shikijs/langs/purescript\"))\n\t},\n\t{\n\t\t\"id\": \"python\",\n\t\t\"name\": \"Python\",\n\t\t\"aliases\": [\"py\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/python\"))\n\t},\n\t{\n\t\t\"id\": \"qml\",\n\t\t\"name\": \"QML\",\n\t\t\"import\": (() => import(\"@shikijs/langs/qml\"))\n\t},\n\t{\n\t\t\"id\": \"qmldir\",\n\t\t\"name\": \"QML Directory\",\n\t\t\"import\": (() => import(\"@shikijs/langs/qmldir\"))\n\t},\n\t{\n\t\t\"id\": \"qss\",\n\t\t\"name\": \"Qt Style Sheets\",\n\t\t\"import\": (() => import(\"@shikijs/langs/qss\"))\n\t},\n\t{\n\t\t\"id\": \"r\",\n\t\t\"name\": \"R\",\n\t\t\"import\": (() => import(\"@shikijs/langs/r\"))\n\t},\n\t{\n\t\t\"id\": \"racket\",\n\t\t\"name\": \"Racket\",\n\t\t\"import\": (() => import(\"@shikijs/langs/racket\"))\n\t},\n\t{\n\t\t\"id\": \"raku\",\n\t\t\"name\": \"Raku\",\n\t\t\"aliases\": [\"perl6\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/raku\"))\n\t},\n\t{\n\t\t\"id\": \"razor\",\n\t\t\"name\": \"ASP.NET Razor\",\n\t\t\"import\": (() => import(\"@shikijs/langs/razor\"))\n\t},\n\t{\n\t\t\"id\": \"reg\",\n\t\t\"name\": \"Windows Registry Script\",\n\t\t\"import\": (() => import(\"@shikijs/langs/reg\"))\n\t},\n\t{\n\t\t\"id\": \"regexp\",\n\t\t\"name\": \"RegExp\",\n\t\t\"aliases\": [\"regex\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/regexp\"))\n\t},\n\t{\n\t\t\"id\": \"rel\",\n\t\t\"name\": \"Rel\",\n\t\t\"import\": (() => import(\"@shikijs/langs/rel\"))\n\t},\n\t{\n\t\t\"id\": \"riscv\",\n\t\t\"name\": \"RISC-V\",\n\t\t\"import\": (() => import(\"@shikijs/langs/riscv\"))\n\t},\n\t{\n\t\t\"id\": \"ron\",\n\t\t\"name\": \"RON\",\n\t\t\"import\": (() => import(\"@shikijs/langs/ron\"))\n\t},\n\t{\n\t\t\"id\": \"rosmsg\",\n\t\t\"name\": \"ROS Interface\",\n\t\t\"import\": (() => import(\"@shikijs/langs/rosmsg\"))\n\t},\n\t{\n\t\t\"id\": \"rst\",\n\t\t\"name\": \"reStructuredText\",\n\t\t\"import\": (() => import(\"@shikijs/langs/rst\"))\n\t},\n\t{\n\t\t\"id\": \"ruby\",\n\t\t\"name\": \"Ruby\",\n\t\t\"aliases\": [\"rb\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/ruby\"))\n\t},\n\t{\n\t\t\"id\": \"rust\",\n\t\t\"name\": \"Rust\",\n\t\t\"aliases\": [\"rs\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/rust\"))\n\t},\n\t{\n\t\t\"id\": \"sas\",\n\t\t\"name\": \"SAS\",\n\t\t\"import\": (() => import(\"@shikijs/langs/sas\"))\n\t},\n\t{\n\t\t\"id\": \"sass\",\n\t\t\"name\": \"Sass\",\n\t\t\"import\": (() => import(\"@shikijs/langs/sass\"))\n\t},\n\t{\n\t\t\"id\": \"scala\",\n\t\t\"name\": \"Scala\",\n\t\t\"import\": (() => import(\"@shikijs/langs/scala\"))\n\t},\n\t{\n\t\t\"id\": \"scheme\",\n\t\t\"name\": \"Scheme\",\n\t\t\"import\": (() => import(\"@shikijs/langs/scheme\"))\n\t},\n\t{\n\t\t\"id\": \"scss\",\n\t\t\"name\": \"SCSS\",\n\t\t\"import\": (() => import(\"@shikijs/langs/scss\"))\n\t},\n\t{\n\t\t\"id\": \"sdbl\",\n\t\t\"name\": \"1C (Query)\",\n\t\t\"aliases\": [\"1c-query\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/sdbl\"))\n\t},\n\t{\n\t\t\"id\": \"shaderlab\",\n\t\t\"name\": \"ShaderLab\",\n\t\t\"aliases\": [\"shader\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/shaderlab\"))\n\t},\n\t{\n\t\t\"id\": \"shellscript\",\n\t\t\"name\": \"Shell\",\n\t\t\"aliases\": [\n\t\t\t\"bash\",\n\t\t\t\"sh\",\n\t\t\t\"shell\",\n\t\t\t\"zsh\"\n\t\t],\n\t\t\"import\": (() => import(\"@shikijs/langs/shellscript\"))\n\t},\n\t{\n\t\t\"id\": \"shellsession\",\n\t\t\"name\": \"Shell Session\",\n\t\t\"aliases\": [\"console\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/shellsession\"))\n\t},\n\t{\n\t\t\"id\": \"smalltalk\",\n\t\t\"name\": \"Smalltalk\",\n\t\t\"import\": (() => import(\"@shikijs/langs/smalltalk\"))\n\t},\n\t{\n\t\t\"id\": \"solidity\",\n\t\t\"name\": \"Solidity\",\n\t\t\"import\": (() => import(\"@shikijs/langs/solidity\"))\n\t},\n\t{\n\t\t\"id\": \"soy\",\n\t\t\"name\": \"Closure Templates\",\n\t\t\"aliases\": [\"closure-templates\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/soy\"))\n\t},\n\t{\n\t\t\"id\": \"sparql\",\n\t\t\"name\": \"SPARQL\",\n\t\t\"import\": (() => import(\"@shikijs/langs/sparql\"))\n\t},\n\t{\n\t\t\"id\": \"splunk\",\n\t\t\"name\": \"Splunk Query Language\",\n\t\t\"aliases\": [\"spl\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/splunk\"))\n\t},\n\t{\n\t\t\"id\": \"sql\",\n\t\t\"name\": \"SQL\",\n\t\t\"import\": (() => import(\"@shikijs/langs/sql\"))\n\t},\n\t{\n\t\t\"id\": \"ssh-config\",\n\t\t\"name\": \"SSH Config\",\n\t\t\"import\": (() => import(\"@shikijs/langs/ssh-config\"))\n\t},\n\t{\n\t\t\"id\": \"stata\",\n\t\t\"name\": \"Stata\",\n\t\t\"import\": (() => import(\"@shikijs/langs/stata\"))\n\t},\n\t{\n\t\t\"id\": \"stylus\",\n\t\t\"name\": \"Stylus\",\n\t\t\"aliases\": [\"styl\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/stylus\"))\n\t},\n\t{\n\t\t\"id\": \"surrealql\",\n\t\t\"name\": \"SurrealQL\",\n\t\t\"aliases\": [\"surql\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/surrealql\"))\n\t},\n\t{\n\t\t\"id\": \"svelte\",\n\t\t\"name\": \"Svelte\",\n\t\t\"import\": (() => import(\"@shikijs/langs/svelte\"))\n\t},\n\t{\n\t\t\"id\": \"swift\",\n\t\t\"name\": \"Swift\",\n\t\t\"import\": (() => import(\"@shikijs/langs/swift\"))\n\t},\n\t{\n\t\t\"id\": \"system-verilog\",\n\t\t\"name\": \"SystemVerilog\",\n\t\t\"import\": (() => import(\"@shikijs/langs/system-verilog\"))\n\t},\n\t{\n\t\t\"id\": \"systemd\",\n\t\t\"name\": \"Systemd Units\",\n\t\t\"import\": (() => import(\"@shikijs/langs/systemd\"))\n\t},\n\t{\n\t\t\"id\": \"talonscript\",\n\t\t\"name\": \"TalonScript\",\n\t\t\"aliases\": [\"talon\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/talonscript\"))\n\t},\n\t{\n\t\t\"id\": \"tasl\",\n\t\t\"name\": \"Tasl\",\n\t\t\"import\": (() => import(\"@shikijs/langs/tasl\"))\n\t},\n\t{\n\t\t\"id\": \"tcl\",\n\t\t\"name\": \"Tcl\",\n\t\t\"import\": (() => import(\"@shikijs/langs/tcl\"))\n\t},\n\t{\n\t\t\"id\": \"templ\",\n\t\t\"name\": \"Templ\",\n\t\t\"import\": (() => import(\"@shikijs/langs/templ\"))\n\t},\n\t{\n\t\t\"id\": \"terraform\",\n\t\t\"name\": \"Terraform\",\n\t\t\"aliases\": [\"tf\", \"tfvars\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/terraform\"))\n\t},\n\t{\n\t\t\"id\": \"tex\",\n\t\t\"name\": \"TeX\",\n\t\t\"import\": (() => import(\"@shikijs/langs/tex\"))\n\t},\n\t{\n\t\t\"id\": \"toml\",\n\t\t\"name\": \"TOML\",\n\t\t\"import\": (() => import(\"@shikijs/langs/toml\"))\n\t},\n\t{\n\t\t\"id\": \"ts-tags\",\n\t\t\"name\": \"TypeScript with Tags\",\n\t\t\"aliases\": [\"lit\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/ts-tags\"))\n\t},\n\t{\n\t\t\"id\": \"tsv\",\n\t\t\"name\": \"TSV\",\n\t\t\"import\": (() => import(\"@shikijs/langs/tsv\"))\n\t},\n\t{\n\t\t\"id\": \"tsx\",\n\t\t\"name\": \"TSX\",\n\t\t\"import\": (() => import(\"@shikijs/langs/tsx\"))\n\t},\n\t{\n\t\t\"id\": \"turtle\",\n\t\t\"name\": \"Turtle\",\n\t\t\"import\": (() => import(\"@shikijs/langs/turtle\"))\n\t},\n\t{\n\t\t\"id\": \"twig\",\n\t\t\"name\": \"Twig\",\n\t\t\"import\": (() => import(\"@shikijs/langs/twig\"))\n\t},\n\t{\n\t\t\"id\": \"typescript\",\n\t\t\"name\": \"TypeScript\",\n\t\t\"aliases\": [\n\t\t\t\"ts\",\n\t\t\t\"cts\",\n\t\t\t\"mts\"\n\t\t],\n\t\t\"import\": (() => import(\"@shikijs/langs/typescript\"))\n\t},\n\t{\n\t\t\"id\": \"typespec\",\n\t\t\"name\": \"TypeSpec\",\n\t\t\"aliases\": [\"tsp\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/typespec\"))\n\t},\n\t{\n\t\t\"id\": \"typst\",\n\t\t\"name\": \"Typst\",\n\t\t\"aliases\": [\"typ\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/typst\"))\n\t},\n\t{\n\t\t\"id\": \"v\",\n\t\t\"name\": \"V\",\n\t\t\"import\": (() => import(\"@shikijs/langs/v\"))\n\t},\n\t{\n\t\t\"id\": \"vala\",\n\t\t\"name\": \"Vala\",\n\t\t\"import\": (() => import(\"@shikijs/langs/vala\"))\n\t},\n\t{\n\t\t\"id\": \"vb\",\n\t\t\"name\": \"Visual Basic\",\n\t\t\"aliases\": [\"cmd\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/vb\"))\n\t},\n\t{\n\t\t\"id\": \"verilog\",\n\t\t\"name\": \"Verilog\",\n\t\t\"import\": (() => import(\"@shikijs/langs/verilog\"))\n\t},\n\t{\n\t\t\"id\": \"vhdl\",\n\t\t\"name\": \"VHDL\",\n\t\t\"import\": (() => import(\"@shikijs/langs/vhdl\"))\n\t},\n\t{\n\t\t\"id\": \"viml\",\n\t\t\"name\": \"Vim Script\",\n\t\t\"aliases\": [\"vim\", \"vimscript\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/viml\"))\n\t},\n\t{\n\t\t\"id\": \"vue\",\n\t\t\"name\": \"Vue\",\n\t\t\"import\": (() => import(\"@shikijs/langs/vue\"))\n\t},\n\t{\n\t\t\"id\": \"vue-html\",\n\t\t\"name\": \"Vue HTML\",\n\t\t\"import\": (() => import(\"@shikijs/langs/vue-html\"))\n\t},\n\t{\n\t\t\"id\": \"vue-vine\",\n\t\t\"name\": \"Vue Vine\",\n\t\t\"import\": (() => import(\"@shikijs/langs/vue-vine\"))\n\t},\n\t{\n\t\t\"id\": \"vyper\",\n\t\t\"name\": \"Vyper\",\n\t\t\"aliases\": [\"vy\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/vyper\"))\n\t},\n\t{\n\t\t\"id\": \"wasm\",\n\t\t\"name\": \"WebAssembly\",\n\t\t\"import\": (() => import(\"@shikijs/langs/wasm\"))\n\t},\n\t{\n\t\t\"id\": \"wenyan\",\n\t\t\"name\": \"Wenyan\",\n\t\t\"aliases\": [\"文言\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/wenyan\"))\n\t},\n\t{\n\t\t\"id\": \"wgsl\",\n\t\t\"name\": \"WGSL\",\n\t\t\"import\": (() => import(\"@shikijs/langs/wgsl\"))\n\t},\n\t{\n\t\t\"id\": \"wikitext\",\n\t\t\"name\": \"Wikitext\",\n\t\t\"aliases\": [\"mediawiki\", \"wiki\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/wikitext\"))\n\t},\n\t{\n\t\t\"id\": \"wit\",\n\t\t\"name\": \"WebAssembly Interface Types\",\n\t\t\"import\": (() => import(\"@shikijs/langs/wit\"))\n\t},\n\t{\n\t\t\"id\": \"wolfram\",\n\t\t\"name\": \"Wolfram\",\n\t\t\"aliases\": [\"wl\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/wolfram\"))\n\t},\n\t{\n\t\t\"id\": \"xml\",\n\t\t\"name\": \"XML\",\n\t\t\"import\": (() => import(\"@shikijs/langs/xml\"))\n\t},\n\t{\n\t\t\"id\": \"xsl\",\n\t\t\"name\": \"XSL\",\n\t\t\"import\": (() => import(\"@shikijs/langs/xsl\"))\n\t},\n\t{\n\t\t\"id\": \"yaml\",\n\t\t\"name\": \"YAML\",\n\t\t\"aliases\": [\"yml\"],\n\t\t\"import\": (() => import(\"@shikijs/langs/yaml\"))\n\t},\n\t{\n\t\t\"id\": \"zenscript\",\n\t\t\"name\": \"ZenScript\",\n\t\t\"import\": (() => import(\"@shikijs/langs/zenscript\"))\n\t},\n\t{\n\t\t\"id\": \"zig\",\n\t\t\"name\": \"Zig\",\n\t\t\"import\": (() => import(\"@shikijs/langs/zig\"))\n\t}\n];\nconst bundledLanguagesBase = Object.fromEntries(bundledLanguagesInfo.map((i) => [i.id, i.import]));\nconst bundledLanguagesAlias = Object.fromEntries(bundledLanguagesInfo.flatMap((i) => i.aliases?.map((a) => [a, i.import]) || []));\nconst bundledLanguages = {\n\t...bundledLanguagesBase,\n\t...bundledLanguagesAlias\n};\n\n//#endregion\nexport { bundledLanguagesInfo as i, bundledLanguagesAlias as n, bundledLanguagesBase as r, bundledLanguages as t };","//#region src/themes.ts\nconst bundledThemesInfo = [\n\t{\n\t\t\"id\": \"andromeeda\",\n\t\t\"displayName\": \"Andromeeda\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/andromeeda\"))\n\t},\n\t{\n\t\t\"id\": \"aurora-x\",\n\t\t\"displayName\": \"Aurora X\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/aurora-x\"))\n\t},\n\t{\n\t\t\"id\": \"ayu-dark\",\n\t\t\"displayName\": \"Ayu Dark\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/ayu-dark\"))\n\t},\n\t{\n\t\t\"id\": \"ayu-light\",\n\t\t\"displayName\": \"Ayu Light\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/ayu-light\"))\n\t},\n\t{\n\t\t\"id\": \"ayu-mirage\",\n\t\t\"displayName\": \"Ayu Mirage\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/ayu-mirage\"))\n\t},\n\t{\n\t\t\"id\": \"catppuccin-frappe\",\n\t\t\"displayName\": \"Catppuccin Frappé\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/catppuccin-frappe\"))\n\t},\n\t{\n\t\t\"id\": \"catppuccin-latte\",\n\t\t\"displayName\": \"Catppuccin Latte\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/catppuccin-latte\"))\n\t},\n\t{\n\t\t\"id\": \"catppuccin-macchiato\",\n\t\t\"displayName\": \"Catppuccin Macchiato\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/catppuccin-macchiato\"))\n\t},\n\t{\n\t\t\"id\": \"catppuccin-mocha\",\n\t\t\"displayName\": \"Catppuccin Mocha\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/catppuccin-mocha\"))\n\t},\n\t{\n\t\t\"id\": \"dark-plus\",\n\t\t\"displayName\": \"Dark Plus\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/dark-plus\"))\n\t},\n\t{\n\t\t\"id\": \"dracula\",\n\t\t\"displayName\": \"Dracula Theme\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/dracula\"))\n\t},\n\t{\n\t\t\"id\": \"dracula-soft\",\n\t\t\"displayName\": \"Dracula Theme Soft\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/dracula-soft\"))\n\t},\n\t{\n\t\t\"id\": \"everforest-dark\",\n\t\t\"displayName\": \"Everforest Dark\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/everforest-dark\"))\n\t},\n\t{\n\t\t\"id\": \"everforest-light\",\n\t\t\"displayName\": \"Everforest Light\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/everforest-light\"))\n\t},\n\t{\n\t\t\"id\": \"github-dark\",\n\t\t\"displayName\": \"GitHub Dark\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/github-dark\"))\n\t},\n\t{\n\t\t\"id\": \"github-dark-default\",\n\t\t\"displayName\": \"GitHub Dark Default\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/github-dark-default\"))\n\t},\n\t{\n\t\t\"id\": \"github-dark-dimmed\",\n\t\t\"displayName\": \"GitHub Dark Dimmed\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/github-dark-dimmed\"))\n\t},\n\t{\n\t\t\"id\": \"github-dark-high-contrast\",\n\t\t\"displayName\": \"GitHub Dark High Contrast\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/github-dark-high-contrast\"))\n\t},\n\t{\n\t\t\"id\": \"github-light\",\n\t\t\"displayName\": \"GitHub Light\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/github-light\"))\n\t},\n\t{\n\t\t\"id\": \"github-light-default\",\n\t\t\"displayName\": \"GitHub Light Default\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/github-light-default\"))\n\t},\n\t{\n\t\t\"id\": \"github-light-high-contrast\",\n\t\t\"displayName\": \"GitHub Light High Contrast\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/github-light-high-contrast\"))\n\t},\n\t{\n\t\t\"id\": \"gruvbox-dark-hard\",\n\t\t\"displayName\": \"Gruvbox Dark Hard\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/gruvbox-dark-hard\"))\n\t},\n\t{\n\t\t\"id\": \"gruvbox-dark-medium\",\n\t\t\"displayName\": \"Gruvbox Dark Medium\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/gruvbox-dark-medium\"))\n\t},\n\t{\n\t\t\"id\": \"gruvbox-dark-soft\",\n\t\t\"displayName\": \"Gruvbox Dark Soft\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/gruvbox-dark-soft\"))\n\t},\n\t{\n\t\t\"id\": \"gruvbox-light-hard\",\n\t\t\"displayName\": \"Gruvbox Light Hard\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/gruvbox-light-hard\"))\n\t},\n\t{\n\t\t\"id\": \"gruvbox-light-medium\",\n\t\t\"displayName\": \"Gruvbox Light Medium\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/gruvbox-light-medium\"))\n\t},\n\t{\n\t\t\"id\": \"gruvbox-light-soft\",\n\t\t\"displayName\": \"Gruvbox Light Soft\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/gruvbox-light-soft\"))\n\t},\n\t{\n\t\t\"id\": \"horizon\",\n\t\t\"displayName\": \"Horizon\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/horizon\"))\n\t},\n\t{\n\t\t\"id\": \"horizon-bright\",\n\t\t\"displayName\": \"Horizon Bright\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/horizon-bright\"))\n\t},\n\t{\n\t\t\"id\": \"houston\",\n\t\t\"displayName\": \"Houston\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/houston\"))\n\t},\n\t{\n\t\t\"id\": \"kanagawa-dragon\",\n\t\t\"displayName\": \"Kanagawa Dragon\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/kanagawa-dragon\"))\n\t},\n\t{\n\t\t\"id\": \"kanagawa-lotus\",\n\t\t\"displayName\": \"Kanagawa Lotus\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/kanagawa-lotus\"))\n\t},\n\t{\n\t\t\"id\": \"kanagawa-wave\",\n\t\t\"displayName\": \"Kanagawa Wave\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/kanagawa-wave\"))\n\t},\n\t{\n\t\t\"id\": \"laserwave\",\n\t\t\"displayName\": \"LaserWave\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/laserwave\"))\n\t},\n\t{\n\t\t\"id\": \"light-plus\",\n\t\t\"displayName\": \"Light Plus\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/light-plus\"))\n\t},\n\t{\n\t\t\"id\": \"material-theme\",\n\t\t\"displayName\": \"Material Theme\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/material-theme\"))\n\t},\n\t{\n\t\t\"id\": \"material-theme-darker\",\n\t\t\"displayName\": \"Material Theme Darker\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/material-theme-darker\"))\n\t},\n\t{\n\t\t\"id\": \"material-theme-lighter\",\n\t\t\"displayName\": \"Material Theme Lighter\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/material-theme-lighter\"))\n\t},\n\t{\n\t\t\"id\": \"material-theme-ocean\",\n\t\t\"displayName\": \"Material Theme Ocean\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/material-theme-ocean\"))\n\t},\n\t{\n\t\t\"id\": \"material-theme-palenight\",\n\t\t\"displayName\": \"Material Theme Palenight\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/material-theme-palenight\"))\n\t},\n\t{\n\t\t\"id\": \"min-dark\",\n\t\t\"displayName\": \"Min Dark\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/min-dark\"))\n\t},\n\t{\n\t\t\"id\": \"min-light\",\n\t\t\"displayName\": \"Min Light\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/min-light\"))\n\t},\n\t{\n\t\t\"id\": \"monokai\",\n\t\t\"displayName\": \"Monokai\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/monokai\"))\n\t},\n\t{\n\t\t\"id\": \"night-owl\",\n\t\t\"displayName\": \"Night Owl\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/night-owl\"))\n\t},\n\t{\n\t\t\"id\": \"night-owl-light\",\n\t\t\"displayName\": \"Night Owl Light\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/night-owl-light\"))\n\t},\n\t{\n\t\t\"id\": \"nord\",\n\t\t\"displayName\": \"Nord\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/nord\"))\n\t},\n\t{\n\t\t\"id\": \"one-dark-pro\",\n\t\t\"displayName\": \"One Dark Pro\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/one-dark-pro\"))\n\t},\n\t{\n\t\t\"id\": \"one-light\",\n\t\t\"displayName\": \"One Light\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/one-light\"))\n\t},\n\t{\n\t\t\"id\": \"plastic\",\n\t\t\"displayName\": \"Plastic\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/plastic\"))\n\t},\n\t{\n\t\t\"id\": \"poimandres\",\n\t\t\"displayName\": \"Poimandres\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/poimandres\"))\n\t},\n\t{\n\t\t\"id\": \"red\",\n\t\t\"displayName\": \"Red\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/red\"))\n\t},\n\t{\n\t\t\"id\": \"rose-pine\",\n\t\t\"displayName\": \"Rosé Pine\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/rose-pine\"))\n\t},\n\t{\n\t\t\"id\": \"rose-pine-dawn\",\n\t\t\"displayName\": \"Rosé Pine Dawn\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/rose-pine-dawn\"))\n\t},\n\t{\n\t\t\"id\": \"rose-pine-moon\",\n\t\t\"displayName\": \"Rosé Pine Moon\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/rose-pine-moon\"))\n\t},\n\t{\n\t\t\"id\": \"slack-dark\",\n\t\t\"displayName\": \"Slack Dark\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/slack-dark\"))\n\t},\n\t{\n\t\t\"id\": \"slack-ochin\",\n\t\t\"displayName\": \"Slack Ochin\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/slack-ochin\"))\n\t},\n\t{\n\t\t\"id\": \"snazzy-light\",\n\t\t\"displayName\": \"Snazzy Light\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/snazzy-light\"))\n\t},\n\t{\n\t\t\"id\": \"solarized-dark\",\n\t\t\"displayName\": \"Solarized Dark\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/solarized-dark\"))\n\t},\n\t{\n\t\t\"id\": \"solarized-light\",\n\t\t\"displayName\": \"Solarized Light\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/solarized-light\"))\n\t},\n\t{\n\t\t\"id\": \"synthwave-84\",\n\t\t\"displayName\": \"Synthwave '84\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/synthwave-84\"))\n\t},\n\t{\n\t\t\"id\": \"tokyo-night\",\n\t\t\"displayName\": \"Tokyo Night\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/tokyo-night\"))\n\t},\n\t{\n\t\t\"id\": \"vesper\",\n\t\t\"displayName\": \"Vesper\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/vesper\"))\n\t},\n\t{\n\t\t\"id\": \"vitesse-black\",\n\t\t\"displayName\": \"Vitesse Black\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/vitesse-black\"))\n\t},\n\t{\n\t\t\"id\": \"vitesse-dark\",\n\t\t\"displayName\": \"Vitesse Dark\",\n\t\t\"type\": \"dark\",\n\t\t\"import\": (() => import(\"@shikijs/themes/vitesse-dark\"))\n\t},\n\t{\n\t\t\"id\": \"vitesse-light\",\n\t\t\"displayName\": \"Vitesse Light\",\n\t\t\"type\": \"light\",\n\t\t\"import\": (() => import(\"@shikijs/themes/vitesse-light\"))\n\t}\n];\nconst bundledThemes = Object.fromEntries(bundledThemesInfo.map((i) => [i.id, i.import]));\n\n//#endregion\nexport { bundledThemes, bundledThemesInfo };","//#region src/error.ts\nvar ShikiError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = \"ShikiError\";\n\t}\n};\n\nfunction getHeapMax() {\n return 2147483648;\n}\nfunction _emscripten_get_now() {\n return typeof performance !== \"undefined\" ? performance.now() : Date.now();\n}\nconst alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;\nasync function main(init) {\n let wasmMemory;\n let buffer;\n const binding = {};\n function updateGlobalBufferAndViews(buf) {\n buffer = buf;\n binding.HEAPU8 = new Uint8Array(buf);\n binding.HEAPU32 = new Uint32Array(buf);\n }\n function _emscripten_memcpy_big(dest, src, num) {\n binding.HEAPU8.copyWithin(dest, src, src + num);\n }\n function emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n } catch {\n }\n }\n function _emscripten_resize_heap(requestedSize) {\n const oldSize = binding.HEAPU8.length;\n requestedSize = requestedSize >>> 0;\n const maxHeapSize = getHeapMax();\n if (requestedSize > maxHeapSize)\n return false;\n for (let cutDown = 1; cutDown <= 4; cutDown *= 2) {\n let overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n const newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));\n const replacement = emscripten_realloc_buffer(newSize);\n if (replacement)\n return true;\n }\n return false;\n }\n const UTF8Decoder = typeof TextDecoder != \"undefined\" ? new TextDecoder(\"utf8\") : void 0;\n function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead = 1024) {\n const endIdx = idx + maxBytesToRead;\n let endPtr = idx;\n while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr;\n if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {\n return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));\n }\n let str = \"\";\n while (idx < endPtr) {\n let u0 = heapOrArray[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n const u1 = heapOrArray[idx++] & 63;\n if ((u0 & 224) === 192) {\n str += String.fromCharCode((u0 & 31) << 6 | u1);\n continue;\n }\n const u2 = heapOrArray[idx++] & 63;\n if ((u0 & 240) === 224) {\n u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n } else {\n u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n } else {\n const ch = u0 - 65536;\n str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n }\n }\n return str;\n }\n function UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(binding.HEAPU8, ptr, maxBytesToRead) : \"\";\n }\n const asmLibraryArg = {\n emscripten_get_now: _emscripten_get_now,\n emscripten_memcpy_big: _emscripten_memcpy_big,\n emscripten_resize_heap: _emscripten_resize_heap,\n fd_write: () => 0\n };\n async function createWasm() {\n const info = {\n env: asmLibraryArg,\n wasi_snapshot_preview1: asmLibraryArg\n };\n const exports$1 = await init(info);\n wasmMemory = exports$1.memory;\n updateGlobalBufferAndViews(wasmMemory.buffer);\n Object.assign(binding, exports$1);\n binding.UTF8ToString = UTF8ToString;\n }\n await createWasm();\n return binding;\n}\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nlet onigBinding = null;\nfunction throwLastOnigError(onigBinding2) {\n throw new ShikiError(onigBinding2.UTF8ToString(onigBinding2.getLastOnigError()));\n}\nclass UtfString {\n constructor(str) {\n __publicField(this, \"utf16Length\");\n __publicField(this, \"utf8Length\");\n __publicField(this, \"utf16Value\");\n __publicField(this, \"utf8Value\");\n __publicField(this, \"utf16OffsetToUtf8\");\n __publicField(this, \"utf8OffsetToUtf16\");\n const utf16Length = str.length;\n const utf8Length = UtfString._utf8ByteLength(str);\n const computeIndicesMapping = utf8Length !== utf16Length;\n const utf16OffsetToUtf8 = computeIndicesMapping ? new Uint32Array(utf16Length + 1) : null;\n if (computeIndicesMapping)\n utf16OffsetToUtf8[utf16Length] = utf8Length;\n const utf8OffsetToUtf16 = computeIndicesMapping ? new Uint32Array(utf8Length + 1) : null;\n if (computeIndicesMapping)\n utf8OffsetToUtf16[utf8Length] = utf16Length;\n const utf8Value = new Uint8Array(utf8Length);\n let i8 = 0;\n for (let i16 = 0; i16 < utf16Length; i16++) {\n const charCode = str.charCodeAt(i16);\n let codePoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 55296 && charCode <= 56319) {\n if (i16 + 1 < utf16Length) {\n const nextCharCode = str.charCodeAt(i16 + 1);\n if (nextCharCode >= 56320 && nextCharCode <= 57343) {\n codePoint = (charCode - 55296 << 10) + 65536 | nextCharCode - 56320;\n wasSurrogatePair = true;\n }\n }\n }\n if (computeIndicesMapping) {\n utf16OffsetToUtf8[i16] = i8;\n if (wasSurrogatePair)\n utf16OffsetToUtf8[i16 + 1] = i8;\n if (codePoint <= 127) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n } else if (codePoint <= 2047) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n } else if (codePoint <= 65535) {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n } else {\n utf8OffsetToUtf16[i8 + 0] = i16;\n utf8OffsetToUtf16[i8 + 1] = i16;\n utf8OffsetToUtf16[i8 + 2] = i16;\n utf8OffsetToUtf16[i8 + 3] = i16;\n }\n }\n if (codePoint <= 127) {\n utf8Value[i8++] = codePoint;\n } else if (codePoint <= 2047) {\n utf8Value[i8++] = 192 | (codePoint & 1984) >>> 6;\n utf8Value[i8++] = 128 | (codePoint & 63) >>> 0;\n } else if (codePoint <= 65535) {\n utf8Value[i8++] = 224 | (codePoint & 61440) >>> 12;\n utf8Value[i8++] = 128 | (codePoint & 4032) >>> 6;\n utf8Value[i8++] = 128 | (codePoint & 63) >>> 0;\n } else {\n utf8Value[i8++] = 240 | (codePoint & 1835008) >>> 18;\n utf8Value[i8++] = 128 | (codePoint & 258048) >>> 12;\n utf8Value[i8++] = 128 | (codePoint & 4032) >>> 6;\n utf8Value[i8++] = 128 | (codePoint & 63) >>> 0;\n }\n if (wasSurrogatePair)\n i16++;\n }\n this.utf16Length = utf16Length;\n this.utf8Length = utf8Length;\n this.utf16Value = str;\n this.utf8Value = utf8Value;\n this.utf16OffsetToUtf8 = utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utf8OffsetToUtf16;\n }\n static _utf8ByteLength(str) {\n let result = 0;\n for (let i = 0, len = str.length; i < len; i++) {\n const charCode = str.charCodeAt(i);\n let codepoint = charCode;\n let wasSurrogatePair = false;\n if (charCode >= 55296 && charCode <= 56319) {\n if (i + 1 < len) {\n const nextCharCode = str.charCodeAt(i + 1);\n if (nextCharCode >= 56320 && nextCharCode <= 57343) {\n codepoint = (charCode - 55296 << 10) + 65536 | nextCharCode - 56320;\n wasSurrogatePair = true;\n }\n }\n }\n if (codepoint <= 127)\n result += 1;\n else if (codepoint <= 2047)\n result += 2;\n else if (codepoint <= 65535)\n result += 3;\n else\n result += 4;\n if (wasSurrogatePair)\n i++;\n }\n return result;\n }\n createString(onigBinding2) {\n const result = onigBinding2.omalloc(this.utf8Length);\n onigBinding2.HEAPU8.set(this.utf8Value, result);\n return result;\n }\n}\nconst _OnigString = class _OnigString {\n constructor(str) {\n __publicField(this, \"id\", ++_OnigString.LAST_ID);\n __publicField(this, \"_onigBinding\");\n __publicField(this, \"content\");\n __publicField(this, \"utf16Length\");\n __publicField(this, \"utf8Length\");\n __publicField(this, \"utf16OffsetToUtf8\");\n __publicField(this, \"utf8OffsetToUtf16\");\n __publicField(this, \"ptr\");\n if (!onigBinding)\n throw new ShikiError(\"Must invoke loadWasm first.\");\n this._onigBinding = onigBinding;\n this.content = str;\n const utfString = new UtfString(str);\n this.utf16Length = utfString.utf16Length;\n this.utf8Length = utfString.utf8Length;\n this.utf16OffsetToUtf8 = utfString.utf16OffsetToUtf8;\n this.utf8OffsetToUtf16 = utfString.utf8OffsetToUtf16;\n if (this.utf8Length < 1e4 && !_OnigString._sharedPtrInUse) {\n if (!_OnigString._sharedPtr)\n _OnigString._sharedPtr = onigBinding.omalloc(1e4);\n _OnigString._sharedPtrInUse = true;\n onigBinding.HEAPU8.set(utfString.utf8Value, _OnigString._sharedPtr);\n this.ptr = _OnigString._sharedPtr;\n } else {\n this.ptr = utfString.createString(onigBinding);\n }\n }\n convertUtf8OffsetToUtf16(utf8Offset) {\n if (this.utf8OffsetToUtf16) {\n if (utf8Offset < 0)\n return 0;\n if (utf8Offset > this.utf8Length)\n return this.utf16Length;\n return this.utf8OffsetToUtf16[utf8Offset];\n }\n return utf8Offset;\n }\n convertUtf16OffsetToUtf8(utf16Offset) {\n if (this.utf16OffsetToUtf8) {\n if (utf16Offset < 0)\n return 0;\n if (utf16Offset > this.utf16Length)\n return this.utf8Length;\n return this.utf16OffsetToUtf8[utf16Offset];\n }\n return utf16Offset;\n }\n dispose() {\n if (this.ptr === _OnigString._sharedPtr)\n _OnigString._sharedPtrInUse = false;\n else\n this._onigBinding.ofree(this.ptr);\n }\n};\n__publicField(_OnigString, \"LAST_ID\", 0);\n__publicField(_OnigString, \"_sharedPtr\", 0);\n// a pointer to a string of 10000 bytes\n__publicField(_OnigString, \"_sharedPtrInUse\", false);\nlet OnigString = _OnigString;\nclass OnigScanner {\n constructor(patterns) {\n __publicField(this, \"_onigBinding\");\n __publicField(this, \"_ptr\");\n if (!onigBinding)\n throw new ShikiError(\"Must invoke loadWasm first.\");\n const strPtrsArr = [];\n const strLenArr = [];\n for (let i = 0, len = patterns.length; i < len; i++) {\n const utfString = new UtfString(patterns[i]);\n strPtrsArr[i] = utfString.createString(onigBinding);\n strLenArr[i] = utfString.utf8Length;\n }\n const strPtrsPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strPtrsArr, strPtrsPtr / 4);\n const strLenPtr = onigBinding.omalloc(4 * patterns.length);\n onigBinding.HEAPU32.set(strLenArr, strLenPtr / 4);\n const scannerPtr = onigBinding.createOnigScanner(strPtrsPtr, strLenPtr, patterns.length);\n for (let i = 0, len = patterns.length; i < len; i++)\n onigBinding.ofree(strPtrsArr[i]);\n onigBinding.ofree(strLenPtr);\n onigBinding.ofree(strPtrsPtr);\n if (scannerPtr === 0)\n throwLastOnigError(onigBinding);\n this._onigBinding = onigBinding;\n this._ptr = scannerPtr;\n }\n dispose() {\n this._onigBinding.freeOnigScanner(this._ptr);\n }\n findNextMatchSync(string, startPosition, arg) {\n let options = 0 /* None */;\n if (typeof arg === \"number\") {\n options = arg;\n }\n if (typeof string === \"string\") {\n string = new OnigString(string);\n const result = this._findNextMatchSync(string, startPosition, false, options);\n string.dispose();\n return result;\n }\n return this._findNextMatchSync(string, startPosition, false, options);\n }\n _findNextMatchSync(string, startPosition, debugCall, options) {\n const onigBinding2 = this._onigBinding;\n const resultPtr = onigBinding2.findNextOnigScannerMatch(this._ptr, string.id, string.ptr, string.utf8Length, string.convertUtf16OffsetToUtf8(startPosition), options);\n if (resultPtr === 0) {\n return null;\n }\n const HEAPU32 = onigBinding2.HEAPU32;\n let offset = resultPtr / 4;\n const index = HEAPU32[offset++];\n const count = HEAPU32[offset++];\n const captureIndices = [];\n for (let i = 0; i < count; i++) {\n const beg = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n const end = string.convertUtf8OffsetToUtf16(HEAPU32[offset++]);\n captureIndices[i] = {\n start: beg,\n end,\n length: end - beg\n };\n }\n return {\n index,\n captureIndices\n };\n }\n}\nfunction isInstantiatorOptionsObject(dataOrOptions) {\n return typeof dataOrOptions.instantiator === \"function\";\n}\nfunction isInstantiatorModule(dataOrOptions) {\n return typeof dataOrOptions.default === \"function\";\n}\nfunction isDataOptionsObject(dataOrOptions) {\n return typeof dataOrOptions.data !== \"undefined\";\n}\nfunction isResponse(dataOrOptions) {\n return typeof Response !== \"undefined\" && dataOrOptions instanceof Response;\n}\nfunction isArrayBuffer(data) {\n return typeof ArrayBuffer !== \"undefined\" && (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) || typeof Buffer !== \"undefined\" && Buffer.isBuffer?.(data) || typeof SharedArrayBuffer !== \"undefined\" && data instanceof SharedArrayBuffer || typeof Uint32Array !== \"undefined\" && data instanceof Uint32Array;\n}\nlet initPromise;\nfunction loadWasm(options) {\n if (initPromise)\n return initPromise;\n async function _load() {\n onigBinding = await main(async (info) => {\n let instance = options;\n instance = await instance;\n if (typeof instance === \"function\")\n instance = await instance(info);\n if (typeof instance === \"function\")\n instance = await instance(info);\n if (isInstantiatorOptionsObject(instance)) {\n instance = await instance.instantiator(info);\n } else if (isInstantiatorModule(instance)) {\n instance = await instance.default(info);\n } else {\n if (isDataOptionsObject(instance))\n instance = instance.data;\n if (isResponse(instance)) {\n if (typeof WebAssembly.instantiateStreaming === \"function\")\n instance = await _makeResponseStreamingLoader(instance)(info);\n else\n instance = await _makeResponseNonStreamingLoader(instance)(info);\n } else if (isArrayBuffer(instance)) {\n instance = await _makeArrayBufferLoader(instance)(info);\n } else if (instance instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance)(info);\n } else if (\"default\" in instance && instance.default instanceof WebAssembly.Module) {\n instance = await _makeArrayBufferLoader(instance.default)(info);\n }\n }\n if (\"instance\" in instance)\n instance = instance.instance;\n if (\"exports\" in instance)\n instance = instance.exports;\n return instance;\n });\n }\n initPromise = _load();\n return initPromise;\n}\nfunction _makeArrayBufferLoader(data) {\n return (importObject) => WebAssembly.instantiate(data, importObject);\n}\nfunction _makeResponseStreamingLoader(data) {\n return (importObject) => WebAssembly.instantiateStreaming(data, importObject);\n}\nfunction _makeResponseNonStreamingLoader(data) {\n return async (importObject) => {\n const arrayBuffer = await data.arrayBuffer();\n return WebAssembly.instantiate(arrayBuffer, importObject);\n };\n}\n\nlet _defaultWasmLoader;\nfunction setDefaultWasmLoader(_loader) {\n _defaultWasmLoader = _loader;\n}\nfunction getDefaultWasmLoader() {\n return _defaultWasmLoader;\n}\nasync function createOnigurumaEngine(options) {\n if (options)\n await loadWasm(options);\n return {\n createScanner(patterns) {\n return new OnigScanner(patterns.map((p) => typeof p === \"string\" ? p : p.source));\n },\n createString(s) {\n return new OnigString(s);\n }\n };\n}\n\nexport { createOnigurumaEngine, getDefaultWasmLoader, loadWasm, setDefaultWasmLoader };\n","import { n as __reExport, t as __exportAll } from \"./chunk-CtajNgzt.mjs\";\n\nexport * from \"@shikijs/engine-oniguruma\"\n\n//#region src/engine-oniguruma.ts\nvar engine_oniguruma_exports = /* @__PURE__ */ __exportAll({});\nimport * as import__shikijs_engine_oniguruma from \"@shikijs/engine-oniguruma\";\n__reExport(engine_oniguruma_exports, import__shikijs_engine_oniguruma);\n\n//#endregion\nexport { engine_oniguruma_exports as t };","//#region src/error.ts\nvar ShikiError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = \"ShikiError\";\n\t}\n};\n\n//#endregion\nexport { ShikiError };","// src/utils.ts\nfunction clone(something) {\n return doClone(something);\n}\nfunction doClone(something) {\n if (Array.isArray(something)) {\n return cloneArray(something);\n }\n if (something instanceof RegExp) {\n return something;\n }\n if (typeof something === \"object\") {\n return cloneObj(something);\n }\n return something;\n}\nfunction cloneArray(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = doClone(arr[i]);\n }\n return r;\n}\nfunction cloneObj(obj) {\n let r = {};\n for (let key in obj) {\n r[key] = doClone(obj[key]);\n }\n return r;\n}\nfunction mergeObjects(target, ...sources) {\n sources.forEach((source) => {\n for (let key in source) {\n target[key] = source[key];\n }\n });\n return target;\n}\nfunction basename(path) {\n const idx = ~path.lastIndexOf(\"/\") || ~path.lastIndexOf(\"\\\\\");\n if (idx === 0) {\n return path;\n } else if (~idx === path.length - 1) {\n return basename(path.substring(0, path.length - 1));\n } else {\n return path.substr(~idx + 1);\n }\n}\nvar CAPTURING_REGEX_SOURCE = /\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/g;\nvar RegexSource = class {\n static hasCaptures(regexSource) {\n if (regexSource === null) {\n return false;\n }\n CAPTURING_REGEX_SOURCE.lastIndex = 0;\n return CAPTURING_REGEX_SOURCE.test(regexSource);\n }\n static replaceCaptures(regexSource, captureSource, captureIndices) {\n return regexSource.replace(CAPTURING_REGEX_SOURCE, (match, index, commandIndex, command) => {\n let capture = captureIndices[parseInt(index || commandIndex, 10)];\n if (capture) {\n let result = captureSource.substring(capture.start, capture.end);\n while (result[0] === \".\") {\n result = result.substring(1);\n }\n switch (command) {\n case \"downcase\":\n return result.toLowerCase();\n case \"upcase\":\n return result.toUpperCase();\n default:\n return result;\n }\n } else {\n return match;\n }\n });\n }\n};\nfunction strcmp(a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n}\nfunction strArrCmp(a, b) {\n if (a === null && b === null) {\n return 0;\n }\n if (!a) {\n return -1;\n }\n if (!b) {\n return 1;\n }\n let len1 = a.length;\n let len2 = b.length;\n if (len1 === len2) {\n for (let i = 0; i < len1; i++) {\n let res = strcmp(a[i], b[i]);\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n }\n return len1 - len2;\n}\nfunction isValidHexColor(hex) {\n if (/^#[0-9a-f]{6}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{8}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{3}$/i.test(hex)) {\n return true;\n }\n if (/^#[0-9a-f]{4}$/i.test(hex)) {\n return true;\n }\n return false;\n}\nfunction escapeRegExpCharacters(value) {\n return value.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, \"\\\\$&\");\n}\nvar CachedFn = class {\n constructor(fn) {\n this.fn = fn;\n }\n cache = /* @__PURE__ */ new Map();\n get(key) {\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n const value = this.fn(key);\n this.cache.set(key, value);\n return value;\n }\n};\n\n// src/theme.ts\nvar Theme = class {\n constructor(_colorMap, _defaults, _root) {\n this._colorMap = _colorMap;\n this._defaults = _defaults;\n this._root = _root;\n }\n static createFromRawTheme(source, colorMap) {\n return this.createFromParsedTheme(parseTheme(source), colorMap);\n }\n static createFromParsedTheme(source, colorMap) {\n return resolveParsedThemeRules(source, colorMap);\n }\n _cachedMatchRoot = new CachedFn(\n (scopeName) => this._root.match(scopeName)\n );\n getColorMap() {\n return this._colorMap.getColorMap();\n }\n getDefaults() {\n return this._defaults;\n }\n match(scopePath) {\n if (scopePath === null) {\n return this._defaults;\n }\n const scopeName = scopePath.scopeName;\n const matchingTrieElements = this._cachedMatchRoot.get(scopeName);\n const effectiveRule = matchingTrieElements.find(\n (v) => _scopePathMatchesParentScopes(scopePath.parent, v.parentScopes)\n );\n if (!effectiveRule) {\n return null;\n }\n return new StyleAttributes(\n effectiveRule.fontStyle,\n effectiveRule.foreground,\n effectiveRule.background\n );\n }\n};\nvar ScopeStack = class _ScopeStack {\n constructor(parent, scopeName) {\n this.parent = parent;\n this.scopeName = scopeName;\n }\n static push(path, scopeNames) {\n for (const name of scopeNames) {\n path = new _ScopeStack(path, name);\n }\n return path;\n }\n static from(...segments) {\n let result = null;\n for (let i = 0; i < segments.length; i++) {\n result = new _ScopeStack(result, segments[i]);\n }\n return result;\n }\n push(scopeName) {\n return new _ScopeStack(this, scopeName);\n }\n getSegments() {\n let item = this;\n const result = [];\n while (item) {\n result.push(item.scopeName);\n item = item.parent;\n }\n result.reverse();\n return result;\n }\n toString() {\n return this.getSegments().join(\" \");\n }\n extends(other) {\n if (this === other) {\n return true;\n }\n if (this.parent === null) {\n return false;\n }\n return this.parent.extends(other);\n }\n getExtensionIfDefined(base) {\n const result = [];\n let item = this;\n while (item && item !== base) {\n result.push(item.scopeName);\n item = item.parent;\n }\n return item === base ? result.reverse() : void 0;\n }\n};\nfunction _scopePathMatchesParentScopes(scopePath, parentScopes) {\n if (parentScopes.length === 0) {\n return true;\n }\n for (let index = 0; index < parentScopes.length; index++) {\n let scopePattern = parentScopes[index];\n let scopeMustMatch = false;\n if (scopePattern === \">\") {\n if (index === parentScopes.length - 1) {\n return false;\n }\n scopePattern = parentScopes[++index];\n scopeMustMatch = true;\n }\n while (scopePath) {\n if (_matchesScope(scopePath.scopeName, scopePattern)) {\n break;\n }\n if (scopeMustMatch) {\n return false;\n }\n scopePath = scopePath.parent;\n }\n if (!scopePath) {\n return false;\n }\n scopePath = scopePath.parent;\n }\n return true;\n}\nfunction _matchesScope(scopeName, scopePattern) {\n return scopePattern === scopeName || scopeName.startsWith(scopePattern) && scopeName[scopePattern.length] === \".\";\n}\nvar StyleAttributes = class {\n constructor(fontStyle, foregroundId, backgroundId) {\n this.fontStyle = fontStyle;\n this.foregroundId = foregroundId;\n this.backgroundId = backgroundId;\n }\n};\nfunction parseTheme(source) {\n if (!source) {\n return [];\n }\n if (!source.settings || !Array.isArray(source.settings)) {\n return [];\n }\n let settings = source.settings;\n let result = [], resultLen = 0;\n for (let i = 0, len = settings.length; i < len; i++) {\n let entry = settings[i];\n if (!entry.settings) {\n continue;\n }\n let scopes;\n if (typeof entry.scope === \"string\") {\n let _scope = entry.scope;\n _scope = _scope.replace(/^[,]+/, \"\");\n _scope = _scope.replace(/[,]+$/, \"\");\n scopes = _scope.split(\",\");\n } else if (Array.isArray(entry.scope)) {\n scopes = entry.scope;\n } else {\n scopes = [\"\"];\n }\n let fontStyle = -1 /* NotSet */;\n if (typeof entry.settings.fontStyle === \"string\") {\n fontStyle = 0 /* None */;\n let segments = entry.settings.fontStyle.split(\" \");\n for (let j = 0, lenJ = segments.length; j < lenJ; j++) {\n let segment = segments[j];\n switch (segment) {\n case \"italic\":\n fontStyle = fontStyle | 1 /* Italic */;\n break;\n case \"bold\":\n fontStyle = fontStyle | 2 /* Bold */;\n break;\n case \"underline\":\n fontStyle = fontStyle | 4 /* Underline */;\n break;\n case \"strikethrough\":\n fontStyle = fontStyle | 8 /* Strikethrough */;\n break;\n }\n }\n }\n let foreground = null;\n if (typeof entry.settings.foreground === \"string\" && isValidHexColor(entry.settings.foreground)) {\n foreground = entry.settings.foreground;\n }\n let background = null;\n if (typeof entry.settings.background === \"string\" && isValidHexColor(entry.settings.background)) {\n background = entry.settings.background;\n }\n for (let j = 0, lenJ = scopes.length; j < lenJ; j++) {\n let _scope = scopes[j].trim();\n let segments = _scope.split(\" \");\n let scope = segments[segments.length - 1];\n let parentScopes = null;\n if (segments.length > 1) {\n parentScopes = segments.slice(0, segments.length - 1);\n parentScopes.reverse();\n }\n result[resultLen++] = new ParsedThemeRule(\n scope,\n parentScopes,\n i,\n fontStyle,\n foreground,\n background\n );\n }\n }\n return result;\n}\nvar ParsedThemeRule = class {\n constructor(scope, parentScopes, index, fontStyle, foreground, background) {\n this.scope = scope;\n this.parentScopes = parentScopes;\n this.index = index;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n};\nvar FontStyle = /* @__PURE__ */ ((FontStyle2) => {\n FontStyle2[FontStyle2[\"NotSet\"] = -1] = \"NotSet\";\n FontStyle2[FontStyle2[\"None\"] = 0] = \"None\";\n FontStyle2[FontStyle2[\"Italic\"] = 1] = \"Italic\";\n FontStyle2[FontStyle2[\"Bold\"] = 2] = \"Bold\";\n FontStyle2[FontStyle2[\"Underline\"] = 4] = \"Underline\";\n FontStyle2[FontStyle2[\"Strikethrough\"] = 8] = \"Strikethrough\";\n return FontStyle2;\n})(FontStyle || {});\nfunction resolveParsedThemeRules(parsedThemeRules, _colorMap) {\n parsedThemeRules.sort((a, b) => {\n let r = strcmp(a.scope, b.scope);\n if (r !== 0) {\n return r;\n }\n r = strArrCmp(a.parentScopes, b.parentScopes);\n if (r !== 0) {\n return r;\n }\n return a.index - b.index;\n });\n let defaultFontStyle = 0 /* None */;\n let defaultForeground = \"#000000\";\n let defaultBackground = \"#ffffff\";\n while (parsedThemeRules.length >= 1 && parsedThemeRules[0].scope === \"\") {\n let incomingDefaults = parsedThemeRules.shift();\n if (incomingDefaults.fontStyle !== -1 /* NotSet */) {\n defaultFontStyle = incomingDefaults.fontStyle;\n }\n if (incomingDefaults.foreground !== null) {\n defaultForeground = incomingDefaults.foreground;\n }\n if (incomingDefaults.background !== null) {\n defaultBackground = incomingDefaults.background;\n }\n }\n let colorMap = new ColorMap(_colorMap);\n let defaults = new StyleAttributes(defaultFontStyle, colorMap.getId(defaultForeground), colorMap.getId(defaultBackground));\n let root = new ThemeTrieElement(new ThemeTrieElementRule(0, null, -1 /* NotSet */, 0, 0), []);\n for (let i = 0, len = parsedThemeRules.length; i < len; i++) {\n let rule = parsedThemeRules[i];\n root.insert(0, rule.scope, rule.parentScopes, rule.fontStyle, colorMap.getId(rule.foreground), colorMap.getId(rule.background));\n }\n return new Theme(colorMap, defaults, root);\n}\nvar ColorMap = class {\n _isFrozen;\n _lastColorId;\n _id2color;\n _color2id;\n constructor(_colorMap) {\n this._lastColorId = 0;\n this._id2color = [];\n this._color2id = /* @__PURE__ */ Object.create(null);\n if (Array.isArray(_colorMap)) {\n this._isFrozen = true;\n for (let i = 0, len = _colorMap.length; i < len; i++) {\n this._color2id[_colorMap[i]] = i;\n this._id2color[i] = _colorMap[i];\n }\n } else {\n this._isFrozen = false;\n }\n }\n getId(color) {\n if (color === null) {\n return 0;\n }\n color = color.toUpperCase();\n let value = this._color2id[color];\n if (value) {\n return value;\n }\n if (this._isFrozen) {\n throw new Error(`Missing color in color map - ${color}`);\n }\n value = ++this._lastColorId;\n this._color2id[color] = value;\n this._id2color[value] = color;\n return value;\n }\n getColorMap() {\n return this._id2color.slice(0);\n }\n};\nvar emptyParentScopes = Object.freeze([]);\nvar ThemeTrieElementRule = class _ThemeTrieElementRule {\n scopeDepth;\n parentScopes;\n fontStyle;\n foreground;\n background;\n constructor(scopeDepth, parentScopes, fontStyle, foreground, background) {\n this.scopeDepth = scopeDepth;\n this.parentScopes = parentScopes || emptyParentScopes;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n clone() {\n return new _ThemeTrieElementRule(this.scopeDepth, this.parentScopes, this.fontStyle, this.foreground, this.background);\n }\n static cloneArr(arr) {\n let r = [];\n for (let i = 0, len = arr.length; i < len; i++) {\n r[i] = arr[i].clone();\n }\n return r;\n }\n acceptOverwrite(scopeDepth, fontStyle, foreground, background) {\n if (this.scopeDepth > scopeDepth) {\n console.log(\"how did this happen?\");\n } else {\n this.scopeDepth = scopeDepth;\n }\n if (fontStyle !== -1 /* NotSet */) {\n this.fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n this.foreground = foreground;\n }\n if (background !== 0) {\n this.background = background;\n }\n }\n};\nvar ThemeTrieElement = class _ThemeTrieElement {\n constructor(_mainRule, rulesWithParentScopes = [], _children = {}) {\n this._mainRule = _mainRule;\n this._children = _children;\n this._rulesWithParentScopes = rulesWithParentScopes;\n }\n _rulesWithParentScopes;\n static _cmpBySpecificity(a, b) {\n if (a.scopeDepth !== b.scopeDepth) {\n return b.scopeDepth - a.scopeDepth;\n }\n let aParentIndex = 0;\n let bParentIndex = 0;\n while (true) {\n if (a.parentScopes[aParentIndex] === \">\") {\n aParentIndex++;\n }\n if (b.parentScopes[bParentIndex] === \">\") {\n bParentIndex++;\n }\n if (aParentIndex >= a.parentScopes.length || bParentIndex >= b.parentScopes.length) {\n break;\n }\n const parentScopeLengthDiff = b.parentScopes[bParentIndex].length - a.parentScopes[aParentIndex].length;\n if (parentScopeLengthDiff !== 0) {\n return parentScopeLengthDiff;\n }\n aParentIndex++;\n bParentIndex++;\n }\n return b.parentScopes.length - a.parentScopes.length;\n }\n match(scope) {\n if (scope !== \"\") {\n let dotIndex = scope.indexOf(\".\");\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = \"\";\n } else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n if (this._children.hasOwnProperty(head)) {\n return this._children[head].match(tail);\n }\n }\n const rules = this._rulesWithParentScopes.concat(this._mainRule);\n rules.sort(_ThemeTrieElement._cmpBySpecificity);\n return rules;\n }\n insert(scopeDepth, scope, parentScopes, fontStyle, foreground, background) {\n if (scope === \"\") {\n this._doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background);\n return;\n }\n let dotIndex = scope.indexOf(\".\");\n let head;\n let tail;\n if (dotIndex === -1) {\n head = scope;\n tail = \"\";\n } else {\n head = scope.substring(0, dotIndex);\n tail = scope.substring(dotIndex + 1);\n }\n let child;\n if (this._children.hasOwnProperty(head)) {\n child = this._children[head];\n } else {\n child = new _ThemeTrieElement(this._mainRule.clone(), ThemeTrieElementRule.cloneArr(this._rulesWithParentScopes));\n this._children[head] = child;\n }\n child.insert(scopeDepth + 1, tail, parentScopes, fontStyle, foreground, background);\n }\n _doInsertHere(scopeDepth, parentScopes, fontStyle, foreground, background) {\n if (parentScopes === null) {\n this._mainRule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n for (let i = 0, len = this._rulesWithParentScopes.length; i < len; i++) {\n let rule = this._rulesWithParentScopes[i];\n if (strArrCmp(rule.parentScopes, parentScopes) === 0) {\n rule.acceptOverwrite(scopeDepth, fontStyle, foreground, background);\n return;\n }\n }\n if (fontStyle === -1 /* NotSet */) {\n fontStyle = this._mainRule.fontStyle;\n }\n if (foreground === 0) {\n foreground = this._mainRule.foreground;\n }\n if (background === 0) {\n background = this._mainRule.background;\n }\n this._rulesWithParentScopes.push(new ThemeTrieElementRule(scopeDepth, parentScopes, fontStyle, foreground, background));\n }\n};\n\n// src/encodedTokenAttributes.ts\nvar EncodedTokenMetadata = class _EncodedTokenMetadata {\n static toBinaryStr(encodedTokenAttributes) {\n return encodedTokenAttributes.toString(2).padStart(32, \"0\");\n }\n static print(encodedTokenAttributes) {\n const languageId = _EncodedTokenMetadata.getLanguageId(encodedTokenAttributes);\n const tokenType = _EncodedTokenMetadata.getTokenType(encodedTokenAttributes);\n const fontStyle = _EncodedTokenMetadata.getFontStyle(encodedTokenAttributes);\n const foreground = _EncodedTokenMetadata.getForeground(encodedTokenAttributes);\n const background = _EncodedTokenMetadata.getBackground(encodedTokenAttributes);\n console.log({\n languageId,\n tokenType,\n fontStyle,\n foreground,\n background\n });\n }\n static getLanguageId(encodedTokenAttributes) {\n return (encodedTokenAttributes & 255 /* LANGUAGEID_MASK */) >>> 0 /* LANGUAGEID_OFFSET */;\n }\n static getTokenType(encodedTokenAttributes) {\n return (encodedTokenAttributes & 768 /* TOKEN_TYPE_MASK */) >>> 8 /* TOKEN_TYPE_OFFSET */;\n }\n static containsBalancedBrackets(encodedTokenAttributes) {\n return (encodedTokenAttributes & 1024 /* BALANCED_BRACKETS_MASK */) !== 0;\n }\n static getFontStyle(encodedTokenAttributes) {\n return (encodedTokenAttributes & 30720 /* FONT_STYLE_MASK */) >>> 11 /* FONT_STYLE_OFFSET */;\n }\n static getForeground(encodedTokenAttributes) {\n return (encodedTokenAttributes & 16744448 /* FOREGROUND_MASK */) >>> 15 /* FOREGROUND_OFFSET */;\n }\n static getBackground(encodedTokenAttributes) {\n return (encodedTokenAttributes & 4278190080 /* BACKGROUND_MASK */) >>> 24 /* BACKGROUND_OFFSET */;\n }\n /**\n * Updates the fields in `metadata`.\n * A value of `0`, `NotSet` or `null` indicates that the corresponding field should be left as is.\n */\n static set(encodedTokenAttributes, languageId, tokenType, containsBalancedBrackets, fontStyle, foreground, background) {\n let _languageId = _EncodedTokenMetadata.getLanguageId(encodedTokenAttributes);\n let _tokenType = _EncodedTokenMetadata.getTokenType(encodedTokenAttributes);\n let _containsBalancedBracketsBit = _EncodedTokenMetadata.containsBalancedBrackets(encodedTokenAttributes) ? 1 : 0;\n let _fontStyle = _EncodedTokenMetadata.getFontStyle(encodedTokenAttributes);\n let _foreground = _EncodedTokenMetadata.getForeground(encodedTokenAttributes);\n let _background = _EncodedTokenMetadata.getBackground(encodedTokenAttributes);\n if (languageId !== 0) {\n _languageId = languageId;\n }\n if (tokenType !== 8 /* NotSet */) {\n _tokenType = fromOptionalTokenType(tokenType);\n }\n if (containsBalancedBrackets !== null) {\n _containsBalancedBracketsBit = containsBalancedBrackets ? 1 : 0;\n }\n if (fontStyle !== -1 /* NotSet */) {\n _fontStyle = fontStyle;\n }\n if (foreground !== 0) {\n _foreground = foreground;\n }\n if (background !== 0) {\n _background = background;\n }\n return (_languageId << 0 /* LANGUAGEID_OFFSET */ | _tokenType << 8 /* TOKEN_TYPE_OFFSET */ | _containsBalancedBracketsBit << 10 /* BALANCED_BRACKETS_OFFSET */ | _fontStyle << 11 /* FONT_STYLE_OFFSET */ | _foreground << 15 /* FOREGROUND_OFFSET */ | _background << 24 /* BACKGROUND_OFFSET */) >>> 0;\n }\n};\nfunction toOptionalTokenType(standardType) {\n return standardType;\n}\nfunction fromOptionalTokenType(standardType) {\n return standardType;\n}\n\n// src/matcher.ts\nfunction createMatchers(selector, matchesName) {\n const results = [];\n const tokenizer = newTokenizer(selector);\n let token = tokenizer.next();\n while (token !== null) {\n let priority = 0;\n if (token.length === 2 && token.charAt(1) === \":\") {\n switch (token.charAt(0)) {\n case \"R\":\n priority = 1;\n break;\n case \"L\":\n priority = -1;\n break;\n default:\n console.log(`Unknown priority ${token} in scope selector`);\n }\n token = tokenizer.next();\n }\n let matcher = parseConjunction();\n results.push({ matcher, priority });\n if (token !== \",\") {\n break;\n }\n token = tokenizer.next();\n }\n return results;\n function parseOperand() {\n if (token === \"-\") {\n token = tokenizer.next();\n const expressionToNegate = parseOperand();\n return (matcherInput) => !!expressionToNegate && !expressionToNegate(matcherInput);\n }\n if (token === \"(\") {\n token = tokenizer.next();\n const expressionInParents = parseInnerExpression();\n if (token === \")\") {\n token = tokenizer.next();\n }\n return expressionInParents;\n }\n if (isIdentifier(token)) {\n const identifiers = [];\n do {\n identifiers.push(token);\n token = tokenizer.next();\n } while (isIdentifier(token));\n return (matcherInput) => matchesName(identifiers, matcherInput);\n }\n return null;\n }\n function parseConjunction() {\n const matchers = [];\n let matcher = parseOperand();\n while (matcher) {\n matchers.push(matcher);\n matcher = parseOperand();\n }\n return (matcherInput) => matchers.every((matcher2) => matcher2(matcherInput));\n }\n function parseInnerExpression() {\n const matchers = [];\n let matcher = parseConjunction();\n while (matcher) {\n matchers.push(matcher);\n if (token === \"|\" || token === \",\") {\n do {\n token = tokenizer.next();\n } while (token === \"|\" || token === \",\");\n } else {\n break;\n }\n matcher = parseConjunction();\n }\n return (matcherInput) => matchers.some((matcher2) => matcher2(matcherInput));\n }\n}\nfunction isIdentifier(token) {\n return !!token && !!token.match(/[\\w\\.:]+/);\n}\nfunction newTokenizer(input) {\n let regex = /([LR]:|[\\w\\.:][\\w\\.:\\-]*|[\\,\\|\\-\\(\\)])/g;\n let match = regex.exec(input);\n return {\n next: () => {\n if (!match) {\n return null;\n }\n const res = match[0];\n match = regex.exec(input);\n return res;\n }\n };\n}\n\n// src/onigLib.ts\nvar FindOption = /* @__PURE__ */ ((FindOption2) => {\n FindOption2[FindOption2[\"None\"] = 0] = \"None\";\n FindOption2[FindOption2[\"NotBeginString\"] = 1] = \"NotBeginString\";\n FindOption2[FindOption2[\"NotEndString\"] = 2] = \"NotEndString\";\n FindOption2[FindOption2[\"NotBeginPosition\"] = 4] = \"NotBeginPosition\";\n FindOption2[FindOption2[\"DebugCall\"] = 8] = \"DebugCall\";\n return FindOption2;\n})(FindOption || {});\nfunction disposeOnigString(str) {\n if (typeof str.dispose === \"function\") {\n str.dispose();\n }\n}\n\n// src/grammar/grammarDependencies.ts\nvar TopLevelRuleReference = class {\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n toKey() {\n return this.scopeName;\n }\n};\nvar TopLevelRepositoryRuleReference = class {\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n toKey() {\n return `${this.scopeName}#${this.ruleName}`;\n }\n};\nvar ExternalReferenceCollector = class {\n _references = [];\n _seenReferenceKeys = /* @__PURE__ */ new Set();\n get references() {\n return this._references;\n }\n visitedRule = /* @__PURE__ */ new Set();\n add(reference) {\n const key = reference.toKey();\n if (this._seenReferenceKeys.has(key)) {\n return;\n }\n this._seenReferenceKeys.add(key);\n this._references.push(reference);\n }\n};\nvar ScopeDependencyProcessor = class {\n constructor(repo, initialScopeName) {\n this.repo = repo;\n this.initialScopeName = initialScopeName;\n this.seenFullScopeRequests.add(this.initialScopeName);\n this.Q = [new TopLevelRuleReference(this.initialScopeName)];\n }\n seenFullScopeRequests = /* @__PURE__ */ new Set();\n seenPartialScopeRequests = /* @__PURE__ */ new Set();\n Q;\n processQueue() {\n const q = this.Q;\n this.Q = [];\n const deps = new ExternalReferenceCollector();\n for (const dep of q) {\n collectReferencesOfReference(dep, this.initialScopeName, this.repo, deps);\n }\n for (const dep of deps.references) {\n if (dep instanceof TopLevelRuleReference) {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n continue;\n }\n this.seenFullScopeRequests.add(dep.scopeName);\n this.Q.push(dep);\n } else {\n if (this.seenFullScopeRequests.has(dep.scopeName)) {\n continue;\n }\n if (this.seenPartialScopeRequests.has(dep.toKey())) {\n continue;\n }\n this.seenPartialScopeRequests.add(dep.toKey());\n this.Q.push(dep);\n }\n }\n }\n};\nfunction collectReferencesOfReference(reference, baseGrammarScopeName, repo, result) {\n const selfGrammar = repo.lookup(reference.scopeName);\n if (!selfGrammar) {\n if (reference.scopeName === baseGrammarScopeName) {\n throw new Error(`No grammar provided for <${baseGrammarScopeName}>`);\n }\n return;\n }\n const baseGrammar = repo.lookup(baseGrammarScopeName);\n if (reference instanceof TopLevelRuleReference) {\n collectExternalReferencesInTopLevelRule({ baseGrammar, selfGrammar }, result);\n } else {\n collectExternalReferencesInTopLevelRepositoryRule(\n reference.ruleName,\n { baseGrammar, selfGrammar, repository: selfGrammar.repository },\n result\n );\n }\n const injections = repo.injections(reference.scopeName);\n if (injections) {\n for (const injection of injections) {\n result.add(new TopLevelRuleReference(injection));\n }\n }\n}\nfunction collectExternalReferencesInTopLevelRepositoryRule(ruleName, context, result) {\n if (context.repository && context.repository[ruleName]) {\n const rule = context.repository[ruleName];\n collectExternalReferencesInRules([rule], context, result);\n }\n}\nfunction collectExternalReferencesInTopLevelRule(context, result) {\n if (context.selfGrammar.patterns && Array.isArray(context.selfGrammar.patterns)) {\n collectExternalReferencesInRules(\n context.selfGrammar.patterns,\n { ...context, repository: context.selfGrammar.repository },\n result\n );\n }\n if (context.selfGrammar.injections) {\n collectExternalReferencesInRules(\n Object.values(context.selfGrammar.injections),\n { ...context, repository: context.selfGrammar.repository },\n result\n );\n }\n}\nfunction collectExternalReferencesInRules(rules, context, result) {\n for (const rule of rules) {\n if (result.visitedRule.has(rule)) {\n continue;\n }\n result.visitedRule.add(rule);\n const patternRepository = rule.repository ? mergeObjects({}, context.repository, rule.repository) : context.repository;\n if (Array.isArray(rule.patterns)) {\n collectExternalReferencesInRules(rule.patterns, { ...context, repository: patternRepository }, result);\n }\n const include = rule.include;\n if (!include) {\n continue;\n }\n const reference = parseInclude(include);\n switch (reference.kind) {\n case 0 /* Base */:\n collectExternalReferencesInTopLevelRule({ ...context, selfGrammar: context.baseGrammar }, result);\n break;\n case 1 /* Self */:\n collectExternalReferencesInTopLevelRule(context, result);\n break;\n case 2 /* RelativeReference */:\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, { ...context, repository: patternRepository }, result);\n break;\n case 3 /* TopLevelReference */:\n case 4 /* TopLevelRepositoryReference */:\n const selfGrammar = reference.scopeName === context.selfGrammar.scopeName ? context.selfGrammar : reference.scopeName === context.baseGrammar.scopeName ? context.baseGrammar : void 0;\n if (selfGrammar) {\n const newContext = { baseGrammar: context.baseGrammar, selfGrammar, repository: patternRepository };\n if (reference.kind === 4 /* TopLevelRepositoryReference */) {\n collectExternalReferencesInTopLevelRepositoryRule(reference.ruleName, newContext, result);\n } else {\n collectExternalReferencesInTopLevelRule(newContext, result);\n }\n } else {\n if (reference.kind === 4 /* TopLevelRepositoryReference */) {\n result.add(new TopLevelRepositoryRuleReference(reference.scopeName, reference.ruleName));\n } else {\n result.add(new TopLevelRuleReference(reference.scopeName));\n }\n }\n break;\n }\n }\n}\nvar BaseReference = class {\n kind = 0 /* Base */;\n};\nvar SelfReference = class {\n kind = 1 /* Self */;\n};\nvar RelativeReference = class {\n constructor(ruleName) {\n this.ruleName = ruleName;\n }\n kind = 2 /* RelativeReference */;\n};\nvar TopLevelReference = class {\n constructor(scopeName) {\n this.scopeName = scopeName;\n }\n kind = 3 /* TopLevelReference */;\n};\nvar TopLevelRepositoryReference = class {\n constructor(scopeName, ruleName) {\n this.scopeName = scopeName;\n this.ruleName = ruleName;\n }\n kind = 4 /* TopLevelRepositoryReference */;\n};\nfunction parseInclude(include) {\n if (include === \"$base\") {\n return new BaseReference();\n } else if (include === \"$self\") {\n return new SelfReference();\n }\n const indexOfSharp = include.indexOf(\"#\");\n if (indexOfSharp === -1) {\n return new TopLevelReference(include);\n } else if (indexOfSharp === 0) {\n return new RelativeReference(include.substring(1));\n } else {\n const scopeName = include.substring(0, indexOfSharp);\n const ruleName = include.substring(indexOfSharp + 1);\n return new TopLevelRepositoryReference(scopeName, ruleName);\n }\n}\n\n// src/rule.ts\nvar HAS_BACK_REFERENCES = /\\\\(\\d+)/;\nvar BACK_REFERENCING_END = /\\\\(\\d+)/g;\nvar ruleIdSymbol = Symbol(\"RuleId\");\nvar endRuleId = -1;\nvar whileRuleId = -2;\nfunction ruleIdFromNumber(id) {\n return id;\n}\nfunction ruleIdToNumber(id) {\n return id;\n}\nvar Rule = class {\n $location;\n id;\n _nameIsCapturing;\n _name;\n _contentNameIsCapturing;\n _contentName;\n constructor($location, id, name, contentName) {\n this.$location = $location;\n this.id = id;\n this._name = name || null;\n this._nameIsCapturing = RegexSource.hasCaptures(this._name);\n this._contentName = contentName || null;\n this._contentNameIsCapturing = RegexSource.hasCaptures(this._contentName);\n }\n get debugName() {\n const location = this.$location ? `${basename(this.$location.filename)}:${this.$location.line}` : \"unknown\";\n return `${this.constructor.name}#${this.id} @ ${location}`;\n }\n getName(lineText, captureIndices) {\n if (!this._nameIsCapturing || this._name === null || lineText === null || captureIndices === null) {\n return this._name;\n }\n return RegexSource.replaceCaptures(this._name, lineText, captureIndices);\n }\n getContentName(lineText, captureIndices) {\n if (!this._contentNameIsCapturing || this._contentName === null) {\n return this._contentName;\n }\n return RegexSource.replaceCaptures(this._contentName, lineText, captureIndices);\n }\n};\nvar CaptureRule = class extends Rule {\n retokenizeCapturedWithRuleId;\n constructor($location, id, name, contentName, retokenizeCapturedWithRuleId) {\n super($location, id, name, contentName);\n this.retokenizeCapturedWithRuleId = retokenizeCapturedWithRuleId;\n }\n dispose() {\n }\n collectPatterns(grammar, out) {\n throw new Error(\"Not supported!\");\n }\n compile(grammar, endRegexSource) {\n throw new Error(\"Not supported!\");\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n throw new Error(\"Not supported!\");\n }\n};\nvar MatchRule = class extends Rule {\n _match;\n captures;\n _cachedCompiledPatterns;\n constructor($location, id, name, match, captures) {\n super($location, id, name, null);\n this._match = new RegExpSource(match, this.id);\n this.captures = captures;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugMatchRegExp() {\n return `${this._match.source}`;\n }\n collectPatterns(grammar, out) {\n out.push(this._match);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar IncludeOnlyRule = class extends Rule {\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, patterns) {\n super($location, id, name, contentName);\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n collectPatterns(grammar, out) {\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, out);\n }\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n this.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar BeginEndRule = class extends Rule {\n _begin;\n beginCaptures;\n _end;\n endHasBackReferences;\n endCaptures;\n applyEndPatternLast;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, end, endCaptures, applyEndPatternLast, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this._end = new RegExpSource(end ? end : \"\\uFFFF\", -1);\n this.endHasBackReferences = this._end.hasBackReferences;\n this.endCaptures = endCaptures;\n this.applyEndPatternLast = applyEndPatternLast || false;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugEndRegExp() {\n return `${this._end.source}`;\n }\n getEndWithResolvedBackReferences(lineText, captureIndices) {\n return this._end.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.push(this._end.hasBackReferences ? this._end.clone() : this._end);\n } else {\n this._cachedCompiledPatterns.unshift(this._end.hasBackReferences ? this._end.clone() : this._end);\n }\n }\n if (this._end.hasBackReferences) {\n if (this.applyEndPatternLast) {\n this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length() - 1, endRegexSource);\n } else {\n this._cachedCompiledPatterns.setSource(0, endRegexSource);\n }\n }\n return this._cachedCompiledPatterns;\n }\n};\nvar BeginWhileRule = class extends Rule {\n _begin;\n beginCaptures;\n whileCaptures;\n _while;\n whileHasBackReferences;\n hasMissingPatterns;\n patterns;\n _cachedCompiledPatterns;\n _cachedCompiledWhilePatterns;\n constructor($location, id, name, contentName, begin, beginCaptures, _while, whileCaptures, patterns) {\n super($location, id, name, contentName);\n this._begin = new RegExpSource(begin, this.id);\n this.beginCaptures = beginCaptures;\n this.whileCaptures = whileCaptures;\n this._while = new RegExpSource(_while, whileRuleId);\n this.whileHasBackReferences = this._while.hasBackReferences;\n this.patterns = patterns.patterns;\n this.hasMissingPatterns = patterns.hasMissingPatterns;\n this._cachedCompiledPatterns = null;\n this._cachedCompiledWhilePatterns = null;\n }\n dispose() {\n if (this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns.dispose();\n this._cachedCompiledPatterns = null;\n }\n if (this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns.dispose();\n this._cachedCompiledWhilePatterns = null;\n }\n }\n get debugBeginRegExp() {\n return `${this._begin.source}`;\n }\n get debugWhileRegExp() {\n return `${this._while.source}`;\n }\n getWhileWithResolvedBackReferences(lineText, captureIndices) {\n return this._while.resolveBackReferences(lineText, captureIndices);\n }\n collectPatterns(grammar, out) {\n out.push(this._begin);\n }\n compile(grammar, endRegexSource) {\n return this._getCachedCompiledPatterns(grammar).compile(grammar);\n }\n compileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledPatterns(grammar).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledPatterns(grammar) {\n if (!this._cachedCompiledPatterns) {\n this._cachedCompiledPatterns = new RegExpSourceList();\n for (const pattern of this.patterns) {\n const rule = grammar.getRule(pattern);\n rule.collectPatterns(grammar, this._cachedCompiledPatterns);\n }\n }\n return this._cachedCompiledPatterns;\n }\n compileWhile(grammar, endRegexSource) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compile(grammar);\n }\n compileWhileAG(grammar, endRegexSource, allowA, allowG) {\n return this._getCachedCompiledWhilePatterns(grammar, endRegexSource).compileAG(grammar, allowA, allowG);\n }\n _getCachedCompiledWhilePatterns(grammar, endRegexSource) {\n if (!this._cachedCompiledWhilePatterns) {\n this._cachedCompiledWhilePatterns = new RegExpSourceList();\n this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences ? this._while.clone() : this._while);\n }\n if (this._while.hasBackReferences) {\n this._cachedCompiledWhilePatterns.setSource(0, endRegexSource ? endRegexSource : \"\\uFFFF\");\n }\n return this._cachedCompiledWhilePatterns;\n }\n};\nvar RuleFactory = class _RuleFactory {\n static createCaptureRule(helper, $location, name, contentName, retokenizeCapturedWithRuleId) {\n return helper.registerRule((id) => {\n return new CaptureRule($location, id, name, contentName, retokenizeCapturedWithRuleId);\n });\n }\n static getCompiledRuleId(desc, helper, repository) {\n if (!desc.id) {\n helper.registerRule((id) => {\n desc.id = id;\n if (desc.match) {\n return new MatchRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.match,\n _RuleFactory._compileCaptures(desc.captures, helper, repository)\n );\n }\n if (typeof desc.begin === \"undefined\") {\n if (desc.repository) {\n repository = mergeObjects({}, repository, desc.repository);\n }\n let patterns = desc.patterns;\n if (typeof patterns === \"undefined\" && desc.include) {\n patterns = [{ include: desc.include }];\n }\n return new IncludeOnlyRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n _RuleFactory._compilePatterns(patterns, helper, repository)\n );\n }\n if (desc.while) {\n return new BeginWhileRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n desc.begin,\n _RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository),\n desc.while,\n _RuleFactory._compileCaptures(desc.whileCaptures || desc.captures, helper, repository),\n _RuleFactory._compilePatterns(desc.patterns, helper, repository)\n );\n }\n return new BeginEndRule(\n desc.$vscodeTextmateLocation,\n desc.id,\n desc.name,\n desc.contentName,\n desc.begin,\n _RuleFactory._compileCaptures(desc.beginCaptures || desc.captures, helper, repository),\n desc.end,\n _RuleFactory._compileCaptures(desc.endCaptures || desc.captures, helper, repository),\n desc.applyEndPatternLast,\n _RuleFactory._compilePatterns(desc.patterns, helper, repository)\n );\n });\n }\n return desc.id;\n }\n static _compileCaptures(captures, helper, repository) {\n let r = [];\n if (captures) {\n let maximumCaptureId = 0;\n for (const captureId in captures) {\n if (captureId === \"$vscodeTextmateLocation\") {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n if (numericCaptureId > maximumCaptureId) {\n maximumCaptureId = numericCaptureId;\n }\n }\n for (let i = 0; i <= maximumCaptureId; i++) {\n r[i] = null;\n }\n for (const captureId in captures) {\n if (captureId === \"$vscodeTextmateLocation\") {\n continue;\n }\n const numericCaptureId = parseInt(captureId, 10);\n let retokenizeCapturedWithRuleId = 0;\n if (captures[captureId].patterns) {\n retokenizeCapturedWithRuleId = _RuleFactory.getCompiledRuleId(captures[captureId], helper, repository);\n }\n r[numericCaptureId] = _RuleFactory.createCaptureRule(helper, captures[captureId].$vscodeTextmateLocation, captures[captureId].name, captures[captureId].contentName, retokenizeCapturedWithRuleId);\n }\n }\n return r;\n }\n static _compilePatterns(patterns, helper, repository) {\n let r = [];\n if (patterns) {\n for (let i = 0, len = patterns.length; i < len; i++) {\n const pattern = patterns[i];\n let ruleId = -1;\n if (pattern.include) {\n const reference = parseInclude(pattern.include);\n switch (reference.kind) {\n case 0 /* Base */:\n case 1 /* Self */:\n ruleId = _RuleFactory.getCompiledRuleId(repository[pattern.include], helper, repository);\n break;\n case 2 /* RelativeReference */:\n let localIncludedRule = repository[reference.ruleName];\n if (localIncludedRule) {\n ruleId = _RuleFactory.getCompiledRuleId(localIncludedRule, helper, repository);\n } else {\n }\n break;\n case 3 /* TopLevelReference */:\n case 4 /* TopLevelRepositoryReference */:\n const externalGrammarName = reference.scopeName;\n const externalGrammarInclude = reference.kind === 4 /* TopLevelRepositoryReference */ ? reference.ruleName : null;\n const externalGrammar = helper.getExternalGrammar(externalGrammarName, repository);\n if (externalGrammar) {\n if (externalGrammarInclude) {\n let externalIncludedRule = externalGrammar.repository[externalGrammarInclude];\n if (externalIncludedRule) {\n ruleId = _RuleFactory.getCompiledRuleId(externalIncludedRule, helper, externalGrammar.repository);\n } else {\n }\n } else {\n ruleId = _RuleFactory.getCompiledRuleId(externalGrammar.repository.$self, helper, externalGrammar.repository);\n }\n } else {\n }\n break;\n }\n } else {\n ruleId = _RuleFactory.getCompiledRuleId(pattern, helper, repository);\n }\n if (ruleId !== -1) {\n const rule = helper.getRule(ruleId);\n let skipRule = false;\n if (rule instanceof IncludeOnlyRule || rule instanceof BeginEndRule || rule instanceof BeginWhileRule) {\n if (rule.hasMissingPatterns && rule.patterns.length === 0) {\n skipRule = true;\n }\n }\n if (skipRule) {\n continue;\n }\n r.push(ruleId);\n }\n }\n }\n return {\n patterns: r,\n hasMissingPatterns: (patterns ? patterns.length : 0) !== r.length\n };\n }\n};\nvar RegExpSource = class _RegExpSource {\n source;\n ruleId;\n hasAnchor;\n hasBackReferences;\n _anchorCache;\n constructor(regExpSource, ruleId) {\n if (regExpSource && typeof regExpSource === \"string\") {\n const len = regExpSource.length;\n let lastPushedPos = 0;\n let output = [];\n let hasAnchor = false;\n for (let pos = 0; pos < len; pos++) {\n const ch = regExpSource.charAt(pos);\n if (ch === \"\\\\\") {\n if (pos + 1 < len) {\n const nextCh = regExpSource.charAt(pos + 1);\n if (nextCh === \"z\") {\n output.push(regExpSource.substring(lastPushedPos, pos));\n output.push(\"$(?!\\\\n)(?<!\\\\n)\");\n lastPushedPos = pos + 2;\n } else if (nextCh === \"A\" || nextCh === \"G\") {\n hasAnchor = true;\n }\n pos++;\n }\n }\n }\n this.hasAnchor = hasAnchor;\n if (lastPushedPos === 0) {\n this.source = regExpSource;\n } else {\n output.push(regExpSource.substring(lastPushedPos, len));\n this.source = output.join(\"\");\n }\n } else {\n this.hasAnchor = false;\n this.source = regExpSource;\n }\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n } else {\n this._anchorCache = null;\n }\n this.ruleId = ruleId;\n if (typeof this.source === \"string\") {\n this.hasBackReferences = HAS_BACK_REFERENCES.test(this.source);\n } else {\n this.hasBackReferences = false;\n }\n }\n clone() {\n return new _RegExpSource(this.source, this.ruleId);\n }\n setSource(newSource) {\n if (this.source === newSource) {\n return;\n }\n this.source = newSource;\n if (this.hasAnchor) {\n this._anchorCache = this._buildAnchorCache();\n }\n }\n resolveBackReferences(lineText, captureIndices) {\n if (typeof this.source !== \"string\") {\n throw new Error(\"This method should only be called if the source is a string\");\n }\n let capturedValues = captureIndices.map((capture) => {\n return lineText.substring(capture.start, capture.end);\n });\n BACK_REFERENCING_END.lastIndex = 0;\n return this.source.replace(BACK_REFERENCING_END, (match, g1) => {\n return escapeRegExpCharacters(capturedValues[parseInt(g1, 10)] || \"\");\n });\n }\n _buildAnchorCache() {\n if (typeof this.source !== \"string\") {\n throw new Error(\"This method should only be called if the source is a string\");\n }\n let A0_G0_result = [];\n let A0_G1_result = [];\n let A1_G0_result = [];\n let A1_G1_result = [];\n let pos, len, ch, nextCh;\n for (pos = 0, len = this.source.length; pos < len; pos++) {\n ch = this.source.charAt(pos);\n A0_G0_result[pos] = ch;\n A0_G1_result[pos] = ch;\n A1_G0_result[pos] = ch;\n A1_G1_result[pos] = ch;\n if (ch === \"\\\\\") {\n if (pos + 1 < len) {\n nextCh = this.source.charAt(pos + 1);\n if (nextCh === \"A\") {\n A0_G0_result[pos + 1] = \"\\uFFFF\";\n A0_G1_result[pos + 1] = \"\\uFFFF\";\n A1_G0_result[pos + 1] = \"A\";\n A1_G1_result[pos + 1] = \"A\";\n } else if (nextCh === \"G\") {\n A0_G0_result[pos + 1] = \"\\uFFFF\";\n A0_G1_result[pos + 1] = \"G\";\n A1_G0_result[pos + 1] = \"\\uFFFF\";\n A1_G1_result[pos + 1] = \"G\";\n } else {\n A0_G0_result[pos + 1] = nextCh;\n A0_G1_result[pos + 1] = nextCh;\n A1_G0_result[pos + 1] = nextCh;\n A1_G1_result[pos + 1] = nextCh;\n }\n pos++;\n }\n }\n }\n return {\n A0_G0: A0_G0_result.join(\"\"),\n A0_G1: A0_G1_result.join(\"\"),\n A1_G0: A1_G0_result.join(\"\"),\n A1_G1: A1_G1_result.join(\"\")\n };\n }\n resolveAnchors(allowA, allowG) {\n if (!this.hasAnchor || !this._anchorCache || typeof this.source !== \"string\") {\n return this.source;\n }\n if (allowA) {\n if (allowG) {\n return this._anchorCache.A1_G1;\n } else {\n return this._anchorCache.A1_G0;\n }\n } else {\n if (allowG) {\n return this._anchorCache.A0_G1;\n } else {\n return this._anchorCache.A0_G0;\n }\n }\n }\n};\nvar RegExpSourceList = class {\n _items;\n _hasAnchors;\n _cached;\n _anchorCache;\n constructor() {\n this._items = [];\n this._hasAnchors = false;\n this._cached = null;\n this._anchorCache = {\n A0_G0: null,\n A0_G1: null,\n A1_G0: null,\n A1_G1: null\n };\n }\n dispose() {\n this._disposeCaches();\n }\n _disposeCaches() {\n if (this._cached) {\n this._cached.dispose();\n this._cached = null;\n }\n if (this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0.dispose();\n this._anchorCache.A0_G0 = null;\n }\n if (this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1.dispose();\n this._anchorCache.A0_G1 = null;\n }\n if (this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0.dispose();\n this._anchorCache.A1_G0 = null;\n }\n if (this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1.dispose();\n this._anchorCache.A1_G1 = null;\n }\n }\n push(item) {\n this._items.push(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n unshift(item) {\n this._items.unshift(item);\n this._hasAnchors = this._hasAnchors || item.hasAnchor;\n }\n length() {\n return this._items.length;\n }\n setSource(index, newSource) {\n if (this._items[index].source !== newSource) {\n this._disposeCaches();\n this._items[index].setSource(newSource);\n }\n }\n compile(onigLib) {\n if (!this._cached) {\n let regExps = this._items.map((e) => e.source);\n this._cached = new CompiledRule(onigLib, regExps, this._items.map((e) => e.ruleId));\n }\n return this._cached;\n }\n compileAG(onigLib, allowA, allowG) {\n if (!this._hasAnchors) {\n return this.compile(onigLib);\n } else {\n if (allowA) {\n if (allowG) {\n if (!this._anchorCache.A1_G1) {\n this._anchorCache.A1_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G1;\n } else {\n if (!this._anchorCache.A1_G0) {\n this._anchorCache.A1_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A1_G0;\n }\n } else {\n if (allowG) {\n if (!this._anchorCache.A0_G1) {\n this._anchorCache.A0_G1 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G1;\n } else {\n if (!this._anchorCache.A0_G0) {\n this._anchorCache.A0_G0 = this._resolveAnchors(onigLib, allowA, allowG);\n }\n return this._anchorCache.A0_G0;\n }\n }\n }\n }\n _resolveAnchors(onigLib, allowA, allowG) {\n let regExps = this._items.map((e) => e.resolveAnchors(allowA, allowG));\n return new CompiledRule(onigLib, regExps, this._items.map((e) => e.ruleId));\n }\n};\nvar CompiledRule = class {\n constructor(onigLib, regExps, rules) {\n this.regExps = regExps;\n this.rules = rules;\n this.scanner = onigLib.createOnigScanner(regExps);\n }\n scanner;\n dispose() {\n if (typeof this.scanner.dispose === \"function\") {\n this.scanner.dispose();\n }\n }\n toString() {\n const r = [];\n for (let i = 0, len = this.rules.length; i < len; i++) {\n r.push(\" - \" + this.rules[i] + \": \" + this.regExps[i]);\n }\n return r.join(\"\\n\");\n }\n findNextMatchSync(string, startPosition, options) {\n const result = this.scanner.findNextMatchSync(string, startPosition, options);\n if (!result) {\n return null;\n }\n return {\n ruleId: this.rules[result.index],\n captureIndices: result.captureIndices\n };\n }\n};\n\n// src/grammar/basicScopesAttributeProvider.ts\nvar BasicScopeAttributes = class {\n constructor(languageId, tokenType) {\n this.languageId = languageId;\n this.tokenType = tokenType;\n }\n};\nvar BasicScopeAttributesProvider = class _BasicScopeAttributesProvider {\n _defaultAttributes;\n _embeddedLanguagesMatcher;\n constructor(initialLanguageId, embeddedLanguages) {\n this._defaultAttributes = new BasicScopeAttributes(initialLanguageId, 8 /* NotSet */);\n this._embeddedLanguagesMatcher = new ScopeMatcher(Object.entries(embeddedLanguages || {}));\n }\n getDefaultAttributes() {\n return this._defaultAttributes;\n }\n getBasicScopeAttributes(scopeName) {\n if (scopeName === null) {\n return _BasicScopeAttributesProvider._NULL_SCOPE_METADATA;\n }\n return this._getBasicScopeAttributes.get(scopeName);\n }\n static _NULL_SCOPE_METADATA = new BasicScopeAttributes(0, 0);\n _getBasicScopeAttributes = new CachedFn((scopeName) => {\n const languageId = this._scopeToLanguage(scopeName);\n const standardTokenType = this._toStandardTokenType(scopeName);\n return new BasicScopeAttributes(languageId, standardTokenType);\n });\n /**\n * Given a produced TM scope, return the language that token describes or null if unknown.\n * e.g. source.html => html, source.css.embedded.html => css, punctuation.definition.tag.html => null\n */\n _scopeToLanguage(scope) {\n return this._embeddedLanguagesMatcher.match(scope) || 0;\n }\n _toStandardTokenType(scopeName) {\n const m = scopeName.match(_BasicScopeAttributesProvider.STANDARD_TOKEN_TYPE_REGEXP);\n if (!m) {\n return 8 /* NotSet */;\n }\n switch (m[1]) {\n case \"comment\":\n return 1 /* Comment */;\n case \"string\":\n return 2 /* String */;\n case \"regex\":\n return 3 /* RegEx */;\n case \"meta.embedded\":\n return 0 /* Other */;\n }\n throw new Error(\"Unexpected match for standard token type!\");\n }\n static STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/;\n};\nvar ScopeMatcher = class {\n values;\n scopesRegExp;\n constructor(values) {\n if (values.length === 0) {\n this.values = null;\n this.scopesRegExp = null;\n } else {\n this.values = new Map(values);\n const escapedScopes = values.map(\n ([scopeName, value]) => escapeRegExpCharacters(scopeName)\n );\n escapedScopes.sort();\n escapedScopes.reverse();\n this.scopesRegExp = new RegExp(\n `^((${escapedScopes.join(\")|(\")}))($|\\\\.)`,\n \"\"\n );\n }\n }\n match(scope) {\n if (!this.scopesRegExp) {\n return void 0;\n }\n const m = scope.match(this.scopesRegExp);\n if (!m) {\n return void 0;\n }\n return this.values.get(m[1]);\n }\n};\n\n// src/debug.ts\nvar DebugFlags = {\n InDebugMode: typeof process !== \"undefined\" && !!process.env[\"VSCODE_TEXTMATE_DEBUG\"]\n};\nvar UseOnigurumaFindOptions = false;\n\n// src/grammar/tokenizeString.ts\nvar TokenizeStringResult = class {\n constructor(stack, stoppedEarly) {\n this.stack = stack;\n this.stoppedEarly = stoppedEarly;\n }\n};\nfunction _tokenizeString(grammar, lineText, isFirstLine, linePos, stack, lineTokens, checkWhileConditions, timeLimit) {\n const lineLength = lineText.content.length;\n let STOP = false;\n let anchorPosition = -1;\n if (checkWhileConditions) {\n const whileCheckResult = _checkWhileConditions(\n grammar,\n lineText,\n isFirstLine,\n linePos,\n stack,\n lineTokens\n );\n stack = whileCheckResult.stack;\n linePos = whileCheckResult.linePos;\n isFirstLine = whileCheckResult.isFirstLine;\n anchorPosition = whileCheckResult.anchorPosition;\n }\n const startTime = Date.now();\n while (!STOP) {\n if (timeLimit !== 0) {\n const elapsedTime = Date.now() - startTime;\n if (elapsedTime > timeLimit) {\n return new TokenizeStringResult(stack, true);\n }\n }\n scanNext();\n }\n return new TokenizeStringResult(stack, false);\n function scanNext() {\n if (false) {\n console.log(\"\");\n console.log(\n `@@scanNext ${linePos}: |${lineText.content.substr(linePos).replace(/\\n$/, \"\\\\n\")}|`\n );\n }\n const r = matchRuleOrInjections(\n grammar,\n lineText,\n isFirstLine,\n linePos,\n stack,\n anchorPosition\n );\n if (!r) {\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n const captureIndices = r.captureIndices;\n const matchedRuleId = r.matchedRuleId;\n const hasAdvanced = captureIndices && captureIndices.length > 0 ? captureIndices[0].end > linePos : false;\n if (matchedRuleId === endRuleId) {\n const poppedRule = stack.getRule(grammar);\n if (false) {\n console.log(\n \" popping \" + poppedRule.debugName + \" - \" + poppedRule.debugEndRegExp\n );\n }\n lineTokens.produce(stack, captureIndices[0].start);\n stack = stack.withContentNameScopesList(stack.nameScopesList);\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n poppedRule.endCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n const popped = stack;\n stack = stack.parent;\n anchorPosition = popped.getAnchorPos();\n if (!hasAdvanced && popped.getEnterPos() === linePos) {\n if (false) {\n console.error(\n \"[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing\"\n );\n }\n stack = popped;\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else {\n const _rule = grammar.getRule(matchedRuleId);\n lineTokens.produce(stack, captureIndices[0].start);\n const beforePush = stack;\n const scopeName = _rule.getName(lineText.content, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(\n scopeName,\n grammar\n );\n stack = stack.push(\n matchedRuleId,\n linePos,\n anchorPosition,\n captureIndices[0].end === lineLength,\n null,\n nameScopesList,\n nameScopesList\n );\n if (_rule instanceof BeginEndRule) {\n const pushedRule = _rule;\n if (false) {\n console.log(\n \" pushing \" + pushedRule.debugName + \" - \" + pushedRule.debugBeginRegExp\n );\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n pushedRule.beginCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(\n lineText.content,\n captureIndices\n );\n const contentNameScopesList = nameScopesList.pushAttributed(\n contentName,\n grammar\n );\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.endHasBackReferences) {\n stack = stack.withEndRule(\n pushedRule.getEndWithResolvedBackReferences(\n lineText.content,\n captureIndices\n )\n );\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n if (false) {\n console.error(\n \"[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing\"\n );\n }\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else if (_rule instanceof BeginWhileRule) {\n const pushedRule = _rule;\n if (false) {\n console.log(\" pushing \" + pushedRule.debugName);\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n pushedRule.beginCaptures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n anchorPosition = captureIndices[0].end;\n const contentName = pushedRule.getContentName(\n lineText.content,\n captureIndices\n );\n const contentNameScopesList = nameScopesList.pushAttributed(\n contentName,\n grammar\n );\n stack = stack.withContentNameScopesList(contentNameScopesList);\n if (pushedRule.whileHasBackReferences) {\n stack = stack.withEndRule(\n pushedRule.getWhileWithResolvedBackReferences(\n lineText.content,\n captureIndices\n )\n );\n }\n if (!hasAdvanced && beforePush.hasSameRuleAs(stack)) {\n if (false) {\n console.error(\n \"[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing\"\n );\n }\n stack = stack.pop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n } else {\n const matchingRule = _rule;\n if (false) {\n console.log(\n \" matched \" + matchingRule.debugName + \" - \" + matchingRule.debugMatchRegExp\n );\n }\n handleCaptures(\n grammar,\n lineText,\n isFirstLine,\n stack,\n lineTokens,\n matchingRule.captures,\n captureIndices\n );\n lineTokens.produce(stack, captureIndices[0].end);\n stack = stack.pop();\n if (!hasAdvanced) {\n if (false) {\n console.error(\n \"[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping\"\n );\n }\n stack = stack.safePop();\n lineTokens.produce(stack, lineLength);\n STOP = true;\n return;\n }\n }\n }\n if (captureIndices[0].end > linePos) {\n linePos = captureIndices[0].end;\n isFirstLine = false;\n }\n }\n}\nfunction _checkWhileConditions(grammar, lineText, isFirstLine, linePos, stack, lineTokens) {\n let anchorPosition = stack.beginRuleCapturedEOL ? 0 : -1;\n const whileRules = [];\n for (let node = stack; node; node = node.pop()) {\n const nodeRule = node.getRule(grammar);\n if (nodeRule instanceof BeginWhileRule) {\n whileRules.push({\n rule: nodeRule,\n stack: node\n });\n }\n }\n for (let whileRule = whileRules.pop(); whileRule; whileRule = whileRules.pop()) {\n const { ruleScanner, findOptions } = prepareRuleWhileSearch(whileRule.rule, grammar, whileRule.stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (false) {\n console.log(\" scanning for while rule\");\n console.log(ruleScanner.toString());\n }\n if (r) {\n const matchedRuleId = r.ruleId;\n if (matchedRuleId !== whileRuleId) {\n stack = whileRule.stack.pop();\n break;\n }\n if (r.captureIndices && r.captureIndices.length) {\n lineTokens.produce(whileRule.stack, r.captureIndices[0].start);\n handleCaptures(grammar, lineText, isFirstLine, whileRule.stack, lineTokens, whileRule.rule.whileCaptures, r.captureIndices);\n lineTokens.produce(whileRule.stack, r.captureIndices[0].end);\n anchorPosition = r.captureIndices[0].end;\n if (r.captureIndices[0].end > linePos) {\n linePos = r.captureIndices[0].end;\n isFirstLine = false;\n }\n }\n } else {\n if (false) {\n console.log(\" popping \" + whileRule.rule.debugName + \" - \" + whileRule.rule.debugWhileRegExp);\n }\n stack = whileRule.stack.pop();\n break;\n }\n }\n return { stack, linePos, anchorPosition, isFirstLine };\n}\nfunction matchRuleOrInjections(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const matchResult = matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n const injections = grammar.getInjections();\n if (injections.length === 0) {\n return matchResult;\n }\n const injectionResult = matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition);\n if (!injectionResult) {\n return matchResult;\n }\n if (!matchResult) {\n return injectionResult;\n }\n const matchResultScore = matchResult.captureIndices[0].start;\n const injectionResultScore = injectionResult.captureIndices[0].start;\n if (injectionResultScore < matchResultScore || injectionResult.priorityMatch && injectionResultScore === matchResultScore) {\n return injectionResult;\n }\n return matchResult;\n}\nfunction matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n const rule = stack.getRule(grammar);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, stack.endRule, isFirstLine, linePos === anchorPosition);\n const r = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (r) {\n return {\n captureIndices: r.captureIndices,\n matchedRuleId: r.ruleId\n };\n }\n return null;\n}\nfunction matchInjections(injections, grammar, lineText, isFirstLine, linePos, stack, anchorPosition) {\n let bestMatchRating = Number.MAX_VALUE;\n let bestMatchCaptureIndices = null;\n let bestMatchRuleId;\n let bestMatchResultPriority = 0;\n const scopes = stack.contentNameScopesList.getScopeNames();\n for (let i = 0, len = injections.length; i < len; i++) {\n const injection = injections[i];\n if (!injection.matcher(scopes)) {\n continue;\n }\n const rule = grammar.getRule(injection.ruleId);\n const { ruleScanner, findOptions } = prepareRuleSearch(rule, grammar, null, isFirstLine, linePos === anchorPosition);\n const matchResult = ruleScanner.findNextMatchSync(lineText, linePos, findOptions);\n if (!matchResult) {\n continue;\n }\n if (false) {\n console.log(` matched injection: ${injection.debugSelector}`);\n console.log(ruleScanner.toString());\n }\n const matchRating = matchResult.captureIndices[0].start;\n if (matchRating >= bestMatchRating) {\n continue;\n }\n bestMatchRating = matchRating;\n bestMatchCaptureIndices = matchResult.captureIndices;\n bestMatchRuleId = matchResult.ruleId;\n bestMatchResultPriority = injection.priority;\n if (bestMatchRating === linePos) {\n break;\n }\n }\n if (bestMatchCaptureIndices) {\n return {\n priorityMatch: bestMatchResultPriority === -1,\n captureIndices: bestMatchCaptureIndices,\n matchedRuleId: bestMatchRuleId\n };\n }\n return null;\n}\nfunction prepareRuleSearch(rule, grammar, endRegexSource, allowA, allowG) {\n if (UseOnigurumaFindOptions) {\n const ruleScanner2 = rule.compile(grammar, endRegexSource);\n const findOptions = getFindOptions(allowA, allowG);\n return { ruleScanner: ruleScanner2, findOptions };\n }\n const ruleScanner = rule.compileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* None */ };\n}\nfunction prepareRuleWhileSearch(rule, grammar, endRegexSource, allowA, allowG) {\n if (UseOnigurumaFindOptions) {\n const ruleScanner2 = rule.compileWhile(grammar, endRegexSource);\n const findOptions = getFindOptions(allowA, allowG);\n return { ruleScanner: ruleScanner2, findOptions };\n }\n const ruleScanner = rule.compileWhileAG(grammar, endRegexSource, allowA, allowG);\n return { ruleScanner, findOptions: 0 /* None */ };\n}\nfunction getFindOptions(allowA, allowG) {\n let options = 0 /* None */;\n if (!allowA) {\n options |= 1 /* NotBeginString */;\n }\n if (!allowG) {\n options |= 4 /* NotBeginPosition */;\n }\n return options;\n}\nfunction handleCaptures(grammar, lineText, isFirstLine, stack, lineTokens, captures, captureIndices) {\n if (captures.length === 0) {\n return;\n }\n const lineTextContent = lineText.content;\n const len = Math.min(captures.length, captureIndices.length);\n const localStack = [];\n const maxEnd = captureIndices[0].end;\n for (let i = 0; i < len; i++) {\n const captureRule = captures[i];\n if (captureRule === null) {\n continue;\n }\n const captureIndex = captureIndices[i];\n if (captureIndex.length === 0) {\n continue;\n }\n if (captureIndex.start > maxEnd) {\n break;\n }\n while (localStack.length > 0 && localStack[localStack.length - 1].endPos <= captureIndex.start) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n if (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, captureIndex.start);\n } else {\n lineTokens.produce(stack, captureIndex.start);\n }\n if (captureRule.retokenizeCapturedWithRuleId) {\n const scopeName = captureRule.getName(lineTextContent, captureIndices);\n const nameScopesList = stack.contentNameScopesList.pushAttributed(scopeName, grammar);\n const contentName = captureRule.getContentName(lineTextContent, captureIndices);\n const contentNameScopesList = nameScopesList.pushAttributed(contentName, grammar);\n const stackClone = stack.push(captureRule.retokenizeCapturedWithRuleId, captureIndex.start, -1, false, null, nameScopesList, contentNameScopesList);\n const onigSubStr = grammar.createOnigString(lineTextContent.substring(0, captureIndex.end));\n _tokenizeString(\n grammar,\n onigSubStr,\n isFirstLine && captureIndex.start === 0,\n captureIndex.start,\n stackClone,\n lineTokens,\n false,\n /* no time limit */\n 0\n );\n disposeOnigString(onigSubStr);\n continue;\n }\n const captureRuleScopeName = captureRule.getName(lineTextContent, captureIndices);\n if (captureRuleScopeName !== null) {\n const base = localStack.length > 0 ? localStack[localStack.length - 1].scopes : stack.contentNameScopesList;\n const captureRuleScopesList = base.pushAttributed(captureRuleScopeName, grammar);\n localStack.push(new LocalStackElement(captureRuleScopesList, captureIndex.end));\n }\n }\n while (localStack.length > 0) {\n lineTokens.produceFromScopes(localStack[localStack.length - 1].scopes, localStack[localStack.length - 1].endPos);\n localStack.pop();\n }\n}\nvar LocalStackElement = class {\n scopes;\n endPos;\n constructor(scopes, endPos) {\n this.scopes = scopes;\n this.endPos = endPos;\n }\n};\n\n// src/grammar/grammar.ts\nfunction createGrammar(scopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, onigLib) {\n return new Grammar(\n scopeName,\n grammar,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors,\n grammarRepository,\n onigLib\n );\n}\nfunction collectInjections(result, selector, rule, ruleFactoryHelper, grammar) {\n const matchers = createMatchers(selector, nameMatcher);\n const ruleId = RuleFactory.getCompiledRuleId(rule, ruleFactoryHelper, grammar.repository);\n for (const matcher of matchers) {\n result.push({\n debugSelector: selector,\n matcher: matcher.matcher,\n ruleId,\n grammar,\n priority: matcher.priority\n });\n }\n}\nfunction nameMatcher(identifers, scopes) {\n if (scopes.length < identifers.length) {\n return false;\n }\n let lastIndex = 0;\n return identifers.every((identifier) => {\n for (let i = lastIndex; i < scopes.length; i++) {\n if (scopesAreMatching(scopes[i], identifier)) {\n lastIndex = i + 1;\n return true;\n }\n }\n return false;\n });\n}\nfunction scopesAreMatching(thisScopeName, scopeName) {\n if (!thisScopeName) {\n return false;\n }\n if (thisScopeName === scopeName) {\n return true;\n }\n const len = scopeName.length;\n return thisScopeName.length > len && thisScopeName.substr(0, len) === scopeName && thisScopeName[len] === \".\";\n}\nvar Grammar = class {\n constructor(_rootScopeName, grammar, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors, grammarRepository, _onigLib) {\n this._rootScopeName = _rootScopeName;\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._onigLib = _onigLib;\n this._basicScopeAttributesProvider = new BasicScopeAttributesProvider(\n initialLanguage,\n embeddedLanguages\n );\n this._rootId = -1;\n this._lastRuleId = 0;\n this._ruleId2desc = [null];\n this._includedGrammars = {};\n this._grammarRepository = grammarRepository;\n this._grammar = initGrammar(grammar, null);\n this._injections = null;\n this._tokenTypeMatchers = [];\n if (tokenTypes) {\n for (const selector of Object.keys(tokenTypes)) {\n const matchers = createMatchers(selector, nameMatcher);\n for (const matcher of matchers) {\n this._tokenTypeMatchers.push({\n matcher: matcher.matcher,\n type: tokenTypes[selector]\n });\n }\n }\n }\n }\n _rootId;\n _lastRuleId;\n _ruleId2desc;\n _includedGrammars;\n _grammarRepository;\n _grammar;\n _injections;\n _basicScopeAttributesProvider;\n _tokenTypeMatchers;\n get themeProvider() {\n return this._grammarRepository;\n }\n dispose() {\n for (const rule of this._ruleId2desc) {\n if (rule) {\n rule.dispose();\n }\n }\n }\n createOnigScanner(sources) {\n return this._onigLib.createOnigScanner(sources);\n }\n createOnigString(sources) {\n return this._onigLib.createOnigString(sources);\n }\n getMetadataForScope(scope) {\n return this._basicScopeAttributesProvider.getBasicScopeAttributes(scope);\n }\n _collectInjections() {\n const grammarRepository = {\n lookup: (scopeName2) => {\n if (scopeName2 === this._rootScopeName) {\n return this._grammar;\n }\n return this.getExternalGrammar(scopeName2);\n },\n injections: (scopeName2) => {\n return this._grammarRepository.injections(scopeName2);\n }\n };\n const result = [];\n const scopeName = this._rootScopeName;\n const grammar = grammarRepository.lookup(scopeName);\n if (grammar) {\n const rawInjections = grammar.injections;\n if (rawInjections) {\n for (let expression in rawInjections) {\n collectInjections(\n result,\n expression,\n rawInjections[expression],\n this,\n grammar\n );\n }\n }\n const injectionScopeNames = this._grammarRepository.injections(scopeName);\n if (injectionScopeNames) {\n injectionScopeNames.forEach((injectionScopeName) => {\n const injectionGrammar = this.getExternalGrammar(injectionScopeName);\n if (injectionGrammar) {\n const selector = injectionGrammar.injectionSelector;\n if (selector) {\n collectInjections(\n result,\n selector,\n injectionGrammar,\n this,\n injectionGrammar\n );\n }\n }\n });\n }\n }\n result.sort((i1, i2) => i1.priority - i2.priority);\n return result;\n }\n getInjections() {\n if (this._injections === null) {\n this._injections = this._collectInjections();\n }\n return this._injections;\n }\n registerRule(factory) {\n const id = ++this._lastRuleId;\n const result = factory(ruleIdFromNumber(id));\n this._ruleId2desc[id] = result;\n return result;\n }\n getRule(ruleId) {\n return this._ruleId2desc[ruleIdToNumber(ruleId)];\n }\n getExternalGrammar(scopeName, repository) {\n if (this._includedGrammars[scopeName]) {\n return this._includedGrammars[scopeName];\n } else if (this._grammarRepository) {\n const rawIncludedGrammar = this._grammarRepository.lookup(scopeName);\n if (rawIncludedGrammar) {\n this._includedGrammars[scopeName] = initGrammar(\n rawIncludedGrammar,\n repository && repository.$base\n );\n return this._includedGrammars[scopeName];\n }\n }\n return void 0;\n }\n tokenizeLine(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, false, timeLimit);\n return {\n tokens: r.lineTokens.getResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly\n };\n }\n tokenizeLine2(lineText, prevState, timeLimit = 0) {\n const r = this._tokenize(lineText, prevState, true, timeLimit);\n return {\n tokens: r.lineTokens.getBinaryResult(r.ruleStack, r.lineLength),\n ruleStack: r.ruleStack,\n stoppedEarly: r.stoppedEarly\n };\n }\n _tokenize(lineText, prevState, emitBinaryTokens, timeLimit) {\n if (this._rootId === -1) {\n this._rootId = RuleFactory.getCompiledRuleId(\n this._grammar.repository.$self,\n this,\n this._grammar.repository\n );\n this.getInjections();\n }\n let isFirstLine;\n if (!prevState || prevState === StateStackImpl.NULL) {\n isFirstLine = true;\n const rawDefaultMetadata = this._basicScopeAttributesProvider.getDefaultAttributes();\n const defaultStyle = this.themeProvider.getDefaults();\n const defaultMetadata = EncodedTokenMetadata.set(\n 0,\n rawDefaultMetadata.languageId,\n rawDefaultMetadata.tokenType,\n null,\n defaultStyle.fontStyle,\n defaultStyle.foregroundId,\n defaultStyle.backgroundId\n );\n const rootScopeName = this.getRule(this._rootId).getName(\n null,\n null\n );\n let scopeList;\n if (rootScopeName) {\n scopeList = AttributedScopeStack.createRootAndLookUpScopeName(\n rootScopeName,\n defaultMetadata,\n this\n );\n } else {\n scopeList = AttributedScopeStack.createRoot(\n \"unknown\",\n defaultMetadata\n );\n }\n prevState = new StateStackImpl(\n null,\n this._rootId,\n -1,\n -1,\n false,\n null,\n scopeList,\n scopeList\n );\n } else {\n isFirstLine = false;\n prevState.reset();\n }\n lineText = lineText + \"\\n\";\n const onigLineText = this.createOnigString(lineText);\n const lineLength = onigLineText.content.length;\n const lineTokens = new LineTokens(\n emitBinaryTokens,\n lineText,\n this._tokenTypeMatchers,\n this.balancedBracketSelectors\n );\n const r = _tokenizeString(\n this,\n onigLineText,\n isFirstLine,\n 0,\n prevState,\n lineTokens,\n true,\n timeLimit\n );\n disposeOnigString(onigLineText);\n return {\n lineLength,\n lineTokens,\n ruleStack: r.stack,\n stoppedEarly: r.stoppedEarly\n };\n }\n};\nfunction initGrammar(grammar, base) {\n grammar = clone(grammar);\n grammar.repository = grammar.repository || {};\n grammar.repository.$self = {\n $vscodeTextmateLocation: grammar.$vscodeTextmateLocation,\n patterns: grammar.patterns,\n name: grammar.scopeName\n };\n grammar.repository.$base = base || grammar.repository.$self;\n return grammar;\n}\nvar AttributedScopeStack = class _AttributedScopeStack {\n /**\n * Invariant:\n * ```\n * if (parent && !scopePath.extends(parent.scopePath)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, scopePath, tokenAttributes) {\n this.parent = parent;\n this.scopePath = scopePath;\n this.tokenAttributes = tokenAttributes;\n }\n static fromExtension(namesScopeList, contentNameScopesList) {\n let current = namesScopeList;\n let scopeNames = namesScopeList?.scopePath ?? null;\n for (const frame of contentNameScopesList) {\n scopeNames = ScopeStack.push(scopeNames, frame.scopeNames);\n current = new _AttributedScopeStack(current, scopeNames, frame.encodedTokenAttributes);\n }\n return current;\n }\n static createRoot(scopeName, tokenAttributes) {\n return new _AttributedScopeStack(null, new ScopeStack(null, scopeName), tokenAttributes);\n }\n static createRootAndLookUpScopeName(scopeName, tokenAttributes, grammar) {\n const rawRootMetadata = grammar.getMetadataForScope(scopeName);\n const scopePath = new ScopeStack(null, scopeName);\n const rootStyle = grammar.themeProvider.themeMatch(scopePath);\n const resolvedTokenAttributes = _AttributedScopeStack.mergeAttributes(\n tokenAttributes,\n rawRootMetadata,\n rootStyle\n );\n return new _AttributedScopeStack(null, scopePath, resolvedTokenAttributes);\n }\n get scopeName() {\n return this.scopePath.scopeName;\n }\n toString() {\n return this.getScopeNames().join(\" \");\n }\n equals(other) {\n return _AttributedScopeStack.equals(this, other);\n }\n static equals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (a.scopeName !== b.scopeName || a.tokenAttributes !== b.tokenAttributes) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n static mergeAttributes(existingTokenAttributes, basicScopeAttributes, styleAttributes) {\n let fontStyle = -1 /* NotSet */;\n let foreground = 0;\n let background = 0;\n if (styleAttributes !== null) {\n fontStyle = styleAttributes.fontStyle;\n foreground = styleAttributes.foregroundId;\n background = styleAttributes.backgroundId;\n }\n return EncodedTokenMetadata.set(\n existingTokenAttributes,\n basicScopeAttributes.languageId,\n basicScopeAttributes.tokenType,\n null,\n fontStyle,\n foreground,\n background\n );\n }\n pushAttributed(scopePath, grammar) {\n if (scopePath === null) {\n return this;\n }\n if (scopePath.indexOf(\" \") === -1) {\n return _AttributedScopeStack._pushAttributed(this, scopePath, grammar);\n }\n const scopes = scopePath.split(/ /g);\n let result = this;\n for (const scope of scopes) {\n result = _AttributedScopeStack._pushAttributed(result, scope, grammar);\n }\n return result;\n }\n static _pushAttributed(target, scopeName, grammar) {\n const rawMetadata = grammar.getMetadataForScope(scopeName);\n const newPath = target.scopePath.push(scopeName);\n const scopeThemeMatchResult = grammar.themeProvider.themeMatch(newPath);\n const metadata = _AttributedScopeStack.mergeAttributes(\n target.tokenAttributes,\n rawMetadata,\n scopeThemeMatchResult\n );\n return new _AttributedScopeStack(target, newPath, metadata);\n }\n getScopeNames() {\n return this.scopePath.getSegments();\n }\n getExtensionIfDefined(base) {\n const result = [];\n let self = this;\n while (self && self !== base) {\n result.push({\n encodedTokenAttributes: self.tokenAttributes,\n scopeNames: self.scopePath.getExtensionIfDefined(self.parent?.scopePath ?? null)\n });\n self = self.parent;\n }\n return self === base ? result.reverse() : void 0;\n }\n};\nvar StateStackImpl = class _StateStackImpl {\n /**\n * Invariant:\n * ```\n * if (contentNameScopesList !== nameScopesList && contentNameScopesList?.parent !== nameScopesList) {\n * \tthrow new Error();\n * }\n * if (this.parent && !nameScopesList.extends(this.parent.contentNameScopesList)) {\n * \tthrow new Error();\n * }\n * ```\n */\n constructor(parent, ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n this.parent = parent;\n this.ruleId = ruleId;\n this.beginRuleCapturedEOL = beginRuleCapturedEOL;\n this.endRule = endRule;\n this.nameScopesList = nameScopesList;\n this.contentNameScopesList = contentNameScopesList;\n this.depth = this.parent ? this.parent.depth + 1 : 1;\n this._enterPos = enterPos;\n this._anchorPos = anchorPos;\n }\n _stackElementBrand = void 0;\n // TODO remove me\n static NULL = new _StateStackImpl(\n null,\n 0,\n 0,\n 0,\n false,\n null,\n null,\n null\n );\n /**\n * The position on the current line where this state was pushed.\n * This is relevant only while tokenizing a line, to detect endless loops.\n * Its value is meaningless across lines.\n */\n _enterPos;\n /**\n * The captured anchor position when this stack element was pushed.\n * This is relevant only while tokenizing a line, to restore the anchor position when popping.\n * Its value is meaningless across lines.\n */\n _anchorPos;\n /**\n * The depth of the stack.\n */\n depth;\n equals(other) {\n if (other === null) {\n return false;\n }\n return _StateStackImpl._equals(this, other);\n }\n static _equals(a, b) {\n if (a === b) {\n return true;\n }\n if (!this._structuralEquals(a, b)) {\n return false;\n }\n return AttributedScopeStack.equals(a.contentNameScopesList, b.contentNameScopesList);\n }\n /**\n * A structural equals check. Does not take into account `scopes`.\n */\n static _structuralEquals(a, b) {\n do {\n if (a === b) {\n return true;\n }\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (a.depth !== b.depth || a.ruleId !== b.ruleId || a.endRule !== b.endRule) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n } while (true);\n }\n clone() {\n return this;\n }\n static _reset(el) {\n while (el) {\n el._enterPos = -1;\n el._anchorPos = -1;\n el = el.parent;\n }\n }\n reset() {\n _StateStackImpl._reset(this);\n }\n pop() {\n return this.parent;\n }\n safePop() {\n if (this.parent) {\n return this.parent;\n }\n return this;\n }\n push(ruleId, enterPos, anchorPos, beginRuleCapturedEOL, endRule, nameScopesList, contentNameScopesList) {\n return new _StateStackImpl(\n this,\n ruleId,\n enterPos,\n anchorPos,\n beginRuleCapturedEOL,\n endRule,\n nameScopesList,\n contentNameScopesList\n );\n }\n getEnterPos() {\n return this._enterPos;\n }\n getAnchorPos() {\n return this._anchorPos;\n }\n getRule(grammar) {\n return grammar.getRule(this.ruleId);\n }\n toString() {\n const r = [];\n this._writeString(r, 0);\n return \"[\" + r.join(\",\") + \"]\";\n }\n _writeString(res, outIndex) {\n if (this.parent) {\n outIndex = this.parent._writeString(res, outIndex);\n }\n res[outIndex++] = `(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`;\n return outIndex;\n }\n withContentNameScopesList(contentNameScopeStack) {\n if (this.contentNameScopesList === contentNameScopeStack) {\n return this;\n }\n return this.parent.push(\n this.ruleId,\n this._enterPos,\n this._anchorPos,\n this.beginRuleCapturedEOL,\n this.endRule,\n this.nameScopesList,\n contentNameScopeStack\n );\n }\n withEndRule(endRule) {\n if (this.endRule === endRule) {\n return this;\n }\n return new _StateStackImpl(\n this.parent,\n this.ruleId,\n this._enterPos,\n this._anchorPos,\n this.beginRuleCapturedEOL,\n endRule,\n this.nameScopesList,\n this.contentNameScopesList\n );\n }\n // Used to warn of endless loops\n hasSameRuleAs(other) {\n let el = this;\n while (el && el._enterPos === other._enterPos) {\n if (el.ruleId === other.ruleId) {\n return true;\n }\n el = el.parent;\n }\n return false;\n }\n toStateStackFrame() {\n return {\n ruleId: ruleIdToNumber(this.ruleId),\n beginRuleCapturedEOL: this.beginRuleCapturedEOL,\n endRule: this.endRule,\n nameScopesList: this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList ?? null) ?? [],\n contentNameScopesList: this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList) ?? []\n };\n }\n static pushFrame(self, frame) {\n const namesScopeList = AttributedScopeStack.fromExtension(self?.nameScopesList ?? null, frame.nameScopesList);\n return new _StateStackImpl(\n self,\n ruleIdFromNumber(frame.ruleId),\n frame.enterPos ?? -1,\n frame.anchorPos ?? -1,\n frame.beginRuleCapturedEOL,\n frame.endRule,\n namesScopeList,\n AttributedScopeStack.fromExtension(namesScopeList, frame.contentNameScopesList)\n );\n }\n};\nvar BalancedBracketSelectors = class {\n balancedBracketScopes;\n unbalancedBracketScopes;\n allowAny = false;\n constructor(balancedBracketScopes, unbalancedBracketScopes) {\n this.balancedBracketScopes = balancedBracketScopes.flatMap(\n (selector) => {\n if (selector === \"*\") {\n this.allowAny = true;\n return [];\n }\n return createMatchers(selector, nameMatcher).map((m) => m.matcher);\n }\n );\n this.unbalancedBracketScopes = unbalancedBracketScopes.flatMap(\n (selector) => createMatchers(selector, nameMatcher).map((m) => m.matcher)\n );\n }\n get matchesAlways() {\n return this.allowAny && this.unbalancedBracketScopes.length === 0;\n }\n get matchesNever() {\n return this.balancedBracketScopes.length === 0 && !this.allowAny;\n }\n match(scopes) {\n for (const excluder of this.unbalancedBracketScopes) {\n if (excluder(scopes)) {\n return false;\n }\n }\n for (const includer of this.balancedBracketScopes) {\n if (includer(scopes)) {\n return true;\n }\n }\n return this.allowAny;\n }\n};\nvar LineTokens = class {\n constructor(emitBinaryTokens, lineText, tokenTypeOverrides, balancedBracketSelectors) {\n this.balancedBracketSelectors = balancedBracketSelectors;\n this._emitBinaryTokens = emitBinaryTokens;\n this._tokenTypeOverrides = tokenTypeOverrides;\n if (false) {\n this._lineText = lineText;\n } else {\n this._lineText = null;\n }\n this._tokens = [];\n this._binaryTokens = [];\n this._lastTokenEndIndex = 0;\n }\n _emitBinaryTokens;\n /**\n * defined only if `false`.\n */\n _lineText;\n /**\n * used only if `_emitBinaryTokens` is false.\n */\n _tokens;\n /**\n * used only if `_emitBinaryTokens` is true.\n */\n _binaryTokens;\n _lastTokenEndIndex;\n _tokenTypeOverrides;\n produce(stack, endIndex) {\n this.produceFromScopes(stack.contentNameScopesList, endIndex);\n }\n produceFromScopes(scopesList, endIndex) {\n if (this._lastTokenEndIndex >= endIndex) {\n return;\n }\n if (this._emitBinaryTokens) {\n let metadata = scopesList?.tokenAttributes ?? 0;\n let containsBalancedBrackets = false;\n if (this.balancedBracketSelectors?.matchesAlways) {\n containsBalancedBrackets = true;\n }\n if (this._tokenTypeOverrides.length > 0 || this.balancedBracketSelectors && !this.balancedBracketSelectors.matchesAlways && !this.balancedBracketSelectors.matchesNever) {\n const scopes2 = scopesList?.getScopeNames() ?? [];\n for (const tokenType of this._tokenTypeOverrides) {\n if (tokenType.matcher(scopes2)) {\n metadata = EncodedTokenMetadata.set(\n metadata,\n 0,\n toOptionalTokenType(tokenType.type),\n null,\n -1 /* NotSet */,\n 0,\n 0\n );\n }\n }\n if (this.balancedBracketSelectors) {\n containsBalancedBrackets = this.balancedBracketSelectors.match(scopes2);\n }\n }\n if (containsBalancedBrackets) {\n metadata = EncodedTokenMetadata.set(\n metadata,\n 0,\n 8 /* NotSet */,\n containsBalancedBrackets,\n -1 /* NotSet */,\n 0,\n 0\n );\n }\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === metadata) {\n this._lastTokenEndIndex = endIndex;\n return;\n }\n this._binaryTokens.push(this._lastTokenEndIndex);\n this._binaryTokens.push(metadata);\n this._lastTokenEndIndex = endIndex;\n return;\n }\n const scopes = scopesList?.getScopeNames() ?? [];\n this._tokens.push({\n startIndex: this._lastTokenEndIndex,\n endIndex,\n // value: lineText.substring(lastTokenEndIndex, endIndex),\n scopes\n });\n this._lastTokenEndIndex = endIndex;\n }\n getResult(stack, lineLength) {\n if (this._tokens.length > 0 && this._tokens[this._tokens.length - 1].startIndex === lineLength - 1) {\n this._tokens.pop();\n }\n if (this._tokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._tokens[this._tokens.length - 1].startIndex = 0;\n }\n return this._tokens;\n }\n getBinaryResult(stack, lineLength) {\n if (this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 2] === lineLength - 1) {\n this._binaryTokens.pop();\n this._binaryTokens.pop();\n }\n if (this._binaryTokens.length === 0) {\n this._lastTokenEndIndex = -1;\n this.produce(stack, lineLength);\n this._binaryTokens[this._binaryTokens.length - 2] = 0;\n }\n const result = new Uint32Array(this._binaryTokens.length);\n for (let i = 0, len = this._binaryTokens.length; i < len; i++) {\n result[i] = this._binaryTokens[i];\n }\n return result;\n }\n};\n\n// src/registry.ts\nvar SyncRegistry = class {\n constructor(theme, _onigLib) {\n this._onigLib = _onigLib;\n this._theme = theme;\n }\n _grammars = /* @__PURE__ */ new Map();\n _rawGrammars = /* @__PURE__ */ new Map();\n _injectionGrammars = /* @__PURE__ */ new Map();\n _theme;\n dispose() {\n for (const grammar of this._grammars.values()) {\n grammar.dispose();\n }\n }\n setTheme(theme) {\n this._theme = theme;\n }\n getColorMap() {\n return this._theme.getColorMap();\n }\n /**\n * Add `grammar` to registry and return a list of referenced scope names\n */\n addGrammar(grammar, injectionScopeNames) {\n this._rawGrammars.set(grammar.scopeName, grammar);\n if (injectionScopeNames) {\n this._injectionGrammars.set(grammar.scopeName, injectionScopeNames);\n }\n }\n /**\n * Lookup a raw grammar.\n */\n lookup(scopeName) {\n return this._rawGrammars.get(scopeName);\n }\n /**\n * Returns the injections for the given grammar\n */\n injections(targetScope) {\n return this._injectionGrammars.get(targetScope);\n }\n /**\n * Get the default theme settings\n */\n getDefaults() {\n return this._theme.getDefaults();\n }\n /**\n * Match a scope in the theme.\n */\n themeMatch(scopePath) {\n return this._theme.match(scopePath);\n }\n /**\n * Lookup a grammar.\n */\n grammarForScopeName(scopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n if (!this._grammars.has(scopeName)) {\n let rawGrammar = this._rawGrammars.get(scopeName);\n if (!rawGrammar) {\n return null;\n }\n this._grammars.set(scopeName, createGrammar(\n scopeName,\n rawGrammar,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors,\n this,\n this._onigLib\n ));\n }\n return this._grammars.get(scopeName);\n }\n};\n\n// src/index.ts\nvar Registry = class {\n _options;\n _syncRegistry;\n _ensureGrammarCache;\n constructor(options) {\n this._options = options;\n this._syncRegistry = new SyncRegistry(\n Theme.createFromRawTheme(options.theme, options.colorMap),\n options.onigLib\n );\n this._ensureGrammarCache = /* @__PURE__ */ new Map();\n }\n dispose() {\n this._syncRegistry.dispose();\n }\n /**\n * Change the theme. Once called, no previous `ruleStack` should be used anymore.\n */\n setTheme(theme, colorMap) {\n this._syncRegistry.setTheme(Theme.createFromRawTheme(theme, colorMap));\n }\n /**\n * Returns a lookup array for color ids.\n */\n getColorMap() {\n return this._syncRegistry.getColorMap();\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithEmbeddedLanguages(initialScopeName, initialLanguage, embeddedLanguages) {\n return this.loadGrammarWithConfiguration(initialScopeName, initialLanguage, { embeddedLanguages });\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n * Please do not use language id 0.\n */\n loadGrammarWithConfiguration(initialScopeName, initialLanguage, configuration) {\n return this._loadGrammar(\n initialScopeName,\n initialLanguage,\n configuration.embeddedLanguages,\n configuration.tokenTypes,\n new BalancedBracketSelectors(\n configuration.balancedBracketSelectors || [],\n configuration.unbalancedBracketSelectors || []\n )\n );\n }\n /**\n * Load the grammar for `scopeName` and all referenced included grammars asynchronously.\n */\n loadGrammar(initialScopeName) {\n return this._loadGrammar(initialScopeName, 0, null, null, null);\n }\n _loadGrammar(initialScopeName, initialLanguage, embeddedLanguages, tokenTypes, balancedBracketSelectors) {\n const dependencyProcessor = new ScopeDependencyProcessor(this._syncRegistry, initialScopeName);\n while (dependencyProcessor.Q.length > 0) {\n dependencyProcessor.Q.map((request) => this._loadSingleGrammar(request.scopeName));\n dependencyProcessor.processQueue();\n }\n return this._grammarForScopeName(\n initialScopeName,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors\n );\n }\n _loadSingleGrammar(scopeName) {\n if (!this._ensureGrammarCache.has(scopeName)) {\n this._doLoadSingleGrammar(scopeName);\n this._ensureGrammarCache.set(scopeName, true);\n }\n }\n _doLoadSingleGrammar(scopeName) {\n const grammar = this._options.loadGrammar(scopeName);\n if (grammar) {\n const injections = typeof this._options.getInjections === \"function\" ? this._options.getInjections(scopeName) : void 0;\n this._syncRegistry.addGrammar(grammar, injections);\n }\n }\n /**\n * Adds a rawGrammar.\n */\n addGrammar(rawGrammar, injections = [], initialLanguage = 0, embeddedLanguages = null) {\n this._syncRegistry.addGrammar(rawGrammar, injections);\n return this._grammarForScopeName(rawGrammar.scopeName, initialLanguage, embeddedLanguages);\n }\n /**\n * Get the grammar for `scopeName`. The grammar must first be created via `loadGrammar` or `addGrammar`.\n */\n _grammarForScopeName(scopeName, initialLanguage = 0, embeddedLanguages = null, tokenTypes = null, balancedBracketSelectors = null) {\n return this._syncRegistry.grammarForScopeName(\n scopeName,\n initialLanguage,\n embeddedLanguages,\n tokenTypes,\n balancedBracketSelectors\n );\n }\n};\nvar INITIAL = StateStackImpl.NULL;\nexport {\n EncodedTokenMetadata,\n FindOption,\n FontStyle,\n INITIAL,\n Registry,\n Theme,\n disposeOnigString\n};\n","import { ShikiError } from \"@shikijs/types\";\nimport { EncodedTokenMetadata, INITIAL, Registry as Registry$1, Theme } from \"@shikijs/vscode-textmate\";\n\nexport * from \"@shikijs/types\"\n\n//#region src/utils/colors.ts\nfunction resolveColorReplacements(theme, options) {\n\tconst replacements = typeof theme === \"string\" ? {} : { ...theme.colorReplacements };\n\tconst themeName = typeof theme === \"string\" ? theme : theme.name;\n\tfor (const [key, value] of Object.entries(options?.colorReplacements || {})) if (typeof value === \"string\") replacements[key] = value;\n\telse if (key === themeName) Object.assign(replacements, value);\n\treturn replacements;\n}\nfunction applyColorReplacements(color, replacements) {\n\tif (!color) return color;\n\treturn replacements?.[color?.toLowerCase()] || color;\n}\n\n//#endregion\n//#region src/utils/general.ts\nfunction toArray(x) {\n\treturn Array.isArray(x) ? x : [x];\n}\n/**\n* Normalize a getter to a promise.\n*/\nasync function normalizeGetter(p) {\n\treturn Promise.resolve(typeof p === \"function\" ? p() : p).then((r) => r.default || r);\n}\n/**\n* Check if the language is plaintext that is ignored by Shiki.\n*\n* Hard-coded plain text languages: `plaintext`, `txt`, `text`, `plain`.\n*/\nfunction isPlainLang(lang) {\n\treturn !lang || [\n\t\t\"plaintext\",\n\t\t\"txt\",\n\t\t\"text\",\n\t\t\"plain\"\n\t].includes(lang);\n}\n/**\n* Check if the language is specially handled or bypassed by Shiki.\n*\n* Hard-coded languages: `ansi` and plaintexts like `plaintext`, `txt`, `text`, `plain`.\n*/\nfunction isSpecialLang(lang) {\n\treturn lang === \"ansi\" || isPlainLang(lang);\n}\n/**\n* Check if the theme is specially handled or bypassed by Shiki.\n*\n* Hard-coded themes: `none`.\n*/\nfunction isNoneTheme(theme) {\n\treturn theme === \"none\";\n}\n/**\n* Check if the theme is specially handled or bypassed by Shiki.\n*\n* Hard-coded themes: `none`.\n*/\nfunction isSpecialTheme(theme) {\n\treturn isNoneTheme(theme);\n}\n\n//#endregion\n//#region src/utils/strings.ts\n/**\n* Split a string into lines, each line preserves the line ending.\n*\n* @param code - The code string to split into lines\n* @param preserveEnding - Whether to preserve line endings in the result\n* @returns Array of tuples containing [line content, offset index]\n*\n* @example\n* ```ts\n* splitLines('hello\\nworld', false)\n* // => [['hello', 0], ['world', 6]]\n*\n* splitLines('hello\\nworld', true)\n* // => [['hello\\n', 0], ['world', 6]]\n* ```\n*/\nfunction splitLines(code, preserveEnding = false) {\n\tif (code.length === 0) return [[\"\", 0]];\n\tconst parts = code.split(/(\\r?\\n)/g);\n\tlet index = 0;\n\tconst lines = [];\n\tfor (let i = 0; i < parts.length; i += 2) {\n\t\tconst line = preserveEnding ? parts[i] + (parts[i + 1] || \"\") : parts[i];\n\t\tlines.push([line, index]);\n\t\tindex += parts[i].length;\n\t\tindex += parts[i + 1]?.length || 0;\n\t}\n\treturn lines;\n}\n\n//#endregion\n//#region src/textmate/normalize-theme.ts\n/**\n* https://github.com/microsoft/vscode/blob/f7f05dee53fb33fe023db2e06e30a89d3094488f/src/vs/platform/theme/common/colorRegistry.ts#L258-L268\n*/\nconst VSCODE_FALLBACK_EDITOR_FG = {\n\tlight: \"#333333\",\n\tdark: \"#bbbbbb\"\n};\nconst VSCODE_FALLBACK_EDITOR_BG = {\n\tlight: \"#fffffe\",\n\tdark: \"#1e1e1e\"\n};\nconst RESOLVED_KEY = \"__shiki_resolved\";\n/**\n* Normalize a textmate theme to shiki theme\n*/\nfunction normalizeTheme(rawTheme) {\n\tif (rawTheme?.[RESOLVED_KEY]) return rawTheme;\n\tconst theme = { ...rawTheme };\n\tif (theme.tokenColors && !theme.settings) {\n\t\ttheme.settings = theme.tokenColors;\n\t\tdelete theme.tokenColors;\n\t}\n\ttheme.type ||= \"dark\";\n\ttheme.colorReplacements = { ...theme.colorReplacements };\n\ttheme.settings ||= [];\n\tlet { bg, fg } = theme;\n\tif (!bg || !fg) {\n\t\t/**\n\t\t* First try:\n\t\t* Theme might contain a global `tokenColor` without `name` or `scope`\n\t\t* Used as default value for foreground/background\n\t\t*/\n\t\tconst globalSetting = theme.settings ? theme.settings.find((s) => !s.name && !s.scope) : void 0;\n\t\tif (globalSetting?.settings?.foreground) fg = globalSetting.settings.foreground;\n\t\tif (globalSetting?.settings?.background) bg = globalSetting.settings.background;\n\t\t/**\n\t\t* Second try:\n\t\t* If there's no global `tokenColor` without `name` or `scope`\n\t\t* Use `editor.foreground` and `editor.background`\n\t\t*/\n\t\tif (!fg && theme?.colors?.[\"editor.foreground\"]) fg = theme.colors[\"editor.foreground\"];\n\t\tif (!bg && theme?.colors?.[\"editor.background\"]) bg = theme.colors[\"editor.background\"];\n\t\t/**\n\t\t* Last try:\n\t\t* If there's no fg/bg color specified in theme, use default\n\t\t*/\n\t\tif (!fg) fg = theme.type === \"light\" ? VSCODE_FALLBACK_EDITOR_FG.light : VSCODE_FALLBACK_EDITOR_FG.dark;\n\t\tif (!bg) bg = theme.type === \"light\" ? VSCODE_FALLBACK_EDITOR_BG.light : VSCODE_FALLBACK_EDITOR_BG.dark;\n\t\ttheme.fg = fg;\n\t\ttheme.bg = bg;\n\t}\n\tif (!(theme.settings[0] && theme.settings[0].settings && !theme.settings[0].scope)) theme.settings.unshift({ settings: {\n\t\tforeground: theme.fg,\n\t\tbackground: theme.bg\n\t} });\n\tlet replacementCount = 0;\n\tconst replacementMap = /* @__PURE__ */ new Map();\n\tfunction getReplacementColor(value) {\n\t\tif (replacementMap.has(value)) return replacementMap.get(value);\n\t\treplacementCount += 1;\n\t\tconst hex = `#${replacementCount.toString(16).padStart(8, \"0\").toLowerCase()}`;\n\t\tif (theme.colorReplacements?.[`#${hex}`]) return getReplacementColor(value);\n\t\treplacementMap.set(value, hex);\n\t\treturn hex;\n\t}\n\ttheme.settings = theme.settings.map((setting) => {\n\t\tconst replaceFg = setting.settings?.foreground && !setting.settings.foreground.startsWith(\"#\");\n\t\tconst replaceBg = setting.settings?.background && !setting.settings.background.startsWith(\"#\");\n\t\tif (!replaceFg && !replaceBg) return setting;\n\t\tconst clone = {\n\t\t\t...setting,\n\t\t\tsettings: { ...setting.settings }\n\t\t};\n\t\tif (replaceFg) {\n\t\t\tconst replacement = getReplacementColor(setting.settings.foreground);\n\t\t\ttheme.colorReplacements[replacement] = setting.settings.foreground;\n\t\t\tclone.settings.foreground = replacement;\n\t\t}\n\t\tif (replaceBg) {\n\t\t\tconst replacement = getReplacementColor(setting.settings.background);\n\t\t\ttheme.colorReplacements[replacement] = setting.settings.background;\n\t\t\tclone.settings.background = replacement;\n\t\t}\n\t\treturn clone;\n\t});\n\tfor (const key of Object.keys(theme.colors || {})) if (key === \"editor.foreground\" || key === \"editor.background\" || key.startsWith(\"terminal.ansi\")) {\n\t\tif (!theme.colors[key]?.startsWith(\"#\")) {\n\t\t\tconst replacement = getReplacementColor(theme.colors[key]);\n\t\t\ttheme.colorReplacements[replacement] = theme.colors[key];\n\t\t\ttheme.colors[key] = replacement;\n\t\t}\n\t}\n\tObject.defineProperty(theme, RESOLVED_KEY, {\n\t\tenumerable: false,\n\t\twritable: false,\n\t\tvalue: true\n\t});\n\treturn theme;\n}\n\n//#endregion\n//#region src/textmate/getters-resolve.ts\n/**\n* Resolve\n*/\nasync function resolveLangs(langs) {\n\treturn Array.from(new Set((await Promise.all(langs.filter((l) => !isSpecialLang(l)).map(async (lang) => await normalizeGetter(lang).then((r) => Array.isArray(r) ? r : [r])))).flat()));\n}\nasync function resolveThemes(themes) {\n\treturn (await Promise.all(themes.map(async (theme) => isSpecialTheme(theme) ? null : normalizeTheme(await normalizeGetter(theme))))).filter((i) => !!i);\n}\n\n//#endregion\n//#region src/utils/alias.ts\nfunction resolveLangAlias(name, alias) {\n\tif (!alias) return name;\n\tif (alias[name]) {\n\t\tconst resolved = new Set([name]);\n\t\twhile (alias[name]) {\n\t\t\tname = alias[name];\n\t\t\tif (resolved.has(name)) throw new ShikiError(`Circular alias \\`${Array.from(resolved).join(\" -> \")} -> ${name}\\``);\n\t\t\tresolved.add(name);\n\t\t}\n\t}\n\treturn name;\n}\n\n//#endregion\n//#region src/textmate/registry.ts\nvar Registry = class extends Registry$1 {\n\t_resolvedThemes = /* @__PURE__ */ new Map();\n\t_resolvedGrammars = /* @__PURE__ */ new Map();\n\t_langMap = /* @__PURE__ */ new Map();\n\t_langGraph = /* @__PURE__ */ new Map();\n\t_textmateThemeCache = /* @__PURE__ */ new WeakMap();\n\t_loadedThemesCache = null;\n\t_loadedLanguagesCache = null;\n\tconstructor(_resolver, _themes, _langs, _alias = {}) {\n\t\tsuper(_resolver);\n\t\tthis._resolver = _resolver;\n\t\tthis._themes = _themes;\n\t\tthis._langs = _langs;\n\t\tthis._alias = _alias;\n\t\tthis._themes.map((t) => this.loadTheme(t));\n\t\tthis.loadLanguages(this._langs);\n\t}\n\tgetTheme(theme) {\n\t\tif (typeof theme === \"string\") return this._resolvedThemes.get(theme);\n\t\telse return this.loadTheme(theme);\n\t}\n\tloadTheme(theme) {\n\t\tconst _theme = normalizeTheme(theme);\n\t\tif (_theme.name) {\n\t\t\tthis._resolvedThemes.set(_theme.name, _theme);\n\t\t\tthis._loadedThemesCache = null;\n\t\t}\n\t\treturn _theme;\n\t}\n\tgetLoadedThemes() {\n\t\tif (!this._loadedThemesCache) this._loadedThemesCache = [...this._resolvedThemes.keys()];\n\t\treturn this._loadedThemesCache;\n\t}\n\tsetTheme(theme) {\n\t\tlet textmateTheme = this._textmateThemeCache.get(theme);\n\t\tif (!textmateTheme) {\n\t\t\ttextmateTheme = Theme.createFromRawTheme(theme);\n\t\t\tthis._textmateThemeCache.set(theme, textmateTheme);\n\t\t}\n\t\tthis._syncRegistry.setTheme(textmateTheme);\n\t}\n\tgetGrammar(name) {\n\t\tname = resolveLangAlias(name, this._alias);\n\t\treturn this._resolvedGrammars.get(name);\n\t}\n\tloadLanguage(lang) {\n\t\tif (this.getGrammar(lang.name)) return;\n\t\tconst embeddedLazilyBy = new Set([...this._langMap.values()].filter((i) => i.embeddedLangsLazy?.includes(lang.name)));\n\t\tthis._resolver.addLanguage(lang);\n\t\tconst grammarConfig = {\n\t\t\tbalancedBracketSelectors: lang.balancedBracketSelectors || [\"*\"],\n\t\t\tunbalancedBracketSelectors: lang.unbalancedBracketSelectors || []\n\t\t};\n\t\tthis._syncRegistry._rawGrammars.set(lang.scopeName, lang);\n\t\tconst g = this.loadGrammarWithConfiguration(lang.scopeName, 1, grammarConfig);\n\t\tg.name = lang.name;\n\t\tthis._resolvedGrammars.set(lang.name, g);\n\t\tif (lang.aliases) lang.aliases.forEach((alias) => {\n\t\t\tthis._alias[alias] = lang.name;\n\t\t});\n\t\tthis._loadedLanguagesCache = null;\n\t\tif (embeddedLazilyBy.size) for (const e of embeddedLazilyBy) {\n\t\t\tthis._resolvedGrammars.delete(e.name);\n\t\t\tthis._loadedLanguagesCache = null;\n\t\t\tthis._syncRegistry?._injectionGrammars?.delete(e.scopeName);\n\t\t\tthis._syncRegistry?._grammars?.delete(e.scopeName);\n\t\t\tthis.loadLanguage(this._langMap.get(e.name));\n\t\t}\n\t}\n\tdispose() {\n\t\tsuper.dispose();\n\t\tthis._resolvedThemes.clear();\n\t\tthis._resolvedGrammars.clear();\n\t\tthis._langMap.clear();\n\t\tthis._langGraph.clear();\n\t\tthis._loadedThemesCache = null;\n\t}\n\tloadLanguages(langs) {\n\t\tfor (const lang of langs) this.resolveEmbeddedLanguages(lang);\n\t\tconst langsGraphArray = Array.from(this._langGraph.entries());\n\t\tconst missingLangs = langsGraphArray.filter(([_, lang]) => !lang);\n\t\tif (missingLangs.length) {\n\t\t\tconst dependents = langsGraphArray.filter(([_, lang]) => {\n\t\t\t\tif (!lang) return false;\n\t\t\t\treturn (lang.embeddedLanguages || lang.embeddedLangs)?.some((l) => missingLangs.map(([name]) => name).includes(l));\n\t\t\t}).filter((lang) => !missingLangs.includes(lang));\n\t\t\tthrow new ShikiError(`Missing languages ${missingLangs.map(([name]) => `\\`${name}\\``).join(\", \")}, required by ${dependents.map(([name]) => `\\`${name}\\``).join(\", \")}`);\n\t\t}\n\t\tfor (const [_, lang] of langsGraphArray) this._resolver.addLanguage(lang);\n\t\tfor (const [_, lang] of langsGraphArray) this.loadLanguage(lang);\n\t}\n\tgetLoadedLanguages() {\n\t\tif (!this._loadedLanguagesCache) this._loadedLanguagesCache = [...new Set([...this._resolvedGrammars.keys(), ...Object.keys(this._alias)])];\n\t\treturn this._loadedLanguagesCache;\n\t}\n\tresolveEmbeddedLanguages(lang) {\n\t\tthis._langMap.set(lang.name, lang);\n\t\tthis._langGraph.set(lang.name, lang);\n\t\tconst embedded = lang.embeddedLanguages ?? lang.embeddedLangs;\n\t\tif (embedded) for (const embeddedLang of embedded) this._langGraph.set(embeddedLang, this._langMap.get(embeddedLang));\n\t}\n};\n\n//#endregion\n//#region src/textmate/resolver.ts\nvar Resolver = class {\n\t_langs = /* @__PURE__ */ new Map();\n\t_scopeToLang = /* @__PURE__ */ new Map();\n\t_injections = /* @__PURE__ */ new Map();\n\t_onigLib;\n\tconstructor(engine, langs) {\n\t\tthis._onigLib = {\n\t\t\tcreateOnigScanner: (patterns) => engine.createScanner(patterns),\n\t\t\tcreateOnigString: (s) => engine.createString(s)\n\t\t};\n\t\tlangs.forEach((i) => this.addLanguage(i));\n\t}\n\tget onigLib() {\n\t\treturn this._onigLib;\n\t}\n\tgetLangRegistration(langIdOrAlias) {\n\t\treturn this._langs.get(langIdOrAlias);\n\t}\n\tloadGrammar(scopeName) {\n\t\treturn this._scopeToLang.get(scopeName);\n\t}\n\taddLanguage(l) {\n\t\tthis._langs.set(l.name, l);\n\t\tif (l.aliases) l.aliases.forEach((a) => {\n\t\t\tthis._langs.set(a, l);\n\t\t});\n\t\tthis._scopeToLang.set(l.scopeName, l);\n\t\tif (l.injectTo) l.injectTo.forEach((i) => {\n\t\t\tif (!this._injections.get(i)) this._injections.set(i, []);\n\t\t\tthis._injections.get(i).push(l.scopeName);\n\t\t});\n\t}\n\tgetInjections(scopeName) {\n\t\tconst scopeParts = scopeName.split(\".\");\n\t\tlet injections = [];\n\t\tfor (let i = 1; i <= scopeParts.length; i++) {\n\t\t\tconst subScopeName = scopeParts.slice(0, i).join(\".\");\n\t\t\tinjections = [...injections, ...this._injections.get(subScopeName) || []];\n\t\t}\n\t\treturn injections;\n\t}\n};\n\n//#endregion\n//#region src/constructors/primitive.ts\nlet instancesCount = 0;\n/**\n* Get the minimal shiki primitive instance.\n*\n* Requires to provide the engine and all themes and languages upfront.\n*/\nfunction createShikiPrimitive(options) {\n\tinstancesCount += 1;\n\tif (options.warnings !== false && instancesCount >= 10 && instancesCount % 10 === 0) console.warn(`[Shiki] ${instancesCount} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \\`highlighter.dispose()\\` to release unused instances.`);\n\tlet isDisposed = false;\n\tif (!options.engine) throw new ShikiError(\"`engine` option is required for synchronous mode\");\n\tconst langs = (options.langs || []).flat(1);\n\tconst themes = (options.themes || []).flat(1).map(normalizeTheme);\n\tconst _registry = new Registry(new Resolver(options.engine, langs), themes, langs, options.langAlias);\n\tlet _lastTheme;\n\tfunction resolveLangAlias$1(name) {\n\t\treturn resolveLangAlias(name, options.langAlias);\n\t}\n\tfunction getLanguage(name) {\n\t\tensureNotDisposed();\n\t\tconst _lang = _registry.getGrammar(typeof name === \"string\" ? name : name.name);\n\t\tif (!_lang) throw new ShikiError(`Language \\`${name}\\` not found, you may need to load it first`);\n\t\treturn _lang;\n\t}\n\tfunction getTheme(name) {\n\t\tif (name === \"none\") return {\n\t\t\tbg: \"\",\n\t\t\tfg: \"\",\n\t\t\tname: \"none\",\n\t\t\tsettings: [],\n\t\t\ttype: \"dark\"\n\t\t};\n\t\tensureNotDisposed();\n\t\tconst _theme = _registry.getTheme(name);\n\t\tif (!_theme) throw new ShikiError(`Theme \\`${name}\\` not found, you may need to load it first`);\n\t\treturn _theme;\n\t}\n\tfunction setTheme(name) {\n\t\tensureNotDisposed();\n\t\tconst theme = getTheme(name);\n\t\tif (_lastTheme !== name) {\n\t\t\t_registry.setTheme(theme);\n\t\t\t_lastTheme = name;\n\t\t}\n\t\treturn {\n\t\t\ttheme,\n\t\t\tcolorMap: _registry.getColorMap()\n\t\t};\n\t}\n\tfunction getLoadedThemes() {\n\t\tensureNotDisposed();\n\t\treturn _registry.getLoadedThemes();\n\t}\n\tfunction getLoadedLanguages() {\n\t\tensureNotDisposed();\n\t\treturn _registry.getLoadedLanguages();\n\t}\n\tfunction loadLanguageSync(...langs) {\n\t\tensureNotDisposed();\n\t\t_registry.loadLanguages(langs.flat(1));\n\t}\n\tasync function loadLanguage(...langs) {\n\t\treturn loadLanguageSync(await resolveLangs(langs));\n\t}\n\tfunction loadThemeSync(...themes) {\n\t\tensureNotDisposed();\n\t\tfor (const theme of themes.flat(1)) _registry.loadTheme(theme);\n\t}\n\tasync function loadTheme(...themes) {\n\t\tensureNotDisposed();\n\t\treturn loadThemeSync(await resolveThemes(themes));\n\t}\n\tfunction ensureNotDisposed() {\n\t\tif (isDisposed) throw new ShikiError(\"Shiki instance has been disposed\");\n\t}\n\tfunction dispose() {\n\t\tif (isDisposed) return;\n\t\tisDisposed = true;\n\t\t_registry.dispose();\n\t\tinstancesCount -= 1;\n\t}\n\treturn {\n\t\tsetTheme,\n\t\tgetTheme,\n\t\tgetLanguage,\n\t\tgetLoadedThemes,\n\t\tgetLoadedLanguages,\n\t\tresolveLangAlias: resolveLangAlias$1,\n\t\tloadLanguage,\n\t\tloadLanguageSync,\n\t\tloadTheme,\n\t\tloadThemeSync,\n\t\tdispose,\n\t\t[Symbol.dispose]: dispose\n\t};\n}\n/**\n* @deprecated Use `createShikiPrimitive` instead.\n*/\nconst createShikiInternalSync = createShikiPrimitive;\n\n//#endregion\n//#region src/constructors/async.ts\n/**\n* Get the minimal shiki primitive instance.\n*/\nasync function createShikiPrimitiveAsync(options) {\n\tif (!options.engine) console.warn(\"`engine` option is required. Use `createOnigurumaEngine` or `createJavaScriptRegexEngine` to create an engine.\");\n\tconst [themes, langs, engine] = await Promise.all([\n\t\tresolveThemes(options.themes || []),\n\t\tresolveLangs(options.langs || []),\n\t\toptions.engine\n\t]);\n\treturn createShikiPrimitive({\n\t\t...options,\n\t\tthemes,\n\t\tlangs,\n\t\tengine\n\t});\n}\n/**\n* @deprecated Use `createShikiPrimitiveAsync` instead.\n*/\nconst createShikiInternal = createShikiPrimitiveAsync;\n\n//#endregion\n//#region src/textmate/grammar-state.ts\nconst _grammarStateMap = /* @__PURE__ */ new WeakMap();\nfunction setLastGrammarStateToMap(keys, state) {\n\t_grammarStateMap.set(keys, state);\n}\nfunction getLastGrammarStateFromMap(keys) {\n\treturn _grammarStateMap.get(keys);\n}\n/**\n* GrammarState is a special reference object that holds the state of a grammar.\n*\n* It's used to highlight code snippets that are part of the target language.\n*/\nvar GrammarState = class GrammarState {\n\t/**\n\t* Theme to Stack mapping\n\t*/\n\t_stacks = {};\n\tlang;\n\tget themes() {\n\t\treturn Object.keys(this._stacks);\n\t}\n\tget theme() {\n\t\treturn this.themes[0];\n\t}\n\tget _stack() {\n\t\treturn this._stacks[this.theme];\n\t}\n\t/**\n\t* Static method to create a initial grammar state.\n\t*/\n\tstatic initial(lang, themes) {\n\t\treturn new GrammarState(Object.fromEntries(toArray(themes).map((theme) => [theme, INITIAL])), lang);\n\t}\n\tconstructor(...args) {\n\t\tif (args.length === 2) {\n\t\t\tconst [stacksMap, lang] = args;\n\t\t\tthis.lang = lang;\n\t\t\tthis._stacks = stacksMap;\n\t\t} else {\n\t\t\tconst [stack, lang, theme] = args;\n\t\t\tthis.lang = lang;\n\t\t\tthis._stacks = { [theme]: stack };\n\t\t}\n\t}\n\t/**\n\t* Get the internal stack object.\n\t* @internal\n\t*/\n\tgetInternalStack(theme = this.theme) {\n\t\treturn this._stacks[theme];\n\t}\n\tgetScopes(theme = this.theme) {\n\t\treturn getScopes(this._stacks[theme]);\n\t}\n\ttoJSON() {\n\t\treturn {\n\t\t\tlang: this.lang,\n\t\t\ttheme: this.theme,\n\t\t\tthemes: this.themes,\n\t\t\tscopes: this.getScopes()\n\t\t};\n\t}\n};\nfunction getScopes(stack) {\n\tconst scopes = [];\n\tconst visited = /* @__PURE__ */ new Set();\n\tfunction pushScope(stack) {\n\t\tif (visited.has(stack)) return;\n\t\tvisited.add(stack);\n\t\tconst name = stack?.nameScopesList?.scopeName;\n\t\tif (name) scopes.push(name);\n\t\tif (stack.parent) pushScope(stack.parent);\n\t}\n\tpushScope(stack);\n\treturn scopes;\n}\nfunction getGrammarStack(state, theme) {\n\tif (!(state instanceof GrammarState)) throw new ShikiError(\"Invalid grammar state\");\n\treturn state.getInternalStack(theme);\n}\n\n//#endregion\n//#region src/highlight/code-to-tokens-base.ts\n/**\n* Code to tokens, with a simple theme.\n*/\nfunction codeToTokensBase(primitive, code, options = {}) {\n\tconst { theme: themeName = primitive.getLoadedThemes()[0] } = options;\n\tif (isPlainLang(primitive.resolveLangAlias(options.lang || \"text\")) || isNoneTheme(themeName)) return splitLines(code).map((line) => [{\n\t\tcontent: line[0],\n\t\toffset: line[1]\n\t}]);\n\tconst { theme, colorMap } = primitive.setTheme(themeName);\n\tconst _grammar = primitive.getLanguage(options.lang || \"text\");\n\tif (options.grammarState) {\n\t\tif (options.grammarState.lang !== _grammar.name) throw new ShikiError(`Grammar state language \"${options.grammarState.lang}\" does not match highlight language \"${_grammar.name}\"`);\n\t\tif (!options.grammarState.themes.includes(theme.name)) throw new ShikiError(`Grammar state themes \"${options.grammarState.themes}\" do not contain highlight theme \"${theme.name}\"`);\n\t}\n\treturn tokenizeWithTheme(code, _grammar, theme, colorMap, options);\n}\nfunction getLastGrammarState(...args) {\n\tif (args.length === 2) return getLastGrammarStateFromMap(args[1]);\n\tconst [primitive, code, options = {}] = args;\n\tconst { lang = \"text\", theme: themeName = primitive.getLoadedThemes()[0] } = options;\n\tif (isPlainLang(lang) || isNoneTheme(themeName)) throw new ShikiError(\"Plain language does not have grammar state\");\n\tif (lang === \"ansi\") throw new ShikiError(\"ANSI language does not have grammar state\");\n\tconst { theme, colorMap } = primitive.setTheme(themeName);\n\tconst _grammar = primitive.getLanguage(lang);\n\treturn new GrammarState(_tokenizeWithTheme(code, _grammar, theme, colorMap, options).stateStack, _grammar.name, theme.name);\n}\nfunction tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n\tconst result = _tokenizeWithTheme(code, grammar, theme, colorMap, options);\n\tconst grammarState = new GrammarState(result.stateStack, grammar.name, theme.name);\n\tsetLastGrammarStateToMap(result.tokens, grammarState);\n\treturn result.tokens;\n}\nfunction _tokenizeWithTheme(code, grammar, theme, colorMap, options) {\n\tconst colorReplacements = resolveColorReplacements(theme, options);\n\tconst { tokenizeMaxLineLength = 0, tokenizeTimeLimit = 500 } = options;\n\tconst lines = splitLines(code);\n\tlet stateStack = options.grammarState ? getGrammarStack(options.grammarState, theme.name) ?? INITIAL : options.grammarContextCode != null ? _tokenizeWithTheme(options.grammarContextCode, grammar, theme, colorMap, {\n\t\t...options,\n\t\tgrammarState: void 0,\n\t\tgrammarContextCode: void 0\n\t}).stateStack : INITIAL;\n\tlet actual = [];\n\tconst final = [];\n\tfor (let i = 0, len = lines.length; i < len; i++) {\n\t\tconst [line, lineOffset] = lines[i];\n\t\tif (line === \"\") {\n\t\t\tactual = [];\n\t\t\tfinal.push([]);\n\t\t\tcontinue;\n\t\t}\n\t\tif (tokenizeMaxLineLength > 0 && line.length >= tokenizeMaxLineLength) {\n\t\t\tactual = [];\n\t\t\tfinal.push([{\n\t\t\t\tcontent: line,\n\t\t\t\toffset: lineOffset,\n\t\t\t\tcolor: \"\",\n\t\t\t\tfontStyle: 0\n\t\t\t}]);\n\t\t\tcontinue;\n\t\t}\n\t\tlet resultWithScopes;\n\t\tlet tokensWithScopes;\n\t\tlet tokensWithScopesIndex;\n\t\tif (options.includeExplanation) {\n\t\t\tresultWithScopes = grammar.tokenizeLine(line, stateStack, tokenizeTimeLimit);\n\t\t\ttokensWithScopes = resultWithScopes.tokens;\n\t\t\ttokensWithScopesIndex = 0;\n\t\t}\n\t\tconst result = grammar.tokenizeLine2(line, stateStack, tokenizeTimeLimit);\n\t\tconst tokensLength = result.tokens.length / 2;\n\t\tfor (let j = 0; j < tokensLength; j++) {\n\t\t\tconst startIndex = result.tokens[2 * j];\n\t\t\tconst nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length;\n\t\t\tif (startIndex === nextStartIndex) continue;\n\t\t\tconst metadata = result.tokens[2 * j + 1];\n\t\t\tconst color = applyColorReplacements(colorMap[EncodedTokenMetadata.getForeground(metadata)], colorReplacements);\n\t\t\tconst fontStyle = EncodedTokenMetadata.getFontStyle(metadata);\n\t\t\tconst token = {\n\t\t\t\tcontent: line.substring(startIndex, nextStartIndex),\n\t\t\t\toffset: lineOffset + startIndex,\n\t\t\t\tcolor,\n\t\t\t\tfontStyle\n\t\t\t};\n\t\t\tif (options.includeExplanation) {\n\t\t\t\tconst themeSettingsSelectors = [];\n\t\t\t\tif (options.includeExplanation !== \"scopeName\") for (const setting of theme.settings) {\n\t\t\t\t\tlet selectors;\n\t\t\t\t\tswitch (typeof setting.scope) {\n\t\t\t\t\t\tcase \"string\":\n\t\t\t\t\t\t\tselectors = setting.scope.split(/,/).map((scope) => scope.trim());\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"object\":\n\t\t\t\t\t\t\tselectors = setting.scope;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: continue;\n\t\t\t\t\t}\n\t\t\t\t\tthemeSettingsSelectors.push({\n\t\t\t\t\t\tsettings: setting,\n\t\t\t\t\t\tselectors: selectors.map((selector) => selector.split(/ /))\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ttoken.explanation = [];\n\t\t\t\tlet offset = 0;\n\t\t\t\twhile (startIndex + offset < nextStartIndex) {\n\t\t\t\t\tconst tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];\n\t\t\t\t\tconst tokenWithScopesText = line.substring(tokenWithScopes.startIndex, tokenWithScopes.endIndex);\n\t\t\t\t\toffset += tokenWithScopesText.length;\n\t\t\t\t\ttoken.explanation.push({\n\t\t\t\t\t\tcontent: tokenWithScopesText,\n\t\t\t\t\t\tscopes: options.includeExplanation === \"scopeName\" ? explainThemeScopesNameOnly(tokenWithScopes.scopes) : explainThemeScopesFull(themeSettingsSelectors, tokenWithScopes.scopes)\n\t\t\t\t\t});\n\t\t\t\t\ttokensWithScopesIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tactual.push(token);\n\t\t}\n\t\tfinal.push(actual);\n\t\tactual = [];\n\t\tstateStack = result.ruleStack;\n\t}\n\treturn {\n\t\ttokens: final,\n\t\tstateStack\n\t};\n}\nfunction explainThemeScopesNameOnly(scopes) {\n\treturn scopes.map((scope) => ({ scopeName: scope }));\n}\nfunction explainThemeScopesFull(themeSelectors, scopes) {\n\tconst result = [];\n\tfor (let i = 0, len = scopes.length; i < len; i++) {\n\t\tconst scope = scopes[i];\n\t\tresult[i] = {\n\t\t\tscopeName: scope,\n\t\t\tthemeMatches: explainThemeScope(themeSelectors, scope, scopes.slice(0, i))\n\t\t};\n\t}\n\treturn result;\n}\nfunction matchesOne(selector, scope) {\n\treturn selector === scope || scope.substring(0, selector.length) === selector && scope[selector.length] === \".\";\n}\nfunction matches(selectors, scope, parentScopes) {\n\tif (!matchesOne(selectors[selectors.length - 1], scope)) return false;\n\tlet selectorParentIndex = selectors.length - 2;\n\tlet parentIndex = parentScopes.length - 1;\n\twhile (selectorParentIndex >= 0 && parentIndex >= 0) {\n\t\tif (matchesOne(selectors[selectorParentIndex], parentScopes[parentIndex])) selectorParentIndex -= 1;\n\t\tparentIndex -= 1;\n\t}\n\tif (selectorParentIndex === -1) return true;\n\treturn false;\n}\nfunction explainThemeScope(themeSettingsSelectors, scope, parentScopes) {\n\tconst result = [];\n\tfor (const { selectors, settings } of themeSettingsSelectors) for (const selectorPieces of selectors) if (matches(selectorPieces, scope, parentScopes)) {\n\t\tresult.push(settings);\n\t\tbreak;\n\t}\n\treturn result;\n}\n\n//#endregion\n//#region src/highlight/code-to-tokens-themes.ts\n/**\n* Get tokens with multiple themes\n*/\nfunction codeToTokensWithThemes(primitive, code, options, codeToTokensBaseFn = codeToTokensBase) {\n\tconst themes = Object.entries(options.themes).filter((i) => i[1]).map((i) => ({\n\t\tcolor: i[0],\n\t\ttheme: i[1]\n\t}));\n\tconst themedTokens = themes.map((t) => {\n\t\tconst tokens = codeToTokensBaseFn(primitive, code, {\n\t\t\t...options,\n\t\t\ttheme: t.theme\n\t\t});\n\t\treturn {\n\t\t\ttokens,\n\t\t\tstate: getLastGrammarStateFromMap(tokens),\n\t\t\ttheme: typeof t.theme === \"string\" ? t.theme : t.theme.name\n\t\t};\n\t});\n\tconst tokens = alignThemesTokenization(...themedTokens.map((i) => i.tokens));\n\tconst mergedTokens = tokens[0].map((line, lineIdx) => line.map((_token, tokenIdx) => {\n\t\tconst mergedToken = {\n\t\t\tcontent: _token.content,\n\t\t\tvariants: {},\n\t\t\toffset: _token.offset\n\t\t};\n\t\tif (\"includeExplanation\" in options && options.includeExplanation) mergedToken.explanation = _token.explanation;\n\t\ttokens.forEach((t, themeIdx) => {\n\t\t\tconst { content: _, explanation: __, offset: ___, ...styles } = t[lineIdx][tokenIdx];\n\t\t\tmergedToken.variants[themes[themeIdx].color] = styles;\n\t\t});\n\t\treturn mergedToken;\n\t}));\n\tconst mergedGrammarState = themedTokens[0].state ? new GrammarState(Object.fromEntries(themedTokens.map((s) => [s.theme, s.state?.getInternalStack(s.theme)])), themedTokens[0].state.lang) : void 0;\n\tif (mergedGrammarState) setLastGrammarStateToMap(mergedTokens, mergedGrammarState);\n\treturn mergedTokens;\n}\n/**\n* Break tokens from multiple themes into same tokenization.\n*\n* For example, given two themes that tokenize `console.log(\"hello\")` as:\n*\n* - `console . log (\" hello \")` (6 tokens)\n* - `console .log ( \"hello\" )` (5 tokens)\n*\n* This function will return:\n*\n* - `console . log ( \" hello \" )` (8 tokens)\n* - `console . log ( \" hello \" )` (8 tokens)\n*/\nfunction alignThemesTokenization(...themes) {\n\tconst outThemes = themes.map(() => []);\n\tconst count = themes.length;\n\tfor (let i = 0; i < themes[0].length; i++) {\n\t\tconst lines = themes.map((t) => t[i]);\n\t\tconst outLines = outThemes.map(() => []);\n\t\toutThemes.forEach((t, i) => t.push(outLines[i]));\n\t\tconst indexes = lines.map(() => 0);\n\t\tconst current = lines.map((l) => l[0]);\n\t\twhile (current.every((t) => t)) {\n\t\t\tconst minLength = Math.min(...current.map((t) => t.content.length));\n\t\t\tfor (let n = 0; n < count; n++) {\n\t\t\t\tconst token = current[n];\n\t\t\t\tif (token.content.length === minLength) {\n\t\t\t\t\toutLines[n].push(token);\n\t\t\t\t\tindexes[n] += 1;\n\t\t\t\t\tcurrent[n] = lines[n][indexes[n]];\n\t\t\t\t} else {\n\t\t\t\t\toutLines[n].push({\n\t\t\t\t\t\t...token,\n\t\t\t\t\t\tcontent: token.content.slice(0, minLength)\n\t\t\t\t\t});\n\t\t\t\t\tcurrent[n] = {\n\t\t\t\t\t\t...token,\n\t\t\t\t\t\tcontent: token.content.slice(minLength),\n\t\t\t\t\t\toffset: token.offset + minLength\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn outThemes;\n}\n\n//#endregion\nexport { GrammarState, Registry, Resolver, alignThemesTokenization, applyColorReplacements, codeToTokensBase, codeToTokensWithThemes, createShikiInternal, createShikiInternalSync, createShikiPrimitive, createShikiPrimitiveAsync, getGrammarStack, getLastGrammarState, getLastGrammarStateFromMap, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, normalizeGetter, normalizeTheme, resolveColorReplacements, resolveLangAlias, resolveLangs, resolveThemes, setLastGrammarStateToMap, splitLines, toArray, tokenizeWithTheme };","/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nexport const htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray<Schema>} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record<string, Info>} */\n const property = {}\n /** @type {Record<string, string>} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray<keyof typeof types>} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record<string, string> | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray<string> | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record<string, number | null>} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record<string, Info>} */\n const properties = {}\n /** @type {Record<string, string>} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n },\n space: 'html',\n transform: caseInsensitiveTransform\n})\n","import {caseSensitiveTransform} from './util/case-sensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n boolean,\n commaOrSpaceSeparated,\n commaSeparated,\n number,\n spaceSeparated\n} from './util/types.js'\n\nexport const svg = create({\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n },\n space: 'svg',\n transform: caseSensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n },\n space: 'xlink',\n transform(_, property) {\n return 'xlink:' + property.slice(5).toLowerCase()\n }\n})\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n properties: {xmlnsXLink: null, xmlns: null},\n space: 'xmlns',\n transform: caseInsensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n properties: {xmlBase: null, xmlLang: null, xmlSpace: null},\n space: 'xml',\n transform(_, property) {\n return 'xml:' + property.slice(3).toLowerCase()\n }\n})\n","/**\n * @import {Schema} from 'property-information'\n */\n\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\nimport {normalize} from './normalize.js'\n\nconst cap = /[A-Z]/g\nconst dash = /-[a-z]/g\nconst valid = /^data[-\\w.:]+$/i\n\n/**\n * Look up info on a property.\n *\n * In most cases the given `schema` contains info on the property.\n * All standard,\n * most legacy,\n * and some non-standard properties are supported.\n * For these cases,\n * the returned `Info` has hints about the value of the property.\n *\n * `name` can also be a valid data attribute or property,\n * in which case an `Info` object with the correctly cased `attribute` and\n * `property` is returned.\n *\n * `name` can be an unknown attribute,\n * in which case an `Info` object with `attribute` and `property` set to the\n * given name is returned.\n * It is not recommended to provide unsupported legacy or recently specced\n * properties.\n *\n *\n * @param {Schema} schema\n * Schema;\n * either the `html` or `svg` export.\n * @param {string} value\n * An attribute-like or property-like name;\n * it will be passed through `normalize` to hopefully find the correct info.\n * @returns {Info}\n * Info.\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let property = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n property = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(property, value)\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Kebab.\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Camel.\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","// Note: types exposed from `index.d.ts`.\nimport {merge} from './lib/util/merge.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\nimport {xlink} from './lib/xlink.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {xml} from './lib/xml.js'\n\nexport {hastToReact} from './lib/hast-to-react.js'\n\nexport const html = merge([aria, htmlBase, xlink, xmlns, xml], 'html')\n\nexport {find} from './lib/find.js'\nexport {normalize} from './lib/normalize.js'\n\nexport const svg = merge([aria, svgBase, xlink, xmlns, xml], 'svg')\n","/**\n * @callback Handler\n * Handle a value, with a certain ID field set to a certain value.\n * The ID field is passed to `zwitch`, and it’s value is this function’s\n * place on the `handlers` record.\n * @param {...any} parameters\n * Arbitrary parameters passed to the zwitch.\n * The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback UnknownHandler\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @param {unknown} value\n * An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback InvalidHandler\n * Handle values that do not have a certain ID field.\n * @param {unknown} value\n * Any unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n * This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @typedef Options\n * Configuration (required).\n * @property {Invalid} [invalid]\n * Handler to use for invalid values.\n * @property {Unknown} [unknown]\n * Handler to use for unknown values.\n * @property {Handlers} [handlers]\n * Handlers to use.\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @param {string} key\n * Field to switch on.\n * @param {Options<Invalid, Unknown, Handlers>} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters<Handlers[keyof Handlers]>): ReturnType<Handlers[keyof Handlers]>, (...parameters: Parameters<Unknown>): ReturnType<Unknown>}}\n */\nexport function zwitch(key, options) {\n const settings = options || {}\n\n /**\n * Handle one value.\n *\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid” handler will be called.\n * If `value` has an unknown `key`, the special “unknown” handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @this {unknown}\n * Any context object.\n * @param {unknown} [value]\n * Any value.\n * @param {...unknown} parameters\n * Arbitrary parameters passed to the zwitch.\n * @property {Handler} invalid\n * Handle for values that do not have a certain ID field.\n * @property {Handler} unknown\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @property {Handlers} handlers\n * Record of handlers.\n * @returns {unknown}\n * Anything.\n */\n function one(value, ...parameters) {\n /** @type {Handler|undefined} */\n let fn = one.invalid\n const handlers = one.handlers\n\n if (value && own.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key])\n // @ts-expect-error Indexable.\n fn = own.call(handlers, id) ? handlers[id] : one.unknown\n }\n\n if (fn) {\n return fn.call(this, value, ...parameters)\n }\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n // @ts-expect-error: matches!\n return one\n}\n","/**\n * @typedef CoreOptions\n * @property {ReadonlyArray<string>} [subset=[]]\n * Whether to only escape the given subset of characters.\n * @property {boolean} [escapeOnly=false]\n * Whether to only escape possibly dangerous characters.\n * Those characters are `\"`, `&`, `'`, `<`, `>`, and `` ` ``.\n *\n * @typedef FormatOptions\n * @property {(code: number, next: number, options: CoreWithFormatOptions) => string} format\n * Format strategy.\n *\n * @typedef {CoreOptions & FormatOptions & import('./util/format-smart.js').FormatSmartOptions} CoreWithFormatOptions\n */\n\nconst defaultSubsetRegex = /[\"&'<>`]/g\nconst surrogatePairsRegex = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g\nconst controlCharactersRegex =\n // eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n /[\\x01-\\t\\v\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g\nconst regexEscapeRegex = /[|\\\\{}()[\\]^$+*?.]/g\n\n/** @type {WeakMap<ReadonlyArray<string>, RegExp>} */\nconst subsetToRegexCache = new WeakMap()\n\n/**\n * Encode certain characters in `value`.\n *\n * @param {string} value\n * @param {CoreWithFormatOptions} options\n * @returns {string}\n */\nexport function core(value, options) {\n value = value.replace(\n options.subset\n ? charactersToExpressionCached(options.subset)\n : defaultSubsetRegex,\n basic\n )\n\n if (options.subset || options.escapeOnly) {\n return value\n }\n\n return (\n value\n // Surrogate pairs.\n .replace(surrogatePairsRegex, surrogate)\n // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n // non-ASCII ones).\n .replace(controlCharactersRegex, basic)\n )\n\n /**\n * @param {string} pair\n * @param {number} index\n * @param {string} all\n */\n function surrogate(pair, index, all) {\n return options.format(\n (pair.charCodeAt(0) - 0xd800) * 0x400 +\n pair.charCodeAt(1) -\n 0xdc00 +\n 0x10000,\n all.charCodeAt(index + 2),\n options\n )\n }\n\n /**\n * @param {string} character\n * @param {number} index\n * @param {string} all\n */\n function basic(character, index, all) {\n return options.format(\n character.charCodeAt(0),\n all.charCodeAt(index + 1),\n options\n )\n }\n}\n\n/**\n * A wrapper function that caches the result of `charactersToExpression` with a WeakMap.\n * This can improve performance when tooling calls `charactersToExpression` repeatedly\n * with the same subset.\n *\n * @param {ReadonlyArray<string>} subset\n * @returns {RegExp}\n */\nfunction charactersToExpressionCached(subset) {\n let cached = subsetToRegexCache.get(subset)\n\n if (!cached) {\n cached = charactersToExpression(subset)\n subsetToRegexCache.set(subset, cached)\n }\n\n return cached\n}\n\n/**\n * @param {ReadonlyArray<string>} subset\n * @returns {RegExp}\n */\nfunction charactersToExpression(subset) {\n /** @type {Array<string>} */\n const groups = []\n let index = -1\n\n while (++index < subset.length) {\n groups.push(subset[index].replace(regexEscapeRegex, '\\\\$&'))\n }\n\n return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\n","const hexadecimalRegex = /[\\dA-Fa-f]/\n\n/**\n * Configurable ways to encode characters as hexadecimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nexport function toHexadecimal(code, next, omit) {\n const value = '&#x' + code.toString(16).toUpperCase()\n return omit && next && !hexadecimalRegex.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n","const decimalRegex = /\\d/\n\n/**\n * Configurable ways to encode characters as decimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nexport function toDecimal(code, next, omit) {\n const value = '&#' + String(code)\n return omit && next && !decimalRegex.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n","/**\n * List of legacy HTML named character references that don’t need a trailing semicolon.\n *\n * @type {Array<string>}\n */\nexport const characterEntitiesLegacy = [\n 'AElig',\n 'AMP',\n 'Aacute',\n 'Acirc',\n 'Agrave',\n 'Aring',\n 'Atilde',\n 'Auml',\n 'COPY',\n 'Ccedil',\n 'ETH',\n 'Eacute',\n 'Ecirc',\n 'Egrave',\n 'Euml',\n 'GT',\n 'Iacute',\n 'Icirc',\n 'Igrave',\n 'Iuml',\n 'LT',\n 'Ntilde',\n 'Oacute',\n 'Ocirc',\n 'Ograve',\n 'Oslash',\n 'Otilde',\n 'Ouml',\n 'QUOT',\n 'REG',\n 'THORN',\n 'Uacute',\n 'Ucirc',\n 'Ugrave',\n 'Uuml',\n 'Yacute',\n 'aacute',\n 'acirc',\n 'acute',\n 'aelig',\n 'agrave',\n 'amp',\n 'aring',\n 'atilde',\n 'auml',\n 'brvbar',\n 'ccedil',\n 'cedil',\n 'cent',\n 'copy',\n 'curren',\n 'deg',\n 'divide',\n 'eacute',\n 'ecirc',\n 'egrave',\n 'eth',\n 'euml',\n 'frac12',\n 'frac14',\n 'frac34',\n 'gt',\n 'iacute',\n 'icirc',\n 'iexcl',\n 'igrave',\n 'iquest',\n 'iuml',\n 'laquo',\n 'lt',\n 'macr',\n 'micro',\n 'middot',\n 'nbsp',\n 'not',\n 'ntilde',\n 'oacute',\n 'ocirc',\n 'ograve',\n 'ordf',\n 'ordm',\n 'oslash',\n 'otilde',\n 'ouml',\n 'para',\n 'plusmn',\n 'pound',\n 'quot',\n 'raquo',\n 'reg',\n 'sect',\n 'shy',\n 'sup1',\n 'sup2',\n 'sup3',\n 'szlig',\n 'thorn',\n 'times',\n 'uacute',\n 'ucirc',\n 'ugrave',\n 'uml',\n 'uuml',\n 'yacute',\n 'yen',\n 'yuml'\n]\n","/**\n * Map of named character references from HTML 4.\n *\n * @type {Record<string, string>}\n */\nexport const characterEntitiesHtml4 = {\n nbsp: ' ',\n iexcl: '¡',\n cent: '¢',\n pound: '£',\n curren: '¤',\n yen: '¥',\n brvbar: '¦',\n sect: '§',\n uml: '¨',\n copy: '©',\n ordf: 'ª',\n laquo: '«',\n not: '¬',\n shy: '­',\n reg: '®',\n macr: '¯',\n deg: '°',\n plusmn: '±',\n sup2: '²',\n sup3: '³',\n acute: '´',\n micro: 'µ',\n para: '¶',\n middot: '·',\n cedil: '¸',\n sup1: '¹',\n ordm: 'º',\n raquo: '»',\n frac14: '¼',\n frac12: '½',\n frac34: '¾',\n iquest: '¿',\n Agrave: 'À',\n Aacute: 'Á',\n Acirc: 'Â',\n Atilde: 'Ã',\n Auml: 'Ä',\n Aring: 'Å',\n AElig: 'Æ',\n Ccedil: 'Ç',\n Egrave: 'È',\n Eacute: 'É',\n Ecirc: 'Ê',\n Euml: 'Ë',\n Igrave: 'Ì',\n Iacute: 'Í',\n Icirc: 'Î',\n Iuml: 'Ï',\n ETH: 'Ð',\n Ntilde: 'Ñ',\n Ograve: 'Ò',\n Oacute: 'Ó',\n Ocirc: 'Ô',\n Otilde: 'Õ',\n Ouml: 'Ö',\n times: '×',\n Oslash: 'Ø',\n Ugrave: 'Ù',\n Uacute: 'Ú',\n Ucirc: 'Û',\n Uuml: 'Ü',\n Yacute: 'Ý',\n THORN: 'Þ',\n szlig: 'ß',\n agrave: 'à',\n aacute: 'á',\n acirc: 'â',\n atilde: 'ã',\n auml: 'ä',\n aring: 'å',\n aelig: 'æ',\n ccedil: 'ç',\n egrave: 'è',\n eacute: 'é',\n ecirc: 'ê',\n euml: 'ë',\n igrave: 'ì',\n iacute: 'í',\n icirc: 'î',\n iuml: 'ï',\n eth: 'ð',\n ntilde: 'ñ',\n ograve: 'ò',\n oacute: 'ó',\n ocirc: 'ô',\n otilde: 'õ',\n ouml: 'ö',\n divide: '÷',\n oslash: 'ø',\n ugrave: 'ù',\n uacute: 'ú',\n ucirc: 'û',\n uuml: 'ü',\n yacute: 'ý',\n thorn: 'þ',\n yuml: 'ÿ',\n fnof: 'ƒ',\n Alpha: 'Α',\n Beta: 'Β',\n Gamma: 'Γ',\n Delta: 'Δ',\n Epsilon: 'Ε',\n Zeta: 'Ζ',\n Eta: 'Η',\n Theta: 'Θ',\n Iota: 'Ι',\n Kappa: 'Κ',\n Lambda: 'Λ',\n Mu: 'Μ',\n Nu: 'Ν',\n Xi: 'Ξ',\n Omicron: 'Ο',\n Pi: 'Π',\n Rho: 'Ρ',\n Sigma: 'Σ',\n Tau: 'Τ',\n Upsilon: 'Υ',\n Phi: 'Φ',\n Chi: 'Χ',\n Psi: 'Ψ',\n Omega: 'Ω',\n alpha: 'α',\n beta: 'β',\n gamma: 'γ',\n delta: 'δ',\n epsilon: 'ε',\n zeta: 'ζ',\n eta: 'η',\n theta: 'θ',\n iota: 'ι',\n kappa: 'κ',\n lambda: 'λ',\n mu: 'μ',\n nu: 'ν',\n xi: 'ξ',\n omicron: 'ο',\n pi: 'π',\n rho: 'ρ',\n sigmaf: 'ς',\n sigma: 'σ',\n tau: 'τ',\n upsilon: 'υ',\n phi: 'φ',\n chi: 'χ',\n psi: 'ψ',\n omega: 'ω',\n thetasym: 'ϑ',\n upsih: 'ϒ',\n piv: 'ϖ',\n bull: '•',\n hellip: '…',\n prime: '′',\n Prime: '″',\n oline: '‾',\n frasl: '⁄',\n weierp: '℘',\n image: 'ℑ',\n real: 'ℜ',\n trade: '™',\n alefsym: 'ℵ',\n larr: '←',\n uarr: '↑',\n rarr: '→',\n darr: '↓',\n harr: '↔',\n crarr: '↵',\n lArr: '⇐',\n uArr: '⇑',\n rArr: '⇒',\n dArr: '⇓',\n hArr: '⇔',\n forall: '∀',\n part: '∂',\n exist: '∃',\n empty: '∅',\n nabla: '∇',\n isin: '∈',\n notin: '∉',\n ni: '∋',\n prod: '∏',\n sum: '∑',\n minus: '−',\n lowast: '∗',\n radic: '√',\n prop: '∝',\n infin: '∞',\n ang: '∠',\n and: '∧',\n or: '∨',\n cap: '∩',\n cup: '∪',\n int: '∫',\n there4: '∴',\n sim: '∼',\n cong: '≅',\n asymp: '≈',\n ne: '≠',\n equiv: '≡',\n le: '≤',\n ge: '≥',\n sub: '⊂',\n sup: '⊃',\n nsub: '⊄',\n sube: '⊆',\n supe: '⊇',\n oplus: '⊕',\n otimes: '⊗',\n perp: '⊥',\n sdot: '⋅',\n lceil: '⌈',\n rceil: '⌉',\n lfloor: '⌊',\n rfloor: '⌋',\n lang: '〈',\n rang: '〉',\n loz: '◊',\n spades: '♠',\n clubs: '♣',\n hearts: '♥',\n diams: '♦',\n quot: '\"',\n amp: '&',\n lt: '<',\n gt: '>',\n OElig: 'Œ',\n oelig: 'œ',\n Scaron: 'Š',\n scaron: 'š',\n Yuml: 'Ÿ',\n circ: 'ˆ',\n tilde: '˜',\n ensp: ' ',\n emsp: ' ',\n thinsp: ' ',\n zwnj: '‌',\n zwj: '‍',\n lrm: '‎',\n rlm: '‏',\n ndash: '–',\n mdash: '—',\n lsquo: '‘',\n rsquo: '’',\n sbquo: '‚',\n ldquo: '“',\n rdquo: '”',\n bdquo: '„',\n dagger: '†',\n Dagger: '‡',\n permil: '‰',\n lsaquo: '‹',\n rsaquo: '›',\n euro: '€'\n}\n","/**\n * List of legacy (that don’t need a trailing `;`) named references which could,\n * depending on what follows them, turn into a different meaning\n *\n * @type {Array<string>}\n */\nexport const dangerous = [\n 'cent',\n 'copy',\n 'divide',\n 'gt',\n 'lt',\n 'not',\n 'para',\n 'times'\n]\n","import {characterEntitiesLegacy} from 'character-entities-legacy'\nimport {characterEntitiesHtml4} from 'character-entities-html4'\nimport {dangerous} from '../constant/dangerous.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * `characterEntitiesHtml4` but inverted.\n *\n * @type {Record<string, string>}\n */\nconst characters = {}\n\n/** @type {string} */\nlet key\n\nfor (key in characterEntitiesHtml4) {\n if (own.call(characterEntitiesHtml4, key)) {\n characters[characterEntitiesHtml4[key]] = key\n }\n}\n\nconst notAlphanumericRegex = /[^\\dA-Za-z]/\n\n/**\n * Configurable ways to encode characters as named references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @param {boolean|undefined} attribute\n * @returns {string}\n */\nexport function toNamed(code, next, omit, attribute) {\n const character = String.fromCharCode(code)\n\n if (own.call(characters, character)) {\n const name = characters[character]\n const value = '&' + name\n\n if (\n omit &&\n characterEntitiesLegacy.includes(name) &&\n !dangerous.includes(name) &&\n (!attribute ||\n (next &&\n next !== 61 /* `=` */ &&\n notAlphanumericRegex.test(String.fromCharCode(next))))\n ) {\n return value\n }\n\n return value + ';'\n }\n\n return ''\n}\n","/**\n * @typedef FormatSmartOptions\n * @property {boolean} [useNamedReferences=false]\n * Prefer named character references (`&amp;`) where possible.\n * @property {boolean} [useShortestReferences=false]\n * Prefer the shortest possible reference, if that results in less bytes.\n * **Note**: `useNamedReferences` can be omitted when using `useShortestReferences`.\n * @property {boolean} [omitOptionalSemicolons=false]\n * Whether to omit semicolons when possible.\n * **Note**: This creates what HTML calls “parse errors” but is otherwise still valid HTML — don’t use this except when building a minifier.\n * Omitting semicolons is possible for certain named and numeric references in some cases.\n * @property {boolean} [attribute=false]\n * Create character references which don’t fail in attributes.\n * **Note**: `attribute` only applies when operating dangerously with\n * `omitOptionalSemicolons: true`.\n */\n\nimport {toHexadecimal} from './to-hexadecimal.js'\nimport {toDecimal} from './to-decimal.js'\nimport {toNamed} from './to-named.js'\n\n/**\n * Configurable ways to encode a character yielding pretty or small results.\n *\n * @param {number} code\n * @param {number} next\n * @param {FormatSmartOptions} options\n * @returns {string}\n */\nexport function formatSmart(code, next, options) {\n let numeric = toHexadecimal(code, next, options.omitOptionalSemicolons)\n /** @type {string|undefined} */\n let named\n\n if (options.useNamedReferences || options.useShortestReferences) {\n named = toNamed(\n code,\n next,\n options.omitOptionalSemicolons,\n options.attribute\n )\n }\n\n // Use the shortest numeric reference when requested.\n // A simple algorithm would use decimal for all code points under 100, as\n // those are shorter than hexadecimal:\n //\n // * `&#99;` vs `&#x63;` (decimal shorter)\n // * `&#100;` vs `&#x64;` (equal)\n //\n // However, because we take `next` into consideration when `omit` is used,\n // And it would be possible that decimals are shorter on bigger values as\n // well if `next` is hexadecimal but not decimal, we instead compare both.\n if (\n (options.useShortestReferences || !named) &&\n options.useShortestReferences\n ) {\n const decimal = toDecimal(code, next, options.omitOptionalSemicolons)\n\n if (decimal.length < numeric.length) {\n numeric = decimal\n }\n }\n\n return named &&\n (!options.useShortestReferences || named.length < numeric.length)\n ? named\n : numeric\n}\n","/**\n * @typedef {import('./core.js').CoreOptions & import('./util/format-smart.js').FormatSmartOptions} Options\n * @typedef {import('./core.js').CoreOptions} LightOptions\n */\n\nimport {core} from './core.js'\nimport {formatSmart} from './util/format-smart.js'\nimport {formatBasic} from './util/format-basic.js'\n\n/**\n * Encode special characters in `value`.\n *\n * @param {string} value\n * Value to encode.\n * @param {Options} [options]\n * Configuration.\n * @returns {string}\n * Encoded value.\n */\nexport function stringifyEntities(value, options) {\n return core(value, Object.assign({format: formatSmart}, options))\n}\n\n/**\n * Encode special characters in `value` as hexadecimals.\n *\n * @param {string} value\n * Value to encode.\n * @param {LightOptions} [options]\n * Configuration.\n * @returns {string}\n * Encoded value.\n */\nexport function stringifyEntitiesLight(value, options) {\n return core(value, Object.assign({format: formatBasic}, options))\n}\n","/**\n * @import {Comment, Parents} from 'hast'\n * @import {State} from '../index.js'\n */\n\nimport {stringifyEntities} from 'stringify-entities'\n\nconst htmlCommentRegex = /^>|^->|<!--|-->|--!>|<!-$/g\n\n// Declare arrays as variables so it can be cached by `stringifyEntities`\nconst bogusCommentEntitySubset = ['>']\nconst commentEntitySubset = ['<', '>']\n\n/**\n * Serialize a comment.\n *\n * @param {Comment} node\n * Node to handle.\n * @param {number | undefined} _1\n * Index of `node` in `parent.\n * @param {Parents | undefined} _2\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function comment(node, _1, _2, state) {\n // See: <https://html.spec.whatwg.org/multipage/syntax.html#comments>\n return state.settings.bogusComments\n ? '<?' +\n stringifyEntities(\n node.value,\n Object.assign({}, state.settings.characterReferences, {\n subset: bogusCommentEntitySubset\n })\n ) +\n '>'\n : '<!--' + node.value.replace(htmlCommentRegex, encode) + '-->'\n\n /**\n * @param {string} $0\n */\n function encode($0) {\n return stringifyEntities(\n $0,\n Object.assign({}, state.settings.characterReferences, {\n subset: commentEntitySubset\n })\n )\n }\n}\n","/**\n * @import {Doctype, Parents} from 'hast'\n * @import {State} from '../index.js'\n */\n\n/**\n * Serialize a doctype.\n *\n * @param {Doctype} _1\n * Node to handle.\n * @param {number | undefined} _2\n * Index of `node` in `parent.\n * @param {Parents | undefined} _3\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function doctype(_1, _2, _3, state) {\n return (\n '<!' +\n (state.settings.upperDoctype ? 'DOCTYPE' : 'doctype') +\n (state.settings.tightDoctype ? '' : ' ') +\n 'html>'\n )\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array<string>} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n","/**\n * @import {Parents, RootContent} from 'hast'\n */\n\nimport {whitespace} from 'hast-util-whitespace'\n\nexport const siblingAfter = siblings(1)\nexport const siblingBefore = siblings(-1)\n\n/** @type {Array<RootContent>} */\nconst emptyChildren = []\n\n/**\n * Factory to check siblings in a direction.\n *\n * @param {number} increment\n */\nfunction siblings(increment) {\n return sibling\n\n /**\n * Find applicable siblings in a direction.\n *\n * @template {Parents} Parent\n * Parent type.\n * @param {Parent | undefined} parent\n * Parent.\n * @param {number | undefined} index\n * Index of child in `parent`.\n * @param {boolean | undefined} [includeWhitespace=false]\n * Whether to include whitespace (default: `false`).\n * @returns {Parent extends {children: Array<infer Child>} ? Child | undefined : never}\n * Child of parent.\n */\n function sibling(parent, index, includeWhitespace) {\n const siblings = parent ? parent.children : emptyChildren\n let offset = (index || 0) + increment\n let next = siblings[offset]\n\n if (!includeWhitespace) {\n while (next && whitespace(next)) {\n offset += increment\n next = siblings[offset]\n }\n }\n\n // @ts-expect-error: it’s a correct child.\n return next\n }\n}\n","/**\n * @import {Element, Parents} from 'hast'\n */\n\n/**\n * @callback OmitHandle\n * Check if a tag can be omitted.\n * @param {Element} element\n * Element to check.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether to omit a tag.\n *\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Factory to check if a given node can have a tag omitted.\n *\n * @param {Record<string, OmitHandle>} handlers\n * Omission handlers, where each key is a tag name, and each value is the\n * corresponding handler.\n * @returns {OmitHandle}\n * Whether to omit a tag of an element.\n */\nexport function omission(handlers) {\n return omit\n\n /**\n * Check if a given node can have a tag omitted.\n *\n * @type {OmitHandle}\n */\n function omit(node, index, parent) {\n return (\n own.call(handlers, node.tagName) &&\n handlers[node.tagName](node, index, parent)\n )\n }\n}\n","/**\n * @import {Element, Parents} from 'hast'\n */\n\nimport {whitespace} from 'hast-util-whitespace'\nimport {siblingAfter} from './util/siblings.js'\nimport {omission} from './omission.js'\n\nexport const closing = omission({\n body,\n caption: headOrColgroupOrCaption,\n colgroup: headOrColgroupOrCaption,\n dd,\n dt,\n head: headOrColgroupOrCaption,\n html,\n li,\n optgroup,\n option,\n p,\n rp: rubyElement,\n rt: rubyElement,\n tbody,\n td: cells,\n tfoot,\n th: cells,\n thead,\n tr\n})\n\n/**\n * Macro for `</head>`, `</colgroup>`, and `</caption>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction headOrColgroupOrCaption(_, index, parent) {\n const next = siblingAfter(parent, index, true)\n return (\n !next ||\n (next.type !== 'comment' &&\n !(next.type === 'text' && whitespace(next.value.charAt(0))))\n )\n}\n\n/**\n * Whether to omit `</html>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction html(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</body>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction body(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</p>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction p(_, index, parent) {\n const next = siblingAfter(parent, index)\n return next\n ? next.type === 'element' &&\n (next.tagName === 'address' ||\n next.tagName === 'article' ||\n next.tagName === 'aside' ||\n next.tagName === 'blockquote' ||\n next.tagName === 'details' ||\n next.tagName === 'div' ||\n next.tagName === 'dl' ||\n next.tagName === 'fieldset' ||\n next.tagName === 'figcaption' ||\n next.tagName === 'figure' ||\n next.tagName === 'footer' ||\n next.tagName === 'form' ||\n next.tagName === 'h1' ||\n next.tagName === 'h2' ||\n next.tagName === 'h3' ||\n next.tagName === 'h4' ||\n next.tagName === 'h5' ||\n next.tagName === 'h6' ||\n next.tagName === 'header' ||\n next.tagName === 'hgroup' ||\n next.tagName === 'hr' ||\n next.tagName === 'main' ||\n next.tagName === 'menu' ||\n next.tagName === 'nav' ||\n next.tagName === 'ol' ||\n next.tagName === 'p' ||\n next.tagName === 'pre' ||\n next.tagName === 'section' ||\n next.tagName === 'table' ||\n next.tagName === 'ul')\n : !parent ||\n // Confusing parent.\n !(\n parent.type === 'element' &&\n (parent.tagName === 'a' ||\n parent.tagName === 'audio' ||\n parent.tagName === 'del' ||\n parent.tagName === 'ins' ||\n parent.tagName === 'map' ||\n parent.tagName === 'noscript' ||\n parent.tagName === 'video')\n )\n}\n\n/**\n * Whether to omit `</li>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction li(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || (next.type === 'element' && next.tagName === 'li')\n}\n\n/**\n * Whether to omit `</dt>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction dt(_, index, parent) {\n const next = siblingAfter(parent, index)\n return Boolean(\n next &&\n next.type === 'element' &&\n (next.tagName === 'dt' || next.tagName === 'dd')\n )\n}\n\n/**\n * Whether to omit `</dd>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction dd(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'dt' || next.tagName === 'dd'))\n )\n}\n\n/**\n * Whether to omit `</rt>` or `</rp>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction rubyElement(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'rp' || next.tagName === 'rt'))\n )\n}\n\n/**\n * Whether to omit `</optgroup>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction optgroup(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || (next.type === 'element' && next.tagName === 'optgroup')\n}\n\n/**\n * Whether to omit `</option>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction option(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'option' || next.tagName === 'optgroup'))\n )\n}\n\n/**\n * Whether to omit `</thead>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction thead(_, index, parent) {\n const next = siblingAfter(parent, index)\n return Boolean(\n next &&\n next.type === 'element' &&\n (next.tagName === 'tbody' || next.tagName === 'tfoot')\n )\n}\n\n/**\n * Whether to omit `</tbody>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tbody(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'tbody' || next.tagName === 'tfoot'))\n )\n}\n\n/**\n * Whether to omit `</tfoot>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tfoot(_, index, parent) {\n return !siblingAfter(parent, index)\n}\n\n/**\n * Whether to omit `</tr>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tr(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || (next.type === 'element' && next.tagName === 'tr')\n}\n\n/**\n * Whether to omit `</td>` or `</th>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction cells(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'td' || next.tagName === 'th'))\n )\n}\n","/**\n * @import {Element, Parents} from 'hast'\n */\n\nimport {whitespace} from 'hast-util-whitespace'\nimport {siblingAfter, siblingBefore} from './util/siblings.js'\nimport {closing} from './closing.js'\nimport {omission} from './omission.js'\n\nexport const opening = omission({\n body,\n colgroup,\n head,\n html,\n tbody\n})\n\n/**\n * Whether to omit `<html>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction html(node) {\n const head = siblingAfter(node, -1)\n return !head || head.type !== 'comment'\n}\n\n/**\n * Whether to omit `<head>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction head(node) {\n /** @type {Set<string>} */\n const seen = new Set()\n\n // Whether `srcdoc` or not,\n // make sure the content model at least doesn’t have too many `base`s/`title`s.\n for (const child of node.children) {\n if (\n child.type === 'element' &&\n (child.tagName === 'base' || child.tagName === 'title')\n ) {\n if (seen.has(child.tagName)) return false\n seen.add(child.tagName)\n }\n }\n\n // “May be omitted if the element is empty,\n // or if the first thing inside the head element is an element.”\n const child = node.children[0]\n return !child || child.type === 'element'\n}\n\n/**\n * Whether to omit `<body>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction body(node) {\n const head = siblingAfter(node, -1, true)\n\n return (\n !head ||\n (head.type !== 'comment' &&\n !(head.type === 'text' && whitespace(head.value.charAt(0))) &&\n !(\n head.type === 'element' &&\n (head.tagName === 'meta' ||\n head.tagName === 'link' ||\n head.tagName === 'script' ||\n head.tagName === 'style' ||\n head.tagName === 'template')\n ))\n )\n}\n\n/**\n * Whether to omit `<colgroup>`.\n * The spec describes some logic for the opening tag, but it’s easier to\n * implement in the closing tag, to the same effect, so we handle it there\n * instead.\n *\n * @param {Element} node\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction colgroup(node, index, parent) {\n const previous = siblingBefore(parent, index)\n const head = siblingAfter(node, -1, true)\n\n // Previous colgroup was already omitted.\n if (\n parent &&\n previous &&\n previous.type === 'element' &&\n previous.tagName === 'colgroup' &&\n closing(previous, parent.children.indexOf(previous), parent)\n ) {\n return false\n }\n\n return Boolean(head && head.type === 'element' && head.tagName === 'col')\n}\n\n/**\n * Whether to omit `<tbody>`.\n *\n * @param {Element} node\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction tbody(node, index, parent) {\n const previous = siblingBefore(parent, index)\n const head = siblingAfter(node, -1)\n\n // Previous table section was already omitted.\n if (\n parent &&\n previous &&\n previous.type === 'element' &&\n (previous.tagName === 'thead' || previous.tagName === 'tbody') &&\n closing(previous, parent.children.indexOf(previous), parent)\n ) {\n return false\n }\n\n return Boolean(head && head.type === 'element' && head.tagName === 'tr')\n}\n","/**\n * @import {Element, Parents, Properties} from 'hast'\n * @import {State} from '../index.js'\n */\n\nimport {ccount} from 'ccount'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {find, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringifyEntities} from 'stringify-entities'\nimport {closing} from '../omission/closing.js'\nimport {opening} from '../omission/opening.js'\n\n/**\n * Maps of subsets.\n *\n * Each value is a matrix of tuples.\n * The value at `0` causes parse errors, the value at `1` is valid.\n * Of both, the value at `0` is unsafe, and the value at `1` is safe.\n *\n * @type {Record<'double' | 'name' | 'single' | 'unquoted', Array<[Array<string>, Array<string>]>>}\n */\nconst constants = {\n // See: <https://html.spec.whatwg.org/#attribute-name-state>.\n name: [\n ['\\t\\n\\f\\r &/=>'.split(''), '\\t\\n\\f\\r \"&\\'/=>`'.split('')],\n ['\\0\\t\\n\\f\\r \"&\\'/<=>'.split(''), '\\0\\t\\n\\f\\r \"&\\'/<=>`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(unquoted)-state>.\n unquoted: [\n ['\\t\\n\\f\\r &>'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')],\n ['\\0\\t\\n\\f\\r \"&\\'<=>`'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(single-quoted)-state>.\n single: [\n [\"&'\".split(''), '\"&\\'`'.split('')],\n [\"\\0&'\".split(''), '\\0\"&\\'`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(double-quoted)-state>.\n double: [\n ['\"&'.split(''), '\"&\\'`'.split('')],\n ['\\0\"&'.split(''), '\\0\"&\\'`'.split('')]\n ]\n}\n\n/**\n * Serialize an element node.\n *\n * @param {Element} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function element(node, index, parent, state) {\n const schema = state.schema\n const omit = schema.space === 'svg' ? false : state.settings.omitOptionalTags\n let selfClosing =\n schema.space === 'svg'\n ? state.settings.closeEmptyElements\n : state.settings.voids.includes(node.tagName.toLowerCase())\n /** @type {Array<string>} */\n const parts = []\n /** @type {string} */\n let last\n\n if (schema.space === 'html' && node.tagName === 'svg') {\n state.schema = svg\n }\n\n const attributes = serializeAttributes(state, node.properties)\n\n const content = state.all(\n schema.space === 'html' && node.tagName === 'template' ? node.content : node\n )\n\n state.schema = schema\n\n // If the node is categorised as void, but it has children, remove the\n // categorisation.\n // This enables for example `menuitem`s, which are void in W3C HTML but not\n // void in WHATWG HTML, to be stringified properly.\n // Note: `menuitem` has since been removed from the HTML spec, and so is no\n // longer void.\n if (content) selfClosing = false\n\n if (attributes || !omit || !opening(node, index, parent)) {\n parts.push('<', node.tagName, attributes ? ' ' + attributes : '')\n\n if (\n selfClosing &&\n (schema.space === 'svg' || state.settings.closeSelfClosing)\n ) {\n last = attributes.charAt(attributes.length - 1)\n if (\n !state.settings.tightSelfClosing ||\n last === '/' ||\n (last && last !== '\"' && last !== \"'\")\n ) {\n parts.push(' ')\n }\n\n parts.push('/')\n }\n\n parts.push('>')\n }\n\n parts.push(content)\n\n if (!selfClosing && (!omit || !closing(node, index, parent))) {\n parts.push('</' + node.tagName + '>')\n }\n\n return parts.join('')\n}\n\n/**\n * @param {State} state\n * @param {Properties | null | undefined} properties\n * @returns {string}\n */\nfunction serializeAttributes(state, properties) {\n /** @type {Array<string>} */\n const values = []\n let index = -1\n /** @type {string} */\n let key\n\n if (properties) {\n for (key in properties) {\n if (properties[key] !== null && properties[key] !== undefined) {\n const value = serializeAttribute(state, key, properties[key])\n if (value) values.push(value)\n }\n }\n }\n\n while (++index < values.length) {\n const last = state.settings.tightAttributes\n ? values[index].charAt(values[index].length - 1)\n : undefined\n\n // In tight mode, don’t add a space after quoted attributes.\n if (index !== values.length - 1 && last !== '\"' && last !== \"'\") {\n values[index] += ' '\n }\n }\n\n return values.join('')\n}\n\n/**\n * @param {State} state\n * @param {string} key\n * @param {Properties[keyof Properties]} value\n * @returns {string}\n */\nfunction serializeAttribute(state, key, value) {\n const info = find(state.schema, key)\n const x =\n state.settings.allowParseErrors && state.schema.space === 'html' ? 0 : 1\n const y = state.settings.allowDangerousCharacters ? 0 : 1\n let quote = state.quote\n /** @type {string | undefined} */\n let result\n\n if (info.overloadedBoolean && (value === info.attribute || value === '')) {\n value = true\n } else if (\n (info.boolean || info.overloadedBoolean) &&\n (typeof value !== 'string' || value === info.attribute || value === '')\n ) {\n value = Boolean(value)\n }\n\n if (\n value === null ||\n value === undefined ||\n value === false ||\n (typeof value === 'number' && Number.isNaN(value))\n ) {\n return ''\n }\n\n const name = stringifyEntities(\n info.attribute,\n Object.assign({}, state.settings.characterReferences, {\n // Always encode without parse errors in non-HTML.\n subset: constants.name[x][y]\n })\n )\n\n // No value.\n // There is currently only one boolean property in SVG: `[download]` on\n // `<a>`.\n // This property does not seem to work in browsers (Firefox, Safari, Chrome),\n // so I can’t test if dropping the value works.\n // But I assume that it should:\n //\n // ```html\n // <!doctype html>\n // <svg viewBox=\"0 0 100 100\">\n // <a href=https://example.com download>\n // <circle cx=50 cy=40 r=35 />\n // </a>\n // </svg>\n // ```\n //\n // See: <https://github.com/wooorm/property-information/blob/main/lib/svg.js>\n if (value === true) return name\n\n // `spaces` doesn’t accept a second argument, but it’s given here just to\n // keep the code cleaner.\n value = Array.isArray(value)\n ? (info.commaSeparated ? commas : spaces)(value, {\n padLeft: !state.settings.tightCommaSeparatedLists\n })\n : String(value)\n\n if (state.settings.collapseEmptyAttributes && !value) return name\n\n // Check unquoted value.\n if (state.settings.preferUnquoted) {\n result = stringifyEntities(\n value,\n Object.assign({}, state.settings.characterReferences, {\n attribute: true,\n subset: constants.unquoted[x][y]\n })\n )\n }\n\n // If we don’t want unquoted, or if `value` contains character references when\n // unquoted…\n if (result !== value) {\n // If the alternative is less common than `quote`, switch.\n if (\n state.settings.quoteSmart &&\n ccount(value, quote) > ccount(value, state.alternative)\n ) {\n quote = state.alternative\n }\n\n result =\n quote +\n stringifyEntities(\n value,\n Object.assign({}, state.settings.characterReferences, {\n // Always encode without parse errors in non-HTML.\n subset: (quote === \"'\" ? constants.single : constants.double)[x][y],\n attribute: true\n })\n ) +\n quote\n }\n\n // Don’t add a `=` for unquoted empties.\n return name + (result ? '=' + result : result)\n}\n","/**\n * @import {Parents, Text} from 'hast'\n * @import {Raw} from 'mdast-util-to-hast'\n * @import {State} from '../index.js'\n */\n\nimport {stringifyEntities} from 'stringify-entities'\n\n// Declare array as variable so it can be cached by `stringifyEntities`\nconst textEntitySubset = ['<', '&']\n\n/**\n * Serialize a text node.\n *\n * @param {Raw | Text} node\n * Node to handle.\n * @param {number | undefined} _\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function text(node, _, parent, state) {\n // Check if content of `node` should be escaped.\n return parent &&\n parent.type === 'element' &&\n (parent.tagName === 'script' || parent.tagName === 'style')\n ? node.value\n : stringifyEntities(\n node.value,\n Object.assign({}, state.settings.characterReferences, {\n subset: textEntitySubset\n })\n )\n}\n","/**\n * @import {Parents} from 'hast'\n * @import {Raw} from 'mdast-util-to-hast'\n * @import {State} from '../index.js'\n */\n\nimport {text} from './text.js'\n\n/**\n * Serialize a raw node.\n *\n * @param {Raw} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function raw(node, index, parent, state) {\n return state.settings.allowDangerousHtml\n ? node.value\n : text(node, index, parent, state)\n}\n","/**\n * @import {Parents, Root} from 'hast'\n * @import {State} from '../index.js'\n */\n\n/**\n * Serialize a root.\n *\n * @param {Root} node\n * Node to handle.\n * @param {number | undefined} _1\n * Index of `node` in `parent.\n * @param {Parents | undefined} _2\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function root(node, _1, _2, state) {\n return state.all(node)\n}\n","/**\n * @import {Nodes, Parents} from 'hast'\n * @import {State} from '../index.js'\n */\n\nimport {zwitch} from 'zwitch'\nimport {comment} from './comment.js'\nimport {doctype} from './doctype.js'\nimport {element} from './element.js'\nimport {raw} from './raw.js'\nimport {root} from './root.js'\nimport {text} from './text.js'\n\n/**\n * @type {(node: Nodes, index: number | undefined, parent: Parents | undefined, state: State) => string}\n */\nexport const handle = zwitch('type', {\n invalid,\n unknown,\n handlers: {comment, doctype, element, raw, root, text}\n})\n\n/**\n * Fail when a non-node is found in the tree.\n *\n * @param {unknown} node\n * Unknown value.\n * @returns {never}\n * Never.\n */\nfunction invalid(node) {\n throw new Error('Expected node, not `' + node + '`')\n}\n\n/**\n * Fail when a node with an unknown type is found in the tree.\n *\n * @param {unknown} node_\n * Unknown node.\n * @returns {never}\n * Never.\n */\nfunction unknown(node_) {\n // `type` is guaranteed by runtime JS.\n const node = /** @type {Nodes} */ (node_)\n throw new Error('Cannot compile unknown node `' + node.type + '`')\n}\n","/**\n * @import {Nodes, Parents, RootContent} from 'hast'\n * @import {Schema} from 'property-information'\n * @import {Options as StringifyEntitiesOptions} from 'stringify-entities'\n */\n\n/**\n * @typedef {Omit<StringifyEntitiesOptions, 'attribute' | 'escapeOnly' | 'subset'>} CharacterReferences\n *\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [allowDangerousCharacters=false]\n * Do not encode some characters which cause XSS vulnerabilities in older\n * browsers (default: `false`).\n *\n * > ⚠️ **Danger**: only set this if you completely trust the content.\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Allow `raw` nodes and insert them as raw HTML (default: `false`).\n *\n * When `false`, `Raw` nodes are encoded.\n *\n * > ⚠️ **Danger**: only set this if you completely trust the content.\n * @property {boolean | null | undefined} [allowParseErrors=false]\n * Do not encode characters which cause parse errors (even though they work),\n * to save bytes (default: `false`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {boolean | null | undefined} [bogusComments=false]\n * Use “bogus comments” instead of comments to save byes: `<?charlie>`\n * instead of `<!--charlie-->` (default: `false`).\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {CharacterReferences | null | undefined} [characterReferences]\n * Configure how to serialize character references (optional).\n * @property {boolean | null | undefined} [closeEmptyElements=false]\n * Close SVG elements without any content with slash (`/`) on the opening tag\n * instead of an end tag: `<circle />` instead of `<circle></circle>`\n * (default: `false`).\n *\n * See `tightSelfClosing` to control whether a space is used before the\n * slash.\n *\n * Not used in the HTML space.\n * @property {boolean | null | undefined} [closeSelfClosing=false]\n * Close self-closing nodes with an extra slash (`/`): `<img />` instead of\n * `<img>` (default: `false`).\n *\n * See `tightSelfClosing` to control whether a space is used before the\n * slash.\n *\n * Not used in the SVG space.\n * @property {boolean | null | undefined} [collapseEmptyAttributes=false]\n * Collapse empty attributes: get `class` instead of `class=\"\"` (default:\n * `false`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: boolean attributes (such as `hidden`) are always collapsed.\n * @property {boolean | null | undefined} [omitOptionalTags=false]\n * Omit optional opening and closing tags (default: `false`).\n *\n * For example, in `<ol><li>one</li><li>two</li></ol>`, both `</li>` closing\n * tags can be omitted.\n * The first because it’s followed by another `li`, the last because it’s\n * followed by nothing.\n *\n * Not used in the SVG space.\n * @property {boolean | null | undefined} [preferUnquoted=false]\n * Leave attributes unquoted if that results in less bytes (default: `false`).\n *\n * Not used in the SVG space.\n * @property {boolean | null | undefined} [quoteSmart=false]\n * Use the other quote if that results in less bytes (default: `false`).\n * @property {Quote | null | undefined} [quote='\"']\n * Preferred quote to use (default: `'\"'`).\n * @property {Space | null | undefined} [space='html']\n * When an `<svg>` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it (default: `'html'`).\n *\n * > 👉 **Note**: hast is not XML.\n * > It supports SVG as embedded in HTML.\n * > It does not support the features available in XML.\n * > Passing SVG might break but fragments of modern SVG should be fine.\n * > Use [`xast`][xast] if you need to support SVG as XML.\n * @property {boolean | null | undefined} [tightAttributes=false]\n * Join attributes together, without whitespace, if possible: get\n * `class=\"a b\"title=\"c d\"` instead of `class=\"a b\" title=\"c d\"` to save\n * bytes (default: `false`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {boolean | null | undefined} [tightCommaSeparatedLists=false]\n * Join known comma-separated attribute values with just a comma (`,`),\n * instead of padding them on the right as well (`,␠`, where `␠` represents a\n * space) (default: `false`).\n * @property {boolean | null | undefined} [tightDoctype=false]\n * Drop unneeded spaces in doctypes: `<!doctypehtml>` instead of\n * `<!doctype html>` to save bytes (default: `false`).\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {boolean | null | undefined} [tightSelfClosing=false]\n * Do not use an extra space when closing self-closing elements: `<img/>`\n * instead of `<img />` (default: `false`).\n *\n * > 👉 **Note**: only used if `closeSelfClosing: true` or\n * > `closeEmptyElements: true`.\n * @property {boolean | null | undefined} [upperDoctype=false]\n * Use a `<!DOCTYPE…` instead of `<!doctype…` (default: `false`).\n *\n * Useless except for XHTML.\n * @property {ReadonlyArray<string> | null | undefined} [voids]\n * Tag names of elements to serialize without closing tag (default: `html-void-elements`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass this, because\n * > hast is not for XML, and HTML will not add more void elements.\n *\n * @typedef {'\"' | \"'\"} Quote\n * HTML quotes for attribute values.\n *\n * @typedef {Omit<Required<{[key in keyof Options]: Exclude<Options[key], null | undefined>}>, 'space' | 'quote'>} Settings\n *\n * @typedef {'html' | 'svg'} Space\n * Namespace.\n *\n * @typedef State\n * Info passed around about the current state.\n * @property {(node: Parents | undefined) => string} all\n * Serialize the children of a parent node.\n * @property {Quote} alternative\n * Alternative quote.\n * @property {(node: Nodes, index: number | undefined, parent: Parents | undefined) => string} one\n * Serialize one node.\n * @property {Quote} quote\n * Preferred quote.\n * @property {Schema} schema\n * Current schema.\n * @property {Settings} settings\n * User configuration.\n */\n\nimport {htmlVoidElements} from 'html-void-elements'\nimport {html, svg} from 'property-information'\nimport {handle} from './handle/index.js'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/** @type {CharacterReferences} */\nconst emptyCharacterReferences = {}\n\n/** @type {Array<never>} */\nconst emptyChildren = []\n\n/**\n * Serialize hast as HTML.\n *\n * @param {Array<RootContent> | Nodes} tree\n * Tree to serialize.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized HTML.\n */\nexport function toHtml(tree, options) {\n const options_ = options || emptyOptions\n const quote = options_.quote || '\"'\n const alternative = quote === '\"' ? \"'\" : '\"'\n\n if (quote !== '\"' && quote !== \"'\") {\n throw new Error('Invalid quote `' + quote + '`, expected `\\'` or `\"`')\n }\n\n /** @type {State} */\n const state = {\n one,\n all,\n settings: {\n omitOptionalTags: options_.omitOptionalTags || false,\n allowParseErrors: options_.allowParseErrors || false,\n allowDangerousCharacters: options_.allowDangerousCharacters || false,\n quoteSmart: options_.quoteSmart || false,\n preferUnquoted: options_.preferUnquoted || false,\n tightAttributes: options_.tightAttributes || false,\n upperDoctype: options_.upperDoctype || false,\n tightDoctype: options_.tightDoctype || false,\n bogusComments: options_.bogusComments || false,\n tightCommaSeparatedLists: options_.tightCommaSeparatedLists || false,\n tightSelfClosing: options_.tightSelfClosing || false,\n collapseEmptyAttributes: options_.collapseEmptyAttributes || false,\n allowDangerousHtml: options_.allowDangerousHtml || false,\n voids: options_.voids || htmlVoidElements,\n characterReferences:\n options_.characterReferences || emptyCharacterReferences,\n closeSelfClosing: options_.closeSelfClosing || false,\n closeEmptyElements: options_.closeEmptyElements || false\n },\n schema: options_.space === 'svg' ? svg : html,\n quote,\n alternative\n }\n\n return state.one(\n Array.isArray(tree) ? {type: 'root', children: tree} : tree,\n undefined,\n undefined\n )\n}\n\n/**\n * Serialize a node.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Nodes} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {string}\n * Serialized node.\n */\nfunction one(node, index, parent) {\n return handle(node, index, parent, this)\n}\n\n/**\n * Serialize all children of `parent`.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Parents | undefined} parent\n * Parent whose children to serialize.\n * @returns {string}\n */\nexport function all(parent) {\n /** @type {Array<string>} */\n const results = []\n const children = (parent && parent.children) || emptyChildren\n let index = -1\n\n while (++index < children.length) {\n results[index] = this.one(children[index], index, parent)\n }\n\n return results.join('')\n}\n","import { ShikiError as ShikiError$1 } from \"@shikijs/types\";\nimport { ShikiError, applyColorReplacements, codeToTokensBase as codeToTokensBase$1, codeToTokensWithThemes, codeToTokensWithThemes as codeToTokensWithThemes$1, createShikiInternal, createShikiInternalSync, createShikiPrimitive, createShikiPrimitive as createShikiPrimitive$1, createShikiPrimitiveAsync, createShikiPrimitiveAsync as createShikiPrimitiveAsync$1, getLastGrammarState, getLastGrammarStateFromMap, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, normalizeGetter, normalizeTheme, resolveColorReplacements, setLastGrammarStateToMap, splitLines, splitLines as splitLines$1, toArray, tokenizeWithTheme } from \"@shikijs/primitive\";\nimport { FontStyle } from \"@shikijs/vscode-textmate\";\nimport { toHtml } from \"hast-util-to-html\";\n\nexport * from \"@shikijs/types\"\n\n//#region src/utils/hast.ts\n/**\n* Utility to append class to a hast node\n*\n* If the `property.class` is a string, it will be splitted by space and converted to an array.\n*/\nfunction addClassToHast(node, className) {\n\tif (!className) return node;\n\tnode.properties ||= {};\n\tnode.properties.class ||= [];\n\tif (typeof node.properties.class === \"string\") node.properties.class = node.properties.class.split(/\\s+/g);\n\tif (!Array.isArray(node.properties.class)) node.properties.class = [];\n\tconst targets = Array.isArray(className) ? className : className.split(/\\s+/g);\n\tfor (const c of targets) if (c && !node.properties.class.includes(c)) node.properties.class.push(c);\n\treturn node;\n}\n\n//#endregion\n//#region src/utils/strings.ts\n/**\n* Creates a converter between index and position in a code block.\n*\n* Overflow/underflow are unchecked.\n*/\nfunction createPositionConverter(code) {\n\tconst lines = splitLines$1(code, true).map(([line]) => line);\n\tfunction indexToPos(index) {\n\t\tif (index === code.length) return {\n\t\t\tline: lines.length - 1,\n\t\t\tcharacter: lines[lines.length - 1].length\n\t\t};\n\t\tlet character = index;\n\t\tlet line = 0;\n\t\tfor (const lineText of lines) {\n\t\t\tif (character < lineText.length) break;\n\t\t\tcharacter -= lineText.length;\n\t\t\tline++;\n\t\t}\n\t\treturn {\n\t\t\tline,\n\t\t\tcharacter\n\t\t};\n\t}\n\tfunction posToIndex(line, character) {\n\t\tlet index = 0;\n\t\tfor (let i = 0; i < line; i++) index += lines[i].length;\n\t\tindex += character;\n\t\treturn index;\n\t}\n\treturn {\n\t\tlines,\n\t\tindexToPos,\n\t\tposToIndex\n\t};\n}\n/**\n* Guess embedded languages from given code and highlighter.\n*\n* When highlighter is provided, only bundled languages will be included.\n*\n* @param code - The code string to analyze\n* @param _lang - The primary language of the code (currently unused)\n* @param highlighter - Optional highlighter instance to validate languages\n* @returns Array of detected language identifiers\n*\n* @example\n* ```ts\n* // Detects 'javascript' from Vue SFC\n* guessEmbeddedLanguages('<script lang=\"javascript\">')\n*\n* // Detects 'python' from markdown code block\n* guessEmbeddedLanguages('```python\\nprint(\"hi\")\\n```')\n* ```\n*/\nfunction guessEmbeddedLanguages(code, _lang, highlighter) {\n\tconst langs = /* @__PURE__ */ new Set();\n\tfor (const match of code.matchAll(/:?lang=[\"']([^\"']+)[\"']/g)) {\n\t\tconst lang = match[1].toLowerCase().trim();\n\t\tif (lang) langs.add(lang);\n\t}\n\tfor (const match of code.matchAll(/(?:```|~~~)([\\w-]+)/g)) {\n\t\tconst lang = match[1].toLowerCase().trim();\n\t\tif (lang) langs.add(lang);\n\t}\n\tfor (const match of code.matchAll(/\\\\begin\\{([\\w-]+)\\}/g)) {\n\t\tconst lang = match[1].toLowerCase().trim();\n\t\tif (lang) langs.add(lang);\n\t}\n\tfor (const match of code.matchAll(/<script\\s+(?:type|lang)=[\"']([^\"']+)[\"']/gi)) {\n\t\tconst fullType = match[1].toLowerCase().trim();\n\t\tconst lang = fullType.includes(\"/\") ? fullType.split(\"/\").pop() : fullType;\n\t\tif (lang) langs.add(lang);\n\t}\n\tif (!highlighter) return Array.from(langs);\n\tconst bundle = highlighter.getBundledLanguages();\n\treturn Array.from(langs).filter((l) => l && bundle[l]);\n}\n\n//#endregion\n//#region src/utils/constants.ts\nconst DEFAULT_COLOR_LIGHT_DARK = \"light-dark()\";\nconst COLOR_KEYS = [\"color\", \"background-color\"];\n\n//#endregion\n//#region src/utils/tokens.ts\n/**\n* Split a token into multiple tokens by given offsets.\n*\n* The offsets are relative to the token, and should be sorted.\n*/\nfunction splitToken(token, offsets) {\n\tlet lastOffset = 0;\n\tconst tokens = [];\n\tfor (const offset of offsets) {\n\t\tif (offset > lastOffset) tokens.push({\n\t\t\t...token,\n\t\t\tcontent: token.content.slice(lastOffset, offset),\n\t\t\toffset: token.offset + lastOffset\n\t\t});\n\t\tlastOffset = offset;\n\t}\n\tif (lastOffset < token.content.length) tokens.push({\n\t\t...token,\n\t\tcontent: token.content.slice(lastOffset),\n\t\toffset: token.offset + lastOffset\n\t});\n\treturn tokens;\n}\n/**\n* Split 2D tokens array by given breakpoints.\n*/\nfunction splitTokens(tokens, breakpoints) {\n\tconst sorted = Array.from(breakpoints instanceof Set ? breakpoints : new Set(breakpoints)).sort((a, b) => a - b);\n\tif (!sorted.length) return tokens;\n\treturn tokens.map((line) => {\n\t\treturn line.flatMap((token) => {\n\t\t\tconst breakpointsInToken = sorted.filter((i) => token.offset < i && i < token.offset + token.content.length).map((i) => i - token.offset).sort((a, b) => a - b);\n\t\t\tif (!breakpointsInToken.length) return token;\n\t\t\treturn splitToken(token, breakpointsInToken);\n\t\t});\n\t});\n}\nfunction flatTokenVariants(merged, variantsOrder, cssVariablePrefix, defaultColor, colorsRendering = \"css-vars\") {\n\tconst token = {\n\t\tcontent: merged.content,\n\t\texplanation: merged.explanation,\n\t\toffset: merged.offset\n\t};\n\tconst styles = variantsOrder.map((t) => getTokenStyleObject(merged.variants[t]));\n\tconst styleKeys = new Set(styles.flatMap((t) => Object.keys(t)));\n\tconst mergedStyles = {};\n\tconst varKey = (idx, key) => {\n\t\tconst keyName = key === \"color\" ? \"\" : key === \"background-color\" ? \"-bg\" : `-${key}`;\n\t\treturn cssVariablePrefix + variantsOrder[idx] + (key === \"color\" ? \"\" : keyName);\n\t};\n\tstyles.forEach((cur, idx) => {\n\t\tfor (const key of styleKeys) {\n\t\t\tconst value = cur[key] || \"inherit\";\n\t\t\tif (idx === 0 && defaultColor && COLOR_KEYS.includes(key)) if (defaultColor === DEFAULT_COLOR_LIGHT_DARK && styles.length > 1) {\n\t\t\t\tconst lightIndex = variantsOrder.findIndex((t) => t === \"light\");\n\t\t\t\tconst darkIndex = variantsOrder.findIndex((t) => t === \"dark\");\n\t\t\t\tif (lightIndex === -1 || darkIndex === -1) throw new ShikiError$1(\"When using `defaultColor: \\\"light-dark()\\\"`, you must provide both `light` and `dark` themes\");\n\t\t\t\tmergedStyles[key] = `light-dark(${styles[lightIndex][key] || \"inherit\"}, ${styles[darkIndex][key] || \"inherit\"})`;\n\t\t\t\tif (colorsRendering === \"css-vars\") mergedStyles[varKey(idx, key)] = value;\n\t\t\t} else mergedStyles[key] = value;\n\t\t\telse if (colorsRendering === \"css-vars\") mergedStyles[varKey(idx, key)] = value;\n\t\t}\n\t});\n\ttoken.htmlStyle = mergedStyles;\n\treturn token;\n}\nfunction getTokenStyleObject(token) {\n\tconst styles = {};\n\tif (token.color) styles.color = token.color;\n\tif (token.bgColor) styles[\"background-color\"] = token.bgColor;\n\tif (token.fontStyle) {\n\t\tif (token.fontStyle & FontStyle.Italic) styles[\"font-style\"] = \"italic\";\n\t\tif (token.fontStyle & FontStyle.Bold) styles[\"font-weight\"] = \"bold\";\n\t\tconst decorations = [];\n\t\tif (token.fontStyle & FontStyle.Underline) decorations.push(\"underline\");\n\t\tif (token.fontStyle & FontStyle.Strikethrough) decorations.push(\"line-through\");\n\t\tif (decorations.length) styles[\"text-decoration\"] = decorations.join(\" \");\n\t}\n\treturn styles;\n}\nfunction stringifyTokenStyle(token) {\n\tif (typeof token === \"string\") return token;\n\treturn Object.entries(token).map(([key, value]) => `${key}:${value}`).join(\";\");\n}\n\n//#endregion\n//#region src/transformer-decorations.ts\n/**\n* A built-in transformer to add decorations to the highlighted code.\n*/\nfunction transformerDecorations() {\n\tconst map = /* @__PURE__ */ new WeakMap();\n\tfunction getContext(shiki) {\n\t\tif (!map.has(shiki.meta)) {\n\t\t\tconst converter = createPositionConverter(shiki.source);\n\t\t\tfunction normalizePosition(p) {\n\t\t\t\tif (typeof p === \"number\") {\n\t\t\t\t\tif (p < 0 || p > shiki.source.length) throw new ShikiError$1(`Invalid decoration offset: ${p}. Code length: ${shiki.source.length}`);\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...converter.indexToPos(p),\n\t\t\t\t\t\toffset: p\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tconst line = converter.lines[p.line];\n\t\t\t\t\tif (line === void 0) throw new ShikiError$1(`Invalid decoration position ${JSON.stringify(p)}. Lines length: ${converter.lines.length}`);\n\t\t\t\t\tlet character = p.character;\n\t\t\t\t\tif (character < 0) character = line.length + character;\n\t\t\t\t\tif (character < 0 || character > line.length) throw new ShikiError$1(`Invalid decoration position ${JSON.stringify(p)}. Line ${p.line} length: ${line.length}`);\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...p,\n\t\t\t\t\t\tcharacter,\n\t\t\t\t\t\toffset: converter.posToIndex(p.line, character)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst decorations = (shiki.options.decorations || []).map((d) => ({\n\t\t\t\t...d,\n\t\t\t\tstart: normalizePosition(d.start),\n\t\t\t\tend: normalizePosition(d.end)\n\t\t\t}));\n\t\t\tverifyIntersections(decorations);\n\t\t\tmap.set(shiki.meta, {\n\t\t\t\tdecorations,\n\t\t\t\tconverter,\n\t\t\t\tsource: shiki.source\n\t\t\t});\n\t\t}\n\t\treturn map.get(shiki.meta);\n\t}\n\treturn {\n\t\tname: \"shiki:decorations\",\n\t\ttokens(tokens) {\n\t\t\tif (!this.options.decorations?.length) return;\n\t\t\treturn splitTokens(tokens, getContext(this).decorations.flatMap((d) => [d.start.offset, d.end.offset]));\n\t\t},\n\t\tcode(codeEl) {\n\t\t\tif (!this.options.decorations?.length) return;\n\t\t\tconst ctx = getContext(this);\n\t\t\tconst lines = Array.from(codeEl.children).filter((i) => i.type === \"element\" && i.tagName === \"span\");\n\t\t\tif (lines.length !== ctx.converter.lines.length) throw new ShikiError$1(`Number of lines in code element (${lines.length}) does not match the number of lines in the source (${ctx.converter.lines.length}). Failed to apply decorations.`);\n\t\t\tfunction applyLineSection(line, start, end, decoration) {\n\t\t\t\tconst lineEl = lines[line];\n\t\t\t\tlet text = \"\";\n\t\t\t\tlet startIndex = -1;\n\t\t\t\tlet endIndex = -1;\n\t\t\t\tif (start === 0) startIndex = 0;\n\t\t\t\tif (end === 0) endIndex = 0;\n\t\t\t\tif (end === Number.POSITIVE_INFINITY) endIndex = lineEl.children.length;\n\t\t\t\tif (startIndex === -1 || endIndex === -1) for (let i = 0; i < lineEl.children.length; i++) {\n\t\t\t\t\ttext += stringify(lineEl.children[i]);\n\t\t\t\t\tif (startIndex === -1 && text.length === start) startIndex = i + 1;\n\t\t\t\t\tif (endIndex === -1 && text.length === end) endIndex = i + 1;\n\t\t\t\t}\n\t\t\t\tif (startIndex === -1) throw new ShikiError$1(`Failed to find start index for decoration ${JSON.stringify(decoration.start)}`);\n\t\t\t\tif (endIndex === -1) throw new ShikiError$1(`Failed to find end index for decoration ${JSON.stringify(decoration.end)}`);\n\t\t\t\tconst children = lineEl.children.slice(startIndex, endIndex);\n\t\t\t\tif (!decoration.alwaysWrap && children.length === lineEl.children.length) applyDecoration(lineEl, decoration, \"line\");\n\t\t\t\telse if (!decoration.alwaysWrap && children.length === 1 && children[0].type === \"element\") applyDecoration(children[0], decoration, \"token\");\n\t\t\t\telse {\n\t\t\t\t\tconst wrapper = {\n\t\t\t\t\t\ttype: \"element\",\n\t\t\t\t\t\ttagName: \"span\",\n\t\t\t\t\t\tproperties: {},\n\t\t\t\t\t\tchildren\n\t\t\t\t\t};\n\t\t\t\t\tapplyDecoration(wrapper, decoration, \"wrapper\");\n\t\t\t\t\tlineEl.children.splice(startIndex, children.length, wrapper);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction applyLine(line, decoration) {\n\t\t\t\tlines[line] = applyDecoration(lines[line], decoration, \"line\");\n\t\t\t}\n\t\t\tfunction applyDecoration(el, decoration, type) {\n\t\t\t\tconst properties = decoration.properties || {};\n\t\t\t\tconst transform = decoration.transform || ((i) => i);\n\t\t\t\tel.tagName = decoration.tagName || \"span\";\n\t\t\t\tel.properties = {\n\t\t\t\t\t...el.properties,\n\t\t\t\t\t...properties,\n\t\t\t\t\tclass: el.properties.class\n\t\t\t\t};\n\t\t\t\tif (decoration.properties?.class) addClassToHast(el, decoration.properties.class);\n\t\t\t\tel = transform(el, type) || el;\n\t\t\t\treturn el;\n\t\t\t}\n\t\t\tconst lineApplies = [];\n\t\t\tconst sorted = ctx.decorations.sort((a, b) => b.start.offset - a.start.offset || a.end.offset - b.end.offset);\n\t\t\tfor (const decoration of sorted) {\n\t\t\t\tconst { start, end } = decoration;\n\t\t\t\tif (start.line === end.line) applyLineSection(start.line, start.character, end.character, decoration);\n\t\t\t\telse if (start.line < end.line) {\n\t\t\t\t\tapplyLineSection(start.line, start.character, Number.POSITIVE_INFINITY, decoration);\n\t\t\t\t\tfor (let i = start.line + 1; i < end.line; i++) lineApplies.unshift(() => applyLine(i, decoration));\n\t\t\t\t\tapplyLineSection(end.line, 0, end.character, decoration);\n\t\t\t\t}\n\t\t\t}\n\t\t\tlineApplies.forEach((i) => i());\n\t\t}\n\t};\n}\nfunction verifyIntersections(items) {\n\tfor (let i = 0; i < items.length; i++) {\n\t\tconst foo = items[i];\n\t\tif (foo.start.offset > foo.end.offset) throw new ShikiError$1(`Invalid decoration range: ${JSON.stringify(foo.start)} - ${JSON.stringify(foo.end)}`);\n\t\tfor (let j = i + 1; j < items.length; j++) {\n\t\t\tconst bar = items[j];\n\t\t\tconst isFooHasBarStart = foo.start.offset <= bar.start.offset && bar.start.offset < foo.end.offset;\n\t\t\tconst isFooHasBarEnd = foo.start.offset < bar.end.offset && bar.end.offset <= foo.end.offset;\n\t\t\tconst isBarHasFooStart = bar.start.offset <= foo.start.offset && foo.start.offset < bar.end.offset;\n\t\t\tconst isBarHasFooEnd = bar.start.offset < foo.end.offset && foo.end.offset <= bar.end.offset;\n\t\t\tif (isFooHasBarStart || isFooHasBarEnd || isBarHasFooStart || isBarHasFooEnd) {\n\t\t\t\tif (isFooHasBarStart && isFooHasBarEnd) continue;\n\t\t\t\tif (isBarHasFooStart && isBarHasFooEnd) continue;\n\t\t\t\tif (isBarHasFooStart && foo.start.offset === foo.end.offset) continue;\n\t\t\t\tif (isFooHasBarEnd && bar.start.offset === bar.end.offset) continue;\n\t\t\t\tthrow new ShikiError$1(`Decorations ${JSON.stringify(foo.start)} and ${JSON.stringify(bar.start)} intersect.`);\n\t\t\t}\n\t\t}\n\t}\n}\nfunction stringify(el) {\n\tif (el.type === \"text\") return el.value;\n\tif (el.type === \"element\") return el.children.map(stringify).join(\"\");\n\treturn \"\";\n}\n\n//#endregion\n//#region src/highlight/_get-transformers.ts\nconst builtInTransformers = [/* @__PURE__ */ transformerDecorations()];\nfunction getTransformers(options) {\n\tconst transformers = sortTransformersByEnforcement(options.transformers || []);\n\treturn [\n\t\t...transformers.pre,\n\t\t...transformers.normal,\n\t\t...transformers.post,\n\t\t...builtInTransformers\n\t];\n}\nfunction sortTransformersByEnforcement(transformers) {\n\tconst pre = [];\n\tconst post = [];\n\tconst normal = [];\n\tfor (const transformer of transformers) switch (transformer.enforce) {\n\t\tcase \"pre\":\n\t\t\tpre.push(transformer);\n\t\t\tbreak;\n\t\tcase \"post\":\n\t\t\tpost.push(transformer);\n\t\t\tbreak;\n\t\tdefault: normal.push(transformer);\n\t}\n\treturn {\n\t\tpre,\n\t\tpost,\n\t\tnormal\n\t};\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/ansi-sequence-parser@1.1.3/node_modules/ansi-sequence-parser/dist/index.js\nvar namedColors = [\n\t\"black\",\n\t\"red\",\n\t\"green\",\n\t\"yellow\",\n\t\"blue\",\n\t\"magenta\",\n\t\"cyan\",\n\t\"white\",\n\t\"brightBlack\",\n\t\"brightRed\",\n\t\"brightGreen\",\n\t\"brightYellow\",\n\t\"brightBlue\",\n\t\"brightMagenta\",\n\t\"brightCyan\",\n\t\"brightWhite\"\n];\nvar decorations = {\n\t1: \"bold\",\n\t2: \"dim\",\n\t3: \"italic\",\n\t4: \"underline\",\n\t7: \"reverse\",\n\t8: \"hidden\",\n\t9: \"strikethrough\"\n};\nfunction findSequence(value, position) {\n\tconst nextEscape = value.indexOf(\"\\x1B\", position);\n\tif (nextEscape !== -1) {\n\t\tif (value[nextEscape + 1] === \"[\") {\n\t\t\tconst nextClose = value.indexOf(\"m\", nextEscape);\n\t\t\tif (nextClose !== -1) return {\n\t\t\t\tsequence: value.substring(nextEscape + 2, nextClose).split(\";\"),\n\t\t\t\tstartPosition: nextEscape,\n\t\t\t\tposition: nextClose + 1\n\t\t\t};\n\t\t}\n\t}\n\treturn { position: value.length };\n}\nfunction parseColor(sequence) {\n\tconst colorMode = sequence.shift();\n\tif (colorMode === \"2\") {\n\t\tconst rgb = sequence.splice(0, 3).map((x) => Number.parseInt(x));\n\t\tif (rgb.length !== 3 || rgb.some((x) => Number.isNaN(x))) return;\n\t\treturn {\n\t\t\ttype: \"rgb\",\n\t\t\trgb\n\t\t};\n\t} else if (colorMode === \"5\") {\n\t\tconst index = sequence.shift();\n\t\tif (index) return {\n\t\t\ttype: \"table\",\n\t\t\tindex: Number(index)\n\t\t};\n\t}\n}\nfunction parseSequence(sequence) {\n\tconst commands = [];\n\twhile (sequence.length > 0) {\n\t\tconst code = sequence.shift();\n\t\tif (!code) continue;\n\t\tconst codeInt = Number.parseInt(code);\n\t\tif (Number.isNaN(codeInt)) continue;\n\t\tif (codeInt === 0) commands.push({ type: \"resetAll\" });\n\t\telse if (codeInt <= 9) {\n\t\t\tif (decorations[codeInt]) commands.push({\n\t\t\t\ttype: \"setDecoration\",\n\t\t\t\tvalue: decorations[codeInt]\n\t\t\t});\n\t\t} else if (codeInt <= 29) {\n\t\t\tconst decoration = decorations[codeInt - 20];\n\t\t\tif (decoration) {\n\t\t\t\tcommands.push({\n\t\t\t\t\ttype: \"resetDecoration\",\n\t\t\t\t\tvalue: decoration\n\t\t\t\t});\n\t\t\t\tif (decoration === \"dim\") commands.push({\n\t\t\t\t\ttype: \"resetDecoration\",\n\t\t\t\t\tvalue: \"bold\"\n\t\t\t\t});\n\t\t\t}\n\t\t} else if (codeInt <= 37) commands.push({\n\t\t\ttype: \"setForegroundColor\",\n\t\t\tvalue: {\n\t\t\t\ttype: \"named\",\n\t\t\t\tname: namedColors[codeInt - 30]\n\t\t\t}\n\t\t});\n\t\telse if (codeInt === 38) {\n\t\t\tconst color = parseColor(sequence);\n\t\t\tif (color) commands.push({\n\t\t\t\ttype: \"setForegroundColor\",\n\t\t\t\tvalue: color\n\t\t\t});\n\t\t} else if (codeInt === 39) commands.push({ type: \"resetForegroundColor\" });\n\t\telse if (codeInt <= 47) commands.push({\n\t\t\ttype: \"setBackgroundColor\",\n\t\t\tvalue: {\n\t\t\t\ttype: \"named\",\n\t\t\t\tname: namedColors[codeInt - 40]\n\t\t\t}\n\t\t});\n\t\telse if (codeInt === 48) {\n\t\t\tconst color = parseColor(sequence);\n\t\t\tif (color) commands.push({\n\t\t\t\ttype: \"setBackgroundColor\",\n\t\t\t\tvalue: color\n\t\t\t});\n\t\t} else if (codeInt === 49) commands.push({ type: \"resetBackgroundColor\" });\n\t\telse if (codeInt === 53) commands.push({\n\t\t\ttype: \"setDecoration\",\n\t\t\tvalue: \"overline\"\n\t\t});\n\t\telse if (codeInt === 55) commands.push({\n\t\t\ttype: \"resetDecoration\",\n\t\t\tvalue: \"overline\"\n\t\t});\n\t\telse if (codeInt >= 90 && codeInt <= 97) commands.push({\n\t\t\ttype: \"setForegroundColor\",\n\t\t\tvalue: {\n\t\t\t\ttype: \"named\",\n\t\t\t\tname: namedColors[codeInt - 90 + 8]\n\t\t\t}\n\t\t});\n\t\telse if (codeInt >= 100 && codeInt <= 107) commands.push({\n\t\t\ttype: \"setBackgroundColor\",\n\t\t\tvalue: {\n\t\t\t\ttype: \"named\",\n\t\t\t\tname: namedColors[codeInt - 100 + 8]\n\t\t\t}\n\t\t});\n\t}\n\treturn commands;\n}\nfunction createAnsiSequenceParser() {\n\tlet foreground = null;\n\tlet background = null;\n\tlet decorations2 = /* @__PURE__ */ new Set();\n\treturn { parse(value) {\n\t\tconst tokens = [];\n\t\tlet position = 0;\n\t\tdo {\n\t\t\tconst findResult = findSequence(value, position);\n\t\t\tconst text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position);\n\t\t\tif (text.length > 0) tokens.push({\n\t\t\t\tvalue: text,\n\t\t\t\tforeground,\n\t\t\t\tbackground,\n\t\t\t\tdecorations: new Set(decorations2)\n\t\t\t});\n\t\t\tif (findResult.sequence) {\n\t\t\t\tconst commands = parseSequence(findResult.sequence);\n\t\t\t\tfor (const styleToken of commands) if (styleToken.type === \"resetAll\") {\n\t\t\t\t\tforeground = null;\n\t\t\t\t\tbackground = null;\n\t\t\t\t\tdecorations2.clear();\n\t\t\t\t} else if (styleToken.type === \"resetForegroundColor\") foreground = null;\n\t\t\t\telse if (styleToken.type === \"resetBackgroundColor\") background = null;\n\t\t\t\telse if (styleToken.type === \"resetDecoration\") decorations2.delete(styleToken.value);\n\t\t\t\tfor (const styleToken of commands) if (styleToken.type === \"setForegroundColor\") foreground = styleToken.value;\n\t\t\t\telse if (styleToken.type === \"setBackgroundColor\") background = styleToken.value;\n\t\t\t\telse if (styleToken.type === \"setDecoration\") decorations2.add(styleToken.value);\n\t\t\t}\n\t\t\tposition = findResult.position;\n\t\t} while (position < value.length);\n\t\treturn tokens;\n\t} };\n}\nvar defaultNamedColorsMap = {\n\tblack: \"#000000\",\n\tred: \"#bb0000\",\n\tgreen: \"#00bb00\",\n\tyellow: \"#bbbb00\",\n\tblue: \"#0000bb\",\n\tmagenta: \"#ff00ff\",\n\tcyan: \"#00bbbb\",\n\twhite: \"#eeeeee\",\n\tbrightBlack: \"#555555\",\n\tbrightRed: \"#ff5555\",\n\tbrightGreen: \"#00ff00\",\n\tbrightYellow: \"#ffff55\",\n\tbrightBlue: \"#5555ff\",\n\tbrightMagenta: \"#ff55ff\",\n\tbrightCyan: \"#55ffff\",\n\tbrightWhite: \"#ffffff\"\n};\nfunction createColorPalette(namedColorsMap = defaultNamedColorsMap) {\n\tfunction namedColor(name) {\n\t\treturn namedColorsMap[name];\n\t}\n\tfunction rgbColor(rgb) {\n\t\treturn `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, \"0\")).join(\"\")}`;\n\t}\n\tlet colorTable;\n\tfunction getColorTable() {\n\t\tif (colorTable) return colorTable;\n\t\tcolorTable = [];\n\t\tfor (let i = 0; i < namedColors.length; i++) colorTable.push(namedColor(namedColors[i]));\n\t\tlet levels = [\n\t\t\t0,\n\t\t\t95,\n\t\t\t135,\n\t\t\t175,\n\t\t\t215,\n\t\t\t255\n\t\t];\n\t\tfor (let r = 0; r < 6; r++) for (let g = 0; g < 6; g++) for (let b = 0; b < 6; b++) colorTable.push(rgbColor([\n\t\t\tlevels[r],\n\t\t\tlevels[g],\n\t\t\tlevels[b]\n\t\t]));\n\t\tlet level = 8;\n\t\tfor (let i = 0; i < 24; i++, level += 10) colorTable.push(rgbColor([\n\t\t\tlevel,\n\t\t\tlevel,\n\t\t\tlevel\n\t\t]));\n\t\treturn colorTable;\n\t}\n\tfunction tableColor(index) {\n\t\treturn getColorTable()[index];\n\t}\n\tfunction value(color) {\n\t\tswitch (color.type) {\n\t\t\tcase \"named\": return namedColor(color.name);\n\t\t\tcase \"rgb\": return rgbColor(color.rgb);\n\t\t\tcase \"table\": return tableColor(color.index);\n\t\t}\n\t}\n\treturn { value };\n}\n\n//#endregion\n//#region src/highlight/code-to-tokens-ansi.ts\n/**\n* Default ANSI palette (VSCode compatible fallbacks)\n* Used when the theme does not define terminal.ansi* colors.\n*/\nconst defaultAnsiColors = {\n\tblack: \"#000000\",\n\tred: \"#cd3131\",\n\tgreen: \"#0DBC79\",\n\tyellow: \"#E5E510\",\n\tblue: \"#2472C8\",\n\tmagenta: \"#BC3FBC\",\n\tcyan: \"#11A8CD\",\n\twhite: \"#E5E5E5\",\n\tbrightBlack: \"#666666\",\n\tbrightRed: \"#F14C4C\",\n\tbrightGreen: \"#23D18B\",\n\tbrightYellow: \"#F5F543\",\n\tbrightBlue: \"#3B8EEA\",\n\tbrightMagenta: \"#D670D6\",\n\tbrightCyan: \"#29B8DB\",\n\tbrightWhite: \"#FFFFFF\"\n};\nfunction tokenizeAnsiWithTheme(theme, fileContents, options) {\n\tconst colorReplacements = resolveColorReplacements(theme, options);\n\tconst lines = splitLines(fileContents);\n\tconst colorPalette = createColorPalette(Object.fromEntries(namedColors.map((name) => {\n\t\tconst key = `terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`;\n\t\treturn [name, theme.colors?.[key] || defaultAnsiColors[name]];\n\t})));\n\tconst parser = createAnsiSequenceParser();\n\treturn lines.map((line) => parser.parse(line[0]).map((token) => {\n\t\tlet color;\n\t\tlet bgColor;\n\t\tif (token.decorations.has(\"reverse\")) {\n\t\t\tcolor = token.background ? colorPalette.value(token.background) : theme.bg;\n\t\t\tbgColor = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n\t\t} else {\n\t\t\tcolor = token.foreground ? colorPalette.value(token.foreground) : theme.fg;\n\t\t\tbgColor = token.background ? colorPalette.value(token.background) : void 0;\n\t\t}\n\t\tcolor = applyColorReplacements(color, colorReplacements);\n\t\tbgColor = applyColorReplacements(bgColor, colorReplacements);\n\t\tif (token.decorations.has(\"dim\")) color = dimColor(color);\n\t\tlet fontStyle = FontStyle.None;\n\t\tif (token.decorations.has(\"bold\")) fontStyle |= FontStyle.Bold;\n\t\tif (token.decorations.has(\"italic\")) fontStyle |= FontStyle.Italic;\n\t\tif (token.decorations.has(\"underline\")) fontStyle |= FontStyle.Underline;\n\t\tif (token.decorations.has(\"strikethrough\")) fontStyle |= FontStyle.Strikethrough;\n\t\treturn {\n\t\t\tcontent: token.value,\n\t\t\toffset: line[1],\n\t\t\tcolor,\n\t\t\tbgColor,\n\t\t\tfontStyle\n\t\t};\n\t}));\n}\n/**\n* Adds 50% alpha to a hex color string or the \"-dim\" postfix to a CSS variable\n*/\nfunction dimColor(color) {\n\tconst hexMatch = color.match(/#([0-9a-f]{3,8})/i);\n\tif (hexMatch) {\n\t\tconst hex = hexMatch[1];\n\t\tif (hex.length === 8) {\n\t\t\tconst alpha = Math.round(Number.parseInt(hex.slice(6, 8), 16) / 2).toString(16).padStart(2, \"0\");\n\t\t\treturn `#${hex.slice(0, 6)}${alpha}`;\n\t\t} else if (hex.length === 6) return `#${hex}80`;\n\t\telse if (hex.length === 4) {\n\t\t\tconst r = hex[0];\n\t\t\tconst g = hex[1];\n\t\t\tconst b = hex[2];\n\t\t\tconst a = hex[3];\n\t\t\treturn `#${r}${r}${g}${g}${b}${b}${Math.round(Number.parseInt(`${a}${a}`, 16) / 2).toString(16).padStart(2, \"0\")}`;\n\t\t} else if (hex.length === 3) {\n\t\t\tconst r = hex[0];\n\t\t\tconst g = hex[1];\n\t\t\tconst b = hex[2];\n\t\t\treturn `#${r}${r}${g}${g}${b}${b}80`;\n\t\t}\n\t}\n\tconst cssVarMatch = color.match(/var\\((--[\\w-]+-ansi-[\\w-]+)\\)/);\n\tif (cssVarMatch) return `var(${cssVarMatch[1]}-dim)`;\n\treturn color;\n}\n\n//#endregion\n//#region src/highlight/code-to-tokens-base.ts\n/**\n* Code to tokens, with a simple theme.\n* This wraps the tokenizer's implementation to add ANSI support.\n*/\nfunction codeToTokensBase(primitive, code, options = {}) {\n\tconst lang = primitive.resolveLangAlias(options.lang || \"text\");\n\tconst { theme: themeName = primitive.getLoadedThemes()[0] } = options;\n\tif (!isPlainLang(lang) && !isNoneTheme(themeName) && lang === \"ansi\") {\n\t\tconst { theme } = primitive.setTheme(themeName);\n\t\treturn tokenizeAnsiWithTheme(theme, code, options);\n\t}\n\treturn codeToTokensBase$1(primitive, code, options);\n}\n\n//#endregion\n//#region src/highlight/code-to-tokens.ts\n/**\n* High-level code-to-tokens API.\n*\n* It will use `codeToTokensWithThemes` or `codeToTokensBase` based on the options.\n*/\nfunction codeToTokens(primitive, code, options) {\n\tlet bg;\n\tlet fg;\n\tlet tokens;\n\tlet themeName;\n\tlet rootStyle;\n\tlet grammarState;\n\tif (\"themes\" in options) {\n\t\tconst { defaultColor = \"light\", cssVariablePrefix = \"--shiki-\", colorsRendering = \"css-vars\" } = options;\n\t\tconst themes = Object.entries(options.themes).filter((i) => i[1]).map((i) => ({\n\t\t\tcolor: i[0],\n\t\t\ttheme: i[1]\n\t\t})).sort((a, b) => a.color === defaultColor ? -1 : b.color === defaultColor ? 1 : 0);\n\t\tif (themes.length === 0) throw new ShikiError$1(\"`themes` option must not be empty\");\n\t\tconst themeTokens = codeToTokensWithThemes$1(primitive, code, options, codeToTokensBase);\n\t\tgrammarState = getLastGrammarStateFromMap(themeTokens);\n\t\tif (defaultColor && DEFAULT_COLOR_LIGHT_DARK !== defaultColor && !themes.find((t) => t.color === defaultColor)) throw new ShikiError$1(`\\`themes\\` option must contain the defaultColor key \\`${defaultColor}\\``);\n\t\tconst themeRegs = themes.map((t) => primitive.getTheme(t.theme));\n\t\tconst themesOrder = themes.map((t) => t.color);\n\t\ttokens = themeTokens.map((line) => line.map((token) => flatTokenVariants(token, themesOrder, cssVariablePrefix, defaultColor, colorsRendering)));\n\t\tif (grammarState) setLastGrammarStateToMap(tokens, grammarState);\n\t\tconst themeColorReplacements = themes.map((t) => resolveColorReplacements(t.theme, options));\n\t\tfg = mapThemeColors(themes, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, \"fg\", colorsRendering);\n\t\tbg = mapThemeColors(themes, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, \"bg\", colorsRendering);\n\t\tthemeName = `shiki-themes ${themeRegs.map((t) => t.name).join(\" \")}`;\n\t\trootStyle = defaultColor ? void 0 : [fg, bg].join(\";\");\n\t} else if (\"theme\" in options) {\n\t\tconst colorReplacements = resolveColorReplacements(options.theme, options);\n\t\ttokens = codeToTokensBase(primitive, code, options);\n\t\tconst _theme = primitive.getTheme(options.theme);\n\t\tbg = applyColorReplacements(_theme.bg, colorReplacements);\n\t\tfg = applyColorReplacements(_theme.fg, colorReplacements);\n\t\tthemeName = _theme.name;\n\t\tgrammarState = getLastGrammarStateFromMap(tokens);\n\t} else throw new ShikiError$1(\"Invalid options, either `theme` or `themes` must be provided\");\n\treturn {\n\t\ttokens,\n\t\tfg,\n\t\tbg,\n\t\tthemeName,\n\t\trootStyle,\n\t\tgrammarState\n\t};\n}\nfunction mapThemeColors(themes, themeRegs, themeColorReplacements, cssVariablePrefix, defaultColor, property, colorsRendering) {\n\treturn themes.map((t, idx) => {\n\t\tconst value = applyColorReplacements(themeRegs[idx][property], themeColorReplacements[idx]) || \"inherit\";\n\t\tconst cssVar = `${cssVariablePrefix + t.color}${property === \"bg\" ? \"-bg\" : \"\"}:${value}`;\n\t\tif (idx === 0 && defaultColor) {\n\t\t\tif (defaultColor === DEFAULT_COLOR_LIGHT_DARK && themes.length > 1) {\n\t\t\t\tconst lightIndex = themes.findIndex((t) => t.color === \"light\");\n\t\t\t\tconst darkIndex = themes.findIndex((t) => t.color === \"dark\");\n\t\t\t\tif (lightIndex === -1 || darkIndex === -1) throw new ShikiError$1(\"When using `defaultColor: \\\"light-dark()\\\"`, you must provide both `light` and `dark` themes\");\n\t\t\t\treturn `light-dark(${applyColorReplacements(themeRegs[lightIndex][property], themeColorReplacements[lightIndex]) || \"inherit\"}, ${applyColorReplacements(themeRegs[darkIndex][property], themeColorReplacements[darkIndex]) || \"inherit\"});${cssVar}`;\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tif (colorsRendering === \"css-vars\") return cssVar;\n\t\treturn null;\n\t}).filter((i) => !!i).join(\";\");\n}\n\n//#endregion\n//#region src/highlight/code-to-hast.ts\nfunction codeToHast(primitive, code, options, transformerContext = {\n\tmeta: {},\n\toptions,\n\tcodeToHast: (_code, _options) => codeToHast(primitive, _code, _options),\n\tcodeToTokens: (_code, _options) => codeToTokens(primitive, _code, _options)\n}) {\n\tlet input = code;\n\tfor (const transformer of getTransformers(options)) input = transformer.preprocess?.call(transformerContext, input, options) || input;\n\tlet { tokens, fg, bg, themeName, rootStyle, grammarState } = codeToTokens(primitive, input, options);\n\tconst { mergeWhitespaces = true, mergeSameStyleTokens = false } = options;\n\tif (mergeWhitespaces === true) tokens = mergeWhitespaceTokens(tokens);\n\telse if (mergeWhitespaces === \"never\") tokens = splitWhitespaceTokens(tokens);\n\tif (mergeSameStyleTokens) tokens = mergeAdjacentStyledTokens(tokens);\n\tconst contextSource = {\n\t\t...transformerContext,\n\t\tget source() {\n\t\t\treturn input;\n\t\t}\n\t};\n\tfor (const transformer of getTransformers(options)) tokens = transformer.tokens?.call(contextSource, tokens) || tokens;\n\treturn tokensToHast(tokens, {\n\t\t...options,\n\t\tfg,\n\t\tbg,\n\t\tthemeName,\n\t\trootStyle: options.rootStyle === false ? false : options.rootStyle ?? rootStyle\n\t}, contextSource, grammarState);\n}\nfunction tokensToHast(tokens, options, transformerContext, grammarState = getLastGrammarStateFromMap(tokens)) {\n\tconst transformers = getTransformers(options);\n\tconst lines = [];\n\tconst root = {\n\t\ttype: \"root\",\n\t\tchildren: []\n\t};\n\tconst { structure = \"classic\", tabindex = \"0\" } = options;\n\tconst properties = { class: `shiki ${options.themeName || \"\"}` };\n\tif (options.rootStyle !== false) if (options.rootStyle != null) properties.style = options.rootStyle;\n\telse properties.style = `background-color:${options.bg};color:${options.fg}`;\n\tif (tabindex !== false && tabindex != null) properties.tabindex = tabindex.toString();\n\tfor (const [key, value] of Object.entries(options.meta || {})) if (!key.startsWith(\"_\")) properties[key] = value;\n\tlet preNode = {\n\t\ttype: \"element\",\n\t\ttagName: \"pre\",\n\t\tproperties,\n\t\tchildren: [],\n\t\tdata: options.data\n\t};\n\tlet codeNode = {\n\t\ttype: \"element\",\n\t\ttagName: \"code\",\n\t\tproperties: {},\n\t\tchildren: lines\n\t};\n\tconst lineNodes = [];\n\tconst context = {\n\t\t...transformerContext,\n\t\tstructure,\n\t\taddClassToHast,\n\t\tget source() {\n\t\t\treturn transformerContext.source;\n\t\t},\n\t\tget tokens() {\n\t\t\treturn tokens;\n\t\t},\n\t\tget options() {\n\t\t\treturn options;\n\t\t},\n\t\tget root() {\n\t\t\treturn root;\n\t\t},\n\t\tget pre() {\n\t\t\treturn preNode;\n\t\t},\n\t\tget code() {\n\t\t\treturn codeNode;\n\t\t},\n\t\tget lines() {\n\t\t\treturn lineNodes;\n\t\t}\n\t};\n\ttokens.forEach((line, idx) => {\n\t\tif (idx) {\n\t\t\tif (structure === \"inline\") root.children.push({\n\t\t\t\ttype: \"element\",\n\t\t\t\ttagName: \"br\",\n\t\t\t\tproperties: {},\n\t\t\t\tchildren: []\n\t\t\t});\n\t\t\telse if (structure === \"classic\") lines.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\tvalue: \"\\n\"\n\t\t\t});\n\t\t}\n\t\tlet lineNode = {\n\t\t\ttype: \"element\",\n\t\t\ttagName: \"span\",\n\t\t\tproperties: { class: \"line\" },\n\t\t\tchildren: []\n\t\t};\n\t\tlet col = 0;\n\t\tfor (const token of line) {\n\t\t\tlet tokenNode = {\n\t\t\t\ttype: \"element\",\n\t\t\t\ttagName: \"span\",\n\t\t\t\tproperties: { ...token.htmlAttrs },\n\t\t\t\tchildren: [{\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\tvalue: token.content\n\t\t\t\t}]\n\t\t\t};\n\t\t\tconst style = stringifyTokenStyle(token.htmlStyle || getTokenStyleObject(token));\n\t\t\tif (style) tokenNode.properties.style = style;\n\t\t\tfor (const transformer of transformers) tokenNode = transformer?.span?.call(context, tokenNode, idx + 1, col, lineNode, token) || tokenNode;\n\t\t\tif (structure === \"inline\") root.children.push(tokenNode);\n\t\t\telse if (structure === \"classic\") lineNode.children.push(tokenNode);\n\t\t\tcol += token.content.length;\n\t\t}\n\t\tif (structure === \"classic\") {\n\t\t\tfor (const transformer of transformers) lineNode = transformer?.line?.call(context, lineNode, idx + 1) || lineNode;\n\t\t\tlineNodes.push(lineNode);\n\t\t\tlines.push(lineNode);\n\t\t} else if (structure === \"inline\") lineNodes.push(lineNode);\n\t});\n\tif (structure === \"classic\") {\n\t\tfor (const transformer of transformers) codeNode = transformer?.code?.call(context, codeNode) || codeNode;\n\t\tpreNode.children.push(codeNode);\n\t\tfor (const transformer of transformers) preNode = transformer?.pre?.call(context, preNode) || preNode;\n\t\troot.children.push(preNode);\n\t} else if (structure === \"inline\") {\n\t\tconst syntheticLines = [];\n\t\tlet currentLine = {\n\t\t\ttype: \"element\",\n\t\t\ttagName: \"span\",\n\t\t\tproperties: { class: \"line\" },\n\t\t\tchildren: []\n\t\t};\n\t\tfor (const child of root.children) if (child.type === \"element\" && child.tagName === \"br\") {\n\t\t\tsyntheticLines.push(currentLine);\n\t\t\tcurrentLine = {\n\t\t\t\ttype: \"element\",\n\t\t\t\ttagName: \"span\",\n\t\t\t\tproperties: { class: \"line\" },\n\t\t\t\tchildren: []\n\t\t\t};\n\t\t} else if (child.type === \"element\" || child.type === \"text\") currentLine.children.push(child);\n\t\tsyntheticLines.push(currentLine);\n\t\tlet transformedCode = {\n\t\t\ttype: \"element\",\n\t\t\ttagName: \"code\",\n\t\t\tproperties: {},\n\t\t\tchildren: syntheticLines\n\t\t};\n\t\tfor (const transformer of transformers) transformedCode = transformer?.code?.call(context, transformedCode) || transformedCode;\n\t\troot.children = [];\n\t\tfor (let i = 0; i < transformedCode.children.length; i++) {\n\t\t\tif (i > 0) root.children.push({\n\t\t\t\ttype: \"element\",\n\t\t\t\ttagName: \"br\",\n\t\t\t\tproperties: {},\n\t\t\t\tchildren: []\n\t\t\t});\n\t\t\tconst line = transformedCode.children[i];\n\t\t\tif (line.type === \"element\") root.children.push(...line.children);\n\t\t}\n\t}\n\tlet result = root;\n\tfor (const transformer of transformers) result = transformer?.root?.call(context, result) || result;\n\tif (grammarState) setLastGrammarStateToMap(result, grammarState);\n\treturn result;\n}\nfunction mergeWhitespaceTokens(tokens) {\n\treturn tokens.map((line) => {\n\t\tconst newLine = [];\n\t\tlet carryOnContent = \"\";\n\t\tlet firstOffset;\n\t\tline.forEach((token, idx) => {\n\t\t\tconst couldMerge = !(token.fontStyle && (token.fontStyle & FontStyle.Underline || token.fontStyle & FontStyle.Strikethrough));\n\t\t\tif (couldMerge && token.content.match(/^\\s+$/) && line[idx + 1]) {\n\t\t\t\tif (firstOffset === void 0) firstOffset = token.offset;\n\t\t\t\tcarryOnContent += token.content;\n\t\t\t} else if (carryOnContent) {\n\t\t\t\tif (couldMerge) newLine.push({\n\t\t\t\t\t...token,\n\t\t\t\t\toffset: firstOffset,\n\t\t\t\t\tcontent: carryOnContent + token.content\n\t\t\t\t});\n\t\t\t\telse newLine.push({\n\t\t\t\t\tcontent: carryOnContent,\n\t\t\t\t\toffset: firstOffset\n\t\t\t\t}, token);\n\t\t\t\tfirstOffset = void 0;\n\t\t\t\tcarryOnContent = \"\";\n\t\t\t} else newLine.push(token);\n\t\t});\n\t\treturn newLine;\n\t});\n}\nfunction splitWhitespaceTokens(tokens) {\n\treturn tokens.map((line) => {\n\t\treturn line.flatMap((token) => {\n\t\t\tif (token.content.match(/^\\s+$/)) return token;\n\t\t\tconst match = token.content.match(/^(\\s*)(.*?)(\\s*)$/);\n\t\t\tif (!match) return token;\n\t\t\tconst [, leading, content, trailing] = match;\n\t\t\tif (!leading && !trailing) return token;\n\t\t\tconst expanded = [{\n\t\t\t\t...token,\n\t\t\t\toffset: token.offset + leading.length,\n\t\t\t\tcontent\n\t\t\t}];\n\t\t\tif (leading) expanded.unshift({\n\t\t\t\tcontent: leading,\n\t\t\t\toffset: token.offset\n\t\t\t});\n\t\t\tif (trailing) expanded.push({\n\t\t\t\tcontent: trailing,\n\t\t\t\toffset: token.offset + leading.length + content.length\n\t\t\t});\n\t\t\treturn expanded;\n\t\t});\n\t});\n}\nfunction mergeAdjacentStyledTokens(tokens) {\n\treturn tokens.map((line) => {\n\t\tconst newLine = [];\n\t\tfor (const token of line) {\n\t\t\tif (newLine.length === 0) {\n\t\t\t\tnewLine.push({ ...token });\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst prevToken = newLine[newLine.length - 1];\n\t\t\tconst prevStyle = stringifyTokenStyle(prevToken.htmlStyle || getTokenStyleObject(prevToken));\n\t\t\tconst currentStyle = stringifyTokenStyle(token.htmlStyle || getTokenStyleObject(token));\n\t\t\tconst isPrevDecorated = prevToken.fontStyle && (prevToken.fontStyle & FontStyle.Underline || prevToken.fontStyle & FontStyle.Strikethrough);\n\t\t\tconst isDecorated = token.fontStyle && (token.fontStyle & FontStyle.Underline || token.fontStyle & FontStyle.Strikethrough);\n\t\t\tif (!isPrevDecorated && !isDecorated && prevStyle === currentStyle) prevToken.content += token.content;\n\t\t\telse newLine.push({ ...token });\n\t\t}\n\t\treturn newLine;\n\t});\n}\n\n//#endregion\n//#region src/highlight/code-to-html.ts\nconst hastToHtml = toHtml;\n/**\n* Get highlighted code in HTML.\n*/\nfunction codeToHtml(primitive, code, options) {\n\tconst context = {\n\t\tmeta: {},\n\t\toptions,\n\t\tcodeToHast: (_code, _options) => codeToHast(primitive, _code, _options),\n\t\tcodeToTokens: (_code, _options) => codeToTokens(primitive, _code, _options)\n\t};\n\tlet result = hastToHtml(codeToHast(primitive, code, options, context));\n\tfor (const transformer of getTransformers(options)) result = transformer.postprocess?.call(context, result, options) || result;\n\treturn result;\n}\n\n//#endregion\n//#region src/constructors/highlighter.ts\n/**\n* Create a Shiki core highlighter instance, with no languages or themes bundled.\n* Wasm and each language and theme must be loaded manually.\n*\n* @see http://shiki.style/guide/bundles#fine-grained-bundle\n*/\nasync function createHighlighterCore(options) {\n\tconst primitive = await createShikiPrimitiveAsync$1(options);\n\treturn {\n\t\tgetLastGrammarState: (...args) => getLastGrammarState(primitive, ...args),\n\t\tcodeToTokensBase: (code, options) => codeToTokensBase(primitive, code, options),\n\t\tcodeToTokensWithThemes: (code, options) => codeToTokensWithThemes$1(primitive, code, options),\n\t\tcodeToTokens: (code, options) => codeToTokens(primitive, code, options),\n\t\tcodeToHast: (code, options) => codeToHast(primitive, code, options),\n\t\tcodeToHtml: (code, options) => codeToHtml(primitive, code, options),\n\t\tgetBundledLanguages: () => ({}),\n\t\tgetBundledThemes: () => ({}),\n\t\t...primitive,\n\t\tgetInternalContext: () => primitive\n\t};\n}\n/**\n* Create a Shiki core highlighter instance, with no languages or themes bundled.\n* Wasm and each language and theme must be loaded manually.\n*\n* Synchronous version of `createHighlighterCore`, which requires to provide the engine and all themes and languages upfront.\n*\n* @see http://shiki.style/guide/bundles#fine-grained-bundle\n*/\nfunction createHighlighterCoreSync(options) {\n\tconst internal = createShikiPrimitive$1(options);\n\treturn {\n\t\tgetLastGrammarState: (...args) => getLastGrammarState(internal, ...args),\n\t\tcodeToTokensBase: (code, options) => codeToTokensBase(internal, code, options),\n\t\tcodeToTokensWithThemes: (code, options) => codeToTokensWithThemes$1(internal, code, options),\n\t\tcodeToTokens: (code, options) => codeToTokens(internal, code, options),\n\t\tcodeToHast: (code, options) => codeToHast(internal, code, options),\n\t\tcodeToHtml: (code, options) => codeToHtml(internal, code, options),\n\t\tgetBundledLanguages: () => ({}),\n\t\tgetBundledThemes: () => ({}),\n\t\t...internal,\n\t\tgetInternalContext: () => internal\n\t};\n}\nfunction makeSingletonHighlighterCore(createHighlighter) {\n\tlet _shiki;\n\tasync function getSingletonHighlighterCore(options) {\n\t\tif (!_shiki) {\n\t\t\t_shiki = createHighlighter({\n\t\t\t\t...options,\n\t\t\t\tthemes: options.themes || [],\n\t\t\t\tlangs: options.langs || []\n\t\t\t});\n\t\t\treturn _shiki;\n\t\t} else {\n\t\t\tconst s = await _shiki;\n\t\t\tawait Promise.all([s.loadTheme(...options.themes || []), s.loadLanguage(...options.langs || [])]);\n\t\t\treturn s;\n\t\t}\n\t}\n\treturn getSingletonHighlighterCore;\n}\nconst getSingletonHighlighterCore = /* @__PURE__ */ makeSingletonHighlighterCore(createHighlighterCore);\n\n//#endregion\n//#region src/constructors/bundle-factory.ts\nfunction createBundledHighlighter(options) {\n\tconst bundledLanguages = options.langs;\n\tconst bundledThemes = options.themes;\n\tconst engine = options.engine;\n\tasync function createHighlighter(options) {\n\t\tfunction resolveLang(lang) {\n\t\t\tif (typeof lang === \"string\") {\n\t\t\t\tlang = options.langAlias?.[lang] || lang;\n\t\t\t\tif (isSpecialLang(lang)) return [];\n\t\t\t\tconst bundle = bundledLanguages[lang];\n\t\t\t\tif (!bundle) throw new ShikiError$1(`Language \\`${lang}\\` is not included in this bundle. You may want to load it from external source.`);\n\t\t\t\treturn bundle;\n\t\t\t}\n\t\t\treturn lang;\n\t\t}\n\t\tfunction resolveTheme(theme) {\n\t\t\tif (isSpecialTheme(theme)) return \"none\";\n\t\t\tif (typeof theme === \"string\") {\n\t\t\t\tconst bundle = bundledThemes[theme];\n\t\t\t\tif (!bundle) throw new ShikiError$1(`Theme \\`${theme}\\` is not included in this bundle. You may want to load it from external source.`);\n\t\t\t\treturn bundle;\n\t\t\t}\n\t\t\treturn theme;\n\t\t}\n\t\tconst _themes = (options.themes ?? []).map((i) => resolveTheme(i));\n\t\tconst langs = (options.langs ?? []).map((i) => resolveLang(i));\n\t\tconst core = await createHighlighterCore({\n\t\t\tengine: options.engine ?? engine(),\n\t\t\t...options,\n\t\t\tthemes: _themes,\n\t\t\tlangs\n\t\t});\n\t\treturn {\n\t\t\t...core,\n\t\t\tloadLanguage(...langs) {\n\t\t\t\treturn core.loadLanguage(...langs.map(resolveLang));\n\t\t\t},\n\t\t\tloadTheme(...themes) {\n\t\t\t\treturn core.loadTheme(...themes.map(resolveTheme));\n\t\t\t},\n\t\t\tgetBundledLanguages() {\n\t\t\t\treturn bundledLanguages;\n\t\t\t},\n\t\t\tgetBundledThemes() {\n\t\t\t\treturn bundledThemes;\n\t\t\t}\n\t\t};\n\t}\n\treturn createHighlighter;\n}\nfunction makeSingletonHighlighter(createHighlighter) {\n\tlet _shiki;\n\tasync function getSingletonHighlighter(options = {}) {\n\t\tif (!_shiki) {\n\t\t\t_shiki = createHighlighter({\n\t\t\t\t...options,\n\t\t\t\tthemes: [],\n\t\t\t\tlangs: []\n\t\t\t});\n\t\t\tconst s = await _shiki;\n\t\t\tawait Promise.all([s.loadTheme(...options.themes || []), s.loadLanguage(...options.langs || [])]);\n\t\t\treturn s;\n\t\t} else {\n\t\t\tconst s = await _shiki;\n\t\t\tawait Promise.all([s.loadTheme(...options.themes || []), s.loadLanguage(...options.langs || [])]);\n\t\t\treturn s;\n\t\t}\n\t}\n\treturn getSingletonHighlighter;\n}\nfunction createSingletonShorthands(createHighlighter, config) {\n\tconst getSingletonHighlighter = makeSingletonHighlighter(createHighlighter);\n\tasync function get(code, options) {\n\t\tconst shiki = await getSingletonHighlighter({\n\t\t\tlangs: [options.lang],\n\t\t\tthemes: \"theme\" in options ? [options.theme] : Object.values(options.themes)\n\t\t});\n\t\tconst langs = await config?.guessEmbeddedLanguages?.(code, options.lang, shiki);\n\t\tif (langs) await shiki.loadLanguage(...langs);\n\t\treturn shiki;\n\t}\n\treturn {\n\t\tgetSingletonHighlighter(options) {\n\t\t\treturn getSingletonHighlighter(options);\n\t\t},\n\t\tasync codeToHtml(code, options) {\n\t\t\treturn (await get(code, options)).codeToHtml(code, options);\n\t\t},\n\t\tasync codeToHast(code, options) {\n\t\t\treturn (await get(code, options)).codeToHast(code, options);\n\t\t},\n\t\tasync codeToTokens(code, options) {\n\t\t\treturn (await get(code, options)).codeToTokens(code, options);\n\t\t},\n\t\tasync codeToTokensBase(code, options) {\n\t\t\treturn (await get(code, options)).codeToTokensBase(code, options);\n\t\t},\n\t\tasync codeToTokensWithThemes(code, options) {\n\t\t\treturn (await get(code, options)).codeToTokensWithThemes(code, options);\n\t\t},\n\t\tasync getLastGrammarState(code, options) {\n\t\t\treturn (await getSingletonHighlighter({\n\t\t\t\tlangs: [options.lang],\n\t\t\t\tthemes: [options.theme]\n\t\t\t})).getLastGrammarState(code, options);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/theme-css-variables.ts\n/**\n* A factory function to create a css-variable-based theme\n*\n* @see https://shiki.style/guide/theme-colors#css-variables-theme\n*/\nfunction createCssVariablesTheme(options = {}) {\n\tconst { name = \"css-variables\", variablePrefix = \"--shiki-\", fontStyle = true } = options;\n\tconst variable = (name) => {\n\t\tif (options.variableDefaults?.[name]) return `var(${variablePrefix}${name}, ${options.variableDefaults[name]})`;\n\t\treturn `var(${variablePrefix}${name})`;\n\t};\n\tconst theme = {\n\t\tname,\n\t\ttype: \"dark\",\n\t\tcolors: {\n\t\t\t\"editor.foreground\": variable(\"foreground\"),\n\t\t\t\"editor.background\": variable(\"background\"),\n\t\t\t\"terminal.ansiBlack\": variable(\"ansi-black\"),\n\t\t\t\"terminal.ansiRed\": variable(\"ansi-red\"),\n\t\t\t\"terminal.ansiGreen\": variable(\"ansi-green\"),\n\t\t\t\"terminal.ansiYellow\": variable(\"ansi-yellow\"),\n\t\t\t\"terminal.ansiBlue\": variable(\"ansi-blue\"),\n\t\t\t\"terminal.ansiMagenta\": variable(\"ansi-magenta\"),\n\t\t\t\"terminal.ansiCyan\": variable(\"ansi-cyan\"),\n\t\t\t\"terminal.ansiWhite\": variable(\"ansi-white\"),\n\t\t\t\"terminal.ansiBrightBlack\": variable(\"ansi-bright-black\"),\n\t\t\t\"terminal.ansiBrightRed\": variable(\"ansi-bright-red\"),\n\t\t\t\"terminal.ansiBrightGreen\": variable(\"ansi-bright-green\"),\n\t\t\t\"terminal.ansiBrightYellow\": variable(\"ansi-bright-yellow\"),\n\t\t\t\"terminal.ansiBrightBlue\": variable(\"ansi-bright-blue\"),\n\t\t\t\"terminal.ansiBrightMagenta\": variable(\"ansi-bright-magenta\"),\n\t\t\t\"terminal.ansiBrightCyan\": variable(\"ansi-bright-cyan\"),\n\t\t\t\"terminal.ansiBrightWhite\": variable(\"ansi-bright-white\")\n\t\t},\n\t\ttokenColors: [\n\t\t\t{\n\t\t\t\tscope: [\n\t\t\t\t\t\"keyword.operator.accessor\",\n\t\t\t\t\t\"meta.group.braces.round.function.arguments\",\n\t\t\t\t\t\"meta.template.expression\",\n\t\t\t\t\t\"markup.fenced_code meta.embedded.block\"\n\t\t\t\t],\n\t\t\t\tsettings: { foreground: variable(\"foreground\") }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: \"emphasis\",\n\t\t\t\tsettings: { fontStyle: \"italic\" }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\n\t\t\t\t\t\"strong\",\n\t\t\t\t\t\"markup.heading.markdown\",\n\t\t\t\t\t\"markup.bold.markdown\"\n\t\t\t\t],\n\t\t\t\tsettings: { fontStyle: \"bold\" }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\"markup.italic.markdown\"],\n\t\t\t\tsettings: { fontStyle: \"italic\" }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: \"meta.link.inline.markdown\",\n\t\t\t\tsettings: {\n\t\t\t\t\tfontStyle: \"underline\",\n\t\t\t\t\tforeground: variable(\"token-link\")\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\n\t\t\t\t\t\"string\",\n\t\t\t\t\t\"markup.fenced_code\",\n\t\t\t\t\t\"markup.inline\"\n\t\t\t\t],\n\t\t\t\tsettings: { foreground: variable(\"token-string\") }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\"comment\", \"string.quoted.docstring.multi\"],\n\t\t\t\tsettings: { foreground: variable(\"token-comment\") }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\n\t\t\t\t\t\"constant.numeric\",\n\t\t\t\t\t\"constant.language\",\n\t\t\t\t\t\"constant.other.placeholder\",\n\t\t\t\t\t\"constant.character.format.placeholder\",\n\t\t\t\t\t\"variable.language.this\",\n\t\t\t\t\t\"variable.other.object\",\n\t\t\t\t\t\"variable.other.class\",\n\t\t\t\t\t\"variable.other.constant\",\n\t\t\t\t\t\"meta.property-name\",\n\t\t\t\t\t\"meta.property-value\",\n\t\t\t\t\t\"support\"\n\t\t\t\t],\n\t\t\t\tsettings: { foreground: variable(\"token-constant\") }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\n\t\t\t\t\t\"keyword\",\n\t\t\t\t\t\"storage.modifier\",\n\t\t\t\t\t\"storage.type\",\n\t\t\t\t\t\"storage.control.clojure\",\n\t\t\t\t\t\"entity.name.function.clojure\",\n\t\t\t\t\t\"entity.name.tag.yaml\",\n\t\t\t\t\t\"support.function.node\",\n\t\t\t\t\t\"support.type.property-name.json\",\n\t\t\t\t\t\"punctuation.separator.key-value\",\n\t\t\t\t\t\"punctuation.definition.template-expression\"\n\t\t\t\t],\n\t\t\t\tsettings: { foreground: variable(\"token-keyword\") }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: \"variable.parameter.function\",\n\t\t\t\tsettings: { foreground: variable(\"token-parameter\") }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\n\t\t\t\t\t\"support.function\",\n\t\t\t\t\t\"entity.name.type\",\n\t\t\t\t\t\"entity.other.inherited-class\",\n\t\t\t\t\t\"meta.function-call\",\n\t\t\t\t\t\"meta.instance.constructor\",\n\t\t\t\t\t\"entity.other.attribute-name\",\n\t\t\t\t\t\"entity.name.function\",\n\t\t\t\t\t\"constant.keyword.clojure\"\n\t\t\t\t],\n\t\t\t\tsettings: { foreground: variable(\"token-function\") }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\n\t\t\t\t\t\"entity.name.tag\",\n\t\t\t\t\t\"string.quoted\",\n\t\t\t\t\t\"string.regexp\",\n\t\t\t\t\t\"string.interpolated\",\n\t\t\t\t\t\"string.template\",\n\t\t\t\t\t\"string.unquoted.plain.out.yaml\",\n\t\t\t\t\t\"keyword.other.template\"\n\t\t\t\t],\n\t\t\t\tsettings: { foreground: variable(\"token-string-expression\") }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\n\t\t\t\t\t\"punctuation.definition.arguments\",\n\t\t\t\t\t\"punctuation.definition.dict\",\n\t\t\t\t\t\"punctuation.separator\",\n\t\t\t\t\t\"meta.function-call.arguments\"\n\t\t\t\t],\n\t\t\t\tsettings: { foreground: variable(\"token-punctuation\") }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\"markup.underline.link\", \"punctuation.definition.metadata.markdown\"],\n\t\t\t\tsettings: { foreground: variable(\"token-link\") }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\"beginning.punctuation.definition.list.markdown\"],\n\t\t\t\tsettings: { foreground: variable(\"token-string\") }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\n\t\t\t\t\t\"punctuation.definition.string.begin.markdown\",\n\t\t\t\t\t\"punctuation.definition.string.end.markdown\",\n\t\t\t\t\t\"string.other.link.title.markdown\",\n\t\t\t\t\t\"string.other.link.description.markdown\"\n\t\t\t\t],\n\t\t\t\tsettings: { foreground: variable(\"token-keyword\") }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\n\t\t\t\t\t\"markup.inserted\",\n\t\t\t\t\t\"meta.diff.header.to-file\",\n\t\t\t\t\t\"punctuation.definition.inserted\"\n\t\t\t\t],\n\t\t\t\tsettings: { foreground: variable(\"token-inserted\") }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\n\t\t\t\t\t\"markup.deleted\",\n\t\t\t\t\t\"meta.diff.header.from-file\",\n\t\t\t\t\t\"punctuation.definition.deleted\"\n\t\t\t\t],\n\t\t\t\tsettings: { foreground: variable(\"token-deleted\") }\n\t\t\t},\n\t\t\t{\n\t\t\t\tscope: [\"markup.changed\", \"punctuation.definition.changed\"],\n\t\t\t\tsettings: { foreground: variable(\"token-changed\") }\n\t\t\t}\n\t\t]\n\t};\n\tif (!fontStyle) theme.tokenColors = theme.tokenColors?.map((tokenColor) => {\n\t\tif (tokenColor.settings?.fontStyle) delete tokenColor.settings.fontStyle;\n\t\treturn tokenColor;\n\t});\n\treturn theme;\n}\n\n//#endregion\nexport { ShikiError, addClassToHast, applyColorReplacements, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createBundledHighlighter, createCssVariablesTheme, createHighlighterCore, createHighlighterCoreSync, createPositionConverter, createShikiInternal, createShikiInternalSync, createShikiPrimitive, createShikiPrimitiveAsync, createSingletonShorthands, flatTokenVariants, getLastGrammarState, getSingletonHighlighterCore, getTokenStyleObject, guessEmbeddedLanguages, hastToHtml, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, makeSingletonHighlighter, makeSingletonHighlighterCore, normalizeGetter, normalizeTheme, resolveColorReplacements, splitLines, splitToken, splitTokens, stringifyTokenStyle, toArray, tokenizeAnsiWithTheme, tokenizeWithTheme, tokensToHast, transformerDecorations };","import { n as __reExport, t as __exportAll } from \"./chunk-CtajNgzt.mjs\";\nimport { t as engine_oniguruma_exports } from \"./engine-oniguruma.mjs\";\nimport { i as bundledLanguagesInfo, n as bundledLanguagesAlias, r as bundledLanguagesBase, t as bundledLanguages } from \"./langs-bundle-full-DfKZStlK.mjs\";\nimport { bundledThemes, bundledThemesInfo } from \"./themes.mjs\";\nimport { createBundledHighlighter, createSingletonShorthands, guessEmbeddedLanguages } from \"@shikijs/core\";\n\nexport * from \"@shikijs/core\"\n\n//#region src/bundle-full.ts\nvar bundle_full_exports = /* @__PURE__ */ __exportAll({\n\tbundledLanguages: () => bundledLanguages,\n\tbundledLanguagesAlias: () => bundledLanguagesAlias,\n\tbundledLanguagesBase: () => bundledLanguagesBase,\n\tbundledLanguagesInfo: () => bundledLanguagesInfo,\n\tbundledThemes: () => bundledThemes,\n\tbundledThemesInfo: () => bundledThemesInfo,\n\tcodeToHast: () => codeToHast,\n\tcodeToHtml: () => codeToHtml,\n\tcodeToTokens: () => codeToTokens,\n\tcodeToTokensBase: () => codeToTokensBase,\n\tcodeToTokensWithThemes: () => codeToTokensWithThemes,\n\tcreateHighlighter: () => createHighlighter,\n\tgetLastGrammarState: () => getLastGrammarState,\n\tgetSingletonHighlighter: () => getSingletonHighlighter\n});\n/**\n* Initiate a highlighter instance and load the specified languages and themes.\n* Later it can be used synchronously to highlight code.\n*\n* Importing this function will bundle all languages and themes.\n* @see https://shiki.style/guide/bundles#shiki-bundle-full\n*\n* For granular control over the bundle, check:\n* @see https://shiki.style/guide/bundles#fine-grained-bundle\n*/\nconst createHighlighter = /* @__PURE__ */ createBundledHighlighter({\n\tlangs: bundledLanguages,\n\tthemes: bundledThemes,\n\tengine: () => (0, engine_oniguruma_exports.createOnigurumaEngine)(import(\"shiki/wasm\"))\n});\nconst { codeToHtml, codeToHast, codeToTokens, codeToTokensBase, codeToTokensWithThemes, getSingletonHighlighter, getLastGrammarState } = /* @__PURE__ */ createSingletonShorthands(createHighlighter, { guessEmbeddedLanguages });\n\n//#endregion\nexport { bundledLanguages, bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo, bundledThemes, bundledThemesInfo, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighter, getLastGrammarState, getSingletonHighlighter, bundle_full_exports as t };","//#region src/scanner.ts\nconst MAX = 4294967295;\nvar JavaScriptScanner = class {\n\tregexps;\n\tconstructor(patterns, options = {}) {\n\t\tthis.patterns = patterns;\n\t\tthis.options = options;\n\t\tconst { forgiving = false, cache, regexConstructor } = options;\n\t\tif (!regexConstructor) throw new Error(\"Option `regexConstructor` is not provided\");\n\t\tthis.regexps = patterns.map((p) => {\n\t\t\tif (typeof p !== \"string\") return p;\n\t\t\tconst cached = cache?.get(p);\n\t\t\tif (cached) {\n\t\t\t\tif (cached instanceof RegExp) return cached;\n\t\t\t\tif (forgiving) return null;\n\t\t\t\tthrow cached;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst regex = regexConstructor(p);\n\t\t\t\tcache?.set(p, regex);\n\t\t\t\treturn regex;\n\t\t\t} catch (e) {\n\t\t\t\tcache?.set(p, e);\n\t\t\t\tif (forgiving) return null;\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t});\n\t}\n\tfindNextMatchSync(string, startPosition, _options) {\n\t\tconst str = typeof string === \"string\" ? string : string.content;\n\t\tconst pending = [];\n\t\tfunction toResult(index, match, offset = 0) {\n\t\t\treturn {\n\t\t\t\tindex,\n\t\t\t\tcaptureIndices: match.indices.map((indice) => {\n\t\t\t\t\tif (indice == null) return {\n\t\t\t\t\t\tstart: MAX,\n\t\t\t\t\t\tend: MAX,\n\t\t\t\t\t\tlength: 0\n\t\t\t\t\t};\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstart: indice[0] + offset,\n\t\t\t\t\t\tend: indice[1] + offset,\n\t\t\t\t\t\tlength: indice[1] - indice[0]\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t};\n\t\t}\n\t\tfor (let i = 0; i < this.regexps.length; i++) {\n\t\t\tconst regexp = this.regexps[i];\n\t\t\tif (!regexp) continue;\n\t\t\ttry {\n\t\t\t\tregexp.lastIndex = startPosition;\n\t\t\t\tconst match = regexp.exec(str);\n\t\t\t\tif (!match) continue;\n\t\t\t\tif (match.index === startPosition) return toResult(i, match, 0);\n\t\t\t\tpending.push([\n\t\t\t\t\ti,\n\t\t\t\t\tmatch,\n\t\t\t\t\t0\n\t\t\t\t]);\n\t\t\t} catch (e) {\n\t\t\t\tif (this.options.forgiving) continue;\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t}\n\t\tif (pending.length) {\n\t\t\tconst minIndex = Math.min(...pending.map((m) => m[1].index));\n\t\t\tfor (const [i, match, offset] of pending) if (match.index === minIndex) return toResult(i, match, offset);\n\t\t}\n\t\treturn null;\n\t}\n};\n\n//#endregion\nexport { JavaScriptScanner as t };","function cpOf(char: string): number {\n // Count code point length\n if ([...char].length !== 1) {\n throw new Error(`Expected \"${char}\" to be a single code point`);\n }\n return char.codePointAt(0)!;\n}\n\nfunction getOrInsert<Key, Value>(map: Map<Key, Value>, key: Key, defaultValue: Value): Value {\n if (!map.has(key)) {\n map.set(key, defaultValue);\n }\n return map.get(key)!;\n}\n\nconst PosixClassNames = new Set([\n 'alnum',\n 'alpha',\n 'ascii',\n 'blank',\n 'cntrl',\n 'digit',\n 'graph',\n 'lower',\n 'print',\n 'punct',\n 'space',\n 'upper',\n 'word',\n 'xdigit',\n]);\n\nconst r = String.raw;\n\nfunction throwIfNullish<Value>(value: Value, msg?: string): NonNullable<Value> {\n if (value == null) {\n throw new Error(msg ?? 'Value expected');\n }\n return value;\n}\n\nexport {\n cpOf,\n getOrInsert,\n PosixClassNames,\n r,\n throwIfNullish,\n};\n","import {cpOf, PosixClassNames, r, throwIfNullish} from '../utils.js';\n\ntype Token =\n AlternatorToken |\n AssertionToken |\n BackreferenceToken |\n CharacterToken |\n CharacterClassCloseToken |\n CharacterClassHyphenToken |\n CharacterClassIntersectorToken |\n CharacterClassOpenToken |\n CharacterSetToken |\n DirectiveToken |\n GroupCloseToken |\n GroupOpenToken |\n NamedCalloutToken |\n QuantifierToken |\n SubroutineToken;\n\ntype IntermediateToken =\n EscapedNumberToken;\n\ntype TokenCharacterSetKind =\n 'any' |\n 'digit' |\n 'dot' |\n 'hex' |\n 'newline' |\n 'posix' |\n 'property' |\n 'space' |\n 'text_segment' |\n 'word';\n\ntype TokenDirectiveKind =\n 'flags' |\n 'keep';\n\ntype TokenGroupOpenKind =\n 'absence_repeater' |\n 'atomic' |\n 'capturing' |\n 'group' |\n 'lookahead' |\n 'lookbehind';\n\ntype TokenQuantifierKind =\n 'greedy' |\n 'lazy' |\n 'possessive';\n\ntype TokenNamedCalloutKind =\n 'count' |\n 'cmp' |\n 'error' |\n 'fail' |\n 'max' |\n 'mismatch' |\n 'skip' |\n 'total_count' |\n 'custom';\n\nconst charClassOpenPattern = r`\\[\\^?`;\nconst sharedEscapesPattern = `${\n // Control char\n 'c.? | C(?:-.?)?'\n}|${\n // Unicode property; Onig considers `\\p` an identity escape, but e.g. `\\p{`, `\\p{ ^L}`, and\n // `\\p{gc=L}` are invalid\n r`[pP]\\{(?:\\^?[-\\x20_]*[A-Za-z][-\\x20\\w]*\\})?`\n}|${\n // Hex encoded byte sequence; attempt match before other `\\xNN` hex char\n r`x[89A-Fa-f]\\p{AHex}(?:\\\\x[89A-Fa-f]\\p{AHex})*`\n}|${\n // Hex char\n r`u(?:\\p{AHex}{4})? | x\\{[^\\}]*\\}? | x\\p{AHex}{0,2}`\n}|${\n // Enclosed octal code point\n r`o\\{[^\\}]*\\}?`\n}|${\n // Escaped number\n r`\\d{1,3}`\n}`;\n// Even with flag x, Onig doesn't allow whitespace to separate a quantifier from the `?` or `+`\n// that makes it lazy or possessive. Possessive suffixes don't apply to interval quantifiers\nconst quantifierRe = /[?*+][?+]?|\\{(?:\\d+(?:,\\d*)?|,\\d+)\\}\\??/;\nconst tokenRe = new RegExp(r`\n \\\\ (?:\n ${sharedEscapesPattern}\n | [gk]<[^>]*>?\n | [gk]'[^']*'?\n | .\n )\n | \\( (?:\n \\? (?:\n [:=!>({]\n | <[=!]\n | <[^>]*>\n | '[^']*'\n | ~\\|?\n | #(?:[^)\\\\]|\\\\.?)*\n | [^:)]*[:)]\n )?\n | \\*[^\\)]*\\)?\n )?\n | (?:${quantifierRe.source})+\n | ${charClassOpenPattern}\n | .\n`.replace(/\\s+/g, ''), 'gsu');\nconst charClassTokenRe = new RegExp(r`\n \\\\ (?:\n ${sharedEscapesPattern}\n | .\n )\n | \\[:(?:\\^?\\p{Alpha}+|\\^):\\]\n | ${charClassOpenPattern}\n | &&\n | .\n`.replace(/\\s+/g, ''), 'gsu');\n\ntype Context = {\n captureGroup: boolean;\n getCurrentModX(): boolean;\n numOpenGroups: number;\n popModX(): void;\n pushModX(isXOn: boolean): void;\n replaceCurrentModX(isXOn: boolean): void;\n singleline: boolean;\n};\n\ntype TokenizeOptions = {\n flags?: string;\n rules?: {\n captureGroup?: boolean;\n singleline?: boolean;\n };\n};\n\nfunction tokenize(pattern: string, options: TokenizeOptions = {}): {\n tokens: Array<Token>;\n flags: FlagProperties;\n} {\n const opts = {\n flags: '',\n ...options,\n rules: {\n captureGroup: false, // `ONIG_OPTION_CAPTURE_GROUP`\n singleline: false, // `ONIG_OPTION_SINGLELINE`\n ...options.rules,\n },\n };\n if (typeof pattern !== 'string') {\n throw new Error('String expected as pattern');\n }\n const flagProperties = getFlagProperties(opts.flags);\n const xStack = [flagProperties.extended];\n const context: Context = {\n captureGroup: opts.rules.captureGroup,\n // Always at least has the top-level flag x\n getCurrentModX() {return xStack.at(-1)!},\n numOpenGroups: 0,\n popModX() {xStack.pop()},\n pushModX(isXOn) {xStack.push(isXOn)},\n replaceCurrentModX(isXOn) {xStack[xStack.length - 1] = isXOn},\n singleline: opts.rules.singleline,\n };\n let tokens: Array<Token | IntermediateToken> = [];\n let match: RegExpExecArray | null;\n tokenRe.lastIndex = 0;\n while ((match = tokenRe.exec(pattern))) {\n const result = getTokenWithDetails(context, pattern, match[0], tokenRe.lastIndex);\n if (result.tokens) {\n tokens.push(...result.tokens);\n } else if (result.token) {\n tokens.push(result.token);\n }\n if (result.lastIndex !== undefined) {\n tokenRe.lastIndex = result.lastIndex;\n }\n }\n\n const potentialUnnamedCaptureTokens: Array<GroupOpenToken> = [];\n let numNamedAndOptInUnnamedCaptures = 0;\n tokens.filter(t => t.type === 'GroupOpen').forEach(t => {\n if (t.kind === 'capturing') {\n t.number = ++numNamedAndOptInUnnamedCaptures;\n } else if (t.raw === '(') {\n potentialUnnamedCaptureTokens.push(t);\n }\n });\n // Enable unnamed capturing groups if no named captures (when `captureGroup` not enabled)\n if (!numNamedAndOptInUnnamedCaptures) {\n potentialUnnamedCaptureTokens.forEach((t, i) => {\n t.kind = 'capturing';\n t.number = i + 1;\n });\n }\n const numCaptures = numNamedAndOptInUnnamedCaptures || potentialUnnamedCaptureTokens.length;\n // Can now split escaped nums accurately, accounting for number of captures\n const tokensWithoutIntermediate = tokens.map(\n t => t.type === 'EscapedNumber' ? splitEscapedNumberToken(t, numCaptures) : t\n ).flat();\n\n return {\n tokens: tokensWithoutIntermediate,\n flags: flagProperties,\n };\n}\n\nfunction getTokenWithDetails(context: Context, pattern: string, m: string, lastIndex: number): {\n token: Token | IntermediateToken;\n tokens?: never;\n lastIndex?: number;\n} | {\n token?: never;\n tokens: Array<Token | IntermediateToken>;\n lastIndex?: number;\n} | {\n token?: never;\n tokens?: never;\n lastIndex: number;\n} {\n const [m0, m1] = m;\n\n if (m === '[' || m === '[^') {\n const result = getAllTokensForCharClass(pattern, m, lastIndex);\n return {\n // Array of all of the char class's tokens\n tokens: result.tokens,\n // Jump forward to the end of the char class\n lastIndex: result.lastIndex,\n };\n }\n\n if (m0 === '\\\\') {\n if ('AbBGyYzZ'.includes(m1)) {\n return {\n token: createAssertionToken(m, m),\n };\n }\n if (/^\\\\g[<']/.test(m)) {\n if (!/^\\\\g(?:<[^>]+>|'[^']+')$/.test(m)) {\n throw new Error(`Invalid group name \"${m}\"`);\n }\n return {\n token: createSubroutineToken(m),\n };\n }\n if (/^\\\\k[<']/.test(m)) {\n if (!/^\\\\k(?:<[^>]+>|'[^']+')$/.test(m)) {\n throw new Error(`Invalid group name \"${m}\"`);\n }\n return {\n token: createBackreferenceToken(m),\n };\n }\n if (m1 === 'K') {\n return {\n token: createDirectiveToken('keep', m),\n };\n }\n if (m1 === 'N' || m1 === 'R') {\n return {\n token: createCharacterSetToken('newline', m, {\n // `\\N` and `\\R` are not actually opposites since the former only excludes `\\n`\n negate: m1 === 'N',\n }),\n };\n }\n if (m1 === 'O') {\n return {\n token: createCharacterSetToken('any', m),\n };\n }\n if (m1 === 'X') {\n return {\n token: createCharacterSetToken('text_segment', m),\n };\n }\n // Run last since it assumes an identity escape as final condition\n const result = tokenizeSharedEscape(m, {inCharClass: false});\n return Array.isArray(result) ? {tokens: result} : {token: result};\n }\n\n if (m0 === '(') {\n if (m1 === '*') {\n return {\n token: tokenizeNamedCallout(m),\n };\n }\n if (m === '(?{') {\n throw new Error(`Unsupported callout \"${m}\"`);\n }\n // Comment group\n if (m.startsWith('(?#')) {\n // Everything except the closing unescaped `)` is included in the match\n if (pattern[lastIndex] !== ')') {\n throw new Error('Unclosed comment group \"(?#\"');\n }\n return {\n // Jump forward to after the closing paren\n lastIndex: lastIndex + 1,\n };\n }\n // Flag modifier (directive or group opener)\n if (/^\\(\\?[-imx]+[:)]$/.test(m)) {\n return {\n token: tokenizeFlagModifier(m, context),\n };\n }\n // --- Remaining group types all reuse current flag x status ---\n context.pushModX(context.getCurrentModX());\n context.numOpenGroups++;\n if (\n // Unnamed capture if no named captures present and `captureGroup` not enabled, else\n // noncapturing group\n (m === '(' && !context.captureGroup) ||\n // Noncapturing group\n m === '(?:'\n ) {\n return {\n // For `(`, will later change to `capturing` and add `number` prop if no named captures\n token: createGroupOpenToken('group', m),\n };\n }\n // Atomic group\n if (m === '(?>') {\n return {\n token: createGroupOpenToken('atomic', m),\n };\n }\n // Lookaround\n if (m === '(?=' || m === '(?!' || m === '(?<=' || m === '(?<!') {\n return {\n token: createGroupOpenToken(m[2] === '<' ? 'lookbehind' : 'lookahead', m, {\n negate: m.endsWith('!'),\n }),\n };\n }\n // Unnamed capture when `captureGroup` enabled, or named capture (checked after lookbehind due\n // to similar syntax)\n if (\n (m === '(' && context.captureGroup) ||\n (m.startsWith('(?<') && m.endsWith('>')) ||\n (m.startsWith(\"(?'\") && m.endsWith(\"'\"))\n ) {\n return {\n token: createGroupOpenToken('capturing', m, {\n // Will add `number` prop in a second pass\n ...(m !== '(' && {name: m.slice(3, -1)}),\n }),\n };\n }\n if (m.startsWith('(?~')) {\n if (m === '(?~|') {\n throw new Error(`Unsupported absence function kind \"${m}\"`);\n }\n return {\n token: createGroupOpenToken('absence_repeater', m),\n };\n }\n if (m === '(?(') {\n // TODO: Add support\n throw new Error(`Unsupported conditional \"${m}\"`);\n }\n throw new Error(`Invalid or unsupported group option \"${m}\"`);\n }\n if (m === ')') {\n context.popModX();\n context.numOpenGroups--;\n if (context.numOpenGroups < 0) {\n throw new Error('Unmatched \")\"');\n }\n return {\n token: createGroupCloseToken(m),\n };\n }\n\n if (context.getCurrentModX()) {\n if (m === '#') {\n // Onig's only line break char is line feed\n const end = pattern.indexOf('\\n', lastIndex);\n return {\n // Jump forward to the end of the comment\n lastIndex: end === -1 ? pattern.length : end,\n };\n }\n if (/^\\s$/.test(m)) {\n const re = /\\s+/y;\n re.lastIndex = lastIndex;\n const rest = re.exec(pattern);\n return {\n // Jump forward to the end of the whitespace\n lastIndex: rest ? re.lastIndex : lastIndex,\n };\n }\n }\n\n if (m === '.') {\n return {\n token: createCharacterSetToken('dot', m),\n };\n }\n\n if (m === '^' || m === '$') {\n const kind = context.singleline ? {\n '^': r`\\A`,\n '$': r`\\Z`,\n }[m] : m;\n return {\n token: createAssertionToken(kind, m),\n };\n }\n\n if (m === '|') {\n return {\n token: createAlternatorToken(m),\n };\n }\n\n if (quantifierRe.test(m)) {\n return {\n tokens: splitQuantifierMatch(m),\n };\n }\n\n // `cpOf` asserts that it's a single code point\n return {\n token: createCharacterToken(cpOf(m), m),\n };\n}\n\nfunction getAllTokensForCharClass(pattern: string, opener: CharacterClassOpener, lastIndex: number): {\n tokens: Array<Token | IntermediateToken>;\n lastIndex: number;\n} {\n const tokens: Array<Token | IntermediateToken> = [createCharacterClassOpenToken(opener[1] === '^', opener)];\n let numCharClassesOpen = 1;\n let match: RegExpExecArray | null;\n charClassTokenRe.lastIndex = lastIndex;\n while ((match = charClassTokenRe.exec(pattern))) {\n const m = match[0];\n // Start of nested char class\n // POSIX classes are handled as a single token; not as a nested char class\n if (m[0] === '[' && m[1] !== ':') {\n numCharClassesOpen++;\n tokens.push(createCharacterClassOpenToken(m[1] === '^', m as CharacterClassOpener));\n } else if (m === ']') {\n // Always at least includes the char class opener\n if (tokens.at(-1)!.type === 'CharacterClassOpen') {\n // Allow unescaped `]` as leading char\n tokens.push(createCharacterToken(93, m));\n } else {\n numCharClassesOpen--;\n tokens.push(createCharacterClassCloseToken(m));\n if (!numCharClassesOpen) {\n break;\n }\n }\n } else {\n const result = tokenizeAnyTokenWithinCharClass(m);\n if (Array.isArray(result)) {\n tokens.push(...result);\n } else {\n tokens.push(result);\n }\n }\n }\n return {\n tokens,\n lastIndex: charClassTokenRe.lastIndex || pattern.length,\n };\n}\n\nfunction tokenizeAnyTokenWithinCharClass(raw: string): Token | IntermediateToken | Array<Token> {\n if (raw[0] === '\\\\') {\n // Assumes an identity escape as final condition\n return tokenizeSharedEscape(raw, {inCharClass: true});\n }\n // POSIX class: `[:name:]` or `[:^name:]`\n if (raw[0] === '[') {\n const posix = /\\[:(?<negate>\\^?)(?<name>[a-z]+):\\]/.exec(raw);\n if (!posix || !PosixClassNames.has(posix.groups!.name)) {\n throw new Error(`Invalid POSIX class \"${raw}\"`);\n }\n return createCharacterSetToken('posix', raw, {\n value: posix.groups!.name,\n negate: !!posix.groups!.negate,\n });\n }\n // Range (possibly invalid) or literal hyphen\n if (raw === '-') {\n return createCharacterClassHyphenToken(raw);\n }\n if (raw === '&&') {\n return createCharacterClassIntersectorToken(raw);\n }\n // `cpOf` asserts that it's a single code point\n return createCharacterToken(cpOf(raw), raw);\n}\n\n// Tokens shared by base syntax and char class syntax that start with `\\`\nfunction tokenizeSharedEscape(raw: string, {inCharClass}: {inCharClass: boolean}): Token | IntermediateToken | Array<Token> {\n const char1 = raw[1];\n if (char1 === 'c' || char1 === 'C') {\n return tokenizeControlCharacter(raw);\n }\n if ('dDhHsSwW'.includes(char1)) {\n return tokenizeShorthand(raw);\n }\n if (raw.startsWith(r`\\o{`)) {\n throw new Error(`Incomplete, invalid, or unsupported octal code point \"${raw}\"`);\n }\n if (/^\\\\[pP]\\{/.test(raw)) {\n if (raw.length === 3) {\n throw new Error(`Incomplete or invalid Unicode property \"${raw}\"`);\n }\n return tokenizeUnicodeProperty(raw);\n }\n // Hex UTF-8 encoded byte sequence\n if (/^\\\\x[89A-Fa-f]\\p{AHex}/u.test(raw)) {\n try {\n const bytes = raw.split(/\\\\x/).slice(1).map(hex => parseInt(hex, 16));\n const decoded = new TextDecoder('utf-8', {\n ignoreBOM: true,\n fatal: true,\n }).decode(new Uint8Array(bytes));\n const encoder = new TextEncoder();\n const tokens = [...decoded].map(char => {\n // Since this regenerates `raw`, it might have different casing for hex A-F than the input\n const raw = [...encoder.encode(char)].map(byte => `\\\\x${byte.toString(16)}`).join('');\n return createCharacterToken(cpOf(char), raw);\n });\n return tokens;\n } catch {\n throw new Error(`Multibyte code \"${raw}\" incomplete or invalid in Oniguruma`);\n }\n }\n if (char1 === 'u' || char1 === 'x') {\n return createCharacterToken(getValidatedHexCharCode(raw), raw);\n }\n if (EscapeCharCodes.has(char1)) {\n return createCharacterToken(EscapeCharCodes.get(char1)!, raw);\n }\n // Escaped number: backref (possibly invalid), null, octal, or identity escape, possibly followed\n // by 1-2 literal digits\n if (/\\d/.test(char1)) {\n return createEscapedNumberToken(inCharClass, raw);\n }\n if (raw === '\\\\') {\n throw new Error(r`Incomplete escape \"\\\"`);\n }\n // Meta `\\M-x` and `\\M-\\C-x` are unsupported; avoid treating as an identity escape\n if (char1 === 'M') {\n // TODO: Add support. See:\n // - <github.com/kkos/oniguruma/blob/master/doc/SYNTAX.md#12-onig_syn_op2_esc_capital_m_bar_meta-enable-m-x>\n // - <github.com/kkos/oniguruma/blob/43a8c3f3daf263091f3a74019d4b32ebb6417093/src/regparse.c#L4695>\n // - <github.com/ammar/regexp_parser/blob/8851030feda68223d74f502335fb254a20d77016/lib/regexp_parser/expression/classes/escape_sequence.rb#L75>\n throw new Error(`Unsupported meta \"${raw}\"`);\n }\n // Identity escape; count code point length\n if ([...raw].length === 2) {\n return createCharacterToken(raw.codePointAt(1)!, raw);\n }\n throw new Error(`Unexpected escape \"${raw}\"`);\n}\n\n// --------------------------------\n// --- Token creation and types ---\n// --------------------------------\n\ntype AlternatorToken = {\n type: 'Alternator';\n raw: '|';\n};\nfunction createAlternatorToken(raw: '|'): AlternatorToken {\n return {\n type: 'Alternator',\n raw,\n };\n}\n\ntype AssertionToken = {\n type: 'Assertion';\n kind: string;\n raw: string;\n};\nfunction createAssertionToken(kind: string, raw: string): AssertionToken {\n return {\n type: 'Assertion',\n kind,\n raw,\n };\n}\n\ntype BackreferenceToken = {\n type: 'Backreference';\n raw: string;\n};\nfunction createBackreferenceToken(raw: string): BackreferenceToken {\n return {\n type: 'Backreference',\n raw,\n };\n}\n\ntype CharacterToken = {\n type: 'Character';\n value: number;\n raw: string;\n};\nfunction createCharacterToken(value: number, raw: string): CharacterToken {\n return {\n type: 'Character',\n value,\n raw,\n };\n}\n\ntype CharacterClassCloseToken = {\n type: 'CharacterClassClose';\n raw: ']';\n};\nfunction createCharacterClassCloseToken(raw: ']'): CharacterClassCloseToken {\n return {\n type: 'CharacterClassClose',\n raw,\n };\n}\n\ntype CharacterClassHyphenToken = {\n type: 'CharacterClassHyphen';\n raw: '-';\n};\nfunction createCharacterClassHyphenToken(raw: '-'): CharacterClassHyphenToken {\n return {\n type: 'CharacterClassHyphen',\n raw,\n };\n}\n\ntype CharacterClassIntersectorToken = {\n type: 'CharacterClassIntersector';\n raw: '&&';\n};\nfunction createCharacterClassIntersectorToken(raw: '&&'): CharacterClassIntersectorToken {\n return {\n type: 'CharacterClassIntersector',\n raw,\n };\n}\n\ntype CharacterClassOpenToken = {\n type: 'CharacterClassOpen';\n negate: boolean;\n raw: CharacterClassOpener;\n};\ntype CharacterClassOpener = '[' | '[^';\nfunction createCharacterClassOpenToken(negate: boolean, raw: CharacterClassOpener): CharacterClassOpenToken {\n return {\n type: 'CharacterClassOpen',\n negate,\n raw,\n };\n}\n\ntype CharacterSetToken = {\n type: 'CharacterSet';\n kind: TokenCharacterSetKind;\n value?: string;\n negate?: boolean;\n raw: string;\n};\nfunction createCharacterSetToken(\n kind: TokenCharacterSetKind,\n raw: string,\n options: {\n value?: string;\n negate?: boolean;\n } = {}\n): CharacterSetToken {\n return {\n type: 'CharacterSet',\n kind,\n ...options,\n raw,\n };\n}\n\ntype DirectiveToken = {\n type: 'Directive';\n raw: string;\n} & ({\n kind: 'keep';\n flags?: never;\n} | {\n kind: 'flags';\n flags: FlagGroupModifiers;\n});\nfunction createDirectiveToken(kind: TokenDirectiveKind, raw: string, options: {flags?: FlagGroupModifiers} = {}): DirectiveToken {\n if (kind === 'keep') {\n return {\n type: 'Directive',\n kind,\n raw,\n };\n }\n return {\n type: 'Directive',\n kind,\n flags: throwIfNullish(options.flags),\n raw,\n };\n}\n\ntype EscapedNumberToken = {\n type: 'EscapedNumber';\n inCharClass: boolean;\n raw: string;\n};\n/**\nIntermediate representation only; will become a `Backreference` or one or more `Character`s.\n*/\nfunction createEscapedNumberToken(inCharClass: boolean, raw: string): EscapedNumberToken {\n return {\n type: 'EscapedNumber',\n inCharClass,\n raw,\n };\n}\n\ntype GroupCloseToken = {\n type: 'GroupClose';\n raw: ')';\n};\nfunction createGroupCloseToken(raw: ')'): GroupCloseToken {\n return {\n type: 'GroupClose',\n raw,\n };\n}\n\ntype GroupOpenToken = {\n type: 'GroupOpen';\n kind: TokenGroupOpenKind;\n flags?: FlagGroupModifiers;\n name?: string;\n number?: number;\n negate?: boolean;\n raw: string;\n};\nfunction createGroupOpenToken(\n kind: TokenGroupOpenKind,\n raw: string,\n options: {\n flags?: FlagGroupModifiers;\n name?: string;\n number?: number;\n negate?: boolean;\n } = {}\n): GroupOpenToken {\n return {\n type: 'GroupOpen',\n kind,\n ...options,\n raw,\n };\n}\n\ntype NamedCalloutToken = {\n type: 'NamedCallout';\n kind: TokenNamedCalloutKind;\n tag: string | null;\n arguments: Array<string | number> | null;\n raw: string;\n};\nfunction createNamedCalloutToken(\n kind: TokenNamedCalloutKind,\n tag: string | null,\n args: Array<string | number> | null,\n raw: string\n): NamedCalloutToken {\n return {\n type: 'NamedCallout',\n kind,\n tag,\n arguments: args,\n raw,\n };\n};\n\ntype QuantifierToken = {\n type: 'Quantifier';\n kind: TokenQuantifierKind;\n min: number;\n max: number;\n raw: string;\n};\nfunction createQuantifierToken(\n kind: TokenQuantifierKind,\n min: number,\n max: number,\n raw: string\n): QuantifierToken {\n return {\n type: 'Quantifier',\n kind,\n min,\n max,\n raw,\n };\n}\n\ntype SubroutineToken = {\n type: 'Subroutine';\n raw: string;\n};\nfunction createSubroutineToken(raw: string): SubroutineToken {\n return {\n type: 'Subroutine',\n raw,\n };\n}\n\n// ---------------\n// --- Helpers ---\n// ---------------\n\ntype FlagProperties = {\n ignoreCase: boolean;\n dotAll: boolean;\n extended: boolean;\n digitIsAscii: boolean;\n posixIsAscii: boolean;\n spaceIsAscii: boolean;\n wordIsAscii: boolean;\n textSegmentMode: 'grapheme' | 'word' | null;\n};\n\ntype FlagGroupModifiers = {\n enable?: FlagGroupSwitches;\n disable?: FlagGroupSwitches;\n};\n\ntype FlagGroupSwitches = {\n ignoreCase?: true;\n dotAll?: true;\n extended?: true;\n};\n\nconst CalloutNames = new Set<Uppercase<Exclude<TokenNamedCalloutKind, 'custom'>>>([\n 'COUNT',\n 'CMP',\n 'ERROR',\n 'FAIL',\n 'MAX',\n 'MISMATCH',\n 'SKIP',\n 'TOTAL_COUNT',\n]);\n\nconst EscapeCharCodes = new Map([\n ['a', 7], // alert/bell (Not available in JS)\n ['b', 8], // backspace (only in char classes)\n ['e', 27], // escape (Not available in JS)\n ['f', 12], // form feed\n ['n', 10], // line feed\n ['r', 13], // carriage return\n ['t', 9], // horizontal tab\n ['v', 11], // vertical tab\n]);\n\n// Expects `\\cx` or `\\C-x`\nfunction tokenizeControlCharacter(raw: string): CharacterToken {\n const char = raw[1] === 'c' ? raw[2] : raw[3];\n if (!char || !/[A-Za-z]/.test(char)) {\n // Unlike JS, Onig allows any char to follow `\\c` or `\\C-`, but this is an extreme edge case\n // TODO: Add support. See:\n // - <github.com/kkos/oniguruma/blob/master/doc/SYNTAX.md#11-onig_syn_op2_esc_capital_c_bar_control-enable-c-x>\n // - <github.com/kkos/oniguruma/blob/43a8c3f3daf263091f3a74019d4b32ebb6417093/src/regparse.c#L4695>\n throw new Error(`Unsupported control character \"${raw}\"`);\n }\n return createCharacterToken(cpOf(char.toUpperCase()) - 64, raw);\n}\n\nfunction tokenizeFlagModifier(raw: string, context: Context): DirectiveToken | GroupOpenToken {\n // Allows multiple `-` and solo `-` without `on` or `off` flags\n let {on, off} = /^\\(\\?(?<on>[imx]*)(?:-(?<off>[-imx]*))?/.exec(raw)!.groups as {on: string, off: string | undefined};\n off ??= '';\n // Flag x is used directly by the tokenizer since it changes how to interpret the pattern\n const isXOn = (context.getCurrentModX() || on.includes('x')) && !off.includes('x');\n const enabledFlags = getFlagGroupSwitches(on);\n const disabledFlags = getFlagGroupSwitches(off);\n const flagChanges: FlagGroupModifiers = {};\n enabledFlags && (flagChanges.enable = enabledFlags);\n disabledFlags && (flagChanges.disable = disabledFlags);\n // Flag directive; ex: `(?im-x)`\n if (raw.endsWith(')')) {\n // Replace flag x value until the end of the current group\n context.replaceCurrentModX(isXOn);\n // Can't remove flag directives without flags like `(?-)`; they affect following quantifiers\n return createDirectiveToken('flags', raw, {\n flags: flagChanges,\n });\n }\n // Flag group opener; ex: `(?im-x:`\n if (raw.endsWith(':')) {\n context.pushModX(isXOn);\n context.numOpenGroups++;\n return createGroupOpenToken('group', raw, {\n ...((enabledFlags || disabledFlags) && {flags: flagChanges}),\n });\n }\n throw new Error(`Unexpected flag modifier \"${raw}\"`);\n}\n\nfunction tokenizeNamedCallout(raw: string): NamedCalloutToken {\n const callout = /\\(\\*(?<name>[A-Za-z_]\\w*)?(?:\\[(?<tag>(?:[A-Za-z_]\\w*)?)\\])?(?:\\{(?<args>[^}]*)\\})?\\)/.exec(raw);\n if (!callout) {\n throw new Error(`Incomplete or invalid named callout \"${raw}\"`);\n }\n const {name, tag, args} = callout.groups as Partial<{\n name: string;\n tag: string;\n args: string;\n }>;\n if (!name) {\n throw new Error(`Invalid named callout \"${raw}\"`);\n }\n if (tag === '') {\n throw new Error(`Named callout tag with empty value not allowed \"${raw}\"`);\n }\n const argsArray: Array<string | number> = args ?\n args.split(',').\n // Onig skips over/ignores redundant/unnecessary commas\n filter(arg => arg !== '').\n map(arg => /^[+-]?\\d+$/.test(arg) ? +arg : arg) :\n [];\n const [arg0, arg1, arg2] = argsArray;\n const kind: TokenNamedCalloutKind = CalloutNames.has(name as Uppercase<Exclude<TokenNamedCalloutKind, 'custom'>>) ?\n name.toLowerCase() as TokenNamedCalloutKind :\n 'custom';\n switch (kind) {\n case 'fail':\n case 'mismatch':\n case 'skip':\n if (argsArray.length > 0) {\n throw new Error(`Named callout arguments not allowed \"${argsArray}\"`);\n }\n break;\n case 'error':\n if (argsArray.length > 1) {\n throw new Error(`Named callout allows only one argument \"${argsArray}\"`);\n }\n if (typeof arg0 === 'string') {\n throw new Error(`Named callout argument must be a number \"${arg0}\"`);\n }\n break;\n case 'max':\n if (!argsArray.length || argsArray.length > 2) {\n throw new Error(`Named callout must have one or two arguments \"${argsArray}\"`);\n }\n if (typeof arg0 === 'string' && !/^[A-Za-z_]\\w*$/.test(arg0)) {\n throw new Error(`Named callout argument one must be a tag or number \"${arg0}\"`);\n }\n if (argsArray.length === 2 && (typeof arg1 === 'number' || !/^[<>X]$/.test(arg1))) {\n throw new Error(`Named callout optional argument two must be '<', '>', or 'X' \"${arg1}\"`);\n }\n break;\n case 'count':\n case 'total_count':\n if (argsArray.length > 1) {\n throw new Error(`Named callout allows only one argument \"${argsArray}\"`);\n }\n if (argsArray.length === 1 && (typeof arg0 === 'number' || !/^[<>X]$/.test(arg0))) {\n throw new Error(`Named callout optional argument must be '<', '>', or 'X' \"${arg0}\"`);\n }\n break;\n case 'cmp':\n if (argsArray.length !== 3) {\n throw new Error(`Named callout must have three arguments \"${argsArray}\"`);\n }\n if (typeof arg0 === 'string' && !/^[A-Za-z_]\\w*$/.test(arg0)) {\n throw new Error(`Named callout argument one must be a tag or number \"${arg0}\"`);\n }\n if (typeof arg1 === 'number' || !/^(?:[<>!=]=|[<>])$/.test(arg1)) {\n throw new Error(`Named callout argument two must be '==', '!=', '>', '<', '>=', or '<=' \"${arg1}\"`);\n }\n if (typeof arg2 === 'string' && !/^[A-Za-z_]\\w*$/.test(arg2)) {\n throw new Error(`Named callout argument three must be a tag or number \"${arg2}\"`);\n }\n break;\n case 'custom':\n // TODO: Can support custom callout names via a new option that allows providing a list of\n // allowed, non-built-in names\n throw new Error(`Undefined callout name \"${name}\"`);\n default:\n throw new Error(`Unexpected named callout kind \"${kind}\"`);\n }\n // TODO: If supporting custom callout names in the future (with an added `name` property for\n // `NamedCalloutToken`), will need to set `name` to `null` if `kind` isn't `'custom'`\n return createNamedCalloutToken(kind, tag ?? null, args?.split(',') ?? null, raw);\n}\n\nfunction tokenizeQuantifier(raw: string): QuantifierToken {\n let kind: TokenQuantifierKind = null!;\n let min: number;\n let max: number;\n if (raw[0] === '{') {\n const {minStr, maxStr} =\n /^\\{(?<minStr>\\d*)(?:,(?<maxStr>\\d*))?/.exec(raw)!.groups as {minStr: string, maxStr: string | undefined};\n const limit = 100_000;\n if (+minStr > limit || (maxStr && +maxStr > limit)) {\n throw new Error('Quantifier value unsupported in Oniguruma');\n }\n min = +minStr;\n max = maxStr === undefined ? +minStr : (maxStr === '' ? Infinity : +maxStr);\n // By default, Onig doesn't support making interval quantifiers possessive with a `+` suffix;\n // uses reversed range instead\n if (min > max) {\n kind = 'possessive';\n [min, max] = [max, min];\n }\n if (raw.endsWith('?')) {\n if (kind === 'possessive') {\n // TODO: <github.com/slevithan/oniguruma-parser/issues/10>\n throw new Error('Unsupported possessive interval quantifier chain with \"?\"');\n }\n kind = 'lazy';\n } else if (!kind) {\n kind = 'greedy';\n }\n } else {\n min = raw[0] === '+' ? 1 : 0;\n max = raw[0] === '?' ? 1 : Infinity;\n kind = raw[1] === '+' ? 'possessive' : (raw[1] === '?' ? 'lazy' : 'greedy');\n }\n return createQuantifierToken(kind, min, max, raw);\n}\n\nfunction tokenizeShorthand(raw: string): CharacterSetToken {\n const lower = raw[1].toLowerCase();\n return createCharacterSetToken({\n 'd': 'digit',\n 'h': 'hex',\n 's': 'space',\n 'w': 'word',\n }[lower] as TokenCharacterSetKind, raw, {\n negate: raw[1] !== lower,\n });\n}\n\nfunction tokenizeUnicodeProperty(raw: string): CharacterSetToken {\n const {p, neg, value} = /^\\\\(?<p>[pP])\\{(?<neg>\\^?)(?<value>[^}]+)/.exec(raw)!.groups!;\n const negate = (p === 'P' && !neg) || (p === 'p' && !!neg);\n return createCharacterSetToken('property', raw, {\n value,\n negate,\n });\n}\n\nfunction getFlagGroupSwitches(flags: string): FlagGroupSwitches | null {\n // Don't include `false` for flags that aren't included\n const obj: FlagGroupSwitches = {};\n if (flags.includes('i')) {\n obj.ignoreCase = true;\n }\n if (flags.includes('m')) {\n // Onig flag m is equivalent to JS flag s\n obj.dotAll = true;\n }\n if (flags.includes('x')) {\n obj.extended = true;\n }\n return Object.keys(obj).length ? obj : null;\n}\n\nfunction getFlagProperties(flags: string): FlagProperties {\n const flagProperties: FlagProperties = {\n ignoreCase: false,\n dotAll: false,\n extended: false,\n digitIsAscii: false,\n posixIsAscii: false,\n spaceIsAscii: false,\n wordIsAscii: false,\n textSegmentMode: null,\n };\n for (let i = 0; i < flags.length; i++) {\n const char = flags[i];\n if (!'imxDPSWy'.includes(char)) {\n throw new Error(`Invalid flag \"${char}\"`);\n }\n // Flags y{g}, y{w} are currently only supported via the top-level `flags` option\n if (char === 'y') {\n if (!/^y{[gw]}/.test(flags.slice(i))) {\n throw new Error('Invalid or unspecified flag \"y\" mode');\n }\n // If text segment mode flags appear multiple times, use the last one\n flagProperties.textSegmentMode = flags[i + 2] === 'g' ? 'grapheme' : 'word';\n i += 3;\n continue;\n }\n flagProperties[{\n i: 'ignoreCase',\n // Flag m is called `multiline` in Onig, but that has a different meaning in JS. Onig flag m\n // is equivalent to JS flag s\n m: 'dotAll',\n // Flag x is fully handled during tokenization\n x: 'extended',\n // Flags D, P, S, W are currently only supported via the top-level `flags` option\n D: 'digitIsAscii',\n P: 'posixIsAscii',\n S: 'spaceIsAscii',\n W: 'wordIsAscii',\n }[char] as Exclude<keyof FlagProperties, 'textSegmentMode'>] = true;\n }\n return flagProperties;\n}\n\n// - Unenclosed `\\xNN` above 0x7F is handled elsewhere as a UTF-8 encoded byte sequence\n// - Enclosed `\\x{}` with value above 0x10FFFF is allowed here; handled in the parser\nfunction getValidatedHexCharCode(raw: string): number {\n // Note: Onig 6.9.10 and earlier have a bug where pattern-terminating `\\u` and `\\x` are treated\n // as identity escapes; see <github.com/kkos/oniguruma/issues/343>. Don't emulate these bugs.\n // Additionally, Onig treats bare `\\x` as equivalent to `\\0`, and treats incomplete `\\x{` (with\n // the brace but not immediately followed by a hex digit) as an identity escape, so e.g. `\\x{`\n // matches `x{` and `^\\x{,2}$` matches `xx`, but `\\x{2,}` and `\\x{0,2}` are errors. Currently,\n // this library treats all such cases as errors\n if (/^(?:\\\\u(?!\\p{AHex}{4})|\\\\x(?!\\p{AHex}{1,2}|\\{\\p{AHex}{1,8}\\}))/u.test(raw)) {\n throw new Error(`Incomplete or invalid escape \"${raw}\"`);\n }\n // Might include leading 0s\n const hex = raw[2] === '{' ?\n /^\\\\x\\{\\s*(?<hex>\\p{AHex}+)/u.exec(raw)!.groups!.hex :\n raw.slice(2);\n return parseInt(hex, 16);\n}\n\n// Value is 1-3 digits, which can be a backref (possibly invalid), null, octal, or identity escape,\n// possibly followed by 1-2 literal digits\nfunction splitEscapedNumberToken(token: EscapedNumberToken, numCaptures: number): Array<BackreferenceToken> | Array<CharacterToken> {\n const {raw, inCharClass} = token;\n // Keep any leading 0s since they indicate octal\n const value = raw.slice(1);\n // Backref (possibly invalid)\n if (\n !inCharClass &&\n ( // Single digit 1-9 outside a char class is always treated as a backref\n (value !== '0' && value.length === 1) ||\n // Leading 0 makes it octal; backrefs can't include following literal digits\n (value[0] !== '0' && +value <= numCaptures)\n )\n ) {\n return [createBackreferenceToken(raw)];\n }\n const tokens: Array<CharacterToken> = [];\n // Returns 1-3 matches; the first (only) might be octal\n const matches = value.match(/^[0-7]+|\\d/g)!;\n for (let i = 0; i < matches.length; i++) {\n const m = matches[i];\n let value: number;\n // Octal digits are 0-7\n if (i === 0 && m !== '8' && m !== '9') {\n value = parseInt(m, 8);\n if (value > 0o177) {\n // Octal UTF-8 encoded byte sequence; not yet supported\n throw new Error(r`Octal encoded byte above 177 unsupported \"${raw}\"`);\n }\n } else {\n value = cpOf(m);\n }\n tokens.push(createCharacterToken(value, (i === 0 ? '\\\\' : '') + m));\n }\n return tokens;\n}\n\nfunction splitQuantifierMatch(str: string): Array<QuantifierToken> {\n const tokens: Array<QuantifierToken> = [];\n // `str` is one or more quantifiers in a chain. It can't be split by a regex because of one edge\n // case where we have to compare numeric values: although `{1,2}?` is a single, lazy quantifier,\n // a reversed (possessive) interval quantifier like `{2,1}` can't be both possessive and lazy, so\n // any following `?`, `??`, or `?+` is a second, chained quantifier (i.e., `{2,1}?` is equivalent\n // to `{2,1}{0,1}` or `{2,0}`)\n const withG = new RegExp(quantifierRe, 'gy');\n let match: RegExpExecArray | null;\n while ((match = withG.exec(str))) {\n const m = match[0];\n if (m[0] === '{') {\n // Doesn't need to handle fixed `{n}`, infinite max `{n,}`, or implicit zero min `{,n}`\n // since, according to Onig syntax rules, those can't be possessive\n const parts = /^\\{(?<min>\\d+),(?<max>\\d+)\\}\\??$/.exec(m);\n if (parts) {\n const {min, max} = parts.groups as {min: string, max: string};\n if (+min > +max && m.endsWith('?')) {\n // Leave the trailing `?` for the next match\n withG.lastIndex--;\n tokens.push(tokenizeQuantifier(m.slice(0, -1)));\n continue;\n }\n }\n }\n tokens.push(tokenizeQuantifier(m));\n }\n return tokens;\n}\n\nexport {\n type AlternatorToken,\n type AssertionToken,\n type BackreferenceToken,\n type CharacterToken,\n type CharacterClassCloseToken,\n type CharacterClassHyphenToken,\n type CharacterClassIntersectorToken,\n type CharacterClassOpenToken,\n type CharacterSetToken,\n type DirectiveToken,\n type FlagGroupModifiers,\n type FlagProperties,\n type GroupCloseToken,\n type GroupOpenToken,\n type NamedCalloutToken,\n type QuantifierToken,\n type SubroutineToken,\n type Token,\n type TokenCharacterSetKind,\n type TokenDirectiveKind,\n type TokenNamedCalloutKind,\n type TokenQuantifierKind,\n tokenize,\n};\n","import type {AlternativeContainerNode, Node, ParentNode, QuantifiableNode} from './parse.js';\n\ntype KeysOfUnion<T> = T extends T ? keyof T: never;\ntype Props = {[key in KeysOfUnion<Node>]?: any} & {type?: Node['type']};\n\nfunction hasOnlyChild(node: ParentNode & {body: Array<Node>}, props?: Props): boolean {\n if (!Array.isArray(node.body)) {\n throw new Error('Expected node with body array');\n }\n if (node.body.length !== 1) {\n return false;\n }\n const kid = node.body[0] as Props;\n return !props || Object.keys(props).every(key => props[key as keyof Props] === kid[key as keyof Props]);\n}\n\nfunction isAlternativeContainer(node: Node): node is AlternativeContainerNode {\n if (\n !alternativeContainerTypes.has(node.type) ||\n (node.type === 'AbsenceFunction' && node.kind !== 'repeater')\n ) {\n return false;\n }\n return true;\n}\nconst alternativeContainerTypes = new Set<Node['type']>([\n 'AbsenceFunction',\n 'CapturingGroup',\n 'Group',\n 'LookaroundAssertion',\n 'Regex',\n]);\n\nfunction isQuantifiable(node: Node): node is QuantifiableNode {\n return quantifiableTypes.has(node.type);\n}\nconst quantifiableTypes = new Set<Node['type']>([\n 'AbsenceFunction',\n 'Backreference',\n 'CapturingGroup',\n 'Character',\n 'CharacterClass',\n 'CharacterSet',\n 'Group',\n 'Quantifier',\n 'Subroutine',\n]);\n\nexport {\n hasOnlyChild,\n isAlternativeContainer,\n isQuantifiable,\n};\n","import type {AssertionToken, BackreferenceToken, CharacterClassHyphenToken, CharacterClassOpenToken, CharacterSetToken, FlagGroupModifiers, FlagProperties, GroupOpenToken, QuantifierToken, SubroutineToken, Token, TokenCharacterSetKind, TokenDirectiveKind, TokenNamedCalloutKind, TokenQuantifierKind} from '../tokenizer/tokenize.js';\nimport {tokenize} from '../tokenizer/tokenize.js';\nimport {cpOf, getOrInsert, PosixClassNames, r, throwIfNullish} from '../utils.js';\nimport {hasOnlyChild, isAlternativeContainer, isQuantifiable} from './node-utils.js';\n\n// Watch out for the DOM `Node` interface!\ntype Node =\n AbsenceFunctionNode |\n AlternativeNode |\n AssertionNode |\n BackreferenceNode |\n CapturingGroupNode |\n CharacterNode |\n CharacterClassNode |\n CharacterClassRangeNode |\n CharacterSetNode |\n DirectiveNode |\n FlagsNode |\n GroupNode |\n LookaroundAssertionNode |\n NamedCalloutNode |\n QuantifierNode |\n RegexNode |\n SubroutineNode;\n\ntype OnigurumaAst = RegexNode;\n\ntype ParentNode =\n AlternativeContainerNode |\n AlternativeNode |\n CharacterClassNode |\n CharacterClassRangeNode |\n QuantifierNode;\n\n// See also `isAlternativeContainer`\ntype AlternativeContainerNode =\n AbsenceFunctionNode | // Some sub-kinds aren't alternative containers\n CapturingGroupNode |\n GroupNode |\n LookaroundAssertionNode |\n RegexNode;\n\ntype AlternativeElementNode =\n AbsenceFunctionNode |\n AssertionNode |\n BackreferenceNode |\n CapturingGroupNode |\n CharacterNode |\n CharacterClassNode |\n CharacterSetNode |\n DirectiveNode |\n GroupNode |\n LookaroundAssertionNode |\n NamedCalloutNode |\n QuantifierNode |\n SubroutineNode;\n\ntype CharacterClassElementNode =\n CharacterNode |\n CharacterClassNode |\n CharacterClassRangeNode |\n CharacterSetNode;\n\n// See also `isQuantifiable`\ntype QuantifiableNode =\n AbsenceFunctionNode |\n BackreferenceNode |\n CapturingGroupNode |\n CharacterNode |\n CharacterClassNode |\n CharacterSetNode |\n GroupNode |\n QuantifierNode |\n SubroutineNode;\n\n// TODO: Support remaining kinds; see <github.com/slevithan/oniguruma-to-es/issues/13>\ntype NodeAbsenceFunctionKind =\n 'repeater';\n\ntype NodeAssertionKind =\n 'line_end' |\n 'line_start' |\n 'search_start' |\n 'string_end' |\n 'string_end_newline' |\n 'string_start' |\n 'text_segment_boundary' |\n 'word_boundary';\n\ntype NodeCharacterClassKind =\n 'union' |\n 'intersection';\n\ntype NodeCharacterSetKind = TokenCharacterSetKind;\n\ntype NodeDirectiveKind = TokenDirectiveKind;\n\ntype NodeLookaroundAssertionKind =\n 'lookahead' |\n 'lookbehind';\n\ntype NodeNamedCalloutKind = TokenNamedCalloutKind;\n\ntype NodeQuantifierKind = TokenQuantifierKind;\n\ntype UnicodePropertyMap = Map<string, string>;\n\ntype Context = {\n capturingGroups: Array<CapturingGroupNode>;\n hasNumberedRef: boolean;\n namedGroupsByName: Map<string, Array<CapturingGroupNode>>;\n nextIndex: number;\n normalizeUnknownPropertyNames: boolean;\n parent: ParentNode;\n skipBackrefValidation: boolean;\n skipLookbehindValidation: boolean;\n skipPropertyNameValidation: boolean;\n subroutines: Array<SubroutineNode>;\n tokens: Array<Token>;\n unicodePropertyMap: UnicodePropertyMap | null;\n walk: (parent: ParentNode, state: State) => Node;\n};\n\n// Top-level `walk` calls are given empty state; nested calls can add data specific to their `walk`\ntype State = {\n isCheckingRangeEnd?: boolean;\n isInAbsenceFunction?: boolean;\n isInLookbehind?: boolean;\n isInNegLookbehind?: boolean;\n};\n\ntype ParseOptions = {\n flags?: string;\n normalizeUnknownPropertyNames?: boolean;\n rules?: {\n captureGroup?: boolean;\n singleline?: boolean;\n };\n skipBackrefValidation?: boolean;\n skipLookbehindValidation?: boolean;\n skipPropertyNameValidation?: boolean;\n unicodePropertyMap?: UnicodePropertyMap | null;\n};\n\nfunction parse(pattern: string, options: ParseOptions = {}): OnigurumaAst {\n const opts: Required<ParseOptions> = {\n flags: '',\n normalizeUnknownPropertyNames: false,\n skipBackrefValidation: false,\n skipLookbehindValidation: false,\n skipPropertyNameValidation: false,\n // `toOnigurumaAst` provides `OnigUnicodePropertyMap`, but it can be custom or `null`\n unicodePropertyMap: null,\n ...options,\n rules: {\n captureGroup: false, // `ONIG_OPTION_CAPTURE_GROUP`\n singleline: false, // `ONIG_OPTION_SINGLELINE`\n ...options.rules,\n },\n };\n const tokenized = tokenize(pattern, {\n // Limit to the tokenizer's options\n flags: opts.flags,\n rules: {\n captureGroup: opts.rules.captureGroup,\n singleline: opts.rules.singleline,\n },\n });\n const walk: Context['walk'] = (parent, state) => {\n const token = tokenized.tokens[context.nextIndex];\n context.parent = parent;\n // Advance for the next iteration\n context.nextIndex++;\n switch (token.type) {\n case 'Alternator':\n // Top-level only; groups handle their own alternators\n return createAlternative();\n case 'Assertion':\n return parseAssertion(token);\n case 'Backreference':\n return parseBackreference(token, context);\n case 'Character':\n return createCharacter(token.value, {useLastValid: !!state.isCheckingRangeEnd});\n case 'CharacterClassHyphen':\n return parseCharacterClassHyphen(token, context, state);\n case 'CharacterClassOpen':\n return parseCharacterClassOpen(token, context, state);\n case 'CharacterSet':\n return parseCharacterSet(token, context);\n case 'Directive':\n return createDirective(token.kind, {flags: token.flags});\n case 'GroupOpen':\n return parseGroupOpen(token, context, state);\n case 'NamedCallout':\n return createNamedCallout(token.kind, token.tag, token.arguments);\n case 'Quantifier':\n return parseQuantifier(token, context);\n case 'Subroutine':\n return parseSubroutine(token, context);\n default:\n throw new Error(`Unexpected token type \"${token.type}\"`);\n }\n }\n const context: Context = {\n capturingGroups: [],\n hasNumberedRef: false,\n namedGroupsByName: new Map(),\n nextIndex: 0,\n normalizeUnknownPropertyNames: opts.normalizeUnknownPropertyNames,\n parent: null!, // Assigned by `walk`\n skipBackrefValidation: opts.skipBackrefValidation,\n skipLookbehindValidation: opts.skipLookbehindValidation,\n skipPropertyNameValidation: opts.skipPropertyNameValidation,\n subroutines: [],\n tokens: tokenized.tokens,\n unicodePropertyMap: opts.unicodePropertyMap,\n walk,\n };\n\n // ## AST construction from tokens\n const ast = createRegex(createFlags(tokenized.flags));\n let top = ast.body[0]; // First alt\n while (context.nextIndex < tokenized.tokens.length) {\n const node = walk(top, {});\n if (node.type === 'Alternative') {\n ast.body.push(node);\n top = node;\n } else {\n top.body.push(node as AlternativeElementNode);\n }\n }\n\n // ## Validation that requires knowledge about the complete pattern\n // `context` updated by the preceding `walk` loop\n const {capturingGroups, hasNumberedRef, namedGroupsByName, subroutines} = context;\n if (hasNumberedRef && namedGroupsByName.size && !opts.rules.captureGroup) {\n throw new Error('Numbered backref/subroutine not allowed when using named capture');\n }\n for (const {ref} of subroutines) {\n if (typeof ref === 'number') {\n // Relative nums are already resolved\n if (ref > capturingGroups.length) {\n throw new Error(`Subroutine uses a group number that's not defined`);\n }\n if (ref) {\n capturingGroups[ref - 1].isSubroutined = true;\n }\n } else if (!namedGroupsByName.has(ref)) {\n throw new Error(r`Subroutine uses a group name that's not defined \"\\g<${ref}>\"`);\n } else if (namedGroupsByName.get(ref)!.length > 1) {\n throw new Error(r`Subroutine uses a duplicate group name \"\\g<${ref}>\"`);\n } else {\n namedGroupsByName.get(ref)![0].isSubroutined = true;\n }\n }\n\n return ast;\n}\n\nfunction parseAssertion({kind}: AssertionToken): AssertionNode {\n return createAssertion(\n throwIfNullish({\n '^': 'line_start',\n '$': 'line_end',\n '\\\\A': 'string_start',\n '\\\\b': 'word_boundary',\n '\\\\B': 'word_boundary',\n '\\\\G': 'search_start',\n '\\\\y': 'text_segment_boundary',\n '\\\\Y': 'text_segment_boundary',\n '\\\\z': 'string_end',\n '\\\\Z': 'string_end_newline',\n }[kind], `Unexpected assertion kind \"${kind}\"`) as NodeAssertionKind,\n {negate: kind === r`\\B` || kind === r`\\Y`}\n );\n}\n\n// Supported (if the backref appears to the right of the reffed capture's opening paren):\n// - `\\k<name>`, `\\k'name'`\n// - When named capture not used:\n// - `\\n`, `\\nn`, `\\nnn`\n// - `\\k<n>`, `\\k'n'\n// - `\\k<-n>`, `\\k'-n'`\n// Unsupported:\n// - `\\k<+n>`, `\\k'+n'` - Note that, Unlike Oniguruma, Onigmo doesn't support this as special\n// syntax and therefore considers it a valid group name.\n// - Backref with recursion level (with num or name): `\\k<n+level>`, `\\k<n-level>`, etc.\n// (Onigmo also supports `\\k<-n+level>`, `\\k<-n-level>`, etc.)\n// Backrefs in Onig use multiplexing for duplicate group names (the rules can be complicated when\n// overlapping with subroutines), but a `Backreference`'s simple `ref` prop doesn't capture these\n// details so multiplexed ref pointers need to be derived when working with the AST\nfunction parseBackreference({raw}: BackreferenceToken, context: Context): BackreferenceNode {\n const hasKWrapper = /^\\\\k[<']/.test(raw);\n const ref = hasKWrapper ? raw.slice(3, -1) : raw.slice(1);\n const fromNum = (num: number, isRelative = false) => {\n const numCapturesToLeft = context.capturingGroups.length;\n let orphan = false;\n // Note: It's not an error for numbered backrefs to come before their referenced group in Onig,\n // but it's currently an error in this library.\n // - Most such placements are mistakes and can never match, due to Onig's behavior for backrefs\n // to nonparticipating groups.\n // - The edge cases where they're matchable rely on rules for backref resetting within\n // quantified groups that are different in JS (thus not emulatable in `oniguruma-to-es`).\n // - Erroring matches the correct behavior of named backrefs.\n // - For unenclosed backrefs, this only affects `\\1`-`\\9` since it's not a backref in the first\n // place if using `\\10` or higher and not as many capturing groups are defined to the left\n // (it's an octal or identity escape).\n // TODO: Ideally this would be refactored to include the backref in the AST when it's not an\n // error in Onig (due to the reffed group being defined to the right), and the error handling\n // would move to the `oniguruma-to-es` transformer\n if (num > numCapturesToLeft) {\n // Skipping the error breaks assumptions and might create edge case issues, since backrefs\n // are required to come after their captures; unfortunately this option is needed for\n // TextMate grammars\n if (context.skipBackrefValidation) {\n orphan = true;\n } else {\n throw new Error(`Not enough capturing groups defined to the left \"${raw}\"`);\n }\n }\n context.hasNumberedRef = true;\n return createBackreference(isRelative ? numCapturesToLeft + 1 - num : num, {orphan});\n };\n if (hasKWrapper) {\n const numberedRef = /^(?<sign>-?)0*(?<num>[1-9]\\d*)$/.exec(ref);\n if (numberedRef) {\n return fromNum(+numberedRef.groups!.num, !!numberedRef.groups!.sign);\n }\n // Invalid in a backref name even when valid in a group name\n if (/[-+]/.test(ref)) {\n throw new Error(`Invalid backref name \"${raw}\"`);\n }\n if (!context.namedGroupsByName.has(ref)) {\n throw new Error(`Group name not defined to the left \"${raw}\"`);\n }\n return createBackreference(ref);\n }\n return fromNum(+ref);\n}\n\nfunction parseCharacterClassHyphen(_: CharacterClassHyphenToken, context: Context, state: State): CharacterNode | CharacterClassRangeNode {\n const {tokens, walk} = context;\n const parent = context.parent as CharacterClassNode;\n const prevSiblingNode = parent.body.at(-1);\n const nextToken = tokens[context.nextIndex];\n if (\n !state.isCheckingRangeEnd &&\n prevSiblingNode &&\n prevSiblingNode.type !== 'CharacterClass' &&\n prevSiblingNode.type !== 'CharacterClassRange' &&\n nextToken &&\n nextToken.type !== 'CharacterClassOpen' &&\n nextToken.type !== 'CharacterClassClose' &&\n nextToken.type !== 'CharacterClassIntersector'\n ) {\n const nextNode = walk(parent, {\n ...state,\n isCheckingRangeEnd: true,\n });\n if (prevSiblingNode.type === 'Character' && nextNode.type === 'Character') {\n parent.body.pop();\n return createCharacterClassRange(prevSiblingNode, nextNode);\n }\n throw new Error('Invalid character class range');\n }\n return createCharacter(cpOf('-'));\n}\n\nfunction parseCharacterClassOpen({negate}: CharacterClassOpenToken, context: Context, state: State): CharacterClassNode {\n const {tokens, walk} = context;\n const firstClassToken = tokens[context.nextIndex];\n const intersections = [createCharacterClass()];\n let nextToken = throwIfUnclosedCharacterClass(firstClassToken);\n while (nextToken.type !== 'CharacterClassClose') {\n if (nextToken.type === 'CharacterClassIntersector') {\n intersections.push(createCharacterClass());\n // Skip the intersector\n context.nextIndex++;\n } else {\n const cc = intersections.at(-1)!; // Always at least one\n cc.body.push(walk(cc, state) as CharacterClassElementNode);\n }\n nextToken = throwIfUnclosedCharacterClass(tokens[context.nextIndex], firstClassToken);\n }\n const node = createCharacterClass({negate});\n if (intersections.length === 1) {\n node.body = intersections[0].body;\n } else {\n node.kind = 'intersection';\n node.body = intersections.map(cc => cc.body.length === 1 ? cc.body[0] : cc);\n }\n // Skip the closing square bracket\n context.nextIndex++;\n return node;\n}\n\nfunction parseCharacterSet({kind, negate, value}: CharacterSetToken, context: Context): CharacterSetNode {\n const {normalizeUnknownPropertyNames, skipPropertyNameValidation, unicodePropertyMap} = context;\n if (kind === 'property') {\n const normalized = slug(value!);\n // Don't treat as POSIX if it's in the provided list of Unicode property names\n if (PosixClassNames.has(normalized) && !unicodePropertyMap?.has(normalized)) {\n kind = 'posix';\n value = normalized;\n } else {\n return createUnicodeProperty(value!, {\n negate,\n normalizeUnknownPropertyNames,\n skipPropertyNameValidation,\n unicodePropertyMap,\n });\n }\n }\n if (kind === 'posix') {\n return createPosixClass(value!, {negate});\n }\n return createCharacterSet(kind, {negate});\n}\n\nfunction parseGroupOpen(token: GroupOpenToken, context: Context, state: State): AbsenceFunctionNode | CapturingGroupNode | GroupNode | LookaroundAssertionNode {\n const {tokens, capturingGroups, namedGroupsByName, skipLookbehindValidation, walk} = context;\n const node = createByGroupKind(token);\n const isThisAbsenceFunction = node.type === 'AbsenceFunction';\n const isThisLookbehind = isLookbehind(node);\n const isThisNegLookbehind = isThisLookbehind && node.negate;\n // Track capturing group details for backrefs and subroutines (before parsing the group's\n // contents so nested groups with the same name are tracked in order)\n if (node.type === 'CapturingGroup') {\n capturingGroups.push(node);\n if (node.name) {\n getOrInsert(namedGroupsByName, node.name, []).push(node);\n }\n }\n // Don't allow nested absence functions\n if (isThisAbsenceFunction && state.isInAbsenceFunction) {\n // Is officially unsupported in Onig but doesn't throw, gives strange results\n throw new Error('Nested absence function not supported by Oniguruma');\n }\n let nextToken = throwIfUnclosedGroup(tokens[context.nextIndex]);\n while (nextToken.type !== 'GroupClose') {\n if (nextToken.type === 'Alternator') {\n node.body.push(createAlternative());\n // Skip the alternator\n context.nextIndex++;\n } else {\n const alt = node.body.at(-1)!; // Always at least one\n const child = walk(alt, {\n ...state,\n isInAbsenceFunction: state.isInAbsenceFunction || isThisAbsenceFunction,\n isInLookbehind: state.isInLookbehind || isThisLookbehind,\n isInNegLookbehind: state.isInNegLookbehind || isThisNegLookbehind,\n }) as AlternativeElementNode;\n alt.body.push(child);\n // Centralized validation of lookbehind contents\n if ((isThisLookbehind || state.isInLookbehind) && !skipLookbehindValidation) {\n // JS supports all features within lookbehind, but Onig doesn't. Absence functions of form\n // `(?~|)` and `(?~|…)` are also invalid in lookbehind (the `(?~…)` and `(?~|…|…)` forms\n // are allowed), but all forms with `(?~|` throw since they aren't yet supported\n const msg = 'Lookbehind includes a pattern not allowed by Oniguruma';\n if (isThisNegLookbehind || state.isInNegLookbehind) {\n // - Invalid: `(?=…)`, `(?!…)`, capturing groups\n // - Valid: `(?<=…)`, `(?<!…)`\n if (isLookahead(child) || child.type === 'CapturingGroup') {\n throw new Error(msg);\n }\n } else {\n // - Invalid: `(?=…)`, `(?!…)`, `(?<!…)`\n // - Valid: `(?<=…)`, capturing groups\n if (isLookahead(child) || (isLookbehind(child) && child.negate)) {\n throw new Error(msg);\n }\n }\n }\n }\n nextToken = throwIfUnclosedGroup(tokens[context.nextIndex]);\n }\n // Skip the closing parenthesis\n context.nextIndex++;\n return node;\n}\n\nfunction parseQuantifier({kind, min, max}: QuantifierToken, context: Context): QuantifierNode {\n const parent = context.parent as AlternativeNode;\n const quantifiedNode = parent.body.at(-1);\n if (!quantifiedNode || !isQuantifiable(quantifiedNode)) {\n throw new Error('Quantifier requires a repeatable token');\n }\n const node = createQuantifier(kind, min, max, quantifiedNode);\n parent.body.pop();\n return node;\n}\n\n// Onig subroutine behavior:\n// - Subroutines can appear before the groups they reference; ex: `\\g<1>(a)` is valid.\n// - Multiple subroutines can reference the same group.\n// - Subroutines can reference groups that themselves contain subroutines, followed to any depth.\n// - Subroutines can be used recursively, and `\\g<0>` recursively references the whole pattern.\n// - Subroutines can use relative references (backward or forward); ex: `\\g<+1>(.)\\g<-1>`.\n// - Subroutines don't get their own capturing group numbers; ex: `(.)\\g<1>\\2` is invalid.\n// - Subroutines use the flags that apply to their referenced group, so e.g.\n// `(?-i)(?<a>a)(?i)\\g<a>` is fully case sensitive.\n// - Differences from PCRE/Perl/Regex+ subroutines:\n// - Subroutines can't reference duplicate group names (though duplicate names are valid if no\n// subroutines reference them).\n// - Subroutines can't use absolute or relative numbers if named capture is used anywhere.\n// - Named backrefs must be to the right of their group definition, so the backref in\n// `\\g<a>\\k<a>(?<a>)` is invalid (not directly related to subroutines).\n// - Subroutines don't restore capturing group match values (for backrefs) upon exit, so e.g.\n// `(?<a>(?<b>[ab]))\\g<a>\\k<b>` matches `abb` but not `aba`; same for numbered.\n// The interaction of backref multiplexing (an Onig-specific feature) and subroutines is complex:\n// - Only the most recent value matched by a capturing group and its subroutines is considered for\n// backref multiplexing, and this also applies to capturing groups nested within a group that's\n// referenced by a subroutine.\n// - Although a subroutine can't reference a group with a duplicate name, it can reference a group\n// with a nested capture whose name is duplicated (e.g. outside of the referenced group).\n// - These duplicate names can then multiplex; but only the most recent value matched from within\n// the outer group (or the subroutines that reference it) is available for multiplexing.\n// - Ex: With `(?<a>(?<b>[123]))\\g<a>\\g<a>(?<b>0)\\k<b>`, the backref `\\k<b>` can only match `0`\n// or whatever was matched by the most recently matched subroutine. If you took out `(?<b>0)`,\n// no multiplexing would occur.\nfunction parseSubroutine({raw}: SubroutineToken, context: Context): SubroutineNode {\n const {capturingGroups, subroutines} = context;\n let ref: string | number = raw.slice(3, -1);\n const numberedRef = /^(?<sign>[-+]?)0*(?<num>[1-9]\\d*)$/.exec(ref);\n if (numberedRef) {\n const num = +numberedRef.groups!.num;\n const numCapturesToLeft = capturingGroups.length;\n context.hasNumberedRef = true;\n ref = {\n '': num,\n '+': numCapturesToLeft + num,\n '-': numCapturesToLeft + 1 - num,\n }[numberedRef.groups!.sign]!;\n if (ref < 1) {\n throw new Error('Invalid subroutine number');\n }\n // Special case for full-pattern recursion; can't be `+0`, `-0`, `00`, etc.\n } else if (ref === '0') {\n ref = 0;\n }\n const node = createSubroutine(ref);\n subroutines.push(node);\n return node;\n}\n\n// -------------------------------\n// --- Node creation and types ---\n// -------------------------------\n\ntype AbsenceFunctionNode = {\n type: 'AbsenceFunction';\n kind: NodeAbsenceFunctionKind;\n body: Array<AlternativeNode>;\n};\nfunction createAbsenceFunction(kind: NodeAbsenceFunctionKind, options?: {\n body?: Array<AlternativeNode>;\n}): AbsenceFunctionNode {\n if (kind !== 'repeater') {\n throw new Error(`Unexpected absence function kind \"${kind}\"`);\n }\n return {\n type: 'AbsenceFunction',\n kind,\n body: getBodyForAlternativeContainer(options?.body),\n };\n}\n\ntype AlternativeNode = {\n type: 'Alternative';\n body: Array<AlternativeElementNode>;\n};\nfunction createAlternative(options?: {\n body?: Array<AlternativeElementNode>;\n}): AlternativeNode {\n return {\n type: 'Alternative',\n body: getBodyForElementContainer(options?.body) as Array<AlternativeElementNode>,\n };\n}\n\ntype AssertionNode = {\n type: 'Assertion';\n kind: NodeAssertionKind;\n negate?: boolean;\n};\nfunction createAssertion(kind: NodeAssertionKind, options?: {\n negate?: boolean;\n}): AssertionNode {\n const node: AssertionNode = {\n type: 'Assertion',\n kind,\n };\n if (kind === 'word_boundary' || kind === 'text_segment_boundary') {\n node.negate = !!options?.negate;\n }\n return node;\n}\n\ntype BackreferenceNode = {\n type: 'Backreference';\n ref: string | number;\n orphan?: boolean;\n};\nfunction createBackreference(ref: string | number, options?: {\n orphan?: boolean;\n}): BackreferenceNode {\n const orphan = !!options?.orphan;\n return {\n type: 'Backreference',\n ref,\n ...(orphan && {orphan}),\n };\n}\n\ntype CapturingGroupNode = {\n type: 'CapturingGroup';\n kind?: never;\n number: number;\n name?: string;\n // One or more subroutines in the regex reference this group\n isSubroutined?: boolean;\n body: Array<AlternativeNode>;\n};\nfunction createCapturingGroup(number: number, options?: {\n name?: string;\n isSubroutined?: boolean;\n body?: Array<AlternativeNode>;\n}): CapturingGroupNode {\n const opts = {\n name: undefined,\n isSubroutined: false,\n ...options,\n };\n if (opts.name !== undefined && !isValidGroupName(opts.name)) {\n throw new Error(`Group name \"${opts.name}\" invalid in Oniguruma`);\n }\n return {\n type: 'CapturingGroup',\n number,\n ...(opts.name && {name: opts.name}),\n ...(opts.isSubroutined && {isSubroutined: opts.isSubroutined}),\n body: getBodyForAlternativeContainer(options?.body),\n };\n}\n\ntype CharacterNode = {\n type: 'Character';\n value: number;\n};\nfunction createCharacter(charCode: number, options?: {\n useLastValid?: boolean;\n}): CharacterNode {\n const opts = {\n useLastValid: false,\n ...options,\n };\n if (charCode > 0x10FFFF) {\n const hex = charCode.toString(16);\n if (opts.useLastValid) {\n charCode = 0x10FFFF;\n } else if (charCode > 0x13FFFF) {\n throw new Error(`Invalid code point out of range \"\\\\x{${hex}}\"`);\n } else {\n throw new Error(`Invalid code point out of range in JS \"\\\\x{${hex}}\"`);\n }\n }\n return {\n type: 'Character',\n value: charCode,\n };\n}\n\ntype CharacterClassNode = {\n type: 'CharacterClass';\n kind: NodeCharacterClassKind;\n negate: boolean;\n body: Array<CharacterClassElementNode>;\n};\nfunction createCharacterClass(options?: {\n kind?: NodeCharacterClassKind;\n negate?: boolean;\n body?: Array<CharacterClassElementNode>;\n}): CharacterClassNode {\n const opts = {\n kind: 'union' as NodeCharacterClassKind,\n negate: false,\n ...options,\n };\n return {\n type: 'CharacterClass',\n kind: opts.kind,\n negate: opts.negate,\n body: getBodyForElementContainer(options?.body) as Array<CharacterClassElementNode>,\n };\n}\n\ntype CharacterClassRangeNode = {\n type: 'CharacterClassRange';\n min: CharacterNode;\n max: CharacterNode;\n};\nfunction createCharacterClassRange(min: CharacterNode, max: CharacterNode): CharacterClassRangeNode {\n if (max.value < min.value) {\n throw new Error('Character class range out of order');\n }\n return {\n type: 'CharacterClassRange',\n min,\n max,\n };\n}\n\ntype NamedCharacterSetNode = {\n type: 'CharacterSet';\n kind: 'posix' | 'property';\n value: string;\n negate: boolean;\n variableLength?: never;\n};\ntype UnnamedCharacterSetNode = {\n type: 'CharacterSet';\n kind: Exclude<NodeCharacterSetKind, NamedCharacterSetNode['kind']>;\n value?: never;\n negate?: boolean;\n variableLength?: boolean;\n};\ntype CharacterSetNode = NamedCharacterSetNode | UnnamedCharacterSetNode;\n/**\nUse `createUnicodeProperty` and `createPosixClass` for `kind` values `'property'` and `'posix'`.\n*/\nfunction createCharacterSet(kind: UnnamedCharacterSetNode['kind'], options?: {\n negate?: boolean;\n}): UnnamedCharacterSetNode {\n const negate = !!options?.negate;\n const node: UnnamedCharacterSetNode = {\n type: 'CharacterSet',\n kind,\n };\n if (\n kind === 'digit' ||\n kind === 'hex' ||\n kind === 'newline' ||\n kind === 'space' ||\n kind === 'word'\n ) {\n node.negate = negate;\n }\n if (\n kind === 'text_segment' ||\n (kind === 'newline' && !negate)\n ) {\n node.variableLength = true;\n }\n return node;\n}\n\ntype DirectiveNode = {\n type: 'Directive';\n} & ({\n kind: 'keep';\n flags?: never;\n} | {\n kind: 'flags';\n flags: FlagGroupModifiers;\n});\nfunction createDirective(kind: NodeDirectiveKind, options: {flags?: FlagGroupModifiers} = {}): DirectiveNode {\n if (kind === 'keep') {\n return {\n type: 'Directive',\n kind,\n };\n }\n if (kind === 'flags') {\n // Note: Flag effects might extend across alternation; ex: `a(?i)b|c` is equivalent to\n // `a(?i:b)|(?i:c)`, not `a(?i:b|c)`\n return {\n type: 'Directive',\n kind,\n flags: throwIfNullish(options.flags),\n };\n }\n throw new Error(`Unexpected directive kind \"${kind}\"`);\n}\n\ntype FlagsNode = {\n type: 'Flags';\n} & FlagProperties;\nfunction createFlags(flags: FlagProperties): FlagsNode {\n return {\n type: 'Flags',\n ...flags,\n };\n}\n\ntype GroupNode = {\n type: 'Group';\n kind?: never;\n atomic?: boolean;\n flags?: FlagGroupModifiers;\n body: Array<AlternativeNode>;\n};\nfunction createGroup(options?: {\n atomic?: boolean;\n flags?: FlagGroupModifiers;\n body?: Array<AlternativeNode>;\n}): GroupNode {\n const atomic = options?.atomic;\n const flags = options?.flags;\n if (atomic && flags) {\n throw new Error('Atomic group cannot have flags');\n }\n return {\n type: 'Group',\n ...(atomic && {atomic}),\n ...(flags && {flags}),\n body: getBodyForAlternativeContainer(options?.body),\n };\n}\n\ntype LookaroundAssertionNode = {\n type: 'LookaroundAssertion';\n kind: NodeLookaroundAssertionKind;\n negate: boolean;\n body: Array<AlternativeNode>;\n};\nfunction createLookaroundAssertion(options?: {\n behind?: boolean;\n negate?: boolean;\n body?: Array<AlternativeNode>;\n}): LookaroundAssertionNode {\n const opts = {\n behind: false,\n negate: false,\n ...options,\n };\n return {\n type: 'LookaroundAssertion',\n kind: opts.behind ? 'lookbehind' : 'lookahead',\n negate: opts.negate,\n body: getBodyForAlternativeContainer(options?.body),\n };\n}\n\ntype NamedCalloutNode = {\n type: 'NamedCallout';\n kind: NodeNamedCalloutKind;\n tag: string | null;\n arguments: Array<string | number> | null;\n};\nfunction createNamedCallout(\n kind: NodeNamedCalloutKind,\n tag: string | null,\n args: Array<string | number> | null\n): NamedCalloutNode {\n return {\n type: 'NamedCallout',\n kind,\n tag,\n arguments: args,\n };\n}\n\nfunction createPosixClass(name: string, options?: {\n negate?: boolean;\n}): NamedCharacterSetNode & {kind: 'posix'} {\n const negate = !!options?.negate;\n if (!PosixClassNames.has(name)) {\n throw new Error(`Invalid POSIX class \"${name}\"`);\n }\n return {\n type: 'CharacterSet',\n kind: 'posix',\n value: name,\n negate,\n };\n}\n\ntype QuantifierNode = {\n type: 'Quantifier';\n kind: NodeQuantifierKind;\n min: number;\n max: number;\n body: QuantifiableNode;\n};\nfunction createQuantifier(kind: NodeQuantifierKind, min: number, max: number, body: QuantifiableNode): QuantifierNode {\n if (min > max) {\n throw new Error('Invalid reversed quantifier range');\n }\n return {\n type: 'Quantifier',\n kind,\n min,\n max,\n body,\n };\n}\n\ntype RegexNode = {\n type: 'Regex';\n body: Array<AlternativeNode>;\n flags: FlagsNode;\n};\nfunction createRegex(flags: FlagsNode, options?: {\n body?: Array<AlternativeNode>;\n}): RegexNode {\n return {\n type: 'Regex',\n body: getBodyForAlternativeContainer(options?.body),\n flags,\n };\n}\n\ntype SubroutineNode = {\n type: 'Subroutine';\n ref: string | number;\n};\nfunction createSubroutine(ref: string | number): SubroutineNode {\n return {\n type: 'Subroutine',\n ref,\n };\n}\n\ntype CreateUnicodePropertyOptions = {\n negate?: boolean;\n normalizeUnknownPropertyNames?: boolean;\n skipPropertyNameValidation?: boolean;\n unicodePropertyMap?: UnicodePropertyMap | null;\n};\nfunction createUnicodeProperty(name: string, options?: CreateUnicodePropertyOptions): NamedCharacterSetNode & {kind: 'property'} {\n const opts: Required<CreateUnicodePropertyOptions> = {\n negate: false,\n normalizeUnknownPropertyNames: false,\n skipPropertyNameValidation: false,\n unicodePropertyMap: null,\n ...options,\n };\n let normalized = opts.unicodePropertyMap?.get(slug(name));\n if (!normalized) {\n if (opts.normalizeUnknownPropertyNames) {\n normalized = normalizeUnicodePropertyName(name);\n // Let the name through as-is if no map provided and normalization not requested\n } else if (opts.unicodePropertyMap && !opts.skipPropertyNameValidation) {\n throw new Error(r`Invalid Unicode property \"\\p{${name}}\"`);\n }\n }\n return {\n type: 'CharacterSet',\n kind: 'property',\n value: normalized ?? name,\n negate: opts.negate,\n };\n}\n\n// ---------------\n// --- Helpers ---\n// ---------------\n\nfunction createByGroupKind({flags, kind, name, negate, number}: GroupOpenToken): AbsenceFunctionNode | CapturingGroupNode | GroupNode | LookaroundAssertionNode {\n switch (kind) {\n case 'absence_repeater':\n return createAbsenceFunction('repeater');\n case 'atomic':\n return createGroup({atomic: true});\n case 'capturing':\n return createCapturingGroup(number!, {name});\n case 'group':\n return createGroup({flags});\n case 'lookahead':\n case 'lookbehind':\n return createLookaroundAssertion({\n behind: kind === 'lookbehind',\n negate,\n });\n default:\n throw new Error(`Unexpected group kind \"${kind}\"`);\n }\n}\n\nfunction getBodyForAlternativeContainer(body: unknown): Array<AlternativeNode> {\n if (body === undefined) {\n body = [createAlternative()];\n } else if (!Array.isArray(body) || !body.length || !body.every(node => (node as Node).type === 'Alternative')) {\n throw new Error('Invalid body; expected array of one or more Alternative nodes');\n }\n return body as Array<AlternativeNode>;\n}\n\nfunction getBodyForElementContainer(body: unknown): Array<Node> {\n if (body === undefined) {\n body = [];\n } else if (!Array.isArray(body) || !body.every(node => !!(node as Node).type)) {\n throw new Error('Invalid body; expected array of nodes');\n }\n return body as Array<Node>;\n}\n\nfunction isLookahead(node: Node): node is (LookaroundAssertionNode & {kind: 'lookahead'}) {\n return node.type === 'LookaroundAssertion' && node.kind === 'lookahead';\n}\n\nfunction isLookbehind(node: Node): node is (LookaroundAssertionNode & {kind: 'lookbehind'}) {\n return node.type === 'LookaroundAssertion' && node.kind === 'lookbehind';\n}\n\nfunction isValidGroupName(name: string): boolean {\n // Note that backrefs and subroutines might contextually use `-` and `+` to indicate relative\n // index or recursion level\n return /^[\\p{Alpha}\\p{Pc}][^)]*$/u.test(name);\n}\n\nfunction normalizeUnicodePropertyName(name: string): string {\n // In Onig, Unicode property names ignore case, spaces, hyphens, and underscores. Use best effort\n // to reformat the name to follow official values (covers a lot, but isn't able to map for all\n // possible formatting differences)\n return name.\n trim().\n replace(/[- _]+/g, '_').\n replace(/[A-Z][a-z]+(?=[A-Z])/g, '$&_'). // `PropertyName` to `Property_Name`\n replace(/[A-Za-z]+/g, m => m[0].toUpperCase() + m.slice(1).toLowerCase());\n}\n\n/**\nGenerates a Unicode property lookup name: lowercase, without spaces, hyphens, or underscores.\n*/\nfunction slug(name: string): string {\n return name.replace(/[- _]+/g, '').toLowerCase();\n}\n\nfunction throwIfUnclosedCharacterClass<T>(token: T, firstClassToken?: Token): NonNullable<T> {\n return throwIfNullish(\n token,\n // Easier to understand the error if it says \"empty\" when the unclosed class starts with\n // literal `]`; ex: `[]` or `[]a`\n `${firstClassToken?.type === 'Character' && firstClassToken.value === 93 ?\n 'Empty' : 'Unclosed'} character class`\n );\n}\n\nfunction throwIfUnclosedGroup<T>(token: T): NonNullable<T> {\n return throwIfNullish(token, 'Unclosed group');\n}\n\nexport {\n type AbsenceFunctionNode,\n type AlternativeNode,\n type AlternativeContainerNode,\n type AlternativeElementNode,\n type AssertionNode,\n type BackreferenceNode,\n type CapturingGroupNode,\n type CharacterClassElementNode,\n type CharacterClassNode,\n type CharacterClassRangeNode,\n type CharacterNode,\n type CharacterSetNode,\n type DirectiveNode,\n type FlagsNode,\n type GroupNode,\n type LookaroundAssertionNode,\n type NamedCalloutNode,\n type Node,\n type NodeAbsenceFunctionKind,\n type NodeAssertionKind,\n type NodeCharacterClassKind,\n type NodeCharacterSetKind,\n type NodeDirectiveKind,\n type NodeLookaroundAssertionKind,\n type NodeQuantifierKind,\n type OnigurumaAst,\n type ParentNode,\n type ParseOptions,\n type QuantifiableNode,\n type QuantifierNode,\n type RegexNode,\n type SubroutineNode,\n type UnicodePropertyMap,\n createAbsenceFunction,\n createAlternative,\n createAssertion,\n createBackreference,\n createCapturingGroup,\n createCharacter,\n createCharacterClass,\n createCharacterClassRange,\n createCharacterSet,\n createDirective,\n createFlags,\n createGroup,\n createLookaroundAssertion,\n createNamedCallout,\n createPosixClass,\n createQuantifier,\n createRegex,\n createSubroutine,\n createUnicodeProperty,\n hasOnlyChild,\n isAlternativeContainer,\n isQuantifiable,\n parse,\n slug,\n};\n","import type {AlternativeElementNode, AlternativeNode, CharacterClassElementNode, Node, ParentNode, RegexNode} from '../parser/parse.js';\nimport {throwIfNullish} from '../utils.js';\n\ntype ContainerElementNode =\n // Used within the `body` container of any `AlternativeContainerNode`\n AlternativeNode |\n // Any node type used within the `body` container of an `AlternativeNode`\n AlternativeElementNode |\n // Any node type used within the `body` container of a `CharacterClassNode`\n CharacterClassElementNode;\n\ntype Path<N = Node, Root = RegexNode> = {\n // The current node being traversed\n node: N;\n // Parent node of the current node\n parent: N extends RegexNode ? null : ParentNode;\n // String property where the current node in held by the parent node, or numeric index in the\n // parent's `container` array\n key: N extends RegexNode ? null : number | string;\n // Container array holding the current node in the parent node; `null` if the parent isn't a type\n // that contains a list of nodes\n container: N extends RegexNode ? null : Array<ContainerElementNode> | null;\n // Starting node of the AST being traversed; usually a `RegexNode` but can be any node type if\n // traversing from a midpoint\n root: Root;\n // Removes the current node; its kids won't be traversed\n remove: () => void;\n // Removes all siblings to the right of the current node, without traversing them; returns the\n // removed nodes\n removeAllNextSiblings: () => Array<Node>;\n // Removes all siblings to the left of the current node, which have already been traversed;\n // returns the removed nodes\n removeAllPrevSiblings: () => Array<Node>;\n // Replaces the current node with a new node; kids of the replaced node won't be traversed;\n // optionally traverses the new node\n replaceWith: (newNode: Node, options?: {traverse?: boolean}) => void;\n // Replaces the current node with multiple new nodes; kids of the replaced node won't be\n // traversed; optionally traverses the new nodes\n replaceWithMultiple: (newNodes: Array<Node>, options?: {traverse?: boolean}) => void;\n // Skips traversing kids of the current node\n skip: () => void;\n};\n\n// `VisitorNodeFn() {…}` is shorthand for `VisitorNodeFn: {enter() {…}}`.\ntype Visitor<State extends object | null = null, Root extends Node = RegexNode> = {\n [N in Node as N['type']]?: VisitorNodeFn<Path<N, Root>, State> | {\n enter?: VisitorNodeFn<Path<N, Root>, State>;\n exit?: VisitorNodeFn<Path<N, Root>, State>;\n };\n} & {\n '*'?: VisitorNodeFn<Path<Node, Root>, State> | {\n enter?: VisitorNodeFn<Path<Node, Root>, State>;\n exit?: VisitorNodeFn<Path<Node, Root>, State>;\n };\n};\n\ntype VisitorNodeFn<P, State> = (path: P, state: State) => void;\n\n/**\nTraverses an AST and calls the provided `visitor`'s node function for each node. Returns the same\nobject, possibly modified.\n\nVisitor node functions can modify the AST in place and use methods on the `path` (provided as their\nfirst argument) to help modify the AST. Provided `state` is passed through to all visitor node\nfunctions as their second argument.\n\nVisitor node functions are called in the following order:\n1. `enter` function of the `'*'` node type (if any)\n2. `enter` function of the given node's type (if any)\n3. [The node's kids (if any) are traversed recursively, unless `skip` is called]\n4. `exit` function of the given node's type (if any)\n5. `exit` function of the `'*'` node type (if any)\n*/\nfunction traverse<State extends object | null = null, Root extends Node = RegexNode>(\n root: Root,\n visitor: Visitor<State, Root>,\n state: State | null = null\n): Root {\n function traverseArray(array: NonNullable<Path['container']>, parent: Path['parent']) {\n for (let i = 0; i < array.length; i++) {\n const keyShift = traverseNode(array[i], parent, i, array);\n i = Math.max(-1, i + keyShift);\n }\n }\n function traverseNode(\n node: Path['node'],\n parent: Path['parent'] = null,\n key: Path['key'] = null,\n container: Path['container'] = null\n ): number {\n let keyShift = 0;\n let skipTraversingKidsOfPath = false;\n const path: Path = {\n node,\n parent,\n key,\n container,\n root: root as RegexNode,\n remove() {\n arrayContainer(container).splice(Math.max(0, numericKey(key) + keyShift), 1);\n keyShift--;\n skipTraversingKidsOfPath = true;\n },\n removeAllNextSiblings() {\n return arrayContainer(container).splice(numericKey(key) + 1);\n },\n removeAllPrevSiblings() {\n const shifted = numericKey(key) + keyShift;\n keyShift -= shifted;\n return arrayContainer(container).splice(0, Math.max(0, shifted));\n },\n replaceWith(newNode, options = {}) {\n const traverseNew = !!options.traverse;\n if (container) {\n container[Math.max(0, numericKey(key) + keyShift)] = newNode as ContainerElementNode;\n } else {\n // `key` will be one of:\n // - For `CharacterClassRangeNode`: 'min', 'max'\n // - For `QuantifierNode`: 'body'\n // - For `RegexNode`: 'flags'\n // @ts-expect-error\n throwIfNullish(parent, `Can't replace root node`)[key as string] = newNode;\n }\n if (traverseNew) {\n traverseNode(newNode, parent, key, container);\n }\n skipTraversingKidsOfPath = true;\n },\n replaceWithMultiple(newNodes, options = {}) {\n const traverseNew = !!options.traverse;\n arrayContainer(container).splice(Math.max(0, numericKey(key) + keyShift), 1, ...newNodes);\n keyShift += newNodes.length - 1;\n if (traverseNew) {\n let keyShiftInLoop = 0;\n for (let i = 0; i < newNodes.length; i++) {\n keyShiftInLoop += traverseNode(newNodes[i], parent, numericKey(key) + i + keyShiftInLoop, container);\n }\n }\n skipTraversingKidsOfPath = true;\n },\n skip() {\n skipTraversingKidsOfPath = true;\n },\n };\n\n const {type} = node;\n const anyTypeVisitor = visitor['*'];\n const thisTypeVisitor = visitor[type];\n const enterAllFn = typeof anyTypeVisitor === 'function' ? anyTypeVisitor : anyTypeVisitor?.enter;\n const enterThisFn = typeof thisTypeVisitor === 'function' ? thisTypeVisitor : thisTypeVisitor?.enter;\n // Type args are too complex to avoid TS errors here, but `VisitorNodeFn`s get correct types\n // @ts-expect-error\n enterAllFn?.(path, state);\n // @ts-expect-error\n enterThisFn?.(path, state);\n\n if (!skipTraversingKidsOfPath) {\n switch (type) {\n case 'AbsenceFunction':\n case 'CapturingGroup':\n case 'Group':\n traverseArray(node.body, node);\n break;\n case 'Alternative':\n case 'CharacterClass':\n traverseArray(node.body, node);\n break;\n case 'Assertion':\n case 'Backreference':\n case 'Character':\n case 'CharacterSet':\n case 'Directive':\n case 'Flags':\n case 'NamedCallout':\n case 'Subroutine':\n break;\n case 'CharacterClassRange':\n traverseNode(node.min, node, 'min');\n traverseNode(node.max, node, 'max');\n break;\n case 'LookaroundAssertion':\n traverseArray(node.body, node);\n break;\n case 'Quantifier':\n traverseNode(node.body, node, 'body');\n break;\n case 'Regex':\n traverseArray(node.body, node);\n traverseNode(node.flags, node, 'flags');\n break;\n default:\n throw new Error(`Unexpected node type \"${type}\"`);\n }\n }\n\n // @ts-expect-error\n (thisTypeVisitor as Exclude<typeof thisTypeVisitor, Function>)?.exit?.(path, state);\n // @ts-expect-error\n (anyTypeVisitor as Exclude<typeof anyTypeVisitor, Function>)?.exit?.(path, state);\n return keyShift;\n }\n traverseNode(root);\n return root;\n}\n\nfunction arrayContainer(value: unknown): Array<Node> {\n if (!Array.isArray(value)) {\n throw new Error('Container expected');\n }\n return value;\n}\n\nfunction numericKey(value: unknown): number {\n if (typeof value !== 'number') {\n throw new Error('Numeric key expected');\n }\n return value;\n}\n\nexport {\n type Path,\n type Visitor,\n traverse,\n};\n","// Separating some utils for improved tree shaking of the `./internals` export\n\nconst noncapturingDelim = String.raw`\\(\\?(?:[:=!>A-Za-z\\-]|<[=!]|\\(DEFINE\\))`;\n\n/**\nUpdates the array in place by incrementing each value greater than or equal to the threshold.\n@param {Array<number>} arr\n@param {number} threshold\n*/\nfunction incrementIfAtLeast(arr, threshold) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] >= threshold) {\n arr[i]++;\n }\n }\n}\n\n/**\n@param {string} str\n@param {number} pos\n@param {string} oldValue\n@param {string} newValue\n@returns {string}\n*/\nfunction spliceStr(str, pos, oldValue, newValue) {\n return str.slice(0, pos) + newValue + str.slice(pos + oldValue.length);\n}\n\nexport {\n incrementIfAtLeast,\n noncapturingDelim,\n spliceStr,\n};\n","// Constant properties for tracking regex syntax context\nexport const Context = Object.freeze({\n DEFAULT: 'DEFAULT',\n CHAR_CLASS: 'CHAR_CLASS',\n});\n\n/**\nReplaces all unescaped instances of a regex pattern in the given context, using a replacement\nstring or callback.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {string | (match: RegExpExecArray, details: {\n context: 'DEFAULT' | 'CHAR_CLASS';\n negated: boolean;\n}) => string} replacement\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n@returns {string} Updated expression\n@example\nconst str = '.\\\\.\\\\\\\\.[[\\\\.].].';\nreplaceUnescaped(str, '\\\\.', '@');\n// → '@\\\\.\\\\\\\\@[[\\\\.]@]@'\nreplaceUnescaped(str, '\\\\.', '@', Context.DEFAULT);\n// → '@\\\\.\\\\\\\\@[[\\\\.].]@'\nreplaceUnescaped(str, '\\\\.', '@', Context.CHAR_CLASS);\n// → '.\\\\.\\\\\\\\.[[\\\\.]@].'\n*/\nexport function replaceUnescaped(expression, needle, replacement, context) {\n const re = new RegExp(String.raw`${needle}|(?<$skip>\\[\\^?|\\\\?.)`, 'gsu');\n const negated = [false];\n let numCharClassesOpen = 0;\n let result = '';\n for (const match of expression.matchAll(re)) {\n const {0: m, groups: {$skip}} = match;\n if (!$skip && (!context || (context === Context.DEFAULT) === !numCharClassesOpen)) {\n if (replacement instanceof Function) {\n result += replacement(match, {\n context: numCharClassesOpen ? Context.CHAR_CLASS : Context.DEFAULT,\n negated: negated[negated.length - 1],\n });\n } else {\n result += replacement;\n }\n continue;\n }\n if (m[0] === '[') {\n numCharClassesOpen++;\n negated.push(m[1] === '^');\n } else if (m === ']' && numCharClassesOpen) {\n numCharClassesOpen--;\n negated.pop();\n }\n result += m;\n }\n return result;\n}\n\n/**\nRuns a callback for each unescaped instance of a regex pattern in the given context.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {(match: RegExpExecArray, details: {\n context: 'DEFAULT' | 'CHAR_CLASS';\n negated: boolean;\n}) => void} callback\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n*/\nexport function forEachUnescaped(expression, needle, callback, context) {\n // Do this the easy way\n replaceUnescaped(expression, needle, callback, context);\n}\n\n/**\nReturns a match object for the first unescaped instance of a regex pattern in the given context, or\n`null`.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {number} [pos] Offset to start the search\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n@returns {RegExpExecArray | null}\n*/\nexport function execUnescaped(expression, needle, pos = 0, context) {\n // Quick partial test; avoid the loop if not needed\n if (!(new RegExp(needle, 'su').test(expression))) {\n return null;\n }\n const re = new RegExp(`${needle}|(?<$skip>\\\\\\\\?.)`, 'gsu');\n re.lastIndex = pos;\n let numCharClassesOpen = 0;\n let match;\n while (match = re.exec(expression)) {\n const {0: m, groups: {$skip}} = match;\n if (!$skip && (!context || (context === Context.DEFAULT) === !numCharClassesOpen)) {\n return match;\n }\n if (m === '[') {\n numCharClassesOpen++;\n } else if (m === ']' && numCharClassesOpen) {\n numCharClassesOpen--;\n }\n // Avoid an infinite loop on zero-length matches\n if (re.lastIndex == match.index) {\n re.lastIndex++;\n }\n }\n return null;\n}\n\n/**\nChecks whether an unescaped instance of a regex pattern appears in the given context.\n\nDoesn't skip over complete multicharacter tokens (only `\\` plus its folowing char) so must be used\nwith knowledge of what's safe to do given regex syntax. Assumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {string} needle Search as a regex pattern, with flags `su` applied\n@param {'DEFAULT' | 'CHAR_CLASS'} [context] All contexts if not specified\n@returns {boolean} Whether the pattern was found\n*/\nexport function hasUnescaped(expression, needle, context) {\n // Do this the easy way\n return !!execUnescaped(expression, needle, 0, context);\n}\n\n/**\nExtracts the full contents of a group (subpattern) from the given expression, accounting for\nescaped characters, nested groups, and character classes. The group is identified by the position\nwhere its contents start (the string index just after the group's opening delimiter). Returns the\nrest of the string if the group is unclosed.\n\nAssumes UnicodeSets-mode syntax.\n@param {string} expression Search target\n@param {number} contentsStartPos\n@returns {string}\n*/\nexport function getGroupContents(expression, contentsStartPos) {\n const token = /\\\\?./gsu;\n token.lastIndex = contentsStartPos;\n let contentsEndPos = expression.length;\n let numCharClassesOpen = 0;\n // Starting search within an open group, after the group's opening\n let numGroupsOpen = 1;\n let match;\n while (match = token.exec(expression)) {\n const [m] = match;\n if (m === '[') {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (m === '(') {\n numGroupsOpen++;\n } else if (m === ')') {\n numGroupsOpen--;\n if (!numGroupsOpen) {\n contentsEndPos = match.index;\n break;\n }\n }\n } else if (m === ']') {\n numCharClassesOpen--;\n }\n }\n return expression.slice(contentsStartPos, contentsEndPos);\n}\n","import {incrementIfAtLeast, noncapturingDelim, spliceStr} from './utils-internals.js';\nimport {Context, replaceUnescaped} from 'regex-utilities';\n/**\n@import {PluginData, PluginResult} from './regex.js';\n*/\n\nconst atomicPluginToken = new RegExp(String.raw`(?<noncapturingStart>${noncapturingDelim})|(?<capturingStart>\\((?:\\?<[^>]+>)?)|\\\\?.`, 'gsu');\n\n/**\nApply transformations for atomic groups: `(?>…)`.\n@param {string} expression\n@param {PluginData} [data]\n@returns {Required<PluginResult>}\n*/\nfunction atomic(expression, data) {\n const hiddenCaptures = data?.hiddenCaptures ?? [];\n // Capture transfer is used by <github.com/slevithan/oniguruma-to-es>\n let captureTransfers = data?.captureTransfers ?? new Map();\n if (!/\\(\\?>/.test(expression)) {\n return {\n pattern: expression,\n captureTransfers,\n hiddenCaptures,\n };\n }\n\n const aGDelim = '(?>';\n const emulatedAGDelim = '(?:(?=(';\n const captureNumMap = [0];\n const addedHiddenCaptures = [];\n let numCapturesBeforeAG = 0;\n let numAGs = 0;\n let aGPos = NaN;\n let hasProcessedAG;\n do {\n hasProcessedAG = false;\n let numCharClassesOpen = 0;\n let numGroupsOpenInAG = 0;\n let inAG = false;\n let match;\n atomicPluginToken.lastIndex = Number.isNaN(aGPos) ? 0 : aGPos + emulatedAGDelim.length;\n while (match = atomicPluginToken.exec(expression)) {\n const {0: m, index, groups: {capturingStart, noncapturingStart}} = match;\n if (m === '[') {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n\n if (m === aGDelim && !inAG) {\n aGPos = index;\n inAG = true;\n } else if (inAG && noncapturingStart) {\n numGroupsOpenInAG++;\n } else if (capturingStart) {\n if (inAG) {\n numGroupsOpenInAG++;\n } else {\n numCapturesBeforeAG++;\n captureNumMap.push(numCapturesBeforeAG + numAGs);\n }\n } else if (m === ')' && inAG) {\n if (!numGroupsOpenInAG) {\n numAGs++;\n const addedCaptureNum = numCapturesBeforeAG + numAGs;\n // Replace `expression` and use `<$$N>` as a temporary wrapper for the backref so it\n // can avoid backref renumbering afterward. Wrap the whole substitution (including the\n // lookahead and following backref) in a noncapturing group to handle following\n // quantifiers and literal digits\n expression = `${expression.slice(0, aGPos)}${emulatedAGDelim}${\n expression.slice(aGPos + aGDelim.length, index)\n }))<$$${addedCaptureNum}>)${expression.slice(index + 1)}`;\n hasProcessedAG = true;\n addedHiddenCaptures.push(addedCaptureNum);\n incrementIfAtLeast(hiddenCaptures, addedCaptureNum);\n if (captureTransfers.size) {\n const newCaptureTransfers = new Map();\n captureTransfers.forEach((from, to) => {\n newCaptureTransfers.set(\n to >= addedCaptureNum ? to + 1 : to,\n from.map(f => f >= addedCaptureNum ? f + 1 : f)\n );\n });\n captureTransfers = newCaptureTransfers;\n }\n break;\n }\n numGroupsOpenInAG--;\n }\n\n } else if (m === ']') {\n numCharClassesOpen--;\n }\n }\n // Start over from the beginning of the atomic group's contents, in case the processed group\n // contains additional atomic groups\n } while (hasProcessedAG);\n\n hiddenCaptures.push(...addedHiddenCaptures);\n\n // Second pass to adjust numbered backrefs\n expression = replaceUnescaped(\n expression,\n String.raw`\\\\(?<backrefNum>[1-9]\\d*)|<\\$\\$(?<wrappedBackrefNum>\\d+)>`,\n ({0: m, groups: {backrefNum, wrappedBackrefNum}}) => {\n if (backrefNum) {\n const bNum = +backrefNum;\n if (bNum > captureNumMap.length - 1) {\n throw new Error(`Backref \"${m}\" greater than number of captures`);\n }\n return `\\\\${captureNumMap[bNum]}`;\n }\n return `\\\\${wrappedBackrefNum}`;\n },\n Context.DEFAULT\n );\n\n return {\n pattern: expression,\n captureTransfers,\n hiddenCaptures,\n };\n}\n\nconst baseQuantifier = String.raw`(?:[?*+]|\\{\\d+(?:,\\d*)?\\})`;\n// Complete tokenizer for base syntax; doesn't (need to) know about character-class-only syntax\nconst possessivePluginToken = new RegExp(String.raw`\n\\\\(?: \\d+\n | c[A-Za-z]\n | [gk]<[^>]+>\n | [pPu]\\{[^\\}]+\\}\n | u[A-Fa-f\\d]{4}\n | x[A-Fa-f\\d]{2}\n )\n| \\((?: \\? (?: [:=!>]\n | <(?:[=!]|[^>]+>)\n | [A-Za-z\\-]+:\n | \\(DEFINE\\)\n ))?\n| (?<qBase>${baseQuantifier})(?<qMod>[?+]?)(?<invalidQ>[?*+\\{]?)\n| \\\\?.\n`.replace(/\\s+/g, ''), 'gsu');\n\n/**\nTransform posessive quantifiers into atomic groups. The posessessive quantifiers are:\n`?+`, `*+`, `++`, `{N}+`, `{N,}+`, `{N,N}+`.\nThis follows Java, PCRE, Perl, and Python.\nPossessive quantifiers in Oniguruma and Onigmo are only: `?+`, `*+`, `++`.\n@param {string} expression\n@returns {PluginResult}\n*/\nfunction possessive(expression) {\n if (!(new RegExp(`${baseQuantifier}\\\\+`).test(expression))) {\n return {\n pattern: expression,\n };\n }\n\n const openGroupIndices = [];\n let lastGroupIndex = null;\n let lastCharClassIndex = null;\n let lastToken = '';\n let numCharClassesOpen = 0;\n let match;\n possessivePluginToken.lastIndex = 0;\n while (match = possessivePluginToken.exec(expression)) {\n const {0: m, index, groups: {qBase, qMod, invalidQ}} = match;\n if (m === '[') {\n if (!numCharClassesOpen) {\n lastCharClassIndex = index;\n }\n numCharClassesOpen++;\n } else if (m === ']') {\n if (numCharClassesOpen) {\n numCharClassesOpen--;\n // Unmatched `]`\n } else {\n lastCharClassIndex = null;\n }\n } else if (!numCharClassesOpen) {\n\n if (qMod === '+' && lastToken && !lastToken.startsWith('(')) {\n // Invalid following quantifier would become valid via the wrapping group\n if (invalidQ) {\n throw new Error(`Invalid quantifier \"${m}\"`);\n }\n let charsAdded = -1; // -1 for removed trailing `+`\n // Possessivizing fixed repetition quantifiers like `{2}` does't change their behavior, so\n // avoid doing so (convert them to greedy)\n if (/^\\{\\d+\\}$/.test(qBase)) {\n expression = spliceStr(expression, index + qBase.length, qMod, '');\n } else {\n if (lastToken === ')' || lastToken === ']') {\n const nodeIndex = lastToken === ')' ? lastGroupIndex : lastCharClassIndex;\n // Unmatched `)` would break out of the wrapping group and mess with handling.\n // Unmatched `]` wouldn't be a problem, but it's unnecessary to have dedicated support\n // for unescaped `]++` since this won't work with flag u or v anyway\n if (nodeIndex === null) {\n throw new Error(`Invalid unmatched \"${lastToken}\"`);\n }\n expression = `${expression.slice(0, nodeIndex)}(?>${expression.slice(nodeIndex, index)}${qBase})${expression.slice(index + m.length)}`;\n } else {\n expression = `${expression.slice(0, index - lastToken.length)}(?>${lastToken}${qBase})${expression.slice(index + m.length)}`;\n }\n charsAdded += 4; // `(?>)`\n }\n possessivePluginToken.lastIndex += charsAdded;\n } else if (m[0] === '(') {\n openGroupIndices.push(index);\n } else if (m === ')') {\n lastGroupIndex = openGroupIndices.length ? openGroupIndices.pop() : null;\n }\n\n }\n lastToken = m;\n }\n\n return {\n pattern: expression,\n };\n}\n\nexport {\n atomic,\n possessive,\n};\n","import {Context, forEachUnescaped, getGroupContents, hasUnescaped, replaceUnescaped} from 'regex-utilities';\n\nconst r = String.raw;\nconst gRToken = r`\\\\g<(?<gRNameOrNum>[^>&]+)&R=(?<gRDepth>[^>]+)>`;\nconst recursiveToken = r`\\(\\?R=(?<rDepth>[^\\)]+)\\)|${gRToken}`;\nconst namedCaptureDelim = r`\\(\\?<(?![=!])(?<captureName>[^>]+)>`;\nconst captureDelim = r`${namedCaptureDelim}|(?<unnamed>\\()(?!\\?)`;\nconst token = new RegExp(r`${namedCaptureDelim}|${recursiveToken}|\\(\\?|\\\\?.`, 'gsu');\nconst overlappingRecursionMsg = 'Cannot use multiple overlapping recursions';\n\n/**\n@param {string} pattern\n@param {{\n flags?: string;\n captureTransfers?: Map<number, Array<number>>;\n hiddenCaptures?: Array<number>;\n mode?: 'plugin' | 'external';\n}} [data]\n@returns {{\n pattern: string;\n captureTransfers: Map<number, Array<number>>;\n hiddenCaptures: Array<number>;\n}}\n*/\nfunction recursion(pattern, data) {\n const {hiddenCaptures, mode} = {\n hiddenCaptures: [],\n mode: 'plugin',\n ...data,\n };\n // Capture transfer is used by <github.com/slevithan/oniguruma-to-es>\n let captureTransfers = data?.captureTransfers ?? new Map();\n // Keep the initial fail-check (which avoids unneeded processing) as fast as possible by testing\n // without the accuracy improvement of using `hasUnescaped` with `Context.DEFAULT`\n if (!(new RegExp(recursiveToken, 'su').test(pattern))) {\n return {\n pattern,\n captureTransfers,\n hiddenCaptures,\n };\n }\n if (mode === 'plugin' && hasUnescaped(pattern, r`\\(\\?\\(DEFINE\\)`, Context.DEFAULT)) {\n throw new Error('DEFINE groups cannot be used with recursion');\n }\n\n const addedHiddenCaptures = [];\n const hasNumberedBackref = hasUnescaped(pattern, r`\\\\[1-9]`, Context.DEFAULT);\n const groupContentsStartPos = new Map();\n const openGroups = [];\n let hasRecursed = false;\n let numCharClassesOpen = 0;\n let numCapturesPassed = 0;\n let match;\n token.lastIndex = 0;\n while ((match = token.exec(pattern))) {\n const {0: m, groups: {captureName, rDepth, gRNameOrNum, gRDepth}} = match;\n if (m === '[') {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n\n // `(?R=N)`\n if (rDepth) {\n assertMaxInBounds(rDepth);\n if (hasRecursed) {\n throw new Error(overlappingRecursionMsg);\n }\n if (hasNumberedBackref) {\n // Could add support for numbered backrefs with extra effort, but it's probably not worth\n // it. To trigger this error, the regex must include recursion and one of the following:\n // - An interpolated regex that contains a numbered backref (since other numbered\n // backrefs are prevented by implicit flag n).\n // - A numbered backref, when flag n is explicitly disabled.\n // Note that Regex+'s extended syntax (atomic groups and sometimes subroutines) can also\n // add numbered backrefs, but those work fine because external plugins like this one run\n // *before* the transformation of built-in syntax extensions\n throw new Error(\n // When used in `external` mode by transpilers other than Regex+, backrefs might have\n // gone through conversion from named to numbered, so avoid a misleading error\n `${mode === 'external' ? 'Backrefs' : 'Numbered backrefs'} cannot be used with global recursion`\n );\n }\n const left = pattern.slice(0, match.index);\n const right = pattern.slice(token.lastIndex);\n if (hasUnescaped(right, recursiveToken, Context.DEFAULT)) {\n throw new Error(overlappingRecursionMsg);\n }\n const reps = +rDepth - 1;\n pattern = makeRecursive(\n left,\n right,\n reps,\n false,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n );\n captureTransfers = mapCaptureTransfers(\n captureTransfers,\n left,\n reps,\n addedHiddenCaptures.length,\n 0,\n numCapturesPassed\n );\n // No need to parse further\n break;\n // `\\g<name&R=N>`, `\\g<number&R=N>`\n } else if (gRNameOrNum) {\n assertMaxInBounds(gRDepth);\n let isWithinReffedGroup = false;\n for (const g of openGroups) {\n if (g.name === gRNameOrNum || g.num === +gRNameOrNum) {\n isWithinReffedGroup = true;\n if (g.hasRecursedWithin) {\n throw new Error(overlappingRecursionMsg);\n }\n break;\n }\n }\n if (!isWithinReffedGroup) {\n throw new Error(r`Recursive \\g cannot be used outside the referenced group \"${\n mode === 'external' ? gRNameOrNum : r`\\g<${gRNameOrNum}&R=${gRDepth}>`\n }\"`);\n }\n const startPos = groupContentsStartPos.get(gRNameOrNum);\n const groupContents = getGroupContents(pattern, startPos);\n if (\n hasNumberedBackref &&\n hasUnescaped(groupContents, r`${namedCaptureDelim}|\\((?!\\?)`, Context.DEFAULT)\n ) {\n throw new Error(\n // When used in `external` mode by transpilers other than Regex+, backrefs might have\n // gone through conversion from named to numbered, so avoid a misleading error\n `${mode === 'external' ? 'Backrefs' : 'Numbered backrefs'} cannot be used with recursion of capturing groups`\n );\n }\n const groupContentsLeft = pattern.slice(startPos, match.index);\n const groupContentsRight = groupContents.slice(groupContentsLeft.length + m.length);\n const numAddedHiddenCapturesPreExpansion = addedHiddenCaptures.length;\n const reps = +gRDepth - 1;\n const expansion = makeRecursive(\n groupContentsLeft,\n groupContentsRight,\n reps,\n true,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n );\n captureTransfers = mapCaptureTransfers(\n captureTransfers,\n groupContentsLeft,\n reps,\n addedHiddenCaptures.length - numAddedHiddenCapturesPreExpansion,\n numAddedHiddenCapturesPreExpansion,\n numCapturesPassed\n );\n const pre = pattern.slice(0, startPos);\n const post = pattern.slice(startPos + groupContents.length);\n // Modify the string we're looping over\n pattern = `${pre}${expansion}${post}`;\n // Step forward for the next loop iteration\n token.lastIndex += expansion.length - m.length - groupContentsLeft.length - groupContentsRight.length;\n openGroups.forEach(g => g.hasRecursedWithin = true);\n hasRecursed = true;\n } else if (captureName) {\n numCapturesPassed++;\n groupContentsStartPos.set(String(numCapturesPassed), token.lastIndex);\n groupContentsStartPos.set(captureName, token.lastIndex);\n openGroups.push({\n num: numCapturesPassed,\n name: captureName,\n });\n } else if (m[0] === '(') {\n const isUnnamedCapture = m === '(';\n if (isUnnamedCapture) {\n numCapturesPassed++;\n groupContentsStartPos.set(String(numCapturesPassed), token.lastIndex);\n }\n openGroups.push(isUnnamedCapture ? {num: numCapturesPassed} : {});\n } else if (m === ')') {\n openGroups.pop();\n }\n\n } else if (m === ']') {\n numCharClassesOpen--;\n }\n }\n\n hiddenCaptures.push(...addedHiddenCaptures);\n\n return {\n pattern,\n captureTransfers,\n hiddenCaptures,\n };\n}\n\n/**\n@param {string} max\n*/\nfunction assertMaxInBounds(max) {\n const errMsg = `Max depth must be integer between 2 and 100; used ${max}`;\n if (!/^[1-9]\\d*$/.test(max)) {\n throw new Error(errMsg);\n }\n max = +max;\n if (max < 2 || max > 100) {\n throw new Error(errMsg);\n }\n}\n\n/**\n@param {string} left\n@param {string} right\n@param {number} reps\n@param {boolean} isSubpattern\n@param {Array<number>} hiddenCaptures\n@param {Array<number>} addedHiddenCaptures\n@param {number} numCapturesPassed\n@returns {string}\n*/\nfunction makeRecursive(\n left,\n right,\n reps,\n isSubpattern,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n) {\n const namesInRecursed = new Set();\n // Can skip this work if not needed\n if (isSubpattern) {\n forEachUnescaped(left + right, namedCaptureDelim, ({groups: {captureName}}) => {\n namesInRecursed.add(captureName);\n }, Context.DEFAULT);\n }\n const rest = [\n reps,\n isSubpattern ? namesInRecursed : null,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed,\n ];\n // Depth 2: 'left(?:left(?:)right)right'\n // Depth 3: 'left(?:left(?:left(?:)right)right)right'\n // Empty group in the middle separates tokens and absorbs a following quantifier if present\n return `${left}${\n repeatWithDepth(`(?:${left}`, 'forward', ...rest)\n }(?:)${\n repeatWithDepth(`${right})`, 'backward', ...rest)\n }${right}`;\n}\n\n/**\n@param {string} pattern\n@param {'forward' | 'backward'} direction\n@param {number} reps\n@param {Set<string> | null} namesInRecursed\n@param {Array<number>} hiddenCaptures\n@param {Array<number>} addedHiddenCaptures\n@param {number} numCapturesPassed\n@returns {string}\n*/\nfunction repeatWithDepth(\n pattern,\n direction,\n reps,\n namesInRecursed,\n hiddenCaptures,\n addedHiddenCaptures,\n numCapturesPassed\n) {\n const startNum = 2;\n const getDepthNum = i => direction === 'forward' ? (i + startNum) : (reps - i + startNum - 1);\n let result = '';\n for (let i = 0; i < reps; i++) {\n const depthNum = getDepthNum(i);\n result += replaceUnescaped(\n pattern,\n r`${captureDelim}|\\\\k<(?<backref>[^>]+)>`,\n ({0: m, groups: {captureName, unnamed, backref}}) => {\n if (backref && namesInRecursed && !namesInRecursed.has(backref)) {\n // Don't alter backrefs to groups outside the recursed subpattern\n return m;\n }\n const suffix = `_$${depthNum}`;\n if (unnamed || captureName) {\n const addedCaptureNum = numCapturesPassed + addedHiddenCaptures.length + 1;\n addedHiddenCaptures.push(addedCaptureNum);\n incrementIfAtLeast(hiddenCaptures, addedCaptureNum);\n return unnamed ? m : `(?<${captureName}${suffix}>`;\n }\n return r`\\k<${backref}${suffix}>`;\n },\n Context.DEFAULT\n );\n }\n return result;\n}\n\n/**\nUpdates the array in place by incrementing each value greater than or equal to the threshold.\n@param {Array<number>} arr\n@param {number} threshold\n*/\nfunction incrementIfAtLeast(arr, threshold) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i] >= threshold) {\n arr[i]++;\n }\n }\n}\n\n/**\n@param {Map<number, Array<number>>} captureTransfers\n@param {string} left\n@param {number} reps\n@param {number} numCapturesAddedInExpansion\n@param {number} numAddedHiddenCapturesPreExpansion\n@param {number} numCapturesPassed\n@returns {Map<number, Array<number>>}\n*/\nfunction mapCaptureTransfers(captureTransfers, left, reps, numCapturesAddedInExpansion, numAddedHiddenCapturesPreExpansion, numCapturesPassed) {\n if (captureTransfers.size && numCapturesAddedInExpansion) {\n let numCapturesInLeft = 0;\n forEachUnescaped(left, captureDelim, () => numCapturesInLeft++, Context.DEFAULT);\n // Is 0 for global recursion\n const recursionDelimCaptureNum = numCapturesPassed - numCapturesInLeft + numAddedHiddenCapturesPreExpansion;\n const newCaptureTransfers = new Map();\n captureTransfers.forEach((from, to) => {\n const numCapturesInRight = (numCapturesAddedInExpansion - (numCapturesInLeft * reps)) / reps;\n const numCapturesAddedInLeft = numCapturesInLeft * reps;\n const newTo = to > (recursionDelimCaptureNum + numCapturesInLeft) ? to + numCapturesAddedInExpansion : to;\n const newFrom = [];\n for (const f of from) {\n // Before the recursed subpattern\n if (f <= recursionDelimCaptureNum) {\n newFrom.push(f);\n // After the recursed subpattern\n } else if (f > (recursionDelimCaptureNum + numCapturesInLeft + numCapturesInRight)) {\n newFrom.push(f + numCapturesAddedInExpansion);\n // Within the recursed subpattern, on the left of the recursion token\n } else if (f <= (recursionDelimCaptureNum + numCapturesInLeft)) {\n for (let i = 0; i <= reps; i++) {\n newFrom.push(f + (numCapturesInLeft * i));\n }\n // Within the recursed subpattern, on the right of the recursion token\n } else {\n for (let i = 0; i <= reps; i++) {\n newFrom.push(f + numCapturesAddedInLeft + (numCapturesInRight * i));\n }\n }\n }\n newCaptureTransfers.set(newTo, newFrom);\n });\n return newCaptureTransfers;\n }\n return captureTransfers;\n}\n\nexport {\n recursion,\n};\n","import {EsVersion, Target} from './options.js';\n\nconst cp = String.fromCodePoint;\nconst r = String.raw;\n\nconst envFlags = {\n flagGroups: (() => {\n try {\n new RegExp('(?i:)');\n } catch {\n return false;\n }\n return true;\n })(),\n unicodeSets: (() => {\n try {\n // Check for flag v support and also that nested classes can be parsed\n // See <github.com/slevithan/oniguruma-to-es/pull/41>\n new RegExp('[[]]', 'v');\n } catch {\n return false;\n }\n return true;\n })(),\n};\n// Detect WebKit bug: <github.com/slevithan/oniguruma-to-es/issues/30>\nenvFlags.bugFlagVLiteralHyphenIsRange = envFlags.unicodeSets ? (() => {\n try {\n new RegExp(r`[\\d\\-a]`, 'v');\n } catch {\n return true;\n }\n return false;\n})() : false;\n// Detect WebKit bug: <github.com/slevithan/oniguruma-to-es/issues/38>\nenvFlags.bugNestedClassIgnoresNegation = envFlags.unicodeSets && new RegExp('[[^a]]', 'v').test('a');\n\nfunction getNewCurrentFlags(current, {enable, disable}) {\n return {\n dotAll: !disable?.dotAll && !!(enable?.dotAll || current.dotAll),\n ignoreCase: !disable?.ignoreCase && !!(enable?.ignoreCase || current.ignoreCase),\n };\n}\n\nfunction getOrInsert(map, key, defaultValue) {\n if (!map.has(key)) {\n map.set(key, defaultValue);\n }\n return map.get(key);\n}\n\n/**\n@param {keyof Target} target\n@param {keyof Target} min\n@returns {boolean}\n*/\nfunction isMinTarget(target, min) {\n return EsVersion[target] >= EsVersion[min];\n}\n\nfunction throwIfNullish(value, msg) {\n if (value == null) {\n throw new Error(msg ?? 'Value expected');\n }\n return value;\n}\n\nexport {\n cp,\n envFlags,\n getNewCurrentFlags,\n getOrInsert,\n isMinTarget,\n r,\n throwIfNullish,\n};\n","import {envFlags} from './utils.js';\n/**\n@import {ToRegExpOptions} from './index.js';\n*/\n\nconst Accuracy = /** @type {const} */ ({\n default: 'default',\n strict: 'strict',\n});\n\nconst EsVersion = {\n ES2025: 2025,\n ES2024: 2024,\n ES2018: 2018,\n};\n\nconst Target = /** @type {const} */ ({\n auto: 'auto',\n ES2025: 'ES2025',\n ES2024: 'ES2024',\n ES2018: 'ES2018',\n});\n\n/**\nReturns a complete set of options, with default values set for options that weren't provided.\n@param {ToRegExpOptions} [options]\n@returns {Required<ToRegExpOptions>}\n*/\nfunction getOptions(options = {}) {\n if ({}.toString.call(options) !== '[object Object]') {\n throw new Error('Unexpected options');\n }\n if (options.target !== undefined && !Target[options.target]) {\n throw new Error(`Unexpected target \"${options.target}\"`)\n }\n // Set default values\n const opts = {\n // Sets the level of emulation rigor/strictness.\n accuracy: 'default',\n // Disables advanced emulation that relies on returning a `RegExp` subclass, resulting in\n // certain patterns not being emulatable.\n avoidSubclass: false,\n // Oniguruma flags; a string with `i`, `m`, `x`, `D`, `S`, `W`, `y{g}` in any order (all\n // optional). Oniguruma's `m` is equivalent to JavaScript's `s` (`dotAll`).\n flags: '',\n // Include JavaScript flag `g` (`global`) in the result.\n global: false,\n // Include JavaScript flag `d` (`hasIndices`) in the result.\n hasIndices: false,\n // Delay regex construction until first use if the transpiled pattern is at least this length.\n lazyCompileLength: Infinity,\n // JavaScript version used for generated regexes. Using `auto` detects the best value based on\n // your environment. Later targets allow faster processing, simpler generated source, and\n // support for additional features.\n target: 'auto',\n // Disables minifications that simplify the pattern without changing the meaning.\n verbose: false,\n ...options,\n // Advanced options that override standard behavior, error checking, and flags when enabled.\n rules: {\n // Useful with TextMate grammars that merge backreferences across patterns.\n allowOrphanBackrefs: false,\n // Use ASCII `\\b` and `\\B`, which increases search performance of generated regexes.\n asciiWordBoundaries: false,\n // Allow unnamed captures and numbered calls (backreferences and subroutines) when using\n // named capture. This is Oniguruma option `ONIG_OPTION_CAPTURE_GROUP`; on by default in\n // `vscode-oniguruma`.\n captureGroup: false,\n // Change the recursion depth limit from Oniguruma's `20` to an integer `2`–`20`.\n recursionLimit: 20,\n // `^` as `\\A`; `$` as`\\Z`. Improves search performance of generated regexes without changing\n // the meaning if searching line by line. This is Oniguruma option `ONIG_OPTION_SINGLELINE`.\n singleline: false,\n ...options.rules,\n },\n };\n if (opts.target === 'auto') {\n opts.target = envFlags.flagGroups ? 'ES2025' : (envFlags.unicodeSets ? 'ES2024' : 'ES2018');\n }\n return opts;\n}\n\nexport {\n Accuracy,\n EsVersion,\n getOptions,\n Target,\n};\n","import {cp, r} from './utils.js';\nimport {slug} from 'oniguruma-parser/parser';\n\n// `\\t\\n\\v\\f\\r\\x20`\nconst asciiSpaceChar = '[\\t-\\r ]';\n\nconst CharsWithoutIgnoreCaseExpansion = new Set([\n cp(0x130), // İ\n cp(0x131), // ı\n]);\n\n// Different than `PosixClassMap`'s `word`\nconst defaultWordChar = r`[\\p{L}\\p{M}\\p{N}\\p{Pc}]`;\n\nfunction getIgnoreCaseMatchChars(char) {\n // Some chars should not match the chars they case swap to\n if (CharsWithoutIgnoreCaseExpansion.has(char)) {\n return [char];\n }\n const set = new Set();\n const lower = char.toLowerCase();\n // Everything else is based on `lower`\n const upper = lower.toUpperCase();\n const title = LowerToTitleCaseMap.get(lower);\n const altLower = LowerToAlternativeLowerCaseMap.get(lower);\n const altUpper = LowerToAlternativeUpperCaseMap.get(lower);\n // Exclude ucase if multiple chars; count code point length. Excludes ucase versions of German\n // es-zed 'ß', ligatures like 'ff', and chars with no precomposed ucase like 'ʼn'. See\n // <unicode.org/Public/UNIDATA/SpecialCasing.txt>\n if ([...upper].length === 1) {\n set.add(upper);\n }\n altUpper && set.add(altUpper);\n title && set.add(title);\n // Lcase of 'İ' is multiple chars, but it's excluded by `CharsWithoutIgnoreCaseExpansion`\n set.add(lower);\n altLower && set.add(altLower);\n return [...set];\n}\n\n// The following set includes:\n// - All ES2024 general categories and their aliases (all are supported by Oniguruma). See\n// <github.com/mathiasbynens/unicode-match-property-value-ecmascript/blob/main/data/mappings.js>\n// - All ES2024 binary properties and their aliases (all are supported by Oniguruma). See\n// <tc39.es/ecma262/multipage/text-processing.html#table-binary-unicode-properties>\n// Unicode properties must be mapped to property names supported by JS, and must also apply JS's\n// stricter rules for casing, whitespace, hyphens, and underscores in Unicode property names. In\n// order to remain lightweight, this library assumes properties not in this list are Unicode script\n// names (which require a `Script=` or `sc=` prefix in JS). Unlike JS, Oniguruma doesn't support\n// script extensions, and it supports some properties that aren't supported in JS (including blocks\n// with an `In_` prefix). See also:\n// - Properties supported in Oniguruma: <github.com/kkos/oniguruma/blob/master/doc/UNICODE_PROPERTIES>\n// - Properties supported in JS by spec version: <github.com/eslint-community/regexpp/blob/main/src/unicode/properties.ts>\nconst JsUnicodePropertyMap = /* @__PURE__ */ new Map(\n`C Other\nCc Control cntrl\nCf Format\nCn Unassigned\nCo Private_Use\nCs Surrogate\nL Letter\nLC Cased_Letter\nLl Lowercase_Letter\nLm Modifier_Letter\nLo Other_Letter\nLt Titlecase_Letter\nLu Uppercase_Letter\nM Mark Combining_Mark\nMc Spacing_Mark\nMe Enclosing_Mark\nMn Nonspacing_Mark\nN Number\nNd Decimal_Number digit\nNl Letter_Number\nNo Other_Number\nP Punctuation punct\nPc Connector_Punctuation\nPd Dash_Punctuation\nPe Close_Punctuation\nPf Final_Punctuation\nPi Initial_Punctuation\nPo Other_Punctuation\nPs Open_Punctuation\nS Symbol\nSc Currency_Symbol\nSk Modifier_Symbol\nSm Math_Symbol\nSo Other_Symbol\nZ Separator\nZl Line_Separator\nZp Paragraph_Separator\nZs Space_Separator\nASCII\nASCII_Hex_Digit AHex\nAlphabetic Alpha\nAny\nAssigned\nBidi_Control Bidi_C\nBidi_Mirrored Bidi_M\nCase_Ignorable CI\nCased\nChanges_When_Casefolded CWCF\nChanges_When_Casemapped CWCM\nChanges_When_Lowercased CWL\nChanges_When_NFKC_Casefolded CWKCF\nChanges_When_Titlecased CWT\nChanges_When_Uppercased CWU\nDash\nDefault_Ignorable_Code_Point DI\nDeprecated Dep\nDiacritic Dia\nEmoji\nEmoji_Component EComp\nEmoji_Modifier EMod\nEmoji_Modifier_Base EBase\nEmoji_Presentation EPres\nExtended_Pictographic ExtPict\nExtender Ext\nGrapheme_Base Gr_Base\nGrapheme_Extend Gr_Ext\nHex_Digit Hex\nIDS_Binary_Operator IDSB\nIDS_Trinary_Operator IDST\nID_Continue IDC\nID_Start IDS\nIdeographic Ideo\nJoin_Control Join_C\nLogical_Order_Exception LOE\nLowercase Lower\nMath\nNoncharacter_Code_Point NChar\nPattern_Syntax Pat_Syn\nPattern_White_Space Pat_WS\nQuotation_Mark QMark\nRadical\nRegional_Indicator RI\nSentence_Terminal STerm\nSoft_Dotted SD\nTerminal_Punctuation Term\nUnified_Ideograph UIdeo\nUppercase Upper\nVariation_Selector VS\nWhite_Space space\nXID_Continue XIDC\nXID_Start XIDS`.\n split(/\\s/).\n map(p => [slug(p), p])\n);\n\nconst LowerToAlternativeLowerCaseMap = new Map([\n ['s', cp(0x17F)], // s, ſ\n [cp(0x17F), 's'], // ſ, s\n]);\n\nconst LowerToAlternativeUpperCaseMap = new Map([\n [cp(0xDF), cp(0x1E9E)], // ß, ẞ\n [cp(0x6B), cp(0x212A)], // k, K (Kelvin)\n [cp(0xE5), cp(0x212B)], // å, Å (Angstrom)\n [cp(0x3C9), cp(0x2126)], // ω, Ω (Ohm)\n]);\n\n// See <github.com/node-unicode/unicode-16.0.0/tree/main/General_Category/Titlecase_Letter>\nconst LowerToTitleCaseMap = new Map([\n titleEntry(0x1C5),\n titleEntry(0x1C8),\n titleEntry(0x1CB),\n titleEntry(0x1F2),\n ...titleRange(0x1F88, 0x1F8F),\n ...titleRange(0x1F98, 0x1F9F),\n ...titleRange(0x1FA8, 0x1FAF),\n titleEntry(0x1FBC),\n titleEntry(0x1FCC),\n titleEntry(0x1FFC),\n]);\n\n// Unlike Onig's Unicode properties via `\\p` and `\\P`, these names are case sensitive and don't\n// allow inserting whitespace and underscores. Definitions at\n// <github.com/kkos/oniguruma/blob/master/doc/RE> (see: POSIX bracket: Unicode Case)\n// Note: Handling in the transformer assumes all values here are a single, negateable node that's\n// not pre-negated at the top level. It also uses ASCII versions of `graph` and `print` for target\n// `ES2018` (which doesn't allow intersection) if `accuracy` isn't `strict`\nconst PosixClassMap = new Map([\n ['alnum', r`[\\p{Alpha}\\p{Nd}]`],\n ['alpha', r`\\p{Alpha}`],\n ['ascii', r`\\p{ASCII}`],\n ['blank', r`[\\p{Zs}\\t]`],\n ['cntrl', r`\\p{Cc}`],\n ['digit', r`\\p{Nd}`],\n ['graph', r`[\\P{space}&&\\P{Cc}&&\\P{Cn}&&\\P{Cs}]`],\n ['lower', r`\\p{Lower}`],\n ['print', r`[[\\P{space}&&\\P{Cc}&&\\P{Cn}&&\\P{Cs}]\\p{Zs}]`],\n ['punct', r`[\\p{P}\\p{S}]`], // Updated value from Onig 6.9.9; changed from Unicode `\\p{punct}`\n ['space', r`\\p{space}`],\n ['upper', r`\\p{Upper}`],\n ['word', r`[\\p{Alpha}\\p{M}\\p{Nd}\\p{Pc}]`],\n ['xdigit', r`\\p{AHex}`],\n]);\n\nfunction range(start, end) {\n // const range = Array.from(Array(end + 1 - start), (_, i) => i + start);\n // const range = Array(end + 1 - start).fill(start).map((x, i) => x + i);\n const range = [];\n for (let i = start; i <= end; i++) {\n range.push(i);\n }\n return range;\n}\n\nfunction titleEntry(codePoint) {\n const char = cp(codePoint);\n return [char.toLowerCase(), char];\n}\n\nfunction titleRange(start, end) {\n return range(start, end).map(codePoint => titleEntry(codePoint));\n}\n\nconst UnicodePropertiesWithSpecificCase = new Set([\n 'Lower', 'Lowercase',\n 'Upper', 'Uppercase',\n 'Ll', 'Lowercase_Letter',\n 'Lt', 'Titlecase_Letter',\n 'Lu', 'Uppercase_Letter',\n // The `Changes_When_*` properties (and their aliases) could be included, but they're very rare.\n // Some other properties include a handful of chars with specific cases only, but these chars are\n // generally extreme edge cases and using such properties case insensitively generally produces\n // undesired behavior anyway\n]);\n\nexport {\n asciiSpaceChar,\n defaultWordChar,\n getIgnoreCaseMatchChars,\n JsUnicodePropertyMap,\n PosixClassMap,\n UnicodePropertiesWithSpecificCase,\n};\n","import {Accuracy, Target} from './options.js';\nimport {asciiSpaceChar, defaultWordChar, JsUnicodePropertyMap, PosixClassMap} from './unicode.js';\nimport {cp, getNewCurrentFlags, getOrInsert, isMinTarget, r} from './utils.js';\nimport {createAlternative, createAssertion, createBackreference, createCapturingGroup, createCharacter, createCharacterClass, createCharacterSet, createGroup, createLookaroundAssertion, createQuantifier, createSubroutine, createUnicodeProperty, hasOnlyChild, parse, slug} from 'oniguruma-parser/parser';\nimport {traverse} from 'oniguruma-parser/traverser';\n/**\n@import {CapturingGroupNode, OnigurumaAst, Node} from 'oniguruma-parser/parser';\n@import {Visitor} from 'oniguruma-parser/traverser';\n*/\n\n/**\n@typedef {\n OnigurumaAst & {\n options: {\n disable: {[key: string]: boolean};\n force: {[key: string]: boolean};\n };\n _originMap: Map<CapturingGroupNode, CapturingGroupNode>;\n _strategy: string | null;\n }\n} RegexPlusAst\n*/\n/**\nTransforms an Oniguruma AST in-place to a [Regex+](https://github.com/slevithan/regex) AST.\nAssumes target ES2025, expecting the generator to down-convert to the desired JS target version.\n\nRegex+'s syntax and behavior is a strict superset of native JavaScript, so the AST is very close\nto representing native ES2025 `RegExp` but with some added features (atomic groups, possessive\nquantifiers, recursion). The AST doesn't use some of Regex+'s extended features like flag x or\nsubroutines because they follow PCRE behavior and work somewhat differently than in Oniguruma. The\nAST represents what's needed to precisely reproduce Oniguruma behavior using Regex+.\n@param {OnigurumaAst} ast\n@param {{\n accuracy?: keyof Accuracy;\n asciiWordBoundaries?: boolean;\n avoidSubclass?: boolean;\n bestEffortTarget?: keyof Target;\n}} [options]\n@returns {RegexPlusAst}\n*/\nfunction transform(ast, options) {\n const opts = {\n // A couple edge cases exist where options `accuracy` and `bestEffortTarget` are used:\n // - `CharacterSet` kind `text_segment` (`\\X`): An exact representation would require heavy\n // Unicode data; a best-effort approximation requires knowing the target.\n // - `CharacterSet` kind `posix` with values `graph` and `print`: Their complex Unicode\n // representations would be hard to change to ASCII versions after the fact in the generator\n // based on `target`/`accuracy`, so produce the appropriate structure here.\n accuracy: 'default',\n asciiWordBoundaries: false,\n avoidSubclass: false,\n bestEffortTarget: 'ES2025',\n ...options,\n };\n // Add `parent` properties to all nodes to help during traversal; also expected by the generator\n addParentProperties(ast);\n const firstPassState = {\n accuracy: opts.accuracy,\n asciiWordBoundaries: opts.asciiWordBoundaries,\n avoidSubclass: opts.avoidSubclass,\n flagDirectivesByAlt: new Map(),\n jsGroupNameMap: new Map(),\n minTargetEs2024: isMinTarget(opts.bestEffortTarget, 'ES2024'),\n passedLookbehind: false,\n strategy: null,\n // Subroutines can appear before the groups they ref, so collect reffed nodes for a second pass \n subroutineRefMap: new Map(),\n supportedGNodes: new Set(),\n digitIsAscii: ast.flags.digitIsAscii,\n spaceIsAscii: ast.flags.spaceIsAscii,\n wordIsAscii: ast.flags.wordIsAscii,\n };\n traverse(ast, FirstPassVisitor, firstPassState);\n // Global flags modified by the first pass\n const globalFlags = {\n dotAll: ast.flags.dotAll,\n ignoreCase: ast.flags.ignoreCase,\n };\n // The interplay of subroutines (with Onig's unique rules/behavior for them; see comments in the\n // parser for details) with backref multiplexing (a unique Onig feature), flag modifiers, and\n // duplicate group names (which might be indirectly referenced by subroutines even though\n // subroutines can't directly reference duplicate names) is extremely complicated to emulate in\n // JS in a way that handles all edge cases, so we need multiple passes to do it\n const secondPassState = {\n currentFlags: globalFlags,\n prevFlags: null,\n globalFlags,\n groupOriginByCopy: new Map(),\n groupsByName: new Map(),\n multiplexCapturesToLeftByRef: new Map(),\n openRefs: new Map(),\n reffedNodesByReferencer: new Map(),\n subroutineRefMap: firstPassState.subroutineRefMap,\n };\n traverse(ast, SecondPassVisitor, secondPassState);\n const thirdPassState = {\n groupsByName: secondPassState.groupsByName,\n highestOrphanBackref: 0,\n numCapturesToLeft: 0,\n reffedNodesByReferencer: secondPassState.reffedNodesByReferencer,\n };\n traverse(ast, ThirdPassVisitor, thirdPassState);\n ast._originMap = secondPassState.groupOriginByCopy;\n ast._strategy = firstPassState.strategy;\n return ast;\n}\n\nconst /** @type {Visitor} */ FirstPassVisitor = {\n AbsenceFunction({node, parent, replaceWith}) {\n const {body, kind} = node;\n if (kind === 'repeater') {\n // Convert `(?~…)` to `(?:(?:(?!…)\\p{Any})*)`\n const innerGroup = createGroup();\n innerGroup.body[0].body.push(\n // Insert own alts as `body`\n createLookaroundAssertion({negate: true, body}),\n createUnicodeProperty('Any')\n );\n const outerGroup = createGroup();\n outerGroup.body[0].body.push(\n createQuantifier('greedy', 0, Infinity, innerGroup)\n );\n replaceWith(setParentDeep(outerGroup, parent), {traverse: true});\n } else {\n throw new Error(`Unsupported absence function \"(?~|\"`);\n }\n },\n\n Alternative: {\n enter({node, parent, key}, {flagDirectivesByAlt}) {\n // Look for own-level flag directives when entering an alternative because after traversing\n // the directive itself, any subsequent flag directives will no longer be at the same level\n const flagDirectives = node.body.filter(el => el.kind === 'flags');\n for (let i = key + 1; i < parent.body.length; i++) {\n const forwardSiblingAlt = parent.body[i];\n getOrInsert(flagDirectivesByAlt, forwardSiblingAlt, []).push(...flagDirectives);\n }\n },\n exit({node}, {flagDirectivesByAlt}) {\n // Wait until exiting to wrap an alternative's nodes with flag groups that extend flag\n // directives from prior sibling alternatives, because doing this at the end allows inner\n // nodes to accurately check their level in the tree\n if (flagDirectivesByAlt.get(node)?.length) {\n const flags = getCombinedFlagModsFromFlagNodes(flagDirectivesByAlt.get(node));\n if (flags) {\n const flagGroup = createGroup({flags});\n flagGroup.body[0].body = node.body;\n node.body = [setParentDeep(flagGroup, node)];\n }\n }\n },\n },\n\n Assertion({node, parent, key, container, root, remove, replaceWith}, state) {\n const {kind, negate} = node;\n const {asciiWordBoundaries, avoidSubclass, supportedGNodes, wordIsAscii} = state;\n if (kind === 'text_segment_boundary') {\n // Supported by the parser but not yet for transpilation\n throw new Error(`Unsupported text segment boundary \"\\\\${negate ? 'Y' : 'y'}\"`);\n } else if (kind === 'line_end') {\n replaceWith(setParentDeep(createLookaroundAssertion({body: [\n createAlternative({body: [createAssertion('string_end')]}),\n createAlternative({body: [createCharacter(10)]}), // `\\n`\n ]}), parent));\n } else if (kind === 'line_start') {\n // Onig's `^` doesn't match after a string-terminating line feed\n replaceWith(setParentDeep(parseFragment(r`(?<=\\A|\\n(?!\\z))`, {skipLookbehindValidation: true}), parent));\n } else if (kind === 'search_start') {\n if (supportedGNodes.has(node)) {\n root.flags.sticky = true;\n remove();\n } else {\n const prev = container[key - 1]; // parent.body[key - 1]\n // Not all ways of blocking the `\\G` from matching are covered here (ex: a node prior to\n // the `prev` node could block), but blocked `\\G` is an edge case and it's okay if some\n // blocked cases result in the standard error for being unsupported without a subclass\n if (prev && isAlwaysNonZeroLength(prev)) {\n replaceWith(setParentDeep(createLookaroundAssertion({negate: true}), parent));\n } else if (avoidSubclass) {\n throw new Error(r`Uses \"\\G\" in a way that requires a subclass`);\n } else {\n replaceWith(setParent(createAssertion('string_start'), parent));\n state.strategy = 'clip_search';\n }\n }\n } else if (kind === 'string_end' || kind === 'string_start') {\n // Don't need transformation since JS flag m isn't used\n } else if (kind === 'string_end_newline') {\n replaceWith(setParentDeep(parseFragment(r`(?=\\n?\\z)`), parent));\n } else if (kind === 'word_boundary') {\n if (!wordIsAscii && !asciiWordBoundaries) {\n const b = `(?:(?<=${defaultWordChar})(?!${defaultWordChar})|(?<!${defaultWordChar})(?=${defaultWordChar}))`;\n const B = `(?:(?<=${defaultWordChar})(?=${defaultWordChar})|(?<!${defaultWordChar})(?!${defaultWordChar}))`;\n replaceWith(setParentDeep(parseFragment(negate ? B : b), parent));\n }\n } else {\n throw new Error(`Unexpected assertion kind \"${kind}\"`);\n }\n },\n\n Backreference({node}, {jsGroupNameMap}) {\n let {ref} = node;\n if (typeof ref === 'string' && !isValidJsGroupName(ref)) {\n ref = getAndStoreJsGroupName(ref, jsGroupNameMap);\n node.ref = ref;\n }\n },\n\n CapturingGroup({node}, {jsGroupNameMap, subroutineRefMap}) {\n let {name} = node;\n if (name && !isValidJsGroupName(name)) {\n name = getAndStoreJsGroupName(name, jsGroupNameMap);\n node.name = name;\n }\n subroutineRefMap.set(node.number, node);\n if (name) {\n subroutineRefMap.set(name, node);\n }\n },\n\n CharacterClassRange({node, parent, replaceWith}) {\n if (parent.kind === 'intersection') {\n // JS doesn't allow intersection with ranges without a wrapper class\n const cc = createCharacterClass({body: [node]});\n replaceWith(setParentDeep(cc, parent), {traverse: true});\n }\n },\n\n CharacterSet({node, parent, replaceWith}, {accuracy, minTargetEs2024, digitIsAscii, spaceIsAscii, wordIsAscii}) {\n const {kind, negate, value} = node;\n // Flag D with `\\d`, `\\p{Digit}`, `[[:digit:]]`\n if (digitIsAscii && (kind === 'digit' || value === 'digit')) {\n replaceWith(setParent(createCharacterSet('digit', {negate}), parent));\n return;\n }\n // Flag S with `\\s`, `\\p{Space}`, `[[:space:]]`\n if (spaceIsAscii && (kind === 'space' || value === 'space')) {\n replaceWith(setParentDeep(setNegate(parseFragment(asciiSpaceChar), negate), parent));\n return;\n }\n // Flag W with `\\w`, `\\p{Word}`, `[[:word:]]`\n if (wordIsAscii && (kind === 'word' || value === 'word')) {\n replaceWith(setParent(createCharacterSet('word', {negate}), parent));\n return;\n }\n if (kind === 'any') {\n replaceWith(setParent(createUnicodeProperty('Any'), parent));\n } else if (kind === 'digit') {\n replaceWith(setParent(createUnicodeProperty('Nd', {negate}), parent));\n } else if (kind === 'dot') {\n // No-op; doesn't need transformation\n } else if (kind === 'text_segment') {\n if (accuracy === 'strict') {\n throw new Error(r`Use of \"\\X\" requires non-strict accuracy`);\n }\n // Emoji pattern based on <github.com/slevithan/emoji-regex-xs> but adapted for our use case\n // Note: Not using raw strings to work around Bun ≤ 1.1.34 issue <github.com/oven-sh/bun/issues/7540>\n const eBase = '\\\\p{Emoji}(?:\\\\p{EMod}|\\\\uFE0F\\\\u20E3?|[\\\\x{E0020}-\\\\x{E007E}]+\\\\x{E007F})?';\n const emoji = r`\\p{RI}{2}|${eBase}(?:\\u200D${eBase})*`;\n replaceWith(setParentDeep(parseFragment(\n // Close approximation of an extended grapheme cluster; see <unicode.org/reports/tr29/>\n r`(?>\\r\\n|${minTargetEs2024 ? r`\\p{RGI_Emoji}` : emoji}|\\P{M}\\p{M}*)`,\n // Allow JS property `RGI_Emoji` through\n {skipPropertyNameValidation: true}\n ), parent));\n } else if (kind === 'hex') {\n replaceWith(setParent(createUnicodeProperty('AHex', {negate}), parent));\n } else if (kind === 'newline') {\n replaceWith(setParentDeep(parseFragment(negate ? '[^\\n]' : '(?>\\r\\n?|[\\n\\v\\f\\x85\\u2028\\u2029])'), parent));\n } else if (kind === 'posix') {\n if (!minTargetEs2024 && (value === 'graph' || value === 'print')) {\n if (accuracy === 'strict') {\n throw new Error(`POSIX class \"${value}\" requires min target ES2024 or non-strict accuracy`);\n }\n let ascii = {\n graph: '!-~',\n print: ' -~',\n }[value];\n if (negate) {\n // POSIX classes are always nested in a char class; manually invert the range rather than\n // using `[^…]` so it can be unwrapped since ES2018 doesn't support nested classes\n ascii = `\\0-${cp(ascii.codePointAt(0) - 1)}${cp(ascii.codePointAt(2) + 1)}-\\u{10FFFF}`;\n }\n replaceWith(setParentDeep(parseFragment(`[${ascii}]`), parent));\n } else {\n replaceWith(setParentDeep(setNegate(parseFragment(PosixClassMap.get(value)), negate), parent));\n }\n } else if (kind === 'property') {\n if (!JsUnicodePropertyMap.has(slug(value))) {\n // Assume it's a script; no error checking is the price for avoiding heavyweight Unicode\n // data for all script names\n node.key = 'sc';\n }\n } else if (kind === 'space') {\n // Can't use JS's Unicode `\\s` since unlike Onig it includes `\\uFEFF` and excludes `\\x85`\n replaceWith(setParent(createUnicodeProperty('space', {negate}), parent));\n } else if (kind === 'word') {\n replaceWith(setParentDeep(setNegate(parseFragment(defaultWordChar), negate), parent));\n } else {\n throw new Error(`Unexpected character set kind \"${kind}\"`);\n }\n },\n\n Directive({node, parent, root, remove, replaceWith, removeAllPrevSiblings, removeAllNextSiblings}) {\n const {kind, flags} = node;\n if (kind === 'flags') {\n if (!flags.enable && !flags.disable) {\n // Flag directive without flags; ex: `(?-)`, `(?--)`\n remove();\n } else {\n const flagGroup = createGroup({flags});\n flagGroup.body[0].body = removeAllNextSiblings();\n replaceWith(setParentDeep(flagGroup, parent), {traverse: true});\n }\n } else if (kind === 'keep') {\n const firstAlt = root.body[0];\n // Supporting a full-pattern wrapper around `\\K` enables use with flag modifiers\n const hasWrapperGroup =\n root.body.length === 1 &&\n // Not emulatable if within a `CapturingGroup`\n hasOnlyChild(firstAlt, {type: 'Group'}) &&\n firstAlt.body[0].body.length === 1;\n const topLevel = hasWrapperGroup ? firstAlt.body[0] : root;\n if (parent.parent !== topLevel || topLevel.body.length > 1) {\n throw new Error(r`Uses \"\\K\" in a way that's unsupported`);\n }\n const lookbehind = createLookaroundAssertion({behind: true});\n lookbehind.body[0].body = removeAllPrevSiblings();\n replaceWith(setParentDeep(lookbehind, parent));\n } else {\n throw new Error(`Unexpected directive kind \"${kind}\"`);\n }\n },\n\n Flags({node, parent}) {\n // Throw for flags supported by the parser but not yet for transpilation\n if (node.posixIsAscii) {\n throw new Error('Unsupported flag \"P\"');\n }\n if (node.textSegmentMode === 'word') {\n throw new Error('Unsupported flag \"y{w}\"');\n }\n // Remove Onig flags that aren't available in JS\n [ 'digitIsAscii', // Flag D\n 'extended', // Flag x\n 'posixIsAscii', // Flag P\n 'spaceIsAscii', // Flag S\n 'wordIsAscii', // Flag W\n 'textSegmentMode', // Flag y{g} or y{w}\n ].forEach(f => delete node[f]);\n Object.assign(node, {\n // JS flag g; no Onig equiv\n global: false,\n // JS flag d; no Onig equiv\n hasIndices: false,\n // JS flag m; no Onig equiv but its behavior is always on in Onig. Onig's only line break\n // char is line feed, unlike JS, so this flag isn't used since it would produce inaccurate\n // results (also allows `^` and `$` to be used in the generator for string start and end)\n multiline: false,\n // JS flag y; no Onig equiv, but used for `\\G` emulation\n sticky: node.sticky ?? false,\n // Note: Regex+ doesn't allow explicitly adding flags it handles implicitly, so leave out\n // properties `unicode` (JS flag u) and `unicodeSets` (JS flag v). Keep the existing values\n // for `ignoreCase` (flag i) and `dotAll` (JS flag s, but Onig flag m)\n });\n // Options accepted by Regex+; see <github.com/slevithan/regex#-options>\n parent.options = {\n disable: {\n // Onig uses different rules for flag x than Regex+, so disable the implicit flag\n x: true,\n // Onig has no flag to control \"named capture only\" mode but contextually applies its\n // behavior when named capturing is used, so disable Regex+'s implicit flag for it\n n: true,\n },\n force: {\n // Always add flag v because we're generating an AST that relies on it (it enables JS\n // support for Onig features nested classes, intersection, Unicode properties, etc.).\n // However, the generator might disable flag v based on its `target` option\n v: true,\n },\n };\n },\n\n Group({node}) {\n if (!node.flags) {\n return;\n }\n const {enable, disable} = node.flags;\n // Onig's flag x (`extended`) isn't available in JS\n enable?.extended && delete enable.extended;\n disable?.extended && delete disable.extended;\n // JS doesn't support flag groups that enable and disable the same flag; ex: `(?i-i:)`\n enable?.dotAll && disable?.dotAll && delete enable.dotAll;\n enable?.ignoreCase && disable?.ignoreCase && delete enable.ignoreCase;\n // Cleanup\n enable && !Object.keys(enable).length && delete node.flags.enable;\n disable && !Object.keys(disable).length && delete node.flags.disable;\n !node.flags.enable && !node.flags.disable && delete node.flags;\n },\n\n LookaroundAssertion({node}, state) {\n const {kind} = node;\n if (kind === 'lookbehind') {\n state.passedLookbehind = true;\n }\n },\n\n NamedCallout({node, parent, replaceWith}) {\n const {kind} = node;\n if (kind === 'fail') {\n replaceWith(setParentDeep(createLookaroundAssertion({negate: true}), parent));\n } else {\n throw new Error(`Unsupported named callout \"(*${kind.toUpperCase()}\"`);\n }\n },\n\n Quantifier({node}) {\n if (node.body.type === 'Quantifier') {\n // Change e.g. `a**` to `(?:a*)*`\n const group = createGroup();\n group.body[0].body.push(node.body);\n node.body = setParentDeep(group, node);\n }\n },\n\n Regex: {\n enter({node}, {supportedGNodes}) {\n // For `\\G` to be accurately emulatable using JS flag y, it must be at (and only at) the start\n // of every top-level alternative (with complex rules for what determines being at the start).\n // Additional `\\G` error checking in `Assertion` visitor\n const leadingGs = [];\n let hasAltWithLeadG = false;\n let hasAltWithoutLeadG = false;\n for (const alt of node.body) {\n if (alt.body.length === 1 && alt.body[0].kind === 'search_start') {\n // Remove the `\\G` (leaving behind an empty alternative, and without adding JS flag y)\n // since a top-level alternative that includes only `\\G` always matches at the start of the\n // match attempt. Note that this is based on Oniguruma's rules, and is different than other\n // regex flavors where `\\G` matches at the end of the previous match (a subtle distinction\n // that's relevant after zero-length matches)\n alt.body.pop();\n } else {\n const leadingG = getLeadingG(alt.body);\n if (leadingG) {\n hasAltWithLeadG = true;\n Array.isArray(leadingG) ?\n leadingGs.push(...leadingG) :\n leadingGs.push(leadingG);\n } else {\n hasAltWithoutLeadG = true;\n }\n }\n }\n if (hasAltWithLeadG && !hasAltWithoutLeadG) {\n // Supported `\\G` nodes will be removed (and add flag y) when traversed\n leadingGs.forEach(g => supportedGNodes.add(g));\n }\n },\n exit(_, {accuracy, passedLookbehind, strategy}) {\n if (accuracy === 'strict' && passedLookbehind && strategy) {\n throw new Error(r`Uses \"\\G\" in a way that requires non-strict accuracy`);\n }\n },\n },\n\n Subroutine({node}, {jsGroupNameMap}) {\n let {ref} = node;\n if (typeof ref === 'string' && !isValidJsGroupName(ref)) {\n ref = getAndStoreJsGroupName(ref, jsGroupNameMap);\n node.ref = ref;\n }\n },\n};\n\nconst /** @type {Visitor} */ SecondPassVisitor = {\n Backreference({node}, {multiplexCapturesToLeftByRef, reffedNodesByReferencer}) {\n const {orphan, ref} = node;\n if (!orphan) {\n // Copy the current state for later multiplexing expansion. That's done in a subsequent pass\n // because backref numbers need to be recalculated after subroutine expansion\n reffedNodesByReferencer.set(node, [...multiplexCapturesToLeftByRef.get(ref).map(({node}) => node)]);\n }\n },\n\n CapturingGroup: {\n enter(\n { node,\n parent,\n replaceWith,\n skip,\n },\n { groupOriginByCopy,\n groupsByName,\n multiplexCapturesToLeftByRef,\n openRefs,\n reffedNodesByReferencer,\n }\n ) {\n // Has value if we're within a subroutine expansion\n const origin = groupOriginByCopy.get(node);\n\n // ## Handle recursion; runs after subroutine expansion\n if (origin && openRefs.has(node.number)) {\n // Recursive subroutines don't affect any following backrefs to their `ref` (unlike other\n // subroutines), so don't wrap with a capture. The reffed group might have its name removed\n // due to later subroutine expansion\n const recursion = setParent(createRecursion(node.number), parent);\n reffedNodesByReferencer.set(recursion, openRefs.get(node.number));\n replaceWith(recursion);\n return;\n }\n openRefs.set(node.number, node);\n\n // ## Track data for backref multiplexing\n multiplexCapturesToLeftByRef.set(node.number, []);\n if (node.name) {\n getOrInsert(multiplexCapturesToLeftByRef, node.name, []);\n }\n const multiplexNodes = multiplexCapturesToLeftByRef.get(node.name ?? node.number);\n for (let i = 0; i < multiplexNodes.length; i++) {\n // Captures added via subroutine expansion (maybe indirectly because they were descendant\n // captures of the reffed group or in a nested subroutine expansion) form a set with their\n // origin group and any other copies of it added via subroutines. Only the most recently\n // matched within this set is added to backref multiplexing. So search the list of already-\n // tracked multiplexed nodes for this group name or number to see if there's a node being\n // replaced by this capture\n const multiplex = multiplexNodes[i];\n if (\n // This group is from subroutine expansion, and there's a multiplex value from either the\n // origin node or a prior subroutine expansion group with the same origin\n (origin === multiplex.node || (origin && origin === multiplex.origin)) ||\n // This group is not from subroutine expansion, and it comes after a subroutine expansion\n // group that refers to this group\n node === multiplex.origin\n ) {\n multiplexNodes.splice(i, 1);\n break;\n }\n }\n multiplexCapturesToLeftByRef.get(node.number).push({node, origin});\n if (node.name) {\n multiplexCapturesToLeftByRef.get(node.name).push({node, origin});\n }\n\n // ## Track data for duplicate names\n // Pre-ES2025 doesn't allow duplicate names, but ES2025 allows duplicate names that are\n // unique per mutually exclusive alternation path. However, Oniguruma's handling for named\n // subpatterns on match results means we can't use this ES2025 feature even when in an ES2025\n // env. So, if using a duplicate name, remove the name from all but the first instance that\n // wasn't created by subroutine expansion\n if (node.name) {\n const groupsWithSameName = getOrInsert(groupsByName, node.name, new Map());\n let hasDuplicateNameToRemove = false;\n if (origin) {\n // Subroutines and their child captures shouldn't hold duplicate names in the final state\n hasDuplicateNameToRemove = true;\n } else {\n for (const groupInfo of groupsWithSameName.values()) {\n if (!groupInfo.hasDuplicateNameToRemove) {\n // Will change to an unnamed capture in a later pass\n hasDuplicateNameToRemove = true;\n break;\n }\n }\n }\n groupsByName.get(node.name).set(node, {node, hasDuplicateNameToRemove});\n }\n },\n exit({node}, {openRefs}) {\n openRefs.delete(node.number);\n },\n },\n\n Group: {\n enter({node}, state) {\n // Flag directives have already been converted to flag groups by the previous pass\n state.prevFlags = state.currentFlags;\n if (node.flags) {\n state.currentFlags = getNewCurrentFlags(state.currentFlags, node.flags);\n }\n },\n exit(_, state) {\n state.currentFlags = state.prevFlags;\n },\n },\n\n Subroutine({node, parent, replaceWith}, state) {\n const {isRecursive, ref} = node;\n\n // Subroutine nodes with `isRecursive` are created during the current traversal; they're only\n // traversed here if a recursive subroutine created during traversal is then copied by a\n // subroutine expansion, e.g. with `(?<a>\\g<a>)\\g<a>`\n if (isRecursive) {\n // Immediate parent is an alternative or quantifier; can skip\n let reffed = parent;\n while ((reffed = reffed.parent)) {\n if (reffed.type === 'CapturingGroup' && (reffed.name === ref || reffed.number === ref)) {\n break;\n }\n }\n // Track the referenced node because `ref`s are rewritten in a subsequent pass; capturing\n // group names and numbers might change due to subroutine expansion and duplicate group names\n state.reffedNodesByReferencer.set(node, reffed);\n return;\n }\n\n const reffedGroupNode = state.subroutineRefMap.get(ref);\n // Other forms of recursion are handled by the `CapturingGroup` visitor\n const isGlobalRecursion = ref === 0;\n const expandedSubroutine = isGlobalRecursion ?\n createRecursion(0) :\n // The reffed group might itself contain subroutines, which are expanded during sub-traversal\n cloneCapturingGroup(reffedGroupNode, state.groupOriginByCopy, null);\n let replacement = expandedSubroutine;\n if (!isGlobalRecursion) {\n // Subroutines take their flags from the reffed group, not the flags surrounding themselves\n const reffedGroupFlagMods = getCombinedFlagModsFromFlagNodes(getAllParents(\n reffedGroupNode,\n p => p.type === 'Group' && !!p.flags\n ));\n const reffedGroupFlags = reffedGroupFlagMods ?\n getNewCurrentFlags(state.globalFlags, reffedGroupFlagMods) :\n state.globalFlags;\n if (!areFlagsEqual(reffedGroupFlags, state.currentFlags)) {\n replacement = createGroup({\n flags: getFlagModsFromFlags(reffedGroupFlags),\n });\n replacement.body[0].body.push(expandedSubroutine);\n }\n }\n replaceWith(setParentDeep(replacement, parent), {traverse: !isGlobalRecursion});\n },\n};\n\nconst /** @type {Visitor} */ ThirdPassVisitor = {\n Backreference({node, parent, replaceWith}, state) {\n if (node.orphan) {\n state.highestOrphanBackref = Math.max(state.highestOrphanBackref, node.ref);\n // Don't renumber; used with `allowOrphanBackrefs`\n return;\n }\n const reffedNodes = state.reffedNodesByReferencer.get(node);\n const participants = reffedNodes.filter(reffed => canParticipateWithNode(reffed, node));\n // For the backref's `ref`, use `number` rather than `name` because group names might have been\n // removed if they're duplicates within their alternation path, or they might be removed later\n // by the generator (depending on target) if they're duplicates within the overall pattern.\n // Backrefs must come after groups they ref, so reffed node `number`s are already recalculated\n if (!participants.length) {\n // If no participating capture, convert backref to to `(?!)`; backrefs to nonparticipating\n // groups can't match in Onig but match the empty string in JS\n replaceWith(setParentDeep(createLookaroundAssertion({negate: true}), parent));\n } else if (participants.length > 1) {\n // Multiplex for backrefs to duplicate capture names; try them in reverse order\n const group = createGroup({\n atomic: true,\n body: participants.reverse().map(reffed => createAlternative({\n body: [createBackreference(reffed.number)],\n })),\n });\n replaceWith(setParentDeep(group, parent));\n } else {\n node.ref = participants[0].number;\n }\n },\n\n CapturingGroup({node}, state) {\n // Recalculate the number since the current value might be wrong due to subroutine expansion\n node.number = ++state.numCapturesToLeft;\n if (node.name) {\n // Removing duplicate names here rather than in an earlier pass avoids extra complexity when\n // handling subroutine expansion and backref multiplexing\n if (state.groupsByName.get(node.name).get(node).hasDuplicateNameToRemove) {\n delete node.name;\n }\n }\n },\n\n Regex: {\n exit({node}, state) {\n // HACK: Add unnamed captures to the end of the regex if needed to allow orphaned backrefs\n // to be valid in JS with flag u/v. This is needed to support TextMate grammars, which\n // replace numbered backrefs in their `end` pattern with values matched by captures in their\n // `begin` pattern! See <github.com/microsoft/vscode-textmate/blob/7e0ea282f4f25fef12a6c84fa4fa7266f67b58dc/src/rule.ts#L661-L663>\n // An `end` pattern, prior to this substitution, might have backrefs to a group that doesn't\n // exist within `end`. This presents a dilemma since both Oniguruma and JS (with flag u/v)\n // error for backrefs to undefined captures. So adding captures to the end is a solution that\n // doesn't change what the regex matches, and lets invalid numbered backrefs through. Note:\n // Orphan backrefs are only allowed if `allowOrphanBackrefs` is enabled\n const numCapsNeeded = Math.max(state.highestOrphanBackref - state.numCapturesToLeft, 0);\n for (let i = 0; i < numCapsNeeded; i++) {\n const emptyCapture = createCapturingGroup();\n node.body.at(-1).body.push(emptyCapture);\n }\n },\n },\n\n Subroutine({node}, state) {\n if (!node.isRecursive || node.ref === 0) {\n return;\n }\n // For the recursion's `ref`, use `number` rather than `name` because group names might have\n // been removed if they're duplicates within their alternation path, or they might be removed\n // later by the generator (depending on target) if they're duplicates within the overall\n // pattern. Since recursion appears within the group it refs, the reffed node's `number` has\n // already been recalculated\n node.ref = state.reffedNodesByReferencer.get(node).number;\n },\n};\n\n// ---------------\n// --- Helpers ---\n// ---------------\n\nfunction addParentProperties(root) {\n traverse(root, {\n '*'({node, parent}) {\n node.parent = parent;\n },\n });\n}\n\nfunction areFlagsEqual(a, b) {\n return a.dotAll === b.dotAll && a.ignoreCase === b.ignoreCase;\n}\n\nfunction canParticipateWithNode(capture, node) {\n // Walks to the left (prev siblings), down (sibling descendants), up (parent), then back down\n // (parent's prev sibling descendants) the tree in a loop\n let rightmostPoint = node;\n do {\n if (rightmostPoint.type === 'Regex') {\n // End of the line; capture is not in node's alternation path\n return false;\n }\n if (rightmostPoint.type === 'Alternative') {\n // Skip past alts to their parent because we don't want to look at the kids of preceding alts\n continue;\n }\n if (rightmostPoint === capture) {\n // Capture is ancestor of node\n return false;\n }\n const kidsOfParent = getKids(rightmostPoint.parent);\n for (const kid of kidsOfParent) {\n if (kid === rightmostPoint) {\n // Reached rightmost node in sibling list that we want to consider; break to parent loop\n break;\n }\n if (kid === capture || isAncestorOf(kid, capture)) {\n return true;\n }\n }\n } while ((rightmostPoint = rightmostPoint.parent));\n throw new Error('Unexpected path');\n}\n\n// Creates a deep copy of the provided node, with special handling:\n// - Make `parent` props point to their parent in the copy\n// - Update the provided `originMap` for each cloned capturing group (outer and nested)\nfunction cloneCapturingGroup(obj, originMap, up, up2) {\n const store = Array.isArray(obj) ? [] : {};\n for (const [key, value] of Object.entries(obj)) {\n if (key === 'parent') {\n // If the last cloned item was a container array (for holding kids), use the object above it\n store.parent = Array.isArray(up) ? up2 : up;\n } else if (value && typeof value === 'object') {\n store[key] = cloneCapturingGroup(value, originMap, store, up);\n } else {\n if (key === 'type' && value === 'CapturingGroup') {\n // Key is the copied node, value is the origin node\n originMap.set(store, originMap.get(obj) ?? obj);\n }\n store[key] = value;\n }\n }\n return store;\n}\n\nfunction createRecursion(ref) {\n const node = createSubroutine(ref);\n // In the future, the parser will set a `recursive` property on subroutines:\n // <github.com/slevithan/oniguruma-parser/issues/3>. When that's available, this function won't\n // be needed and the related logic in this transformer should change (simplify) to use it\n node.isRecursive = true;\n return node;\n}\n\nfunction getAllParents(node, filterFn) {\n const results = [];\n while ((node = node.parent)) {\n if (!filterFn || filterFn(node)) {\n results.push(node);\n }\n }\n return results;\n}\n\n// See also `isValidJsGroupName`\nfunction getAndStoreJsGroupName(name, map) {\n if (map.has(name)) {\n return map.get(name);\n }\n // Onig group names can't start with `$`, but JS names can\n const jsName = `$${map.size}_${name.replace(/^[^$_\\p{IDS}]|[^$\\u200C\\u200D\\p{IDC}]/ug, '_')}`;\n map.set(name, jsName);\n return jsName;\n}\n\nfunction getCombinedFlagModsFromFlagNodes(flagNodes) {\n const flagProps = ['dotAll', 'ignoreCase'];\n const combinedFlags = {enable: {}, disable: {}};\n flagNodes.forEach(({flags}) => {\n flagProps.forEach(prop => {\n if (flags.enable?.[prop]) {\n // Need to remove `disable` since disabled flags take precedence\n delete combinedFlags.disable[prop];\n combinedFlags.enable[prop] = true;\n }\n if (flags.disable?.[prop]) {\n combinedFlags.disable[prop] = true;\n }\n });\n });\n if (!Object.keys(combinedFlags.enable).length) {\n delete combinedFlags.enable;\n }\n if (!Object.keys(combinedFlags.disable).length) {\n delete combinedFlags.disable;\n }\n if (combinedFlags.enable || combinedFlags.disable) {\n return combinedFlags;\n }\n return null;\n}\n\nfunction getFlagModsFromFlags({dotAll, ignoreCase}) {\n const mods = {};\n if (dotAll || ignoreCase) {\n mods.enable = {};\n dotAll && (mods.enable.dotAll = true);\n ignoreCase && (mods.enable.ignoreCase = true);\n }\n if (!dotAll || !ignoreCase) {\n mods.disable = {};\n !dotAll && (mods.disable.dotAll = true);\n !ignoreCase && (mods.disable.ignoreCase = true);\n }\n return mods;\n}\n\nfunction getKids(node) {\n if (!node) {\n throw new Error('Node expected');\n }\n // NOTE: Not handling `CharacterClassRange`'s `min`/`max` and `Regex`'s `flags`, only because\n // they haven't been needed by current callers\n const {body} = node;\n return Array.isArray(body) ? body : (body ? [body] : null);\n}\n\nfunction getLeadingG(els) {\n const firstToConsider = els.find(el => (\n el.kind === 'search_start' ||\n isLoneGLookaround(el, {negate: false}) ||\n !isAlwaysZeroLength(el)\n ));\n if (!firstToConsider) {\n return null;\n }\n if (firstToConsider.kind === 'search_start') {\n return firstToConsider;\n }\n if (firstToConsider.type === 'LookaroundAssertion') {\n return firstToConsider.body[0].body[0];\n }\n if (firstToConsider.type === 'CapturingGroup' || firstToConsider.type === 'Group') {\n const gNodesForGroup = [];\n // Recursively find `\\G` nodes for all alternatives in the group\n for (const alt of firstToConsider.body) {\n const leadingG = getLeadingG(alt.body);\n if (!leadingG) {\n // Don't return `gNodesForGroup` collected so far since this alt didn't qualify\n return null;\n }\n Array.isArray(leadingG) ?\n gNodesForGroup.push(...leadingG) :\n gNodesForGroup.push(leadingG);\n }\n return gNodesForGroup;\n }\n return null;\n}\n\nfunction isAncestorOf(node, descendant) {\n const kids = getKids(node) ?? [];\n for (const kid of kids) {\n if (kid === descendant || isAncestorOf(kid, descendant)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n@param {Node} node\n@returns {boolean}\n*/\nfunction isAlwaysZeroLength({type}) {\n return (\n type === 'Assertion' ||\n type === 'Directive' ||\n type === 'LookaroundAssertion'\n );\n}\n\n/**\n@param {Node} node\n@returns {boolean}\n*/\nfunction isAlwaysNonZeroLength(node) {\n const types = [\n 'Character',\n 'CharacterClass',\n 'CharacterSet',\n ];\n return types.includes(node.type) || (\n node.type === 'Quantifier' &&\n node.min &&\n types.includes(node.body.type)\n );\n}\n\nfunction isLoneGLookaround(node, options) {\n const opts = {\n negate: null,\n ...options,\n };\n return (\n node.type === 'LookaroundAssertion' &&\n (opts.negate === null || node.negate === opts.negate) &&\n node.body.length === 1 &&\n hasOnlyChild(node.body[0], {\n type: 'Assertion',\n kind: 'search_start',\n })\n );\n}\n\n// See also `getAndStoreJsGroupName`\nfunction isValidJsGroupName(name) {\n // JS group names are more restrictive than Onig; see\n // <developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#identifiers>\n return /^[$_\\p{IDS}][$\\u200C\\u200D\\p{IDC}]*$/u.test(name);\n}\n\n// Returns a single node, either the given node or all nodes wrapped in a noncapturing group\nfunction parseFragment(pattern, options) {\n const ast = parse(pattern, {\n ...options,\n // Providing a custom set of Unicode property names avoids converting some JS Unicode\n // properties (ex: `\\p{Alpha}`) to Onig POSIX classes\n unicodePropertyMap: JsUnicodePropertyMap,\n });\n const alts = ast.body;\n if (alts.length > 1 || alts[0].body.length > 1) {\n return createGroup({body: alts});\n }\n return alts[0].body[0];\n}\n\nfunction setNegate(node, negate) {\n node.negate = negate;\n return node;\n}\n\nfunction setParent(node, parent) {\n node.parent = parent;\n return node;\n}\n\nfunction setParentDeep(node, parent) {\n addParentProperties(node);\n node.parent = parent;\n return node;\n}\n\nexport {\n transform,\n};\n","import {getOptions} from './options.js';\nimport {getIgnoreCaseMatchChars, UnicodePropertiesWithSpecificCase} from './unicode.js';\nimport {cp, envFlags, getNewCurrentFlags, getOrInsert, isMinTarget, r, throwIfNullish} from './utils.js';\nimport {createAlternative, createCharacter, createGroup} from 'oniguruma-parser/parser';\nimport {traverse} from 'oniguruma-parser/traverser';\n/**\n@import {ToRegExpOptions} from './index.js';\n@import {RegexPlusAst} from './transform.js';\n@import {AlternativeNode, AssertionNode, BackreferenceNode, CapturingGroupNode, CharacterClassNode, CharacterClassRangeNode, CharacterNode, CharacterSetNode, FlagsNode, GroupNode, LookaroundAssertionNode, Node, QuantifierNode, SubroutineNode} from 'oniguruma-parser/parser';\n@import {Visitor} from 'oniguruma-parser/traverser';\n*/\n\n/**\nGenerates a Regex+ compatible `pattern`, `flags`, and `options` from a Regex+ AST.\n@param {RegexPlusAst} ast\n@param {ToRegExpOptions} [options]\n@returns {{\n pattern: string;\n flags: string;\n options: Object;\n _captureTransfers: Map<number, Array<number>>;\n _hiddenCaptures: Array<number>;\n}}\n*/\nfunction generate(ast, options) {\n const opts = getOptions(options);\n const minTargetEs2024 = isMinTarget(opts.target, 'ES2024');\n const minTargetEs2025 = isMinTarget(opts.target, 'ES2025');\n const recursionLimit = opts.rules.recursionLimit;\n if (!Number.isInteger(recursionLimit) || recursionLimit < 2 || recursionLimit > 20) {\n throw new Error('Invalid recursionLimit; use 2-20');\n }\n\n // If the output can't use flag groups, we need a pre-pass to check for the use of chars with\n // case in case sensitive/insensitive states. This minimizes the need for case expansions (though\n // expansions are lossless, even given Unicode case complexities) and allows supporting case\n // insensitive backrefs in more cases\n // TODO: Consider gathering this data in the transformer's final traversal to avoid work here\n let hasCaseInsensitiveNode = null;\n let hasCaseSensitiveNode = null;\n if (!minTargetEs2025) {\n const iStack = [ast.flags.ignoreCase];\n traverse(ast, FlagModifierVisitor, {\n getCurrentModI: () => iStack.at(-1),\n popModI() {iStack.pop()},\n pushModI(isIOn) {iStack.push(isIOn)},\n setHasCasedChar() {\n if (iStack.at(-1)) {\n hasCaseInsensitiveNode = true;\n } else {\n hasCaseSensitiveNode = true;\n }\n },\n });\n }\n\n const appliedGlobalFlags = {\n dotAll: ast.flags.dotAll,\n // - Turn global flag i on if a case insensitive node was used and no case sensitive nodes were\n // used (to avoid unnecessary node expansion).\n // - Turn global flag i off if a case sensitive node was used (since case sensitivity can't be\n // forced without the use of ES2025 flag groups)\n ignoreCase: !!((ast.flags.ignoreCase || hasCaseInsensitiveNode) && !hasCaseSensitiveNode),\n };\n let /** @type {Node} */ lastNode = ast;\n const state = {\n accuracy: opts.accuracy,\n appliedGlobalFlags,\n captureMap: new Map(),\n currentFlags: {\n dotAll: ast.flags.dotAll,\n ignoreCase: ast.flags.ignoreCase,\n },\n inCharClass: false,\n lastNode,\n originMap: ast._originMap,\n recursionLimit,\n useAppliedIgnoreCase: !!(!minTargetEs2025 && hasCaseInsensitiveNode && hasCaseSensitiveNode),\n useFlagMods: minTargetEs2025,\n useFlagV: minTargetEs2024,\n verbose: opts.verbose,\n };\n function gen(/** @type {Node} */ node) {\n state.lastNode = lastNode;\n lastNode = node; // For the next iteration\n const fn = throwIfNullish(generator[node.type], `Unexpected node type \"${node.type}\"`);\n return fn(node, state, gen);\n }\n\n const result = {\n pattern: ast.body.map(gen).join('|'),\n // Could reset `lastNode` at this point via `lastNode = ast`, but it isn't needed by flags\n flags: gen(ast.flags),\n options: {...ast.options},\n };\n if (!minTargetEs2024) {\n // Switch from flag v to u; Regex+ implicitly chooses by default\n delete result.options.force.v;\n result.options.disable.v = true;\n result.options.unicodeSetsPlugin = null;\n }\n result._captureTransfers = new Map();\n result._hiddenCaptures = [];\n state.captureMap.forEach((value, key) => {\n if (value.hidden) {\n result._hiddenCaptures.push(key);\n }\n if (value.transferTo) {\n getOrInsert(result._captureTransfers, value.transferTo, []).push(key);\n }\n });\n\n return result;\n}\n\nconst /** @type {Visitor} */ FlagModifierVisitor = {\n '*': {\n enter({node}, state) {\n if (isAnyGroup(node)) {\n const currentModI = state.getCurrentModI();\n state.pushModI(\n node.flags ?\n getNewCurrentFlags({ignoreCase: currentModI}, node.flags).ignoreCase :\n currentModI\n );\n }\n },\n exit({node}, state) {\n if (isAnyGroup(node)) {\n state.popModI();\n }\n },\n },\n Backreference(_, state) {\n // Can't know for sure, so assume the backref will include chars with case (best that could be\n // done is not calling `setHasCasedChar` if the reffed group doesn't contain a char with case\n // or most kinds of char sets)\n state.setHasCasedChar();\n },\n Character({node}, state) {\n if (charHasCase(cp(node.value))) {\n state.setHasCasedChar();\n }\n },\n CharacterClassRange({node, skip}, state) {\n skip();\n if (getCasesOutsideCharClassRange(node, {firstOnly: true}).length) {\n state.setHasCasedChar();\n }\n },\n CharacterSet({node}, state) {\n if (\n node.kind === 'property' &&\n UnicodePropertiesWithSpecificCase.has(node.value)\n ) {\n state.setHasCasedChar();\n }\n },\n};\n\n// `AbsenceFunction`, `Directive`, and `NamedCallout` nodes aren't included in transformer output\nconst generator = {\n /**\n @param {AlternativeNode} node\n */\n Alternative({body}, _, gen) {\n return body.map(gen).join('');\n },\n\n /**\n @param {AssertionNode} node\n */\n Assertion({kind, negate}) {\n // Can always use `^` and `$` for string boundaries since JS flag m is never used (Onig uses\n // different line break chars)\n if (kind === 'string_end') {\n return '$';\n }\n if (kind === 'string_start') {\n return '^';\n }\n // If a word boundary came through the transformer unaltered, that means `wordIsAscii` or\n // `asciiWordBoundaries` is enabled\n if (kind === 'word_boundary') {\n return negate ? r`\\B` : r`\\b`;\n }\n // Kinds `line_end`, `line_start`, `search_start`, `string_end_newline`, and\n // `text_segment_boundary` are never included in transformer output\n throw new Error(`Unexpected assertion kind \"${kind}\"`);\n },\n\n /**\n @param {BackreferenceNode} node\n */\n Backreference({ref}, state) {\n if (typeof ref !== 'number') {\n throw new Error('Unexpected named backref in transformed AST');\n }\n if (\n !state.useFlagMods &&\n state.accuracy === 'strict' &&\n state.currentFlags.ignoreCase &&\n !state.captureMap.get(ref).ignoreCase\n ) {\n throw new Error('Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy');\n }\n return '\\\\' + ref;\n },\n\n /**\n @param {CapturingGroupNode} node\n */\n CapturingGroup(node, state, gen) {\n const {body, name, number} = node;\n const data = {ignoreCase: state.currentFlags.ignoreCase};\n // Has origin if the capture is from an expanded subroutine\n const origin = state.originMap.get(node);\n if (origin) {\n // All captures from/within expanded subroutines are marked as hidden\n data.hidden = true;\n // If a subroutine (or descendant capture) occurs after its origin group, it's marked to have\n // its captured value transferred to the origin's capture slot. `number` and `origin.number`\n // are the capture numbers *after* subroutine expansion\n if (number > origin.number) {\n data.transferTo = origin.number;\n }\n }\n state.captureMap.set(number, data);\n return `(${name ? `?<${name}>` : ''}${body.map(gen).join('|')})`;\n },\n\n /**\n @param {CharacterNode} node\n */\n Character({value}, state) {\n const char = cp(value);\n const escaped = getCharEscape(value, {\n escDigit: state.lastNode.type === 'Backreference',\n inCharClass: state.inCharClass,\n useFlagV: state.useFlagV,\n });\n if (escaped !== char) {\n return escaped;\n }\n if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase && charHasCase(char)) {\n const cases = getIgnoreCaseMatchChars(char);\n return state.inCharClass ?\n cases.join('') :\n (cases.length > 1 ? `[${cases.join('')}]` : cases[0]);\n }\n return char;\n },\n\n /**\n @param {CharacterClassNode} node\n */\n CharacterClass(node, state, gen) {\n const {kind, negate, parent} = node;\n let {body} = node;\n if (kind === 'intersection' && !state.useFlagV) {\n throw new Error('Use of character class intersection requires min target ES2024');\n }\n // Work around a WebKit parser bug by moving literal hyphens to the beginning of the class; see\n // <github.com/slevithan/oniguruma-to-es/issues/30>\n if (envFlags.bugFlagVLiteralHyphenIsRange && state.useFlagV && body.some(isLiteralHyphen)) {\n body = [createCharacter(45), ...body.filter(kid => !isLiteralHyphen(kid))];\n }\n const genClass = () => `[${negate ? '^' : ''}${\n body.map(gen).join(kind === 'intersection' ? '&&' : '')\n }]`;\n if (!state.inCharClass) {\n // HACK: Transform the AST to support top-level-nested, negated classes in non-negated\n // classes (ex: `[…[^…]]`) with pre-ES2024 `target`, via `(?:[…]|[^…])` or `(?:[^…])`,\n // possibly with multiple alts that contain negated classes. Would be better to do this in\n // the transformer, but it doesn't have true `target` since that's supposed to be a concern\n // of the generator\n if (\n // Already established `kind !== 'intersection'` if `!state.useFlagV`; don't check again\n (!state.useFlagV || envFlags.bugNestedClassIgnoresNegation) &&\n !negate\n ) {\n const negatedChildClasses = body.filter(\n kid => kid.type === 'CharacterClass' && kid.kind === 'union' && kid.negate\n );\n if (negatedChildClasses.length) {\n const group = createGroup();\n const groupFirstAlt = group.body[0];\n group.parent = parent;\n groupFirstAlt.parent = group;\n body = body.filter(kid => !negatedChildClasses.includes(kid));\n node.body = body;\n if (body.length) {\n node.parent = groupFirstAlt;\n groupFirstAlt.body.push(node);\n } else {\n // Remove the group's only alt thus far, but since the class's `body` is empty, that\n // implies there's at least one negated class we removed from it, so we'll add at least\n // one alt back to the group, next\n group.body.pop();\n }\n negatedChildClasses.forEach(cc => {\n const newAlt = createAlternative({body: [cc]});\n cc.parent = newAlt;\n newAlt.parent = group;\n group.body.push(newAlt);\n });\n return gen(group);\n }\n }\n // For the outermost char class, set state\n state.inCharClass = true;\n const result = genClass();\n state.inCharClass = false;\n return result;\n }\n // No first element for implicit class in empty intersection like `[&&]`\n const firstEl = body[0];\n if (\n // Already established that the parent is a char class via `inCharClass`; don't check again\n kind === 'union' &&\n !negate &&\n firstEl &&\n (\n ( // Allows many nested classes to work with `target` ES2018 which doesn't support nesting\n (!state.useFlagV || !state.verbose) &&\n parent.kind === 'union' &&\n !(envFlags.bugFlagVLiteralHyphenIsRange && state.useFlagV)\n ) ||\n ( !state.verbose &&\n parent.kind === 'intersection' &&\n // JS doesn't allow intersection with union or ranges\n body.length === 1 &&\n firstEl.type !== 'CharacterClassRange'\n )\n )\n ) {\n // Remove unnecessary nesting; unwrap kids into the parent char class\n return body.map(gen).join('');\n }\n if (!state.useFlagV && parent.type === 'CharacterClass') {\n throw new Error('Uses nested character class in a way that requires min target ES2024');\n }\n return genClass();\n },\n\n /**\n @param {CharacterClassRangeNode} node\n */\n CharacterClassRange(node, state) {\n const min = node.min.value;\n const max = node.max.value;\n const escOpts = {\n escDigit: false,\n inCharClass: true,\n useFlagV: state.useFlagV,\n };\n const minStr = getCharEscape(min, escOpts);\n const maxStr = getCharEscape(max, escOpts);\n const extraChars = new Set();\n if (state.useAppliedIgnoreCase && state.currentFlags.ignoreCase) {\n // TODO: Avoid duplication by considering other chars in the parent char class when expanding\n const charsOutsideRange = getCasesOutsideCharClassRange(node);\n const ranges = getCodePointRangesFromChars(charsOutsideRange);\n ranges.forEach(value => {\n extraChars.add(\n Array.isArray(value) ?\n `${getCharEscape(value[0], escOpts)}-${getCharEscape(value[1], escOpts)}` :\n getCharEscape(value, escOpts)\n );\n });\n }\n // Create the range without calling `gen` on the `min`/`max` kids\n return `${minStr}-${maxStr}${[...extraChars].join('')}`;\n },\n\n /**\n @param {CharacterSetNode} node\n */\n CharacterSet({kind, negate, value, key}, state) {\n if (kind === 'dot') {\n return state.currentFlags.dotAll ?\n ((state.appliedGlobalFlags.dotAll || state.useFlagMods) ? '.' : '[^]') :\n // Onig's only line break char is line feed, unlike JS\n r`[^\\n]`;\n }\n if (kind === 'digit') {\n return negate ? r`\\D` : r`\\d`;\n }\n if (kind === 'property') {\n if (\n state.useAppliedIgnoreCase &&\n state.currentFlags.ignoreCase &&\n UnicodePropertiesWithSpecificCase.has(value)\n ) {\n // Support for this would require heavy Unicode data. Could change e.g. `\\p{Lu}` to\n // `\\p{LC}` if not using strict `accuracy` (since it's close but not 100%), but this\n // wouldn't work for e.g. `\\p{Lt}`, and in any case, it's probably user error if using\n // these case-specific props case-insensitively\n throw new Error(`Unicode property \"${value}\" can't be case-insensitive when other chars have specific case`);\n }\n return `${negate ? r`\\P` : r`\\p`}{${key ? `${key}=` : ''}${value}}`;\n }\n if (kind === 'word') {\n return negate ? r`\\W` : r`\\w`;\n }\n // Kinds `any`, `hex`, `newline`, `posix`, `space`, and `text_segment` are never included in\n // transformer output\n throw new Error(`Unexpected character set kind \"${kind}\"`);\n },\n\n /**\n @param {FlagsNode} node\n */\n Flags(node, state) {\n return (\n // The transformer should never turn on the properties for flags d, g, m since Onig doesn't\n // have equivs. Flag m is never used since Onig uses different line break chars than JS\n // (node.hasIndices ? 'd' : '') +\n // (node.global ? 'g' : '') +\n // (node.multiline ? 'm' : '') +\n (state.appliedGlobalFlags.ignoreCase ? 'i' : '') +\n (node.dotAll ? 's' : '') +\n (node.sticky ? 'y' : '')\n // Regex+ doesn't allow explicitly adding flags it handles implicitly, so there are no\n // `unicode` (flag u) or `unicodeSets` (flag v) props; those flags are added separately\n );\n },\n\n /**\n @param {GroupNode} node\n */\n Group({atomic, body, flags, parent}, state, gen) {\n const currentFlags = state.currentFlags;\n if (flags) {\n state.currentFlags = getNewCurrentFlags(currentFlags, flags);\n }\n const contents = body.map(gen).join('|');\n const result = (\n !state.verbose &&\n body.length === 1 && // Single alt\n parent.type !== 'Quantifier' &&\n !atomic &&\n (!state.useFlagMods || !flags)\n ) ? contents : `(?${getGroupPrefix(atomic, flags, state.useFlagMods)}${contents})`;\n state.currentFlags = currentFlags;\n return result;\n },\n\n /**\n @param {LookaroundAssertionNode} node\n */\n LookaroundAssertion({body, kind, negate}, _, gen) {\n const prefix = `${kind === 'lookahead' ? '' : '<'}${negate ? '!' : '='}`;\n return `(?${prefix}${body.map(gen).join('|')})`;\n },\n\n /**\n @param {QuantifierNode} node\n */\n Quantifier(node, _, gen) {\n return gen(node.body) + getQuantifierStr(node);\n },\n\n /**\n @param {SubroutineNode & {isRecursive: true}} node\n */\n Subroutine({isRecursive, ref}, state) {\n if (!isRecursive) {\n throw new Error('Unexpected non-recursive subroutine in transformed AST');\n }\n const limit = state.recursionLimit;\n // Using the syntax supported by `regex-recursion`\n return ref === 0 ? `(?R=${limit})` : r`\\g<${ref}&R=${limit}>`;\n },\n};\n\n// ---------------\n// --- Helpers ---\n// ---------------\n\nconst BaseEscapeChars = new Set([\n '$', '(', ')', '*', '+', '.', '?', '[', '\\\\', ']', '^', '{', '|', '}',\n]);\n\nconst CharClassEscapeChars = new Set([\n '-', '\\\\', ']', '^',\n // Literal `[` doesn't require escaping with flag u, but this can help work around regex source\n // linters and regex syntax processors that expect unescaped `[` to create a nested class\n '[',\n]);\n\nconst CharClassEscapeCharsFlagV = new Set([\n '(', ')', '-', '/', '[', '\\\\', ']', '^', '{', '|', '}',\n // Double punctuators; also includes already-listed `-` and `^`\n '!', '#', '$', '%', '&', '*', '+', ',', '.', ':', ';', '<', '=', '>', '?', '@', '`', '~',\n]);\n\nconst CharCodeEscapeMap = new Map([\n [ 9, r`\\t`], // horizontal tab\n [10, r`\\n`], // line feed\n [11, r`\\v`], // vertical tab\n [12, r`\\f`], // form feed\n [13, r`\\r`], // carriage return\n [0x2028, r`\\u2028`], // line separator\n [0x2029, r`\\u2029`], // paragraph separator\n [0xFEFF, r`\\uFEFF`], // ZWNBSP/BOM\n]);\n\nconst casedRe = /^\\p{Cased}$/u;\nfunction charHasCase(char) {\n return casedRe.test(char);\n}\n\n/**\nGiven a `CharacterClassRange` node, returns an array of chars that are a case variant of a char in\nthe range, and aren't already in the range.\n*/\nfunction getCasesOutsideCharClassRange(node, options) {\n const firstOnly = !!options?.firstOnly;\n const min = node.min.value;\n const max = node.max.value;\n const found = [];\n // Avoid unneeded work. Assumptions (per Unicode 16):\n // - No case variants cross the Basic Multilingual Plane boundary\n // - No cased chars appear beyond the Supplementary Multilingual Plane\n if ((min < 65 && (max === 0xFFFF || max >= 0x1FFFF)) || (min === 0x10000 && max >= 0x1FFFF)) {\n return found;\n }\n for (let i = min; i <= max; i++) {\n const char = cp(i);\n if (!charHasCase(char)) {\n continue;\n }\n const charsOutsideRange = getIgnoreCaseMatchChars(char).filter(caseOfChar => {\n const num = caseOfChar.codePointAt(0);\n return num < min || num > max;\n });\n if (charsOutsideRange.length) {\n found.push(...charsOutsideRange);\n if (firstOnly) {\n break;\n }\n }\n }\n return found;\n}\n\n// This shouldn't modifiy any char that has case\nfunction getCharEscape(codePoint, {escDigit, inCharClass, useFlagV}) {\n if (CharCodeEscapeMap.has(codePoint)) {\n return CharCodeEscapeMap.get(codePoint);\n }\n if (\n // Control chars, etc.; condition modeled on the Chrome developer console's display for strings\n codePoint < 32 || (codePoint > 126 && codePoint < 160) ||\n // Unicode planes 4-16; unassigned, special purpose, and private use area\n codePoint > 0x3FFFF ||\n // Avoid corrupting a preceding backref by immediately following it with a literal digit\n (escDigit && isDigitCharCode(codePoint))\n ) {\n // Don't convert codePoint `0` to `\\0` since that's corruptible by following literal digits\n // Note: Not using raw strings to work around Bun ≤ 1.1.34 issue <github.com/oven-sh/bun/issues/7540>\n return codePoint > 0xFF ?\n `\\\\u{${codePoint.toString(16).toUpperCase()}}` :\n `\\\\x${codePoint.toString(16).toUpperCase().padStart(2, '0')}`;\n }\n const escapeChars = inCharClass ?\n (useFlagV ? CharClassEscapeCharsFlagV : CharClassEscapeChars) :\n BaseEscapeChars;\n const char = cp(codePoint);\n return (escapeChars.has(char) ? '\\\\' : '') + char;\n}\n\nfunction getCodePointRangesFromChars(chars) {\n const codePoints = chars.map(char => char.codePointAt(0)).sort((a, b) => a - b);\n const values = [];\n let start = null;\n for (let i = 0; i < codePoints.length; i++) {\n if (codePoints[i + 1] === codePoints[i] + 1) {\n start ??= codePoints[i];\n } else if (start === null) {\n values.push(codePoints[i]);\n } else {\n values.push([start, codePoints[i]]);\n start = null;\n }\n }\n return values;\n}\n\nfunction getGroupPrefix(atomic, flagMods, useFlagMods) {\n if (atomic) {\n return '>';\n }\n let mods = '';\n if (flagMods && useFlagMods) {\n const {enable, disable} = flagMods;\n mods =\n (enable?.ignoreCase ? 'i' : '') +\n (enable?.dotAll ? 's' : '') +\n (disable ? '-' : '') +\n (disable?.ignoreCase ? 'i' : '') +\n (disable?.dotAll ? 's' : '');\n }\n return `${mods}:`;\n}\n\n/**\n@param {QuantifierNode} node\n@returns {string}\n*/\nfunction getQuantifierStr({kind, max, min}) {\n let base;\n if (!min && max === 1) {\n base = '?';\n } else if (!min && max === Infinity) {\n base = '*';\n } else if (min === 1 && max === Infinity) {\n base = '+';\n } else if (min === max) {\n base = `{${min}}`;\n } else {\n base = `{${min},${max === Infinity ? '' : max}}`;\n }\n return base + {\n greedy: '',\n lazy: '?',\n possessive: '+',\n }[kind];\n}\n\n/**\n@param {Node} node\n@returns {boolean}\n*/\nfunction isAnyGroup({type}) {\n return type === 'CapturingGroup' ||\n type === 'Group' ||\n type === 'LookaroundAssertion';\n}\n\nfunction isDigitCharCode(value) {\n return value > 47 && value < 58;\n}\n\n/**\n@param {Node} node\n@returns {boolean}\n*/\nfunction isLiteralHyphen({type, value}) {\n return type === 'Character' && value === 45;\n}\n\nexport {\n generate,\n};\n","import {getOrInsert} from './utils.js';\n\n/**\n@typedef {{\n hiddenCaptures?: Array<number>;\n lazyCompile?: boolean;\n strategy?: string | null;\n transfers?: Array<[number, Array<number>]>;\n}} EmulatedRegExpOptions\n*/\n\n/**\nWorks the same as JavaScript's native `RegExp` constructor in all contexts, but can be given\nresults from `toRegExpDetails` to produce the same result as `toRegExp`.\n*/\nclass EmulatedRegExp extends RegExp {\n /**\n @type {Map<number, {\n hidden?: true;\n transferTo?: number;\n }>}\n */\n #captureMap = new Map();\n\n /**\n @type {RegExp | EmulatedRegExp | null}\n */\n #compiled = null;\n\n /**\n @type {string}\n */\n #pattern;\n\n /**\n @type {Map<number, string>?}\n */\n #nameMap = null;\n\n /**\n @type {string?}\n */\n #strategy = null;\n\n /**\n Can be used to serialize the instance.\n @type {EmulatedRegExpOptions}\n */\n rawOptions = {};\n\n // Override the getter with one that works with lazy-compiled regexes\n get source() {\n return this.#pattern || '(?:)';\n }\n\n /**\n @overload\n @param {string} pattern\n @param {string} [flags]\n @param {EmulatedRegExpOptions} [options]\n */\n /**\n @overload\n @param {EmulatedRegExp} pattern\n @param {string} [flags]\n */\n constructor(pattern, flags, options) {\n const lazyCompile = !!options?.lazyCompile;\n if (pattern instanceof RegExp) {\n // Argument `options` isn't provided when regexes are copied, including as part of the\n // internal handling of string methods `matchAll` and `split`\n if (options) {\n throw new Error('Cannot provide options when copying a regexp');\n }\n const re = pattern; // Alias for readability\n super(re, flags);\n this.#pattern = re.source;\n if (re instanceof EmulatedRegExp) {\n this.#captureMap = re.#captureMap;\n this.#nameMap = re.#nameMap;\n this.#strategy = re.#strategy;\n this.rawOptions = re.rawOptions;\n }\n } else {\n const opts = {\n hiddenCaptures: [],\n strategy: null,\n transfers: [],\n ...options,\n };\n super(lazyCompile ? '' : pattern, flags);\n this.#pattern = pattern;\n this.#captureMap = createCaptureMap(opts.hiddenCaptures, opts.transfers);\n this.#strategy = opts.strategy;\n // Don't add default values from `opts` since this gets serialized\n this.rawOptions = options ?? {};\n }\n if (!lazyCompile) {\n this.#compiled = this;\n }\n }\n\n /**\n Called internally by all String/RegExp methods that use regexes.\n @override\n @param {string} str\n @returns {RegExpExecArray?}\n */\n exec(str) {\n // Lazy compilation\n if (!this.#compiled) {\n const {lazyCompile, ...rest} = this.rawOptions;\n this.#compiled = new EmulatedRegExp(this.#pattern, this.flags, rest);\n }\n\n const useLastIndex = this.global || this.sticky;\n const pos = this.lastIndex;\n\n if (this.#strategy === 'clip_search' && useLastIndex && pos) {\n // Reset since this tests on a sliced string that we want to match at the start of\n this.lastIndex = 0;\n // Slicing the string can lead to mismatches when three edge cases are stacked on each other:\n // 1. An uncommon use of `\\G` that relies on `clip_search`, combined with...\n // 2. Lookbehind that searches behind the search start (not match start) position...\n // 3. During a search when the regex's `lastIndex` isn't `0`.\n // The `clip_search` strategy is therefore only allowed when lookbehind isn't present, if\n // using strict `accuracy`\n const match = this.#execCore(str.slice(pos));\n if (match) {\n adjustMatchDetailsForOffset(match, pos, str, this.hasIndices);\n this.lastIndex += pos;\n }\n return match;\n }\n\n return this.#execCore(str);\n }\n\n /**\n Adds support for hidden and transfer captures.\n @param {string} str\n @returns\n */\n #execCore(str) {\n // Support lazy compilation\n this.#compiled.lastIndex = this.lastIndex;\n const match = super.exec.call(this.#compiled, str);\n this.lastIndex = this.#compiled.lastIndex;\n\n if (!match || !this.#captureMap.size) {\n return match;\n }\n\n const matchCopy = [...match];\n // Empty all but the first value of the array while preserving its other properties\n match.length = 1;\n let indicesCopy;\n if (this.hasIndices) {\n indicesCopy = [...match.indices];\n match.indices.length = 1;\n }\n const mappedNums = [0];\n for (let i = 1; i < matchCopy.length; i++) {\n const {hidden, transferTo} = this.#captureMap.get(i) ?? {};\n if (hidden) {\n mappedNums.push(null);\n } else {\n mappedNums.push(match.length);\n match.push(matchCopy[i]);\n if (this.hasIndices) {\n match.indices.push(indicesCopy[i]);\n }\n }\n\n // Only transfer if the capture participated in the match\n if (transferTo && matchCopy[i] !== undefined) {\n const to = mappedNums[transferTo];\n if (!to) {\n throw new Error(`Invalid capture transfer to \"${to}\"`);\n }\n match[to] = matchCopy[i];\n if (this.hasIndices) {\n match.indices[to] = indicesCopy[i];\n }\n if (match.groups) {\n if (!this.#nameMap) {\n // Generate and cache the first time it's needed\n this.#nameMap = createNameMap(this.source);\n }\n const name = this.#nameMap.get(transferTo);\n if (name) {\n match.groups[name] = matchCopy[i];\n if (this.hasIndices) {\n match.indices.groups[name] = indicesCopy[i];\n }\n }\n }\n }\n }\n\n return match;\n }\n}\n\nfunction adjustMatchDetailsForOffset(match, offset, input, hasIndices) {\n match.index += offset;\n match.input = input;\n if (hasIndices) {\n const indices = match.indices;\n for (let i = 0; i < indices.length; i++) {\n const arr = indices[i];\n if (arr) {\n // Replace the array rather than updating values since the keys of `match.indices` and\n // `match.indices.groups` share their value arrays by reference. Need to be precise in case\n // they were previously altered separately\n indices[i] = [arr[0] + offset, arr[1] + offset];\n }\n }\n const groupIndices = indices.groups;\n if (groupIndices) {\n Object.keys(groupIndices).forEach(key => {\n const arr = groupIndices[key];\n if (arr) {\n groupIndices[key] = [arr[0] + offset, arr[1] + offset];\n }\n });\n }\n }\n}\n\n/**\nBuild the capturing group map, with hidden/transfer groups marked to indicate their submatches\nshould get special handling in match results.\n@param {Array<number>} hiddenCaptures\n@param {Array<[number, Array<number>]>} transfers\n@returns {Map<number, {\n hidden?: true;\n transferTo?: number;\n}>}\n*/\nfunction createCaptureMap(hiddenCaptures, transfers) {\n const captureMap = new Map();\n for (const num of hiddenCaptures) {\n captureMap.set(num, {\n hidden: true,\n });\n }\n for (const [to, from] of transfers) {\n for (const num of from) {\n getOrInsert(captureMap, num, {}).transferTo = to;\n }\n }\n return captureMap;\n}\n\n/**\n@param {string} pattern\n@returns {Map<number, string>}\n*/\nfunction createNameMap(pattern) {\n const re = /(?<capture>\\((?:\\?<(?![=!])(?<name>[^>]+)>|(?!\\?)))|\\\\?./gsu;\n const map = new Map();\n let numCharClassesOpen = 0;\n let numCaptures = 0;\n let match;\n while ((match = re.exec(pattern))) {\n const {0: m, groups: {capture, name}} = match;\n // Relies on no unescaped literal `[` in char classes (valid in JS if not using flag v), but\n // this library's generator never produces unescaped literal `[` even with `target` ES2018 (see\n // `CharClassEscapeChars`)\n if (m === '[') {\n numCharClassesOpen++;\n } else if (!numCharClassesOpen) {\n if (capture) {\n numCaptures++;\n if (name) {\n map.set(numCaptures, name);\n }\n }\n } else if (m === ']') {\n numCharClassesOpen--;\n }\n }\n return map;\n}\n\nexport {\n EmulatedRegExp,\n};\n","import {transform} from './transform.js';\nimport {generate} from './generate.js';\nimport {Accuracy, getOptions, Target} from './options.js';\nimport {EmulatedRegExp} from './subclass.js';\nimport {JsUnicodePropertyMap} from './unicode.js';\nimport {parse} from 'oniguruma-parser/parser';\nimport {atomic, possessive} from 'regex/internals';\nimport {recursion} from 'regex-recursion';\n/**\n@import {EmulatedRegExpOptions} from './subclass.js';\n*/\n\n// The validation and transformation for Oniguruma's unique syntax and behavior differences\n// compared to native JS RegExp is layered into all steps of the compilation process:\n// 1. Parser: Uses `oniguruma-parser` to build an Oniguruma AST, which accounts for many\n// differences between Oniguruma and JS.\n// 2. Transformer: Converts the Oniguruma AST to a Regex+ AST that preserves all Oniguruma\n// behavior. This is true even in cases of non-native-JS features that are supported by both\n// Regex+ and Oniguruma but with subtly different behavior in each (subroutines, flag x).\n// 3. Generator: Converts the Regex+ AST to a Regex+ pattern, flags, and options.\n// 4. Postprocessing: Regex+ internals and plugins are used to transpile several remaining features\n// (atomic groups, possessive quantifiers, recursion). Regex+ uses a strict superset of JS\n// RegExp syntax, so using it allows this library to benefit from not reinventing the wheel for\n// complex features that Regex+ already knows how to transpile to JS.\n\n/**\n@typedef {{\n accuracy?: keyof Accuracy;\n avoidSubclass?: boolean;\n flags?: string;\n global?: boolean;\n hasIndices?: boolean;\n lazyCompileLength?: number;\n rules?: {\n allowOrphanBackrefs?: boolean;\n asciiWordBoundaries?: boolean;\n captureGroup?: boolean;\n recursionLimit?: number;\n singleline?: boolean;\n };\n target?: keyof Target;\n verbose?: boolean;\n}} ToRegExpOptions\n*/\n\n/**\nAccepts an Oniguruma pattern and returns an equivalent JavaScript `RegExp`.\n@param {string} pattern Oniguruma regex pattern.\n@param {ToRegExpOptions} [options]\n@returns {RegExp | EmulatedRegExp}\n*/\nfunction toRegExp(pattern, options) {\n const d = toRegExpDetails(pattern, options);\n if (d.options) {\n return new EmulatedRegExp(d.pattern, d.flags, d.options);\n }\n return new RegExp(d.pattern, d.flags);\n}\n\n/**\nAccepts an Oniguruma pattern and returns the details for an equivalent JavaScript `RegExp`.\n@param {string} pattern Oniguruma regex pattern.\n@param {ToRegExpOptions} [options]\n@returns {{\n pattern: string;\n flags: string;\n options?: EmulatedRegExpOptions;\n}}\n*/\nfunction toRegExpDetails(pattern, options) {\n const opts = getOptions(options);\n const onigurumaAst = parse(pattern, {\n flags: opts.flags,\n normalizeUnknownPropertyNames: true,\n rules: {\n captureGroup: opts.rules.captureGroup,\n singleline: opts.rules.singleline,\n },\n skipBackrefValidation: opts.rules.allowOrphanBackrefs,\n unicodePropertyMap: JsUnicodePropertyMap,\n });\n const regexPlusAst = transform(onigurumaAst, {\n accuracy: opts.accuracy,\n asciiWordBoundaries: opts.rules.asciiWordBoundaries,\n avoidSubclass: opts.avoidSubclass,\n bestEffortTarget: opts.target,\n });\n const generated = generate(regexPlusAst, opts);\n const recursionResult = recursion(generated.pattern, {\n captureTransfers: generated._captureTransfers,\n hiddenCaptures: generated._hiddenCaptures,\n mode: 'external',\n });\n const possessiveResult = possessive(recursionResult.pattern);\n const atomicResult = atomic(possessiveResult.pattern, {\n captureTransfers: recursionResult.captureTransfers,\n hiddenCaptures: recursionResult.hiddenCaptures,\n });\n const details = {\n pattern: atomicResult.pattern,\n flags: `${opts.hasIndices ? 'd' : ''}${opts.global ? 'g' : ''}${generated.flags}${generated.options.disable.v ? 'u' : 'v'}`,\n };\n if (opts.avoidSubclass) {\n if (opts.lazyCompileLength !== Infinity) {\n throw new Error('Lazy compilation requires subclass');\n }\n } else {\n // Sort isn't required; only for readability when serialized\n const hiddenCaptures = atomicResult.hiddenCaptures.sort((a, b) => a - b);\n // Change the map to the `EmulatedRegExp` format, serializable as JSON\n const transfers = Array.from(atomicResult.captureTransfers);\n const strategy = regexPlusAst._strategy;\n const lazyCompile = details.pattern.length >= opts.lazyCompileLength;\n if (hiddenCaptures.length || transfers.length || strategy || lazyCompile) {\n details.options = {\n ...(hiddenCaptures.length && {hiddenCaptures}),\n ...(transfers.length && {transfers}),\n ...(strategy && {strategy}),\n ...(lazyCompile && {lazyCompile}),\n };\n }\n }\n return details;\n}\n\n// function toOnigurumaAst(pattern, options) {\n// return parse(pattern, {\n// flags: options?.flags ?? '',\n// normalizeUnknownPropertyNames: true,\n// rules: options?.rules ?? {},\n// unicodePropertyMap: JsUnicodePropertyMap,\n// });\n// }\n\n// function toRegexPlusAst(pattern, options) {\n// return transform(toOnigurumaAst(pattern, options));\n// }\n\nexport {\n EmulatedRegExp,\n toRegExp,\n toRegExpDetails,\n // toOnigurumaAst,\n // toRegexPlusAst,\n};\n","import { t as JavaScriptScanner } from \"./scanner-BFcBmQR1.mjs\";\nimport { toRegExp } from \"oniguruma-to-es\";\n\n//#region src/engine-compile.ts\n/**\n* The default regex constructor for the JavaScript RegExp engine.\n*/\nfunction defaultJavaScriptRegexConstructor(pattern, options) {\n\treturn toRegExp(pattern, {\n\t\tglobal: true,\n\t\thasIndices: true,\n\t\tlazyCompileLength: 3e3,\n\t\trules: {\n\t\t\tallowOrphanBackrefs: true,\n\t\t\tasciiWordBoundaries: true,\n\t\t\tcaptureGroup: true,\n\t\t\trecursionLimit: 5,\n\t\t\tsingleline: true\n\t\t},\n\t\t...options\n\t});\n}\n/**\n* Use the modern JavaScript RegExp engine to implement the OnigScanner.\n*\n* As Oniguruma supports some features that can't be emulated using native JavaScript regexes, some\n* patterns are not supported. Errors will be thrown when parsing TextMate grammars with\n* unsupported patterns, and when the grammar includes patterns that use invalid Oniguruma syntax.\n* Set `forgiving` to `true` to ignore these errors and skip any unsupported or invalid patterns.\n*/\nfunction createJavaScriptRegexEngine(options = {}) {\n\tconst _options = Object.assign({\n\t\ttarget: \"auto\",\n\t\tcache: /* @__PURE__ */ new Map()\n\t}, options);\n\t_options.regexConstructor ||= (pattern) => defaultJavaScriptRegexConstructor(pattern, { target: _options.target });\n\treturn {\n\t\tcreateScanner(patterns) {\n\t\t\treturn new JavaScriptScanner(patterns, _options);\n\t\t},\n\t\tcreateString(s) {\n\t\t\treturn { content: s };\n\t\t}\n\t};\n}\n\n//#endregion\nexport { createJavaScriptRegexEngine, defaultJavaScriptRegexConstructor };","import { n as __reExport, t as __exportAll } from \"./chunk-CtajNgzt.mjs\";\nimport { i as bundledLanguagesInfo, n as bundledLanguagesAlias, r as bundledLanguagesBase, t as bundledLanguages } from \"./langs-bundle-full-DfKZStlK.mjs\";\nimport { bundledThemes, bundledThemesInfo } from \"./themes.mjs\";\nimport { codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighter, getLastGrammarState, getSingletonHighlighter, t as bundle_full_exports } from \"./bundle-full.mjs\";\nimport { createOnigurumaEngine, loadWasm } from \"@shikijs/engine-oniguruma\";\nimport { createJavaScriptRegexEngine, defaultJavaScriptRegexConstructor } from \"@shikijs/engine-javascript\";\n\nexport * from \"@shikijs/core\"\n\n//#region src/index.ts\nvar src_exports = /* @__PURE__ */ __exportAll({\n\tbundledLanguages: () => bundledLanguages,\n\tbundledLanguagesAlias: () => bundledLanguagesAlias,\n\tbundledLanguagesBase: () => bundledLanguagesBase,\n\tbundledLanguagesInfo: () => bundledLanguagesInfo,\n\tbundledThemes: () => bundledThemes,\n\tbundledThemesInfo: () => bundledThemesInfo,\n\tcodeToHast: () => codeToHast,\n\tcodeToHtml: () => codeToHtml,\n\tcodeToTokens: () => codeToTokens,\n\tcodeToTokensBase: () => codeToTokensBase,\n\tcodeToTokensWithThemes: () => codeToTokensWithThemes,\n\tcreateHighlighter: () => createHighlighter,\n\tcreateJavaScriptRegexEngine: () => createJavaScriptRegexEngine,\n\tcreateOnigurumaEngine: () => createOnigurumaEngine,\n\tdefaultJavaScriptRegexConstructor: () => defaultJavaScriptRegexConstructor,\n\tgetLastGrammarState: () => getLastGrammarState,\n\tgetSingletonHighlighter: () => getSingletonHighlighter,\n\tloadWasm: () => loadWasm\n});\n__reExport(src_exports, bundle_full_exports);\n\n//#endregion\nexport { bundledLanguages, bundledLanguagesAlias, bundledLanguagesBase, bundledLanguagesInfo, bundledThemes, bundledThemesInfo, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighter, createJavaScriptRegexEngine, createOnigurumaEngine, defaultJavaScriptRegexConstructor, getLastGrammarState, getSingletonHighlighter, loadWasm };"]}