@graphrefly/graphrefly 0.34.0 → 0.35.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/{cascading-DKIb6Pk8.d.cts → cascading-B25wxpRa.d.cts} +3 -3
- package/dist/{cascading-Bg0a4VSf.d.ts → cascading-BsJ4GbnS.d.ts} +3 -3
- package/dist/{chunk-TZLEMGAK.js → chunk-2Y3DKIZL.js} +2 -2
- package/dist/chunk-3OT7K33Q.js +1 -0
- package/dist/chunk-53XJ2S6D.js +1 -0
- package/dist/chunk-5CPPC75H.js +1 -0
- package/dist/chunk-5KPIYVCC.js +7 -0
- package/dist/{chunk-GAOX6OPT.js → chunk-5XZRCS2M.js} +1 -1
- package/dist/{chunk-C5DINHNP.js → chunk-6G5YD37E.js} +1 -1
- package/dist/{chunk-WBWBY6LI.js → chunk-6SVKZ7VI.js} +1 -1
- package/dist/chunk-A5HZZYRK.js +1 -0
- package/dist/chunk-BGEY3PXH.js +1 -0
- package/dist/chunk-CD4CB6S7.js +1 -0
- package/dist/chunk-CE72X3WO.js +1 -0
- package/dist/chunk-CUQFO6MT.js +1 -0
- package/dist/chunk-D5RFJOZ2.js +1 -0
- package/dist/{chunk-A3GDELMY.js → chunk-E5YSBQSF.js} +7 -7
- package/dist/{chunk-SFIM774L.js → chunk-EUE7ELFQ.js} +1 -1
- package/dist/chunk-F3IGTWCQ.js +1 -0
- package/dist/chunk-F672GV32.js +1 -0
- package/dist/{chunk-GCUYSIM4.js → chunk-GWOKTENT.js} +1 -1
- package/dist/{chunk-4NYSEUKV.js → chunk-J6TGRQUP.js} +1 -1
- package/dist/{chunk-4F564IPP.js → chunk-JJTF75VS.js} +1 -1
- package/dist/{chunk-BY4WKPKM.js → chunk-JUJEPZOI.js} +1 -1
- package/dist/{chunk-65WWQ5CB.js → chunk-M5UC63ZI.js} +5 -5
- package/dist/chunk-MQZWA3DF.js +1 -0
- package/dist/chunk-MYFR67PY.js +18 -0
- package/dist/{chunk-KN2UMFT6.js → chunk-PCD2MU7X.js} +1 -1
- package/dist/{chunk-YDWTVO4E.js → chunk-PIIUJIF7.js} +1 -1
- package/dist/chunk-PVUTRA5K.js +5 -0
- package/dist/chunk-Q7EUZ6NN.js +1 -0
- package/dist/chunk-RLMYS3XZ.js +1 -0
- package/dist/chunk-RRFOCAH6.js +1 -0
- package/dist/{chunk-Q46YJCQH.js → chunk-T6RPUERH.js} +1 -1
- package/dist/{chunk-IPNJDNE7.js → chunk-T7GWBGOO.js} +1 -1
- package/dist/{chunk-U2T2XWDA.js → chunk-U347KVM4.js} +1 -1
- package/dist/chunk-UAMWD4GG.js +1 -0
- package/dist/chunk-VN6RDSK2.js +1 -0
- package/dist/{chunk-CJMFZXIZ.js → chunk-W2ZU226Q.js} +1 -1
- package/dist/{chunk-UF746BQ4.js → chunk-XINLP35X.js} +1 -1
- package/dist/{chunk-TONEKQM3.js → chunk-XMDNNSMK.js} +1 -1
- package/dist/{chunk-INXDSJRC.js → chunk-YOUAVGHJ.js} +1 -1
- package/dist/chunk-YV2A2VWG.js +1 -0
- package/dist/{chunk-PBN426RU.js → chunk-ZGVA2SR5.js} +1 -1
- package/dist/compat/index.cjs +10 -10
- package/dist/compat/index.d.cts +17 -14
- package/dist/compat/index.d.ts +17 -14
- package/dist/compat/index.js +1 -1
- package/dist/compat/jotai/index.d.cts +2 -2
- package/dist/compat/jotai/index.d.ts +2 -2
- package/dist/compat/nanostores/index.d.cts +2 -2
- package/dist/compat/nanostores/index.d.ts +2 -2
- package/dist/compat/nestjs/index.cjs +12 -12
- package/dist/compat/nestjs/index.d.cts +9 -6
- package/dist/compat/nestjs/index.d.ts +9 -6
- package/dist/compat/nestjs/index.js +1 -1
- package/dist/compat/react/index.d.cts +2 -2
- package/dist/compat/react/index.d.ts +2 -2
- package/dist/compat/solid/index.d.cts +2 -2
- package/dist/compat/solid/index.d.ts +2 -2
- package/dist/compat/svelte/index.d.cts +2 -2
- package/dist/compat/svelte/index.d.ts +2 -2
- package/dist/compat/vue/index.d.cts +2 -2
- package/dist/compat/vue/index.d.ts +2 -2
- package/dist/compat/zustand/index.cjs +7 -7
- package/dist/compat/zustand/index.d.cts +5 -4
- package/dist/compat/zustand/index.d.ts +5 -4
- package/dist/compat/zustand/index.js +1 -1
- package/dist/{composite-BPDU_XV1.d.ts → composite-CT_mApQD.d.ts} +2 -2
- package/dist/{composite-CmvdhTJe.d.cts → composite-_XckYx2e.d.cts} +2 -2
- package/dist/{content-addressed-storage-DqIWCmZG.d.cts → content-addressed-storage-4-ST1tYk.d.cts} +5 -5
- package/dist/{content-addressed-storage-BUiREIuj.d.ts → content-addressed-storage-DuYMjV7o.d.ts} +5 -5
- package/dist/core/index.d.cts +4 -4
- package/dist/core/index.d.ts +4 -4
- package/dist/extra/browser.cjs +1 -1
- package/dist/extra/browser.d.cts +4 -3
- package/dist/extra/browser.d.ts +4 -3
- package/dist/extra/browser.js +1 -1
- package/dist/extra/index.cjs +19 -19
- package/dist/extra/index.d.cts +13 -12
- package/dist/extra/index.d.ts +13 -12
- package/dist/extra/index.js +1 -1
- package/dist/extra/node.cjs +2 -3
- package/dist/extra/node.d.cts +3 -3
- package/dist/extra/node.d.ts +3 -3
- package/dist/extra/node.js +2 -2
- package/dist/extra/operators.cjs +1 -1
- package/dist/extra/operators.d.cts +1 -1
- package/dist/extra/operators.d.ts +1 -1
- package/dist/extra/operators.js +1 -1
- package/dist/extra/reactive.cjs +1 -1
- package/dist/extra/reactive.d.cts +4 -3
- package/dist/extra/reactive.d.ts +4 -3
- package/dist/extra/reactive.js +1 -1
- package/dist/extra/sources.cjs +1 -1
- package/dist/extra/sources.d.cts +57 -2
- package/dist/extra/sources.d.ts +57 -2
- package/dist/extra/sources.js +1 -1
- package/dist/extra/storage-browser.cjs +1 -1
- package/dist/extra/storage-browser.d.cts +8 -42
- package/dist/extra/storage-browser.d.ts +8 -42
- package/dist/extra/storage-browser.js +1 -1
- package/dist/extra/storage-core.cjs +1 -1
- package/dist/extra/storage-core.d.cts +13 -83
- package/dist/extra/storage-core.d.ts +13 -83
- package/dist/extra/storage-core.js +1 -1
- package/dist/extra/storage-node.cjs +1 -2
- package/dist/extra/storage-node.d.cts +1 -59
- package/dist/extra/storage-node.d.ts +1 -59
- package/dist/extra/storage-node.js +0 -1
- package/dist/extra/storage-tiers-browser.cjs +1 -0
- package/dist/extra/storage-tiers-browser.d.cts +49 -0
- package/dist/extra/storage-tiers-browser.d.ts +49 -0
- package/dist/extra/storage-tiers-browser.js +1 -0
- package/dist/extra/storage-tiers-node.cjs +1 -0
- package/dist/extra/storage-tiers-node.d.cts +86 -0
- package/dist/extra/storage-tiers-node.d.ts +86 -0
- package/dist/extra/storage-tiers-node.js +1 -0
- package/dist/extra/storage-tiers.cjs +1 -0
- package/dist/extra/storage-tiers.d.cts +284 -0
- package/dist/extra/storage-tiers.d.ts +284 -0
- package/dist/extra/storage-tiers.js +1 -0
- package/dist/{fallback-mYSd8vQo.d.ts → fallback-DuEXfA4F.d.ts} +14 -14
- package/dist/{fallback-9YznPvPP.d.cts → fallback-axI2cXwt.d.cts} +14 -14
- package/dist/graph/index.cjs +3 -3
- package/dist/graph/index.d.cts +6 -5
- package/dist/graph/index.d.ts +6 -5
- package/dist/graph/index.js +1 -1
- package/dist/{graph-BROUZPG9.d.ts → graph-Cv-8x0ZI.d.ts} +28 -16
- package/dist/{graph-DaoydJ_u.d.cts → graph-kTltt95s.d.cts} +28 -16
- package/dist/imperative-audit-ahAE65a9.d.cts +28 -0
- package/dist/imperative-audit-ahAE65a9.d.ts +28 -0
- package/dist/{index-CI5fULSz.d.ts → index-8OxXae3g.d.ts} +1 -1
- package/dist/{index-CQ1gt4rn.d.cts → index-9xhIaM-w.d.cts} +1 -1
- package/dist/{index-DhWrMTI6.d.cts → index-B3D_z0Z6.d.cts} +1 -1
- package/dist/{index-Ccv_61jG.d.cts → index-B3Dfl5sS.d.cts} +110 -27
- package/dist/{index-Dia4yc2y.d.ts → index-B4s70vYf.d.ts} +4 -4
- package/dist/{index-Db21wuaD.d.ts → index-B5UR87KG.d.ts} +3 -3
- package/dist/{index-DuvQAU02.d.ts → index-BBdwz2BW.d.ts} +2 -2
- package/dist/{index-B5eS17Bz.d.ts → index-BEvsFlfH.d.ts} +47 -32
- package/dist/{index-BUtCR0k6.d.ts → index-BF-ssbJB.d.ts} +7 -7
- package/dist/{index-ClKm7CFB.d.cts → index-BFuVcqL8.d.cts} +1 -1
- package/dist/{index-BkfL5MXh.d.cts → index-BWH17rK_.d.cts} +3 -3
- package/dist/{index-CD7qmvSf.d.ts → index-BZ1V5GzX.d.ts} +3 -3
- package/dist/{index-BDEhWLF4.d.cts → index-BhkPzu-Z.d.cts} +4 -4
- package/dist/{index-CNxdDb2e.d.ts → index-Bilohojo.d.ts} +3 -3
- package/dist/{index-zA1uVtk0.d.ts → index-BiomL7AW.d.ts} +1 -1
- package/dist/{index-BWiX5foT.d.ts → index-BjWZARLy.d.ts} +1 -1
- package/dist/{index-IxinNgAH.d.cts → index-BkbawFkI.d.cts} +16 -15
- package/dist/{index-RJX4snyi.d.cts → index-BlRVj-7Q.d.cts} +21 -21
- package/dist/index-BpFwRAf9.d.cts +26 -0
- package/dist/{index-Ds3Rz9m9.d.cts → index-BsZlbHM5.d.cts} +3 -3
- package/dist/{index-BFHpNSsV.d.ts → index-BtY2QVDf.d.cts} +8 -7
- package/dist/{index-BsxqmV6u.d.ts → index-BuMzxRO2.d.ts} +2 -2
- package/dist/{index-C5uMGVJw.d.ts → index-BwYGLgmI.d.ts} +4 -4
- package/dist/{index-3L3RC3VJ.d.ts → index-C40wA8zt.d.ts} +7 -7
- package/dist/{index-Bi4ZP6Hc.d.ts → index-C9xF16gc.d.ts} +110 -27
- package/dist/index-CAIhFfws.d.ts +171 -0
- package/dist/{index-BRisOxlx.d.ts → index-CDvC1m5p.d.ts} +1 -1
- package/dist/index-CGKs5ixV.d.cts +287 -0
- package/dist/{index-ygRFoyrN.d.ts → index-CI_yjtua.d.ts} +2 -2
- package/dist/{index-DxEcY7Om.d.ts → index-CIcu6fIR.d.ts} +1 -1
- package/dist/{index-CQtnGFrZ.d.cts → index-CfOSES72.d.cts} +7 -7
- package/dist/{index-Bd2AjMQY.d.ts → index-Cot94_82.d.ts} +21 -21
- package/dist/{index-B1hFhK1K.d.cts → index-CpZKtdMw.d.cts} +1 -1
- package/dist/{index-BO6t0HjV.d.cts → index-CqSJ25A9.d.cts} +1 -1
- package/dist/{index-Jgl7ev9I.d.cts → index-CzC0G0C3.d.cts} +9 -9
- package/dist/{index-p0bkNfby.d.cts → index-D6JRP-1_.d.cts} +3 -3
- package/dist/{index-D23g00HE.d.cts → index-D7r_vd0b.d.cts} +4 -4
- package/dist/{index-Cp91Sxbo.d.cts → index-D8IyqHvT.d.cts} +3 -3
- package/dist/{index-iKsmdnq6.d.cts → index-D9qoEOj_.d.cts} +2 -2
- package/dist/index-DBmBtqAN.d.ts +461 -0
- package/dist/{index-nP13Qe6T.d.ts → index-DFe2Pk2u.d.ts} +1 -1
- package/dist/{index-Cn3taOmp.d.cts → index-DKp1CIbG.d.cts} +2 -2
- package/dist/{index-CoR-tOZA.d.cts → index-DSD6xnbT.d.ts} +8 -7
- package/dist/{index-DheNs40A.d.ts → index-DXSLMoma.d.ts} +2 -2
- package/dist/{index-ZIQaKIdY.d.cts → index-DXZsXxtU.d.cts} +47 -32
- package/dist/{index-BVTjuKeP.d.cts → index-D_QQ_dTD.d.cts} +1 -1
- package/dist/{index-ChZvMC4M.d.cts → index-DeyzuqAi.d.cts} +7 -7
- package/dist/{index-Chi9IiHJ.d.ts → index-DlccEIi3.d.ts} +3 -3
- package/dist/{index-DR3XqZlV.d.cts → index-DmtWMP0X.d.cts} +1 -1
- package/dist/{index-CbCNoogR.d.ts → index-Dp69u0ym.d.ts} +16 -15
- package/dist/{index-b4a6Sg0R.d.ts → index-DwNNufVa.d.ts} +4 -4
- package/dist/{index-D80nGRb9.d.ts → index-DzYTXMBz.d.ts} +3 -3
- package/dist/index-DzgS5uYi.d.ts +26 -0
- package/dist/{index-B-KCkW4M.d.cts → index-GaW6Welt.d.cts} +4 -4
- package/dist/{index-DupIl9wI.d.ts → index-JYtN9uqM.d.ts} +1 -1
- package/dist/{index-Ced0dphF.d.ts → index-KNAMYngu.d.ts} +9 -9
- package/dist/{index-BpjQanLs.d.cts → index-PluovH45.d.cts} +2 -2
- package/dist/index-Qq-G9B6g.d.cts +171 -0
- package/dist/{index-yJY9thRY.d.cts → index-XxSeddWP.d.cts} +2 -2
- package/dist/{index-C8_bnDBZ.d.cts → index-ZhKyR8co.d.cts} +3 -3
- package/dist/index-hXKhbfh-.d.ts +287 -0
- package/dist/index-zK_mN1D-.d.cts +461 -0
- package/dist/index.cjs +59 -59
- package/dist/index.d.cts +53 -49
- package/dist/index.d.ts +53 -49
- package/dist/index.js +1 -1
- package/dist/{meta-BdjSt8ky.d.cts → meta-BGO6C7K9.d.cts} +1 -1
- package/dist/{meta-CtDjj7cU.d.ts → meta-CC6EPdpK.d.ts} +1 -1
- package/dist/{node-8qx0kgYt.d.cts → node-fSc-hCv8.d.cts} +1 -1
- package/dist/{node-8qx0kgYt.d.ts → node-fSc-hCv8.d.ts} +1 -1
- package/dist/{observable-B6Ba-TTI.d.cts → observable-Cqty11jG.d.cts} +1 -1
- package/dist/{observable-DOniYM2B.d.ts → observable-EAV_rNfM.d.ts} +1 -1
- package/dist/patterns/ai/browser.cjs +5 -5
- package/dist/patterns/ai/browser.d.cts +4 -4
- package/dist/patterns/ai/browser.d.ts +4 -4
- package/dist/patterns/ai/browser.js +1 -1
- package/dist/patterns/ai/index.cjs +19 -19
- package/dist/patterns/ai/index.d.cts +19 -17
- package/dist/patterns/ai/index.d.ts +19 -17
- package/dist/patterns/ai/index.js +1 -1
- package/dist/patterns/ai/node.cjs +1 -2
- package/dist/patterns/ai/node.d.cts +9 -9
- package/dist/patterns/ai/node.d.ts +9 -9
- package/dist/patterns/ai/node.js +1 -1
- package/dist/patterns/audit/index.cjs +6 -6
- package/dist/patterns/audit/index.d.cts +7 -5
- package/dist/patterns/audit/index.d.ts +7 -5
- package/dist/patterns/audit/index.js +1 -1
- package/dist/patterns/cqrs/index.cjs +7 -7
- package/dist/patterns/cqrs/index.d.cts +7 -4
- package/dist/patterns/cqrs/index.d.ts +7 -4
- package/dist/patterns/cqrs/index.js +1 -1
- package/dist/patterns/demo-shell/index.cjs +8 -8
- package/dist/patterns/demo-shell/index.d.cts +6 -5
- package/dist/patterns/demo-shell/index.d.ts +6 -5
- package/dist/patterns/demo-shell/index.js +1 -1
- package/dist/patterns/domain-templates/index.cjs +5 -5
- package/dist/patterns/domain-templates/index.d.cts +5 -4
- package/dist/patterns/domain-templates/index.d.ts +5 -4
- package/dist/patterns/domain-templates/index.js +1 -1
- package/dist/patterns/graphspec/index.cjs +20 -20
- package/dist/patterns/graphspec/index.d.cts +6 -5
- package/dist/patterns/graphspec/index.d.ts +6 -5
- package/dist/patterns/graphspec/index.js +1 -1
- package/dist/patterns/guarded-execution/index.cjs +7 -7
- package/dist/patterns/guarded-execution/index.d.cts +8 -6
- package/dist/patterns/guarded-execution/index.d.ts +8 -6
- package/dist/patterns/guarded-execution/index.js +1 -1
- package/dist/patterns/harness/index.cjs +12 -12
- package/dist/patterns/harness/index.d.cts +13 -10
- package/dist/patterns/harness/index.d.ts +13 -10
- package/dist/patterns/harness/index.js +1 -1
- package/dist/patterns/job-queue/index.cjs +7 -7
- package/dist/patterns/job-queue/index.d.cts +8 -4
- package/dist/patterns/job-queue/index.d.ts +8 -4
- package/dist/patterns/job-queue/index.js +1 -1
- package/dist/patterns/lens/index.cjs +4 -4
- package/dist/patterns/lens/index.d.cts +7 -6
- package/dist/patterns/lens/index.d.ts +7 -6
- package/dist/patterns/lens/index.js +1 -1
- package/dist/patterns/memory/index.cjs +1 -1
- package/dist/patterns/memory/index.d.cts +5 -4
- package/dist/patterns/memory/index.d.ts +5 -4
- package/dist/patterns/memory/index.js +1 -1
- package/dist/patterns/messaging/index.cjs +7 -7
- package/dist/patterns/messaging/index.d.cts +6 -4
- package/dist/patterns/messaging/index.d.ts +6 -4
- package/dist/patterns/messaging/index.js +1 -1
- package/dist/patterns/orchestration/index.cjs +7 -7
- package/dist/patterns/orchestration/index.d.cts +8 -5
- package/dist/patterns/orchestration/index.d.ts +8 -5
- package/dist/patterns/orchestration/index.js +1 -1
- package/dist/patterns/process/index.cjs +1 -0
- package/dist/patterns/process/index.d.cts +10 -0
- package/dist/patterns/process/index.d.ts +10 -0
- package/dist/patterns/process/index.js +1 -0
- package/dist/patterns/reactive-layout/index.cjs +5 -5
- package/dist/patterns/reactive-layout/index.d.cts +6 -5
- package/dist/patterns/reactive-layout/index.d.ts +6 -5
- package/dist/patterns/reactive-layout/index.js +1 -1
- package/dist/patterns/reduction/index.cjs +1 -1
- package/dist/patterns/reduction/index.d.cts +5 -4
- package/dist/patterns/reduction/index.d.ts +5 -4
- package/dist/patterns/reduction/index.js +1 -1
- package/dist/patterns/refine-loop/index.cjs +8 -8
- package/dist/patterns/refine-loop/index.d.cts +7 -5
- package/dist/patterns/refine-loop/index.d.ts +7 -5
- package/dist/patterns/refine-loop/index.js +1 -1
- package/dist/patterns/resilient-pipeline/index.cjs +1 -1
- package/dist/patterns/resilient-pipeline/index.d.cts +7 -6
- package/dist/patterns/resilient-pipeline/index.d.ts +7 -6
- package/dist/patterns/resilient-pipeline/index.js +1 -1
- package/dist/patterns/surface/index.cjs +11 -11
- package/dist/patterns/surface/index.d.cts +7 -6
- package/dist/patterns/surface/index.d.ts +7 -6
- package/dist/patterns/surface/index.js +1 -1
- package/dist/pipeline-graph-B85HUrWg.d.cts +120 -0
- package/dist/pipeline-graph-HOTU4UG0.d.ts +120 -0
- package/dist/{reactive-layout-DBJ3Vz-m.d.ts → reactive-layout-Btv0-efV.d.ts} +2 -2
- package/dist/{reactive-layout-Dk9AOQb_.d.cts → reactive-layout-D9zqqaqK.d.cts} +2 -2
- package/dist/reactive-log-ByBb8g6A.d.ts +188 -0
- package/dist/reactive-log-CgbNqksB.d.cts +188 -0
- package/dist/{reactive-map-LjwjcFaW.d.ts → reactive-map-CHyeCf4D.d.ts} +1 -1
- package/dist/{reactive-map-Cm89Hk0c.d.cts → reactive-map-DmgeADH8.d.cts} +1 -1
- package/dist/{resilience-RjDIHZNZ.d.ts → resilience-BWP2c7Af.d.cts} +27 -45
- package/dist/{resilience-N_VtLf7W.d.cts → resilience-Bys63Cpd.d.ts} +27 -45
- package/dist/resilience-OBU472D2.js +1 -0
- package/dist/{sugar-CQkn_rxB.d.ts → sugar-D13E2M_z.d.ts} +1 -1
- package/dist/{sugar-DVEYhR7a.d.cts → sugar-DgaGJcI6.d.cts} +1 -1
- package/dist/{topology-tree-BB6oJxMz.d.cts → topology-tree-C50l9ARE.d.cts} +1 -1
- package/dist/{topology-tree-CAFOG5S5.d.ts → topology-tree-CJsT24DP.d.ts} +1 -1
- package/dist/{types-Cp_4coR_.d.cts → types-BMSGPlpO.d.cts} +1 -1
- package/dist/{types-B2LfBvNc.d.ts → types-CidcBDuk.d.ts} +1 -1
- package/package.json +41 -1
- package/dist/chunk-2JO6LXFT.js +0 -7
- package/dist/chunk-2LZ6DL45.js +0 -1
- package/dist/chunk-3JXNEPCD.js +0 -2
- package/dist/chunk-3Y4BXFFR.js +0 -1
- package/dist/chunk-55T3K37W.js +0 -1
- package/dist/chunk-6HQ6HVTF.js +0 -1
- package/dist/chunk-7Q2WPFQ7.js +0 -1
- package/dist/chunk-FKRPIRE6.js +0 -1
- package/dist/chunk-HTBOCKVD.js +0 -1
- package/dist/chunk-I6VIH3VA.js +0 -1
- package/dist/chunk-IB64M7VP.js +0 -1
- package/dist/chunk-IJFSR4NU.js +0 -1
- package/dist/chunk-LOF5HSD3.js +0 -18
- package/dist/chunk-T2TB37TW.js +0 -1
- package/dist/chunk-T7EQPKOP.js +0 -1
- package/dist/chunk-Y63GWRHO.js +0 -5
- package/dist/chunk-YUBV7EEE.js +0 -1
- package/dist/index-C2Dey3L-.d.cts +0 -152
- package/dist/index-ClJUZAOr.d.cts +0 -101
- package/dist/index-Cq7Uqgu4.d.ts +0 -192
- package/dist/index-Dtpr2FIB.d.ts +0 -101
- package/dist/index-HvJ90_tX.d.ts +0 -152
- package/dist/index-wcfc7W-f.d.cts +0 -192
- package/dist/reactive-log-CWC7jO4J.d.cts +0 -190
- package/dist/reactive-log-CqaBg8nf.d.ts +0 -190
- package/dist/resilience-7UZHSSGC.js +0 -1
- /package/dist/{chunk-L3KUKDZC.js → chunk-O32GJOUJ.js} +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export { C as CatalogFnEntry, a as CatalogSourceEntry, b as ConfigFieldSchema, F as FnFactory, G as GraphSpec, c as GraphSpecCatalog, d as GraphSpecFeedbackEdge, e as GraphSpecNode, f as GraphSpecTemplate, g as GraphSpecTemplateRef, h as GraphSpecValidation, S as SourceFactory } from '../../index-
|
|
2
|
-
export { C as CreateGraphOptions, R as ReduceOptions, a as RestoreSnapshotOptions, S as SNAPSHOT_WIRE_VERSION, b as SaveSnapshotResult, c as SurfaceError, d as SurfaceErrorCode, e as SurfaceErrorPayload, f as asSurfaceError, g as createGraph, h as deleteSnapshot, i as diffSnapshots, l as listSnapshots, r as restoreSnapshot, j as runReduction, s as saveSnapshot } from '../../index-
|
|
3
|
-
import '../../node-
|
|
4
|
-
import '../../graph-
|
|
5
|
-
import '../../meta-
|
|
1
|
+
export { C as CatalogFnEntry, a as CatalogSourceEntry, b as ConfigFieldSchema, F as FnFactory, G as GraphSpec, c as GraphSpecCatalog, d as GraphSpecFeedbackEdge, e as GraphSpecNode, f as GraphSpecTemplate, g as GraphSpecTemplateRef, h as GraphSpecValidation, S as SourceFactory } from '../../index-DlccEIi3.js';
|
|
2
|
+
export { C as CreateGraphOptions, R as ReduceOptions, a as RestoreSnapshotOptions, S as SNAPSHOT_WIRE_VERSION, b as SaveSnapshotResult, c as SurfaceError, d as SurfaceErrorCode, e as SurfaceErrorPayload, f as asSurfaceError, g as createGraph, h as deleteSnapshot, i as diffSnapshots, l as listSnapshots, r as restoreSnapshot, j as runReduction, s as saveSnapshot } from '../../index-Cot94_82.js';
|
|
3
|
+
import '../../node-fSc-hCv8.js';
|
|
4
|
+
import '../../graph-Cv-8x0ZI.js';
|
|
5
|
+
import '../../meta-CC6EPdpK.js';
|
|
6
6
|
import '../../extra/storage-core.js';
|
|
7
|
-
import '../../
|
|
7
|
+
import '../../extra/storage-tiers.js';
|
|
8
|
+
import '../../types-CidcBDuk.js';
|
|
8
9
|
import '../../extra/sources.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i,j}from"../../chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j}from"../../chunk-PVUTRA5K.js";import"../../chunk-U347KVM4.js";import"../../chunk-ZGVA2SR5.js";import"../../chunk-O32GJOUJ.js";import"../../chunk-5KPIYVCC.js";import"../../chunk-SGS4OJGS.js";import"../../chunk-ESMPEKEV.js";import"../../chunk-533RQFF6.js";import"../../chunk-JJTF75VS.js";import"../../chunk-4VVTGLXJ.js";import"../../chunk-TZQPPQEQ.js";import"../../chunk-MQZWA3DF.js";import"../../chunk-LYCLF26R.js";import"../../chunk-CK2E7BTU.js";import"../../chunk-QYADASLV.js";export{e as SNAPSHOT_WIRE_VERSION,a as SurfaceError,b as asSurfaceError,c as createGraph,j as deleteSnapshot,h as diffSnapshots,i as listSnapshots,g as restoreSnapshot,d as runReduction,f as saveSnapshot};
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { a as Node, c as NodeActions } from './node-fSc-hCv8.cjs';
|
|
2
|
+
import { D as DerivedFn } from './sugar-DgaGJcI6.cjs';
|
|
3
|
+
import { R as ReactiveLogBundle } from './reactive-log-CgbNqksB.cjs';
|
|
4
|
+
import { G as Graph, a as GraphOptions } from './graph-kTltt95s.cjs';
|
|
5
|
+
import { B as BaseAuditRecord } from './imperative-audit-ahAE65a9.cjs';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* PipelineGraph subclass (Wave A.1 Unit 1 — locked 2026-04-24).
|
|
9
|
+
*
|
|
10
|
+
* Specialized {@link Graph} that hosts workflow-DAG sugar methods:
|
|
11
|
+
* `task` / `classify` / `combine` / `approval` / `gate` / `catch`. The
|
|
12
|
+
* legacy `pipeline` / `task` / `branch` / `join` / `subPipeline` /
|
|
13
|
+
* `approval` / `gate` / `loop` / `onFailure` factories from
|
|
14
|
+
* {@link ./index} continue to work for migration ease; new code should
|
|
15
|
+
* prefer methods on this class.
|
|
16
|
+
*
|
|
17
|
+
* Construction: `pipelineGraph(name, opts?)` or `new PipelineGraph(name, opts)`.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
type StepRef = string | Node<unknown>;
|
|
21
|
+
type DecisionAction = "approve" | "reject" | "modify" | "drop" | "open" | "close" | "teardown";
|
|
22
|
+
interface Decision<T = unknown> extends BaseAuditRecord {
|
|
23
|
+
readonly action: DecisionAction;
|
|
24
|
+
readonly count?: number;
|
|
25
|
+
readonly items?: readonly T[];
|
|
26
|
+
readonly unflushed?: number;
|
|
27
|
+
}
|
|
28
|
+
/** Recommended `keyOf` for keyed-storage adapters (Audit 2 #7). */
|
|
29
|
+
declare const decisionKeyOf: <T>(d: Decision<T>) => string;
|
|
30
|
+
interface GateOptions<T = unknown> {
|
|
31
|
+
/** Bounded default 1000 (Audit 2 cross-cutting). `Infinity` is opt-in. */
|
|
32
|
+
maxPending?: number;
|
|
33
|
+
startOpen?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Reactive auto-approve: gate's `latestIsOpen` mirrors this node's truthy
|
|
36
|
+
* value. False→true transition drains the pending queue.
|
|
37
|
+
*
|
|
38
|
+
* **`COMPLETE` / `ERROR` on the approver are silently ignored** — the gate
|
|
39
|
+
* stays in its current state. For permanent-open latching, use
|
|
40
|
+
* `onceOnly: true` (the first truthy approval latches; subsequent falsy
|
|
41
|
+
* values are ignored). The gate has no graceful terminal-state behavior
|
|
42
|
+
* for the approver itself.
|
|
43
|
+
*/
|
|
44
|
+
approver?: Node<unknown>;
|
|
45
|
+
/** Latch — first truthy approval opens permanently; `close()` becomes no-op. */
|
|
46
|
+
onceOnly?: boolean;
|
|
47
|
+
meta?: Record<string, unknown>;
|
|
48
|
+
handlerVersion?: {
|
|
49
|
+
id: string;
|
|
50
|
+
version: string | number;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
interface GateController<T> {
|
|
54
|
+
readonly node: Node<T>;
|
|
55
|
+
readonly pending: Node<readonly T[]>;
|
|
56
|
+
readonly count: Node<number>;
|
|
57
|
+
readonly isOpen: Node<boolean>;
|
|
58
|
+
readonly droppedCount: Node<number>;
|
|
59
|
+
readonly decisions: ReactiveLogBundle<Decision<T>>;
|
|
60
|
+
readonly audit: ReactiveLogBundle<Decision<T>>;
|
|
61
|
+
approve(count?: number): void;
|
|
62
|
+
reject(count?: number): void;
|
|
63
|
+
modify(fn: (value: T, index: number, pending: readonly T[]) => T, count?: number): void;
|
|
64
|
+
open(): void;
|
|
65
|
+
close(): void;
|
|
66
|
+
}
|
|
67
|
+
type TerminalCause = {
|
|
68
|
+
kind: "error";
|
|
69
|
+
error: unknown;
|
|
70
|
+
} | {
|
|
71
|
+
kind: "complete";
|
|
72
|
+
};
|
|
73
|
+
interface CatchOptions<T> {
|
|
74
|
+
/** Default `"error"`; `"complete"` recovers COMPLETE; `"terminal"` recovers either. */
|
|
75
|
+
on?: "error" | "complete" | "terminal";
|
|
76
|
+
completeWhenDepsComplete?: boolean;
|
|
77
|
+
meta?: Record<string, unknown>;
|
|
78
|
+
handlerVersion?: {
|
|
79
|
+
id: string;
|
|
80
|
+
version: string | number;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
interface ClassifyResult<TTag extends string, T> {
|
|
84
|
+
readonly tag: TTag | "error";
|
|
85
|
+
readonly value: T;
|
|
86
|
+
readonly error?: unknown;
|
|
87
|
+
}
|
|
88
|
+
declare class PipelineGraph extends Graph {
|
|
89
|
+
constructor(name: string, opts?: GraphOptions);
|
|
90
|
+
/**
|
|
91
|
+
* Register a workflow task (`derived` + auto-add). String deps resolve via
|
|
92
|
+
* `this.resolve(path)`; Node deps via {@link Graph.nameOf} O(1) lookup.
|
|
93
|
+
*/
|
|
94
|
+
task<T>(name: string, run: DerivedFn<T>, opts?: {
|
|
95
|
+
deps?: ReadonlyArray<StepRef>;
|
|
96
|
+
meta?: Record<string, unknown>;
|
|
97
|
+
}): Node<T>;
|
|
98
|
+
classify<TTag extends string, T>(name: string, source: StepRef, tagger: (value: T) => TTag, opts?: {
|
|
99
|
+
meta?: Record<string, unknown>;
|
|
100
|
+
}): Node<ClassifyResult<TTag, T>>;
|
|
101
|
+
combine<R extends Record<string, StepRef>>(name: string, deps: R, opts?: {
|
|
102
|
+
meta?: Record<string, unknown>;
|
|
103
|
+
}): Node<{
|
|
104
|
+
[K in keyof R]: unknown;
|
|
105
|
+
}>;
|
|
106
|
+
gate<T>(name: string, source: StepRef, opts?: GateOptions<T>): GateController<T>;
|
|
107
|
+
/**
|
|
108
|
+
* Reactive approval step: passes items through when `approver` is truthy;
|
|
109
|
+
* holds at most one pending item (maxPending: 1) when falsy. A thin alias
|
|
110
|
+
* over `gate({ approver, maxPending: 1 })` — use `gate()` directly for
|
|
111
|
+
* finer control (maxPending, onceOnly, manual approve/reject).
|
|
112
|
+
*/
|
|
113
|
+
approval<T>(name: string, source: StepRef, approver: Node<unknown>, opts?: Omit<GateOptions<T>, "approver" | "maxPending">): GateController<T>;
|
|
114
|
+
catch<T>(name: string, source: StepRef, recover: (cause: TerminalCause, actions: NodeActions) => T, opts?: CatchOptions<T>): Node<T>;
|
|
115
|
+
private _resolveStep;
|
|
116
|
+
}
|
|
117
|
+
/** Factory wrapper — `pipelineGraph(name, opts?)`. Equivalent to `new PipelineGraph(name, opts)`. */
|
|
118
|
+
declare function pipelineGraph(name: string, opts?: GraphOptions): PipelineGraph;
|
|
119
|
+
|
|
120
|
+
export { type CatchOptions as C, type Decision as D, type GateController as G, PipelineGraph as P, type StepRef as S, type TerminalCause as T, type ClassifyResult as a, type DecisionAction as b, type GateOptions as c, decisionKeyOf as d, pipelineGraph as p };
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { a as Node, c as NodeActions } from './node-fSc-hCv8.js';
|
|
2
|
+
import { D as DerivedFn } from './sugar-D13E2M_z.js';
|
|
3
|
+
import { R as ReactiveLogBundle } from './reactive-log-ByBb8g6A.js';
|
|
4
|
+
import { G as Graph, a as GraphOptions } from './graph-Cv-8x0ZI.js';
|
|
5
|
+
import { B as BaseAuditRecord } from './imperative-audit-ahAE65a9.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* PipelineGraph subclass (Wave A.1 Unit 1 — locked 2026-04-24).
|
|
9
|
+
*
|
|
10
|
+
* Specialized {@link Graph} that hosts workflow-DAG sugar methods:
|
|
11
|
+
* `task` / `classify` / `combine` / `approval` / `gate` / `catch`. The
|
|
12
|
+
* legacy `pipeline` / `task` / `branch` / `join` / `subPipeline` /
|
|
13
|
+
* `approval` / `gate` / `loop` / `onFailure` factories from
|
|
14
|
+
* {@link ./index} continue to work for migration ease; new code should
|
|
15
|
+
* prefer methods on this class.
|
|
16
|
+
*
|
|
17
|
+
* Construction: `pipelineGraph(name, opts?)` or `new PipelineGraph(name, opts)`.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
type StepRef = string | Node<unknown>;
|
|
21
|
+
type DecisionAction = "approve" | "reject" | "modify" | "drop" | "open" | "close" | "teardown";
|
|
22
|
+
interface Decision<T = unknown> extends BaseAuditRecord {
|
|
23
|
+
readonly action: DecisionAction;
|
|
24
|
+
readonly count?: number;
|
|
25
|
+
readonly items?: readonly T[];
|
|
26
|
+
readonly unflushed?: number;
|
|
27
|
+
}
|
|
28
|
+
/** Recommended `keyOf` for keyed-storage adapters (Audit 2 #7). */
|
|
29
|
+
declare const decisionKeyOf: <T>(d: Decision<T>) => string;
|
|
30
|
+
interface GateOptions<T = unknown> {
|
|
31
|
+
/** Bounded default 1000 (Audit 2 cross-cutting). `Infinity` is opt-in. */
|
|
32
|
+
maxPending?: number;
|
|
33
|
+
startOpen?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Reactive auto-approve: gate's `latestIsOpen` mirrors this node's truthy
|
|
36
|
+
* value. False→true transition drains the pending queue.
|
|
37
|
+
*
|
|
38
|
+
* **`COMPLETE` / `ERROR` on the approver are silently ignored** — the gate
|
|
39
|
+
* stays in its current state. For permanent-open latching, use
|
|
40
|
+
* `onceOnly: true` (the first truthy approval latches; subsequent falsy
|
|
41
|
+
* values are ignored). The gate has no graceful terminal-state behavior
|
|
42
|
+
* for the approver itself.
|
|
43
|
+
*/
|
|
44
|
+
approver?: Node<unknown>;
|
|
45
|
+
/** Latch — first truthy approval opens permanently; `close()` becomes no-op. */
|
|
46
|
+
onceOnly?: boolean;
|
|
47
|
+
meta?: Record<string, unknown>;
|
|
48
|
+
handlerVersion?: {
|
|
49
|
+
id: string;
|
|
50
|
+
version: string | number;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
interface GateController<T> {
|
|
54
|
+
readonly node: Node<T>;
|
|
55
|
+
readonly pending: Node<readonly T[]>;
|
|
56
|
+
readonly count: Node<number>;
|
|
57
|
+
readonly isOpen: Node<boolean>;
|
|
58
|
+
readonly droppedCount: Node<number>;
|
|
59
|
+
readonly decisions: ReactiveLogBundle<Decision<T>>;
|
|
60
|
+
readonly audit: ReactiveLogBundle<Decision<T>>;
|
|
61
|
+
approve(count?: number): void;
|
|
62
|
+
reject(count?: number): void;
|
|
63
|
+
modify(fn: (value: T, index: number, pending: readonly T[]) => T, count?: number): void;
|
|
64
|
+
open(): void;
|
|
65
|
+
close(): void;
|
|
66
|
+
}
|
|
67
|
+
type TerminalCause = {
|
|
68
|
+
kind: "error";
|
|
69
|
+
error: unknown;
|
|
70
|
+
} | {
|
|
71
|
+
kind: "complete";
|
|
72
|
+
};
|
|
73
|
+
interface CatchOptions<T> {
|
|
74
|
+
/** Default `"error"`; `"complete"` recovers COMPLETE; `"terminal"` recovers either. */
|
|
75
|
+
on?: "error" | "complete" | "terminal";
|
|
76
|
+
completeWhenDepsComplete?: boolean;
|
|
77
|
+
meta?: Record<string, unknown>;
|
|
78
|
+
handlerVersion?: {
|
|
79
|
+
id: string;
|
|
80
|
+
version: string | number;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
interface ClassifyResult<TTag extends string, T> {
|
|
84
|
+
readonly tag: TTag | "error";
|
|
85
|
+
readonly value: T;
|
|
86
|
+
readonly error?: unknown;
|
|
87
|
+
}
|
|
88
|
+
declare class PipelineGraph extends Graph {
|
|
89
|
+
constructor(name: string, opts?: GraphOptions);
|
|
90
|
+
/**
|
|
91
|
+
* Register a workflow task (`derived` + auto-add). String deps resolve via
|
|
92
|
+
* `this.resolve(path)`; Node deps via {@link Graph.nameOf} O(1) lookup.
|
|
93
|
+
*/
|
|
94
|
+
task<T>(name: string, run: DerivedFn<T>, opts?: {
|
|
95
|
+
deps?: ReadonlyArray<StepRef>;
|
|
96
|
+
meta?: Record<string, unknown>;
|
|
97
|
+
}): Node<T>;
|
|
98
|
+
classify<TTag extends string, T>(name: string, source: StepRef, tagger: (value: T) => TTag, opts?: {
|
|
99
|
+
meta?: Record<string, unknown>;
|
|
100
|
+
}): Node<ClassifyResult<TTag, T>>;
|
|
101
|
+
combine<R extends Record<string, StepRef>>(name: string, deps: R, opts?: {
|
|
102
|
+
meta?: Record<string, unknown>;
|
|
103
|
+
}): Node<{
|
|
104
|
+
[K in keyof R]: unknown;
|
|
105
|
+
}>;
|
|
106
|
+
gate<T>(name: string, source: StepRef, opts?: GateOptions<T>): GateController<T>;
|
|
107
|
+
/**
|
|
108
|
+
* Reactive approval step: passes items through when `approver` is truthy;
|
|
109
|
+
* holds at most one pending item (maxPending: 1) when falsy. A thin alias
|
|
110
|
+
* over `gate({ approver, maxPending: 1 })` — use `gate()` directly for
|
|
111
|
+
* finer control (maxPending, onceOnly, manual approve/reject).
|
|
112
|
+
*/
|
|
113
|
+
approval<T>(name: string, source: StepRef, approver: Node<unknown>, opts?: Omit<GateOptions<T>, "approver" | "maxPending">): GateController<T>;
|
|
114
|
+
catch<T>(name: string, source: StepRef, recover: (cause: TerminalCause, actions: NodeActions) => T, opts?: CatchOptions<T>): Node<T>;
|
|
115
|
+
private _resolveStep;
|
|
116
|
+
}
|
|
117
|
+
/** Factory wrapper — `pipelineGraph(name, opts?)`. Equivalent to `new PipelineGraph(name, opts)`. */
|
|
118
|
+
declare function pipelineGraph(name: string, opts?: GraphOptions): PipelineGraph;
|
|
119
|
+
|
|
120
|
+
export { type CatchOptions as C, type Decision as D, type GateController as G, PipelineGraph as P, type StepRef as S, type TerminalCause as T, type ClassifyResult as a, type DecisionAction as b, type GateOptions as c, decisionKeyOf as d, pipelineGraph as p };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as Node } from './node-
|
|
2
|
-
import { G as Graph } from './graph-
|
|
1
|
+
import { a as Node } from './node-fSc-hCv8.js';
|
|
2
|
+
import { G as Graph } from './graph-Cv-8x0ZI.js';
|
|
3
3
|
|
|
4
4
|
/** Pluggable measurement backend. */
|
|
5
5
|
interface MeasurementAdapter {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as Node } from './node-
|
|
2
|
-
import { G as Graph } from './graph-
|
|
1
|
+
import { a as Node } from './node-fSc-hCv8.cjs';
|
|
2
|
+
import { G as Graph } from './graph-kTltt95s.cjs';
|
|
3
3
|
|
|
4
4
|
/** Pluggable measurement backend. */
|
|
5
5
|
interface MeasurementAdapter {
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { a as Node, V as VersioningLevel, f as NodeGuard } from './node-fSc-hCv8.js';
|
|
2
|
+
import { AppendLogStorageTier } from './extra/storage-tiers.js';
|
|
3
|
+
|
|
4
|
+
type ReactiveLogOptions<T> = {
|
|
5
|
+
name?: string;
|
|
6
|
+
maxSize?: number;
|
|
7
|
+
/**
|
|
8
|
+
* Optional versioning level for the underlying `entries` state node. Set
|
|
9
|
+
* at construction time; cannot be changed later. Pass `0` for V0 identity
|
|
10
|
+
* + monotonic version counter, or `1` for V1 + content-addressed cid.
|
|
11
|
+
*/
|
|
12
|
+
versioning?: VersioningLevel;
|
|
13
|
+
/**
|
|
14
|
+
* Optional guard policy applied to the `entries` node. Use to deny
|
|
15
|
+
* external `write` while permitting `observe` / `signal` — eliminates the
|
|
16
|
+
* passthrough-derived pattern in CQRS event streams (Audit 1 #7).
|
|
17
|
+
*/
|
|
18
|
+
guard?: NodeGuard;
|
|
19
|
+
/**
|
|
20
|
+
* Storage backend. Defaults to `NativeLogBackend` (ring buffer if `maxSize` is set,
|
|
21
|
+
* flat array otherwise). Users can plug in persistent / RRB-tree backends via
|
|
22
|
+
* the {@link LogBackend} interface.
|
|
23
|
+
*/
|
|
24
|
+
backend?: LogBackend<T>;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Discriminated view spec for {@link ReactiveLogBundle.view}. New `kind`s
|
|
28
|
+
* (e.g. `"filter"`, `"windowByTime"`) layer in without new methods.
|
|
29
|
+
*/
|
|
30
|
+
type ViewSpec<_T = unknown> = {
|
|
31
|
+
kind: "tail";
|
|
32
|
+
n: number;
|
|
33
|
+
} | {
|
|
34
|
+
kind: "slice";
|
|
35
|
+
start: number;
|
|
36
|
+
stop?: number;
|
|
37
|
+
} | {
|
|
38
|
+
kind: "fromCursor";
|
|
39
|
+
cursor: Node<number>;
|
|
40
|
+
};
|
|
41
|
+
type ReactiveLogBundle<T> = {
|
|
42
|
+
/** Emits `readonly T[]` on each append/clear/trim (two-phase). */
|
|
43
|
+
readonly entries: Node<readonly T[]>;
|
|
44
|
+
/** Current entry count (O(1)). */
|
|
45
|
+
readonly size: number;
|
|
46
|
+
/** Positional access (O(1)); returns `undefined` on out-of-range. Supports negative indices. */
|
|
47
|
+
at: (index: number) => T | undefined;
|
|
48
|
+
append: (value: T) => void;
|
|
49
|
+
/** Push all values, emit one snapshot. No-op if `values` is empty. */
|
|
50
|
+
appendMany: (values: readonly T[]) => void;
|
|
51
|
+
clear: () => void;
|
|
52
|
+
/** Remove the first `n` entries (clamped to `size`). */
|
|
53
|
+
trimHead: (n: number) => void;
|
|
54
|
+
/**
|
|
55
|
+
* Activate the {@link ReactiveLogBundle.lastValue} / {@link ReactiveLogBundle.hasLatest}
|
|
56
|
+
* companion nodes (lazy — installed on first call, reused thereafter).
|
|
57
|
+
* Returns `entries` so chaining reads naturally.
|
|
58
|
+
*
|
|
59
|
+
* **Companion-node access is on the bundle** (not `entries.meta`) because
|
|
60
|
+
* `Node.meta` is frozen at construction; bundle-level lazy properties
|
|
61
|
+
* give the same semantics with simpler ergonomics.
|
|
62
|
+
*/
|
|
63
|
+
withLatest: () => Node<readonly T[]>;
|
|
64
|
+
/**
|
|
65
|
+
* Most-recently-appended value, or `undefined` if no entries exist (spec
|
|
66
|
+
* §5.12 SENTINEL alignment). Accessing this property activates the
|
|
67
|
+
* companion lazily — same as calling {@link ReactiveLogBundle.withLatest}.
|
|
68
|
+
*
|
|
69
|
+
* **Caveat when `T` itself includes `undefined`:** `lastValue.cache` is
|
|
70
|
+
* ambiguous (could mean "no entries yet" OR "an undefined value was
|
|
71
|
+
* appended"). Use {@link ReactiveLogBundle.hasLatest} to disambiguate.
|
|
72
|
+
*/
|
|
73
|
+
readonly lastValue: Node<T | undefined>;
|
|
74
|
+
/** Reactive `true` once at least one entry has been appended. */
|
|
75
|
+
readonly hasLatest: Node<boolean>;
|
|
76
|
+
/**
|
|
77
|
+
* Reactive view per discriminated `ViewSpec`. Memoized per-spec — repeat
|
|
78
|
+
* calls with identical spec return the same node.
|
|
79
|
+
*/
|
|
80
|
+
view: (spec: ViewSpec<T>) => Node<readonly T[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Subscribe to `upstream` and append every DATA into this log. Returns a
|
|
83
|
+
* disposer. ERROR / COMPLETE on `upstream` propagate through the disposer
|
|
84
|
+
* (caller is responsible for terminal handling on the log).
|
|
85
|
+
*/
|
|
86
|
+
attach: (upstream: Node<T>) => () => void;
|
|
87
|
+
/**
|
|
88
|
+
* Wire one or more append-log storage tiers. Each tier receives entries on
|
|
89
|
+
* every append wave; tier-internal flush/rollback honors the wave-as-
|
|
90
|
+
* transaction model (Audit 4). Returns a disposer.
|
|
91
|
+
*/
|
|
92
|
+
attachStorage: (tiers: readonly AppendLogStorageTier<T>[]) => () => void;
|
|
93
|
+
/** Releases all cached views (tail + slice + fromCursor). */
|
|
94
|
+
disposeAllViews: () => void;
|
|
95
|
+
/** Releases all internal keepalives. Idempotent. */
|
|
96
|
+
dispose: () => void;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Storage contract for {@link reactiveLog}. Implementations own the mutable state and
|
|
100
|
+
* expose a monotonic `version` counter that increments on every structural change.
|
|
101
|
+
*
|
|
102
|
+
* **Audit 1:** `snapshot()` returns an immutable readonly view (codec encodes
|
|
103
|
+
* at the storage tier boundary). `restore(values)` replaces backend state on
|
|
104
|
+
* cold-tier startup load — fires one DATA emission for the restored shape.
|
|
105
|
+
*
|
|
106
|
+
* @category extra
|
|
107
|
+
*/
|
|
108
|
+
interface LogBackend<T> {
|
|
109
|
+
readonly version: number;
|
|
110
|
+
readonly size: number;
|
|
111
|
+
at(index: number): T | undefined;
|
|
112
|
+
append(value: T): void;
|
|
113
|
+
appendMany(values: readonly T[]): void;
|
|
114
|
+
clear(): number;
|
|
115
|
+
trimHead(n: number): number;
|
|
116
|
+
slice(start: number, stop?: number): readonly T[];
|
|
117
|
+
tail(n: number): readonly T[];
|
|
118
|
+
toArray(): readonly T[];
|
|
119
|
+
/** Immutable snapshot for codec serialization. Equivalent to `toArray()`. */
|
|
120
|
+
snapshot(): readonly T[];
|
|
121
|
+
/** Replace backend state with `values` (used by cold-tier restore). */
|
|
122
|
+
restore(values: readonly T[]): void;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Default append-only log backend.
|
|
126
|
+
*
|
|
127
|
+
* - When `maxSize` is set: uses a **ring buffer** with `_head` index and circular
|
|
128
|
+
* modular arithmetic. Append and trim become O(1); snapshot is O(size) unrolling.
|
|
129
|
+
* - When `maxSize` is unset: uses a flat array with standard push/splice.
|
|
130
|
+
*
|
|
131
|
+
* @category extra
|
|
132
|
+
*/
|
|
133
|
+
declare class NativeLogBackend<T> implements LogBackend<T> {
|
|
134
|
+
private _version;
|
|
135
|
+
private readonly _maxSize?;
|
|
136
|
+
private readonly _buf;
|
|
137
|
+
private _head;
|
|
138
|
+
private _size;
|
|
139
|
+
constructor(initial?: readonly T[], maxSize?: number);
|
|
140
|
+
get version(): number;
|
|
141
|
+
get size(): number;
|
|
142
|
+
at(index: number): T | undefined;
|
|
143
|
+
append(value: T): void;
|
|
144
|
+
appendMany(values: readonly T[]): void;
|
|
145
|
+
clear(): number;
|
|
146
|
+
trimHead(n: number): number;
|
|
147
|
+
slice(start: number, stop?: number): readonly T[];
|
|
148
|
+
tail(n: number): readonly T[];
|
|
149
|
+
toArray(): readonly T[];
|
|
150
|
+
snapshot(): readonly T[];
|
|
151
|
+
restore(values: readonly T[]): void;
|
|
152
|
+
private _rawAppend;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Creates an append-only reactive log with immutable array snapshots.
|
|
156
|
+
*
|
|
157
|
+
* @category extra
|
|
158
|
+
*/
|
|
159
|
+
declare function reactiveLog<T>(initial?: readonly T[], options?: ReactiveLogOptions<T>): ReactiveLogBundle<T>;
|
|
160
|
+
/**
|
|
161
|
+
* Bundle returned by {@link mergeReactiveLogs}. `node` is the merged output;
|
|
162
|
+
* `dispose()` releases the internal subscriptions to all input logs and the
|
|
163
|
+
* keepalive on `node`. After dispose the merge stops responding to inputs
|
|
164
|
+
* but `node`'s last cached value remains queryable.
|
|
165
|
+
*
|
|
166
|
+
* @category extra
|
|
167
|
+
*/
|
|
168
|
+
interface MergedReactiveLog<T> {
|
|
169
|
+
readonly node: Node<readonly T[]>;
|
|
170
|
+
dispose(): void;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Fan-in helper that merges N reactive logs into a single time-ordered output
|
|
174
|
+
* by concatenation. Returns `{ node, dispose }`. Producer-pattern: subscribes
|
|
175
|
+
* to each input internally; COMPLETE on an input drops it from the active
|
|
176
|
+
* set; ERROR propagates per spec §2.2. Memoized by reference identity on the
|
|
177
|
+
* `logs` array — repeat calls with the same reference return the same bundle.
|
|
178
|
+
*
|
|
179
|
+
* Internal subscriptions are invisible in `describe()` (sanctioned per §24);
|
|
180
|
+
* `explain()` across the merge surfaces only the merged stream. Caller must
|
|
181
|
+
* `dispose()` when done to release subscriptions to input logs (no auto-GC
|
|
182
|
+
* because of the memoization map).
|
|
183
|
+
*
|
|
184
|
+
* @category extra
|
|
185
|
+
*/
|
|
186
|
+
declare function mergeReactiveLogs<T>(logs: readonly Node<readonly T[]>[]): MergedReactiveLog<T>;
|
|
187
|
+
|
|
188
|
+
export { type LogBackend as L, type MergedReactiveLog as M, NativeLogBackend as N, type ReactiveLogBundle as R, type ViewSpec as V, type ReactiveLogOptions as a, mergeReactiveLogs as m, reactiveLog as r };
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { a as Node, V as VersioningLevel, f as NodeGuard } from './node-fSc-hCv8.cjs';
|
|
2
|
+
import { AppendLogStorageTier } from './extra/storage-tiers.cjs';
|
|
3
|
+
|
|
4
|
+
type ReactiveLogOptions<T> = {
|
|
5
|
+
name?: string;
|
|
6
|
+
maxSize?: number;
|
|
7
|
+
/**
|
|
8
|
+
* Optional versioning level for the underlying `entries` state node. Set
|
|
9
|
+
* at construction time; cannot be changed later. Pass `0` for V0 identity
|
|
10
|
+
* + monotonic version counter, or `1` for V1 + content-addressed cid.
|
|
11
|
+
*/
|
|
12
|
+
versioning?: VersioningLevel;
|
|
13
|
+
/**
|
|
14
|
+
* Optional guard policy applied to the `entries` node. Use to deny
|
|
15
|
+
* external `write` while permitting `observe` / `signal` — eliminates the
|
|
16
|
+
* passthrough-derived pattern in CQRS event streams (Audit 1 #7).
|
|
17
|
+
*/
|
|
18
|
+
guard?: NodeGuard;
|
|
19
|
+
/**
|
|
20
|
+
* Storage backend. Defaults to `NativeLogBackend` (ring buffer if `maxSize` is set,
|
|
21
|
+
* flat array otherwise). Users can plug in persistent / RRB-tree backends via
|
|
22
|
+
* the {@link LogBackend} interface.
|
|
23
|
+
*/
|
|
24
|
+
backend?: LogBackend<T>;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Discriminated view spec for {@link ReactiveLogBundle.view}. New `kind`s
|
|
28
|
+
* (e.g. `"filter"`, `"windowByTime"`) layer in without new methods.
|
|
29
|
+
*/
|
|
30
|
+
type ViewSpec<_T = unknown> = {
|
|
31
|
+
kind: "tail";
|
|
32
|
+
n: number;
|
|
33
|
+
} | {
|
|
34
|
+
kind: "slice";
|
|
35
|
+
start: number;
|
|
36
|
+
stop?: number;
|
|
37
|
+
} | {
|
|
38
|
+
kind: "fromCursor";
|
|
39
|
+
cursor: Node<number>;
|
|
40
|
+
};
|
|
41
|
+
type ReactiveLogBundle<T> = {
|
|
42
|
+
/** Emits `readonly T[]` on each append/clear/trim (two-phase). */
|
|
43
|
+
readonly entries: Node<readonly T[]>;
|
|
44
|
+
/** Current entry count (O(1)). */
|
|
45
|
+
readonly size: number;
|
|
46
|
+
/** Positional access (O(1)); returns `undefined` on out-of-range. Supports negative indices. */
|
|
47
|
+
at: (index: number) => T | undefined;
|
|
48
|
+
append: (value: T) => void;
|
|
49
|
+
/** Push all values, emit one snapshot. No-op if `values` is empty. */
|
|
50
|
+
appendMany: (values: readonly T[]) => void;
|
|
51
|
+
clear: () => void;
|
|
52
|
+
/** Remove the first `n` entries (clamped to `size`). */
|
|
53
|
+
trimHead: (n: number) => void;
|
|
54
|
+
/**
|
|
55
|
+
* Activate the {@link ReactiveLogBundle.lastValue} / {@link ReactiveLogBundle.hasLatest}
|
|
56
|
+
* companion nodes (lazy — installed on first call, reused thereafter).
|
|
57
|
+
* Returns `entries` so chaining reads naturally.
|
|
58
|
+
*
|
|
59
|
+
* **Companion-node access is on the bundle** (not `entries.meta`) because
|
|
60
|
+
* `Node.meta` is frozen at construction; bundle-level lazy properties
|
|
61
|
+
* give the same semantics with simpler ergonomics.
|
|
62
|
+
*/
|
|
63
|
+
withLatest: () => Node<readonly T[]>;
|
|
64
|
+
/**
|
|
65
|
+
* Most-recently-appended value, or `undefined` if no entries exist (spec
|
|
66
|
+
* §5.12 SENTINEL alignment). Accessing this property activates the
|
|
67
|
+
* companion lazily — same as calling {@link ReactiveLogBundle.withLatest}.
|
|
68
|
+
*
|
|
69
|
+
* **Caveat when `T` itself includes `undefined`:** `lastValue.cache` is
|
|
70
|
+
* ambiguous (could mean "no entries yet" OR "an undefined value was
|
|
71
|
+
* appended"). Use {@link ReactiveLogBundle.hasLatest} to disambiguate.
|
|
72
|
+
*/
|
|
73
|
+
readonly lastValue: Node<T | undefined>;
|
|
74
|
+
/** Reactive `true` once at least one entry has been appended. */
|
|
75
|
+
readonly hasLatest: Node<boolean>;
|
|
76
|
+
/**
|
|
77
|
+
* Reactive view per discriminated `ViewSpec`. Memoized per-spec — repeat
|
|
78
|
+
* calls with identical spec return the same node.
|
|
79
|
+
*/
|
|
80
|
+
view: (spec: ViewSpec<T>) => Node<readonly T[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Subscribe to `upstream` and append every DATA into this log. Returns a
|
|
83
|
+
* disposer. ERROR / COMPLETE on `upstream` propagate through the disposer
|
|
84
|
+
* (caller is responsible for terminal handling on the log).
|
|
85
|
+
*/
|
|
86
|
+
attach: (upstream: Node<T>) => () => void;
|
|
87
|
+
/**
|
|
88
|
+
* Wire one or more append-log storage tiers. Each tier receives entries on
|
|
89
|
+
* every append wave; tier-internal flush/rollback honors the wave-as-
|
|
90
|
+
* transaction model (Audit 4). Returns a disposer.
|
|
91
|
+
*/
|
|
92
|
+
attachStorage: (tiers: readonly AppendLogStorageTier<T>[]) => () => void;
|
|
93
|
+
/** Releases all cached views (tail + slice + fromCursor). */
|
|
94
|
+
disposeAllViews: () => void;
|
|
95
|
+
/** Releases all internal keepalives. Idempotent. */
|
|
96
|
+
dispose: () => void;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Storage contract for {@link reactiveLog}. Implementations own the mutable state and
|
|
100
|
+
* expose a monotonic `version` counter that increments on every structural change.
|
|
101
|
+
*
|
|
102
|
+
* **Audit 1:** `snapshot()` returns an immutable readonly view (codec encodes
|
|
103
|
+
* at the storage tier boundary). `restore(values)` replaces backend state on
|
|
104
|
+
* cold-tier startup load — fires one DATA emission for the restored shape.
|
|
105
|
+
*
|
|
106
|
+
* @category extra
|
|
107
|
+
*/
|
|
108
|
+
interface LogBackend<T> {
|
|
109
|
+
readonly version: number;
|
|
110
|
+
readonly size: number;
|
|
111
|
+
at(index: number): T | undefined;
|
|
112
|
+
append(value: T): void;
|
|
113
|
+
appendMany(values: readonly T[]): void;
|
|
114
|
+
clear(): number;
|
|
115
|
+
trimHead(n: number): number;
|
|
116
|
+
slice(start: number, stop?: number): readonly T[];
|
|
117
|
+
tail(n: number): readonly T[];
|
|
118
|
+
toArray(): readonly T[];
|
|
119
|
+
/** Immutable snapshot for codec serialization. Equivalent to `toArray()`. */
|
|
120
|
+
snapshot(): readonly T[];
|
|
121
|
+
/** Replace backend state with `values` (used by cold-tier restore). */
|
|
122
|
+
restore(values: readonly T[]): void;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Default append-only log backend.
|
|
126
|
+
*
|
|
127
|
+
* - When `maxSize` is set: uses a **ring buffer** with `_head` index and circular
|
|
128
|
+
* modular arithmetic. Append and trim become O(1); snapshot is O(size) unrolling.
|
|
129
|
+
* - When `maxSize` is unset: uses a flat array with standard push/splice.
|
|
130
|
+
*
|
|
131
|
+
* @category extra
|
|
132
|
+
*/
|
|
133
|
+
declare class NativeLogBackend<T> implements LogBackend<T> {
|
|
134
|
+
private _version;
|
|
135
|
+
private readonly _maxSize?;
|
|
136
|
+
private readonly _buf;
|
|
137
|
+
private _head;
|
|
138
|
+
private _size;
|
|
139
|
+
constructor(initial?: readonly T[], maxSize?: number);
|
|
140
|
+
get version(): number;
|
|
141
|
+
get size(): number;
|
|
142
|
+
at(index: number): T | undefined;
|
|
143
|
+
append(value: T): void;
|
|
144
|
+
appendMany(values: readonly T[]): void;
|
|
145
|
+
clear(): number;
|
|
146
|
+
trimHead(n: number): number;
|
|
147
|
+
slice(start: number, stop?: number): readonly T[];
|
|
148
|
+
tail(n: number): readonly T[];
|
|
149
|
+
toArray(): readonly T[];
|
|
150
|
+
snapshot(): readonly T[];
|
|
151
|
+
restore(values: readonly T[]): void;
|
|
152
|
+
private _rawAppend;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Creates an append-only reactive log with immutable array snapshots.
|
|
156
|
+
*
|
|
157
|
+
* @category extra
|
|
158
|
+
*/
|
|
159
|
+
declare function reactiveLog<T>(initial?: readonly T[], options?: ReactiveLogOptions<T>): ReactiveLogBundle<T>;
|
|
160
|
+
/**
|
|
161
|
+
* Bundle returned by {@link mergeReactiveLogs}. `node` is the merged output;
|
|
162
|
+
* `dispose()` releases the internal subscriptions to all input logs and the
|
|
163
|
+
* keepalive on `node`. After dispose the merge stops responding to inputs
|
|
164
|
+
* but `node`'s last cached value remains queryable.
|
|
165
|
+
*
|
|
166
|
+
* @category extra
|
|
167
|
+
*/
|
|
168
|
+
interface MergedReactiveLog<T> {
|
|
169
|
+
readonly node: Node<readonly T[]>;
|
|
170
|
+
dispose(): void;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Fan-in helper that merges N reactive logs into a single time-ordered output
|
|
174
|
+
* by concatenation. Returns `{ node, dispose }`. Producer-pattern: subscribes
|
|
175
|
+
* to each input internally; COMPLETE on an input drops it from the active
|
|
176
|
+
* set; ERROR propagates per spec §2.2. Memoized by reference identity on the
|
|
177
|
+
* `logs` array — repeat calls with the same reference return the same bundle.
|
|
178
|
+
*
|
|
179
|
+
* Internal subscriptions are invisible in `describe()` (sanctioned per §24);
|
|
180
|
+
* `explain()` across the merge surfaces only the merged stream. Caller must
|
|
181
|
+
* `dispose()` when done to release subscriptions to input logs (no auto-GC
|
|
182
|
+
* because of the memoization map).
|
|
183
|
+
*
|
|
184
|
+
* @category extra
|
|
185
|
+
*/
|
|
186
|
+
declare function mergeReactiveLogs<T>(logs: readonly Node<readonly T[]>[]): MergedReactiveLog<T>;
|
|
187
|
+
|
|
188
|
+
export { type LogBackend as L, type MergedReactiveLog as M, NativeLogBackend as N, type ReactiveLogBundle as R, type ViewSpec as V, type ReactiveLogOptions as a, mergeReactiveLogs as m, reactiveLog as r };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as Node, V as VersioningLevel, N as NodeOptions } from './node-
|
|
1
|
+
import { a as Node, V as VersioningLevel, N as NodeOptions } from './node-fSc-hCv8.js';
|
|
2
2
|
|
|
3
3
|
type ReactiveMapOptions<K, V> = {
|
|
4
4
|
/** Optional registry name for `describe()` / debugging. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as Node, V as VersioningLevel, N as NodeOptions } from './node-
|
|
1
|
+
import { a as Node, V as VersioningLevel, N as NodeOptions } from './node-fSc-hCv8.cjs';
|
|
2
2
|
|
|
3
3
|
type ReactiveMapOptions<K, V> = {
|
|
4
4
|
/** Optional registry name for `describe()` / debugging. */
|