@graphrefly/graphrefly 0.27.0 → 0.28.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/dist/backoff-HPZMEZNF.js +1 -0
- package/dist/cascading-B-5zmAUv.d.cts +180 -0
- package/dist/cascading-D9WG1-9L.d.ts +180 -0
- package/dist/chunk-2FOAM3OR.js +1 -0
- package/dist/chunk-2PMCKKRK.js +1 -0
- package/dist/chunk-3JXNEPCD.js +2 -0
- package/dist/chunk-3R5HFPX7.js +78 -0
- package/dist/chunk-4GKB4OUJ.js +1 -0
- package/dist/chunk-4VVTGLXJ.js +1 -0
- package/dist/chunk-5QDBSZBV.js +1 -0
- package/dist/chunk-6QZNQS5B.js +1 -0
- package/dist/chunk-6V3SEX2I.js +1 -0
- package/dist/chunk-76A3HVQE.js +9 -0
- package/dist/chunk-7H6LGFUG.js +64 -0
- package/dist/chunk-CK2E7BTU.js +1 -0
- package/dist/chunk-CKCSDI7T.js +6 -0
- package/dist/chunk-CRXTH3SH.js +1 -0
- package/dist/chunk-CWLN3X3N.js +1 -0
- package/dist/chunk-D7A7DBE4.js +1 -0
- package/dist/chunk-DBGGMN3D.js +1 -0
- package/dist/chunk-DQA3UIQ2.js +1 -0
- package/dist/chunk-ERLIRFPA.js +1 -0
- package/dist/chunk-ESMPEKEV.js +1 -0
- package/dist/chunk-ETWTCCJI.js +1 -0
- package/dist/chunk-FNYWM6JC.js +1 -0
- package/dist/chunk-GHJJR5P4.js +1 -0
- package/dist/chunk-GPW2V3RE.js +1 -0
- package/dist/chunk-I6VIH3VA.js +1 -0
- package/dist/chunk-K2GNMCQT.js +1 -0
- package/dist/chunk-LBTDSCCO.js +3 -0
- package/dist/chunk-LQ3Y5NJS.js +1 -0
- package/dist/chunk-MIQTDPY4.js +5 -0
- package/dist/chunk-MTTAAPCK.js +1 -0
- package/dist/chunk-OAWLCNJJ.js +1 -0
- package/dist/chunk-OBKQQA5I.js +1 -0
- package/dist/chunk-OYHGKYQM.js +1 -0
- package/dist/chunk-PIOGHC63.js +1 -0
- package/dist/chunk-QWAPKG3O.js +2 -0
- package/dist/chunk-QYADASLV.js +1 -0
- package/dist/chunk-RHESUC3V.js +43 -0
- package/dist/chunk-S35VARIR.js +1 -0
- package/dist/chunk-SC3U7ETD.js +1 -0
- package/dist/chunk-U3AICJKU.js +1 -0
- package/dist/chunk-UMBIDLJ4.js +1 -0
- package/dist/chunk-UPHHLMHE.js +1 -0
- package/dist/chunk-UPXUCFMX.js +1 -0
- package/dist/chunk-UWJE5FQA.js +18 -0
- package/dist/chunk-V6YQICXZ.js +1 -0
- package/dist/chunk-VIMF6LGM.js +1 -0
- package/dist/chunk-VJLMUKOI.js +1 -0
- package/dist/chunk-VPYBOXVT.js +1 -0
- package/dist/chunk-VTPVOGHH.js +1 -0
- package/dist/chunk-WQ2BN6X6.js +1 -0
- package/dist/chunk-XAUNPIMX.js +1 -0
- package/dist/chunk-Y2EMPB3I.js +1 -0
- package/dist/chunk-Z4HDAS2Q.js +1 -0
- package/dist/chunk-ZB5EHBIO.js +1 -0
- package/dist/chunk-ZV2DXV5A.js +23 -0
- package/dist/compat/index.cjs +14 -7656
- package/dist/compat/index.d.cts +15 -14
- package/dist/compat/index.d.ts +15 -14
- package/dist/compat/index.js +1 -50
- package/dist/compat/jotai/index.cjs +1 -2048
- package/dist/compat/jotai/index.d.cts +2 -2
- package/dist/compat/jotai/index.d.ts +2 -2
- package/dist/compat/jotai/index.js +1 -9
- package/dist/compat/nanostores/index.cjs +1 -2175
- package/dist/compat/nanostores/index.d.cts +2 -2
- package/dist/compat/nanostores/index.d.ts +2 -2
- package/dist/compat/nanostores/index.js +1 -23
- package/dist/compat/nestjs/index.cjs +14 -6782
- package/dist/compat/nestjs/index.d.cts +7 -6
- package/dist/compat/nestjs/index.d.ts +7 -6
- package/dist/compat/nestjs/index.js +1 -83
- package/dist/compat/react/index.cjs +1 -141
- package/dist/compat/react/index.d.cts +2 -2
- package/dist/compat/react/index.d.ts +2 -2
- package/dist/compat/react/index.js +1 -12
- package/dist/compat/solid/index.cjs +1 -128
- package/dist/compat/solid/index.d.cts +2 -2
- package/dist/compat/solid/index.d.ts +2 -2
- package/dist/compat/solid/index.js +1 -12
- package/dist/compat/svelte/index.cjs +1 -131
- package/dist/compat/svelte/index.d.cts +2 -2
- package/dist/compat/svelte/index.d.ts +2 -2
- package/dist/compat/svelte/index.js +1 -12
- package/dist/compat/vue/index.cjs +1 -146
- package/dist/compat/vue/index.d.cts +2 -2
- package/dist/compat/vue/index.d.ts +2 -2
- package/dist/compat/vue/index.js +1 -12
- package/dist/compat/zustand/index.cjs +6 -4931
- package/dist/compat/zustand/index.d.cts +5 -5
- package/dist/compat/zustand/index.d.ts +5 -5
- package/dist/compat/zustand/index.js +1 -12
- package/dist/composite-B-xqw4Kk.d.cts +69 -0
- package/dist/composite-BhbKHbOS.d.ts +69 -0
- package/dist/core/index.cjs +1 -2271
- package/dist/core/index.d.cts +4 -4
- package/dist/core/index.d.ts +4 -4
- package/dist/core/index.js +1 -110
- package/dist/extra/browser.cjs +1 -0
- package/dist/extra/browser.d.cts +3 -0
- package/dist/extra/browser.d.ts +3 -0
- package/dist/extra/browser.js +1 -0
- package/dist/extra/index.cjs +23 -9971
- package/dist/extra/index.d.cts +13 -6
- package/dist/extra/index.d.ts +13 -6
- package/dist/extra/index.js +1 -381
- package/dist/extra/node.cjs +3 -0
- package/dist/extra/node.d.cts +81 -0
- package/dist/extra/node.d.ts +81 -0
- package/dist/extra/node.js +2 -0
- package/dist/extra/operators.cjs +1 -0
- package/dist/extra/operators.d.cts +910 -0
- package/dist/extra/operators.d.ts +910 -0
- package/dist/extra/operators.js +1 -0
- package/dist/extra/reactive.cjs +1 -0
- package/dist/extra/reactive.d.cts +352 -0
- package/dist/extra/reactive.d.ts +352 -0
- package/dist/extra/reactive.js +1 -0
- package/dist/extra/sources.cjs +1 -2486
- package/dist/extra/sources.d.cts +6 -2
- package/dist/extra/sources.d.ts +6 -2
- package/dist/extra/sources.js +1 -57
- package/dist/extra/storage-browser.cjs +1 -0
- package/dist/extra/storage-browser.d.cts +71 -0
- package/dist/extra/storage-browser.d.ts +71 -0
- package/dist/extra/storage-browser.js +1 -0
- package/dist/extra/storage-core.cjs +1 -0
- package/dist/extra/storage-core.d.cts +98 -0
- package/dist/extra/storage-core.d.ts +98 -0
- package/dist/extra/storage-core.js +1 -0
- package/dist/extra/storage-node.cjs +2 -0
- package/dist/extra/storage-node.d.cts +60 -0
- package/dist/extra/storage-node.d.ts +60 -0
- package/dist/extra/storage-node.js +1 -0
- package/dist/fallback-BaTS7vVY.d.cts +258 -0
- package/dist/fallback-eOm3LNxP.d.ts +258 -0
- package/dist/graph/index.cjs +6 -5030
- package/dist/graph/index.d.cts +6 -5
- package/dist/graph/index.d.ts +6 -5
- package/dist/graph/index.js +1 -50
- package/dist/{graph-CCwGKLCm.d.ts → graph-BZGRXwOm.d.ts} +134 -31
- package/dist/{graph-DNCrvZSn.d.cts → graph-D48Qw9Cg.d.cts} +134 -31
- package/dist/index-8FSVk4Uf.d.ts +135 -0
- package/dist/index-9oDeHH2u.d.cts +291 -0
- package/dist/{messaging-XDoYablx.d.ts → index-B0c4cmIO.d.ts} +31 -93
- package/dist/{index-VdHQMPy1.d.ts → index-B1AmmSlb.d.ts} +1 -1
- package/dist/{index-VHqptjhu.d.cts → index-B2pwesl9.d.cts} +1 -1
- package/dist/index-BHvIquRZ.d.ts +1957 -0
- package/dist/{index-Dzk2hrlR.d.ts → index-BVHOrDwO.d.ts} +1 -1
- package/dist/{index-CxFrXH4m.d.ts → index-BWJV63ti.d.ts} +1 -1
- package/dist/{index-Xi3u0HCQ.d.cts → index-B_agccPe.d.cts} +1 -1
- package/dist/index-BgyGlizc.d.ts +163 -0
- package/dist/index-BpA5c4G9.d.ts +357 -0
- package/dist/index-BpIFjILY.d.cts +357 -0
- package/dist/{index-3lsddbbS.d.ts → index-Bqachn9_.d.ts} +1 -1
- package/dist/index-Btib9rsU.d.ts +607 -0
- package/dist/{index-wEn0eFe8.d.ts → index-BwM9BEkt.d.ts} +1 -1
- package/dist/index-BxJ86YZZ.d.cts +105 -0
- package/dist/{audit-DRlSzBu9.d.ts → index-C73n7lo-.d.cts} +27 -21
- package/dist/index-CEXXwWVH.d.cts +192 -0
- package/dist/index-CHEswufn.d.cts +163 -0
- package/dist/{index-C0svESO4.d.ts → index-CMn8S8Hw.d.ts} +1 -1
- package/dist/{index-ByQxazQJ.d.cts → index-CRO83MmV.d.cts} +1 -1
- package/dist/{index-BuEoe-Qu.d.ts → index-CloUk1kY.d.ts} +9 -9
- package/dist/index-CpgYhnrG.d.ts +291 -0
- package/dist/{index-DO_6JN9Z.d.cts → index-Cyojz0AE.d.cts} +1 -1
- package/dist/{demo-shell-BDkOptd6.d.ts → index-CzobVSMr.d.ts} +14 -14
- package/dist/index-Czq6ynh8.d.ts +143 -0
- package/dist/{index-BaSM3aYt.d.ts → index-D-YB-Vl3.d.ts} +3 -3
- package/dist/index-DAlweici.d.ts +231 -0
- package/dist/index-DEwTb_fm.d.cts +1957 -0
- package/dist/{index-DYme44FM.d.cts → index-DL-rYJrx.d.cts} +1 -1
- package/dist/{memory-li6FL5RM.d.ts → index-DP4ZTkdw.d.ts} +26 -26
- package/dist/{index-BwfLUNw4.d.ts → index-DUqMOlKZ.d.cts} +173 -2040
- package/dist/{index-B1tloyhO.d.cts → index-D_NwnRYS.d.cts} +1 -1
- package/dist/index-DaLJvH8Z.d.ts +105 -0
- package/dist/index-DcXZBF5a.d.cts +135 -0
- package/dist/index-DfyOkTvs.d.ts +321 -0
- package/dist/{index-B9B7_HEY.d.ts → index-DiOXyAwt.d.ts} +1 -1
- package/dist/index-DpHe5e0Q.d.ts +186 -0
- package/dist/index-DraikLjn.d.ts +86 -0
- package/dist/{index-D8wS_PeY.d.cts → index-DxsnAMWD.d.cts} +9 -9
- package/dist/{messaging-Gt4LPbyA.d.cts → index-DyxjtScX.d.cts} +31 -93
- package/dist/{audit-ClmqGOCx.d.cts → index-HDpJe9hX.d.ts} +27 -21
- package/dist/{index-DVGiGFGT.d.cts → index-O6TgGUBV.d.cts} +3 -3
- package/dist/{index-B6EhDnjH.d.cts → index-Oi8d8w4R.d.cts} +1 -1
- package/dist/{index-C8oil6M6.d.ts → index-ROpQmGjE.d.ts} +30 -6
- package/dist/index-RukJ4DLS.d.cts +607 -0
- package/dist/{index-BHlKbUwO.d.cts → index-ZftwfxJM.d.ts} +173 -2040
- package/dist/{index-BPVt8kqc.d.ts → index-cByzxQIC.d.cts} +10 -195
- package/dist/index-dtN7YA2x.d.cts +143 -0
- package/dist/{index-CI3DprxP.d.cts → index-fM6y00vT.d.cts} +30 -6
- package/dist/{index-DlLp-2Xn.d.cts → index-m-yHof5p.d.ts} +10 -195
- package/dist/index-pXrDMpRO.d.cts +231 -0
- package/dist/index-rHJSKsU8.d.cts +186 -0
- package/dist/index-rX8HBM5h.d.cts +321 -0
- package/dist/{index-CO8uBlUh.d.cts → index-rnwQly8X.d.cts} +147 -20
- package/dist/index-sm373fsH.d.ts +192 -0
- package/dist/{memory-C6Z2tGpC.d.cts → index-tbf2gKHd.d.cts} +26 -26
- package/dist/{demo-shell-Crid1WdR.d.cts → index-u15meRxL.d.cts} +14 -14
- package/dist/{index-B6D3QNSA.d.ts → index-umtoWT8K.d.ts} +147 -20
- package/dist/index-vscRDkjW.d.cts +86 -0
- package/dist/index.cjs +150 -24142
- package/dist/index.d.cts +69 -2099
- package/dist/index.d.ts +69 -2099
- package/dist/index.js +1 -3868
- package/dist/{meta-CbznRPYJ.d.ts → meta-Cgj6zeji.d.cts} +5 -5
- package/dist/{meta-BxCA7rcr.d.cts → meta-CwesDrMD.d.ts} +5 -5
- package/dist/{node-BmerH3kS.d.cts → node-Cc1TniY8.d.cts} +36 -9
- package/dist/{node-BmerH3kS.d.ts → node-Cc1TniY8.d.ts} +36 -9
- package/dist/{observable-BgGUwcqp.d.ts → observable-Ct-gJ9jI.d.ts} +1 -1
- package/dist/{observable-DJt_AxzQ.d.cts → observable-glXQoGj2.d.cts} +1 -1
- package/dist/patterns/ai/browser.cjs +25 -0
- package/dist/patterns/ai/browser.d.cts +127 -0
- package/dist/patterns/ai/browser.d.ts +127 -0
- package/dist/patterns/ai/browser.js +3 -0
- package/dist/patterns/ai/index.cjs +91 -0
- package/dist/patterns/ai/index.d.cts +17 -0
- package/dist/patterns/ai/index.d.ts +17 -0
- package/dist/patterns/ai/index.js +1 -0
- package/dist/patterns/ai/node.cjs +2 -0
- package/dist/patterns/ai/node.d.cts +58 -0
- package/dist/patterns/ai/node.d.ts +58 -0
- package/dist/patterns/ai/node.js +1 -0
- package/dist/patterns/audit/index.cjs +6 -0
- package/dist/patterns/audit/index.d.cts +6 -0
- package/dist/patterns/audit/index.d.ts +6 -0
- package/dist/patterns/audit/index.js +1 -0
- package/dist/patterns/cqrs/index.cjs +6 -0
- package/dist/patterns/cqrs/index.d.cts +5 -0
- package/dist/patterns/cqrs/index.d.ts +5 -0
- package/dist/patterns/cqrs/index.js +1 -0
- package/dist/patterns/demo-shell/index.cjs +7 -0
- package/dist/patterns/demo-shell/index.d.cts +6 -0
- package/dist/patterns/demo-shell/index.d.ts +6 -0
- package/dist/patterns/demo-shell/index.js +1 -0
- package/dist/patterns/domain-templates/index.cjs +6 -0
- package/dist/patterns/domain-templates/index.d.cts +5 -0
- package/dist/patterns/domain-templates/index.d.ts +5 -0
- package/dist/patterns/domain-templates/index.js +1 -0
- package/dist/patterns/graphspec/index.cjs +83 -0
- package/dist/patterns/graphspec/index.d.cts +7 -0
- package/dist/patterns/graphspec/index.d.ts +7 -0
- package/dist/patterns/graphspec/index.js +1 -0
- package/dist/patterns/guarded-execution/index.cjs +6 -0
- package/dist/patterns/guarded-execution/index.d.cts +7 -0
- package/dist/patterns/guarded-execution/index.d.ts +7 -0
- package/dist/patterns/guarded-execution/index.js +1 -0
- package/dist/patterns/harness/index.cjs +48 -0
- package/dist/patterns/harness/index.d.cts +8 -0
- package/dist/patterns/harness/index.d.ts +8 -0
- package/dist/patterns/harness/index.js +1 -0
- package/dist/patterns/job-queue/index.cjs +6 -0
- package/dist/patterns/job-queue/index.d.cts +5 -0
- package/dist/patterns/job-queue/index.d.ts +5 -0
- package/dist/patterns/job-queue/index.js +1 -0
- package/dist/patterns/lens/index.cjs +6 -0
- package/dist/patterns/lens/index.d.cts +7 -0
- package/dist/patterns/lens/index.d.ts +7 -0
- package/dist/patterns/lens/index.js +1 -0
- package/dist/patterns/memory/index.cjs +6 -0
- package/dist/patterns/memory/index.d.cts +5 -0
- package/dist/patterns/memory/index.d.ts +5 -0
- package/dist/patterns/memory/index.js +1 -0
- package/dist/patterns/messaging/index.cjs +6 -0
- package/dist/patterns/messaging/index.d.cts +5 -0
- package/dist/patterns/messaging/index.d.ts +5 -0
- package/dist/patterns/messaging/index.js +1 -0
- package/dist/patterns/orchestration/index.cjs +6 -0
- package/dist/patterns/orchestration/index.d.cts +6 -0
- package/dist/patterns/orchestration/index.d.ts +6 -0
- package/dist/patterns/orchestration/index.js +1 -0
- package/dist/patterns/reactive-layout/index.cjs +7 -6444
- package/dist/patterns/reactive-layout/index.d.cts +6 -6
- package/dist/patterns/reactive-layout/index.d.ts +6 -6
- package/dist/patterns/reactive-layout/index.js +1 -56
- package/dist/patterns/reduction/index.cjs +6 -0
- package/dist/patterns/reduction/index.d.cts +5 -0
- package/dist/patterns/reduction/index.d.ts +5 -0
- package/dist/patterns/reduction/index.js +1 -0
- package/dist/patterns/refine-loop/index.cjs +8 -0
- package/dist/patterns/refine-loop/index.d.cts +7 -0
- package/dist/patterns/refine-loop/index.d.ts +7 -0
- package/dist/patterns/refine-loop/index.js +1 -0
- package/dist/patterns/resilient-pipeline/index.cjs +1 -0
- package/dist/patterns/resilient-pipeline/index.d.cts +7 -0
- package/dist/patterns/resilient-pipeline/index.d.ts +7 -0
- package/dist/patterns/resilient-pipeline/index.js +1 -0
- package/dist/patterns/surface/index.cjs +14 -0
- package/dist/patterns/surface/index.d.cts +8 -0
- package/dist/patterns/surface/index.d.ts +8 -0
- package/dist/patterns/surface/index.js +1 -0
- package/dist/{reactive-layout-MQP--J3F.d.cts → reactive-layout-CpYb5qLP.d.cts} +2 -2
- package/dist/{reactive-layout-u5Ulnqag.d.ts → reactive-layout-D8u4wuUR.d.ts} +2 -2
- package/dist/reactive-log-DPzuUDj5.d.cts +190 -0
- package/dist/reactive-log-YuH9VYN8.d.ts +190 -0
- package/dist/{composite-aUCvjZVR.d.ts → reactive-map-CdbNoSgP.d.ts} +2 -67
- package/dist/{composite-C7PcQvcs.d.cts → reactive-map-DUeRmb9d.d.cts} +2 -67
- package/dist/resilience-Ba5-b4WD.d.cts +493 -0
- package/dist/resilience-CGRzhnD3.d.ts +493 -0
- package/dist/resilience-QAHKANT5.js +1 -0
- package/dist/{sugar-D02n5JjF.d.cts → sugar-BV0htudb.d.cts} +8 -4
- package/dist/{sugar-CCOxXK1e.d.ts → sugar-Dtyrq2_q.d.ts} +8 -4
- package/dist/topology-tree-CYHOwQZ_.d.ts +25 -0
- package/dist/topology-tree-DROUdq5B.d.cts +25 -0
- package/dist/types-O3GzJY2U.d.cts +401 -0
- package/dist/types-u64Ose53.d.ts +401 -0
- package/package.json +252 -22
- package/dist/ai-CaR_912Q.d.cts +0 -1033
- package/dist/ai-WlRltJV7.d.ts +0 -1033
- package/dist/chunk-3ZWCKRHX.js +0 -117
- package/dist/chunk-3ZWCKRHX.js.map +0 -1
- package/dist/chunk-7TAQJHQV.js +0 -103
- package/dist/chunk-7TAQJHQV.js.map +0 -1
- package/dist/chunk-APFNLIRG.js +0 -62
- package/dist/chunk-APFNLIRG.js.map +0 -1
- package/dist/chunk-AT5LKYNL.js +0 -395
- package/dist/chunk-AT5LKYNL.js.map +0 -1
- package/dist/chunk-BQ6RQQFF.js +0 -5087
- package/dist/chunk-BQ6RQQFF.js.map +0 -1
- package/dist/chunk-BVZYTZ5H.js +0 -599
- package/dist/chunk-BVZYTZ5H.js.map +0 -1
- package/dist/chunk-DST5DKZS.js +0 -1371
- package/dist/chunk-DST5DKZS.js.map +0 -1
- package/dist/chunk-GTE6PWRZ.js +0 -866
- package/dist/chunk-GTE6PWRZ.js.map +0 -1
- package/dist/chunk-HXZEYDUR.js +0 -94
- package/dist/chunk-HXZEYDUR.js.map +0 -1
- package/dist/chunk-J22W6HV3.js +0 -107
- package/dist/chunk-J22W6HV3.js.map +0 -1
- package/dist/chunk-J2VBW3DZ.js +0 -302
- package/dist/chunk-J2VBW3DZ.js.map +0 -1
- package/dist/chunk-JSCT3CR4.js +0 -38
- package/dist/chunk-JSCT3CR4.js.map +0 -1
- package/dist/chunk-JWBCY4NC.js +0 -330
- package/dist/chunk-JWBCY4NC.js.map +0 -1
- package/dist/chunk-K2AUJHVP.js +0 -2251
- package/dist/chunk-K2AUJHVP.js.map +0 -1
- package/dist/chunk-MJ2NKQQL.js +0 -119
- package/dist/chunk-MJ2NKQQL.js.map +0 -1
- package/dist/chunk-N6UR7YVY.js +0 -198
- package/dist/chunk-N6UR7YVY.js.map +0 -1
- package/dist/chunk-NC6S43JJ.js +0 -456
- package/dist/chunk-NC6S43JJ.js.map +0 -1
- package/dist/chunk-OFVJBJXR.js +0 -98
- package/dist/chunk-OFVJBJXR.js.map +0 -1
- package/dist/chunk-OHISZPOJ.js +0 -97
- package/dist/chunk-OHISZPOJ.js.map +0 -1
- package/dist/chunk-OU5CQKNW.js +0 -102
- package/dist/chunk-OU5CQKNW.js.map +0 -1
- package/dist/chunk-PF7GRZMW.js +0 -2712
- package/dist/chunk-PF7GRZMW.js.map +0 -1
- package/dist/chunk-PHOUUNK7.js +0 -2291
- package/dist/chunk-PHOUUNK7.js.map +0 -1
- package/dist/chunk-RNHBMHKA.js +0 -1665
- package/dist/chunk-RNHBMHKA.js.map +0 -1
- package/dist/chunk-SX52TAR4.js +0 -110
- package/dist/chunk-SX52TAR4.js.map +0 -1
- package/dist/chunk-VYPWMZ6H.js +0 -98
- package/dist/chunk-VYPWMZ6H.js.map +0 -1
- package/dist/chunk-WBZOVTYK.js +0 -171
- package/dist/chunk-WBZOVTYK.js.map +0 -1
- package/dist/chunk-WKNUIZOY.js +0 -354
- package/dist/chunk-WKNUIZOY.js.map +0 -1
- package/dist/chunk-X3VMZYBT.js +0 -713
- package/dist/chunk-X3VMZYBT.js.map +0 -1
- package/dist/chunk-X5R3GL6H.js +0 -525
- package/dist/chunk-X5R3GL6H.js.map +0 -1
- package/dist/chunk-XGPU467M.js +0 -136
- package/dist/chunk-XGPU467M.js.map +0 -1
- package/dist/compat/index.cjs.map +0 -1
- package/dist/compat/index.js.map +0 -1
- package/dist/compat/jotai/index.cjs.map +0 -1
- package/dist/compat/jotai/index.js.map +0 -1
- package/dist/compat/nanostores/index.cjs.map +0 -1
- package/dist/compat/nanostores/index.js.map +0 -1
- package/dist/compat/nestjs/index.cjs.map +0 -1
- package/dist/compat/nestjs/index.js.map +0 -1
- package/dist/compat/react/index.cjs.map +0 -1
- package/dist/compat/react/index.js.map +0 -1
- package/dist/compat/solid/index.cjs.map +0 -1
- package/dist/compat/solid/index.js.map +0 -1
- package/dist/compat/svelte/index.cjs.map +0 -1
- package/dist/compat/svelte/index.js.map +0 -1
- package/dist/compat/vue/index.cjs.map +0 -1
- package/dist/compat/vue/index.js.map +0 -1
- package/dist/compat/zustand/index.cjs.map +0 -1
- package/dist/compat/zustand/index.js.map +0 -1
- package/dist/core/index.cjs.map +0 -1
- package/dist/core/index.js.map +0 -1
- package/dist/extra/index.cjs.map +0 -1
- package/dist/extra/index.js.map +0 -1
- package/dist/extra/sources.cjs.map +0 -1
- package/dist/extra/sources.js.map +0 -1
- package/dist/graph/index.cjs.map +0 -1
- package/dist/graph/index.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/patterns/ai.cjs +0 -7930
- package/dist/patterns/ai.cjs.map +0 -1
- package/dist/patterns/ai.d.cts +0 -10
- package/dist/patterns/ai.d.ts +0 -10
- package/dist/patterns/ai.js +0 -71
- package/dist/patterns/ai.js.map +0 -1
- package/dist/patterns/audit.cjs +0 -5805
- package/dist/patterns/audit.cjs.map +0 -1
- package/dist/patterns/audit.d.cts +0 -6
- package/dist/patterns/audit.d.ts +0 -6
- package/dist/patterns/audit.js +0 -29
- package/dist/patterns/audit.js.map +0 -1
- package/dist/patterns/demo-shell.cjs +0 -5604
- package/dist/patterns/demo-shell.cjs.map +0 -1
- package/dist/patterns/demo-shell.d.cts +0 -6
- package/dist/patterns/demo-shell.d.ts +0 -6
- package/dist/patterns/demo-shell.js +0 -15
- package/dist/patterns/demo-shell.js.map +0 -1
- package/dist/patterns/memory.cjs +0 -5283
- package/dist/patterns/memory.cjs.map +0 -1
- package/dist/patterns/memory.d.cts +0 -5
- package/dist/patterns/memory.d.ts +0 -5
- package/dist/patterns/memory.js +0 -20
- package/dist/patterns/memory.js.map +0 -1
- package/dist/patterns/reactive-layout/index.cjs.map +0 -1
- package/dist/patterns/reactive-layout/index.js.map +0 -1
- package/dist/storage-CMjUUuxn.d.ts +0 -190
- package/dist/storage-DdWlZo6U.d.cts +0 -190
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { a as Node } from './node-Cc1TniY8.cjs';
|
|
2
|
+
import { S as StatusValue, C as CircuitState, R as RateLimiterOptions, a as CircuitBreakerOptions, b as RetryOptions, F as FallbackInput, N as NS_PER_MS, c as NS_PER_SEC } from './resilience-Ba5-b4WD.cjs';
|
|
3
|
+
import { B as BudgetConstraint } from './index-rHJSKsU8.cjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Resilience composition with correct nesting order (roadmap §9.0b).
|
|
7
|
+
*
|
|
8
|
+
* {@link resilientPipeline} composes the resilience primitives from
|
|
9
|
+
* `extra/resilience.ts` in the order discovered during the §9.1 eval runs:
|
|
10
|
+
*
|
|
11
|
+
* ```text
|
|
12
|
+
* rateLimit → budget → breaker → timeout → retry → fallback → status
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* Note on retry/timeout ordering: `timeout` is applied BEFORE `retry` so each
|
|
16
|
+
* retry attempt resubscribes to a fresh deadline (per-attempt semantics). If
|
|
17
|
+
* `timeout` wrapped `retry`, a single deadline would apply to the entire
|
|
18
|
+
* retry chain — not what callers expect.
|
|
19
|
+
*
|
|
20
|
+
* Every step is optional — omit the option and that layer is skipped. The
|
|
21
|
+
* returned bundle exposes the final `Node<T>` plus the status/error/breaker
|
|
22
|
+
* companions so callers can wire them into dashboards, alerts, or
|
|
23
|
+
* {@link graphLens}.
|
|
24
|
+
*
|
|
25
|
+
* Subsumes the pre-1.0 `resilientFetch` template — that template becomes a
|
|
26
|
+
* preconfigured instance of this factory for the HTTP fetch case.
|
|
27
|
+
*
|
|
28
|
+
* @module
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
/** Options for {@link resilientPipeline}. Every field is optional — omit to skip that layer. */
|
|
32
|
+
interface ResilientPipelineOptions<T> {
|
|
33
|
+
/** Admission control — at most `maxEvents` DATA per `windowNs`. See {@link rateLimiter}. */
|
|
34
|
+
rateLimit?: RateLimiterOptions;
|
|
35
|
+
/** Cost/constraint gate. See {@link budgetGate}. */
|
|
36
|
+
budget?: ReadonlyArray<BudgetConstraint>;
|
|
37
|
+
/** Circuit breaker — fail-fast when the downstream resource is unhealthy. See {@link circuitBreaker}. */
|
|
38
|
+
breaker?: CircuitBreakerOptions;
|
|
39
|
+
/**
|
|
40
|
+
* Behavior when the breaker is open:
|
|
41
|
+
* - `"skip"` — emit RESOLVED (default, lets downstream drop the beat)
|
|
42
|
+
* - `"error"` — emit a `CircuitOpenError` so `retry`/`fallback` can react
|
|
43
|
+
*
|
|
44
|
+
* Only used when `breaker` is provided.
|
|
45
|
+
*/
|
|
46
|
+
breakerOnOpen?: "skip" | "error";
|
|
47
|
+
/** Retry policy on terminal ERROR. See {@link retry}. */
|
|
48
|
+
retry?: RetryOptions;
|
|
49
|
+
/**
|
|
50
|
+
* Per-attempt deadline in milliseconds. Converted to ns internally. Omit to skip the timeout wrap.
|
|
51
|
+
*
|
|
52
|
+
* Specified in ms (not ns) because callers consistently think in millisecond deadlines;
|
|
53
|
+
* retry/breaker/ratelimit options take ns to match their primitives exactly.
|
|
54
|
+
*/
|
|
55
|
+
timeoutMs?: number;
|
|
56
|
+
/** Final fallback value emitted on terminal ERROR after retry exhausts. See {@link fallback}. */
|
|
57
|
+
fallback?: FallbackInput<T>;
|
|
58
|
+
/** Initial status reported by the status node. Default `"pending"`. */
|
|
59
|
+
initialStatus?: StatusValue;
|
|
60
|
+
}
|
|
61
|
+
/** Output bundle of {@link resilientPipeline}. */
|
|
62
|
+
interface ResilientPipelineBundle<T> {
|
|
63
|
+
/** The final resilient node. Subscribe to this for DATA emissions. */
|
|
64
|
+
node: Node<T>;
|
|
65
|
+
/** Live status: `"pending" | "active" | "completed" | "errored"`. */
|
|
66
|
+
status: Node<StatusValue>;
|
|
67
|
+
/** Last error payload, or `null` when not errored. */
|
|
68
|
+
error: Node<unknown | null>;
|
|
69
|
+
/** Breaker state when `opts.breaker` was provided; `undefined` otherwise. */
|
|
70
|
+
breakerState: Node<CircuitState> | undefined;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Compose a resilient pipeline around `source` in the canonical nesting
|
|
74
|
+
* order — `rateLimit → budget → breaker → timeout → retry → fallback → status`.
|
|
75
|
+
* Omit any option to skip that layer.
|
|
76
|
+
*
|
|
77
|
+
* @param source - Upstream node to wrap.
|
|
78
|
+
* @param opts - See {@link ResilientPipelineOptions}. All fields optional.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```ts
|
|
82
|
+
* const safeFetch = resilientPipeline(fetchNode, {
|
|
83
|
+
* rateLimit: { maxEvents: 10, windowNs: NS_PER_SEC },
|
|
84
|
+
* breaker: { failureThreshold: 5 },
|
|
85
|
+
* retry: { count: 3, backoff: "exponential" },
|
|
86
|
+
* timeoutMs: 10_000,
|
|
87
|
+
* fallback: null,
|
|
88
|
+
* });
|
|
89
|
+
* safeFetch.status.subscribe(msgs => console.log(msgs));
|
|
90
|
+
* ```
|
|
91
|
+
*
|
|
92
|
+
* @category patterns
|
|
93
|
+
*/
|
|
94
|
+
declare function resilientPipeline<T>(source: Node<T>, opts?: ResilientPipelineOptions<T>): ResilientPipelineBundle<T>;
|
|
95
|
+
|
|
96
|
+
declare const index_NS_PER_MS: typeof NS_PER_MS;
|
|
97
|
+
declare const index_NS_PER_SEC: typeof NS_PER_SEC;
|
|
98
|
+
type index_ResilientPipelineBundle<T> = ResilientPipelineBundle<T>;
|
|
99
|
+
type index_ResilientPipelineOptions<T> = ResilientPipelineOptions<T>;
|
|
100
|
+
declare const index_resilientPipeline: typeof resilientPipeline;
|
|
101
|
+
declare namespace index {
|
|
102
|
+
export { index_NS_PER_MS as NS_PER_MS, index_NS_PER_SEC as NS_PER_SEC, type index_ResilientPipelineBundle as ResilientPipelineBundle, type index_ResilientPipelineOptions as ResilientPipelineOptions, index_resilientPipeline as resilientPipeline };
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export { type ResilientPipelineBundle as R, type ResilientPipelineOptions as a, index as i, resilientPipeline as r };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { A as Actor,
|
|
2
|
-
import {
|
|
3
|
-
import { T as TopicGraph } from './
|
|
1
|
+
import { A as Actor, a as Node, P as PolicyRuleData, G as GuardAction } from './node-Cc1TniY8.cjs';
|
|
2
|
+
import { G as Graph, a as GraphOptions, d as GraphPersistSnapshot, C as CausalChain } from './graph-D48Qw9Cg.cjs';
|
|
3
|
+
import { T as TopicGraph } from './index-DyxjtScX.cjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Audit, policy enforcement, and compliance export (roadmap §9.2).
|
|
@@ -29,7 +29,7 @@ interface AuditEntry {
|
|
|
29
29
|
actor?: Actor;
|
|
30
30
|
value?: unknown;
|
|
31
31
|
error?: unknown;
|
|
32
|
-
|
|
32
|
+
annotation?: string;
|
|
33
33
|
}
|
|
34
34
|
/** Options for {@link auditTrail}. */
|
|
35
35
|
interface AuditTrailOptions {
|
|
@@ -170,6 +170,12 @@ declare function policyEnforcer(target: Graph, policies: readonly PolicyRuleData
|
|
|
170
170
|
* `data`, `error`, `complete`, and `teardown` bump the version (matching the
|
|
171
171
|
* audit defaults).
|
|
172
172
|
*/
|
|
173
|
+
/**
|
|
174
|
+
* @deprecated Use `graph.explain(from, to, { reactive: true, ... })` directly.
|
|
175
|
+
* This free-function wrapper now dispatches to the consolidated
|
|
176
|
+
* {@link Graph.explain} overload for mental-model consistency with
|
|
177
|
+
* `describe` / `observe`. Will be removed pre-1.0.
|
|
178
|
+
*/
|
|
173
179
|
declare function reactiveExplainPath(target: Graph, from: string, to: string, opts?: {
|
|
174
180
|
maxDepth?: number;
|
|
175
181
|
name?: string;
|
|
@@ -224,22 +230,22 @@ interface ComplianceSnapshotResult {
|
|
|
224
230
|
*/
|
|
225
231
|
declare function complianceSnapshot(target: Graph, opts?: ComplianceSnapshotOptions): ComplianceSnapshotResult;
|
|
226
232
|
|
|
227
|
-
type
|
|
228
|
-
type
|
|
229
|
-
declare const
|
|
230
|
-
type
|
|
231
|
-
type
|
|
232
|
-
type
|
|
233
|
-
type
|
|
234
|
-
declare const
|
|
235
|
-
type
|
|
236
|
-
type
|
|
237
|
-
declare const
|
|
238
|
-
declare const
|
|
239
|
-
declare const
|
|
240
|
-
declare const
|
|
241
|
-
declare namespace
|
|
242
|
-
export { type
|
|
233
|
+
type index_AuditEntry = AuditEntry;
|
|
234
|
+
type index_AuditTrailGraph = AuditTrailGraph;
|
|
235
|
+
declare const index_AuditTrailGraph: typeof AuditTrailGraph;
|
|
236
|
+
type index_AuditTrailOptions = AuditTrailOptions;
|
|
237
|
+
type index_ComplianceSnapshotOptions = ComplianceSnapshotOptions;
|
|
238
|
+
type index_ComplianceSnapshotResult = ComplianceSnapshotResult;
|
|
239
|
+
type index_PolicyEnforcerGraph = PolicyEnforcerGraph;
|
|
240
|
+
declare const index_PolicyEnforcerGraph: typeof PolicyEnforcerGraph;
|
|
241
|
+
type index_PolicyEnforcerOptions = PolicyEnforcerOptions;
|
|
242
|
+
type index_PolicyViolation = PolicyViolation;
|
|
243
|
+
declare const index_auditTrail: typeof auditTrail;
|
|
244
|
+
declare const index_complianceSnapshot: typeof complianceSnapshot;
|
|
245
|
+
declare const index_policyEnforcer: typeof policyEnforcer;
|
|
246
|
+
declare const index_reactiveExplainPath: typeof reactiveExplainPath;
|
|
247
|
+
declare namespace index {
|
|
248
|
+
export { type index_AuditEntry as AuditEntry, index_AuditTrailGraph as AuditTrailGraph, type index_AuditTrailOptions as AuditTrailOptions, type index_ComplianceSnapshotOptions as ComplianceSnapshotOptions, type index_ComplianceSnapshotResult as ComplianceSnapshotResult, index_PolicyEnforcerGraph as PolicyEnforcerGraph, type index_PolicyEnforcerOptions as PolicyEnforcerOptions, type index_PolicyViolation as PolicyViolation, index_auditTrail as auditTrail, index_complianceSnapshot as complianceSnapshot, index_policyEnforcer as policyEnforcer, index_reactiveExplainPath as reactiveExplainPath };
|
|
243
249
|
}
|
|
244
250
|
|
|
245
|
-
export { type AuditEntry as A, type ComplianceSnapshotOptions as C, PolicyEnforcerGraph as P, type PolicyViolation as a,
|
|
251
|
+
export { type AuditEntry as A, type ComplianceSnapshotOptions as C, PolicyEnforcerGraph as P, type PolicyViolation as a, AuditTrailGraph as b, type AuditTrailOptions as c, type ComplianceSnapshotResult as d, type PolicyEnforcerOptions as e, auditTrail as f, complianceSnapshot as g, index as i, policyEnforcer as p, reactiveExplainPath as r };
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { a as Node } from './node-Cc1TniY8.cjs';
|
|
2
|
+
import { a as GraphOptions, G as Graph } from './graph-D48Qw9Cg.cjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* CQRS patterns (roadmap §4.5).
|
|
6
|
+
*
|
|
7
|
+
* Composition layer over reactiveLog (3.2), pipeline/sagas (4.1), event bus (4.2),
|
|
8
|
+
* projections (4.3). Guards (1.5) enforce command/query boundary.
|
|
9
|
+
*
|
|
10
|
+
* - `cqrs(name, opts?)` → `CqrsGraph` — top-level factory
|
|
11
|
+
* - `CqrsGraph.command(name, handler)` — write-only node; guard rejects `observe`
|
|
12
|
+
* - `CqrsGraph.event(name)` — backed by `reactiveLog`; append-only
|
|
13
|
+
* - `CqrsGraph.projection(name, events, reducer, initial)` — read-only derived; guard rejects `write`
|
|
14
|
+
* - `CqrsGraph.saga(name, events, handler)` — event-driven side effects
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Immutable envelope for events emitted by command handlers.
|
|
19
|
+
*
|
|
20
|
+
* `seq` is a per-graph monotonic counter that provides stable ordering when
|
|
21
|
+
* multiple events share the same `timestampNs` (same wall-clock tick).
|
|
22
|
+
*/
|
|
23
|
+
type CqrsEvent<T = unknown> = {
|
|
24
|
+
type: string;
|
|
25
|
+
payload: T;
|
|
26
|
+
/** Wall-clock nanoseconds (via `wallClockNs()`). */
|
|
27
|
+
timestampNs: number;
|
|
28
|
+
/** Monotonic sequence within this CqrsGraph instance. */
|
|
29
|
+
seq: number;
|
|
30
|
+
/** V0 identity of the event log node at append time (§6.0b). */
|
|
31
|
+
v0?: {
|
|
32
|
+
id: string;
|
|
33
|
+
version: number;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Opaque replay cursor returned by `loadEvents`. Pass it back to
|
|
38
|
+
* `loadEvents` to resume from the last position.
|
|
39
|
+
*/
|
|
40
|
+
type EventStoreCursor = {
|
|
41
|
+
readonly __brand?: "EventStoreCursor";
|
|
42
|
+
[key: string]: unknown;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Result of `loadEvents` — events plus an opaque cursor for resumption.
|
|
46
|
+
*/
|
|
47
|
+
type LoadEventsResult = {
|
|
48
|
+
events: CqrsEvent[];
|
|
49
|
+
cursor: EventStoreCursor | undefined;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Pluggable persistence for CQRS events.
|
|
53
|
+
*
|
|
54
|
+
* **`persist`:** Must be synchronous. Called from the dispatch path inside
|
|
55
|
+
* `batch()`. Adapters that need async I/O should buffer internally and
|
|
56
|
+
* expose a `flush()` method for explicit drain.
|
|
57
|
+
*/
|
|
58
|
+
interface EventStoreAdapter {
|
|
59
|
+
persist(event: CqrsEvent): void;
|
|
60
|
+
/**
|
|
61
|
+
* Load persisted events. When `cursor` is provided, returns only events
|
|
62
|
+
* after that position. The returned `cursor` should be passed to the next
|
|
63
|
+
* `loadEvents` call for incremental replay.
|
|
64
|
+
*/
|
|
65
|
+
loadEvents(eventType: string, cursor?: EventStoreCursor): LoadEventsResult | Promise<LoadEventsResult>;
|
|
66
|
+
/** Optional explicit flush for adapters with async I/O. */
|
|
67
|
+
flush?(): Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
declare class MemoryEventStore implements EventStoreAdapter {
|
|
70
|
+
private readonly _store;
|
|
71
|
+
persist(event: CqrsEvent): void;
|
|
72
|
+
loadEvents(eventType: string, cursor?: EventStoreCursor): LoadEventsResult;
|
|
73
|
+
clear(): void;
|
|
74
|
+
}
|
|
75
|
+
type CommandActions = {
|
|
76
|
+
/** Append an event to a named event log (bypasses event guard). */
|
|
77
|
+
emit: (eventName: string, payload: unknown) => void;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Command handler receives the dispatch payload and actions to emit events.
|
|
81
|
+
*
|
|
82
|
+
* **Purity:** Handlers should not mutate the payload. Event emission via
|
|
83
|
+
* `actions.emit()` is the only sanctioned side effect.
|
|
84
|
+
*/
|
|
85
|
+
type CommandHandler<T = unknown> = (payload: T, actions: CommandActions) => void;
|
|
86
|
+
/**
|
|
87
|
+
* Projection reducer folds events into a read model.
|
|
88
|
+
*
|
|
89
|
+
* **Purity contract:** Reducers MUST be pure — return a new state value
|
|
90
|
+
* without mutating `state` or any event. The `state` parameter is the
|
|
91
|
+
* original `initial` value on every invocation (full event-sourcing replay),
|
|
92
|
+
* so mutation would corrupt future recomputations.
|
|
93
|
+
*/
|
|
94
|
+
type ProjectionReducer<TState = unknown, TEvent = unknown> = (state: TState, events: readonly CqrsEvent<TEvent>[]) => TState;
|
|
95
|
+
type SagaHandler<T = unknown> = (event: CqrsEvent<T>) => void;
|
|
96
|
+
type CqrsOptions = {
|
|
97
|
+
graph?: GraphOptions;
|
|
98
|
+
};
|
|
99
|
+
declare class CqrsGraph extends Graph {
|
|
100
|
+
private readonly _eventLogs;
|
|
101
|
+
private readonly _commandHandlers;
|
|
102
|
+
private readonly _projections;
|
|
103
|
+
private readonly _sagas;
|
|
104
|
+
private readonly _keepaliveDisposers;
|
|
105
|
+
private _eventStore;
|
|
106
|
+
private _seq;
|
|
107
|
+
constructor(name: string, opts?: CqrsOptions);
|
|
108
|
+
destroy(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Register a named event stream backed by `reactiveLog`.
|
|
111
|
+
* Guard denies external `write` — only commands append internally.
|
|
112
|
+
*/
|
|
113
|
+
event(name: string): Node<readonly CqrsEvent[]>;
|
|
114
|
+
/** Internal: append to an event log, auto-registering if needed. */
|
|
115
|
+
private _appendEvent;
|
|
116
|
+
/**
|
|
117
|
+
* Register a command with its handler. Guard denies `observe` (write-only).
|
|
118
|
+
* Use `dispatch(name, payload)` to execute.
|
|
119
|
+
*
|
|
120
|
+
* The command node carries dynamic `meta.error` — a reactive companion
|
|
121
|
+
* that holds the last handler error (or `null` on success).
|
|
122
|
+
*/
|
|
123
|
+
command<T = unknown>(name: string, handler: CommandHandler<T>): Node<T>;
|
|
124
|
+
/**
|
|
125
|
+
* Execute a registered command. Wraps the entire dispatch in `batch()` so
|
|
126
|
+
* the command node DATA and all emitted events settle atomically.
|
|
127
|
+
*
|
|
128
|
+
* If the handler throws, `meta.error` on the command node is set to the
|
|
129
|
+
* error and the exception is re-thrown.
|
|
130
|
+
*/
|
|
131
|
+
dispatch<T = unknown>(commandName: string, payload: T): void;
|
|
132
|
+
/**
|
|
133
|
+
* Register a read-only projection derived from event streams.
|
|
134
|
+
* Guard denies `write` — value is computed from events only.
|
|
135
|
+
*
|
|
136
|
+
* **Purity contract:** The `reducer` must be a pure function — it receives
|
|
137
|
+
* the original `initial` on every invocation (full event-sourcing replay).
|
|
138
|
+
* Never mutate `initial`; always return a new value.
|
|
139
|
+
*/
|
|
140
|
+
projection<TState>(name: string, eventNames: readonly string[], reducer: ProjectionReducer<TState>, initial: TState): Node<TState>;
|
|
141
|
+
/**
|
|
142
|
+
* Register an event-driven side effect. Runs handler for each **new** event
|
|
143
|
+
* from the specified streams (tracks last-processed entry count per stream).
|
|
144
|
+
*
|
|
145
|
+
* The saga node carries dynamic `meta.error` — a reactive companion that
|
|
146
|
+
* holds the last handler error (or `null` on success). Handler errors do
|
|
147
|
+
* not propagate out of the saga run (the event cursor still advances so
|
|
148
|
+
* the same entry is not delivered twice).
|
|
149
|
+
*/
|
|
150
|
+
saga<T = unknown>(name: string, eventNames: readonly string[], handler: SagaHandler<T>): Node<unknown>;
|
|
151
|
+
useEventStore(adapter: EventStoreAdapter): void;
|
|
152
|
+
/**
|
|
153
|
+
* Replay persisted events through a reducer to rebuild a read model.
|
|
154
|
+
* Requires an event store adapter wired via `useEventStore()`.
|
|
155
|
+
*/
|
|
156
|
+
rebuildProjection<TState>(eventNames: readonly string[], reducer: ProjectionReducer<TState>, initial: TState): Promise<TState>;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Create a CQRS graph container.
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```ts
|
|
163
|
+
* const app = cqrs("orders");
|
|
164
|
+
* app.event("orderPlaced");
|
|
165
|
+
* app.command("placeOrder", (payload, { emit }) => {
|
|
166
|
+
* emit("orderPlaced", { orderId: payload.id, amount: payload.amount });
|
|
167
|
+
* });
|
|
168
|
+
* app.projection("orderCount", ["orderPlaced"], (_s, events) => events.length, 0);
|
|
169
|
+
* app.dispatch("placeOrder", { id: "1", amount: 100 });
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
declare function cqrs(name: string, opts?: CqrsOptions): CqrsGraph;
|
|
173
|
+
|
|
174
|
+
type index_CommandActions = CommandActions;
|
|
175
|
+
type index_CommandHandler<T = unknown> = CommandHandler<T>;
|
|
176
|
+
type index_CqrsEvent<T = unknown> = CqrsEvent<T>;
|
|
177
|
+
type index_CqrsGraph = CqrsGraph;
|
|
178
|
+
declare const index_CqrsGraph: typeof CqrsGraph;
|
|
179
|
+
type index_CqrsOptions = CqrsOptions;
|
|
180
|
+
type index_EventStoreAdapter = EventStoreAdapter;
|
|
181
|
+
type index_EventStoreCursor = EventStoreCursor;
|
|
182
|
+
type index_LoadEventsResult = LoadEventsResult;
|
|
183
|
+
type index_MemoryEventStore = MemoryEventStore;
|
|
184
|
+
declare const index_MemoryEventStore: typeof MemoryEventStore;
|
|
185
|
+
type index_ProjectionReducer<TState = unknown, TEvent = unknown> = ProjectionReducer<TState, TEvent>;
|
|
186
|
+
type index_SagaHandler<T = unknown> = SagaHandler<T>;
|
|
187
|
+
declare const index_cqrs: typeof cqrs;
|
|
188
|
+
declare namespace index {
|
|
189
|
+
export { type index_CommandActions as CommandActions, type index_CommandHandler as CommandHandler, type index_CqrsEvent as CqrsEvent, index_CqrsGraph as CqrsGraph, type index_CqrsOptions as CqrsOptions, type index_EventStoreAdapter as EventStoreAdapter, type index_EventStoreCursor as EventStoreCursor, type index_LoadEventsResult as LoadEventsResult, index_MemoryEventStore as MemoryEventStore, type index_ProjectionReducer as ProjectionReducer, type index_SagaHandler as SagaHandler, index_cqrs as cqrs };
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
export { type CqrsOptions as C, type EventStoreAdapter as E, type LoadEventsResult as L, MemoryEventStore as M, type ProjectionReducer as P, type SagaHandler as S, CqrsGraph as a, type CommandActions as b, type CommandHandler as c, type CqrsEvent as d, type EventStoreCursor as e, cqrs as f, index as i };
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { a as Node } from './node-Cc1TniY8.cjs';
|
|
2
|
+
import { R as ReactiveMapBundle } from './reactive-map-DUeRmb9d.cjs';
|
|
3
|
+
import { a as GraphOptions, G as Graph, C as CausalChain } from './graph-D48Qw9Cg.cjs';
|
|
4
|
+
import { w as watchTopologyTree } from './topology-tree-DROUdq5B.cjs';
|
|
5
|
+
|
|
6
|
+
/** Aggregate topology stats emitted by {@link LensGraph.stats}. */
|
|
7
|
+
interface TopologyStats {
|
|
8
|
+
/** Total primary nodes across this graph and all transitively mounted subgraphs. */
|
|
9
|
+
nodeCount: number;
|
|
10
|
+
/** Total directed edges (derived from deps; no duplicates). */
|
|
11
|
+
edgeCount: number;
|
|
12
|
+
/** Count of mounted subgraphs (transitive). */
|
|
13
|
+
subgraphCount: number;
|
|
14
|
+
/** Qualified paths with no upstream deps (source nodes). Sorted. */
|
|
15
|
+
sources: readonly string[];
|
|
16
|
+
/** Qualified paths with no downstream consumers in-graph (sink nodes). Sorted. */
|
|
17
|
+
sinks: readonly string[];
|
|
18
|
+
/** Longest path from any source to any sink (in edges). `0` for empty graphs. */
|
|
19
|
+
depth: number;
|
|
20
|
+
/** `true` if the dep DAG contains a cycle (feedback edge). */
|
|
21
|
+
hasCycles: boolean;
|
|
22
|
+
}
|
|
23
|
+
/** A single health problem entry. */
|
|
24
|
+
interface HealthProblem {
|
|
25
|
+
path: string;
|
|
26
|
+
/** V1 only reports `"errored"`. Future versions may add `"completed"`, `"disconnected"`. */
|
|
27
|
+
status: "errored";
|
|
28
|
+
/** First errored upstream ancestor along the dep chain, when one exists and is distinct from `path`. */
|
|
29
|
+
upstreamCause?: string;
|
|
30
|
+
}
|
|
31
|
+
/** Aggregate health snapshot. `ok=true` iff `problems.length === 0`. */
|
|
32
|
+
interface HealthReport {
|
|
33
|
+
ok: boolean;
|
|
34
|
+
problems: readonly HealthProblem[];
|
|
35
|
+
}
|
|
36
|
+
/** One per-path flow entry stored in {@link LensGraph.flow}. */
|
|
37
|
+
interface FlowEntry {
|
|
38
|
+
path: string;
|
|
39
|
+
/** Cumulative DATA emissions observed since the lens activated. */
|
|
40
|
+
count: number;
|
|
41
|
+
/** `monotonicNs()` at the most recent DATA emission, or `null` if none yet. */
|
|
42
|
+
lastUpdate_ns: number | null;
|
|
43
|
+
}
|
|
44
|
+
/** Options for {@link graphLens}. */
|
|
45
|
+
interface GraphLensOptions {
|
|
46
|
+
name?: string;
|
|
47
|
+
graph?: GraphOptions;
|
|
48
|
+
/**
|
|
49
|
+
* Limit which node paths `flow` tracks. When omitted, every path in
|
|
50
|
+
* `target.describe()` is observed. Recommended for graphs with hundreds
|
|
51
|
+
* of nodes since each tracked path adds one observe-event dispatch per
|
|
52
|
+
* DATA emission.
|
|
53
|
+
*/
|
|
54
|
+
pathFilter?: (path: string) => boolean;
|
|
55
|
+
/**
|
|
56
|
+
* LRU cap on the {@link LensGraph.flow} map. When set, the flow tracker
|
|
57
|
+
* evicts least-recently-used paths (by insertion / set order) once the
|
|
58
|
+
* entry count exceeds this bound. Omit for unbounded (not recommended
|
|
59
|
+
* for long-running graphs with churning paths). Passed through to the
|
|
60
|
+
* underlying {@link reactiveMap}'s `maxSize`.
|
|
61
|
+
*/
|
|
62
|
+
maxFlowPaths?: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Reactive observability surface for a target {@link Graph}.
|
|
66
|
+
* See {@link graphLens}.
|
|
67
|
+
*
|
|
68
|
+
* @category observability
|
|
69
|
+
*/
|
|
70
|
+
declare class LensGraph extends Graph {
|
|
71
|
+
/**
|
|
72
|
+
* Aggregate structural stats — `nodeCount`, `edgeCount`, `sources`,
|
|
73
|
+
* `sinks`, `depth`, `hasCycles`, `subgraphCount`. Recomputes on every
|
|
74
|
+
* structural change via {@link watchTopologyTree} (transitive).
|
|
75
|
+
*
|
|
76
|
+
* Named `stats` (not `topology`) because `Graph.topology` already names
|
|
77
|
+
* the raw `TopologyEvent` stream on every graph including `LensGraph`;
|
|
78
|
+
* giving the lens its own `topology` accessor with an incompatible
|
|
79
|
+
* `Node<TopologyStats>` type would break Liskov substitutability.
|
|
80
|
+
*/
|
|
81
|
+
readonly stats: Node<TopologyStats>;
|
|
82
|
+
readonly health: Node<HealthReport>;
|
|
83
|
+
/**
|
|
84
|
+
* Per-path flow tracker — a live {@link ReactiveMapBundle} keyed by
|
|
85
|
+
* qualified path. Use `.get(path)` / `.has(path)` / `.size` for O(1)
|
|
86
|
+
* sync queries; subscribe to `.entries` for a reactive snapshot of the
|
|
87
|
+
* whole map. Lazy — the snapshot is materialized only while `.entries`
|
|
88
|
+
* has subscribers.
|
|
89
|
+
*
|
|
90
|
+
* Shape intentionally differs from `stats` / `health` (which are plain
|
|
91
|
+
* `Node<Report>`) because `flow` is a keyed collection, not a single
|
|
92
|
+
* aggregate value. The map shape exposes cheaper queries than any
|
|
93
|
+
* snapshot-based design.
|
|
94
|
+
*/
|
|
95
|
+
readonly flow: ReactiveMapBundle<string, FlowEntry>;
|
|
96
|
+
private readonly _target;
|
|
97
|
+
constructor(target: Graph, opts?: GraphLensOptions);
|
|
98
|
+
/**
|
|
99
|
+
* Live causal chain from `from` to `to`. Recomputes whenever the target
|
|
100
|
+
* mutates. Disposed automatically when the lens is destroyed.
|
|
101
|
+
*
|
|
102
|
+
* **Lifetime note:** every call to `why()` registers a lens-owned disposer
|
|
103
|
+
* that runs on `lens.destroy()`. The returned `dispose` function releases
|
|
104
|
+
* the internal subscription but does NOT remove the lens-owned disposer —
|
|
105
|
+
* so heavy calling (e.g. per render frame) accumulates no-op disposers
|
|
106
|
+
* until lens teardown. Cache the returned handle for long-lived queries.
|
|
107
|
+
*
|
|
108
|
+
* @param from - Qualified path of the upstream endpoint.
|
|
109
|
+
* @param to - Qualified path of the downstream endpoint.
|
|
110
|
+
* @param opts - See {@link reactiveExplainPath}.
|
|
111
|
+
*/
|
|
112
|
+
why(from: string, to: string, opts?: {
|
|
113
|
+
maxDepth?: number;
|
|
114
|
+
name?: string;
|
|
115
|
+
findCycle?: boolean;
|
|
116
|
+
}): {
|
|
117
|
+
node: Node<CausalChain>;
|
|
118
|
+
dispose: () => void;
|
|
119
|
+
};
|
|
120
|
+
/** Reference to the lensed graph. */
|
|
121
|
+
get target(): Graph;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Create a reactive observability lens over a {@link Graph}. Returns a
|
|
125
|
+
* {@link LensGraph} with three reactive surfaces (`stats`, `health`, `flow`)
|
|
126
|
+
* plus the `why(from, to)` method.
|
|
127
|
+
*
|
|
128
|
+
* The returned graph is detached. Mount it via `target.mount("lens", lens)`
|
|
129
|
+
* if you want it to appear in the target's `describe()`, or keep it standalone.
|
|
130
|
+
*
|
|
131
|
+
* @param target - The graph to observe.
|
|
132
|
+
* @param opts - See {@link GraphLensOptions}.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```ts
|
|
136
|
+
* const g = new Graph("app");
|
|
137
|
+
* g.add(state(0, { name: "counter" }));
|
|
138
|
+
* const lens = graphLens(g);
|
|
139
|
+
* lens.stats.subscribe((msgs) => console.log(msgs[0]?.[1])); // TopologyStats
|
|
140
|
+
* // Flow queries — O(1) without subscribing to snapshots:
|
|
141
|
+
* lens.flow.get("counter"); // FlowEntry | undefined
|
|
142
|
+
* lens.flow.size; // number
|
|
143
|
+
* lens.flow.entries.subscribe(...); // reactive snapshot, lazy-materialized
|
|
144
|
+
* ```
|
|
145
|
+
*
|
|
146
|
+
* @category observability
|
|
147
|
+
*/
|
|
148
|
+
declare function graphLens(target: Graph, opts?: GraphLensOptions): LensGraph;
|
|
149
|
+
|
|
150
|
+
type index_FlowEntry = FlowEntry;
|
|
151
|
+
type index_GraphLensOptions = GraphLensOptions;
|
|
152
|
+
type index_HealthProblem = HealthProblem;
|
|
153
|
+
type index_HealthReport = HealthReport;
|
|
154
|
+
type index_LensGraph = LensGraph;
|
|
155
|
+
declare const index_LensGraph: typeof LensGraph;
|
|
156
|
+
type index_TopologyStats = TopologyStats;
|
|
157
|
+
declare const index_graphLens: typeof graphLens;
|
|
158
|
+
declare const index_watchTopologyTree: typeof watchTopologyTree;
|
|
159
|
+
declare namespace index {
|
|
160
|
+
export { type index_FlowEntry as FlowEntry, type index_GraphLensOptions as GraphLensOptions, type index_HealthProblem as HealthProblem, type index_HealthReport as HealthReport, index_LensGraph as LensGraph, type index_TopologyStats as TopologyStats, index_graphLens as graphLens, index_watchTopologyTree as watchTopologyTree };
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export { type FlowEntry as F, type GraphLensOptions as G, type HealthProblem as H, LensGraph as L, type TopologyStats as T, type HealthReport as a, graphLens as g, index as i };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { i as index$2 } from './index-
|
|
2
|
-
import { i as index$3 } from './index-
|
|
3
|
-
import { i as index$4 } from './index-
|
|
4
|
-
import { i as index$5 } from './index-
|
|
5
|
-
import {
|
|
6
|
-
import { i as index$6 } from './index-
|
|
7
|
-
import { i as index$7 } from './index-
|
|
8
|
-
import { i as index$8 } from './index-
|
|
9
|
-
import { i as index$9 } from './index-
|
|
1
|
+
import { i as index$2 } from './index-Bqachn9_.js';
|
|
2
|
+
import { i as index$3 } from './index-CMn8S8Hw.js';
|
|
3
|
+
import { i as index$4 } from './index-m-yHof5p.js';
|
|
4
|
+
import { i as index$5 } from './index-BVHOrDwO.js';
|
|
5
|
+
import { a as Node } from './node-Cc1TniY8.js';
|
|
6
|
+
import { i as index$6 } from './index-B1AmmSlb.js';
|
|
7
|
+
import { i as index$7 } from './index-BWJV63ti.js';
|
|
8
|
+
import { i as index$8 } from './index-BwM9BEkt.js';
|
|
9
|
+
import { i as index$9 } from './index-DiOXyAwt.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Options for creating signals.
|