@logixjs/core 0.0.1 → 1.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/LICENSE +201 -0
- package/dist/{Action-mqVvtEHt.d.ts → Action-DYl88bwj.d.ts} +1 -1
- package/dist/{Action-BkRHy2vg.d.cts → Action-DkxsI_DK.d.cts} +1 -1
- package/dist/Action.cjs.map +1 -1
- package/dist/Action.d.cts +1 -1
- package/dist/Action.d.ts +1 -1
- package/dist/Action.js +2 -2
- package/dist/{Actions-AsQ07yTP.d.cts → Actions-Dicm7jdc.d.cts} +2 -2
- package/dist/{Actions-AsQ07yTP.d.ts → Actions-Dicm7jdc.d.ts} +2 -2
- package/dist/Actions.cjs.map +1 -1
- package/dist/Actions.d.cts +1 -1
- package/dist/Actions.d.ts +1 -1
- package/dist/Actions.js +1 -1
- package/dist/{Bound-BN1DQ_lM.d.ts → Bound-1OJLzVIS.d.ts} +2 -2
- package/dist/{Bound-BPIfH9SS.d.cts → Bound-BMLrtQ1V.d.cts} +2 -2
- package/dist/Bound.cjs +1737 -399
- package/dist/Bound.cjs.map +1 -1
- package/dist/Bound.d.cts +5 -5
- package/dist/Bound.d.ts +5 -5
- package/dist/Bound.js +19 -17
- package/dist/{Debug-B5q5Bkzx.d.ts → Debug-DKrWP5H1.d.ts} +40 -22
- package/dist/{Debug-Bq8Sqjcr.d.cts → Debug-hIT44XsY.d.cts} +40 -22
- package/dist/Debug.cjs +1348 -318
- package/dist/Debug.cjs.map +1 -1
- package/dist/Debug.d.cts +12 -11
- package/dist/Debug.d.ts +12 -11
- package/dist/Debug.js +20 -11
- package/dist/EffectOp.cjs +15 -6
- package/dist/EffectOp.cjs.map +1 -1
- package/dist/EffectOp.js +3 -3
- package/dist/Env.cjs +772 -6
- package/dist/Env.cjs.map +1 -1
- package/dist/Env.js +5 -2
- package/dist/ExternalStore-DqJKKRJ4.d.ts +61 -0
- package/dist/ExternalStore-JC-gAgEI.d.cts +61 -0
- package/dist/ExternalStore.cjs +774 -0
- package/dist/ExternalStore.cjs.map +1 -0
- package/dist/ExternalStore.d.cts +8 -0
- package/dist/ExternalStore.d.ts +8 -0
- package/dist/ExternalStore.js +19 -0
- package/dist/ExternalStore.js.map +1 -0
- package/dist/{Flow-BhpjE22E.d.ts → Flow-CZmXRDqp.d.cts} +13 -4
- package/dist/{Flow-1fZT8MpX.d.cts → Flow-DIVDxz7R.d.ts} +13 -4
- package/dist/Flow.cjs +765 -148
- package/dist/Flow.cjs.map +1 -1
- package/dist/Flow.d.cts +6 -6
- package/dist/Flow.d.ts +6 -6
- package/dist/Flow.js +9 -8
- package/dist/{Handle-D_cLW1Z3.d.ts → Handle-Bo6cAFut.d.ts} +1 -1
- package/dist/{Handle-D8D1zPb_.d.cts → Handle-CfDvSqN7.d.cts} +1 -1
- package/dist/Handle.d.cts +5 -5
- package/dist/Handle.d.ts +5 -5
- package/dist/{Kernel-8kC-jOda.d.cts → Kernel-CuXBF9S_.d.cts} +16 -7
- package/dist/{Kernel-CnGE1Fyk.d.ts → Kernel-D9guNwRL.d.ts} +16 -7
- package/dist/Kernel.cjs +814 -26
- package/dist/Kernel.cjs.map +1 -1
- package/dist/Kernel.d.cts +13 -12
- package/dist/Kernel.d.ts +13 -12
- package/dist/Kernel.js +7 -4
- package/dist/{Link-Db7975nU.d.ts → Link-CUM0yUCH.d.ts} +10 -3
- package/dist/{Link-fX8x1eCK.d.cts → Link-NAfR6uGD.d.cts} +10 -3
- package/dist/Link.cjs +1294 -121
- package/dist/Link.cjs.map +1 -1
- package/dist/Link.d.cts +5 -5
- package/dist/Link.d.ts +5 -5
- package/dist/Link.js +37 -29
- package/dist/{Logic-DRh4sDZj.d.cts → Logic-09VQpIj3.d.cts} +7 -4
- package/dist/{Logic-BRjEMr-W.d.ts → Logic-DKg7ghGy.d.ts} +7 -4
- package/dist/Logic.cjs +2 -1
- package/dist/Logic.cjs.map +1 -1
- package/dist/Logic.d.cts +5 -5
- package/dist/Logic.d.ts +5 -5
- package/dist/Logic.js +1 -1
- package/dist/{MatchBuilder-CJk5oCkR.d.cts → MatchBuilder-CsW5jgrL.d.ts} +1 -1
- package/dist/{MatchBuilder-0QOc-nlU.d.ts → MatchBuilder-Dksk07F4.d.cts} +1 -1
- package/dist/MatchBuilder.cjs +2 -2
- package/dist/MatchBuilder.cjs.map +1 -1
- package/dist/MatchBuilder.d.cts +6 -6
- package/dist/MatchBuilder.d.ts +6 -6
- package/dist/MatchBuilder.js +2 -2
- package/dist/Middleware-D8tUDLv_.d.cts +100 -0
- package/dist/Middleware-DS7CbTTN.d.ts +100 -0
- package/dist/Middleware.cjs +678 -58
- package/dist/Middleware.cjs.map +1 -1
- package/dist/Middleware.d.cts +2 -86
- package/dist/Middleware.d.ts +2 -86
- package/dist/Middleware.js +15 -12
- package/dist/{Module-DnzluX2J.d.ts → Module-B_Cntyms.d.ts} +54 -25
- package/dist/{Module-B_0xRDMR.d.cts → Module-CmNOVXzf.d.cts} +54 -25
- package/dist/Module.cjs +9331 -3317
- package/dist/Module.cjs.map +1 -1
- package/dist/Module.d.cts +7 -6
- package/dist/Module.d.ts +7 -6
- package/dist/Module.js +39 -31
- package/dist/ModuleTag-CGho_InD.d.ts +113 -0
- package/dist/ModuleTag-CITb8L_G.d.cts +113 -0
- package/dist/ModuleTag.cjs +7248 -2847
- package/dist/ModuleTag.cjs.map +1 -1
- package/dist/ModuleTag.d.cts +6 -6
- package/dist/ModuleTag.d.ts +6 -6
- package/dist/ModuleTag.js +35 -29
- package/dist/Observability-Bdhnx2Dv.d.ts +385 -0
- package/dist/Observability-DXGAFBIT.d.cts +385 -0
- package/dist/Observability.cjs +5093 -1556
- package/dist/Observability.cjs.map +1 -1
- package/dist/Observability.d.cts +6 -7
- package/dist/Observability.d.ts +6 -7
- package/dist/Observability.js +28 -23
- package/dist/{Platform-CHX8o-U4.d.ts → Platform-B4s8tg6C.d.cts} +4 -5
- package/dist/{Platform-C49Pv956.d.cts → Platform-BV_0MW7g.d.cts} +5 -2
- package/dist/{Platform-C49Pv956.d.ts → Platform-BV_0MW7g.d.ts} +5 -2
- package/dist/{Platform-CVlv0xLQ.d.cts → Platform-W0Mefy_e.d.ts} +4 -5
- package/dist/Platform.cjs +2 -1
- package/dist/Platform.cjs.map +1 -1
- package/dist/Platform.d.cts +2 -3
- package/dist/Platform.d.ts +2 -3
- package/dist/Platform.js +2 -2
- package/dist/{Process-CM9xbMdP.d.ts → Process-CO8G7HO9.d.cts} +30 -5
- package/dist/{Process-mL8fHDSB.d.cts → Process-Cyf6VNDR.d.ts} +30 -5
- package/dist/Process.cjs +1288 -120
- package/dist/Process.cjs.map +1 -1
- package/dist/Process.d.cts +6 -6
- package/dist/Process.d.ts +6 -6
- package/dist/Process.js +34 -26
- package/dist/ReadQuery-C_or5nLC.d.ts +128 -0
- package/dist/ReadQuery-DXLzCE0E.d.cts +614 -0
- package/dist/ReadQuery-DXLzCE0E.d.ts +614 -0
- package/dist/ReadQuery-Yve1lmUo.d.cts +128 -0
- package/dist/ReadQuery.cjs +290 -5
- package/dist/ReadQuery.cjs.map +1 -1
- package/dist/ReadQuery.d.cts +3 -2
- package/dist/ReadQuery.d.ts +3 -2
- package/dist/ReadQuery.js +23 -5
- package/dist/{Reflection-CQnKwPXj.d.ts → Reflection-B2Xi1e4Q.d.ts} +89 -7
- package/dist/{Reflection-Kabo1mlU.d.cts → Reflection-DNB4V4_e.d.cts} +89 -7
- package/dist/Reflection.cjs +3227 -1617
- package/dist/Reflection.cjs.map +1 -1
- package/dist/Reflection.d.cts +17 -15
- package/dist/Reflection.d.ts +17 -15
- package/dist/Reflection.js +33 -25
- package/dist/{Resource-Dy1xD_DG.d.cts → Resource-pKvQQ4x5.d.cts} +3 -3
- package/dist/{Resource-Dy1xD_DG.d.ts → Resource-pKvQQ4x5.d.ts} +3 -3
- package/dist/Resource.cjs +781 -15
- package/dist/Resource.cjs.map +1 -1
- package/dist/Resource.d.cts +1 -1
- package/dist/Resource.d.ts +1 -1
- package/dist/Resource.js +6 -3
- package/dist/{Root-7ADUMk4t.d.cts → Root-CCVuFHB6.d.cts} +3 -3
- package/dist/{Root-7ADUMk4t.d.ts → Root-CCVuFHB6.d.ts} +3 -3
- package/dist/Root.cjs +786 -20
- package/dist/Root.cjs.map +1 -1
- package/dist/Root.d.cts +2 -2
- package/dist/Root.d.ts +2 -2
- package/dist/Root.js +7 -3
- package/dist/{Runtime-CtyzZG4i.d.ts → Runtime-CRmvwK4I.d.ts} +70 -14
- package/dist/{Runtime-B-aL-f29.d.cts → Runtime-C_wJM9mN.d.cts} +70 -14
- package/dist/Runtime.cjs +4942 -1601
- package/dist/Runtime.cjs.map +1 -1
- package/dist/Runtime.d.cts +17 -15
- package/dist/Runtime.d.ts +17 -15
- package/dist/Runtime.js +44 -32
- package/dist/{ScopeRegistry-D1owDNSm.d.cts → ScopeRegistry-BhYzqWri.d.cts} +6 -6
- package/dist/{ScopeRegistry-D1owDNSm.d.ts → ScopeRegistry-BhYzqWri.d.ts} +6 -6
- package/dist/ScopeRegistry.cjs +776 -10
- package/dist/ScopeRegistry.cjs.map +1 -1
- package/dist/ScopeRegistry.d.cts +1 -1
- package/dist/ScopeRegistry.d.ts +1 -1
- package/dist/ScopeRegistry.js +6 -3
- package/dist/{State-CU50R26M.d.cts → State-rNFsFPTl.d.cts} +2 -2
- package/dist/{State-CU50R26M.d.ts → State-rNFsFPTl.d.ts} +2 -2
- package/dist/State.cjs.map +1 -1
- package/dist/State.d.cts +1 -1
- package/dist/State.d.ts +1 -1
- package/dist/State.js +1 -1
- package/dist/{StateTrait-BGsZghTz.d.ts → StateTrait-CijdwNb6.d.ts} +25 -8
- package/dist/{StateTrait-OWhbj12c.d.cts → StateTrait-Dltto6PU.d.cts} +25 -8
- package/dist/StateTrait.cjs +1890 -528
- package/dist/StateTrait.cjs.map +1 -1
- package/dist/StateTrait.d.cts +9 -7
- package/dist/StateTrait.d.ts +9 -7
- package/dist/StateTrait.js +18 -14
- package/dist/{TraitLifecycle-CwV5WPFX.d.cts → TraitLifecycle-BKzDqzLu.d.cts} +2 -2
- package/dist/{TraitLifecycle-LdIWmKlg.d.ts → TraitLifecycle-Cvo94uDB.d.ts} +2 -2
- package/dist/TraitLifecycle.cjs +630 -67
- package/dist/TraitLifecycle.cjs.map +1 -1
- package/dist/TraitLifecycle.d.cts +6 -6
- package/dist/TraitLifecycle.d.ts +6 -6
- package/dist/TraitLifecycle.js +8 -7
- package/dist/Workflow-C_OWr4dV.d.ts +415 -0
- package/dist/Workflow-DmydkHO8.d.cts +415 -0
- package/dist/Workflow.cjs +3150 -0
- package/dist/Workflow.cjs.map +1 -0
- package/dist/Workflow.d.cts +7 -0
- package/dist/Workflow.d.ts +7 -0
- package/dist/Workflow.js +58 -0
- package/dist/Workflow.js.map +1 -0
- package/dist/{action-DiMDD_0v.d.cts → action-BQxjPFEw.d.cts} +5 -5
- package/dist/{action-DiMDD_0v.d.ts → action-BQxjPFEw.d.ts} +5 -5
- package/dist/chunk-2XRLXDWR.js +276 -0
- package/dist/chunk-2XRLXDWR.js.map +1 -0
- package/dist/chunk-3L6QGFMM.js +701 -0
- package/dist/chunk-3L6QGFMM.js.map +1 -0
- package/dist/{chunk-GMPEOUP2.js → chunk-4MZ7BT3R.js} +2 -2
- package/dist/chunk-4MZ7BT3R.js.map +1 -0
- package/dist/{chunk-3IYZ5IGG.js → chunk-5WKUGEBY.js} +2 -2
- package/dist/{chunk-3RMKLXHX.js → chunk-63ZQ5RIN.js} +2 -2
- package/dist/{chunk-M3WTHJHJ.js → chunk-67DIEA53.js} +385 -148
- package/dist/chunk-67DIEA53.js.map +1 -0
- package/dist/{chunk-YS3AZQ2G.js → chunk-6HFAW2MH.js} +1 -1
- package/dist/chunk-6HFAW2MH.js.map +1 -0
- package/dist/{chunk-EY4NZKDR.js → chunk-6Y2TKCNY.js} +2 -2
- package/dist/{chunk-76WT3HOR.js → chunk-6YZOXFPQ.js} +25 -24
- package/dist/chunk-6YZOXFPQ.js.map +1 -0
- package/dist/{chunk-G5ZBFPNU.js → chunk-A2RQOJC7.js} +2 -2
- package/dist/{chunk-AUIR5O6W.js → chunk-AFSB6NKM.js} +13 -19
- package/dist/chunk-AFSB6NKM.js.map +1 -0
- package/dist/{chunk-JCXGZRMU.js → chunk-AO4JEOKD.js} +22 -23
- package/dist/chunk-AO4JEOKD.js.map +1 -0
- package/dist/{chunk-TAAPQVZN.js → chunk-AYELIQXR.js} +2 -2
- package/dist/{chunk-QMM6O4CD.js → chunk-BLHZW7DG.js} +15 -3
- package/dist/{chunk-QMM6O4CD.js.map → chunk-BLHZW7DG.js.map} +1 -1
- package/dist/{chunk-TQOBJYDP.js → chunk-CD4N74YC.js} +1 -1
- package/dist/chunk-CD4N74YC.js.map +1 -0
- package/dist/{chunk-ANLBCBDC.js → chunk-CGE2HBTH.js} +11 -11
- package/dist/chunk-CGE2HBTH.js.map +1 -0
- package/dist/{chunk-OFADUJWJ.js → chunk-CYYSQMLO.js} +5 -5
- package/dist/chunk-CYYSQMLO.js.map +1 -0
- package/dist/{chunk-66ALHVEX.js → chunk-EB46EYI7.js} +3 -3
- package/dist/{chunk-NZJKFF45.js → chunk-EKCDHWRK.js} +4 -4
- package/dist/chunk-EKCDHWRK.js.map +1 -0
- package/dist/{chunk-BABLDP24.js → chunk-EPQFNJU3.js} +152 -7
- package/dist/chunk-EPQFNJU3.js.map +1 -0
- package/dist/{chunk-OGWBVHB3.js → chunk-ESR6HGOY.js} +73 -14
- package/dist/chunk-ESR6HGOY.js.map +1 -0
- package/dist/{chunk-NBD3KUOZ.js → chunk-F6RP62H3.js} +150 -98
- package/dist/chunk-F6RP62H3.js.map +1 -0
- package/dist/chunk-FBYW3QDI.js +252 -0
- package/dist/chunk-FBYW3QDI.js.map +1 -0
- package/dist/{chunk-IPF7E66P.js → chunk-FYAODKVP.js} +2 -2
- package/dist/chunk-GNEN7NKO.js +908 -0
- package/dist/chunk-GNEN7NKO.js.map +1 -0
- package/dist/chunk-GWSM4KLB.js +763 -0
- package/dist/chunk-GWSM4KLB.js.map +1 -0
- package/dist/{chunk-4SO6JMZL.js → chunk-HDMXCUZL.js} +1 -1
- package/dist/chunk-HDMXCUZL.js.map +1 -0
- package/dist/{chunk-ZFY7U2FR.js → chunk-HJM5Y5NU.js} +43 -3
- package/dist/chunk-HJM5Y5NU.js.map +1 -0
- package/dist/{chunk-ZGDVUPTM.js → chunk-IOZ3VKPK.js} +129 -68
- package/dist/chunk-IOZ3VKPK.js.map +1 -0
- package/dist/{chunk-PYOE4VSI.js → chunk-IVXSVHO4.js} +303 -247
- package/dist/chunk-IVXSVHO4.js.map +1 -0
- package/dist/chunk-J3CWXIPV.js +242 -0
- package/dist/chunk-J3CWXIPV.js.map +1 -0
- package/dist/chunk-K6JQW266.js +42 -0
- package/dist/chunk-K6JQW266.js.map +1 -0
- package/dist/chunk-KMZYQF6Q.js +202 -0
- package/dist/chunk-KMZYQF6Q.js.map +1 -0
- package/dist/{chunk-JWOYLO27.js → chunk-LPPZDFTD.js} +22 -12
- package/dist/chunk-LPPZDFTD.js.map +1 -0
- package/dist/{chunk-PAYXCY6A.js → chunk-MYB2B5WX.js} +997 -576
- package/dist/chunk-MYB2B5WX.js.map +1 -0
- package/dist/chunk-MYKNINNN.js +228 -0
- package/dist/chunk-MYKNINNN.js.map +1 -0
- package/dist/chunk-NSQIRMVF.js +27 -0
- package/dist/{chunk-QCHIQWAJ.js.map → chunk-NSQIRMVF.js.map} +1 -1
- package/dist/chunk-NUDBM4MM.js +30 -0
- package/dist/chunk-NUDBM4MM.js.map +1 -0
- package/dist/chunk-NZMWWDAY.js +23 -0
- package/dist/chunk-NZMWWDAY.js.map +1 -0
- package/dist/{chunk-RNFE3ML2.js → chunk-OCUV2Y25.js} +4 -3
- package/dist/chunk-OCUV2Y25.js.map +1 -0
- package/dist/chunk-P4ZJOQA7.js +271 -0
- package/dist/chunk-P4ZJOQA7.js.map +1 -0
- package/dist/chunk-P6C5EZ3D.js +342 -0
- package/dist/chunk-P6C5EZ3D.js.map +1 -0
- package/dist/{chunk-CW6T36TN.js → chunk-PBD7BJUN.js} +62 -4
- package/dist/chunk-PBD7BJUN.js.map +1 -0
- package/dist/chunk-PBIUCQY3.js +696 -0
- package/dist/chunk-PBIUCQY3.js.map +1 -0
- package/dist/chunk-PD6YECQH.js +845 -0
- package/dist/chunk-PD6YECQH.js.map +1 -0
- package/dist/{chunk-M7IYCTJV.js → chunk-R4LFQGP3.js} +2 -2
- package/dist/chunk-RHJIGDUE.js +21 -0
- package/dist/chunk-RHJIGDUE.js.map +1 -0
- package/dist/{chunk-KP7MUZNX.js → chunk-RLXO27MW.js} +30 -8
- package/dist/chunk-RLXO27MW.js.map +1 -0
- package/dist/{chunk-DFNM3WX2.js → chunk-S44BEV4B.js} +168 -45
- package/dist/chunk-S44BEV4B.js.map +1 -0
- package/dist/chunk-S4S5N4BJ.js +1461 -0
- package/dist/chunk-S4S5N4BJ.js.map +1 -0
- package/dist/{chunk-BZ2SHDN2.js → chunk-SGTRAXXX.js} +3 -3
- package/dist/chunk-SGTRAXXX.js.map +1 -0
- package/dist/{chunk-M2RGJPXX.js → chunk-SJAE5PB5.js} +3 -3
- package/dist/{chunk-JGIWG6SR.js → chunk-SNPNHU3H.js} +3937 -1776
- package/dist/chunk-SNPNHU3H.js.map +1 -0
- package/dist/{chunk-IHVBV5C2.js → chunk-SOOBFXRR.js} +94 -71
- package/dist/chunk-SOOBFXRR.js.map +1 -0
- package/dist/{chunk-ZDTRWK5F.js → chunk-TAHFWKS6.js} +2 -2
- package/dist/chunk-UEFFTVPY.js +9 -0
- package/dist/chunk-UEFFTVPY.js.map +1 -0
- package/dist/{chunk-24VULZ7A.js → chunk-UR5BXLBP.js} +3 -3
- package/dist/chunk-UR5BXLBP.js.map +1 -0
- package/dist/{chunk-DMBALCE2.js → chunk-V2SBGVDO.js} +471 -186
- package/dist/chunk-V2SBGVDO.js.map +1 -0
- package/dist/chunk-VJLWD47W.js +23 -0
- package/dist/chunk-VJLWD47W.js.map +1 -0
- package/dist/{chunk-4CQAV7YB.js → chunk-W647DX5Z.js} +2 -2
- package/dist/{chunk-THATMZXD.js → chunk-WFIIU3YZ.js} +2 -2
- package/dist/{chunk-THATMZXD.js.map → chunk-WFIIU3YZ.js.map} +1 -1
- package/dist/chunk-YZDJMAKL.js +82 -0
- package/dist/chunk-YZDJMAKL.js.map +1 -0
- package/dist/{chunk-3TMODYZV.js → chunk-Z5XH6VHY.js} +5 -5
- package/dist/chunk-Z5XH6VHY.js.map +1 -0
- package/dist/{chunk-BE3HW4FY.js → chunk-ZBBMZMA6.js} +377 -170
- package/dist/chunk-ZBBMZMA6.js.map +1 -0
- package/dist/index.cjs +21224 -11714
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +195 -49
- package/dist/index.d.ts +195 -49
- package/dist/index.js +150 -74
- package/dist/index.js.map +1 -1
- package/dist/{ir-BMP7yxJJ.d.cts → ir-BSosEwc8.d.cts} +1 -1
- package/dist/{ir-DUOz6H-5.d.ts → ir-D-uqwL_4.d.ts} +1 -1
- package/dist/{module-B8CBqIZ_.d.cts → module-Ds4tarcI.d.cts} +230 -140
- package/dist/{module-k7m3txak.d.ts → module-Zd1Gn-Nj.d.ts} +230 -140
- package/package.json +20 -4
- package/dist/ModuleTag-C8FHY_sY.d.ts +0 -93
- package/dist/ModuleTag-EGbgBMpZ.d.cts +0 -93
- package/dist/Observability-COqEvp2C.d.cts +0 -713
- package/dist/Observability-cY4kLn0S.d.ts +0 -713
- package/dist/ReadQuery-BlMwhe-F.d.ts +0 -30
- package/dist/ReadQuery-CL5XlXts.d.cts +0 -30
- package/dist/ReadQuery-SinbStGF.d.cts +0 -38
- package/dist/ReadQuery-SinbStGF.d.ts +0 -38
- package/dist/chunk-24VULZ7A.js.map +0 -1
- package/dist/chunk-3QMIVH35.js +0 -43
- package/dist/chunk-3QMIVH35.js.map +0 -1
- package/dist/chunk-3TMODYZV.js.map +0 -1
- package/dist/chunk-4SO6JMZL.js.map +0 -1
- package/dist/chunk-76WT3HOR.js.map +0 -1
- package/dist/chunk-ANLBCBDC.js.map +0 -1
- package/dist/chunk-AUIR5O6W.js.map +0 -1
- package/dist/chunk-BABLDP24.js.map +0 -1
- package/dist/chunk-BE3HW4FY.js.map +0 -1
- package/dist/chunk-BZ2SHDN2.js.map +0 -1
- package/dist/chunk-CW6T36TN.js.map +0 -1
- package/dist/chunk-DFNM3WX2.js.map +0 -1
- package/dist/chunk-DMBALCE2.js.map +0 -1
- package/dist/chunk-EGK3KN7B.js +0 -406
- package/dist/chunk-EGK3KN7B.js.map +0 -1
- package/dist/chunk-GMPEOUP2.js.map +0 -1
- package/dist/chunk-IHVBV5C2.js.map +0 -1
- package/dist/chunk-JCXGZRMU.js.map +0 -1
- package/dist/chunk-JGIWG6SR.js.map +0 -1
- package/dist/chunk-JWOYLO27.js.map +0 -1
- package/dist/chunk-KIXAU3GM.js +0 -137
- package/dist/chunk-KIXAU3GM.js.map +0 -1
- package/dist/chunk-KL5ACTCT.js +0 -8
- package/dist/chunk-KL5ACTCT.js.map +0 -1
- package/dist/chunk-KP7MUZNX.js.map +0 -1
- package/dist/chunk-M3BFQ7HK.js +0 -13
- package/dist/chunk-M3BFQ7HK.js.map +0 -1
- package/dist/chunk-M3WTHJHJ.js.map +0 -1
- package/dist/chunk-NBD3KUOZ.js.map +0 -1
- package/dist/chunk-NQZ2OSGR.js +0 -151
- package/dist/chunk-NQZ2OSGR.js.map +0 -1
- package/dist/chunk-NZJKFF45.js.map +0 -1
- package/dist/chunk-OFADUJWJ.js.map +0 -1
- package/dist/chunk-OGWBVHB3.js.map +0 -1
- package/dist/chunk-PAYXCY6A.js.map +0 -1
- package/dist/chunk-PYOE4VSI.js.map +0 -1
- package/dist/chunk-QCHIQWAJ.js +0 -21
- package/dist/chunk-RNFE3ML2.js.map +0 -1
- package/dist/chunk-TKZ7MEIA.js +0 -27
- package/dist/chunk-TKZ7MEIA.js.map +0 -1
- package/dist/chunk-TQOBJYDP.js.map +0 -1
- package/dist/chunk-VZB726PE.js +0 -93
- package/dist/chunk-VZB726PE.js.map +0 -1
- package/dist/chunk-W3TEWHLO.js +0 -568
- package/dist/chunk-W3TEWHLO.js.map +0 -1
- package/dist/chunk-YS3AZQ2G.js.map +0 -1
- package/dist/chunk-ZFLHVFUC.js +0 -192
- package/dist/chunk-ZFLHVFUC.js.map +0 -1
- package/dist/chunk-ZFY7U2FR.js.map +0 -1
- package/dist/chunk-ZGDVUPTM.js.map +0 -1
- package/dist/protocol-g_1897M2.d.cts +0 -127
- package/dist/protocol-g_1897M2.d.ts +0 -127
- /package/dist/{chunk-3IYZ5IGG.js.map → chunk-5WKUGEBY.js.map} +0 -0
- /package/dist/{chunk-3RMKLXHX.js.map → chunk-63ZQ5RIN.js.map} +0 -0
- /package/dist/{chunk-EY4NZKDR.js.map → chunk-6Y2TKCNY.js.map} +0 -0
- /package/dist/{chunk-G5ZBFPNU.js.map → chunk-A2RQOJC7.js.map} +0 -0
- /package/dist/{chunk-TAAPQVZN.js.map → chunk-AYELIQXR.js.map} +0 -0
- /package/dist/{chunk-66ALHVEX.js.map → chunk-EB46EYI7.js.map} +0 -0
- /package/dist/{chunk-IPF7E66P.js.map → chunk-FYAODKVP.js.map} +0 -0
- /package/dist/{chunk-M7IYCTJV.js.map → chunk-R4LFQGP3.js.map} +0 -0
- /package/dist/{chunk-M2RGJPXX.js.map → chunk-SJAE5PB5.js.map} +0 -0
- /package/dist/{chunk-ZDTRWK5F.js.map → chunk-TAHFWKS6.js.map} +0 -0
- /package/dist/{chunk-4CQAV7YB.js.map → chunk-W647DX5Z.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/workflow/errors.ts","../src/internal/workflow/inputExpr.ts","../src/internal/workflow/compiler.ts"],"sourcesContent":["import { stableStringify } from '../digest.js'\nimport { isJsonValue, type JsonValue, projectJsonValue } from '../observability/jsonValue.js'\n\nexport type WorkflowErrorCode =\n | 'WORKFLOW_UNSUPPORTED_VERSION'\n | 'WORKFLOW_INVALID_DEF'\n | 'WORKFLOW_INVALID_TRIGGER'\n | 'WORKFLOW_INVALID_STEP'\n | 'WORKFLOW_DUPLICATE_STEP_KEY'\n | 'WORKFLOW_INVALID_INPUT_EXPR'\n | 'WORKFLOW_INVALID_JSON_POINTER'\n | 'WORKFLOW_INVALID_MERGE_ITEMS'\n | 'WORKFLOW_INVALID_SERVICE_ID'\n | 'WORKFLOW_MISSING_SERVICE'\n | 'WORKFLOW_INVALID_SERVICE_PORT'\n | 'WORKFLOW_CALL_TIMEOUT'\n\nexport interface WorkflowError extends Error {\n readonly _tag: 'WorkflowError'\n readonly code: WorkflowErrorCode\n readonly programId?: string\n readonly source?: {\n readonly stepKey?: string\n readonly fragmentId?: string\n }\n readonly detail?: JsonValue\n}\n\nconst toJsonValue = (detail: unknown): JsonValue => {\n if (isJsonValue(detail)) return detail\n return projectJsonValue(detail).value\n}\n\nexport const makeWorkflowError = (args: {\n readonly code: WorkflowErrorCode\n readonly message: string\n readonly programId?: string\n readonly source?: WorkflowError['source']\n readonly detail?: unknown\n}): WorkflowError => {\n const detailJson = args.detail !== undefined ? toJsonValue(args.detail) : undefined\n const msg = args.detail !== undefined ? `${args.message}\\n(detail=${stableStringify(detailJson)})` : args.message\n\n return Object.assign(new Error(msg), {\n _tag: 'WorkflowError' as const,\n code: args.code,\n programId: args.programId,\n source: args.source,\n detail: detailJson,\n }) as WorkflowError\n}\n","import { isJsonValue } from '../observability/jsonValue.js'\nimport { makeWorkflowError } from './errors.js'\nimport type { InputExprV1 } from './model.js'\n\nexport type JsonPointerToken = string | number\n\nconst decodePointerToken = (raw: string): string => raw.replace(/~1/g, '/').replace(/~0/g, '~')\n\nconst isIndexToken = (token: string): boolean => token === '0' || (!token.startsWith('0') && /^\\d+$/.test(token))\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value)\n\nexport const parseJsonPointer = (pointer: string): ReadonlyArray<JsonPointerToken> => {\n if (pointer === '') return []\n if (!pointer.startsWith('/')) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_JSON_POINTER',\n message: 'Invalid JSON Pointer (must be \"\" or start with \"/\").',\n detail: { pointer },\n })\n }\n\n const raw = pointer.split('/').slice(1)\n const out: JsonPointerToken[] = []\n for (const part of raw) {\n const decoded = decodePointerToken(part)\n out.push(isIndexToken(decoded) ? Number(decoded) : decoded)\n }\n return out\n}\n\nexport type CompiledInputExpr =\n | { readonly kind: 'payload' }\n | { readonly kind: 'payload.path'; readonly pointer: string; readonly tokens: ReadonlyArray<JsonPointerToken> }\n | { readonly kind: 'const'; readonly value: unknown }\n | { readonly kind: 'object'; readonly fields: ReadonlyArray<readonly [string, CompiledInputExpr]> }\n | { readonly kind: 'merge'; readonly items: ReadonlyArray<CompiledInputExpr> }\n\nexport const compileInputExpr = (expr: InputExprV1, pathForError?: { readonly stepKey?: string }): CompiledInputExpr => {\n switch (expr.kind) {\n case 'payload':\n return { kind: 'payload' }\n case 'payload.path': {\n const pointer = expr.pointer\n if (typeof pointer !== 'string') {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_INPUT_EXPR',\n message: 'InputExpr.payload.path.pointer must be a string.',\n source: { stepKey: pathForError?.stepKey },\n detail: { pointer },\n })\n }\n return { kind: 'payload.path', pointer, tokens: parseJsonPointer(pointer) }\n }\n case 'const': {\n const value: unknown = expr.value\n if (!isJsonValue(value)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_INPUT_EXPR',\n message: 'InputExpr.const.value must be JSON-serializable.',\n source: { stepKey: pathForError?.stepKey },\n detail: { value },\n })\n }\n return { kind: 'const', value }\n }\n case 'object': {\n const fields: unknown = expr.fields\n if (!fields || typeof fields !== 'object' || Array.isArray(fields)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_INPUT_EXPR',\n message: 'InputExpr.object.fields must be a record.',\n source: { stepKey: pathForError?.stepKey },\n })\n }\n const entries = Object.entries(fields as Record<string, InputExprV1>).sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))\n return {\n kind: 'object',\n fields: entries.map(([k, v]) => [k, compileInputExpr(v, pathForError)] as const),\n }\n }\n case 'merge': {\n const items: unknown = expr.items\n if (!Array.isArray(items)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_INPUT_EXPR',\n message: 'InputExpr.merge.items must be an array.',\n source: { stepKey: pathForError?.stepKey },\n })\n }\n\n // Hard gate: merge.items must all be object (enforced at compile-time; runtime should not branch).\n for (const item of items) {\n const kind = isRecord(item) ? item.kind : undefined\n if (kind !== 'object') {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_MERGE_ITEMS',\n message: 'InputExpr.merge.items must all be InputExpr.object.',\n source: { stepKey: pathForError?.stepKey },\n detail: { kind },\n })\n }\n }\n\n return {\n kind: 'merge',\n items: (items as ReadonlyArray<InputExprV1>).map((i) => compileInputExpr(i, pathForError)),\n }\n }\n }\n}\n\nconst isPlainRecord = (value: unknown): value is Record<string, unknown> => {\n if (typeof value !== 'object' || value === null) return false\n if (Array.isArray(value)) return false\n const proto = Object.getPrototypeOf(value)\n return proto === Object.prototype || proto === null\n}\n\nconst evalPointer = (root: unknown, tokens: ReadonlyArray<JsonPointerToken>): unknown => {\n let current: unknown = root\n for (const token of tokens) {\n if (current == null) return undefined\n if (Array.isArray(current) && typeof token === 'number') {\n current = current[token]\n continue\n }\n if (typeof current !== 'object') return undefined\n const key = typeof token === 'number' ? String(token) : token\n current = (current as Record<string, unknown>)[key]\n }\n return current\n}\n\nexport const evalInputExpr = (expr: CompiledInputExpr, payload: unknown): unknown => {\n switch (expr.kind) {\n case 'payload':\n return payload\n case 'payload.path':\n return evalPointer(payload, expr.tokens)\n case 'const':\n return expr.value\n case 'object': {\n const out: Record<string, unknown> = {}\n for (const [k, v] of expr.fields) {\n out[k] = evalInputExpr(v, payload)\n }\n return out\n }\n case 'merge': {\n const out: Record<string, unknown> = {}\n for (const item of expr.items) {\n const value = evalInputExpr(item, payload)\n if (isPlainRecord(value)) {\n for (const [k, v] of Object.entries(value)) {\n out[k] = v\n }\n }\n }\n return out\n }\n }\n}\n","import { fnv1a32, stableStringify } from '../digest.js'\nimport { isJsonValue, projectJsonValue, type JsonValue } from '../observability/jsonValue.js'\nimport { makeWorkflowError } from './errors.js'\nimport type {\n InputExprV1,\n StepKey,\n WorkflowDefV1,\n WorkflowStepV1,\n WorkflowStaticIrV1,\n WorkflowStaticNode,\n WorkflowStaticStep,\n WorkflowTriggerV1,\n WorkflowStableId,\n WorkflowNodeId,\n WorkflowEdge,\n WorkflowEdgeKind,\n} from './model.js'\nimport { compileInputExpr, type CompiledInputExpr } from './inputExpr.js'\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value)\n\nconst asNonEmptyString = (value: unknown): string | undefined =>\n typeof value === 'string' && value.trim().length > 0 ? value.trim() : undefined\n\nconst asNonNegInt = (value: unknown): number | undefined => {\n if (typeof value !== 'number' || !Number.isFinite(value)) return undefined\n const n = Math.floor(value)\n return n >= 0 ? n : undefined\n}\n\nconst asPosInt = (value: unknown): number | undefined => {\n if (typeof value !== 'number' || !Number.isFinite(value)) return undefined\n const n = Math.floor(value)\n return n > 0 ? n : undefined\n}\n\nexport const normalizeWorkflowDefV1 = (input: WorkflowDefV1): WorkflowDefV1 => {\n // Fill trivial defaults (canonical shape):\n // - call.onSuccess/onFailure must be explicit arrays.\n // - The normalization must be deep: nested call steps may come from def-like inputs and miss the arrays.\n const normalizeStep = (step: WorkflowStepV1): WorkflowStepV1 => {\n if (!isRecord(step)) return step\n if (step.kind !== 'call') return step\n\n const raw = step as unknown as { readonly onSuccess?: unknown; readonly onFailure?: unknown }\n const onSuccessRaw = Array.isArray(raw.onSuccess) ? (raw.onSuccess as ReadonlyArray<WorkflowStepV1>) : []\n const onFailureRaw = Array.isArray(raw.onFailure) ? (raw.onFailure as ReadonlyArray<WorkflowStepV1>) : []\n\n return {\n ...step,\n onSuccess: onSuccessRaw.map(normalizeStep),\n onFailure: onFailureRaw.map(normalizeStep),\n }\n }\n\n const normalizeSteps = (steps: ReadonlyArray<WorkflowStepV1>): ReadonlyArray<WorkflowStepV1> => steps.map(normalizeStep)\n\n return {\n ...input,\n steps: normalizeSteps(input.steps),\n }\n}\n\nexport function validateWorkflowDefV1(def: unknown, options?: { readonly moduleId?: string }): asserts def is WorkflowDefV1 {\n if (!isRecord(def)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_DEF',\n message: 'WorkflowDef must be an object.',\n detail: { def },\n })\n }\n\n if (def.astVersion !== 1) {\n throw makeWorkflowError({\n code: 'WORKFLOW_UNSUPPORTED_VERSION',\n message: 'Unsupported workflow astVersion.',\n detail: { astVersion: def.astVersion },\n })\n }\n\n if (!asNonEmptyString(def.localId)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_DEF',\n message: 'WorkflowDef.localId must be a non-empty string.',\n detail: { localId: def.localId },\n })\n }\n\n const trigger = def.trigger\n if (!isRecord(trigger)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_TRIGGER',\n message: 'Workflow trigger must be an object.',\n detail: { trigger },\n })\n }\n if (trigger.kind === 'action') {\n if (!asNonEmptyString(trigger.actionTag)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_TRIGGER',\n message: 'Workflow trigger.actionTag must be a non-empty string.',\n detail: { trigger },\n })\n }\n } else if (trigger.kind === 'lifecycle') {\n const phase = trigger.phase\n if (phase !== 'onStart' && phase !== 'onInit') {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_TRIGGER',\n message: 'Workflow trigger.phase must be \"onStart\" or \"onInit\".',\n detail: { trigger },\n })\n }\n } else {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_TRIGGER',\n message: 'Workflow trigger.kind must be \"action\" or \"lifecycle\".',\n detail: { trigger },\n })\n }\n\n if (!Array.isArray(def.steps)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_DEF',\n message: 'WorkflowDef.steps must be an array.',\n detail: { steps: def.steps },\n })\n }\n\n const seenKeys = new Set<string>()\n const visit = (step: unknown, fragmentId?: string): void => {\n if (!isRecord(step)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_STEP',\n message: 'Workflow step must be an object.',\n detail: { step },\n source: fragmentId ? { fragmentId } : undefined,\n })\n }\n\n const key = asNonEmptyString(step.key)\n if (!key) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_STEP',\n message: 'Workflow step.key must be a non-empty string.',\n detail: { stepKey: step.key, kind: step.kind },\n source: fragmentId ? { fragmentId } : undefined,\n })\n }\n\n if (seenKeys.has(key)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_DUPLICATE_STEP_KEY',\n message: `Duplicate stepKey \"${key}\" detected.`,\n detail: { duplicateKey: key },\n source: { stepKey: key, ...(fragmentId ? { fragmentId } : null) },\n })\n }\n seenKeys.add(key)\n\n if (step.kind === 'dispatch') {\n if (!asNonEmptyString(step.actionTag)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_STEP',\n message: 'dispatch.actionTag must be a non-empty string.',\n source: { stepKey: key, ...(fragmentId ? { fragmentId } : null) },\n detail: { actionTag: step.actionTag },\n })\n }\n const payload = step.payload\n if (payload !== undefined) {\n validateInputExpr(payload, { stepKey: key })\n }\n return\n }\n\n if (step.kind === 'delay') {\n const ms = asNonNegInt(step.ms)\n if (ms === undefined) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_STEP',\n message: 'delay.ms must be a non-negative integer.',\n source: { stepKey: key, ...(fragmentId ? { fragmentId } : null) },\n detail: { ms: step.ms },\n })\n }\n return\n }\n\n if (step.kind === 'call') {\n if (!asNonEmptyString(step.serviceId)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_SERVICE_ID',\n message: 'call.serviceId must be a non-empty string.',\n source: { stepKey: key, ...(fragmentId ? { fragmentId } : null) },\n detail: { serviceId: step.serviceId },\n })\n }\n const inputExpr = step.input\n if (inputExpr !== undefined) {\n validateInputExpr(inputExpr, { stepKey: key })\n }\n const timeoutMsRaw = step.timeoutMs\n if (timeoutMsRaw !== undefined && asPosInt(timeoutMsRaw) === undefined) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_STEP',\n message: 'call.timeoutMs must be a positive integer (milliseconds).',\n source: { stepKey: key, ...(fragmentId ? { fragmentId } : null) },\n detail: { timeoutMs: timeoutMsRaw },\n })\n }\n const retryRaw = step.retry\n if (retryRaw !== undefined) {\n const times = isRecord(retryRaw) ? asPosInt(retryRaw.times) : undefined\n if (times === undefined) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_STEP',\n message: 'call.retry.times must be a positive integer.',\n source: { stepKey: key, ...(fragmentId ? { fragmentId } : null) },\n detail: { retry: retryRaw },\n })\n }\n }\n\n const onSuccess = Array.isArray(step.onSuccess) ? step.onSuccess : []\n const onFailure = Array.isArray(step.onFailure) ? step.onFailure : []\n for (const inner of onSuccess) visit(inner, fragmentId)\n for (const inner of onFailure) visit(inner, fragmentId)\n return\n }\n\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_STEP',\n message: 'Unknown step kind.',\n source: { stepKey: key, ...(fragmentId ? { fragmentId } : null) },\n detail: { kind: step.kind },\n })\n }\n\n const sources = def.sources\n const fragmentByStepKey = new Map<string, string | undefined>()\n if (sources && typeof sources === 'object') {\n for (const [k, v] of Object.entries(sources)) {\n fragmentByStepKey.set(k, isRecord(v) ? asNonEmptyString(v.fragmentId) : undefined)\n }\n }\n\n for (const step of def.steps) {\n const key = isRecord(step) ? asNonEmptyString(step.key) : undefined\n const fragmentId = key ? fragmentByStepKey.get(key) : undefined\n visit(step, fragmentId)\n }\n\n // meta.generator must stay JSON-only.\n const generator = isRecord(def.meta) ? def.meta.generator : undefined\n if (generator !== undefined && !isJsonValue(generator)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_DEF',\n message: 'WorkflowDef.meta.generator must be JSON-serializable.',\n detail: { generator },\n })\n }\n\n // policy validation (minimal)\n const policy = isRecord(def.policy) ? def.policy : undefined\n if (policy) {\n const concurrency = policy.concurrency\n if (concurrency !== undefined && concurrency !== 'latest' && concurrency !== 'exhaust' && concurrency !== 'parallel') {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_DEF',\n message: 'policy.concurrency must be latest|exhaust|parallel.',\n detail: { concurrency },\n })\n }\n const priority = policy.priority\n if (priority !== undefined && priority !== 'urgent' && priority !== 'nonUrgent') {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_DEF',\n message: 'policy.priority must be urgent|nonUrgent.',\n detail: { priority },\n })\n }\n }\n\n // moduleId is only used to improve error context; no additional validation here.\n void options?.moduleId\n}\n\nconst validateInputExpr = (expr: unknown, options?: { readonly stepKey?: string }): void => {\n const visit = (e: unknown): void => {\n if (!isRecord(e)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_INPUT_EXPR',\n message: 'InputExpr must be an object.',\n source: { stepKey: options?.stepKey },\n detail: { expr: e },\n })\n }\n const kind = e.kind\n switch (kind) {\n case 'payload':\n return\n case 'payload.path': {\n const pointer = e.pointer\n if (typeof pointer !== 'string') {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_INPUT_EXPR',\n message: 'InputExpr.payload.path.pointer must be a string.',\n source: { stepKey: options?.stepKey },\n detail: { pointer },\n })\n }\n return\n }\n case 'const': {\n const value = e.value\n if (!isJsonValue(value)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_INPUT_EXPR',\n message: 'InputExpr.const.value must be JSON-serializable.',\n source: { stepKey: options?.stepKey },\n })\n }\n return\n }\n case 'object': {\n const fields = e.fields\n if (!isRecord(fields)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_INPUT_EXPR',\n message: 'InputExpr.object.fields must be a record.',\n source: { stepKey: options?.stepKey },\n })\n }\n for (const v of Object.values(fields)) {\n visit(v)\n }\n return\n }\n case 'merge': {\n const items = e.items\n if (!Array.isArray(items)) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_INPUT_EXPR',\n message: 'InputExpr.merge.items must be an array.',\n source: { stepKey: options?.stepKey },\n })\n }\n for (const item of items) {\n visit(item)\n }\n return\n }\n default:\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_INPUT_EXPR',\n message: 'Unknown InputExpr kind.',\n source: { stepKey: options?.stepKey },\n detail: { kind },\n })\n }\n }\n\n visit(expr)\n}\n\n// ---- Static IR compilation ----\n\nconst makeDigest = (prefix: string, value: unknown): string => `${prefix}:${fnv1a32(stableStringify(value))}`\n\nconst makeTriggerNodeId = (programId: string): WorkflowNodeId => `wf_trigger_v1:${fnv1a32(programId)}`\n\nconst makeStepNodeId = (programId: string, stepKey: StepKey, kind: string): WorkflowNodeId =>\n `wf_node_v1:${fnv1a32(`${programId}\\u0000${stepKey}\\u0000${kind}`)}`\n\nconst budgetJsonValue = (value: JsonValue): JsonValue => projectJsonValue(value).value\n\nconst budgetInputExpr = (expr: InputExprV1): InputExprV1 => {\n switch (expr.kind) {\n case 'payload':\n case 'payload.path':\n return expr\n case 'const': {\n const value: unknown = expr.value\n if (!isJsonValue(value)) return expr\n return { ...expr, value: budgetJsonValue(expr.value) }\n }\n case 'object': {\n const out: { [k: string]: InputExprV1 } = {}\n for (const k of Object.keys(expr.fields).sort()) {\n out[k] = budgetInputExpr(expr.fields[k]!)\n }\n return { ...expr, fields: out }\n }\n case 'merge':\n return { ...expr, items: expr.items.map(budgetInputExpr) }\n }\n}\n\nconst toStaticStep = (step: WorkflowStepV1): WorkflowStaticStep => {\n switch (step.kind) {\n case 'dispatch':\n return {\n kind: 'dispatch',\n actionTag: step.actionTag,\n ...(step.payload ? { payload: budgetInputExpr(step.payload) } : null),\n }\n case 'delay':\n return { kind: 'delay', ms: step.ms }\n case 'call': {\n const policy =\n step.timeoutMs !== undefined || step.retry !== undefined\n ? {\n ...(step.timeoutMs !== undefined ? { timeoutMs: step.timeoutMs } : null),\n ...(step.retry !== undefined ? { retry: { times: step.retry.times } } : null),\n }\n : undefined\n return {\n kind: 'call',\n serviceId: step.serviceId,\n ...(step.input ? { input: budgetInputExpr(step.input) } : null),\n ...(policy ? { policy } : null),\n }\n }\n }\n}\n\nexport const compileWorkflowStaticIrV1 = (args: {\n readonly moduleId: string\n readonly def: WorkflowDefV1\n}): WorkflowStaticIrV1 => {\n const normalized = normalizeWorkflowDefV1(args.def)\n validateWorkflowDefV1(normalized, { moduleId: args.moduleId })\n\n const programId: WorkflowStableId = `${args.moduleId}.${normalized.localId}`\n const triggerNodeId = makeTriggerNodeId(programId)\n\n const fragmentByStepKey = new Map<string, string | undefined>()\n if (normalized.sources && typeof normalized.sources === 'object') {\n for (const [k, v] of Object.entries(normalized.sources)) {\n fragmentByStepKey.set(k, isRecord(v) ? asNonEmptyString(v.fragmentId) : undefined)\n }\n }\n\n const nodesByKey = new Map<string, WorkflowNodeId>()\n\n const collectNodes = (steps: ReadonlyArray<WorkflowStepV1>) => {\n for (const step of steps) {\n const id = makeStepNodeId(programId, step.key, step.kind)\n nodesByKey.set(step.key, id)\n if (step.kind === 'call') {\n collectNodes(step.onSuccess)\n collectNodes(step.onFailure)\n }\n }\n }\n collectNodes(normalized.steps)\n\n const nodes: WorkflowStaticNode[] = [\n {\n id: triggerNodeId,\n kind: 'trigger',\n trigger: normalized.trigger,\n },\n ]\n\n const addStepNodes = (steps: ReadonlyArray<WorkflowStepV1>) => {\n for (const step of steps) {\n const id = nodesByKey.get(step.key)\n if (!id) continue\n const fragmentId = fragmentByStepKey.get(step.key)\n nodes.push({\n id,\n kind: 'step',\n step: toStaticStep(step),\n source: {\n stepKey: step.key,\n ...(fragmentId ? { fragmentId } : null),\n },\n })\n if (step.kind === 'call') {\n addStepNodes(step.onSuccess)\n addStepNodes(step.onFailure)\n }\n }\n }\n addStepNodes(normalized.steps)\n\n const edges: WorkflowEdge[] = []\n\n const pushEdge = (from: WorkflowNodeId, to: WorkflowNodeId, kind: WorkflowEdgeKind): void => {\n edges.push({ from, to, kind })\n }\n\n const compileBlock = (args: {\n readonly steps: ReadonlyArray<WorkflowStepV1>\n readonly entryFrom: ReadonlyArray<WorkflowNodeId>\n readonly entryKind: WorkflowEdgeKind\n readonly continuation?: WorkflowNodeId\n }): void => {\n if (args.steps.length === 0) {\n if (args.continuation) {\n for (const from of args.entryFrom) {\n pushEdge(from, args.continuation, args.entryKind)\n }\n }\n return\n }\n\n const first = args.steps[0]!\n const firstId = nodesByKey.get(first.key)\n if (!firstId) {\n throw makeWorkflowError({\n code: 'WORKFLOW_INVALID_STEP',\n message: 'Internal error: missing node id for stepKey.',\n programId,\n source: { stepKey: first.key },\n })\n }\n\n for (const from of args.entryFrom) {\n pushEdge(from, firstId, args.entryKind)\n }\n\n const compileStepAndTail = (step: WorkflowStepV1, tail: ReadonlyArray<WorkflowStepV1>, continuation?: WorkflowNodeId) => {\n const stepId = nodesByKey.get(step.key)\n if (!stepId) return\n\n if (step.kind !== 'call') {\n compileBlock({ steps: tail, entryFrom: [stepId], entryKind: 'next', continuation })\n return\n }\n\n const cont = tail.length > 0 ? nodesByKey.get(tail[0]!.key) : continuation\n\n compileBlock({\n steps: step.onSuccess,\n entryFrom: [stepId],\n entryKind: 'success',\n continuation: cont,\n })\n compileBlock({\n steps: step.onFailure,\n entryFrom: [stepId],\n entryKind: 'failure',\n continuation: cont,\n })\n\n compileBlock({ steps: tail, entryFrom: [], entryKind: 'next', continuation })\n }\n\n compileStepAndTail(first, args.steps.slice(1), args.continuation)\n }\n\n compileBlock({ steps: normalized.steps, entryFrom: [triggerNodeId], entryKind: 'next', continuation: undefined })\n\n // Stable ordering (for diff/digest).\n nodes.sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0))\n edges.sort((a, b) => {\n if (a.from !== b.from) return a.from < b.from ? -1 : 1\n if (a.to !== b.to) return a.to < b.to ? -1 : 1\n const ak = String(a.kind ?? '')\n const bk = String(b.kind ?? '')\n if (ak !== bk) return ak < bk ? -1 : 1\n return 0\n })\n\n const meta: Record<string, JsonValue> | undefined = (() => {\n const generator = normalized.meta?.generator\n if (generator === undefined) return undefined\n return { generator: budgetJsonValue(generator) }\n })()\n\n const irNoDigest = {\n version: 1,\n programId,\n nodes,\n edges,\n policy: normalized.policy,\n meta,\n } as const\n\n const digest = makeDigest('workflow_ir_v1', irNoDigest)\n\n return {\n ...irNoDigest,\n digest,\n }\n}\n\n// ---- Runtime compilation (InputExpr precompile + shape checks) ----\n\nexport type CompiledWorkflowStep =\n | { readonly kind: 'dispatch'; readonly key: StepKey; readonly actionTag: string; readonly payload?: CompiledInputExpr }\n | { readonly kind: 'delay'; readonly key: StepKey; readonly ms: number }\n | {\n readonly kind: 'call'\n readonly key: StepKey\n readonly serviceId: string\n readonly input?: CompiledInputExpr\n readonly timeoutMs?: number\n readonly retryTimes?: number\n readonly onSuccess: ReadonlyArray<CompiledWorkflowStep>\n readonly onFailure: ReadonlyArray<CompiledWorkflowStep>\n }\n\nexport const compileWorkflowRuntimeStepsV1 = (args: {\n readonly def: WorkflowDefV1\n}): ReadonlyArray<CompiledWorkflowStep> => {\n const normalized = normalizeWorkflowDefV1(args.def)\n validateWorkflowDefV1(normalized)\n\n const compileStep = (step: WorkflowStepV1): CompiledWorkflowStep => {\n const stepKey = step.key\n switch (step.kind) {\n case 'dispatch':\n return {\n kind: 'dispatch',\n key: step.key,\n actionTag: step.actionTag,\n ...(step.payload ? { payload: compileInputExpr(step.payload, { stepKey }) } : null),\n }\n case 'delay':\n return { kind: 'delay', key: step.key, ms: step.ms }\n case 'call': {\n const retryTimes = step.retry?.times\n return {\n kind: 'call',\n key: step.key,\n serviceId: step.serviceId,\n ...(step.input ? { input: compileInputExpr(step.input, { stepKey }) } : null),\n ...(step.timeoutMs !== undefined ? { timeoutMs: step.timeoutMs } : null),\n ...(retryTimes !== undefined ? { retryTimes } : null),\n onSuccess: step.onSuccess.map(compileStep),\n onFailure: step.onFailure.map(compileStep),\n }\n }\n }\n }\n\n return normalized.steps.map(compileStep)\n}\n"],"mappings":"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","names":["isRecord","args"]}
|
|
@@ -10,7 +10,7 @@ var stableStringify = (value) => {
|
|
|
10
10
|
}
|
|
11
11
|
if (t === "object") {
|
|
12
12
|
const record = value;
|
|
13
|
-
const keys = Object.keys(record).sort(
|
|
13
|
+
const keys = Object.keys(record).sort();
|
|
14
14
|
return `{${keys.map((k) => `${JSON.stringify(k)}:${stableStringify(record[k])}`).join(",")}}`;
|
|
15
15
|
}
|
|
16
16
|
return "null";
|
|
@@ -28,4 +28,4 @@ export {
|
|
|
28
28
|
stableStringify,
|
|
29
29
|
fnv1a32
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=chunk-
|
|
31
|
+
//# sourceMappingURL=chunk-4MZ7BT3R.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/digest.ts"],"sourcesContent":["/**\n * internal/digest:\n * - Minimal \"stable digest\" utilities for Runtime / Static IR / Traits, etc.\n * - Goal: stable output across runs/processes while staying lightweight (no extra dependencies).\n *\n * Note: stableStringify does not aim for full JSON equivalence; it only covers the subset needed by this repo:\n * - Stable key ordering (object fields sorted lexicographically).\n * - Non-finite numbers (NaN/±Infinity) degrade to null.\n * - Other non-representable values (undefined/function/symbol, etc.) degrade to null.\n * - undefined inside objects is not omitted; it is encoded as null (differs from JSON.stringify).\n */\n\nexport const stableStringify = (value: unknown): string => {\n if (value === null) return 'null'\n const t = typeof value\n if (t === 'string') return JSON.stringify(value)\n if (t === 'number') return Number.isFinite(value) ? String(value) : 'null'\n if (t === 'boolean') return value ? 'true' : 'false'\n\n if (Array.isArray(value)) {\n return `[${value.map(stableStringify).join(',')}]`\n }\n\n if (t === 'object') {\n const record = value as Record<string, unknown>\n const keys = Object.keys(record).sort()\n return `{${keys.map((k) => `${JSON.stringify(k)}:${stableStringify(record[k])}`).join(',')}}`\n }\n\n return 'null'\n}\n\n/**\n * fnv1a32:\n * - 32-bit FNV-1a hash (for short digests); outputs fixed 8-char hex.\n */\nexport const fnv1a32 = (input: string): string => {\n let hash = 0x811c9dc5\n for (let i = 0; i < input.length; i++) {\n hash ^= input.charCodeAt(i)\n hash = (hash * 0x01000193) >>> 0\n }\n return hash.toString(16).padStart(8, '0')\n}\n"],"mappings":";AAYO,IAAM,kBAAkB,CAAC,UAA2B;AACzD,MAAI,UAAU,KAAM,QAAO;AAC3B,QAAM,IAAI,OAAO;AACjB,MAAI,MAAM,SAAU,QAAO,KAAK,UAAU,KAAK;AAC/C,MAAI,MAAM,SAAU,QAAO,OAAO,SAAS,KAAK,IAAI,OAAO,KAAK,IAAI;AACpE,MAAI,MAAM,UAAW,QAAO,QAAQ,SAAS;AAE7C,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,IAAI,MAAM,IAAI,eAAe,EAAE,KAAK,GAAG,CAAC;AAAA,EACjD;AAEA,MAAI,MAAM,UAAU;AAClB,UAAM,SAAS;AACf,UAAM,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK;AACtC,WAAO,IAAI,KAAK,IAAI,CAAC,MAAM,GAAG,KAAK,UAAU,CAAC,CAAC,IAAI,gBAAgB,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC;AAAA,EAC5F;AAEA,SAAO;AACT;AAMO,IAAM,UAAU,CAAC,UAA0B;AAChD,MAAI,OAAO;AACX,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,YAAQ,MAAM,WAAW,CAAC;AAC1B,WAAQ,OAAO,aAAgB;AAAA,EACjC;AACA,SAAO,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAC1C;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
makeActions
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6HFAW2MH.js";
|
|
4
4
|
import {
|
|
5
5
|
__export
|
|
6
6
|
} from "./chunk-PZ5AY32C.js";
|
|
@@ -14,4 +14,4 @@ __export(Action_exports, {
|
|
|
14
14
|
export {
|
|
15
15
|
Action_exports
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=chunk-
|
|
17
|
+
//# sourceMappingURL=chunk-5WKUGEBY.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isDevEnv
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-S4S5N4BJ.js";
|
|
4
4
|
|
|
5
5
|
// src/internal/runtime/core/runtimeInternalsAccessor.ts
|
|
6
6
|
var RUNTIME_INTERNALS = /* @__PURE__ */ Symbol.for("@logixjs/core/runtimeInternals");
|
|
@@ -80,4 +80,4 @@ export {
|
|
|
80
80
|
getRuntimeInternals,
|
|
81
81
|
getBoundInternals
|
|
82
82
|
};
|
|
83
|
-
//# sourceMappingURL=chunk-
|
|
83
|
+
//# sourceMappingURL=chunk-63ZQ5RIN.js.map
|