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.
- package/README.md +12 -17
- package/dist/{BytecodeBuilder-Bp9xeTmX.d.cts → BytecodeBuilder-DGGeByAP.d.cts} +18 -0
- package/dist/{BytecodeBuilder-Bp9xeTmX.d.ts → BytecodeBuilder-DGGeByAP.d.ts} +18 -0
- package/dist/{Configuration-C9W8tJv_.d.cts → Configuration-B6W0-T67.d.cts} +17 -4
- package/dist/{Configuration-C9W8tJv_.d.ts → Configuration-B6W0-T67.d.ts} +17 -4
- package/dist/{EngineError-B61GS1jp.d.cts → EngineError-Ce1lPkjZ.d.cts} +8 -0
- package/dist/{EngineError-B61GS1jp.d.ts → EngineError-Ce1lPkjZ.d.ts} +8 -0
- package/dist/{Lexer-BOs7euZe.d.cts → Lexer-B4C1qHXu.d.cts} +1 -1
- package/dist/{Lexer-CSI_lwbW.d.ts → Lexer-DKMlj7Sy.d.ts} +1 -1
- package/dist/{PackageCompatibility-B-7rK1TD.d.cts → PackageCompatibility-Bn5jnBtA.d.cts} +2 -2
- package/dist/{PackageCompatibility-Dh59eF-X.d.ts → PackageCompatibility-CIvq2MP5.d.ts} +2 -2
- package/dist/{PackageRegistry-_8rDlvxI.d.ts → PackageRegistry-DzeiWcv4.d.ts} +143 -175
- package/dist/{PackageRegistry-BHWJP83F.d.cts → PackageRegistry-dpdurBVO.d.cts} +143 -175
- package/dist/{Parselet-BBT8riYh.d.ts → Parselet-B-zoPrTa.d.ts} +9 -6
- package/dist/{Parselet-BHcgK9S7.d.cts → Parselet-C4Wu055_.d.cts} +9 -6
- package/dist/{ScopeManager-CxA24W5n.d.ts → ScopeManager-C2LDOrDx.d.ts} +14 -16
- package/dist/{ScopeManager-8vf02dwj.d.cts → ScopeManager-D7uMXbhS.d.cts} +14 -16
- package/dist/{Token-B1hdkedD.d.cts → Token-CbP_OutD.d.cts} +9 -0
- package/dist/{Token-B1hdkedD.d.ts → Token-CbP_OutD.d.ts} +9 -0
- package/dist/{TokenNormalizer-C6VzZgHa.d.ts → TokenNormalizer-DCWdZjGz.d.ts} +1 -1
- package/dist/{TokenNormalizer-DRc1Js1V.d.cts → TokenNormalizer-DnlL7_8c.d.cts} +1 -1
- package/dist/{VMCheckpoints-MK--EBH2.d.ts → VMCheckpoints-CGyFhivM.d.ts} +3 -3
- package/dist/{VMCheckpoints-ELYqITdF.d.cts → VMCheckpoints-I9jg3jWR.d.cts} +3 -3
- package/dist/{Value-BUi1RA3S.d.cts → Value-CCi_Eecs.d.cts} +72 -5
- package/dist/{Value-BUi1RA3S.d.ts → Value-CCi_Eecs.d.ts} +72 -5
- package/dist/{WorkerError-gzmaopj2.d.cts → WorkerError-B4p6PNfx.d.cts} +1 -1
- package/dist/{WorkerError-_-RkoQ5P.d.ts → WorkerError-Dhj9BQ_A.d.ts} +1 -1
- package/dist/chunk-2JMFUQZH.js +2 -0
- package/dist/chunk-2JMFUQZH.js.map +1 -0
- package/dist/chunk-2RWAXT6O.js +0 -1
- package/dist/chunk-4BZIYU7S.cjs +3 -0
- package/dist/chunk-4BZIYU7S.cjs.map +1 -0
- package/dist/chunk-4J7XZSZJ.cjs +5 -0
- package/dist/chunk-4J7XZSZJ.cjs.map +1 -0
- package/dist/chunk-4QVBSG6B.cjs +2 -0
- package/dist/chunk-4QVBSG6B.cjs.map +1 -0
- package/dist/chunk-5IJD5L3O.cjs +2 -0
- package/dist/chunk-5IJD5L3O.cjs.map +1 -0
- package/dist/chunk-62LMTO4F.js +2 -0
- package/dist/chunk-62LMTO4F.js.map +1 -0
- package/dist/chunk-6CY44ZPG.js +2 -0
- package/dist/chunk-6CY44ZPG.js.map +1 -0
- package/dist/chunk-6G3PMEPA.js +2 -0
- package/dist/chunk-6G3PMEPA.js.map +1 -0
- package/dist/chunk-6INX773F.cjs +2 -0
- package/dist/chunk-6INX773F.cjs.map +1 -0
- package/dist/chunk-6KFVG6UY.cjs +2 -0
- package/dist/chunk-6KFVG6UY.cjs.map +1 -0
- package/dist/chunk-76F3LCIL.js +4 -0
- package/dist/chunk-76F3LCIL.js.map +1 -0
- package/dist/chunk-7GK3XEZF.js +2 -0
- package/dist/chunk-7GK3XEZF.js.map +1 -0
- package/dist/chunk-APN442VD.cjs +2 -0
- package/dist/chunk-APN442VD.cjs.map +1 -0
- package/dist/chunk-AXMQG5TS.cjs +2 -0
- package/dist/chunk-AXMQG5TS.cjs.map +1 -0
- package/dist/chunk-CIQOK7Q4.cjs +2 -0
- package/dist/chunk-CIQOK7Q4.cjs.map +1 -0
- package/dist/chunk-E6Z4NQAS.js +2 -0
- package/dist/chunk-E6Z4NQAS.js.map +1 -0
- package/dist/chunk-EFJCC6FJ.cjs +2 -0
- package/dist/chunk-EFJCC6FJ.cjs.map +1 -0
- package/dist/chunk-ESUN2THE.cjs +2 -0
- package/dist/chunk-ESUN2THE.cjs.map +1 -0
- package/dist/chunk-EVAOPEO4.js +2 -0
- package/dist/chunk-EVAOPEO4.js.map +1 -0
- package/dist/chunk-EYRBENHC.js +3 -0
- package/dist/chunk-EYRBENHC.js.map +1 -0
- package/dist/chunk-FDE5HWDI.cjs +2 -0
- package/dist/chunk-FDE5HWDI.cjs.map +1 -0
- package/dist/chunk-FWW3M36J.cjs +2 -0
- package/dist/chunk-FWW3M36J.cjs.map +1 -0
- package/dist/chunk-GOIQYUWV.js +2 -0
- package/dist/chunk-GOIQYUWV.js.map +1 -0
- package/dist/chunk-HFKDWQUL.js +2 -0
- package/dist/chunk-HFKDWQUL.js.map +1 -0
- package/dist/chunk-HLBYHXQD.cjs +3 -0
- package/dist/chunk-HLBYHXQD.cjs.map +1 -0
- package/dist/chunk-IANAMBJQ.cjs +2 -0
- package/dist/chunk-IANAMBJQ.cjs.map +1 -0
- package/dist/chunk-IJMNVBIS.js +2 -0
- package/dist/chunk-IJMNVBIS.js.map +1 -0
- package/dist/chunk-J4LZD4ZY.js +3 -0
- package/dist/chunk-J4LZD4ZY.js.map +1 -0
- package/dist/chunk-JAK3RAFA.cjs +2 -0
- package/dist/chunk-JAK3RAFA.cjs.map +1 -0
- package/dist/chunk-JFAJN3C2.cjs +2 -0
- package/dist/chunk-JFAJN3C2.cjs.map +1 -0
- package/dist/chunk-JPFCXLJV.js +2 -0
- package/dist/chunk-JPFCXLJV.js.map +1 -0
- package/dist/chunk-JSPKKNPQ.js +3 -0
- package/dist/chunk-JSPKKNPQ.js.map +1 -0
- package/dist/chunk-L3FPQSGN.js +2 -0
- package/dist/chunk-L3FPQSGN.js.map +1 -0
- package/dist/chunk-LR4E4A4W.cjs +2 -0
- package/dist/chunk-LR4E4A4W.cjs.map +1 -0
- package/dist/chunk-MIQBJGGR.js +2 -0
- package/dist/chunk-MIQBJGGR.js.map +1 -0
- package/dist/chunk-MPB7KUN5.js +3 -0
- package/dist/chunk-MPB7KUN5.js.map +1 -0
- package/dist/chunk-MSYX32PF.cjs +2 -0
- package/dist/chunk-MSYX32PF.cjs.map +1 -0
- package/dist/chunk-MVZUTETT.js +2 -0
- package/dist/chunk-MVZUTETT.js.map +1 -0
- package/dist/chunk-N7N7MPMK.cjs +2 -0
- package/dist/chunk-N7N7MPMK.cjs.map +1 -0
- package/dist/chunk-NGBBNL4K.cjs +1 -3
- package/dist/chunk-P6WPEUAJ.cjs +2 -0
- package/dist/chunk-P6WPEUAJ.cjs.map +1 -0
- package/dist/chunk-PS272DZJ.cjs +2 -0
- package/dist/chunk-PS272DZJ.cjs.map +1 -0
- package/dist/chunk-QXQE7X4S.js +2 -0
- package/dist/chunk-QXQE7X4S.js.map +1 -0
- package/dist/chunk-R2ENWQ76.js +2 -0
- package/dist/chunk-R2ENWQ76.js.map +1 -0
- package/dist/chunk-R2SZFJTT.cjs +2 -0
- package/dist/chunk-R2SZFJTT.cjs.map +1 -0
- package/dist/chunk-RAF57WYO.js +2 -0
- package/dist/chunk-RAF57WYO.js.map +1 -0
- package/dist/chunk-RSF25YSJ.js +2 -0
- package/dist/chunk-RSF25YSJ.js.map +1 -0
- package/dist/chunk-SOMGSIO4.cjs +3 -0
- package/dist/chunk-SOMGSIO4.cjs.map +1 -0
- package/dist/chunk-SUXRZWH2.cjs +3 -0
- package/dist/chunk-SUXRZWH2.cjs.map +1 -0
- package/dist/chunk-SYYE3QAX.cjs +2 -0
- package/dist/chunk-SYYE3QAX.cjs.map +1 -0
- package/dist/chunk-SZGK6RIP.cjs +2 -0
- package/dist/chunk-SZGK6RIP.cjs.map +1 -0
- package/dist/chunk-TCZSPH4A.js +2 -0
- package/dist/chunk-TCZSPH4A.js.map +1 -0
- package/dist/chunk-TLG7VZRX.cjs +2 -0
- package/dist/chunk-TLG7VZRX.cjs.map +1 -0
- package/dist/chunk-TRBXW6HW.js +2 -0
- package/dist/{chunk-AQNHHJMJ.cjs.map → chunk-TRBXW6HW.js.map} +1 -1
- package/dist/chunk-TTFO4YDP.cjs +2 -0
- package/dist/chunk-TTFO4YDP.cjs.map +1 -0
- package/dist/chunk-TWC7K3ZX.js +2 -0
- package/dist/chunk-TWC7K3ZX.js.map +1 -0
- package/dist/chunk-UDQ57ZRX.cjs +2 -0
- package/dist/chunk-UDQ57ZRX.cjs.map +1 -0
- package/dist/chunk-UI6IFGBT.js +2 -0
- package/dist/chunk-UI6IFGBT.js.map +1 -0
- package/dist/chunk-UURM7P3P.cjs +4 -0
- package/dist/chunk-UURM7P3P.cjs.map +1 -0
- package/dist/chunk-W2JAR233.js +2 -0
- package/dist/chunk-W2JAR233.js.map +1 -0
- package/dist/chunk-WGZ3FNHI.js +2 -0
- package/dist/chunk-WGZ3FNHI.js.map +1 -0
- package/dist/chunk-WN5CMP4T.cjs +3 -0
- package/dist/chunk-WN5CMP4T.cjs.map +1 -0
- package/dist/chunk-XEIDV5JP.js +2 -0
- package/dist/chunk-XEIDV5JP.js.map +1 -0
- package/dist/chunk-XNIWQHXY.js +2 -0
- package/dist/chunk-XNIWQHXY.js.map +1 -0
- package/dist/chunk-XR7HEC7B.js +5 -0
- package/dist/chunk-XR7HEC7B.js.map +1 -0
- package/dist/chunk-Y7O4D3BJ.cjs +2 -0
- package/dist/chunk-Y7O4D3BJ.cjs.map +1 -0
- package/dist/chunk-YAYBVVG2.js +3 -0
- package/dist/chunk-YAYBVVG2.js.map +1 -0
- package/dist/chunk-YJ2OPULK.js +2 -0
- package/dist/chunk-YJ2OPULK.js.map +1 -0
- package/dist/chunk-YVKHEAFT.js +2 -0
- package/dist/chunk-YVKHEAFT.js.map +1 -0
- package/dist/chunk-ZCNBT44X.cjs +2 -0
- package/dist/chunk-ZCNBT44X.cjs.map +1 -0
- package/dist/chunk-ZLRJ7TDP.cjs +2 -0
- package/dist/chunk-ZLRJ7TDP.cjs.map +1 -0
- package/dist/constants.cjs +1 -21
- package/dist/constants.d.cts +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -4
- package/dist/engine.cjs +1 -94
- package/dist/engine.d.cts +29 -14
- package/dist/engine.d.ts +29 -14
- package/dist/engine.js +1 -37
- package/dist/errors.cjs +1 -105
- package/dist/errors.d.cts +3 -3
- package/dist/errors.d.ts +3 -3
- package/dist/errors.js +1 -4
- package/dist/format.cjs +1 -26
- package/dist/format.d.cts +2 -2
- package/dist/format.d.ts +2 -2
- package/dist/format.js +1 -9
- package/dist/index.cjs +1 -314
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +55 -23
- package/dist/index.d.ts +55 -23
- package/dist/index.js +1 -278
- package/dist/index.js.map +1 -1
- package/dist/language.cjs +1 -369
- package/dist/language.cjs.map +1 -1
- package/dist/language.d.cts +12 -13
- package/dist/language.d.ts +12 -13
- package/dist/language.js +1 -348
- package/dist/language.js.map +1 -1
- package/dist/lexer.cjs +1 -63
- package/dist/lexer.d.cts +3 -3
- package/dist/lexer.d.ts +3 -3
- package/dist/lexer.js +1 -10
- package/dist/normalizer.cjs +1 -39
- package/dist/normalizer.d.cts +3 -3
- package/dist/normalizer.d.ts +3 -3
- package/dist/normalizer.js +1 -10
- package/dist/packages.cjs +1 -128
- package/dist/packages.d.cts +39 -14
- package/dist/packages.d.ts +39 -14
- package/dist/packages.js +1 -23
- package/dist/parser.cjs +1 -54
- package/dist/parser.d.cts +9 -9
- package/dist/parser.d.ts +9 -9
- package/dist/parser.js +1 -9
- package/dist/{pipeline-CtfJtPQc.d.cts → pipeline-72QmQlGx.d.ts} +3 -3
- package/dist/{pipeline-DCd5M6Gk.d.ts → pipeline-DCQicwWX.d.cts} +3 -3
- package/dist/resolvers.cjs +1 -12
- package/dist/resolvers.d.cts +3 -3
- package/dist/resolvers.d.ts +3 -3
- package/dist/resolvers.js +1 -3
- package/dist/services.cjs +1 -20
- package/dist/services.js +1 -3
- package/dist/testing.cjs +3 -477
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +12 -13
- package/dist/testing.d.ts +12 -13
- package/dist/testing.js +3 -469
- package/dist/testing.js.map +1 -1
- package/dist/uom.cjs +1 -55
- package/dist/uom.d.cts +3 -3
- package/dist/uom.d.ts +3 -3
- package/dist/uom.js +1 -10
- package/dist/utilities.cjs +1 -36
- package/dist/utilities.js +1 -7
- package/dist/vm.cjs +1 -295
- package/dist/vm.cjs.map +1 -1
- package/dist/vm.d.cts +22 -10
- package/dist/vm.d.ts +22 -10
- package/dist/vm.js +1 -193
- package/dist/vm.js.map +1 -1
- package/dist/worker.cjs +2 -492
- package/dist/worker.cjs.map +1 -1
- package/dist/worker.d.cts +19 -20
- package/dist/worker.d.ts +19 -20
- package/dist/worker.js +2 -483
- package/dist/worker.js.map +1 -1
- package/package.json +1 -13
- package/dist/chunk-267JPOTF.js +0 -406
- package/dist/chunk-267JPOTF.js.map +0 -1
- package/dist/chunk-2TZKENDH.cjs +0 -448
- package/dist/chunk-2TZKENDH.cjs.map +0 -1
- package/dist/chunk-3BOK2LDK.js +0 -17
- package/dist/chunk-3BOK2LDK.js.map +0 -1
- package/dist/chunk-3OWCDIPN.js +0 -215
- package/dist/chunk-3OWCDIPN.js.map +0 -1
- package/dist/chunk-3VGDNEE3.js +0 -84
- package/dist/chunk-3VGDNEE3.js.map +0 -1
- package/dist/chunk-4D6NIHE2.js +0 -451
- package/dist/chunk-4D6NIHE2.js.map +0 -1
- package/dist/chunk-4HQKTMWG.js +0 -7985
- package/dist/chunk-4HQKTMWG.js.map +0 -1
- package/dist/chunk-536WPM2V.cjs +0 -283
- package/dist/chunk-536WPM2V.cjs.map +0 -1
- package/dist/chunk-5HRB36DK.js +0 -405
- package/dist/chunk-5HRB36DK.js.map +0 -1
- package/dist/chunk-5ON7PUAZ.js +0 -12
- package/dist/chunk-5ON7PUAZ.js.map +0 -1
- package/dist/chunk-7KYSUDQO.js +0 -109
- package/dist/chunk-7KYSUDQO.js.map +0 -1
- package/dist/chunk-7ZX6B7SY.cjs +0 -3222
- package/dist/chunk-7ZX6B7SY.cjs.map +0 -1
- package/dist/chunk-ADBA3XBE.cjs +0 -20
- package/dist/chunk-ADBA3XBE.cjs.map +0 -1
- package/dist/chunk-ALYRJ72W.cjs +0 -434
- package/dist/chunk-ALYRJ72W.cjs.map +0 -1
- package/dist/chunk-AMOJYLG2.cjs +0 -1692
- package/dist/chunk-AMOJYLG2.cjs.map +0 -1
- package/dist/chunk-AQNHHJMJ.cjs +0 -261
- package/dist/chunk-B4HBEFTB.cjs +0 -375
- package/dist/chunk-B4HBEFTB.cjs.map +0 -1
- package/dist/chunk-B7LXJ6LC.cjs +0 -36
- package/dist/chunk-B7LXJ6LC.cjs.map +0 -1
- package/dist/chunk-B7NLZMQ3.cjs +0 -74
- package/dist/chunk-B7NLZMQ3.cjs.map +0 -1
- package/dist/chunk-BLI4NIQY.js +0 -98
- package/dist/chunk-BLI4NIQY.js.map +0 -1
- package/dist/chunk-BYJBUL7U.js +0 -499
- package/dist/chunk-BYJBUL7U.js.map +0 -1
- package/dist/chunk-CCBZZQAE.js +0 -312
- package/dist/chunk-CCBZZQAE.js.map +0 -1
- package/dist/chunk-CKQMXMHR.cjs +0 -219
- package/dist/chunk-CKQMXMHR.cjs.map +0 -1
- package/dist/chunk-CUR2WLI4.cjs +0 -507
- package/dist/chunk-CUR2WLI4.cjs.map +0 -1
- package/dist/chunk-DLEBSLF4.js +0 -336
- package/dist/chunk-DLEBSLF4.js.map +0 -1
- package/dist/chunk-E23GZEWL.cjs +0 -209
- package/dist/chunk-E23GZEWL.cjs.map +0 -1
- package/dist/chunk-EJ3ILXX6.cjs +0 -223
- package/dist/chunk-EJ3ILXX6.cjs.map +0 -1
- package/dist/chunk-ENKKJYD3.js +0 -333
- package/dist/chunk-ENKKJYD3.js.map +0 -1
- package/dist/chunk-ENRIK36Q.cjs +0 -94
- package/dist/chunk-ENRIK36Q.cjs.map +0 -1
- package/dist/chunk-ERCOHGXD.js +0 -356
- package/dist/chunk-ERCOHGXD.js.map +0 -1
- package/dist/chunk-FD5ZZHEU.js +0 -92
- package/dist/chunk-FD5ZZHEU.js.map +0 -1
- package/dist/chunk-FEAIOR7N.cjs +0 -91
- package/dist/chunk-FEAIOR7N.cjs.map +0 -1
- package/dist/chunk-GCM5JHMX.js +0 -88
- package/dist/chunk-GCM5JHMX.js.map +0 -1
- package/dist/chunk-GLA4JXBO.js +0 -204
- package/dist/chunk-GLA4JXBO.js.map +0 -1
- package/dist/chunk-HIQ5HSZL.cjs +0 -1923
- package/dist/chunk-HIQ5HSZL.cjs.map +0 -1
- package/dist/chunk-HVRVSI2Z.cjs +0 -829
- package/dist/chunk-HVRVSI2Z.cjs.map +0 -1
- package/dist/chunk-I4GAWIPW.js +0 -825
- package/dist/chunk-I4GAWIPW.js.map +0 -1
- package/dist/chunk-J45BCEZ4.cjs +0 -339
- package/dist/chunk-J45BCEZ4.cjs.map +0 -1
- package/dist/chunk-JG6ZJ2WU.js +0 -1513
- package/dist/chunk-JG6ZJ2WU.js.map +0 -1
- package/dist/chunk-L2TE7PMO.cjs +0 -14
- package/dist/chunk-L2TE7PMO.cjs.map +0 -1
- package/dist/chunk-LHZ6VOA7.js +0 -1764
- package/dist/chunk-LHZ6VOA7.js.map +0 -1
- package/dist/chunk-MN3LHRGV.cjs +0 -8012
- package/dist/chunk-MN3LHRGV.cjs.map +0 -1
- package/dist/chunk-MVTOCRV2.js +0 -213
- package/dist/chunk-MVTOCRV2.js.map +0 -1
- package/dist/chunk-N5NNW4VG.cjs +0 -341
- package/dist/chunk-N5NNW4VG.cjs.map +0 -1
- package/dist/chunk-N7FNVFXW.cjs +0 -32
- package/dist/chunk-N7FNVFXW.cjs.map +0 -1
- package/dist/chunk-NKW7LKYU.js +0 -3185
- package/dist/chunk-NKW7LKYU.js.map +0 -1
- package/dist/chunk-NLNDMWZC.js +0 -31
- package/dist/chunk-NLNDMWZC.js.map +0 -1
- package/dist/chunk-NNQ2TYDF.js +0 -1848
- package/dist/chunk-NNQ2TYDF.js.map +0 -1
- package/dist/chunk-NNZAEUDW.js +0 -6792
- package/dist/chunk-NNZAEUDW.js.map +0 -1
- package/dist/chunk-OUHT5Z36.cjs +0 -393
- package/dist/chunk-OUHT5Z36.cjs.map +0 -1
- package/dist/chunk-QFTDTX6K.cjs +0 -457
- package/dist/chunk-QFTDTX6K.cjs.map +0 -1
- package/dist/chunk-SBUFNJVE.js +0 -258
- package/dist/chunk-SBUFNJVE.js.map +0 -1
- package/dist/chunk-SRGQ72IR.cjs +0 -2800
- package/dist/chunk-SRGQ72IR.cjs.map +0 -1
- package/dist/chunk-SSV46KFA.cjs +0 -112
- package/dist/chunk-SSV46KFA.cjs.map +0 -1
- package/dist/chunk-T6ZYQJ63.cjs +0 -6807
- package/dist/chunk-T6ZYQJ63.cjs.map +0 -1
- package/dist/chunk-UKQHXPGW.js +0 -30
- package/dist/chunk-UKQHXPGW.js.map +0 -1
- package/dist/chunk-UO6BUV6K.js +0 -278
- package/dist/chunk-UO6BUV6K.js.map +0 -1
- package/dist/chunk-V4XG5QF6.js +0 -1685
- package/dist/chunk-V4XG5QF6.js.map +0 -1
- package/dist/chunk-VEKIWQ3F.cjs +0 -39
- package/dist/chunk-VEKIWQ3F.cjs.map +0 -1
- package/dist/chunk-WWQEY7BV.js +0 -67
- package/dist/chunk-WWQEY7BV.js.map +0 -1
- package/dist/chunk-WXEHD6TT.js +0 -2795
- package/dist/chunk-WXEHD6TT.js.map +0 -1
- package/dist/chunk-X6K3HUOY.cjs +0 -86
- package/dist/chunk-X6K3HUOY.cjs.map +0 -1
- package/dist/chunk-XA4CKRML.cjs +0 -316
- package/dist/chunk-XA4CKRML.cjs.map +0 -1
- package/dist/chunk-XBTEO4OB.js +0 -391
- package/dist/chunk-XBTEO4OB.js.map +0 -1
- package/dist/chunk-XIYYHA65.cjs +0 -101
- package/dist/chunk-XIYYHA65.cjs.map +0 -1
- package/dist/chunk-YLJ4XMA6.js +0 -33
- package/dist/chunk-YLJ4XMA6.js.map +0 -1
- package/dist/chunk-YRIKITGF.cjs +0 -1768
- package/dist/chunk-YRIKITGF.cjs.map +0 -1
- package/dist/chunk-Z2XP767T.cjs +0 -35
- package/dist/chunk-Z2XP767T.cjs.map +0 -1
- package/dist/chunk-Z4X2RWOF.js +0 -37
- package/dist/chunk-Z4X2RWOF.js.map +0 -1
- package/dist/chunk-Z7XGGLI2.js +0 -455
- package/dist/chunk-Z7XGGLI2.js.map +0 -1
- package/dist/chunk-ZMW6NU2K.cjs +0 -1516
- package/dist/chunk-ZMW6NU2K.cjs.map +0 -1
- package/dist/chunk-ZVTWQLK4.cjs +0 -459
- package/dist/chunk-ZVTWQLK4.cjs.map +0 -1
- package/dist/variables.cjs +0 -17
- package/dist/variables.cjs.map +0 -1
- package/dist/variables.d.cts +0 -87
- package/dist/variables.d.ts +0 -87
- package/dist/variables.js +0 -4
- 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 {
|
|
47
|
+
import { createEngine } from "solve-engine";
|
|
48
48
|
|
|
49
|
-
const engine =
|
|
50
|
-
const
|
|
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 =
|
|
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
|
|
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`, `
|
|
108
|
-
| `solve-engine/engine` | `ExpressionEngine` and its supporting types (`
|
|
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,
|
|
140
|
-
|
|
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
|
|
215
|
-
|
|
216
|
-
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
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(
|
|
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
|
|
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 { I as IEnginePackage } from './PackageRegistry-
|
|
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" | "
|
|
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-
|
|
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" | "
|
|
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;
|