@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
package/dist/ReadQuery.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ReadQuery.ts","../src/internal/digest.ts","../src/internal/runtime/core/ReadQuery.ts"],"sourcesContent":["import * as ReadQueryCore from './internal/runtime/core/ReadQuery.js'\n\nexport type ReadLane = ReadQueryCore.ReadLane\nexport type ReadProducer = ReadQueryCore.ReadProducer\nexport type EqualsKind = ReadQueryCore.EqualsKind\nexport type ReadsDigest = ReadQueryCore.ReadsDigest\n\nexport type ReadQueryStaticIr = ReadQueryCore.ReadQueryStaticIr\n\nexport type ReadQuery<S, V> = ReadQueryCore.ReadQuery<S, V>\nexport type ReadQueryCompiled<S, V> = ReadQueryCore.ReadQueryCompiled<S, V>\nexport type ReadQueryInput<S, V> = ReadQueryCore.ReadQueryInput<S, V>\n\nexport const isReadQuery = ReadQueryCore.isReadQuery\n\nexport const make = ReadQueryCore.make\n\nexport const compile = ReadQueryCore.compile\n","/**\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((a, b) => a.localeCompare(b))\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","import { fnv1a32, stableStringify } from '../../digest.js'\nimport type * as DebugSink from './DebugSink.js'\n\nexport type ReadLane = 'static' | 'dynamic'\n\nexport type ReadProducer = 'aot' | 'jit' | 'manual' | 'dynamic'\n\nexport type ReadQueryFallbackReason = 'missingDeps' | 'unsupportedSyntax' | 'unstableSelectorId'\n\nexport type EqualsKind = 'objectIs' | 'shallowStruct' | 'custom'\n\nexport interface ReadsDigest {\n readonly count: number\n readonly hash: number\n}\n\nexport interface ReadQueryStaticIr {\n readonly selectorId: string\n readonly debugKey?: string\n readonly lane: ReadLane\n readonly producer: ReadProducer\n readonly reads?: ReadonlyArray<string | number>\n readonly readsDigest?: ReadsDigest\n readonly fallbackReason?: ReadQueryFallbackReason\n readonly equalsKind: EqualsKind\n}\n\nexport interface ReadQuery<S, V> {\n readonly selectorId: string\n readonly debugKey?: string\n readonly reads: ReadonlyArray<string | number>\n readonly select: (state: S) => V\n readonly equalsKind: EqualsKind\n readonly equals?: (previous: V, next: V) => boolean\n}\n\nexport interface ReadQueryCompiled<S, V> extends ReadQuery<S, V> {\n readonly lane: ReadLane\n readonly producer: ReadProducer\n readonly readsDigest?: ReadsDigest\n readonly fallbackReason?: ReadQueryFallbackReason\n readonly staticIr: ReadQueryStaticIr\n}\n\nexport type ReadQueryInput<S, V> = ((state: S) => V) | ReadQuery<S, V>\n\nexport function isReadQuery<S, V>(input: ReadQueryInput<S, V>): input is ReadQuery<S, V>\nexport function isReadQuery(input: unknown): input is ReadQuery<any, any>\nexport function isReadQuery(input: unknown): input is ReadQuery<any, any> {\n if (!input || (typeof input !== 'object' && typeof input !== 'function')) return false\n const maybe = input as any\n return typeof maybe.selectorId === 'string' && typeof maybe.select === 'function' && Array.isArray(maybe.reads)\n}\n\nconst normalizeReads = (reads: ReadonlyArray<string | number>): ReadonlyArray<string | number> => {\n const unique: Array<string | number> = []\n const seen = new Set<string>()\n for (const r of reads) {\n const key = typeof r === 'number' ? `n:${r}` : `s:${r}`\n if (seen.has(key)) continue\n seen.add(key)\n unique.push(r)\n }\n return unique.slice().sort((a, b) => String(a).localeCompare(String(b)))\n}\n\nconst toHash32Number = (hex: string): number => Number.parseInt(hex, 16)\n\nconst makeReadsDigest = (reads: ReadonlyArray<string | number>): ReadsDigest => {\n const normalized = normalizeReads(reads)\n return {\n count: normalized.length,\n hash: toHash32Number(fnv1a32(stableStringify(normalized))),\n }\n}\n\nconst computeSelectorId = (value: unknown): string => `rq_${fnv1a32(stableStringify(value))}`\n\nlet nextUnstableSelectorSeq = 0\nconst unstableSelectorIdByFn = new WeakMap<Function, string>()\n\nconst computeUnstableSelectorId = (selector: Function): string => {\n const existing = unstableSelectorIdByFn.get(selector)\n if (existing) return existing\n nextUnstableSelectorSeq += 1\n const selectorId = `rq_u${nextUnstableSelectorSeq}`\n unstableSelectorIdByFn.set(selector, selectorId)\n return selectorId\n}\n\nconst unwrapParens = (input: string): string => {\n const trimmed = input.trim()\n if (trimmed.startsWith('(') && trimmed.endsWith(')')) {\n const inner = trimmed.slice(1, -1).trim()\n // Only unwrap the outermost pair of parentheses to avoid accidentally breaking syntax.\n if (!inner.startsWith('(') || !inner.endsWith(')')) {\n return inner\n }\n }\n return trimmed\n}\n\nconst extractArrow = (source: string): { readonly param: string; readonly body: string } | undefined => {\n const idx = source.indexOf('=>')\n if (idx < 0) return undefined\n const left = source.slice(0, idx).trim()\n const right = source.slice(idx + 2).trim()\n\n const paramRaw = unwrapParens(left)\n if (!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(paramRaw)) return undefined\n\n // block body: { return expr }\n if (right.startsWith('{')) {\n const m = right.match(/^\\{\\s*return\\s+(.+?);?\\s*\\}\\s*$/s)\n if (!m) return undefined\n return { param: paramRaw, body: m[1]?.trim() ?? '' }\n }\n\n return { param: paramRaw, body: right }\n}\n\nconst extractFunctionReturn = (source: string): { readonly param: string; readonly body: string } | undefined => {\n const trimmed = source.trim()\n const m = trimmed.match(\n /^function\\s*(?:[A-Za-z_$][A-Za-z0-9_$]*\\s*)?\\(\\s*([A-Za-z_$][A-Za-z0-9_$]*)\\s*\\)\\s*\\{\\s*return\\s+(.+?);?\\s*\\}\\s*$/s,\n )\n if (!m) return undefined\n\n const param = m[1]?.trim() ?? ''\n if (!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(param)) return undefined\n\n const body = m[2]?.trim() ?? ''\n if (body.length === 0) return undefined\n\n return { param, body }\n}\n\ntype ParsedSelector =\n | { readonly kind: 'path'; readonly path: string }\n | { readonly kind: 'struct'; readonly entries: ReadonlyArray<readonly [string, string]> }\n\nconst tryParseSelectorSource = (source: string): ParsedSelector | undefined => {\n const arrowOrFn = extractArrow(source) ?? extractFunctionReturn(source)\n if (!arrowOrFn) return undefined\n\n const expr = unwrapParens(arrowOrFn.body).trim().replace(/;$/, '').trim()\n\n // path: s.a.b\n {\n const re = new RegExp(`^${arrowOrFn.param}\\\\.([A-Za-z0-9_$]+(?:\\\\.[A-Za-z0-9_$]+)*)$`)\n const m = expr.match(re)\n if (m) {\n return { kind: 'path', path: m[1] }\n }\n }\n\n // struct: ({ a: s.a, b: s.b })\n if (expr.startsWith('{') && expr.endsWith('}')) {\n const inner = expr.slice(1, -1).trim()\n if (inner.length === 0) return { kind: 'struct', entries: [] }\n\n const parts = inner\n .split(',')\n .map((p) => p.trim())\n .filter((p) => p.length > 0)\n\n const entries: Array<readonly [string, string]> = []\n\n for (const part of parts) {\n const idx = part.indexOf(':')\n if (idx < 0) return undefined\n const key = part.slice(0, idx).trim()\n const value = part.slice(idx + 1).trim()\n\n if (!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key)) return undefined\n\n const re = new RegExp(`^${arrowOrFn.param}\\\\.([A-Za-z0-9_$]+(?:\\\\.[A-Za-z0-9_$]+)*)$`)\n const m = value.match(re)\n if (!m) return undefined\n entries.push([key, m[1]] as const)\n }\n\n // Sort entries to ensure a stable selectorId.\n entries.sort((a, b) => a[0].localeCompare(b[0]))\n return { kind: 'struct', entries }\n }\n\n return undefined\n}\n\ntype ReadQueryStaticTemplate = {\n readonly selectorId: string\n readonly reads: ReadonlyArray<string | number>\n readonly readsDigest: ReadsDigest\n readonly equalsKind: EqualsKind\n}\n\nconst READ_QUERY_TEMPLATE_CACHE_MAX = 2048\nconst readQueryTemplateByFn = new WeakMap<Function, ReadQueryStaticTemplate>()\nconst readQueryTemplateBySource = new Map<string, ReadQueryStaticTemplate>()\n\nconst lruGet = <K, V>(map: Map<K, V>, key: K): V | undefined => {\n const value = map.get(key)\n if (value === undefined) return undefined\n map.delete(key)\n map.set(key, value)\n return value\n}\n\nconst lruSet = <K, V>(map: Map<K, V>, key: K, value: V, maxSize: number) => {\n if (map.has(key)) map.delete(key)\n map.set(key, value)\n if (map.size <= maxSize) return\n const oldestKey = map.keys().next().value as K | undefined\n if (oldestKey !== undefined) {\n map.delete(oldestKey)\n }\n}\n\nconst safeToString = (fn: Function): string => {\n try {\n return fn.toString()\n } catch {\n return ''\n }\n}\n\nexport const make = <S, V>(spec: ReadQuery<S, V>): ReadQuery<S, V> => spec\n\nexport const compile = <S, V>(input: ReadQueryInput<S, V>): ReadQueryCompiled<S, V> => {\n if (isReadQuery(input)) {\n const reads = normalizeReads(input.reads)\n const readsDigest = reads.length > 0 ? makeReadsDigest(reads) : undefined\n\n const equalsKind = input.equalsKind\n const staticIr: ReadQueryStaticIr = {\n selectorId: input.selectorId,\n debugKey: input.debugKey,\n lane: 'static',\n producer: 'manual',\n reads,\n readsDigest,\n equalsKind,\n }\n\n return {\n ...input,\n reads,\n lane: 'static',\n producer: 'manual',\n readsDigest,\n staticIr,\n }\n }\n\n const selector = input\n const debugKey =\n (typeof (selector as any)?.debugKey === 'string' && (selector as any).debugKey.length > 0\n ? (selector as any).debugKey\n : undefined) ??\n (typeof (selector as any).name === 'string' && (selector as any).name.length > 0\n ? (selector as any).name\n : undefined)\n\n const declaredReads: ReadonlyArray<string> | undefined = Array.isArray((selector as any)?.fieldPaths)\n ? ((selector as any).fieldPaths as ReadonlyArray<unknown>).filter((x): x is string => typeof x === 'string')\n : undefined\n\n if (declaredReads && declaredReads.length > 0) {\n const reads = normalizeReads(declaredReads)\n const readsDigest = makeReadsDigest(reads)\n const selectorId = computeSelectorId({ kind: 'reads', reads })\n\n const staticIr: ReadQueryStaticIr = {\n selectorId,\n debugKey,\n lane: 'static',\n producer: 'jit',\n reads,\n readsDigest,\n equalsKind: 'objectIs',\n }\n\n return {\n selectorId,\n debugKey,\n reads,\n select: selector as any,\n equalsKind: 'objectIs',\n lane: 'static',\n producer: 'jit',\n readsDigest,\n staticIr,\n }\n }\n\n const cachedByFn = readQueryTemplateByFn.get(selector as unknown as Function)\n if (cachedByFn) {\n const staticIr: ReadQueryStaticIr = {\n selectorId: cachedByFn.selectorId,\n debugKey,\n lane: 'static',\n producer: 'jit',\n reads: cachedByFn.reads,\n readsDigest: cachedByFn.readsDigest,\n equalsKind: cachedByFn.equalsKind,\n }\n\n return {\n selectorId: cachedByFn.selectorId,\n debugKey,\n reads: cachedByFn.reads,\n select: selector as any,\n equalsKind: cachedByFn.equalsKind,\n lane: 'static',\n producer: 'jit',\n readsDigest: cachedByFn.readsDigest,\n staticIr,\n }\n }\n\n const srcTrimmed = safeToString(selector as unknown as Function).trim()\n const cachedBySource = srcTrimmed.length > 0 ? lruGet(readQueryTemplateBySource, srcTrimmed) : undefined\n if (cachedBySource) {\n readQueryTemplateByFn.set(selector as unknown as Function, cachedBySource)\n const staticIr: ReadQueryStaticIr = {\n selectorId: cachedBySource.selectorId,\n debugKey,\n lane: 'static',\n producer: 'jit',\n reads: cachedBySource.reads,\n readsDigest: cachedBySource.readsDigest,\n equalsKind: cachedBySource.equalsKind,\n }\n\n return {\n selectorId: cachedBySource.selectorId,\n debugKey,\n reads: cachedBySource.reads,\n select: selector as any,\n equalsKind: cachedBySource.equalsKind,\n lane: 'static',\n producer: 'jit',\n readsDigest: cachedBySource.readsDigest,\n staticIr,\n }\n }\n\n const parsed = srcTrimmed.length > 0 ? tryParseSelectorSource(srcTrimmed) : undefined\n\n if (parsed?.kind === 'path') {\n const reads = [parsed.path]\n const readsDigest = makeReadsDigest(reads)\n const selectorId = computeSelectorId({ kind: 'path', path: parsed.path })\n const template: ReadQueryStaticTemplate = { selectorId, reads, readsDigest, equalsKind: 'objectIs' }\n readQueryTemplateByFn.set(selector as unknown as Function, template)\n lruSet(readQueryTemplateBySource, srcTrimmed, template, READ_QUERY_TEMPLATE_CACHE_MAX)\n\n const staticIr: ReadQueryStaticIr = {\n selectorId,\n debugKey,\n lane: 'static',\n producer: 'jit',\n reads,\n readsDigest,\n equalsKind: 'objectIs',\n }\n\n return {\n selectorId,\n debugKey,\n reads,\n select: selector as any,\n equalsKind: 'objectIs',\n lane: 'static',\n producer: 'jit',\n readsDigest,\n staticIr,\n }\n }\n\n if (parsed?.kind === 'struct') {\n const reads = normalizeReads(parsed.entries.map(([, path]) => path))\n const readsDigest = makeReadsDigest(reads)\n const selectorId = computeSelectorId({ kind: 'struct', entries: parsed.entries })\n const template: ReadQueryStaticTemplate = { selectorId, reads, readsDigest, equalsKind: 'shallowStruct' }\n readQueryTemplateByFn.set(selector as unknown as Function, template)\n lruSet(readQueryTemplateBySource, srcTrimmed, template, READ_QUERY_TEMPLATE_CACHE_MAX)\n\n const staticIr: ReadQueryStaticIr = {\n selectorId,\n debugKey,\n lane: 'static',\n producer: 'jit',\n reads,\n readsDigest,\n equalsKind: 'shallowStruct',\n }\n\n return {\n selectorId,\n debugKey,\n reads,\n select: selector as any,\n equalsKind: 'shallowStruct',\n lane: 'static',\n producer: 'jit',\n readsDigest,\n staticIr,\n }\n }\n\n // Dynamic lane fallback (no stable reads / unsupported subset)\n const baseFallbackReason: ReadQueryFallbackReason =\n srcTrimmed.includes('=>') || srcTrimmed.startsWith('function') ? 'unsupportedSyntax' : 'missingDeps'\n\n const lowDiscriminabilitySource = srcTrimmed.length === 0 || srcTrimmed.includes('[native code]')\n const fallbackReason: ReadQueryFallbackReason =\n !debugKey || lowDiscriminabilitySource ? 'unstableSelectorId' : baseFallbackReason\n\n const selectorId =\n fallbackReason === 'unstableSelectorId'\n ? computeUnstableSelectorId(selector as unknown as Function)\n : computeSelectorId({ kind: 'dynamic', debugKey, src: srcTrimmed })\n const staticIr: ReadQueryStaticIr = {\n selectorId,\n debugKey,\n lane: 'dynamic',\n producer: 'dynamic',\n fallbackReason,\n equalsKind: 'objectIs',\n }\n\n return {\n selectorId,\n debugKey,\n reads: [],\n select: selector as any,\n equalsKind: 'objectIs',\n lane: 'dynamic',\n producer: 'dynamic',\n fallbackReason,\n staticIr,\n }\n}\n\nexport interface ReadQueryStrictGateConfig {\n readonly mode: 'off' | 'warn' | 'error'\n readonly requireStatic?: {\n readonly selectorIds?: ReadonlyArray<string>\n readonly modules?: ReadonlyArray<string>\n }\n readonly denyFallbackReasons?: ReadonlyArray<ReadQueryFallbackReason>\n}\n\nexport interface ReadQueryStrictGateViolationDetails {\n readonly moduleId: string\n readonly instanceId: string\n readonly txnSeq: number\n readonly selectorId: string\n readonly debugKey?: string\n readonly fallbackReason: ReadQueryFallbackReason\n readonly rule: 'denyFallbackReason' | 'requireStatic:global' | 'requireStatic:selectorId' | 'requireStatic:module'\n}\n\nexport interface ReadQueryStrictGateError extends Error {\n readonly _tag: 'ReadQueryStrictGateError'\n readonly details: ReadQueryStrictGateViolationDetails\n}\n\nexport type ReadQueryStrictGateDiagnosticEvent = Extract<DebugSink.Event, { readonly type: 'diagnostic' }>\n\nexport type ReadQueryStrictGateDecision =\n | { readonly verdict: 'PASS' }\n | {\n readonly verdict: 'WARN'\n readonly diagnostic: ReadQueryStrictGateDiagnosticEvent\n readonly details: ReadQueryStrictGateViolationDetails\n }\n | {\n readonly verdict: 'FAIL'\n readonly diagnostic: ReadQueryStrictGateDiagnosticEvent\n readonly error: ReadQueryStrictGateError\n readonly details: ReadQueryStrictGateViolationDetails\n }\n\nconst filterNonEmpty = (values: ReadonlyArray<string> | undefined): ReadonlyArray<string> | undefined => {\n if (!values || values.length === 0) return undefined\n const next = values.map((v) => v.trim()).filter((v) => v.length > 0)\n return next.length > 0 ? next : undefined\n}\n\nconst makeStrictGateDiagnostic = (args: {\n readonly config: ReadQueryStrictGateConfig\n readonly details: ReadQueryStrictGateViolationDetails\n}): ReadQueryStrictGateDiagnosticEvent => {\n const severity = args.config.mode === 'warn' ? ('warning' as const) : ('error' as const)\n\n return {\n type: 'diagnostic',\n moduleId: args.details.moduleId,\n instanceId: args.details.instanceId,\n txnSeq: args.details.txnSeq,\n code: 'read_query::strict_gate',\n severity,\n message: `ReadQuery strict gate violated: selector entered dynamic lane (selectorId=${args.details.selectorId}, reason=${args.details.fallbackReason}).`,\n hint:\n 'Fix: make the selector statically compilable (AOT/JIT) or pass an explicit ReadQuery; ' +\n 'or disable/narrow the gate via RuntimeOptions.readQuery.strictGate.requireStatic / denyFallbackReasons.',\n kind: 'read_query:strict_gate',\n trigger: {\n kind: 'read_query',\n name: 'strict_gate',\n details: args.details,\n },\n }\n}\n\nconst makeStrictGateError = (args: {\n readonly details: ReadQueryStrictGateViolationDetails\n}): ReadQueryStrictGateError =>\n Object.assign(\n new Error(\n `[ReadQueryStrictGateError] selector entered dynamic lane (selectorId=${args.details.selectorId}, reason=${args.details.fallbackReason}).`,\n ),\n {\n _tag: 'ReadQueryStrictGateError' as const,\n details: args.details,\n },\n ) as ReadQueryStrictGateError\n\nexport const evaluateStrictGate = (args: {\n readonly config: ReadQueryStrictGateConfig\n readonly moduleId: string\n readonly instanceId: string\n readonly txnSeq: number\n readonly compiled: ReadQueryCompiled<any, any>\n}): ReadQueryStrictGateDecision => {\n if (args.config.mode === 'off') {\n return { verdict: 'PASS' }\n }\n\n if (args.compiled.lane !== 'dynamic') {\n return { verdict: 'PASS' }\n }\n\n const fallbackReason = (args.compiled.fallbackReason ?? 'missingDeps') as ReadQueryFallbackReason\n\n const denyFallbackReasons = args.config.denyFallbackReasons\n const denied = !!denyFallbackReasons?.includes(fallbackReason)\n\n const selectorIds = filterNonEmpty(args.config.requireStatic?.selectorIds)\n const modules = filterNonEmpty(args.config.requireStatic?.modules)\n const hasCoverageFilter = !!selectorIds || !!modules\n\n const matchedSelectorId = !!selectorIds?.includes(args.compiled.selectorId)\n const matchedModule = !!modules?.includes(args.moduleId)\n const coveredByRequireStatic = !hasCoverageFilter || matchedSelectorId || matchedModule\n\n if (!denied && !coveredByRequireStatic) {\n return { verdict: 'PASS' }\n }\n\n const rule: ReadQueryStrictGateViolationDetails['rule'] = denied\n ? 'denyFallbackReason'\n : !hasCoverageFilter\n ? 'requireStatic:global'\n : matchedSelectorId\n ? 'requireStatic:selectorId'\n : 'requireStatic:module'\n\n const details: ReadQueryStrictGateViolationDetails = {\n moduleId: args.moduleId,\n instanceId: args.instanceId,\n txnSeq: args.txnSeq,\n selectorId: args.compiled.selectorId,\n debugKey: args.compiled.debugKey,\n fallbackReason,\n rule,\n }\n\n const diagnostic = makeStrictGateDiagnostic({ config: args.config, details })\n\n if (args.config.mode === 'warn') {\n return { verdict: 'WARN', diagnostic, details }\n }\n\n const error = makeStrictGateError({ details })\n return { verdict: 'FAIL', diagnostic, error, details }\n}\n"],"mappings":"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","names":["compile","isReadQuery","make","staticIr","selectorId","isReadQuery","make","compile"]}
|
|
1
|
+
{"version":3,"sources":["../src/ReadQuery.ts","../src/internal/digest.ts","../src/internal/runtime/core/ReadQuery.ts","../src/internal/runtime/core/ReadQueryBuildGate.ts"],"sourcesContent":["import * as ReadQueryCore from './internal/runtime/core/ReadQuery.js'\nimport * as ReadQueryBuildGateCore from './internal/runtime/core/ReadQueryBuildGate.js'\n\nexport type ReadLane = ReadQueryCore.ReadLane\nexport type ReadProducer = ReadQueryCore.ReadProducer\nexport type EqualsKind = ReadQueryCore.EqualsKind\nexport type ReadsDigest = ReadQueryCore.ReadsDigest\nexport type ReadQueryStrictGateRule = ReadQueryCore.ReadQueryStrictGateRule\nexport type ReadQueryFallbackReason = ReadQueryCore.ReadQueryFallbackReason\nexport type ReadQueryQualityMeta = ReadQueryCore.ReadQueryQualityMeta\nexport type ReadQueryStrictGateGrade = ReadQueryCore.ReadQueryStrictGateGrade\n\nexport type ReadQueryStaticIr = ReadQueryCore.ReadQueryStaticIr\n\nexport type ReadQuery<S, V> = ReadQueryCore.ReadQuery<S, V>\nexport type ReadQueryCompiled<S, V> = ReadQueryCore.ReadQueryCompiled<S, V>\nexport type ReadQueryInput<S, V> = ReadQueryCore.ReadQueryInput<S, V>\nexport type ReadQueryStrictGateConfig = ReadQueryCore.ReadQueryStrictGateConfig\nexport type ReadQueryStrictGateDecision = ReadQueryCore.ReadQueryStrictGateDecision\n\nexport const isReadQuery = ReadQueryCore.isReadQuery\nexport const isReadQueryCompiled = ReadQueryCore.isReadQueryCompiled\nexport const hasBuildQualityGrade = ReadQueryCore.hasBuildQualityGrade\nexport const shouldEvaluateStrictGateAtRuntime = ReadQueryCore.shouldEvaluateStrictGateAtRuntime\nexport const markRuntimeMissingBuildGrade = ReadQueryCore.markRuntimeMissingBuildGrade\nexport const resolveBuildGradeStrictGateDecision = ReadQueryCore.resolveBuildGradeStrictGateDecision\n\nexport const make = ReadQueryCore.make\n\nexport const compile = ReadQueryCore.compile\nexport const evaluateStrictGate = ReadQueryCore.evaluateStrictGate\n\nexport type SelectorQualityEntry = ReadQueryBuildGateCore.SelectorQualityEntry\nexport type SelectorQualitySummary = ReadQueryBuildGateCore.SelectorQualitySummary\nexport type SelectorQualityReport = ReadQueryBuildGateCore.SelectorQualityReport\nexport type SelectorQualityReportResult = ReadQueryBuildGateCore.SelectorQualityReportResult\nexport type BuildReadQueryGradeResult<S, V> = ReadQueryBuildGateCore.BuildReadQueryGradeResult<S, V>\n\nexport const gradeReadQueryAtBuild = ReadQueryBuildGateCore.gradeReadQueryAtBuild\nexport const buildSelectorQualityReport = ReadQueryBuildGateCore.buildSelectorQualityReport\nexport const hasBuildGateFailure = ReadQueryBuildGateCore.hasBuildGateFailure\n","/**\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","import { fnv1a32, stableStringify } from '../../digest.js'\nimport type * as DebugSink from './DebugSink.js'\n\nexport type ReadLane = 'static' | 'dynamic'\n\nexport type ReadProducer = 'aot' | 'jit' | 'manual' | 'dynamic'\n\nexport type ReadQueryFallbackReason = 'missingDeps' | 'unsupportedSyntax' | 'unstableSelectorId' | 'missingBuildGrade'\n\nexport type EqualsKind = 'objectIs' | 'shallowStruct' | 'custom'\n\nexport type ReadQueryStrictGateRule =\n | 'denyFallbackReason'\n | 'requireStatic:global'\n | 'requireStatic:selectorId'\n | 'requireStatic:module'\n\nexport type ReadQueryQualitySource = 'build' | 'runtime_jit' | 'runtime_dynamic_fallback'\n\nexport interface ReadQueryStrictGateGrade {\n readonly evaluatedAt: 'build' | 'runtime'\n readonly verdict: 'PASS' | 'WARN' | 'FAIL'\n readonly rule?: ReadQueryStrictGateRule\n readonly fallbackReason?: ReadQueryFallbackReason\n}\n\nexport interface ReadQueryQualityMeta {\n readonly source: ReadQueryQualitySource\n readonly strictGate?: ReadQueryStrictGateGrade\n readonly reportId?: string\n readonly missingBuildGrade?: boolean\n}\n\nexport interface ReadsDigest {\n readonly count: number\n readonly hash: number\n}\n\nexport interface ReadQueryStaticIr {\n readonly selectorId: string\n readonly debugKey?: string\n readonly lane: ReadLane\n readonly producer: ReadProducer\n readonly reads?: ReadonlyArray<string | number>\n readonly readsDigest?: ReadsDigest\n readonly fallbackReason?: ReadQueryFallbackReason\n readonly equalsKind: EqualsKind\n}\n\nexport interface ReadQuery<S, V> {\n readonly selectorId: string\n readonly debugKey?: string\n readonly reads: ReadonlyArray<string | number>\n readonly select: (state: S) => V\n readonly equalsKind: EqualsKind\n readonly equals?: (previous: V, next: V) => boolean\n}\n\nexport interface ReadQueryCompiled<S, V> extends ReadQuery<S, V> {\n readonly lane: ReadLane\n readonly producer: ReadProducer\n readonly readsDigest?: ReadsDigest\n readonly fallbackReason?: ReadQueryFallbackReason\n readonly staticIr: ReadQueryStaticIr\n readonly quality?: ReadQueryQualityMeta\n}\n\nexport type ReadQueryInput<S, V> = ((state: S) => V) | ReadQuery<S, V>\n\nexport function isReadQuery<S, V>(input: ReadQueryInput<S, V>): input is ReadQuery<S, V>\nexport function isReadQuery(input: unknown): input is ReadQuery<any, any>\nexport function isReadQuery(input: unknown): input is ReadQuery<any, any> {\n if (!input || (typeof input !== 'object' && typeof input !== 'function')) return false\n const maybe = input as any\n return typeof maybe.selectorId === 'string' && typeof maybe.select === 'function' && Array.isArray(maybe.reads)\n}\n\nexport function isReadQueryCompiled<S, V>(input: ReadQueryInput<S, V> | ReadQueryCompiled<S, V>): input is ReadQueryCompiled<S, V>\nexport function isReadQueryCompiled(input: unknown): input is ReadQueryCompiled<any, any>\nexport function isReadQueryCompiled(input: unknown): input is ReadQueryCompiled<any, any> {\n if (!input || typeof input !== 'object') return false\n const maybe = input as any\n return (\n typeof maybe.selectorId === 'string' &&\n typeof maybe.select === 'function' &&\n Array.isArray(maybe.reads) &&\n maybe.staticIr != null &&\n typeof maybe.lane === 'string' &&\n typeof maybe.producer === 'string'\n )\n}\n\nexport const hasBuildQualityGrade = (compiled: ReadQueryCompiled<any, any>): boolean =>\n compiled.quality?.source === 'build' && compiled.quality.strictGate?.evaluatedAt === 'build'\n\nexport const shouldEvaluateStrictGateAtRuntime = (compiled: ReadQueryCompiled<any, any>): boolean =>\n compiled.lane === 'dynamic' && !hasBuildQualityGrade(compiled)\n\nexport const markRuntimeMissingBuildGrade = <S, V>(compiled: ReadQueryCompiled<S, V>): ReadQueryCompiled<S, V> => {\n if (compiled.lane !== 'dynamic' || hasBuildQualityGrade(compiled)) return compiled\n if (compiled.quality?.missingBuildGrade === true && compiled.fallbackReason === 'missingBuildGrade') return compiled\n return {\n ...compiled,\n fallbackReason: 'missingBuildGrade',\n staticIr: {\n ...compiled.staticIr,\n fallbackReason: 'missingBuildGrade',\n },\n quality: {\n ...(compiled.quality ?? {}),\n source: 'runtime_dynamic_fallback',\n missingBuildGrade: true,\n },\n }\n}\n\nconst normalizeReads = (reads: ReadonlyArray<string | number>): ReadonlyArray<string | number> => {\n const unique: Array<string | number> = []\n const seen = new Set<string>()\n for (const r of reads) {\n const key = typeof r === 'number' ? `n:${r}` : `s:${r}`\n if (seen.has(key)) continue\n seen.add(key)\n unique.push(r)\n }\n return unique.slice().sort()\n}\n\nconst toHash32Number = (hex: string): number => Number.parseInt(hex, 16)\n\nconst makeReadsDigest = (reads: ReadonlyArray<string | number>): ReadsDigest => {\n const normalized = normalizeReads(reads)\n return {\n count: normalized.length,\n hash: toHash32Number(fnv1a32(stableStringify(normalized))),\n }\n}\n\nconst computeSelectorId = (value: unknown): string => `rq_${fnv1a32(stableStringify(value))}`\n\nlet nextUnstableSelectorSeq = 0\nconst unstableSelectorIdByFn = new WeakMap<Function, string>()\n\nconst computeUnstableSelectorId = (selector: Function): string => {\n const existing = unstableSelectorIdByFn.get(selector)\n if (existing) return existing\n nextUnstableSelectorSeq += 1\n const selectorId = `rq_u${nextUnstableSelectorSeq}`\n unstableSelectorIdByFn.set(selector, selectorId)\n return selectorId\n}\n\nconst unwrapParens = (input: string): string => {\n const trimmed = input.trim()\n if (trimmed.startsWith('(') && trimmed.endsWith(')')) {\n const inner = trimmed.slice(1, -1).trim()\n // Only unwrap the outermost pair of parentheses to avoid accidentally breaking syntax.\n if (!inner.startsWith('(') || !inner.endsWith(')')) {\n return inner\n }\n }\n return trimmed\n}\n\nconst extractArrow = (source: string): { readonly param: string; readonly body: string } | undefined => {\n const idx = source.indexOf('=>')\n if (idx < 0) return undefined\n const left = source.slice(0, idx).trim()\n const right = source.slice(idx + 2).trim()\n\n const paramRaw = unwrapParens(left)\n if (!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(paramRaw)) return undefined\n\n // block body: { return expr }\n if (right.startsWith('{')) {\n const m = right.match(/^\\{\\s*return\\s+(.+?);?\\s*\\}\\s*$/s)\n if (!m) return undefined\n return { param: paramRaw, body: m[1]?.trim() ?? '' }\n }\n\n return { param: paramRaw, body: right }\n}\n\nconst extractFunctionReturn = (source: string): { readonly param: string; readonly body: string } | undefined => {\n const trimmed = source.trim()\n const m = trimmed.match(\n /^function\\s*(?:[A-Za-z_$][A-Za-z0-9_$]*\\s*)?\\(\\s*([A-Za-z_$][A-Za-z0-9_$]*)\\s*\\)\\s*\\{\\s*return\\s+(.+?);?\\s*\\}\\s*$/s,\n )\n if (!m) return undefined\n\n const param = m[1]?.trim() ?? ''\n if (!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(param)) return undefined\n\n const body = m[2]?.trim() ?? ''\n if (body.length === 0) return undefined\n\n return { param, body }\n}\n\ntype ParsedSelector =\n | { readonly kind: 'path'; readonly path: string }\n | { readonly kind: 'struct'; readonly entries: ReadonlyArray<readonly [string, string]> }\n\nconst tryParseSelectorSource = (source: string): ParsedSelector | undefined => {\n const arrowOrFn = extractArrow(source) ?? extractFunctionReturn(source)\n if (!arrowOrFn) return undefined\n\n const expr = unwrapParens(arrowOrFn.body).trim().replace(/;$/, '').trim()\n\n // path: s.a.b\n {\n const re = new RegExp(`^${arrowOrFn.param}\\\\.([A-Za-z0-9_$]+(?:\\\\.[A-Za-z0-9_$]+)*)$`)\n const m = expr.match(re)\n if (m) {\n return { kind: 'path', path: m[1] }\n }\n }\n\n // struct: ({ a: s.a, b: s.b })\n if (expr.startsWith('{') && expr.endsWith('}')) {\n const inner = expr.slice(1, -1).trim()\n if (inner.length === 0) return { kind: 'struct', entries: [] }\n\n const parts = inner\n .split(',')\n .map((p) => p.trim())\n .filter((p) => p.length > 0)\n\n const entries: Array<readonly [string, string]> = []\n\n for (const part of parts) {\n const idx = part.indexOf(':')\n if (idx < 0) return undefined\n const key = part.slice(0, idx).trim()\n const value = part.slice(idx + 1).trim()\n\n if (!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key)) return undefined\n\n const re = new RegExp(`^${arrowOrFn.param}\\\\.([A-Za-z0-9_$]+(?:\\\\.[A-Za-z0-9_$]+)*)$`)\n const m = value.match(re)\n if (!m) return undefined\n entries.push([key, m[1]] as const)\n }\n\n // Sort entries to ensure a stable selectorId.\n entries.sort((a, b) => (a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0))\n return { kind: 'struct', entries }\n }\n\n return undefined\n}\n\ntype ReadQueryStaticTemplate = {\n readonly selectorId: string\n readonly reads: ReadonlyArray<string | number>\n readonly readsDigest: ReadsDigest\n readonly equalsKind: EqualsKind\n}\n\nconst READ_QUERY_TEMPLATE_CACHE_MAX = 2048\nconst readQueryTemplateByFn = new WeakMap<Function, ReadQueryStaticTemplate>()\nconst readQueryTemplateBySource = new Map<string, ReadQueryStaticTemplate>()\n\nconst lruGet = <K, V>(map: Map<K, V>, key: K): V | undefined => {\n const value = map.get(key)\n if (value === undefined) return undefined\n map.delete(key)\n map.set(key, value)\n return value\n}\n\nconst lruSet = <K, V>(map: Map<K, V>, key: K, value: V, maxSize: number) => {\n if (map.has(key)) map.delete(key)\n map.set(key, value)\n if (map.size <= maxSize) return\n const oldestKey = map.keys().next().value as K | undefined\n if (oldestKey !== undefined) {\n map.delete(oldestKey)\n }\n}\n\nconst safeToString = (fn: Function): string => {\n try {\n return fn.toString()\n } catch {\n return ''\n }\n}\n\nexport const make = <S, V>(spec: ReadQuery<S, V>): ReadQuery<S, V> => spec\n\nexport const compile = <S, V>(input: ReadQueryInput<S, V>): ReadQueryCompiled<S, V> => {\n if (isReadQuery(input)) {\n const reads = normalizeReads(input.reads)\n const readsDigest = reads.length > 0 ? makeReadsDigest(reads) : undefined\n\n const equalsKind = input.equalsKind\n const staticIr: ReadQueryStaticIr = {\n selectorId: input.selectorId,\n debugKey: input.debugKey,\n lane: 'static',\n producer: 'manual',\n reads,\n readsDigest,\n equalsKind,\n }\n\n return {\n ...input,\n reads,\n lane: 'static',\n producer: 'manual',\n readsDigest,\n staticIr,\n }\n }\n\n const selector = input\n const debugKey =\n (typeof (selector as any)?.debugKey === 'string' && (selector as any).debugKey.length > 0\n ? (selector as any).debugKey\n : undefined) ??\n (typeof (selector as any).name === 'string' && (selector as any).name.length > 0\n ? (selector as any).name\n : undefined)\n\n const declaredReads: ReadonlyArray<string> | undefined = Array.isArray((selector as any)?.fieldPaths)\n ? ((selector as any).fieldPaths as ReadonlyArray<unknown>).filter((x): x is string => typeof x === 'string')\n : undefined\n\n if (declaredReads && declaredReads.length > 0) {\n const reads = normalizeReads(declaredReads)\n const readsDigest = makeReadsDigest(reads)\n const selectorId = computeSelectorId({ kind: 'reads', reads })\n\n const staticIr: ReadQueryStaticIr = {\n selectorId,\n debugKey,\n lane: 'static',\n producer: 'jit',\n reads,\n readsDigest,\n equalsKind: 'objectIs',\n }\n\n return {\n selectorId,\n debugKey,\n reads,\n select: selector as any,\n equalsKind: 'objectIs',\n lane: 'static',\n producer: 'jit',\n readsDigest,\n staticIr,\n }\n }\n\n const cachedByFn = readQueryTemplateByFn.get(selector as unknown as Function)\n if (cachedByFn) {\n const staticIr: ReadQueryStaticIr = {\n selectorId: cachedByFn.selectorId,\n debugKey,\n lane: 'static',\n producer: 'jit',\n reads: cachedByFn.reads,\n readsDigest: cachedByFn.readsDigest,\n equalsKind: cachedByFn.equalsKind,\n }\n\n return {\n selectorId: cachedByFn.selectorId,\n debugKey,\n reads: cachedByFn.reads,\n select: selector as any,\n equalsKind: cachedByFn.equalsKind,\n lane: 'static',\n producer: 'jit',\n readsDigest: cachedByFn.readsDigest,\n staticIr,\n }\n }\n\n const srcTrimmed = safeToString(selector as unknown as Function).trim()\n const cachedBySource = srcTrimmed.length > 0 ? lruGet(readQueryTemplateBySource, srcTrimmed) : undefined\n if (cachedBySource) {\n readQueryTemplateByFn.set(selector as unknown as Function, cachedBySource)\n const staticIr: ReadQueryStaticIr = {\n selectorId: cachedBySource.selectorId,\n debugKey,\n lane: 'static',\n producer: 'jit',\n reads: cachedBySource.reads,\n readsDigest: cachedBySource.readsDigest,\n equalsKind: cachedBySource.equalsKind,\n }\n\n return {\n selectorId: cachedBySource.selectorId,\n debugKey,\n reads: cachedBySource.reads,\n select: selector as any,\n equalsKind: cachedBySource.equalsKind,\n lane: 'static',\n producer: 'jit',\n readsDigest: cachedBySource.readsDigest,\n staticIr,\n }\n }\n\n const parsed = srcTrimmed.length > 0 ? tryParseSelectorSource(srcTrimmed) : undefined\n\n if (parsed?.kind === 'path') {\n const reads = [parsed.path]\n const readsDigest = makeReadsDigest(reads)\n const selectorId = computeSelectorId({ kind: 'path', path: parsed.path })\n const template: ReadQueryStaticTemplate = { selectorId, reads, readsDigest, equalsKind: 'objectIs' }\n readQueryTemplateByFn.set(selector as unknown as Function, template)\n lruSet(readQueryTemplateBySource, srcTrimmed, template, READ_QUERY_TEMPLATE_CACHE_MAX)\n\n const staticIr: ReadQueryStaticIr = {\n selectorId,\n debugKey,\n lane: 'static',\n producer: 'jit',\n reads,\n readsDigest,\n equalsKind: 'objectIs',\n }\n\n return {\n selectorId,\n debugKey,\n reads,\n select: selector as any,\n equalsKind: 'objectIs',\n lane: 'static',\n producer: 'jit',\n readsDigest,\n staticIr,\n }\n }\n\n if (parsed?.kind === 'struct') {\n const reads = normalizeReads(parsed.entries.map(([, path]) => path))\n const readsDigest = makeReadsDigest(reads)\n const selectorId = computeSelectorId({ kind: 'struct', entries: parsed.entries })\n const template: ReadQueryStaticTemplate = { selectorId, reads, readsDigest, equalsKind: 'shallowStruct' }\n readQueryTemplateByFn.set(selector as unknown as Function, template)\n lruSet(readQueryTemplateBySource, srcTrimmed, template, READ_QUERY_TEMPLATE_CACHE_MAX)\n\n const staticIr: ReadQueryStaticIr = {\n selectorId,\n debugKey,\n lane: 'static',\n producer: 'jit',\n reads,\n readsDigest,\n equalsKind: 'shallowStruct',\n }\n\n return {\n selectorId,\n debugKey,\n reads,\n select: selector as any,\n equalsKind: 'shallowStruct',\n lane: 'static',\n producer: 'jit',\n readsDigest,\n staticIr,\n }\n }\n\n // Dynamic lane fallback (no stable reads / unsupported subset)\n const baseFallbackReason: ReadQueryFallbackReason =\n srcTrimmed.includes('=>') || srcTrimmed.startsWith('function') ? 'unsupportedSyntax' : 'missingDeps'\n\n const lowDiscriminabilitySource = srcTrimmed.length === 0 || srcTrimmed.includes('[native code]')\n const fallbackReason: ReadQueryFallbackReason =\n !debugKey || lowDiscriminabilitySource ? 'unstableSelectorId' : baseFallbackReason\n\n const selectorId =\n fallbackReason === 'unstableSelectorId'\n ? computeUnstableSelectorId(selector as unknown as Function)\n : computeSelectorId({ kind: 'dynamic', debugKey, src: srcTrimmed })\n const staticIr: ReadQueryStaticIr = {\n selectorId,\n debugKey,\n lane: 'dynamic',\n producer: 'dynamic',\n fallbackReason,\n equalsKind: 'objectIs',\n }\n\n return {\n selectorId,\n debugKey,\n reads: [],\n select: selector as any,\n equalsKind: 'objectIs',\n lane: 'dynamic',\n producer: 'dynamic',\n fallbackReason,\n staticIr,\n }\n}\n\nexport interface ReadQueryStrictGateConfig {\n readonly mode: 'off' | 'warn' | 'error'\n readonly requireStatic?: {\n readonly selectorIds?: ReadonlyArray<string>\n readonly modules?: ReadonlyArray<string>\n }\n readonly denyFallbackReasons?: ReadonlyArray<ReadQueryFallbackReason>\n}\n\nexport interface ReadQueryStrictGateViolationDetails {\n readonly moduleId: string\n readonly instanceId: string\n readonly txnSeq: number\n readonly selectorId: string\n readonly debugKey?: string\n readonly fallbackReason: ReadQueryFallbackReason\n readonly rule: ReadQueryStrictGateRule\n}\n\nexport interface ReadQueryStrictGateError extends Error {\n readonly _tag: 'ReadQueryStrictGateError'\n readonly details: ReadQueryStrictGateViolationDetails\n}\n\nexport type ReadQueryStrictGateDiagnosticEvent = Extract<DebugSink.Event, { readonly type: 'diagnostic' }>\n\nexport type ReadQueryStrictGateDecision =\n | { readonly verdict: 'PASS' }\n | {\n readonly verdict: 'WARN'\n readonly diagnostic: ReadQueryStrictGateDiagnosticEvent\n readonly details: ReadQueryStrictGateViolationDetails\n }\n | {\n readonly verdict: 'FAIL'\n readonly diagnostic: ReadQueryStrictGateDiagnosticEvent\n readonly error: ReadQueryStrictGateError\n readonly details: ReadQueryStrictGateViolationDetails\n }\n\nconst filterNonEmpty = (values: ReadonlyArray<string> | undefined): ReadonlyArray<string> | undefined => {\n if (!values || values.length === 0) return undefined\n const next = values.map((v) => v.trim()).filter((v) => v.length > 0)\n return next.length > 0 ? next : undefined\n}\n\nconst makeStrictGateDiagnostic = (args: {\n readonly config: ReadQueryStrictGateConfig\n readonly details: ReadQueryStrictGateViolationDetails\n}): ReadQueryStrictGateDiagnosticEvent => {\n const severity = args.config.mode === 'warn' ? ('warning' as const) : ('error' as const)\n\n return {\n type: 'diagnostic',\n moduleId: args.details.moduleId,\n instanceId: args.details.instanceId,\n txnSeq: args.details.txnSeq,\n code: 'read_query::strict_gate',\n severity,\n message: `ReadQuery strict gate violated: selector entered dynamic lane (selectorId=${args.details.selectorId}, reason=${args.details.fallbackReason}).`,\n hint:\n 'Fix: make the selector statically compilable (AOT/JIT) or pass an explicit ReadQuery; ' +\n 'or disable/narrow the gate via RuntimeOptions.readQuery.strictGate.requireStatic / denyFallbackReasons.',\n kind: 'read_query:strict_gate',\n trigger: {\n kind: 'read_query',\n name: 'strict_gate',\n details: args.details,\n },\n }\n}\n\nconst makeStrictGateError = (args: {\n readonly details: ReadQueryStrictGateViolationDetails\n}): ReadQueryStrictGateError =>\n Object.assign(\n new Error(\n `[ReadQueryStrictGateError] selector entered dynamic lane (selectorId=${args.details.selectorId}, reason=${args.details.fallbackReason}).`,\n ),\n {\n _tag: 'ReadQueryStrictGateError' as const,\n details: args.details,\n },\n ) as ReadQueryStrictGateError\n\nexport const resolveBuildGradeStrictGateDecision = (args: {\n readonly moduleId: string\n readonly instanceId: string\n readonly txnSeq: number\n readonly compiled: ReadQueryCompiled<any, any>\n}): ReadQueryStrictGateDecision | undefined => {\n if (args.compiled.quality?.source !== 'build') return undefined\n const grade = args.compiled.quality.strictGate\n if (!grade || grade.evaluatedAt !== 'build') return undefined\n if (grade.verdict === 'PASS') return undefined\n\n const fallbackReason = (grade.fallbackReason ?? args.compiled.fallbackReason ?? 'missingDeps') as ReadQueryFallbackReason\n const details: ReadQueryStrictGateViolationDetails = {\n moduleId: args.moduleId,\n instanceId: args.instanceId,\n txnSeq: args.txnSeq,\n selectorId: args.compiled.selectorId,\n debugKey: args.compiled.debugKey,\n fallbackReason,\n rule: grade.rule ?? 'requireStatic:global',\n }\n\n const config: ReadQueryStrictGateConfig = {\n mode: grade.verdict === 'WARN' ? 'warn' : 'error',\n }\n const diagnostic = makeStrictGateDiagnostic({ config, details })\n\n if (grade.verdict === 'WARN') {\n return { verdict: 'WARN', diagnostic, details }\n }\n\n return {\n verdict: 'FAIL',\n diagnostic,\n error: makeStrictGateError({ details }),\n details,\n }\n}\n\nexport const evaluateStrictGate = (args: {\n readonly config: ReadQueryStrictGateConfig\n readonly moduleId: string\n readonly instanceId: string\n readonly txnSeq: number\n readonly compiled: ReadQueryCompiled<any, any>\n}): ReadQueryStrictGateDecision => {\n if (args.config.mode === 'off') {\n return { verdict: 'PASS' }\n }\n\n if (args.compiled.lane !== 'dynamic') {\n return { verdict: 'PASS' }\n }\n\n const fallbackReason = (args.compiled.fallbackReason ?? 'missingDeps') as ReadQueryFallbackReason\n\n const denyFallbackReasons = args.config.denyFallbackReasons\n const denied = !!denyFallbackReasons?.includes(fallbackReason)\n\n const selectorIds = filterNonEmpty(args.config.requireStatic?.selectorIds)\n const modules = filterNonEmpty(args.config.requireStatic?.modules)\n const hasCoverageFilter = !!selectorIds || !!modules\n\n const matchedSelectorId = !!selectorIds?.includes(args.compiled.selectorId)\n const matchedModule = !!modules?.includes(args.moduleId)\n const coveredByRequireStatic = !hasCoverageFilter || matchedSelectorId || matchedModule\n\n if (!denied && !coveredByRequireStatic) {\n return { verdict: 'PASS' }\n }\n\n const rule: ReadQueryStrictGateRule = denied\n ? 'denyFallbackReason'\n : !hasCoverageFilter\n ? 'requireStatic:global'\n : matchedSelectorId\n ? 'requireStatic:selectorId'\n : 'requireStatic:module'\n\n const details: ReadQueryStrictGateViolationDetails = {\n moduleId: args.moduleId,\n instanceId: args.instanceId,\n txnSeq: args.txnSeq,\n selectorId: args.compiled.selectorId,\n debugKey: args.compiled.debugKey,\n fallbackReason,\n rule,\n }\n\n const diagnostic = makeStrictGateDiagnostic({ config: args.config, details })\n\n if (args.config.mode === 'warn') {\n return { verdict: 'WARN', diagnostic, details }\n }\n\n const error = makeStrictGateError({ details })\n return { verdict: 'FAIL', diagnostic, error, details }\n}\n","import { fnv1a32, stableStringify } from '../../digest.js'\nimport {\n compile,\n evaluateStrictGate,\n isReadQueryCompiled,\n type ReadQueryCompiled,\n type ReadQueryFallbackReason,\n type ReadQueryInput,\n type ReadQueryStrictGateConfig,\n type ReadQueryStrictGateDecision,\n type ReadQueryStrictGateRule,\n} from './ReadQuery.js'\n\nexport interface SelectorQualityEntry {\n readonly moduleId: string\n readonly selectorId: string\n readonly debugKey?: string\n readonly lane: ReadQueryCompiled<any, any>['lane']\n readonly producer: ReadQueryCompiled<any, any>['producer']\n readonly readsDigest?: ReadQueryCompiled<any, any>['readsDigest']\n readonly fallbackReason?: ReadQueryFallbackReason\n readonly strictGateVerdict: 'PASS' | 'WARN' | 'FAIL'\n readonly strictGateRule?: ReadQueryStrictGateRule\n readonly diagnosticCode?: 'read_query::strict_gate'\n}\n\nexport interface SelectorQualitySummary {\n readonly total: number\n readonly staticCount: number\n readonly dynamicCount: number\n readonly warnCount: number\n readonly failCount: number\n readonly fallbackBreakdown: Readonly<Record<string, number>>\n}\n\nexport interface SelectorQualityReport {\n readonly reportId: string\n readonly moduleId: string\n readonly generatedAt: string\n readonly entries: ReadonlyArray<SelectorQualityEntry>\n readonly summary: SelectorQualitySummary\n}\n\nexport interface BuildReadQueryGradeResult<S, V> {\n readonly compiled: ReadQueryCompiled<S, V>\n readonly entry: SelectorQualityEntry\n readonly strictGateDecision: ReadQueryStrictGateDecision\n}\n\nconst toVerdict = (decision: ReadQueryStrictGateDecision): 'PASS' | 'WARN' | 'FAIL' => decision.verdict\n\nconst toRule = (decision: ReadQueryStrictGateDecision): ReadQueryStrictGateRule | undefined => {\n if (decision.verdict === 'PASS') return undefined\n return decision.details.rule\n}\n\nconst toFallbackReason = (\n decision: ReadQueryStrictGateDecision,\n compiled: ReadQueryCompiled<any, any>,\n): ReadQueryFallbackReason | undefined => {\n if (decision.verdict !== 'PASS') return decision.details.fallbackReason\n return compiled.fallbackReason\n}\n\nexport const gradeReadQueryAtBuild = <S, V>(args: {\n readonly moduleId: string\n readonly input: ReadQueryInput<S, V> | ReadQueryCompiled<S, V>\n readonly strictGate?: ReadQueryStrictGateConfig\n readonly reportId?: string\n}): BuildReadQueryGradeResult<S, V> => {\n const compiled = isReadQueryCompiled<S, V>(args.input) ? args.input : compile(args.input)\n\n const strictGateDecision: ReadQueryStrictGateDecision =\n args.strictGate && args.strictGate.mode !== 'off'\n ? evaluateStrictGate({\n config: args.strictGate,\n moduleId: args.moduleId,\n instanceId: 'build',\n txnSeq: 0,\n compiled,\n })\n : { verdict: 'PASS' }\n\n const strictGateVerdict = toVerdict(strictGateDecision)\n const strictGateRule = toRule(strictGateDecision)\n const fallbackReason = toFallbackReason(strictGateDecision, compiled)\n\n const entry: SelectorQualityEntry = {\n moduleId: args.moduleId,\n selectorId: compiled.selectorId,\n debugKey: compiled.debugKey,\n lane: compiled.lane,\n producer: compiled.producer,\n readsDigest: compiled.readsDigest,\n fallbackReason,\n strictGateVerdict,\n strictGateRule,\n diagnosticCode: strictGateVerdict === 'PASS' ? undefined : 'read_query::strict_gate',\n }\n\n const graded: ReadQueryCompiled<S, V> = {\n ...compiled,\n quality: {\n source: 'build',\n reportId: args.reportId,\n strictGate: {\n evaluatedAt: 'build',\n verdict: strictGateVerdict,\n rule: strictGateRule,\n fallbackReason,\n },\n },\n }\n\n return {\n compiled: graded,\n entry,\n strictGateDecision,\n }\n}\n\nconst summarizeEntries = (entries: ReadonlyArray<SelectorQualityEntry>): SelectorQualitySummary => {\n let staticCount = 0\n let dynamicCount = 0\n let warnCount = 0\n let failCount = 0\n const fallbackBreakdown: Record<string, number> = {}\n\n for (const entry of entries) {\n if (entry.lane === 'static') {\n staticCount += 1\n } else {\n dynamicCount += 1\n }\n\n if (entry.strictGateVerdict === 'WARN') warnCount += 1\n if (entry.strictGateVerdict === 'FAIL') failCount += 1\n\n if (entry.fallbackReason) {\n fallbackBreakdown[entry.fallbackReason] = (fallbackBreakdown[entry.fallbackReason] ?? 0) + 1\n }\n }\n\n return {\n total: entries.length,\n staticCount,\n dynamicCount,\n warnCount,\n failCount,\n fallbackBreakdown,\n }\n}\n\nconst makeReportId = (moduleId: string, entries: ReadonlyArray<SelectorQualityEntry>): string => {\n const digestInput = entries.map((entry) => ({\n selectorId: entry.selectorId,\n lane: entry.lane,\n producer: entry.producer,\n fallbackReason: entry.fallbackReason,\n strictGateVerdict: entry.strictGateVerdict,\n strictGateRule: entry.strictGateRule,\n readsDigest: entry.readsDigest,\n }))\n\n return `rq_report_${fnv1a32(stableStringify({ moduleId, entries: digestInput }))}`\n}\n\nexport interface SelectorQualityReportResult {\n readonly report: SelectorQualityReport\n readonly graded: ReadonlyArray<BuildReadQueryGradeResult<any, any>>\n}\n\nexport const buildSelectorQualityReport = (args: {\n readonly moduleId: string\n readonly selectors: ReadonlyArray<ReadQueryInput<any, any> | ReadQueryCompiled<any, any>>\n readonly strictGate?: ReadQueryStrictGateConfig\n readonly generatedAt?: string\n}): SelectorQualityReportResult => {\n const gradedWithoutReportId = args.selectors.map((input) =>\n gradeReadQueryAtBuild({\n moduleId: args.moduleId,\n input,\n strictGate: args.strictGate,\n }),\n )\n\n const reportId = makeReportId(\n args.moduleId,\n gradedWithoutReportId.map((it) => it.entry),\n )\n\n const graded = gradedWithoutReportId.map((result) => {\n const quality = result.compiled.quality\n if (!quality) {\n throw new Error('gradeReadQueryAtBuild must attach quality metadata')\n }\n\n return {\n ...result,\n compiled: {\n ...result.compiled,\n quality: {\n ...quality,\n reportId,\n },\n },\n }\n })\n\n const entries = graded.map((it) => it.entry)\n const summary = summarizeEntries(entries)\n\n const report: SelectorQualityReport = {\n reportId,\n moduleId: args.moduleId,\n generatedAt: args.generatedAt ?? new Date().toISOString(),\n entries,\n summary,\n }\n\n return {\n report,\n graded,\n }\n}\n\nexport const hasBuildGateFailure = (report: SelectorQualityReport): boolean => report.summary.failCount > 0\n"],"mappings":"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","names":["buildSelectorQualityReport","compile","evaluateStrictGate","gradeReadQueryAtBuild","hasBuildGateFailure","hasBuildQualityGrade","isReadQuery","isReadQueryCompiled","make","markRuntimeMissingBuildGrade","resolveBuildGradeStrictGateDecision","shouldEvaluateStrictGateAtRuntime","staticIr","selectorId","isReadQuery","isReadQueryCompiled","hasBuildQualityGrade","shouldEvaluateStrictGateAtRuntime","markRuntimeMissingBuildGrade","resolveBuildGradeStrictGateDecision","make","compile","evaluateStrictGate","gradeReadQueryAtBuild","buildSelectorQualityReport","hasBuildGateFailure"]}
|
package/dist/ReadQuery.d.cts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import './ReadQuery-
|
|
2
|
-
export { E as EqualsKind,
|
|
1
|
+
import './ReadQuery-DXLzCE0E.cjs';
|
|
2
|
+
export { B as BuildReadQueryGradeResult, E as EqualsKind, c as ReadLane, d as ReadProducer, k as ReadQuery, b as ReadQueryCompiled, g as ReadQueryFallbackReason, a as ReadQueryInput, h as ReadQueryQualityMeta, j as ReadQueryStaticIr, l as ReadQueryStrictGateConfig, m as ReadQueryStrictGateDecision, i as ReadQueryStrictGateGrade, f as ReadQueryStrictGateRule, e as ReadsDigest, S as SelectorQualityEntry, x as SelectorQualityReport, y as SelectorQualityReportResult, w as SelectorQualitySummary, A as buildSelectorQualityReport, u as compile, v as evaluateStrictGate, z as gradeReadQueryAtBuild, C as hasBuildGateFailure, p as hasBuildQualityGrade, n as isReadQuery, o as isReadQueryCompiled, t as make, q as markRuntimeMissingBuildGrade, r as resolveBuildGradeStrictGateDecision, s as shouldEvaluateStrictGateAtRuntime } from './ReadQuery-Yve1lmUo.cjs';
|
|
3
|
+
import 'effect';
|
package/dist/ReadQuery.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import './ReadQuery-
|
|
2
|
-
export { E as EqualsKind,
|
|
1
|
+
import './ReadQuery-DXLzCE0E.js';
|
|
2
|
+
export { B as BuildReadQueryGradeResult, E as EqualsKind, c as ReadLane, d as ReadProducer, k as ReadQuery, b as ReadQueryCompiled, g as ReadQueryFallbackReason, a as ReadQueryInput, h as ReadQueryQualityMeta, j as ReadQueryStaticIr, l as ReadQueryStrictGateConfig, m as ReadQueryStrictGateDecision, i as ReadQueryStrictGateGrade, f as ReadQueryStrictGateRule, e as ReadsDigest, S as SelectorQualityEntry, x as SelectorQualityReport, y as SelectorQualityReportResult, w as SelectorQualitySummary, A as buildSelectorQualityReport, u as compile, v as evaluateStrictGate, z as gradeReadQueryAtBuild, C as hasBuildGateFailure, p as hasBuildQualityGrade, n as isReadQuery, o as isReadQueryCompiled, t as make, q as markRuntimeMissingBuildGrade, r as resolveBuildGradeStrictGateDecision, s as shouldEvaluateStrictGateAtRuntime } from './ReadQuery-C_or5nLC.js';
|
|
3
|
+
import 'effect';
|
package/dist/ReadQuery.js
CHANGED
|
@@ -1,14 +1,32 @@
|
|
|
1
1
|
import {
|
|
2
|
+
buildSelectorQualityReport,
|
|
2
3
|
compile,
|
|
4
|
+
evaluateStrictGate,
|
|
5
|
+
gradeReadQueryAtBuild,
|
|
6
|
+
hasBuildGateFailure,
|
|
7
|
+
hasBuildQualityGrade,
|
|
3
8
|
isReadQuery,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
isReadQueryCompiled,
|
|
10
|
+
make,
|
|
11
|
+
markRuntimeMissingBuildGrade,
|
|
12
|
+
resolveBuildGradeStrictGateDecision,
|
|
13
|
+
shouldEvaluateStrictGateAtRuntime
|
|
14
|
+
} from "./chunk-KMZYQF6Q.js";
|
|
15
|
+
import "./chunk-PBD7BJUN.js";
|
|
16
|
+
import "./chunk-4MZ7BT3R.js";
|
|
8
17
|
import "./chunk-PZ5AY32C.js";
|
|
9
18
|
export {
|
|
19
|
+
buildSelectorQualityReport,
|
|
10
20
|
compile,
|
|
21
|
+
evaluateStrictGate,
|
|
22
|
+
gradeReadQueryAtBuild,
|
|
23
|
+
hasBuildGateFailure,
|
|
24
|
+
hasBuildQualityGrade,
|
|
11
25
|
isReadQuery,
|
|
12
|
-
|
|
26
|
+
isReadQueryCompiled,
|
|
27
|
+
make,
|
|
28
|
+
markRuntimeMissingBuildGrade,
|
|
29
|
+
resolveBuildGradeStrictGateDecision,
|
|
30
|
+
shouldEvaluateStrictGateAtRuntime
|
|
13
31
|
};
|
|
14
32
|
//# sourceMappingURL=ReadQuery.js.map
|
|
@@ -1,10 +1,80 @@
|
|
|
1
1
|
import * as effect from 'effect';
|
|
2
2
|
import { Layer, Effect } from 'effect';
|
|
3
|
-
import {
|
|
4
|
-
import { A as AnyModule } from './Module-
|
|
5
|
-
import { S as StaticIr } from './ir-
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
3
|
+
import { o as AnyModuleShape, s as ModuleRuntime, r as ModuleImpl } from './module-Zd1Gn-Nj.js';
|
|
4
|
+
import { A as AnyModule } from './Module-B_Cntyms.js';
|
|
5
|
+
import { S as StaticIr } from './ir-D-uqwL_4.js';
|
|
6
|
+
import { K as KernelImplementationRef, a as RuntimeServicesOverrides, E as ExtractManifestOptions, M as ModuleManifest } from './Observability-Bdhnx2Dv.js';
|
|
7
|
+
import { J as JsonValue, m as DiagnosticsLevel } from './ReadQuery-DXLzCE0E.js';
|
|
8
|
+
import { a as WorkflowStaticIrV1 } from './Workflow-C_OWr4dV.js';
|
|
9
|
+
import { R as RuntimeServicesOverrides$1, F as FullCutoverGateMode, a as FullCutoverGateResult } from './Kernel-D9guNwRL.js';
|
|
10
|
+
|
|
11
|
+
type ControlSurfaceVersion = 1;
|
|
12
|
+
type Digest = string;
|
|
13
|
+
type ModuleId = string;
|
|
14
|
+
type ActionTag = string;
|
|
15
|
+
type WorkflowStableId = string;
|
|
16
|
+
type ActionRef = {
|
|
17
|
+
readonly moduleId: ModuleId;
|
|
18
|
+
readonly actionTag: ActionTag;
|
|
19
|
+
};
|
|
20
|
+
type EffectTrigger = {
|
|
21
|
+
readonly kind: 'action';
|
|
22
|
+
readonly action: ActionRef;
|
|
23
|
+
} | {
|
|
24
|
+
readonly kind: 'lifecycle';
|
|
25
|
+
readonly phase: 'onStart' | 'onInit';
|
|
26
|
+
};
|
|
27
|
+
type SliceRef = {
|
|
28
|
+
readonly digest: Digest;
|
|
29
|
+
};
|
|
30
|
+
type WorkflowSurfaceRefV1 = SliceRef;
|
|
31
|
+
type ControlEffectIndexEntryV1 = {
|
|
32
|
+
readonly kind: 'workflow';
|
|
33
|
+
readonly effectId: string;
|
|
34
|
+
readonly trigger: EffectTrigger;
|
|
35
|
+
readonly programId: WorkflowStableId;
|
|
36
|
+
readonly programDigest?: Digest;
|
|
37
|
+
} | {
|
|
38
|
+
readonly kind: 'opaque';
|
|
39
|
+
readonly effectId: string;
|
|
40
|
+
readonly trigger: EffectTrigger;
|
|
41
|
+
readonly sourceKey: string;
|
|
42
|
+
readonly summary?: string;
|
|
43
|
+
};
|
|
44
|
+
type ControlSurfaceManifestV1 = {
|
|
45
|
+
readonly version: ControlSurfaceVersion;
|
|
46
|
+
readonly digest: Digest;
|
|
47
|
+
readonly modules: ReadonlyArray<{
|
|
48
|
+
readonly moduleId: ModuleId;
|
|
49
|
+
readonly workflowSurface?: WorkflowSurfaceRefV1;
|
|
50
|
+
readonly effectsIndex: ReadonlyArray<ControlEffectIndexEntryV1>;
|
|
51
|
+
readonly effectsIndexDigest?: Digest;
|
|
52
|
+
}>;
|
|
53
|
+
readonly meta?: {
|
|
54
|
+
readonly generator?: JsonValue;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
type WorkflowSurfaceVersion = 1;
|
|
59
|
+
type WorkflowSurfaceV1 = {
|
|
60
|
+
readonly version: WorkflowSurfaceVersion;
|
|
61
|
+
readonly digest: string;
|
|
62
|
+
readonly programs: ReadonlyArray<WorkflowStaticIrV1>;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
type ExportedWorkflowSurface = {
|
|
66
|
+
readonly moduleId: string;
|
|
67
|
+
readonly surface: WorkflowSurfaceV1;
|
|
68
|
+
};
|
|
69
|
+
type ExportControlSurfaceResult = {
|
|
70
|
+
readonly manifest: ControlSurfaceManifestV1;
|
|
71
|
+
readonly workflowSurfaces: ReadonlyArray<ExportedWorkflowSurface>;
|
|
72
|
+
};
|
|
73
|
+
type ExportControlSurfaceOptions = {
|
|
74
|
+
readonly meta?: {
|
|
75
|
+
readonly generator?: JsonValue;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
8
78
|
|
|
9
79
|
type ManifestDiffSeverity = 'BREAKING' | 'RISKY' | 'INFO';
|
|
10
80
|
type ManifestDiffVerdict = 'PASS' | 'WARN' | 'FAIL';
|
|
@@ -152,6 +222,14 @@ declare const diffManifest: (before: ModuleManifest, after: ModuleManifest, opti
|
|
|
152
222
|
* If the module contains a StateTrait program, exports canonical StaticIR (same shape and digest as StateTrait.exportStaticIr).
|
|
153
223
|
*/
|
|
154
224
|
declare const exportStaticIr: (module: ModuleImpl<any, AnyModuleShape, any> | AnyModule) => StaticIr | undefined;
|
|
225
|
+
/**
|
|
226
|
+
* Reflection.exportControlSurface
|
|
227
|
+
*
|
|
228
|
+
* Exports the ControlSurfaceManifest (Root IR) and slice attachments (e.g. workflowSurface) from configured modules.
|
|
229
|
+
*
|
|
230
|
+
* Note: currently requires `AnyModule` (the configured module object returned by `ModuleDef.implement(...)`).
|
|
231
|
+
*/
|
|
232
|
+
declare const exportControlSurface: (modules: ReadonlyArray<AnyModule>, options?: ExportControlSurfaceOptions) => ExportControlSurfaceResult;
|
|
155
233
|
/**
|
|
156
234
|
* Reflection.verifyKernelContract
|
|
157
235
|
*
|
|
@@ -161,6 +239,9 @@ declare const verifyKernelContract: <Sh extends AnyModuleShape>(module: ModuleIm
|
|
|
161
239
|
declare const verifyFullCutoverGate: <Sh extends AnyModuleShape>(module: ModuleImpl<any, Sh, any> | AnyModule, options?: VerifyFullCutoverGateOptions<Sh>) => Effect.Effect<FullCutoverGateVerificationResult, never, any>;
|
|
162
240
|
|
|
163
241
|
type Reflection_DiffManifestOptions = DiffManifestOptions;
|
|
242
|
+
type Reflection_ExportControlSurfaceOptions = ExportControlSurfaceOptions;
|
|
243
|
+
type Reflection_ExportControlSurfaceResult = ExportControlSurfaceResult;
|
|
244
|
+
type Reflection_ExportedWorkflowSurface = ExportedWorkflowSurface;
|
|
164
245
|
declare const Reflection_ExtractManifestOptions: typeof ExtractManifestOptions;
|
|
165
246
|
type Reflection_FullCutoverGateTrialRunOptions<Sh extends AnyModuleShape> = FullCutoverGateTrialRunOptions<Sh>;
|
|
166
247
|
type Reflection_FullCutoverGateVerificationResult = FullCutoverGateVerificationResult;
|
|
@@ -171,12 +252,13 @@ type Reflection_ModuleManifestDiff = ModuleManifestDiff;
|
|
|
171
252
|
type Reflection_VerifyFullCutoverGateOptions<Sh extends AnyModuleShape> = VerifyFullCutoverGateOptions<Sh>;
|
|
172
253
|
type Reflection_VerifyKernelContractOptions<Sh extends AnyModuleShape> = VerifyKernelContractOptions<Sh>;
|
|
173
254
|
declare const Reflection_diffManifest: typeof diffManifest;
|
|
255
|
+
declare const Reflection_exportControlSurface: typeof exportControlSurface;
|
|
174
256
|
declare const Reflection_exportStaticIr: typeof exportStaticIr;
|
|
175
257
|
declare const Reflection_extractManifest: typeof extractManifest;
|
|
176
258
|
declare const Reflection_verifyFullCutoverGate: typeof verifyFullCutoverGate;
|
|
177
259
|
declare const Reflection_verifyKernelContract: typeof verifyKernelContract;
|
|
178
260
|
declare namespace Reflection {
|
|
179
|
-
export { type Reflection_DiffManifestOptions as DiffManifestOptions, Reflection_ExtractManifestOptions as ExtractManifestOptions, type Reflection_FullCutoverGateTrialRunOptions as FullCutoverGateTrialRunOptions, type Reflection_FullCutoverGateVerificationResult as FullCutoverGateVerificationResult, type Reflection_KernelContractAllowedDiff as KernelContractAllowedDiff, type Reflection_KernelContractVerificationResult as KernelContractVerificationResult, Reflection_ModuleManifest as ModuleManifest, type Reflection_ModuleManifestDiff as ModuleManifestDiff, type Reflection_VerifyFullCutoverGateOptions as VerifyFullCutoverGateOptions, type Reflection_VerifyKernelContractOptions as VerifyKernelContractOptions, Reflection_diffManifest as diffManifest, Reflection_exportStaticIr as exportStaticIr, Reflection_extractManifest as extractManifest, Reflection_verifyFullCutoverGate as verifyFullCutoverGate, Reflection_verifyKernelContract as verifyKernelContract };
|
|
261
|
+
export { type Reflection_DiffManifestOptions as DiffManifestOptions, type Reflection_ExportControlSurfaceOptions as ExportControlSurfaceOptions, type Reflection_ExportControlSurfaceResult as ExportControlSurfaceResult, type Reflection_ExportedWorkflowSurface as ExportedWorkflowSurface, Reflection_ExtractManifestOptions as ExtractManifestOptions, type Reflection_FullCutoverGateTrialRunOptions as FullCutoverGateTrialRunOptions, type Reflection_FullCutoverGateVerificationResult as FullCutoverGateVerificationResult, type Reflection_KernelContractAllowedDiff as KernelContractAllowedDiff, type Reflection_KernelContractVerificationResult as KernelContractVerificationResult, Reflection_ModuleManifest as ModuleManifest, type Reflection_ModuleManifestDiff as ModuleManifestDiff, type Reflection_VerifyFullCutoverGateOptions as VerifyFullCutoverGateOptions, type Reflection_VerifyKernelContractOptions as VerifyKernelContractOptions, Reflection_diffManifest as diffManifest, Reflection_exportControlSurface as exportControlSurface, Reflection_exportStaticIr as exportStaticIr, Reflection_extractManifest as extractManifest, Reflection_verifyFullCutoverGate as verifyFullCutoverGate, Reflection_verifyKernelContract as verifyKernelContract };
|
|
180
262
|
}
|
|
181
263
|
|
|
182
|
-
export { type DiffManifestOptions as D, type FullCutoverGateTrialRunOptions as F, type KernelContractVerificationResult as K, type ModuleManifestDiff as M, Reflection as R, type VerifyKernelContractOptions as V, type
|
|
264
|
+
export { type DiffManifestOptions as D, type ExportControlSurfaceOptions as E, type FullCutoverGateTrialRunOptions as F, type KernelContractVerificationResult as K, type ModuleManifestDiff as M, Reflection as R, type VerifyKernelContractOptions as V, type ExportControlSurfaceResult as a, type ExportedWorkflowSurface as b, type KernelContractAllowedDiff as c, type VerifyFullCutoverGateOptions as d, type FullCutoverGateVerificationResult as e, extractManifest as f, diffManifest as g, exportStaticIr as h, exportControlSurface as i, verifyFullCutoverGate as j, verifyKernelContract as v };
|
|
@@ -1,10 +1,80 @@
|
|
|
1
1
|
import * as effect from 'effect';
|
|
2
2
|
import { Layer, Effect } from 'effect';
|
|
3
|
-
import {
|
|
4
|
-
import { A as AnyModule } from './Module-
|
|
5
|
-
import { S as StaticIr } from './ir-
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
3
|
+
import { o as AnyModuleShape, s as ModuleRuntime, r as ModuleImpl } from './module-Ds4tarcI.cjs';
|
|
4
|
+
import { A as AnyModule } from './Module-CmNOVXzf.cjs';
|
|
5
|
+
import { S as StaticIr } from './ir-BSosEwc8.cjs';
|
|
6
|
+
import { K as KernelImplementationRef, a as RuntimeServicesOverrides, E as ExtractManifestOptions, M as ModuleManifest } from './Observability-DXGAFBIT.cjs';
|
|
7
|
+
import { J as JsonValue, m as DiagnosticsLevel } from './ReadQuery-DXLzCE0E.cjs';
|
|
8
|
+
import { a as WorkflowStaticIrV1 } from './Workflow-DmydkHO8.cjs';
|
|
9
|
+
import { R as RuntimeServicesOverrides$1, F as FullCutoverGateMode, a as FullCutoverGateResult } from './Kernel-CuXBF9S_.cjs';
|
|
10
|
+
|
|
11
|
+
type ControlSurfaceVersion = 1;
|
|
12
|
+
type Digest = string;
|
|
13
|
+
type ModuleId = string;
|
|
14
|
+
type ActionTag = string;
|
|
15
|
+
type WorkflowStableId = string;
|
|
16
|
+
type ActionRef = {
|
|
17
|
+
readonly moduleId: ModuleId;
|
|
18
|
+
readonly actionTag: ActionTag;
|
|
19
|
+
};
|
|
20
|
+
type EffectTrigger = {
|
|
21
|
+
readonly kind: 'action';
|
|
22
|
+
readonly action: ActionRef;
|
|
23
|
+
} | {
|
|
24
|
+
readonly kind: 'lifecycle';
|
|
25
|
+
readonly phase: 'onStart' | 'onInit';
|
|
26
|
+
};
|
|
27
|
+
type SliceRef = {
|
|
28
|
+
readonly digest: Digest;
|
|
29
|
+
};
|
|
30
|
+
type WorkflowSurfaceRefV1 = SliceRef;
|
|
31
|
+
type ControlEffectIndexEntryV1 = {
|
|
32
|
+
readonly kind: 'workflow';
|
|
33
|
+
readonly effectId: string;
|
|
34
|
+
readonly trigger: EffectTrigger;
|
|
35
|
+
readonly programId: WorkflowStableId;
|
|
36
|
+
readonly programDigest?: Digest;
|
|
37
|
+
} | {
|
|
38
|
+
readonly kind: 'opaque';
|
|
39
|
+
readonly effectId: string;
|
|
40
|
+
readonly trigger: EffectTrigger;
|
|
41
|
+
readonly sourceKey: string;
|
|
42
|
+
readonly summary?: string;
|
|
43
|
+
};
|
|
44
|
+
type ControlSurfaceManifestV1 = {
|
|
45
|
+
readonly version: ControlSurfaceVersion;
|
|
46
|
+
readonly digest: Digest;
|
|
47
|
+
readonly modules: ReadonlyArray<{
|
|
48
|
+
readonly moduleId: ModuleId;
|
|
49
|
+
readonly workflowSurface?: WorkflowSurfaceRefV1;
|
|
50
|
+
readonly effectsIndex: ReadonlyArray<ControlEffectIndexEntryV1>;
|
|
51
|
+
readonly effectsIndexDigest?: Digest;
|
|
52
|
+
}>;
|
|
53
|
+
readonly meta?: {
|
|
54
|
+
readonly generator?: JsonValue;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
type WorkflowSurfaceVersion = 1;
|
|
59
|
+
type WorkflowSurfaceV1 = {
|
|
60
|
+
readonly version: WorkflowSurfaceVersion;
|
|
61
|
+
readonly digest: string;
|
|
62
|
+
readonly programs: ReadonlyArray<WorkflowStaticIrV1>;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
type ExportedWorkflowSurface = {
|
|
66
|
+
readonly moduleId: string;
|
|
67
|
+
readonly surface: WorkflowSurfaceV1;
|
|
68
|
+
};
|
|
69
|
+
type ExportControlSurfaceResult = {
|
|
70
|
+
readonly manifest: ControlSurfaceManifestV1;
|
|
71
|
+
readonly workflowSurfaces: ReadonlyArray<ExportedWorkflowSurface>;
|
|
72
|
+
};
|
|
73
|
+
type ExportControlSurfaceOptions = {
|
|
74
|
+
readonly meta?: {
|
|
75
|
+
readonly generator?: JsonValue;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
8
78
|
|
|
9
79
|
type ManifestDiffSeverity = 'BREAKING' | 'RISKY' | 'INFO';
|
|
10
80
|
type ManifestDiffVerdict = 'PASS' | 'WARN' | 'FAIL';
|
|
@@ -152,6 +222,14 @@ declare const diffManifest: (before: ModuleManifest, after: ModuleManifest, opti
|
|
|
152
222
|
* If the module contains a StateTrait program, exports canonical StaticIR (same shape and digest as StateTrait.exportStaticIr).
|
|
153
223
|
*/
|
|
154
224
|
declare const exportStaticIr: (module: ModuleImpl<any, AnyModuleShape, any> | AnyModule) => StaticIr | undefined;
|
|
225
|
+
/**
|
|
226
|
+
* Reflection.exportControlSurface
|
|
227
|
+
*
|
|
228
|
+
* Exports the ControlSurfaceManifest (Root IR) and slice attachments (e.g. workflowSurface) from configured modules.
|
|
229
|
+
*
|
|
230
|
+
* Note: currently requires `AnyModule` (the configured module object returned by `ModuleDef.implement(...)`).
|
|
231
|
+
*/
|
|
232
|
+
declare const exportControlSurface: (modules: ReadonlyArray<AnyModule>, options?: ExportControlSurfaceOptions) => ExportControlSurfaceResult;
|
|
155
233
|
/**
|
|
156
234
|
* Reflection.verifyKernelContract
|
|
157
235
|
*
|
|
@@ -161,6 +239,9 @@ declare const verifyKernelContract: <Sh extends AnyModuleShape>(module: ModuleIm
|
|
|
161
239
|
declare const verifyFullCutoverGate: <Sh extends AnyModuleShape>(module: ModuleImpl<any, Sh, any> | AnyModule, options?: VerifyFullCutoverGateOptions<Sh>) => Effect.Effect<FullCutoverGateVerificationResult, never, any>;
|
|
162
240
|
|
|
163
241
|
type Reflection_DiffManifestOptions = DiffManifestOptions;
|
|
242
|
+
type Reflection_ExportControlSurfaceOptions = ExportControlSurfaceOptions;
|
|
243
|
+
type Reflection_ExportControlSurfaceResult = ExportControlSurfaceResult;
|
|
244
|
+
type Reflection_ExportedWorkflowSurface = ExportedWorkflowSurface;
|
|
164
245
|
declare const Reflection_ExtractManifestOptions: typeof ExtractManifestOptions;
|
|
165
246
|
type Reflection_FullCutoverGateTrialRunOptions<Sh extends AnyModuleShape> = FullCutoverGateTrialRunOptions<Sh>;
|
|
166
247
|
type Reflection_FullCutoverGateVerificationResult = FullCutoverGateVerificationResult;
|
|
@@ -171,12 +252,13 @@ type Reflection_ModuleManifestDiff = ModuleManifestDiff;
|
|
|
171
252
|
type Reflection_VerifyFullCutoverGateOptions<Sh extends AnyModuleShape> = VerifyFullCutoverGateOptions<Sh>;
|
|
172
253
|
type Reflection_VerifyKernelContractOptions<Sh extends AnyModuleShape> = VerifyKernelContractOptions<Sh>;
|
|
173
254
|
declare const Reflection_diffManifest: typeof diffManifest;
|
|
255
|
+
declare const Reflection_exportControlSurface: typeof exportControlSurface;
|
|
174
256
|
declare const Reflection_exportStaticIr: typeof exportStaticIr;
|
|
175
257
|
declare const Reflection_extractManifest: typeof extractManifest;
|
|
176
258
|
declare const Reflection_verifyFullCutoverGate: typeof verifyFullCutoverGate;
|
|
177
259
|
declare const Reflection_verifyKernelContract: typeof verifyKernelContract;
|
|
178
260
|
declare namespace Reflection {
|
|
179
|
-
export { type Reflection_DiffManifestOptions as DiffManifestOptions, Reflection_ExtractManifestOptions as ExtractManifestOptions, type Reflection_FullCutoverGateTrialRunOptions as FullCutoverGateTrialRunOptions, type Reflection_FullCutoverGateVerificationResult as FullCutoverGateVerificationResult, type Reflection_KernelContractAllowedDiff as KernelContractAllowedDiff, type Reflection_KernelContractVerificationResult as KernelContractVerificationResult, Reflection_ModuleManifest as ModuleManifest, type Reflection_ModuleManifestDiff as ModuleManifestDiff, type Reflection_VerifyFullCutoverGateOptions as VerifyFullCutoverGateOptions, type Reflection_VerifyKernelContractOptions as VerifyKernelContractOptions, Reflection_diffManifest as diffManifest, Reflection_exportStaticIr as exportStaticIr, Reflection_extractManifest as extractManifest, Reflection_verifyFullCutoverGate as verifyFullCutoverGate, Reflection_verifyKernelContract as verifyKernelContract };
|
|
261
|
+
export { type Reflection_DiffManifestOptions as DiffManifestOptions, type Reflection_ExportControlSurfaceOptions as ExportControlSurfaceOptions, type Reflection_ExportControlSurfaceResult as ExportControlSurfaceResult, type Reflection_ExportedWorkflowSurface as ExportedWorkflowSurface, Reflection_ExtractManifestOptions as ExtractManifestOptions, type Reflection_FullCutoverGateTrialRunOptions as FullCutoverGateTrialRunOptions, type Reflection_FullCutoverGateVerificationResult as FullCutoverGateVerificationResult, type Reflection_KernelContractAllowedDiff as KernelContractAllowedDiff, type Reflection_KernelContractVerificationResult as KernelContractVerificationResult, Reflection_ModuleManifest as ModuleManifest, type Reflection_ModuleManifestDiff as ModuleManifestDiff, type Reflection_VerifyFullCutoverGateOptions as VerifyFullCutoverGateOptions, type Reflection_VerifyKernelContractOptions as VerifyKernelContractOptions, Reflection_diffManifest as diffManifest, Reflection_exportControlSurface as exportControlSurface, Reflection_exportStaticIr as exportStaticIr, Reflection_extractManifest as extractManifest, Reflection_verifyFullCutoverGate as verifyFullCutoverGate, Reflection_verifyKernelContract as verifyKernelContract };
|
|
180
262
|
}
|
|
181
263
|
|
|
182
|
-
export { type DiffManifestOptions as D, type FullCutoverGateTrialRunOptions as F, type KernelContractVerificationResult as K, type ModuleManifestDiff as M, Reflection as R, type VerifyKernelContractOptions as V, type
|
|
264
|
+
export { type DiffManifestOptions as D, type ExportControlSurfaceOptions as E, type FullCutoverGateTrialRunOptions as F, type KernelContractVerificationResult as K, type ModuleManifestDiff as M, Reflection as R, type VerifyKernelContractOptions as V, type ExportControlSurfaceResult as a, type ExportedWorkflowSurface as b, type KernelContractAllowedDiff as c, type VerifyFullCutoverGateOptions as d, type FullCutoverGateVerificationResult as e, extractManifest as f, diffManifest as g, exportStaticIr as h, exportControlSurface as i, verifyFullCutoverGate as j, verifyKernelContract as v };
|