@graphrefly/graphrefly 0.45.0 → 0.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -2
- package/dist/_internal-B23BagFd.d.cts +33 -0
- package/dist/_internal-B23BagFd.d.ts +33 -0
- package/dist/adaptive-rate-limiter-Dch_xYIi.d.cts +111 -0
- package/dist/adaptive-rate-limiter-Dch_xYIi.d.ts +111 -0
- package/dist/agents-C0Ji9ldU.d.cts +629 -0
- package/dist/agents-C9zexT7I.d.ts +629 -0
- package/dist/audit-BAXb3VOg.d.ts +246 -0
- package/dist/audit-C_bPfkqS.d.cts +246 -0
- package/dist/backoff-7KIK3WQW.js +24 -0
- package/dist/backoff-7KIK3WQW.js.map +1 -0
- package/dist/backoff-Bnb9OoPh.d.cts +6 -0
- package/dist/backoff-Bnb9OoPh.d.ts +6 -0
- package/dist/base/composition/index.cjs +865 -0
- package/dist/base/composition/index.cjs.map +1 -0
- package/dist/base/composition/index.d.cts +468 -0
- package/dist/base/composition/index.d.ts +468 -0
- package/dist/base/composition/index.js +40 -0
- package/dist/base/composition/index.js.map +1 -0
- package/dist/base/index.cjs +6390 -0
- package/dist/base/index.cjs.map +1 -0
- package/dist/base/index.d.cts +21 -0
- package/dist/base/index.d.ts +21 -0
- package/dist/base/index.js +259 -0
- package/dist/base/index.js.map +1 -0
- package/dist/base/io/index.cjs +3270 -0
- package/dist/base/io/index.cjs.map +1 -0
- package/dist/base/io/index.d.cts +2245 -0
- package/dist/base/io/index.d.ts +2245 -0
- package/dist/base/io/index.js +117 -0
- package/dist/base/io/index.js.map +1 -0
- package/dist/base/meta/index.cjs +43 -0
- package/dist/base/meta/index.cjs.map +1 -0
- package/dist/base/meta/index.d.cts +45 -0
- package/dist/base/meta/index.d.ts +45 -0
- package/dist/base/meta/index.js +13 -0
- package/dist/base/meta/index.js.map +1 -0
- package/dist/base/mutation/index.cjs +200 -0
- package/dist/base/mutation/index.cjs.map +1 -0
- package/dist/base/mutation/index.d.cts +177 -0
- package/dist/base/mutation/index.d.ts +177 -0
- package/dist/base/mutation/index.js +22 -0
- package/dist/base/mutation/index.js.map +1 -0
- package/dist/base/render/index.cjs +1120 -0
- package/dist/base/render/index.cjs.map +1 -0
- package/dist/base/render/index.d.cts +227 -0
- package/dist/base/render/index.d.ts +227 -0
- package/dist/base/render/index.js +24 -0
- package/dist/base/render/index.js.map +1 -0
- package/dist/base/sources/browser/index.cjs +172 -0
- package/dist/base/sources/browser/index.cjs.map +1 -0
- package/dist/base/sources/browser/index.d.cts +84 -0
- package/dist/base/sources/browser/index.d.ts +84 -0
- package/dist/base/sources/browser/index.js +151 -0
- package/dist/base/sources/browser/index.js.map +1 -0
- package/dist/base/sources/event/index.cjs +98 -0
- package/dist/base/sources/event/index.cjs.map +1 -0
- package/dist/base/sources/event/index.d.cts +91 -0
- package/dist/base/sources/event/index.d.ts +91 -0
- package/dist/base/sources/event/index.js +13 -0
- package/dist/base/sources/event/index.js.map +1 -0
- package/dist/base/sources/index.cjs +755 -0
- package/dist/base/sources/index.cjs.map +1 -0
- package/dist/base/sources/index.d.cts +357 -0
- package/dist/base/sources/index.d.ts +357 -0
- package/dist/base/sources/index.js +42 -0
- package/dist/base/sources/index.js.map +1 -0
- package/dist/base/sources/node/index.cjs +320 -0
- package/dist/base/sources/node/index.cjs.map +1 -0
- package/dist/base/sources/node/index.d.cts +185 -0
- package/dist/base/sources/node/index.d.ts +185 -0
- package/dist/base/sources/node/index.js +306 -0
- package/dist/base/sources/node/index.js.map +1 -0
- package/dist/base/utils/index.cjs +37 -0
- package/dist/base/utils/index.cjs.map +1 -0
- package/dist/base/utils/index.d.cts +37 -0
- package/dist/base/utils/index.d.ts +37 -0
- package/dist/base/utils/index.js +11 -0
- package/dist/base/utils/index.js.map +1 -0
- package/dist/base/worker/index.cjs +548 -0
- package/dist/base/worker/index.cjs.map +1 -0
- package/dist/base/worker/index.d.cts +207 -0
- package/dist/base/worker/index.d.ts +207 -0
- package/dist/base/worker/index.js +20 -0
- package/dist/base/worker/index.js.map +1 -0
- package/dist/breaker-C9skL3d8.d.ts +175 -0
- package/dist/breaker-ugSdq54q.d.cts +175 -0
- package/dist/cascading-CSSbKGrJ.d.ts +199 -0
- package/dist/cascading-baGkiihI.d.cts +199 -0
- package/dist/chunk-22SG74BD.js +207 -0
- package/dist/chunk-22SG74BD.js.map +1 -0
- package/dist/chunk-255UCBG4.js +58 -0
- package/dist/chunk-255UCBG4.js.map +1 -0
- package/dist/chunk-2LO3EL4W.js +1 -0
- package/dist/chunk-2LO3EL4W.js.map +1 -0
- package/dist/chunk-2OB3CEJS.js +1065 -0
- package/dist/chunk-2OB3CEJS.js.map +1 -0
- package/dist/chunk-36NMM65U.js +144 -0
- package/dist/chunk-36NMM65U.js.map +1 -0
- package/dist/chunk-3CEXCBN6.js +1 -0
- package/dist/chunk-3CEXCBN6.js.map +1 -0
- package/dist/chunk-3MUSLI6E.js +105 -0
- package/dist/chunk-3MUSLI6E.js.map +1 -0
- package/dist/chunk-3PSLNJDU.js +884 -0
- package/dist/chunk-3PSLNJDU.js.map +1 -0
- package/dist/chunk-42FQ27MQ.js +594 -0
- package/dist/chunk-42FQ27MQ.js.map +1 -0
- package/dist/chunk-4GYMCUDZ.js +1085 -0
- package/dist/chunk-4GYMCUDZ.js.map +1 -0
- package/dist/chunk-4S53H2KR.js +382 -0
- package/dist/chunk-4S53H2KR.js.map +1 -0
- package/dist/chunk-4XCHZRUJ.js +128 -0
- package/dist/chunk-4XCHZRUJ.js.map +1 -0
- package/dist/chunk-5IMMNARC.js +1153 -0
- package/dist/chunk-5IMMNARC.js.map +1 -0
- package/dist/chunk-6XZYT4SW.js +256 -0
- package/dist/chunk-6XZYT4SW.js.map +1 -0
- package/dist/chunk-7EGRP2VX.js +76 -0
- package/dist/chunk-7EGRP2VX.js.map +1 -0
- package/dist/chunk-A7KV5UK4.js +150 -0
- package/dist/chunk-A7KV5UK4.js.map +1 -0
- package/dist/chunk-APY2SS5X.js +156 -0
- package/dist/chunk-APY2SS5X.js.map +1 -0
- package/dist/chunk-AZDQPQ3V.js +66 -0
- package/dist/chunk-AZDQPQ3V.js.map +1 -0
- package/dist/chunk-BU3SEFA5.js +90 -0
- package/dist/chunk-BU3SEFA5.js.map +1 -0
- package/dist/chunk-BXGZFGZ4.js +189 -0
- package/dist/chunk-BXGZFGZ4.js.map +1 -0
- package/dist/chunk-CGHORL6G.js +579 -0
- package/dist/chunk-CGHORL6G.js.map +1 -0
- package/dist/chunk-CXANAIZU.js +530 -0
- package/dist/chunk-CXANAIZU.js.map +1 -0
- package/dist/chunk-CZQHCKKG.js +1 -0
- package/dist/chunk-CZQHCKKG.js.map +1 -0
- package/dist/chunk-DKNHAICT.js +133 -0
- package/dist/chunk-DKNHAICT.js.map +1 -0
- package/dist/chunk-DM4OMPWK.js +584 -0
- package/dist/chunk-DM4OMPWK.js.map +1 -0
- package/dist/chunk-DMSNO6ZB.js +452 -0
- package/dist/chunk-DMSNO6ZB.js.map +1 -0
- package/dist/chunk-E5OZPDIW.js +229 -0
- package/dist/chunk-E5OZPDIW.js.map +1 -0
- package/dist/chunk-EHRRQ4IC.js +211 -0
- package/dist/chunk-EHRRQ4IC.js.map +1 -0
- package/dist/chunk-EVYY4X5A.js +509 -0
- package/dist/chunk-EVYY4X5A.js.map +1 -0
- package/dist/chunk-FDFD67UO.js +1 -0
- package/dist/chunk-FDFD67UO.js.map +1 -0
- package/dist/chunk-FMPF42Q4.js +13 -0
- package/dist/chunk-FMPF42Q4.js.map +1 -0
- package/dist/chunk-FW23JYNQ.js +454 -0
- package/dist/chunk-FW23JYNQ.js.map +1 -0
- package/dist/chunk-GWRNLJNW.js +2508 -0
- package/dist/chunk-GWRNLJNW.js.map +1 -0
- package/dist/chunk-HL7HUJIX.js +1 -0
- package/dist/chunk-HL7HUJIX.js.map +1 -0
- package/dist/chunk-IHTWQEDR.js +169 -0
- package/dist/chunk-IHTWQEDR.js.map +1 -0
- package/dist/chunk-IJRR6YAI.js +128 -0
- package/dist/chunk-IJRR6YAI.js.map +1 -0
- package/dist/chunk-JGFRAFDL.js +221 -0
- package/dist/chunk-JGFRAFDL.js.map +1 -0
- package/dist/chunk-JKTC747G.js +725 -0
- package/dist/chunk-JKTC747G.js.map +1 -0
- package/dist/chunk-KN3H5CNT.js +11 -0
- package/dist/chunk-KN3H5CNT.js.map +1 -0
- package/dist/chunk-KPG3DGLA.js +1 -0
- package/dist/chunk-KPG3DGLA.js.map +1 -0
- package/dist/chunk-KRNQ6RGQ.js +1 -0
- package/dist/chunk-KRNQ6RGQ.js.map +1 -0
- package/dist/chunk-MLTPJMH6.js +417 -0
- package/dist/chunk-MLTPJMH6.js.map +1 -0
- package/dist/chunk-N3SZ7BMH.js +95 -0
- package/dist/chunk-N3SZ7BMH.js.map +1 -0
- package/dist/chunk-NDUD3IMO.js +540 -0
- package/dist/chunk-NDUD3IMO.js.map +1 -0
- package/dist/chunk-NY2PYHNC.js +873 -0
- package/dist/chunk-NY2PYHNC.js.map +1 -0
- package/dist/chunk-O3MT7DYI.js +225 -0
- package/dist/chunk-O3MT7DYI.js.map +1 -0
- package/dist/chunk-OCUDSN63.js +2386 -0
- package/dist/chunk-OCUDSN63.js.map +1 -0
- package/dist/chunk-OIWU3NYV.js +199 -0
- package/dist/chunk-OIWU3NYV.js.map +1 -0
- package/dist/chunk-OQUIJT7A.js +1 -0
- package/dist/chunk-OQUIJT7A.js.map +1 -0
- package/dist/chunk-P5LBT622.js +105 -0
- package/dist/chunk-P5LBT622.js.map +1 -0
- package/dist/chunk-PKGQG5QQ.js +519 -0
- package/dist/chunk-PKGQG5QQ.js.map +1 -0
- package/dist/chunk-PKPO3JTZ.js +561 -0
- package/dist/chunk-PKPO3JTZ.js.map +1 -0
- package/dist/chunk-PL5UDIQ5.js +118 -0
- package/dist/chunk-PL5UDIQ5.js.map +1 -0
- package/dist/chunk-PZWISPIQ.js +432 -0
- package/dist/chunk-PZWISPIQ.js.map +1 -0
- package/dist/chunk-Q3EYOCZB.js +510 -0
- package/dist/chunk-Q3EYOCZB.js.map +1 -0
- package/dist/chunk-QMBYUVRL.js +15 -0
- package/dist/chunk-QMBYUVRL.js.map +1 -0
- package/dist/chunk-RAGGHLCV.js +200 -0
- package/dist/chunk-RAGGHLCV.js.map +1 -0
- package/dist/chunk-RJOG4IJU.js +1039 -0
- package/dist/chunk-RJOG4IJU.js.map +1 -0
- package/dist/chunk-SOOKUYVM.js +403 -0
- package/dist/chunk-SOOKUYVM.js.map +1 -0
- package/dist/chunk-T5BN5KG7.js +1 -0
- package/dist/chunk-T5BN5KG7.js.map +1 -0
- package/dist/chunk-TNX5ZGDJ.js +574 -0
- package/dist/chunk-TNX5ZGDJ.js.map +1 -0
- package/dist/chunk-TP7244Y6.js +207 -0
- package/dist/chunk-TP7244Y6.js.map +1 -0
- package/dist/chunk-TSBFTJKM.js +57 -0
- package/dist/chunk-TSBFTJKM.js.map +1 -0
- package/dist/chunk-URQ2CBBF.js +143 -0
- package/dist/chunk-URQ2CBBF.js.map +1 -0
- package/dist/chunk-VLAGJZSL.js +1079 -0
- package/dist/chunk-VLAGJZSL.js.map +1 -0
- package/dist/chunk-W2BOPXTI.js +1 -0
- package/dist/chunk-W2BOPXTI.js.map +1 -0
- package/dist/chunk-Y52CS6YA.js +88 -0
- package/dist/chunk-Y52CS6YA.js.map +1 -0
- package/dist/chunk-YCBUWK77.js +92 -0
- package/dist/chunk-YCBUWK77.js.map +1 -0
- package/dist/chunk-YJ4U2D2C.js +314 -0
- package/dist/chunk-YJ4U2D2C.js.map +1 -0
- package/dist/chunk-Z4YXAUDN.js +239 -0
- package/dist/chunk-Z4YXAUDN.js.map +1 -0
- package/dist/chunk-Z65DVDEQ.js +146 -0
- package/dist/chunk-Z65DVDEQ.js.map +1 -0
- package/dist/chunk-Z6EGP5D7.js +92 -0
- package/dist/chunk-Z6EGP5D7.js.map +1 -0
- package/dist/chunk-ZT4WMQW4.js +1575 -0
- package/dist/chunk-ZT4WMQW4.js.map +1 -0
- package/dist/chunk-ZVXXDWIB.js +1282 -0
- package/dist/chunk-ZVXXDWIB.js.map +1 -0
- package/dist/compat/index.cjs +3150 -6
- package/dist/compat/index.cjs.map +1 -1
- package/dist/compat/index.d.cts +116 -1
- package/dist/compat/index.d.ts +116 -1
- package/dist/compat/index.js +175 -2
- package/dist/compat/index.js.map +1 -1
- package/dist/compat/jotai/index.cjs +130 -2
- package/dist/compat/jotai/index.cjs.map +1 -1
- package/dist/compat/jotai/index.d.cts +2 -1
- package/dist/compat/jotai/index.d.ts +2 -1
- package/dist/compat/jotai/index.js +7 -2
- package/dist/compat/jotai/index.js.map +1 -1
- package/dist/compat/nanostores/index.cjs +186 -2
- package/dist/compat/nanostores/index.cjs.map +1 -1
- package/dist/compat/nanostores/index.d.cts +2 -1
- package/dist/compat/nanostores/index.d.ts +2 -1
- package/dist/compat/nanostores/index.js +21 -2
- package/dist/compat/nanostores/index.js.map +1 -1
- package/dist/compat/nestjs/index.cjs +2291 -6
- package/dist/compat/nestjs/index.cjs.map +1 -1
- package/dist/compat/nestjs/index.d.cts +10 -1
- package/dist/compat/nestjs/index.d.ts +10 -1
- package/dist/compat/nestjs/index.js +76 -2
- package/dist/compat/nestjs/index.js.map +1 -1
- package/dist/compat/react/index.cjs +95 -2
- package/dist/compat/react/index.cjs.map +1 -1
- package/dist/compat/react/index.d.cts +2 -1
- package/dist/compat/react/index.d.ts +2 -1
- package/dist/compat/react/index.js +11 -2
- package/dist/compat/react/index.js.map +1 -1
- package/dist/compat/solid/index.cjs +82 -2
- package/dist/compat/solid/index.cjs.map +1 -1
- package/dist/compat/solid/index.d.cts +2 -1
- package/dist/compat/solid/index.d.ts +2 -1
- package/dist/compat/solid/index.js +11 -2
- package/dist/compat/solid/index.js.map +1 -1
- package/dist/compat/svelte/index.cjs +85 -2
- package/dist/compat/svelte/index.cjs.map +1 -1
- package/dist/compat/svelte/index.d.cts +2 -1
- package/dist/compat/svelte/index.d.ts +2 -1
- package/dist/compat/svelte/index.js +11 -2
- package/dist/compat/svelte/index.js.map +1 -1
- package/dist/compat/vue/index.cjs +100 -2
- package/dist/compat/vue/index.cjs.map +1 -1
- package/dist/compat/vue/index.d.cts +3 -1
- package/dist/compat/vue/index.d.ts +3 -1
- package/dist/compat/vue/index.js +11 -2
- package/dist/compat/vue/index.js.map +1 -1
- package/dist/compat/zustand/index.cjs +50 -2
- package/dist/compat/zustand/index.cjs.map +1 -1
- package/dist/compat/zustand/index.d.cts +2 -1
- package/dist/compat/zustand/index.d.ts +2 -1
- package/dist/compat/zustand/index.js +7 -2
- package/dist/compat/zustand/index.js.map +1 -1
- package/dist/distill-De6Rnn15.d.cts +48 -0
- package/dist/distill-De6Rnn15.d.ts +48 -0
- package/dist/external-register-CWyroXb_.d.cts +138 -0
- package/dist/external-register-CWyroXb_.d.ts +138 -0
- package/dist/fallback-Bx46zqky.d.cts +243 -0
- package/dist/fallback-pIWW8A2d.d.ts +243 -0
- package/dist/guarded-execution-BcdtxeBk.d.ts +207 -0
- package/dist/guarded-execution-C-3hnP6A.d.cts +207 -0
- package/dist/index-B6pxYJzO.d.cts +36 -0
- package/dist/index-B6pxYJzO.d.ts +36 -0
- package/dist/index-BFsng6v1.d.cts +44 -0
- package/dist/index-BFsng6v1.d.ts +44 -0
- package/dist/index-B_p8tnvf.d.cts +770 -0
- package/dist/index-Bg-LwEt-.d.cts +45 -0
- package/dist/index-Bg-LwEt-.d.ts +45 -0
- package/dist/index-Brp888t0.d.cts +127 -0
- package/dist/index-Brp888t0.d.ts +127 -0
- package/dist/index-CDfk6jHN.d.cts +37 -0
- package/dist/index-CDfk6jHN.d.ts +37 -0
- package/dist/index-DLAxYaN5.d.cts +169 -0
- package/dist/index-DLAxYaN5.d.ts +169 -0
- package/dist/index-DeWbQzMe.d.cts +34 -0
- package/dist/index-DeWbQzMe.d.ts +34 -0
- package/dist/index-_HDSmPyp.d.ts +770 -0
- package/dist/index-dX9IzPqj.d.cts +86 -0
- package/dist/index-dX9IzPqj.d.ts +86 -0
- package/dist/index.cjs +26009 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +55 -42
- package/dist/index.d.ts +55 -42
- package/dist/index.js +849 -0
- package/dist/index.js.map +1 -1
- package/dist/layout-types-B5aiHYgk.d.cts +72 -0
- package/dist/layout-types-B5aiHYgk.d.ts +72 -0
- package/dist/memory-composers-BryDrRBX.d.cts +529 -0
- package/dist/memory-composers-CVQqPYEV.d.ts +529 -0
- package/dist/observable-B25XqCbZ.d.cts +59 -0
- package/dist/observable-B25XqCbZ.d.ts +59 -0
- package/dist/pipeline-graph-Ce47CB6Y.d.cts +145 -0
- package/dist/pipeline-graph-DXCwY9vG.d.ts +145 -0
- package/dist/presets/ai/index.cjs +4377 -0
- package/dist/presets/ai/index.cjs.map +1 -0
- package/dist/presets/ai/index.d.cts +98 -0
- package/dist/presets/ai/index.d.ts +98 -0
- package/dist/presets/ai/index.js +54 -0
- package/dist/presets/ai/index.js.map +1 -0
- package/dist/presets/harness/index.cjs +5929 -0
- package/dist/presets/harness/index.cjs.map +1 -0
- package/dist/presets/harness/index.d.cts +566 -0
- package/dist/presets/harness/index.d.ts +566 -0
- package/dist/presets/harness/index.js +71 -0
- package/dist/presets/harness/index.js.map +1 -0
- package/dist/presets/index.cjs +9782 -0
- package/dist/presets/index.cjs.map +1 -0
- package/dist/presets/index.d.cts +28 -0
- package/dist/presets/index.d.ts +28 -0
- package/dist/presets/index.js +129 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/inspect/index.cjs +1087 -0
- package/dist/presets/inspect/index.cjs.map +1 -0
- package/dist/presets/inspect/index.d.cts +172 -0
- package/dist/presets/inspect/index.d.ts +172 -0
- package/dist/presets/inspect/index.js +21 -0
- package/dist/presets/inspect/index.js.map +1 -0
- package/dist/presets/resilience/index.cjs +1593 -0
- package/dist/presets/resilience/index.cjs.map +1 -0
- package/dist/presets/resilience/index.d.cts +205 -0
- package/dist/presets/resilience/index.d.ts +205 -0
- package/dist/presets/resilience/index.js +18 -0
- package/dist/presets/resilience/index.js.map +1 -0
- package/dist/rate-limiter-CEALq4N1.d.ts +559 -0
- package/dist/rate-limiter-DpVbSYdH.d.cts +559 -0
- package/dist/reactive-layout-fswlBUvX.d.cts +195 -0
- package/dist/reactive-layout-fswlBUvX.d.ts +195 -0
- package/dist/retry-BDbRZ_gx.d.ts +125 -0
- package/dist/retry-DWuhjvsA.d.cts +125 -0
- package/dist/solutions/index.cjs +8200 -0
- package/dist/solutions/index.cjs.map +1 -0
- package/dist/solutions/index.d.cts +23 -0
- package/dist/solutions/index.d.ts +23 -0
- package/dist/solutions/index.js +55 -0
- package/dist/solutions/index.js.map +1 -0
- package/dist/spawnable-5mDY501F.d.cts +746 -0
- package/dist/spawnable-D3lR0oQu.d.ts +746 -0
- package/dist/status-U-rUI79b.d.cts +84 -0
- package/dist/status-U-rUI79b.d.ts +84 -0
- package/dist/timeout-U5O4ESK3.js +12 -0
- package/dist/timeout-U5O4ESK3.js.map +1 -0
- package/dist/types-BB5Lw-pB.d.cts +442 -0
- package/dist/types-BB5Lw-pB.d.ts +442 -0
- package/dist/types-CJWIMJiZ.d.ts +548 -0
- package/dist/types-vCq7ShIm.d.cts +548 -0
- package/dist/utils/ai/browser.cjs +2169 -0
- package/dist/utils/ai/browser.cjs.map +1 -0
- package/dist/utils/ai/browser.d.cts +129 -0
- package/dist/utils/ai/browser.d.ts +129 -0
- package/dist/utils/ai/browser.js +255 -0
- package/dist/utils/ai/browser.js.map +1 -0
- package/dist/utils/ai/index.cjs +8468 -0
- package/dist/utils/ai/index.cjs.map +1 -0
- package/dist/utils/ai/index.d.cts +1777 -0
- package/dist/utils/ai/index.d.ts +1777 -0
- package/dist/utils/ai/index.js +173 -0
- package/dist/utils/ai/index.js.map +1 -0
- package/dist/utils/ai/node.cjs +648 -0
- package/dist/utils/ai/node.cjs.map +1 -0
- package/dist/utils/ai/node.d.cts +57 -0
- package/dist/utils/ai/node.d.ts +57 -0
- package/dist/utils/ai/node.js +84 -0
- package/dist/utils/ai/node.js.map +1 -0
- package/dist/utils/cqrs/index.cjs +1036 -0
- package/dist/utils/cqrs/index.cjs.map +1 -0
- package/dist/utils/cqrs/index.d.cts +438 -0
- package/dist/utils/cqrs/index.d.ts +438 -0
- package/dist/utils/cqrs/index.js +18 -0
- package/dist/utils/cqrs/index.js.map +1 -0
- package/dist/utils/demo-shell/index.cjs +865 -0
- package/dist/utils/demo-shell/index.cjs.map +1 -0
- package/dist/utils/demo-shell/index.d.cts +90 -0
- package/dist/utils/demo-shell/index.d.ts +90 -0
- package/dist/utils/demo-shell/index.js +13 -0
- package/dist/utils/demo-shell/index.js.map +1 -0
- package/dist/utils/domain-templates/index.cjs +732 -0
- package/dist/utils/domain-templates/index.cjs.map +1 -0
- package/dist/utils/domain-templates/index.d.cts +214 -0
- package/dist/utils/domain-templates/index.d.ts +214 -0
- package/dist/utils/domain-templates/index.js +17 -0
- package/dist/utils/domain-templates/index.js.map +1 -0
- package/dist/utils/graphspec/index.cjs +1174 -0
- package/dist/utils/graphspec/index.cjs.map +1 -0
- package/dist/utils/graphspec/index.d.cts +449 -0
- package/dist/utils/graphspec/index.d.ts +449 -0
- package/dist/utils/graphspec/index.js +35 -0
- package/dist/utils/graphspec/index.js.map +1 -0
- package/dist/utils/harness/index.cjs +656 -0
- package/dist/utils/harness/index.cjs.map +1 -0
- package/dist/utils/harness/index.d.cts +542 -0
- package/dist/utils/harness/index.d.ts +542 -0
- package/dist/utils/harness/index.js +56 -0
- package/dist/utils/harness/index.js.map +1 -0
- package/dist/utils/index.cjs +17614 -0
- package/dist/utils/index.cjs.map +1 -0
- package/dist/utils/index.d.cts +96 -0
- package/dist/utils/index.d.ts +96 -0
- package/dist/utils/index.js +514 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/inspect/index.cjs +807 -0
- package/dist/utils/inspect/index.cjs.map +1 -0
- package/dist/utils/inspect/index.d.cts +123 -0
- package/dist/utils/inspect/index.d.ts +123 -0
- package/dist/utils/inspect/index.js +30 -0
- package/dist/utils/inspect/index.js.map +1 -0
- package/dist/utils/job-queue/index.cjs +717 -0
- package/dist/utils/job-queue/index.cjs.map +1 -0
- package/dist/utils/job-queue/index.d.cts +200 -0
- package/dist/utils/job-queue/index.d.ts +200 -0
- package/dist/utils/job-queue/index.js +18 -0
- package/dist/utils/job-queue/index.js.map +1 -0
- package/dist/utils/memory/index.cjs +1456 -0
- package/dist/utils/memory/index.cjs.map +1 -0
- package/dist/utils/memory/index.d.cts +660 -0
- package/dist/utils/memory/index.d.ts +660 -0
- package/dist/utils/memory/index.js +19 -0
- package/dist/utils/memory/index.js.map +1 -0
- package/dist/utils/messaging/index.cjs +666 -0
- package/dist/utils/messaging/index.cjs.map +1 -0
- package/dist/utils/messaging/index.d.cts +562 -0
- package/dist/utils/messaging/index.d.ts +562 -0
- package/dist/utils/messaging/index.js +50 -0
- package/dist/utils/messaging/index.js.map +1 -0
- package/dist/utils/orchestration/index.cjs +876 -0
- package/dist/utils/orchestration/index.cjs.map +1 -0
- package/dist/utils/orchestration/index.d.cts +233 -0
- package/dist/utils/orchestration/index.d.ts +233 -0
- package/dist/utils/orchestration/index.js +19 -0
- package/dist/utils/orchestration/index.js.map +1 -0
- package/dist/utils/process/index.cjs +743 -0
- package/dist/utils/process/index.cjs.map +1 -0
- package/dist/utils/process/index.d.cts +411 -0
- package/dist/utils/process/index.d.ts +411 -0
- package/dist/utils/process/index.js +14 -0
- package/dist/utils/process/index.js.map +1 -0
- package/dist/utils/reactive-layout/index.cjs +1607 -0
- package/dist/utils/reactive-layout/index.cjs.map +1 -0
- package/dist/utils/reactive-layout/index.d.cts +492 -0
- package/dist/utils/reactive-layout/index.d.ts +492 -0
- package/dist/utils/reactive-layout/index.js +52 -0
- package/dist/utils/reactive-layout/index.js.map +1 -0
- package/dist/utils/reduction/index.cjs +203 -0
- package/dist/utils/reduction/index.cjs.map +1 -0
- package/dist/utils/reduction/index.d.cts +102 -0
- package/dist/utils/reduction/index.d.ts +102 -0
- package/dist/utils/reduction/index.js +14 -0
- package/dist/utils/reduction/index.js.map +1 -0
- package/dist/utils/resilience/index.cjs +1617 -0
- package/dist/utils/resilience/index.cjs.map +1 -0
- package/dist/utils/resilience/index.d.cts +9 -0
- package/dist/utils/resilience/index.d.ts +9 -0
- package/dist/utils/resilience/index.js +44 -0
- package/dist/utils/resilience/index.js.map +1 -0
- package/dist/utils/surface/index.cjs +1070 -0
- package/dist/utils/surface/index.cjs.map +1 -0
- package/dist/utils/surface/index.d.cts +240 -0
- package/dist/utils/surface/index.d.ts +240 -0
- package/dist/utils/surface/index.js +30 -0
- package/dist/utils/surface/index.js.map +1 -0
- package/dist/utils/topology-view/index.cjs +620 -0
- package/dist/utils/topology-view/index.cjs.map +1 -0
- package/dist/utils/topology-view/index.d.cts +68 -0
- package/dist/utils/topology-view/index.d.ts +68 -0
- package/dist/utils/topology-view/index.js +11 -0
- package/dist/utils/topology-view/index.js.map +1 -0
- package/package.json +293 -241
- package/dist/core/index.cjs +0 -21
- package/dist/core/index.cjs.map +0 -1
- package/dist/core/index.d.cts +0 -1
- package/dist/core/index.d.ts +0 -1
- package/dist/core/index.js +0 -3
- package/dist/core/index.js.map +0 -1
- package/dist/extra/browser.cjs +0 -21
- package/dist/extra/browser.cjs.map +0 -1
- package/dist/extra/browser.d.cts +0 -1
- package/dist/extra/browser.d.ts +0 -1
- package/dist/extra/browser.js +0 -3
- package/dist/extra/browser.js.map +0 -1
- package/dist/extra/index.cjs +0 -21
- package/dist/extra/index.cjs.map +0 -1
- package/dist/extra/index.d.cts +0 -1
- package/dist/extra/index.d.ts +0 -1
- package/dist/extra/index.js +0 -3
- package/dist/extra/index.js.map +0 -1
- package/dist/extra/node.cjs +0 -21
- package/dist/extra/node.cjs.map +0 -1
- package/dist/extra/node.d.cts +0 -1
- package/dist/extra/node.d.ts +0 -1
- package/dist/extra/node.js +0 -3
- package/dist/extra/node.js.map +0 -1
- package/dist/extra/operators.cjs +0 -21
- package/dist/extra/operators.cjs.map +0 -1
- package/dist/extra/operators.d.cts +0 -1
- package/dist/extra/operators.d.ts +0 -1
- package/dist/extra/operators.js +0 -3
- package/dist/extra/operators.js.map +0 -1
- package/dist/extra/reactive.cjs +0 -21
- package/dist/extra/reactive.cjs.map +0 -1
- package/dist/extra/reactive.d.cts +0 -1
- package/dist/extra/reactive.d.ts +0 -1
- package/dist/extra/reactive.js +0 -3
- package/dist/extra/reactive.js.map +0 -1
- package/dist/extra/render/index.cjs +0 -21
- package/dist/extra/render/index.cjs.map +0 -1
- package/dist/extra/render/index.d.cts +0 -1
- package/dist/extra/render/index.d.ts +0 -1
- package/dist/extra/render/index.js +0 -3
- package/dist/extra/render/index.js.map +0 -1
- package/dist/extra/sources.cjs +0 -21
- package/dist/extra/sources.cjs.map +0 -1
- package/dist/extra/sources.d.cts +0 -1
- package/dist/extra/sources.d.ts +0 -1
- package/dist/extra/sources.js +0 -3
- package/dist/extra/sources.js.map +0 -1
- package/dist/extra/storage-browser.cjs +0 -21
- package/dist/extra/storage-browser.cjs.map +0 -1
- package/dist/extra/storage-browser.d.cts +0 -1
- package/dist/extra/storage-browser.d.ts +0 -1
- package/dist/extra/storage-browser.js +0 -3
- package/dist/extra/storage-browser.js.map +0 -1
- package/dist/extra/storage-core.cjs +0 -21
- package/dist/extra/storage-core.cjs.map +0 -1
- package/dist/extra/storage-core.d.cts +0 -1
- package/dist/extra/storage-core.d.ts +0 -1
- package/dist/extra/storage-core.js +0 -3
- package/dist/extra/storage-core.js.map +0 -1
- package/dist/extra/storage-node.cjs +0 -21
- package/dist/extra/storage-node.cjs.map +0 -1
- package/dist/extra/storage-node.d.cts +0 -1
- package/dist/extra/storage-node.d.ts +0 -1
- package/dist/extra/storage-node.js +0 -3
- package/dist/extra/storage-node.js.map +0 -1
- package/dist/extra/storage-tiers-browser.cjs +0 -21
- package/dist/extra/storage-tiers-browser.cjs.map +0 -1
- package/dist/extra/storage-tiers-browser.d.cts +0 -1
- package/dist/extra/storage-tiers-browser.d.ts +0 -1
- package/dist/extra/storage-tiers-browser.js +0 -3
- package/dist/extra/storage-tiers-browser.js.map +0 -1
- package/dist/extra/storage-tiers-node.cjs +0 -21
- package/dist/extra/storage-tiers-node.cjs.map +0 -1
- package/dist/extra/storage-tiers-node.d.cts +0 -1
- package/dist/extra/storage-tiers-node.d.ts +0 -1
- package/dist/extra/storage-tiers-node.js +0 -3
- package/dist/extra/storage-tiers-node.js.map +0 -1
- package/dist/extra/storage-tiers.cjs +0 -21
- package/dist/extra/storage-tiers.cjs.map +0 -1
- package/dist/extra/storage-tiers.d.cts +0 -1
- package/dist/extra/storage-tiers.d.ts +0 -1
- package/dist/extra/storage-tiers.js +0 -3
- package/dist/extra/storage-tiers.js.map +0 -1
- package/dist/extra/storage-wal.cjs +0 -21
- package/dist/extra/storage-wal.cjs.map +0 -1
- package/dist/extra/storage-wal.d.cts +0 -1
- package/dist/extra/storage-wal.d.ts +0 -1
- package/dist/extra/storage-wal.js +0 -3
- package/dist/extra/storage-wal.js.map +0 -1
- package/dist/graph/index.cjs +0 -21
- package/dist/graph/index.cjs.map +0 -1
- package/dist/graph/index.d.cts +0 -1
- package/dist/graph/index.d.ts +0 -1
- package/dist/graph/index.js +0 -3
- package/dist/graph/index.js.map +0 -1
- package/dist/patterns/ai/browser.cjs +0 -21
- package/dist/patterns/ai/browser.cjs.map +0 -1
- package/dist/patterns/ai/browser.d.cts +0 -1
- package/dist/patterns/ai/browser.d.ts +0 -1
- package/dist/patterns/ai/browser.js +0 -3
- package/dist/patterns/ai/browser.js.map +0 -1
- package/dist/patterns/ai/index.cjs +0 -21
- package/dist/patterns/ai/index.cjs.map +0 -1
- package/dist/patterns/ai/index.d.cts +0 -1
- package/dist/patterns/ai/index.d.ts +0 -1
- package/dist/patterns/ai/index.js +0 -3
- package/dist/patterns/ai/index.js.map +0 -1
- package/dist/patterns/ai/node.cjs +0 -21
- package/dist/patterns/ai/node.cjs.map +0 -1
- package/dist/patterns/ai/node.d.cts +0 -1
- package/dist/patterns/ai/node.d.ts +0 -1
- package/dist/patterns/ai/node.js +0 -3
- package/dist/patterns/ai/node.js.map +0 -1
- package/dist/patterns/cqrs/index.cjs +0 -21
- package/dist/patterns/cqrs/index.cjs.map +0 -1
- package/dist/patterns/cqrs/index.d.cts +0 -1
- package/dist/patterns/cqrs/index.d.ts +0 -1
- package/dist/patterns/cqrs/index.js +0 -3
- package/dist/patterns/cqrs/index.js.map +0 -1
- package/dist/patterns/demo-shell/index.cjs +0 -21
- package/dist/patterns/demo-shell/index.cjs.map +0 -1
- package/dist/patterns/demo-shell/index.d.cts +0 -1
- package/dist/patterns/demo-shell/index.d.ts +0 -1
- package/dist/patterns/demo-shell/index.js +0 -3
- package/dist/patterns/demo-shell/index.js.map +0 -1
- package/dist/patterns/domain-templates/index.cjs +0 -21
- package/dist/patterns/domain-templates/index.cjs.map +0 -1
- package/dist/patterns/domain-templates/index.d.cts +0 -1
- package/dist/patterns/domain-templates/index.d.ts +0 -1
- package/dist/patterns/domain-templates/index.js +0 -3
- package/dist/patterns/domain-templates/index.js.map +0 -1
- package/dist/patterns/graphspec/index.cjs +0 -21
- package/dist/patterns/graphspec/index.cjs.map +0 -1
- package/dist/patterns/graphspec/index.d.cts +0 -1
- package/dist/patterns/graphspec/index.d.ts +0 -1
- package/dist/patterns/graphspec/index.js +0 -3
- package/dist/patterns/graphspec/index.js.map +0 -1
- package/dist/patterns/harness/index.cjs +0 -21
- package/dist/patterns/harness/index.cjs.map +0 -1
- package/dist/patterns/harness/index.d.cts +0 -1
- package/dist/patterns/harness/index.d.ts +0 -1
- package/dist/patterns/harness/index.js +0 -3
- package/dist/patterns/harness/index.js.map +0 -1
- package/dist/patterns/inspect/index.cjs +0 -21
- package/dist/patterns/inspect/index.cjs.map +0 -1
- package/dist/patterns/inspect/index.d.cts +0 -1
- package/dist/patterns/inspect/index.d.ts +0 -1
- package/dist/patterns/inspect/index.js +0 -3
- package/dist/patterns/inspect/index.js.map +0 -1
- package/dist/patterns/job-queue/index.cjs +0 -21
- package/dist/patterns/job-queue/index.cjs.map +0 -1
- package/dist/patterns/job-queue/index.d.cts +0 -1
- package/dist/patterns/job-queue/index.d.ts +0 -1
- package/dist/patterns/job-queue/index.js +0 -3
- package/dist/patterns/job-queue/index.js.map +0 -1
- package/dist/patterns/memory/index.cjs +0 -21
- package/dist/patterns/memory/index.cjs.map +0 -1
- package/dist/patterns/memory/index.d.cts +0 -1
- package/dist/patterns/memory/index.d.ts +0 -1
- package/dist/patterns/memory/index.js +0 -3
- package/dist/patterns/memory/index.js.map +0 -1
- package/dist/patterns/messaging/index.cjs +0 -21
- package/dist/patterns/messaging/index.cjs.map +0 -1
- package/dist/patterns/messaging/index.d.cts +0 -1
- package/dist/patterns/messaging/index.d.ts +0 -1
- package/dist/patterns/messaging/index.js +0 -3
- package/dist/patterns/messaging/index.js.map +0 -1
- package/dist/patterns/orchestration/index.cjs +0 -21
- package/dist/patterns/orchestration/index.cjs.map +0 -1
- package/dist/patterns/orchestration/index.d.cts +0 -1
- package/dist/patterns/orchestration/index.d.ts +0 -1
- package/dist/patterns/orchestration/index.js +0 -3
- package/dist/patterns/orchestration/index.js.map +0 -1
- package/dist/patterns/process/index.cjs +0 -21
- package/dist/patterns/process/index.cjs.map +0 -1
- package/dist/patterns/process/index.d.cts +0 -1
- package/dist/patterns/process/index.d.ts +0 -1
- package/dist/patterns/process/index.js +0 -3
- package/dist/patterns/process/index.js.map +0 -1
- package/dist/patterns/reactive-layout/index.cjs +0 -21
- package/dist/patterns/reactive-layout/index.cjs.map +0 -1
- package/dist/patterns/reactive-layout/index.d.cts +0 -1
- package/dist/patterns/reactive-layout/index.d.ts +0 -1
- package/dist/patterns/reactive-layout/index.js +0 -3
- package/dist/patterns/reactive-layout/index.js.map +0 -1
- package/dist/patterns/reduction/index.cjs +0 -21
- package/dist/patterns/reduction/index.cjs.map +0 -1
- package/dist/patterns/reduction/index.d.cts +0 -1
- package/dist/patterns/reduction/index.d.ts +0 -1
- package/dist/patterns/reduction/index.js +0 -3
- package/dist/patterns/reduction/index.js.map +0 -1
- package/dist/patterns/surface/index.cjs +0 -21
- package/dist/patterns/surface/index.cjs.map +0 -1
- package/dist/patterns/surface/index.d.cts +0 -1
- package/dist/patterns/surface/index.d.ts +0 -1
- package/dist/patterns/surface/index.js +0 -3
- package/dist/patterns/surface/index.js.map +0 -1
- package/dist/patterns/topology-view/index.cjs +0 -21
- package/dist/patterns/topology-view/index.cjs.map +0 -1
- package/dist/patterns/topology-view/index.d.cts +0 -1
- package/dist/patterns/topology-view/index.d.ts +0 -1
- package/dist/patterns/topology-view/index.js +0 -3
- package/dist/patterns/topology-view/index.js.map +0 -1
- package/dist/testing/index.cjs +0 -21
- package/dist/testing/index.cjs.map +0 -1
- package/dist/testing/index.d.cts +0 -1
- package/dist/testing/index.d.ts +0 -1
- package/dist/testing/index.js +0 -3
- package/dist/testing/index.js.map +0 -1
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
import { Node } from '@graphrefly/pure-ts/core';
|
|
2
|
+
import { NodeInput, AppendLogStorageTier, KvStorageTier, ReactiveLogBundle } from '@graphrefly/pure-ts/extra';
|
|
3
|
+
import { BaseAuditRecord } from '../../base/mutation/index.cjs';
|
|
4
|
+
import { S as StatusValue } from '../../status-U-rUI79b.cjs';
|
|
5
|
+
import { CqrsEventMap, CqrsEvent, CqrsGraph } from '../cqrs/index.cjs';
|
|
6
|
+
import '@graphrefly/pure-ts/graph';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Process Manager pattern (Phase 7 — roadmap §4.6, Audit 3 — locked 2026-04-24).
|
|
10
|
+
*
|
|
11
|
+
* Reactive long-running workflow primitive over CQRS event nodes.
|
|
12
|
+
* Correlates events across aggregates, tracks per-instance state, supports
|
|
13
|
+
* retries with backoff, and runs compensation on failure or explicit cancel.
|
|
14
|
+
*
|
|
15
|
+
* ## Architecture
|
|
16
|
+
*
|
|
17
|
+
* - Per-instance state lives in a `Map<correlationId, TState>` closure (in-memory).
|
|
18
|
+
* The `_process_<name>_started` synthetic event is dispatched per `start()`
|
|
19
|
+
* for an event-sourced audit trail using `correlationId` as `aggregateId`.
|
|
20
|
+
* Cross-restart state recovery is opt-in via
|
|
21
|
+
* `opts.persistence.stateStorage` (kv-tier per-correlationId snapshot,
|
|
22
|
+
* Tier 6.5 3.5) plus an explicit `restore()` call after construction.
|
|
23
|
+
* - Watched-event subscriptions are imperative (coordinator role) — each
|
|
24
|
+
* watched CQRS event type is subscribed to via `entries.subscribe(...)`.
|
|
25
|
+
* These are NOT reactive node edges; the process manager is intentionally
|
|
26
|
+
* a coordinator that bridges reactive CQRS events into imperative instance logic.
|
|
27
|
+
* - Step execution uses `fromAny` to uniformly handle sync and async handlers.
|
|
28
|
+
* - Retry delays use `setTimeout` (same sanctioned pattern as `extra/resilience.ts`
|
|
29
|
+
* retry helper — this primitive is a coordinator, not a reactive pipeline stage).
|
|
30
|
+
* - Timer scheduling uses `fromTimer` from `extra/sources.ts` per spec §5.8.
|
|
31
|
+
* - Audit log uses `createAuditLog` per Audit 2.
|
|
32
|
+
*
|
|
33
|
+
* @module
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Discriminated union returned by each step handler.
|
|
38
|
+
*
|
|
39
|
+
* - `"success"` — step ran cleanly; update state, optionally emit
|
|
40
|
+
* side-effect events and schedule a future synthetic event. The process
|
|
41
|
+
* instance stays `"running"`.
|
|
42
|
+
* - `"terminate"` — workflow complete; instance moves to `"completed"`.
|
|
43
|
+
* Process-specific extension to the canonical outcome enum.
|
|
44
|
+
* - `"failure"` — triggers compensation; instance moves to `"cancelled"` /
|
|
45
|
+
* `"errored"`.
|
|
46
|
+
*
|
|
47
|
+
* Field name is `outcome` (matching `cqrs.DispatchRecord.outcome` and the
|
|
48
|
+
* canonical Tier 1.6.2 / 2.3 enum). `"success"` and `"failure"` are the
|
|
49
|
+
* canonical values; `"terminate"` is the process-specific extension for
|
|
50
|
+
* "early-return success".
|
|
51
|
+
*/
|
|
52
|
+
type ProcessStepResult<TState> = {
|
|
53
|
+
outcome: "success";
|
|
54
|
+
state: TState;
|
|
55
|
+
emit?: readonly {
|
|
56
|
+
type: string;
|
|
57
|
+
payload: unknown;
|
|
58
|
+
}[];
|
|
59
|
+
schedule?: ProcessSchedule;
|
|
60
|
+
} | {
|
|
61
|
+
outcome: "terminate";
|
|
62
|
+
state: TState;
|
|
63
|
+
emit?: readonly {
|
|
64
|
+
type: string;
|
|
65
|
+
payload: unknown;
|
|
66
|
+
}[];
|
|
67
|
+
reason?: string;
|
|
68
|
+
} | {
|
|
69
|
+
outcome: "failure";
|
|
70
|
+
error: unknown;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Schedule a synthetic timer event after `afterMs` milliseconds.
|
|
74
|
+
* When the timer fires, the synthetic event of `eventType` is routed to the
|
|
75
|
+
* matching step (if one is registered) for this correlationId.
|
|
76
|
+
*/
|
|
77
|
+
type ProcessSchedule = {
|
|
78
|
+
afterMs: number;
|
|
79
|
+
eventType: string;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Step handler signature.
|
|
83
|
+
*
|
|
84
|
+
* Receives the current instance state and the triggering CQRS event.
|
|
85
|
+
* Returns a {@link ProcessStepResult} — sync value, Promise, or any
|
|
86
|
+
* {@link NodeInput} consumed via `fromAny`.
|
|
87
|
+
*/
|
|
88
|
+
type ProcessStep<TState, EM extends CqrsEventMap, K extends keyof EM & string> = (state: TState, event: CqrsEvent<EM[K]>) => NodeInput<ProcessStepResult<TState>>;
|
|
89
|
+
/**
|
|
90
|
+
* Compensation handler. Runs when a step returns `outcome: "failure"`, throws, or
|
|
91
|
+
* when `cancel(correlationId)` is called on a running instance.
|
|
92
|
+
*
|
|
93
|
+
* Should undo any side effects performed by prior steps (refund, cancel
|
|
94
|
+
* reservation, etc.). Errors thrown inside compensate are swallowed and
|
|
95
|
+
* recorded in the audit log with `status: "errored"` to prevent cascading
|
|
96
|
+
* failure loops.
|
|
97
|
+
*/
|
|
98
|
+
type ProcessCompensate<TState> = (state: TState, error: unknown) => NodeInput<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Audit record for a single process instance state transition.
|
|
101
|
+
*
|
|
102
|
+
* Every status change (start → running → completed / errored / cancelled)
|
|
103
|
+
* appends one record. `correlationId` is the stable process key.
|
|
104
|
+
*
|
|
105
|
+
* Extends {@link BaseAuditRecord} so records carry `t_ns` / `seq` /
|
|
106
|
+
* `handlerVersion` from the cross-cutting Audit 2 schema.
|
|
107
|
+
*/
|
|
108
|
+
interface ProcessInstance<TState> extends BaseAuditRecord {
|
|
109
|
+
/** Stable correlation key that identifies this process instance. */
|
|
110
|
+
readonly correlationId: string;
|
|
111
|
+
/** Most-recent instance state at this transition. */
|
|
112
|
+
readonly state: TState;
|
|
113
|
+
/** Current lifecycle status after this transition. */
|
|
114
|
+
readonly status: "running" | "completed" | "errored" | "cancelled";
|
|
115
|
+
/** Wall-clock nanoseconds when `start()` was called. */
|
|
116
|
+
readonly startedAt: number;
|
|
117
|
+
/** Wall-clock nanoseconds of this transition. */
|
|
118
|
+
readonly updatedAt: number;
|
|
119
|
+
/** Handler version stamped at transition time (Audit 5). */
|
|
120
|
+
readonly handlerVersion?: {
|
|
121
|
+
id: string;
|
|
122
|
+
version: string | number;
|
|
123
|
+
};
|
|
124
|
+
/** Optional human-readable reason for cancellation. Present only on `"cancelled"` records produced by `cancel()`. */
|
|
125
|
+
readonly reason?: string;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Recommended `keyOf` for storage tiers keyed by correlationId (Audit 2).
|
|
129
|
+
*/
|
|
130
|
+
declare const processInstanceKeyOf: <TState>(i: ProcessInstance<TState>) => string;
|
|
131
|
+
/**
|
|
132
|
+
* Per-correlationId state snapshot persisted via
|
|
133
|
+
* {@link ProcessManagerOpts.persistence.stateStorage} (Tier 6.5 3.5,
|
|
134
|
+
* 2026-04-29). Captures the running instance's current state plus
|
|
135
|
+
* lifecycle metadata so a fresh `processManager` can resume in-flight
|
|
136
|
+
* workflows after restart via {@link ProcessManagerResult.restore}.
|
|
137
|
+
*
|
|
138
|
+
* Terminal records (`status` ∈ `"completed" | "errored" | "cancelled"`)
|
|
139
|
+
* are deleted from the kv tier on transition — only running instances
|
|
140
|
+
* persist between restarts.
|
|
141
|
+
*/
|
|
142
|
+
interface ProcessStateSnapshot<TState> {
|
|
143
|
+
readonly correlationId: string;
|
|
144
|
+
readonly state: TState;
|
|
145
|
+
readonly status: "running" | "completed" | "errored" | "cancelled";
|
|
146
|
+
readonly startedAt: number;
|
|
147
|
+
readonly updatedAt: number;
|
|
148
|
+
readonly handlerVersion?: {
|
|
149
|
+
id: string;
|
|
150
|
+
version: string | number;
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/** Recommended `keyOf` for `KvStorageTier<ProcessStateSnapshot<...>>`. */
|
|
154
|
+
declare const processStateKeyOf: <TState>(s: ProcessStateSnapshot<TState>) => string;
|
|
155
|
+
/**
|
|
156
|
+
* Options for {@link processManager}.
|
|
157
|
+
*/
|
|
158
|
+
interface ProcessManagerOpts<TState, EM extends CqrsEventMap> {
|
|
159
|
+
/** Initial state value for every new process instance. */
|
|
160
|
+
readonly initial: TState;
|
|
161
|
+
/** CQRS event types to watch for correlation routing. */
|
|
162
|
+
readonly watching: readonly (keyof EM & string)[];
|
|
163
|
+
/**
|
|
164
|
+
* Per-event-type step handlers. A step is invoked when a watched event's
|
|
165
|
+
* `correlationId` matches a running instance and the event type is in
|
|
166
|
+
* `steps`. Events with no matching step are silently ignored.
|
|
167
|
+
*/
|
|
168
|
+
readonly steps: {
|
|
169
|
+
[K in keyof EM & string]?: ProcessStep<TState, EM, K>;
|
|
170
|
+
};
|
|
171
|
+
/**
|
|
172
|
+
* Optional compensation handler. Runs on step `outcome: "failure"` / step throw
|
|
173
|
+
* and on explicit `cancel()`. If omitted, instances fail silently with
|
|
174
|
+
* status `"errored"` instead of `"cancelled"`.
|
|
175
|
+
*/
|
|
176
|
+
readonly compensate?: ProcessCompensate<TState>;
|
|
177
|
+
/**
|
|
178
|
+
* Optional predicate called after each `"success"` step. When it returns
|
|
179
|
+
* `true`, the instance is moved to `"completed"` immediately without
|
|
180
|
+
* waiting for a `"terminate"` step result.
|
|
181
|
+
*/
|
|
182
|
+
readonly isTerminal?: (state: TState) => boolean;
|
|
183
|
+
/**
|
|
184
|
+
* Maximum number of retry attempts after a step throws (not counting the
|
|
185
|
+
* first attempt). Default: `0` (no retry — fail immediately on throw).
|
|
186
|
+
*/
|
|
187
|
+
readonly retryMax?: number;
|
|
188
|
+
/**
|
|
189
|
+
* Per-retry backoff delays in milliseconds. `backoffMs[i]` is the delay
|
|
190
|
+
* before attempt `i + 1`. If fewer entries than `retryMax`, the last entry
|
|
191
|
+
* is repeated. Default: `[0]` (no delay).
|
|
192
|
+
*
|
|
193
|
+
* **Implementation note:** retry delays are implemented with `setTimeout`
|
|
194
|
+
* (same sanctioned exception as `extra/resilience.ts`). This is a
|
|
195
|
+
* coordinator-layer primitive — `fromTimer` would require subscribing to
|
|
196
|
+
* an additional node per attempt, which would leak timer nodes without a
|
|
197
|
+
* clear disposal scope.
|
|
198
|
+
*/
|
|
199
|
+
readonly backoffMs?: readonly number[];
|
|
200
|
+
/** Handler version tag stamped onto audit records (Audit 5). */
|
|
201
|
+
readonly handlerVersion?: {
|
|
202
|
+
id: string;
|
|
203
|
+
version: string | number;
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* When `true`, do NOT auto-restore on construction. The caller must invoke
|
|
207
|
+
* {@link ProcessManagerResult.restore} explicitly to load persisted
|
|
208
|
+
* snapshots and arm watch dispatch.
|
|
209
|
+
*
|
|
210
|
+
* **Default `false`:** the factory kicks off restoration immediately so
|
|
211
|
+
* watch dispatch arms as soon as snapshots have loaded (or instantly when
|
|
212
|
+
* no `stateStorage` tier is configured). Until restoration completes,
|
|
213
|
+
* watched events accumulate at the source but are valve-blocked from
|
|
214
|
+
* reaching the per-instance step pipeline (B5 — locked 2026-05-01).
|
|
215
|
+
*/
|
|
216
|
+
readonly deferRestore?: boolean;
|
|
217
|
+
/**
|
|
218
|
+
* Maximum number of concurrent `tier.load(key)` calls during restore.
|
|
219
|
+
*
|
|
220
|
+
* The restore pipeline streams keys from `tier.list()` through
|
|
221
|
+
* `mergeMap`, which by default subscribes to inner sources unbounded
|
|
222
|
+
* (parallel up to the number of keys). For storage tiers with large
|
|
223
|
+
* persisted-instance counts (10K+), unbounded concurrency can exhaust
|
|
224
|
+
* file handles, connection pools, or the backend's concurrent-request
|
|
225
|
+
* budget. This option caps the in-flight load count.
|
|
226
|
+
*
|
|
227
|
+
* **Default `8`** (D2 lock 2026-05-01). Set higher for backends with
|
|
228
|
+
* generous concurrency budgets; set to `Number.POSITIVE_INFINITY` for
|
|
229
|
+
* the prior unbounded behavior.
|
|
230
|
+
*/
|
|
231
|
+
readonly restoreConcurrency?: number;
|
|
232
|
+
/** Optional persistence wiring (Audit 4). */
|
|
233
|
+
readonly persistence?: {
|
|
234
|
+
/**
|
|
235
|
+
* Wire the per-process synthetic state event stream to append-log tiers.
|
|
236
|
+
* Reuses `CqrsGraph.attachEventStorage` so events persist across restarts.
|
|
237
|
+
*/
|
|
238
|
+
eventStorage?: readonly AppendLogStorageTier<CqrsEvent>[];
|
|
239
|
+
/**
|
|
240
|
+
* Wire per-correlationId state snapshots to kv tiers (Tier 6.5 3.5,
|
|
241
|
+
* 2026-04-29). Each `start()` and step transition writes the running
|
|
242
|
+
* instance's state under its `correlationId`; terminal transitions
|
|
243
|
+
* (`completed` / `errored` / `cancelled`) `delete` the key. After
|
|
244
|
+
* restart, callers invoke {@link ProcessManagerResult.restore} to
|
|
245
|
+
* reload running instances from the first tier.
|
|
246
|
+
*
|
|
247
|
+
* Uses {@link KvStorageTier} (not snapshot tier) because per-instance
|
|
248
|
+
* state is N records keyed by correlationId, not a single global
|
|
249
|
+
* snapshot. {@link processStateKeyOf} is the recommended `keyOf`
|
|
250
|
+
* (already aligned with the kv tier's `save(key, value)` shape).
|
|
251
|
+
*
|
|
252
|
+
* Terminal records are NOT preserved — historical lifecycle is the
|
|
253
|
+
* audit log's job. State persistence covers crash-recovery only.
|
|
254
|
+
*/
|
|
255
|
+
stateStorage?: readonly KvStorageTier<ProcessStateSnapshot<TState>>[];
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Result handle returned by {@link processManager}.
|
|
260
|
+
*/
|
|
261
|
+
interface ProcessManagerResult<TState> {
|
|
262
|
+
/**
|
|
263
|
+
* Reactive audit log of every process instance state transition.
|
|
264
|
+
* Every `start()`, step result, retry, cancellation, and compensation
|
|
265
|
+
* appends a {@link ProcessInstance} record.
|
|
266
|
+
*/
|
|
267
|
+
readonly instances: ReactiveLogBundle<ProcessInstance<TState>>;
|
|
268
|
+
/**
|
|
269
|
+
* Alias for {@link instances} (Audit 2 `.audit` duplication convention).
|
|
270
|
+
*/
|
|
271
|
+
readonly audit: ReactiveLogBundle<ProcessInstance<TState>>;
|
|
272
|
+
/**
|
|
273
|
+
* Start a new process instance identified by `correlationId`.
|
|
274
|
+
*
|
|
275
|
+
* Emits a synthetic `_process_<name>_started` event into the CQRS graph
|
|
276
|
+
* with `correlationId` as `aggregateId` so per-aggregate streams record
|
|
277
|
+
* the process lifecycle. If the correlationId already has an active
|
|
278
|
+
* (running) instance, this call is a no-op (idempotent).
|
|
279
|
+
*
|
|
280
|
+
* @param correlationId - Stable key for this workflow instance.
|
|
281
|
+
* @param initialPayload - Optional payload carried on the start event.
|
|
282
|
+
*/
|
|
283
|
+
start(correlationId: string, initialPayload?: unknown): void;
|
|
284
|
+
/**
|
|
285
|
+
* Cancel a running instance by correlationId.
|
|
286
|
+
*
|
|
287
|
+
* Triggers the `compensate` handler (if configured), then marks the
|
|
288
|
+
* instance as `"cancelled"`. If the instance is not running, this is
|
|
289
|
+
* a no-op.
|
|
290
|
+
*
|
|
291
|
+
* @param correlationId - Instance to cancel.
|
|
292
|
+
* @param reason - Optional human-readable reason recorded in the audit log.
|
|
293
|
+
*/
|
|
294
|
+
cancel(correlationId: string, reason?: string): void;
|
|
295
|
+
/**
|
|
296
|
+
* Synchronous read of the current in-memory state for a correlationId.
|
|
297
|
+
* Returns `undefined` if the instance does not exist or has terminated.
|
|
298
|
+
*/
|
|
299
|
+
getState(correlationId: string): TState | undefined;
|
|
300
|
+
/**
|
|
301
|
+
* Reactive lifecycle of the restore pipeline. Typed as the central
|
|
302
|
+
* {@link StatusValue} enum (`"pending" | "running" | "completed" | "errored"`);
|
|
303
|
+
* the process-manager restore state machine currently emits the `"pending"`
|
|
304
|
+
* and `"completed"` literals only — `"running"` / `"errored"` reserved
|
|
305
|
+
* for future fine-grained restore observability. Starts at `"pending"`,
|
|
306
|
+
* flips to `"completed"` once snapshot loads complete (or immediately when
|
|
307
|
+
* no `stateStorage` is configured). On {@link dispose}, the node receives
|
|
308
|
+
* TEARDOWN via the standard subgraph teardown cascade — there is no
|
|
309
|
+
* `"disposed"` literal; consumers detect tear-down via subscription
|
|
310
|
+
* COMPLETE on {@link dispose}. Watched events are valve-gated on this
|
|
311
|
+
* node: dispatch is blocked while `restoreState !== "completed"`.
|
|
312
|
+
*
|
|
313
|
+
* Exposed for observability and tests. Subscribers can compose
|
|
314
|
+
* `derived([restoreState], …)` to build their own gates / readouts.
|
|
315
|
+
*/
|
|
316
|
+
readonly restoreState: Node<StatusValue>;
|
|
317
|
+
/**
|
|
318
|
+
* Trigger restoration of running instances from the first
|
|
319
|
+
* {@link ProcessManagerOpts.persistence.stateStorage} tier (Tier 6.5
|
|
320
|
+
* 3.5, 2026-04-29). Loads every record in the tier reactively and
|
|
321
|
+
* re-hydrates `instanceStates` / `activeInstances` / `startedAt` for
|
|
322
|
+
* any record whose `status === "running"`. Terminal records, if any
|
|
323
|
+
* persisted before delete fired, are silently skipped.
|
|
324
|
+
*
|
|
325
|
+
* **Reactive composition (B5 — locked 2026-05-01):** internally,
|
|
326
|
+
* `tier.list()` and `tier.load()` are wrapped in `fromAny` sources
|
|
327
|
+
* (handles sync values, Promises, async iterables, and existing Nodes
|
|
328
|
+
* uniformly per `~/src/graphrefly/COMPOSITION-GUIDE.md` §3 source
|
|
329
|
+
* bridging); a `mergeMap` flattens per-key load results; an `effect`
|
|
330
|
+
* populates closure state and flips {@link restoreState} to
|
|
331
|
+
* `"completed"` on the `COMPLETE` boundary. No `await` inside the
|
|
332
|
+
* reactive interior — the single async boundary is the returned
|
|
333
|
+
* `Promise<void>`, which resolves when {@link restoreState} transitions
|
|
334
|
+
* to `"completed"` OR when {@link dispose} tears down the restore node
|
|
335
|
+
* (in which case `firstWhere`'s COMPLETE-rejection is swallowed and
|
|
336
|
+
* the promise resolves to `undefined`).
|
|
337
|
+
*
|
|
338
|
+
* Idempotent — calling twice subscribes to the same restore pipeline
|
|
339
|
+
* and resolves on the same gate flip. No-op when no `stateStorage`
|
|
340
|
+
* tier is configured OR the first tier lacks a `list?` method:
|
|
341
|
+
* `restoreState` flips to `"completed"` immediately so watches can arm.
|
|
342
|
+
*
|
|
343
|
+
* **Auto-restore default.** With `deferRestore: false` (the default),
|
|
344
|
+
* the factory invokes `restore()` once at construction so callers do
|
|
345
|
+
* not need to remember to wire it. Pass `deferRestore: true` to
|
|
346
|
+
* suppress auto-restore and call `restore()` manually.
|
|
347
|
+
*/
|
|
348
|
+
restore(): Promise<void>;
|
|
349
|
+
/**
|
|
350
|
+
* Release all watched-event subscriptions and stop processing new events.
|
|
351
|
+
*
|
|
352
|
+
* After `dispose()`, subsequent `start()` and `cancel()` calls are no-ops.
|
|
353
|
+
* In-flight async steps complete naturally; no new steps are dispatched.
|
|
354
|
+
*
|
|
355
|
+
* Tears down the {@link restoreState} node via the standard subgraph
|
|
356
|
+
* teardown cascade. Any pending `restore()` Promise resolves (the
|
|
357
|
+
* COMPLETE-rejection from `firstWhere` is swallowed at the API edge);
|
|
358
|
+
* the watch valve closes via TEARDOWN propagation; no further dispatch
|
|
359
|
+
* even if a `fromAny(tier.load…)` would resolve later (the per-key
|
|
360
|
+
* load source's cleanup sets `settled = true`, dropping the late DATA).
|
|
361
|
+
*/
|
|
362
|
+
dispose(): void;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Create a process manager that coordinates long-running reactive workflows
|
|
366
|
+
* over a {@link CqrsGraph}.
|
|
367
|
+
*
|
|
368
|
+
* Process instances are identified by `correlationId`. Events from the watched
|
|
369
|
+
* event types are routed to per-instance step handlers when the event's
|
|
370
|
+
* `correlationId` matches a running instance.
|
|
371
|
+
*
|
|
372
|
+
* ```ts
|
|
373
|
+
* const app = cqrs<{ orderPlaced: { orderId: string }; paymentReceived: { amount: number } }>("orders");
|
|
374
|
+
*
|
|
375
|
+
* const pm = processManager(app, "fulfillment", {
|
|
376
|
+
* initial: { step: "awaiting-payment", total: 0 },
|
|
377
|
+
* watching: ["orderPlaced", "paymentReceived"],
|
|
378
|
+
* steps: {
|
|
379
|
+
* orderPlaced(state, event) {
|
|
380
|
+
* return { outcome: "success", state: { ...state, orderId: event.payload.orderId } };
|
|
381
|
+
* },
|
|
382
|
+
* paymentReceived(state, event) {
|
|
383
|
+
* return { outcome: "terminate", state: { ...state, total: event.payload.amount } };
|
|
384
|
+
* },
|
|
385
|
+
* },
|
|
386
|
+
* compensate(state, _error) {
|
|
387
|
+
* // undo reservation, issue refund, etc.
|
|
388
|
+
* },
|
|
389
|
+
* retryMax: 2,
|
|
390
|
+
* backoffMs: [100, 500],
|
|
391
|
+
* });
|
|
392
|
+
*
|
|
393
|
+
* pm.start("order-123");
|
|
394
|
+
* app.dispatch("orderPlaced", { orderId: "order-123" }, { correlationId: "order-123" });
|
|
395
|
+
* ```
|
|
396
|
+
*
|
|
397
|
+
* @param cqrsGraph - The CQRS graph whose event streams the manager watches.
|
|
398
|
+
* @param name - Stable identifier for this process type; used for the
|
|
399
|
+
* synthetic event-type prefix `_process_<name>_*`. Currently emits
|
|
400
|
+
* `_process_<name>_started` per `start()`; the prefix is reserved for
|
|
401
|
+
* future `_state` / `_timer` channels.
|
|
402
|
+
* @param opts - Configuration: initial state, watched events, steps, retry,
|
|
403
|
+
* compensation, and optional persistence.
|
|
404
|
+
* @returns {@link ProcessManagerResult} with `instances` audit log and
|
|
405
|
+
* `start`, `cancel`, `getState` imperative controls.
|
|
406
|
+
*
|
|
407
|
+
* @category patterns
|
|
408
|
+
*/
|
|
409
|
+
declare function processManager<TState, EM extends CqrsEventMap = Record<string, unknown>>(cqrsGraph: CqrsGraph<EM>, name: string, opts: ProcessManagerOpts<TState, EM>): ProcessManagerResult<TState>;
|
|
410
|
+
|
|
411
|
+
export { type ProcessCompensate, type ProcessInstance, type ProcessManagerOpts, type ProcessManagerResult, type ProcessSchedule, type ProcessStateSnapshot, type ProcessStep, type ProcessStepResult, processInstanceKeyOf, processManager, processStateKeyOf };
|