solve-engine 1.1.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/README.md +12 -17
  2. package/dist/{BytecodeBuilder-Bp9xeTmX.d.cts → BytecodeBuilder-DGGeByAP.d.cts} +18 -0
  3. package/dist/{BytecodeBuilder-Bp9xeTmX.d.ts → BytecodeBuilder-DGGeByAP.d.ts} +18 -0
  4. package/dist/{Configuration-C9W8tJv_.d.cts → Configuration-B6W0-T67.d.cts} +17 -4
  5. package/dist/{Configuration-C9W8tJv_.d.ts → Configuration-B6W0-T67.d.ts} +17 -4
  6. package/dist/{EngineError-B61GS1jp.d.cts → EngineError-Ce1lPkjZ.d.cts} +8 -0
  7. package/dist/{EngineError-B61GS1jp.d.ts → EngineError-Ce1lPkjZ.d.ts} +8 -0
  8. package/dist/{Lexer-BOs7euZe.d.cts → Lexer-B4C1qHXu.d.cts} +1 -1
  9. package/dist/{Lexer-CSI_lwbW.d.ts → Lexer-DKMlj7Sy.d.ts} +1 -1
  10. package/dist/{PackageCompatibility-B-7rK1TD.d.cts → PackageCompatibility-Bn5jnBtA.d.cts} +2 -2
  11. package/dist/{PackageCompatibility-Dh59eF-X.d.ts → PackageCompatibility-CIvq2MP5.d.ts} +2 -2
  12. package/dist/{PackageRegistry-_8rDlvxI.d.ts → PackageRegistry-DzeiWcv4.d.ts} +143 -175
  13. package/dist/{PackageRegistry-BHWJP83F.d.cts → PackageRegistry-dpdurBVO.d.cts} +143 -175
  14. package/dist/{Parselet-BBT8riYh.d.ts → Parselet-B-zoPrTa.d.ts} +9 -6
  15. package/dist/{Parselet-BHcgK9S7.d.cts → Parselet-C4Wu055_.d.cts} +9 -6
  16. package/dist/{ScopeManager-CxA24W5n.d.ts → ScopeManager-C2LDOrDx.d.ts} +14 -16
  17. package/dist/{ScopeManager-8vf02dwj.d.cts → ScopeManager-D7uMXbhS.d.cts} +14 -16
  18. package/dist/{Token-B1hdkedD.d.cts → Token-CbP_OutD.d.cts} +9 -0
  19. package/dist/{Token-B1hdkedD.d.ts → Token-CbP_OutD.d.ts} +9 -0
  20. package/dist/{TokenNormalizer-C6VzZgHa.d.ts → TokenNormalizer-DCWdZjGz.d.ts} +1 -1
  21. package/dist/{TokenNormalizer-DRc1Js1V.d.cts → TokenNormalizer-DnlL7_8c.d.cts} +1 -1
  22. package/dist/{VMCheckpoints-MK--EBH2.d.ts → VMCheckpoints-CGyFhivM.d.ts} +3 -3
  23. package/dist/{VMCheckpoints-ELYqITdF.d.cts → VMCheckpoints-I9jg3jWR.d.cts} +3 -3
  24. package/dist/{Value-BUi1RA3S.d.cts → Value-CCi_Eecs.d.cts} +72 -5
  25. package/dist/{Value-BUi1RA3S.d.ts → Value-CCi_Eecs.d.ts} +72 -5
  26. package/dist/{WorkerError-gzmaopj2.d.cts → WorkerError-B4p6PNfx.d.cts} +1 -1
  27. package/dist/{WorkerError-_-RkoQ5P.d.ts → WorkerError-Dhj9BQ_A.d.ts} +1 -1
  28. package/dist/chunk-2JMFUQZH.js +2 -0
  29. package/dist/chunk-2JMFUQZH.js.map +1 -0
  30. package/dist/chunk-2RWAXT6O.js +0 -1
  31. package/dist/chunk-4BZIYU7S.cjs +3 -0
  32. package/dist/chunk-4BZIYU7S.cjs.map +1 -0
  33. package/dist/chunk-4J7XZSZJ.cjs +5 -0
  34. package/dist/chunk-4J7XZSZJ.cjs.map +1 -0
  35. package/dist/chunk-4QVBSG6B.cjs +2 -0
  36. package/dist/chunk-4QVBSG6B.cjs.map +1 -0
  37. package/dist/chunk-5IJD5L3O.cjs +2 -0
  38. package/dist/chunk-5IJD5L3O.cjs.map +1 -0
  39. package/dist/chunk-62LMTO4F.js +2 -0
  40. package/dist/chunk-62LMTO4F.js.map +1 -0
  41. package/dist/chunk-6CY44ZPG.js +2 -0
  42. package/dist/chunk-6CY44ZPG.js.map +1 -0
  43. package/dist/chunk-6G3PMEPA.js +2 -0
  44. package/dist/chunk-6G3PMEPA.js.map +1 -0
  45. package/dist/chunk-6INX773F.cjs +2 -0
  46. package/dist/chunk-6INX773F.cjs.map +1 -0
  47. package/dist/chunk-6KFVG6UY.cjs +2 -0
  48. package/dist/chunk-6KFVG6UY.cjs.map +1 -0
  49. package/dist/chunk-76F3LCIL.js +4 -0
  50. package/dist/chunk-76F3LCIL.js.map +1 -0
  51. package/dist/chunk-7GK3XEZF.js +2 -0
  52. package/dist/chunk-7GK3XEZF.js.map +1 -0
  53. package/dist/chunk-APN442VD.cjs +2 -0
  54. package/dist/chunk-APN442VD.cjs.map +1 -0
  55. package/dist/chunk-AXMQG5TS.cjs +2 -0
  56. package/dist/chunk-AXMQG5TS.cjs.map +1 -0
  57. package/dist/chunk-CIQOK7Q4.cjs +2 -0
  58. package/dist/chunk-CIQOK7Q4.cjs.map +1 -0
  59. package/dist/chunk-E6Z4NQAS.js +2 -0
  60. package/dist/chunk-E6Z4NQAS.js.map +1 -0
  61. package/dist/chunk-EFJCC6FJ.cjs +2 -0
  62. package/dist/chunk-EFJCC6FJ.cjs.map +1 -0
  63. package/dist/chunk-ESUN2THE.cjs +2 -0
  64. package/dist/chunk-ESUN2THE.cjs.map +1 -0
  65. package/dist/chunk-EVAOPEO4.js +2 -0
  66. package/dist/chunk-EVAOPEO4.js.map +1 -0
  67. package/dist/chunk-EYRBENHC.js +3 -0
  68. package/dist/chunk-EYRBENHC.js.map +1 -0
  69. package/dist/chunk-FDE5HWDI.cjs +2 -0
  70. package/dist/chunk-FDE5HWDI.cjs.map +1 -0
  71. package/dist/chunk-FWW3M36J.cjs +2 -0
  72. package/dist/chunk-FWW3M36J.cjs.map +1 -0
  73. package/dist/chunk-GOIQYUWV.js +2 -0
  74. package/dist/chunk-GOIQYUWV.js.map +1 -0
  75. package/dist/chunk-HFKDWQUL.js +2 -0
  76. package/dist/chunk-HFKDWQUL.js.map +1 -0
  77. package/dist/chunk-HLBYHXQD.cjs +3 -0
  78. package/dist/chunk-HLBYHXQD.cjs.map +1 -0
  79. package/dist/chunk-IANAMBJQ.cjs +2 -0
  80. package/dist/chunk-IANAMBJQ.cjs.map +1 -0
  81. package/dist/chunk-IJMNVBIS.js +2 -0
  82. package/dist/chunk-IJMNVBIS.js.map +1 -0
  83. package/dist/chunk-J4LZD4ZY.js +3 -0
  84. package/dist/chunk-J4LZD4ZY.js.map +1 -0
  85. package/dist/chunk-JAK3RAFA.cjs +2 -0
  86. package/dist/chunk-JAK3RAFA.cjs.map +1 -0
  87. package/dist/chunk-JFAJN3C2.cjs +2 -0
  88. package/dist/chunk-JFAJN3C2.cjs.map +1 -0
  89. package/dist/chunk-JPFCXLJV.js +2 -0
  90. package/dist/chunk-JPFCXLJV.js.map +1 -0
  91. package/dist/chunk-JSPKKNPQ.js +3 -0
  92. package/dist/chunk-JSPKKNPQ.js.map +1 -0
  93. package/dist/chunk-L3FPQSGN.js +2 -0
  94. package/dist/chunk-L3FPQSGN.js.map +1 -0
  95. package/dist/chunk-LR4E4A4W.cjs +2 -0
  96. package/dist/chunk-LR4E4A4W.cjs.map +1 -0
  97. package/dist/chunk-MIQBJGGR.js +2 -0
  98. package/dist/chunk-MIQBJGGR.js.map +1 -0
  99. package/dist/chunk-MPB7KUN5.js +3 -0
  100. package/dist/chunk-MPB7KUN5.js.map +1 -0
  101. package/dist/chunk-MSYX32PF.cjs +2 -0
  102. package/dist/chunk-MSYX32PF.cjs.map +1 -0
  103. package/dist/chunk-MVZUTETT.js +2 -0
  104. package/dist/chunk-MVZUTETT.js.map +1 -0
  105. package/dist/chunk-N7N7MPMK.cjs +2 -0
  106. package/dist/chunk-N7N7MPMK.cjs.map +1 -0
  107. package/dist/chunk-NGBBNL4K.cjs +1 -3
  108. package/dist/chunk-P6WPEUAJ.cjs +2 -0
  109. package/dist/chunk-P6WPEUAJ.cjs.map +1 -0
  110. package/dist/chunk-PS272DZJ.cjs +2 -0
  111. package/dist/chunk-PS272DZJ.cjs.map +1 -0
  112. package/dist/chunk-QXQE7X4S.js +2 -0
  113. package/dist/chunk-QXQE7X4S.js.map +1 -0
  114. package/dist/chunk-R2ENWQ76.js +2 -0
  115. package/dist/chunk-R2ENWQ76.js.map +1 -0
  116. package/dist/chunk-R2SZFJTT.cjs +2 -0
  117. package/dist/chunk-R2SZFJTT.cjs.map +1 -0
  118. package/dist/chunk-RAF57WYO.js +2 -0
  119. package/dist/chunk-RAF57WYO.js.map +1 -0
  120. package/dist/chunk-RSF25YSJ.js +2 -0
  121. package/dist/chunk-RSF25YSJ.js.map +1 -0
  122. package/dist/chunk-SOMGSIO4.cjs +3 -0
  123. package/dist/chunk-SOMGSIO4.cjs.map +1 -0
  124. package/dist/chunk-SUXRZWH2.cjs +3 -0
  125. package/dist/chunk-SUXRZWH2.cjs.map +1 -0
  126. package/dist/chunk-SYYE3QAX.cjs +2 -0
  127. package/dist/chunk-SYYE3QAX.cjs.map +1 -0
  128. package/dist/chunk-SZGK6RIP.cjs +2 -0
  129. package/dist/chunk-SZGK6RIP.cjs.map +1 -0
  130. package/dist/chunk-TCZSPH4A.js +2 -0
  131. package/dist/chunk-TCZSPH4A.js.map +1 -0
  132. package/dist/chunk-TLG7VZRX.cjs +2 -0
  133. package/dist/chunk-TLG7VZRX.cjs.map +1 -0
  134. package/dist/chunk-TRBXW6HW.js +2 -0
  135. package/dist/{chunk-AQNHHJMJ.cjs.map → chunk-TRBXW6HW.js.map} +1 -1
  136. package/dist/chunk-TTFO4YDP.cjs +2 -0
  137. package/dist/chunk-TTFO4YDP.cjs.map +1 -0
  138. package/dist/chunk-TWC7K3ZX.js +2 -0
  139. package/dist/chunk-TWC7K3ZX.js.map +1 -0
  140. package/dist/chunk-UDQ57ZRX.cjs +2 -0
  141. package/dist/chunk-UDQ57ZRX.cjs.map +1 -0
  142. package/dist/chunk-UI6IFGBT.js +2 -0
  143. package/dist/chunk-UI6IFGBT.js.map +1 -0
  144. package/dist/chunk-UURM7P3P.cjs +4 -0
  145. package/dist/chunk-UURM7P3P.cjs.map +1 -0
  146. package/dist/chunk-W2JAR233.js +2 -0
  147. package/dist/chunk-W2JAR233.js.map +1 -0
  148. package/dist/chunk-WGZ3FNHI.js +2 -0
  149. package/dist/chunk-WGZ3FNHI.js.map +1 -0
  150. package/dist/chunk-WN5CMP4T.cjs +3 -0
  151. package/dist/chunk-WN5CMP4T.cjs.map +1 -0
  152. package/dist/chunk-XEIDV5JP.js +2 -0
  153. package/dist/chunk-XEIDV5JP.js.map +1 -0
  154. package/dist/chunk-XNIWQHXY.js +2 -0
  155. package/dist/chunk-XNIWQHXY.js.map +1 -0
  156. package/dist/chunk-XR7HEC7B.js +5 -0
  157. package/dist/chunk-XR7HEC7B.js.map +1 -0
  158. package/dist/chunk-Y7O4D3BJ.cjs +2 -0
  159. package/dist/chunk-Y7O4D3BJ.cjs.map +1 -0
  160. package/dist/chunk-YAYBVVG2.js +3 -0
  161. package/dist/chunk-YAYBVVG2.js.map +1 -0
  162. package/dist/chunk-YJ2OPULK.js +2 -0
  163. package/dist/chunk-YJ2OPULK.js.map +1 -0
  164. package/dist/chunk-YVKHEAFT.js +2 -0
  165. package/dist/chunk-YVKHEAFT.js.map +1 -0
  166. package/dist/chunk-ZCNBT44X.cjs +2 -0
  167. package/dist/chunk-ZCNBT44X.cjs.map +1 -0
  168. package/dist/chunk-ZLRJ7TDP.cjs +2 -0
  169. package/dist/chunk-ZLRJ7TDP.cjs.map +1 -0
  170. package/dist/constants.cjs +1 -21
  171. package/dist/constants.d.cts +1 -1
  172. package/dist/constants.d.ts +1 -1
  173. package/dist/constants.js +1 -4
  174. package/dist/engine.cjs +1 -94
  175. package/dist/engine.d.cts +29 -14
  176. package/dist/engine.d.ts +29 -14
  177. package/dist/engine.js +1 -37
  178. package/dist/errors.cjs +1 -105
  179. package/dist/errors.d.cts +3 -3
  180. package/dist/errors.d.ts +3 -3
  181. package/dist/errors.js +1 -4
  182. package/dist/format.cjs +1 -26
  183. package/dist/format.d.cts +2 -2
  184. package/dist/format.d.ts +2 -2
  185. package/dist/format.js +1 -9
  186. package/dist/index.cjs +1 -314
  187. package/dist/index.cjs.map +1 -1
  188. package/dist/index.d.cts +55 -23
  189. package/dist/index.d.ts +55 -23
  190. package/dist/index.js +1 -278
  191. package/dist/index.js.map +1 -1
  192. package/dist/language.cjs +1 -369
  193. package/dist/language.cjs.map +1 -1
  194. package/dist/language.d.cts +12 -13
  195. package/dist/language.d.ts +12 -13
  196. package/dist/language.js +1 -348
  197. package/dist/language.js.map +1 -1
  198. package/dist/lexer.cjs +1 -63
  199. package/dist/lexer.d.cts +3 -3
  200. package/dist/lexer.d.ts +3 -3
  201. package/dist/lexer.js +1 -10
  202. package/dist/normalizer.cjs +1 -39
  203. package/dist/normalizer.d.cts +3 -3
  204. package/dist/normalizer.d.ts +3 -3
  205. package/dist/normalizer.js +1 -10
  206. package/dist/packages.cjs +1 -128
  207. package/dist/packages.d.cts +39 -14
  208. package/dist/packages.d.ts +39 -14
  209. package/dist/packages.js +1 -23
  210. package/dist/parser.cjs +1 -54
  211. package/dist/parser.d.cts +9 -9
  212. package/dist/parser.d.ts +9 -9
  213. package/dist/parser.js +1 -9
  214. package/dist/{pipeline-CtfJtPQc.d.cts → pipeline-72QmQlGx.d.ts} +3 -3
  215. package/dist/{pipeline-DCd5M6Gk.d.ts → pipeline-DCQicwWX.d.cts} +3 -3
  216. package/dist/resolvers.cjs +1 -12
  217. package/dist/resolvers.d.cts +3 -3
  218. package/dist/resolvers.d.ts +3 -3
  219. package/dist/resolvers.js +1 -3
  220. package/dist/services.cjs +1 -20
  221. package/dist/services.js +1 -3
  222. package/dist/testing.cjs +3 -477
  223. package/dist/testing.cjs.map +1 -1
  224. package/dist/testing.d.cts +12 -13
  225. package/dist/testing.d.ts +12 -13
  226. package/dist/testing.js +3 -469
  227. package/dist/testing.js.map +1 -1
  228. package/dist/uom.cjs +1 -55
  229. package/dist/uom.d.cts +3 -3
  230. package/dist/uom.d.ts +3 -3
  231. package/dist/uom.js +1 -10
  232. package/dist/utilities.cjs +1 -36
  233. package/dist/utilities.js +1 -7
  234. package/dist/vm.cjs +1 -295
  235. package/dist/vm.cjs.map +1 -1
  236. package/dist/vm.d.cts +22 -10
  237. package/dist/vm.d.ts +22 -10
  238. package/dist/vm.js +1 -193
  239. package/dist/vm.js.map +1 -1
  240. package/dist/worker.cjs +2 -492
  241. package/dist/worker.cjs.map +1 -1
  242. package/dist/worker.d.cts +19 -20
  243. package/dist/worker.d.ts +19 -20
  244. package/dist/worker.js +2 -483
  245. package/dist/worker.js.map +1 -1
  246. package/package.json +1 -13
  247. package/dist/chunk-267JPOTF.js +0 -406
  248. package/dist/chunk-267JPOTF.js.map +0 -1
  249. package/dist/chunk-2TZKENDH.cjs +0 -448
  250. package/dist/chunk-2TZKENDH.cjs.map +0 -1
  251. package/dist/chunk-3BOK2LDK.js +0 -17
  252. package/dist/chunk-3BOK2LDK.js.map +0 -1
  253. package/dist/chunk-3OWCDIPN.js +0 -215
  254. package/dist/chunk-3OWCDIPN.js.map +0 -1
  255. package/dist/chunk-3VGDNEE3.js +0 -84
  256. package/dist/chunk-3VGDNEE3.js.map +0 -1
  257. package/dist/chunk-4D6NIHE2.js +0 -451
  258. package/dist/chunk-4D6NIHE2.js.map +0 -1
  259. package/dist/chunk-4HQKTMWG.js +0 -7985
  260. package/dist/chunk-4HQKTMWG.js.map +0 -1
  261. package/dist/chunk-536WPM2V.cjs +0 -283
  262. package/dist/chunk-536WPM2V.cjs.map +0 -1
  263. package/dist/chunk-5HRB36DK.js +0 -405
  264. package/dist/chunk-5HRB36DK.js.map +0 -1
  265. package/dist/chunk-5ON7PUAZ.js +0 -12
  266. package/dist/chunk-5ON7PUAZ.js.map +0 -1
  267. package/dist/chunk-7KYSUDQO.js +0 -109
  268. package/dist/chunk-7KYSUDQO.js.map +0 -1
  269. package/dist/chunk-7ZX6B7SY.cjs +0 -3222
  270. package/dist/chunk-7ZX6B7SY.cjs.map +0 -1
  271. package/dist/chunk-ADBA3XBE.cjs +0 -20
  272. package/dist/chunk-ADBA3XBE.cjs.map +0 -1
  273. package/dist/chunk-ALYRJ72W.cjs +0 -434
  274. package/dist/chunk-ALYRJ72W.cjs.map +0 -1
  275. package/dist/chunk-AMOJYLG2.cjs +0 -1692
  276. package/dist/chunk-AMOJYLG2.cjs.map +0 -1
  277. package/dist/chunk-AQNHHJMJ.cjs +0 -261
  278. package/dist/chunk-B4HBEFTB.cjs +0 -375
  279. package/dist/chunk-B4HBEFTB.cjs.map +0 -1
  280. package/dist/chunk-B7LXJ6LC.cjs +0 -36
  281. package/dist/chunk-B7LXJ6LC.cjs.map +0 -1
  282. package/dist/chunk-B7NLZMQ3.cjs +0 -74
  283. package/dist/chunk-B7NLZMQ3.cjs.map +0 -1
  284. package/dist/chunk-BLI4NIQY.js +0 -98
  285. package/dist/chunk-BLI4NIQY.js.map +0 -1
  286. package/dist/chunk-BYJBUL7U.js +0 -499
  287. package/dist/chunk-BYJBUL7U.js.map +0 -1
  288. package/dist/chunk-CCBZZQAE.js +0 -312
  289. package/dist/chunk-CCBZZQAE.js.map +0 -1
  290. package/dist/chunk-CKQMXMHR.cjs +0 -219
  291. package/dist/chunk-CKQMXMHR.cjs.map +0 -1
  292. package/dist/chunk-CUR2WLI4.cjs +0 -507
  293. package/dist/chunk-CUR2WLI4.cjs.map +0 -1
  294. package/dist/chunk-DLEBSLF4.js +0 -336
  295. package/dist/chunk-DLEBSLF4.js.map +0 -1
  296. package/dist/chunk-E23GZEWL.cjs +0 -209
  297. package/dist/chunk-E23GZEWL.cjs.map +0 -1
  298. package/dist/chunk-EJ3ILXX6.cjs +0 -223
  299. package/dist/chunk-EJ3ILXX6.cjs.map +0 -1
  300. package/dist/chunk-ENKKJYD3.js +0 -333
  301. package/dist/chunk-ENKKJYD3.js.map +0 -1
  302. package/dist/chunk-ENRIK36Q.cjs +0 -94
  303. package/dist/chunk-ENRIK36Q.cjs.map +0 -1
  304. package/dist/chunk-ERCOHGXD.js +0 -356
  305. package/dist/chunk-ERCOHGXD.js.map +0 -1
  306. package/dist/chunk-FD5ZZHEU.js +0 -92
  307. package/dist/chunk-FD5ZZHEU.js.map +0 -1
  308. package/dist/chunk-FEAIOR7N.cjs +0 -91
  309. package/dist/chunk-FEAIOR7N.cjs.map +0 -1
  310. package/dist/chunk-GCM5JHMX.js +0 -88
  311. package/dist/chunk-GCM5JHMX.js.map +0 -1
  312. package/dist/chunk-GLA4JXBO.js +0 -204
  313. package/dist/chunk-GLA4JXBO.js.map +0 -1
  314. package/dist/chunk-HIQ5HSZL.cjs +0 -1923
  315. package/dist/chunk-HIQ5HSZL.cjs.map +0 -1
  316. package/dist/chunk-HVRVSI2Z.cjs +0 -829
  317. package/dist/chunk-HVRVSI2Z.cjs.map +0 -1
  318. package/dist/chunk-I4GAWIPW.js +0 -825
  319. package/dist/chunk-I4GAWIPW.js.map +0 -1
  320. package/dist/chunk-J45BCEZ4.cjs +0 -339
  321. package/dist/chunk-J45BCEZ4.cjs.map +0 -1
  322. package/dist/chunk-JG6ZJ2WU.js +0 -1513
  323. package/dist/chunk-JG6ZJ2WU.js.map +0 -1
  324. package/dist/chunk-L2TE7PMO.cjs +0 -14
  325. package/dist/chunk-L2TE7PMO.cjs.map +0 -1
  326. package/dist/chunk-LHZ6VOA7.js +0 -1764
  327. package/dist/chunk-LHZ6VOA7.js.map +0 -1
  328. package/dist/chunk-MN3LHRGV.cjs +0 -8012
  329. package/dist/chunk-MN3LHRGV.cjs.map +0 -1
  330. package/dist/chunk-MVTOCRV2.js +0 -213
  331. package/dist/chunk-MVTOCRV2.js.map +0 -1
  332. package/dist/chunk-N5NNW4VG.cjs +0 -341
  333. package/dist/chunk-N5NNW4VG.cjs.map +0 -1
  334. package/dist/chunk-N7FNVFXW.cjs +0 -32
  335. package/dist/chunk-N7FNVFXW.cjs.map +0 -1
  336. package/dist/chunk-NKW7LKYU.js +0 -3185
  337. package/dist/chunk-NKW7LKYU.js.map +0 -1
  338. package/dist/chunk-NLNDMWZC.js +0 -31
  339. package/dist/chunk-NLNDMWZC.js.map +0 -1
  340. package/dist/chunk-NNQ2TYDF.js +0 -1848
  341. package/dist/chunk-NNQ2TYDF.js.map +0 -1
  342. package/dist/chunk-NNZAEUDW.js +0 -6792
  343. package/dist/chunk-NNZAEUDW.js.map +0 -1
  344. package/dist/chunk-OUHT5Z36.cjs +0 -393
  345. package/dist/chunk-OUHT5Z36.cjs.map +0 -1
  346. package/dist/chunk-QFTDTX6K.cjs +0 -457
  347. package/dist/chunk-QFTDTX6K.cjs.map +0 -1
  348. package/dist/chunk-SBUFNJVE.js +0 -258
  349. package/dist/chunk-SBUFNJVE.js.map +0 -1
  350. package/dist/chunk-SRGQ72IR.cjs +0 -2800
  351. package/dist/chunk-SRGQ72IR.cjs.map +0 -1
  352. package/dist/chunk-SSV46KFA.cjs +0 -112
  353. package/dist/chunk-SSV46KFA.cjs.map +0 -1
  354. package/dist/chunk-T6ZYQJ63.cjs +0 -6807
  355. package/dist/chunk-T6ZYQJ63.cjs.map +0 -1
  356. package/dist/chunk-UKQHXPGW.js +0 -30
  357. package/dist/chunk-UKQHXPGW.js.map +0 -1
  358. package/dist/chunk-UO6BUV6K.js +0 -278
  359. package/dist/chunk-UO6BUV6K.js.map +0 -1
  360. package/dist/chunk-V4XG5QF6.js +0 -1685
  361. package/dist/chunk-V4XG5QF6.js.map +0 -1
  362. package/dist/chunk-VEKIWQ3F.cjs +0 -39
  363. package/dist/chunk-VEKIWQ3F.cjs.map +0 -1
  364. package/dist/chunk-WWQEY7BV.js +0 -67
  365. package/dist/chunk-WWQEY7BV.js.map +0 -1
  366. package/dist/chunk-WXEHD6TT.js +0 -2795
  367. package/dist/chunk-WXEHD6TT.js.map +0 -1
  368. package/dist/chunk-X6K3HUOY.cjs +0 -86
  369. package/dist/chunk-X6K3HUOY.cjs.map +0 -1
  370. package/dist/chunk-XA4CKRML.cjs +0 -316
  371. package/dist/chunk-XA4CKRML.cjs.map +0 -1
  372. package/dist/chunk-XBTEO4OB.js +0 -391
  373. package/dist/chunk-XBTEO4OB.js.map +0 -1
  374. package/dist/chunk-XIYYHA65.cjs +0 -101
  375. package/dist/chunk-XIYYHA65.cjs.map +0 -1
  376. package/dist/chunk-YLJ4XMA6.js +0 -33
  377. package/dist/chunk-YLJ4XMA6.js.map +0 -1
  378. package/dist/chunk-YRIKITGF.cjs +0 -1768
  379. package/dist/chunk-YRIKITGF.cjs.map +0 -1
  380. package/dist/chunk-Z2XP767T.cjs +0 -35
  381. package/dist/chunk-Z2XP767T.cjs.map +0 -1
  382. package/dist/chunk-Z4X2RWOF.js +0 -37
  383. package/dist/chunk-Z4X2RWOF.js.map +0 -1
  384. package/dist/chunk-Z7XGGLI2.js +0 -455
  385. package/dist/chunk-Z7XGGLI2.js.map +0 -1
  386. package/dist/chunk-ZMW6NU2K.cjs +0 -1516
  387. package/dist/chunk-ZMW6NU2K.cjs.map +0 -1
  388. package/dist/chunk-ZVTWQLK4.cjs +0 -459
  389. package/dist/chunk-ZVTWQLK4.cjs.map +0 -1
  390. package/dist/variables.cjs +0 -17
  391. package/dist/variables.cjs.map +0 -1
  392. package/dist/variables.d.cts +0 -87
  393. package/dist/variables.d.ts +0 -87
  394. package/dist/variables.js +0 -4
  395. package/dist/variables.js.map +0 -1
package/README.md CHANGED
@@ -44,10 +44,10 @@ npm install solve-engine
44
44
  ## Quick start
45
45
 
46
46
  ```typescript
47
- import { ExpressionEngine } from "solve-engine";
47
+ import { createEngine } from "solve-engine";
48
48
 
49
- const engine = new ExpressionEngine("en");
50
- const [value] = engine.evaluateExpression("2 + 2 * 10");
49
+ const engine = createEngine();
50
+ const value = engine.evaluateExpression("2 + 2 * 10");
51
51
 
52
52
  console.log(value.toNumber()); // 22
53
53
  ```
@@ -67,7 +67,7 @@ reachable from the module-level data query service, so a parsed engine stays
67
67
  retained until `clear()` releases it.
68
68
 
69
69
  ```typescript
70
- const engine = new ExpressionEngine();
70
+ const engine = createEngine();
71
71
  engine.parseDocument(text);
72
72
  // ... read results ...
73
73
  engine.clear();
@@ -93,7 +93,7 @@ call to remember.
93
93
  ```typescript
94
94
  import { formatValue } from "solve-engine/format";
95
95
 
96
- const [value] = engine.evaluateExpression("10 USD to GBP");
96
+ const value = engine.evaluateExpression("10 USD to GBP");
97
97
  console.log(formatValue(value)); // uses DEFAULT_FORMATTING_SETTINGS if no settings passed
98
98
  ```
99
99
 
@@ -104,8 +104,8 @@ they are:
104
104
 
105
105
  | Subpath | Purpose |
106
106
  |---|---|
107
- | `solve-engine` | Start here, `ExpressionEngine`, `PackageRegistry`/`packageRegistry`, `IEnginePackage`. |
108
- | `solve-engine/engine` | `ExpressionEngine` and its supporting types (`LineEvaluation`, `EvalResults`, etc.) directly, without the package-registration wrapper. |
107
+ | `solve-engine` | Start here, `ExpressionEngine`, `createEngine`, `IEnginePackage`. |
108
+ | `solve-engine/engine` | `ExpressionEngine` and its supporting types (`Explanation`, `EngineSnapshot`, etc.) directly, without the package-registration wrapper. |
109
109
  | `solve-engine/vm` | The bytecode VM: `Value`/`ValueType`, opcode dispatch, `allocatePluginFunctionIndex`. |
110
110
  | `solve-engine/format` | Turning a `Value` into a display string (numbers, dates, units, vectors, ...). |
111
111
  | `solve-engine/language` | Editor-agnostic language service: token categories, completions, highlighting. |
@@ -122,7 +122,6 @@ depend on):
122
122
  | `solve-engine/lexer` | Tokenizer, `LexerVocabulary` for registering custom keywords/operators/units. |
123
123
  | `solve-engine/parser` | Pratt parser, `BytecodeBuilder`, `OpCode`. |
124
124
  | `solve-engine/normalizer` | Post-lexer token transforms (phrase fusion, implicit multiply). |
125
- | `solve-engine/variables` | Variable resolution (`IVariableSource`). |
126
125
  | `solve-engine/resolvers` | Async resolvers (`IAsyncResolver`) for data that loads asynchronously. |
127
126
  | `solve-engine/errors` | `EngineError` and the error factory. |
128
127
  | `solve-engine/utilities` | Small stateless helpers (e.g. `stripQuotes`). |
@@ -136,8 +135,8 @@ minor versions without notice.
136
135
  ## Authoring a package
137
136
 
138
137
  A **package** (`IEnginePackage`) is a plain data descriptor bundling everything needed to
139
- extend the engine with a new domain: custom tokens, parselets, VM opcode handlers, variable
140
- sources, and optional async resolvers. See
138
+ extend the engine with a new domain: custom tokens, parselets, VM opcode handlers, and
139
+ optional async resolvers. See
141
140
  [`solve-engine/api`'s `IEnginePackage`](https://github.com/LiamRiddell/solve-engine/blob/main/packages/engine/src/api/PackageRegistry.ts) for the full field list
142
141
  with inline documentation and examples for each field.
143
142
 
@@ -211,17 +210,13 @@ published package, see `files` in `package.json`, only `dist/` ships):
211
210
 
212
211
  ## Known limitations
213
212
 
214
- **Cross-instance isolation is partial.** Plugin functions, the opcode registry and
215
- variable sources are now owned per `ExpressionEngine`, so two engines with different
216
- package sets no longer interfere across those. The lexer and the currency exchange rates
213
+ **Cross-instance isolation is partial.** Plugin functions and the opcode registry are
214
+ now owned per `ExpressionEngine`, so two engines with different package sets no longer
215
+ interfere across those. The lexer and the currency exchange rates
217
216
  are still module-level singletons, so full isolation between two engines in one process
218
217
  cannot yet be assumed. Tracked as "L1, EngineContext"; three of its five migrations have
219
218
  landed and the remaining two are a prerequisite for 1.0.0 proper.
220
219
 
221
- **`variableSources` does nothing.** A package can declare them, the engine registers and
222
- unregisters them, and no evaluation path ever consults them. Treat the extension point as
223
- absent until that changes.
224
-
225
220
  **Async results need a host hook.** `AsyncResolutionBatcher.onLineResult` is the only
226
221
  mechanism that patches a resolved async value back into the document model, and it is not
227
222
  wired inside the package. A host that does not supply it gets async values that never
@@ -182,6 +182,7 @@ interface UserFunctionDef {
182
182
  * - In-place reset for reuse without reallocation
183
183
  */
184
184
  declare class BytecodeBuilder {
185
+ private readonly pluginFunctionIndex?;
185
186
  private opcodes;
186
187
  private numbers;
187
188
  private strings;
@@ -189,6 +190,23 @@ declare class BytecodeBuilder {
189
190
  private _hasAsync;
190
191
  private userFunctionBodies;
191
192
  private anonymousBodies;
193
+ /**
194
+ * The per-engine `plugin function name -> registry index` map, wired in by
195
+ * the engine so {@link emitPluginCall} can resolve a name at emit time. The
196
+ * same object reference is shared with every builder in an engine (the pool
197
+ * and each ad-hoc nested-body builder), and the engine populates it as
198
+ * packages register, so a parselet never sees the numeric index.
199
+ */
200
+ constructor(pluginFunctionIndex?: ReadonlyMap<string, number> | undefined);
201
+ /** The name->index map, so a nested-body builder inherits the same resolution. */
202
+ get pluginIndexMap(): ReadonlyMap<string, number> | undefined;
203
+ /**
204
+ * Emit a plugin-function call by NAME. The engine assigns each registered
205
+ * `pluginFunctions` entry an index at registration; this resolves the name to
206
+ * that index and emits `CALL_PLUGIN` + index + argCount. Package authors emit
207
+ * through this rather than a hand-allocated index.
208
+ */
209
+ emitPluginCall(name: string, argCount: number): void;
192
210
  /** Emit an {@link OpCode} instruction. */
193
211
  emitOpcode(op: OpCode): void;
194
212
  /**
@@ -182,6 +182,7 @@ interface UserFunctionDef {
182
182
  * - In-place reset for reuse without reallocation
183
183
  */
184
184
  declare class BytecodeBuilder {
185
+ private readonly pluginFunctionIndex?;
185
186
  private opcodes;
186
187
  private numbers;
187
188
  private strings;
@@ -189,6 +190,23 @@ declare class BytecodeBuilder {
189
190
  private _hasAsync;
190
191
  private userFunctionBodies;
191
192
  private anonymousBodies;
193
+ /**
194
+ * The per-engine `plugin function name -> registry index` map, wired in by
195
+ * the engine so {@link emitPluginCall} can resolve a name at emit time. The
196
+ * same object reference is shared with every builder in an engine (the pool
197
+ * and each ad-hoc nested-body builder), and the engine populates it as
198
+ * packages register, so a parselet never sees the numeric index.
199
+ */
200
+ constructor(pluginFunctionIndex?: ReadonlyMap<string, number> | undefined);
201
+ /** The name->index map, so a nested-body builder inherits the same resolution. */
202
+ get pluginIndexMap(): ReadonlyMap<string, number> | undefined;
203
+ /**
204
+ * Emit a plugin-function call by NAME. The engine assigns each registered
205
+ * `pluginFunctions` entry an index at registration; this resolves the name to
206
+ * that index and emits `CALL_PLUGIN` + index + argCount. Package authors emit
207
+ * through this rather than a hand-allocated index.
208
+ */
209
+ emitPluginCall(name: string, argCount: number): void;
192
210
  /** Emit an {@link OpCode} instruction. */
193
211
  emitOpcode(op: OpCode): void;
194
212
  /**
@@ -79,7 +79,7 @@ interface DateConfig {
79
79
  *
80
80
  * Optional and unset by default: with no calendar, working-day arithmetic
81
81
  * skips weekends only. A host that wants holidays excluded too supplies one
82
- * here (`new ExpressionEngine("en", false, { date: { holidays } })`), the
82
+ * here (`new ExpressionEngine({ config: { date: { holidays } } })`), the
83
83
  * same way stocks and weather take a host data source. Threaded into the VM
84
84
  * by `engine/ExpressionEngine.ts` exactly as {@link maxOffsetYears} is,
85
85
  * because working-day math is a VM operation several grammar forms share, so
@@ -261,13 +261,13 @@ interface VMConfig {
261
261
  * ```typescript
262
262
  * import { ExpressionEngine } from "solve-js";
263
263
  *
264
- * const engine = new ExpressionEngine("en", false, {
264
+ * const engine = new ExpressionEngine({ config: {
265
265
  * validation: {
266
266
  * maxExpressionLength: 1000,
267
267
  * maxComplexity: 200,
268
268
  * },
269
269
  * // date, performance, vm, worker, diagnostic all use defaults
270
- * });
270
+ * } });
271
271
  * ```
272
272
  */
273
273
  interface EngineConfig {
@@ -284,6 +284,19 @@ interface EngineConfig {
284
284
  /** Diagnostic pipeline configuration */
285
285
  readonly diagnostic: DiagnosticConfig;
286
286
  }
287
+ /**
288
+ * A partial {@link EngineConfig} override, one section at a time.
289
+ *
290
+ * Overrides are merged per section over {@link DEFAULT_CONFIG}, so you can set a
291
+ * single field of one section (`{ validation: { maxExpressionLength: 1000 } }`)
292
+ * and keep every other default in that section. A plain `Partial<EngineConfig>`
293
+ * cannot express that, it demands a whole section object, which is why the
294
+ * documented overrides never typechecked against it. This is the type the
295
+ * constructor and {@link createEngine} accept.
296
+ */
297
+ type EngineConfigOverride = {
298
+ readonly [K in keyof EngineConfig]?: Partial<EngineConfig[K]>;
299
+ };
287
300
  /**
288
301
  * Default configuration values
289
302
  */
@@ -355,4 +368,4 @@ interface ValidationResult {
355
368
  warnings?: string[];
356
369
  }
357
370
 
358
- export { ConfigManager as C, DEFAULT_CONFIG as D, type EngineConfig as E, type HolidayCalendar as H, type PerformanceConfig as P, type VMConfig as V, type WorkerConfig as W, type DateConfig as a, type DiagnosticConfig as b, type HolidayPredicate as c, type ValidationConfig as d, type ValidationResult as e };
371
+ export { ConfigManager as C, DEFAULT_CONFIG as D, type EngineConfigOverride as E, type HolidayCalendar as H, type PerformanceConfig as P, type VMConfig as V, type WorkerConfig as W, type EngineConfig as a, type DateConfig as b, type DiagnosticConfig as c, type HolidayPredicate as d, type ValidationConfig as e, type ValidationResult as f };
@@ -79,7 +79,7 @@ interface DateConfig {
79
79
  *
80
80
  * Optional and unset by default: with no calendar, working-day arithmetic
81
81
  * skips weekends only. A host that wants holidays excluded too supplies one
82
- * here (`new ExpressionEngine("en", false, { date: { holidays } })`), the
82
+ * here (`new ExpressionEngine({ config: { date: { holidays } } })`), the
83
83
  * same way stocks and weather take a host data source. Threaded into the VM
84
84
  * by `engine/ExpressionEngine.ts` exactly as {@link maxOffsetYears} is,
85
85
  * because working-day math is a VM operation several grammar forms share, so
@@ -261,13 +261,13 @@ interface VMConfig {
261
261
  * ```typescript
262
262
  * import { ExpressionEngine } from "solve-js";
263
263
  *
264
- * const engine = new ExpressionEngine("en", false, {
264
+ * const engine = new ExpressionEngine({ config: {
265
265
  * validation: {
266
266
  * maxExpressionLength: 1000,
267
267
  * maxComplexity: 200,
268
268
  * },
269
269
  * // date, performance, vm, worker, diagnostic all use defaults
270
- * });
270
+ * } });
271
271
  * ```
272
272
  */
273
273
  interface EngineConfig {
@@ -284,6 +284,19 @@ interface EngineConfig {
284
284
  /** Diagnostic pipeline configuration */
285
285
  readonly diagnostic: DiagnosticConfig;
286
286
  }
287
+ /**
288
+ * A partial {@link EngineConfig} override, one section at a time.
289
+ *
290
+ * Overrides are merged per section over {@link DEFAULT_CONFIG}, so you can set a
291
+ * single field of one section (`{ validation: { maxExpressionLength: 1000 } }`)
292
+ * and keep every other default in that section. A plain `Partial<EngineConfig>`
293
+ * cannot express that, it demands a whole section object, which is why the
294
+ * documented overrides never typechecked against it. This is the type the
295
+ * constructor and {@link createEngine} accept.
296
+ */
297
+ type EngineConfigOverride = {
298
+ readonly [K in keyof EngineConfig]?: Partial<EngineConfig[K]>;
299
+ };
287
300
  /**
288
301
  * Default configuration values
289
302
  */
@@ -355,4 +368,4 @@ interface ValidationResult {
355
368
  warnings?: string[];
356
369
  }
357
370
 
358
- export { ConfigManager as C, DEFAULT_CONFIG as D, type EngineConfig as E, type HolidayCalendar as H, type PerformanceConfig as P, type VMConfig as V, type WorkerConfig as W, type DateConfig as a, type DiagnosticConfig as b, type HolidayPredicate as c, type ValidationConfig as d, type ValidationResult as e };
371
+ export { ConfigManager as C, DEFAULT_CONFIG as D, type EngineConfigOverride as E, type HolidayCalendar as H, type PerformanceConfig as P, type VMConfig as V, type WorkerConfig as W, type EngineConfig as a, type DateConfig as b, type DiagnosticConfig as c, type HolidayPredicate as d, type ValidationConfig as e, type ValidationResult as f };
@@ -52,6 +52,8 @@ declare const CoreErrorCodes: {
52
52
  readonly TOO_MANY_FUNCTION_DEFINITIONS: "TOO_MANY_FUNCTION_DEFINITIONS";
53
53
  /** `BytecodeBuilder`'s `anonymousBodies` side-table (map/reduce inline transform bodies) exceeding its capacity. Same class as `TOO_MANY_FUNCTION_DEFINITIONS` above. */
54
54
  readonly TOO_MANY_ANONYMOUS_BODIES: "TOO_MANY_ANONYMOUS_BODIES";
55
+ /** New with the 2.0 descriptor redesign: a parselet emits a plugin call by NAME (`BytecodeBuilder.emitPluginCall(name, argCount)`) and the engine resolves that name to the index it assigned at registration. This fires when the name is absent from the builder's name->index map: the package used a `pluginFunctions` name it never declared, or the expression was parsed before that package registered. Not a user-input error; a package-authoring/registration fault. See `parser/BytecodeBuilder.ts`'s `emitPluginCall()`. */
56
+ readonly UNKNOWN_PLUGIN_FUNCTION: "UNKNOWN_PLUGIN_FUNCTION";
55
57
  readonly EVALUATION_ERROR: "EVALUATION_ERROR";
56
58
  readonly INSTRUCTION_LIMIT_EXCEEDED: "INSTRUCTION_LIMIT_EXCEEDED";
57
59
  readonly STACK_LIMIT_EXCEEDED: "STACK_LIMIT_EXCEEDED";
@@ -154,6 +156,12 @@ declare const CoreErrorCodes: {
154
156
  readonly THEREFORE_REQUIRES_EXPRESSION: "THEREFORE_REQUIRES_EXPRESSION";
155
157
  /** A `"=>"`-triggered expression called an async plugin (weather/stocks/currency). Same v1 scope restriction as user-function/map-reduce bodies. */
156
158
  readonly THEREFORE_ASYNC_UNSUPPORTED: "THEREFORE_ASYNC_UNSUPPORTED";
159
+ /** A compound assignment (`name += expr` / `name -= expr`) with nothing on the right, a line half-typed on the way to `total += 5`. */
160
+ readonly COMPOUND_ASSIGN_REQUIRES_EXPRESSION: "COMPOUND_ASSIGN_REQUIRES_EXPRESSION";
161
+ /** A running total (`+= / -=`) whose right-hand side calls an async plugin (weather/stocks/currency). The same v1 scope restriction as the `"=>"` and user-function bodies. */
162
+ readonly COMPOUND_ASSIGN_ASYNC_UNSUPPORTED: "COMPOUND_ASSIGN_ASYNC_UNSUPPORTED";
163
+ /** A savings-goal contribution period that is not one of daily/weekly/monthly/yearly (`how long to save $X at $Y <period>`). Names the accepted set. */
164
+ readonly UNKNOWN_SAVINGS_PERIOD: "UNKNOWN_SAVINGS_PERIOD";
157
165
  /** Colon-separated numbers that are not a time any clock can show ("24:00", "9:60", "100:5"). Raised by the labeled-line fallback, which used to answer them with whatever stood after the colon. */
158
166
  readonly INVALID_TIME_LITERAL: "INVALID_TIME_LITERAL";
159
167
  /** `fromJSON()` handed an object that is not a snapshot at all, or whose serialised-shape version does not match this engine's reader. The versioning gate that refuses an incompatible snapshot clearly rather than restoring it wrongly. See `engine/EngineSnapshot.ts`'s `assertRestorable()`. */
@@ -52,6 +52,8 @@ declare const CoreErrorCodes: {
52
52
  readonly TOO_MANY_FUNCTION_DEFINITIONS: "TOO_MANY_FUNCTION_DEFINITIONS";
53
53
  /** `BytecodeBuilder`'s `anonymousBodies` side-table (map/reduce inline transform bodies) exceeding its capacity. Same class as `TOO_MANY_FUNCTION_DEFINITIONS` above. */
54
54
  readonly TOO_MANY_ANONYMOUS_BODIES: "TOO_MANY_ANONYMOUS_BODIES";
55
+ /** New with the 2.0 descriptor redesign: a parselet emits a plugin call by NAME (`BytecodeBuilder.emitPluginCall(name, argCount)`) and the engine resolves that name to the index it assigned at registration. This fires when the name is absent from the builder's name->index map: the package used a `pluginFunctions` name it never declared, or the expression was parsed before that package registered. Not a user-input error; a package-authoring/registration fault. See `parser/BytecodeBuilder.ts`'s `emitPluginCall()`. */
56
+ readonly UNKNOWN_PLUGIN_FUNCTION: "UNKNOWN_PLUGIN_FUNCTION";
55
57
  readonly EVALUATION_ERROR: "EVALUATION_ERROR";
56
58
  readonly INSTRUCTION_LIMIT_EXCEEDED: "INSTRUCTION_LIMIT_EXCEEDED";
57
59
  readonly STACK_LIMIT_EXCEEDED: "STACK_LIMIT_EXCEEDED";
@@ -154,6 +156,12 @@ declare const CoreErrorCodes: {
154
156
  readonly THEREFORE_REQUIRES_EXPRESSION: "THEREFORE_REQUIRES_EXPRESSION";
155
157
  /** A `"=>"`-triggered expression called an async plugin (weather/stocks/currency). Same v1 scope restriction as user-function/map-reduce bodies. */
156
158
  readonly THEREFORE_ASYNC_UNSUPPORTED: "THEREFORE_ASYNC_UNSUPPORTED";
159
+ /** A compound assignment (`name += expr` / `name -= expr`) with nothing on the right, a line half-typed on the way to `total += 5`. */
160
+ readonly COMPOUND_ASSIGN_REQUIRES_EXPRESSION: "COMPOUND_ASSIGN_REQUIRES_EXPRESSION";
161
+ /** A running total (`+= / -=`) whose right-hand side calls an async plugin (weather/stocks/currency). The same v1 scope restriction as the `"=>"` and user-function bodies. */
162
+ readonly COMPOUND_ASSIGN_ASYNC_UNSUPPORTED: "COMPOUND_ASSIGN_ASYNC_UNSUPPORTED";
163
+ /** A savings-goal contribution period that is not one of daily/weekly/monthly/yearly (`how long to save $X at $Y <period>`). Names the accepted set. */
164
+ readonly UNKNOWN_SAVINGS_PERIOD: "UNKNOWN_SAVINGS_PERIOD";
157
165
  /** Colon-separated numbers that are not a time any clock can show ("24:00", "9:60", "100:5"). Raised by the labeled-line fallback, which used to answer them with whatever stood after the colon. */
158
166
  readonly INVALID_TIME_LITERAL: "INVALID_TIME_LITERAL";
159
167
  /** `fromJSON()` handed an object that is not a snapshot at all, or whose serialised-shape version does not match this engine's reader. The versioning gate that refuses an incompatible snapshot clearly rather than restoring it wrongly. See `engine/EngineSnapshot.ts`'s `assertRestorable()`. */
@@ -1,4 +1,4 @@
1
- import { T as Token } from './Token-B1hdkedD.cjs';
1
+ import { T as Token } from './Token-CbP_OutD.cjs';
2
2
 
3
3
  /** Trie node for multi-word phrase matching. */
4
4
  interface PhraseNode {
@@ -1,4 +1,4 @@
1
- import { T as Token } from './Token-B1hdkedD.js';
1
+ import { T as Token } from './Token-CbP_OutD.js';
2
2
 
3
3
  /** Trie node for multi-word phrase matching. */
4
4
  interface PhraseNode {
@@ -1,4 +1,4 @@
1
- import { I as IEnginePackage } from './PackageRegistry-BHWJP83F.cjs';
1
+ import { I as IEnginePackage } from './PackageRegistry-dpdurBVO.cjs';
2
2
 
3
3
  /**
4
4
  * Package load-time compatibility checking, the "detect overlapping
@@ -41,7 +41,7 @@ import { I as IEnginePackage } from './PackageRegistry-BHWJP83F.cjs';
41
41
  /** How serious a detected conflict is. */
42
42
  type CompatibilitySeverity = "error" | "warning" | "info";
43
43
  /** The category of overlap detected between two packages. */
44
- type CompatibilityConflictKind = "prefixParseletTokenType" | "infixParseletTokenType" | "phrase" | "converterName" | "pluginFunctionIndex" | "lexerKeyword" | "lexerOperator" | "asyncResolverNamespace" | "tokenCategory";
44
+ type CompatibilityConflictKind = "prefixParseletTokenType" | "infixParseletTokenType" | "phrase" | "converterName" | "pluginFunctionName" | "lexerKeyword" | "lexerOperator" | "asyncResolverNamespace" | "tokenCategory" | "normalizerRuleName";
45
45
  /** One way two packages collide, for example claiming the same keyword. */
46
46
  interface CompatibilityConflict {
47
47
  kind: CompatibilityConflictKind;
@@ -1,4 +1,4 @@
1
- import { I as IEnginePackage } from './PackageRegistry-_8rDlvxI.js';
1
+ import { I as IEnginePackage } from './PackageRegistry-DzeiWcv4.js';
2
2
 
3
3
  /**
4
4
  * Package load-time compatibility checking, the "detect overlapping
@@ -41,7 +41,7 @@ import { I as IEnginePackage } from './PackageRegistry-_8rDlvxI.js';
41
41
  /** How serious a detected conflict is. */
42
42
  type CompatibilitySeverity = "error" | "warning" | "info";
43
43
  /** The category of overlap detected between two packages. */
44
- type CompatibilityConflictKind = "prefixParseletTokenType" | "infixParseletTokenType" | "phrase" | "converterName" | "pluginFunctionIndex" | "lexerKeyword" | "lexerOperator" | "asyncResolverNamespace" | "tokenCategory";
44
+ type CompatibilityConflictKind = "prefixParseletTokenType" | "infixParseletTokenType" | "phrase" | "converterName" | "pluginFunctionName" | "lexerKeyword" | "lexerOperator" | "asyncResolverNamespace" | "tokenCategory" | "normalizerRuleName";
45
45
  /** One way two packages collide, for example claiming the same keyword. */
46
46
  interface CompatibilityConflict {
47
47
  kind: CompatibilityConflictKind;