@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,205 @@
|
|
|
1
|
+
import { Node } from '@graphrefly/pure-ts/core';
|
|
2
|
+
import { Graph, GraphOptions } from '@graphrefly/pure-ts/graph';
|
|
3
|
+
import { N as NodeOrValue } from '../../_internal-B23BagFd.cjs';
|
|
4
|
+
import { c as RetryState, b as RetryOptions } from '../../retry-DWuhjvsA.cjs';
|
|
5
|
+
import { S as StatusValue } from '../../status-U-rUI79b.cjs';
|
|
6
|
+
import { k as TimeoutState, h as RateLimiterState, e as RateLimiterOptions, B as BudgetConstraint, F as FallbackInput } from '../../rate-limiter-DpVbSYdH.cjs';
|
|
7
|
+
import { B as BreakerState, a as CircuitBreakerOptions } from '../../breaker-ugSdq54q.cjs';
|
|
8
|
+
import '../../backoff-Bnb9OoPh.cjs';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Resilience composition with correct nesting order (roadmap §9.0b — Tier 5.2 Wave-B rebuild).
|
|
12
|
+
*
|
|
13
|
+
* {@link resilientPipeline} composes the resilience primitives from
|
|
14
|
+
* `extra/resilience/` in the canonical nesting order:
|
|
15
|
+
*
|
|
16
|
+
* ```text
|
|
17
|
+
* rateLimit → budget → breaker → timeout → retry → fallback → status
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* Returns a {@link ResilientPipelineGraph} (Graph subclass) with mounted
|
|
21
|
+
* intermediate nodes and per-layer status companions, replacing the prior
|
|
22
|
+
* bundle return. Each intermediate is mounted under a stable name so
|
|
23
|
+
* `pipeline.describe()` shows the resilience chain in topology snapshots,
|
|
24
|
+
* mermaid renders, and `lens.health` aggregations.
|
|
25
|
+
*
|
|
26
|
+
* **Per-attempt timeout vs. retry ordering.** `timeout` is applied BEFORE
|
|
27
|
+
* `retry` so each retry attempt resubscribes to a fresh deadline (per-attempt
|
|
28
|
+
* semantics). If `timeout` wrapped `retry`, a single deadline would apply to
|
|
29
|
+
* the entire retry chain — not what callers expect.
|
|
30
|
+
*
|
|
31
|
+
* **`breakerOnOpen` + `retry` interaction.** With `breakerOnOpen: "error"` AND
|
|
32
|
+
* `retry`, retry sees `CircuitOpenError` and resubscribes; the next attempt
|
|
33
|
+
* very likely also breaker-open → another error → retry burns its budget
|
|
34
|
+
* against an open circuit. Either set retry's `backoff` long enough for the
|
|
35
|
+
* breaker reset window OR keep the default `breakerOnOpen: "skip"` (emits
|
|
36
|
+
* RESOLVED when open; downstream drops the beat without retry firing).
|
|
37
|
+
*
|
|
38
|
+
* **Reactive options (switchMap rebuild).** Every primitive option accepts a
|
|
39
|
+
* `T | Node<T>` (precedent-aligned with `FallbackInput<T>`). When the caller
|
|
40
|
+
* supplies a static value, the layer is built once at construction. When the
|
|
41
|
+
* caller supplies a `Node<T>`, the pipeline subscribes via `switchMap` and
|
|
42
|
+
* **rebuilds the layer on every option emission** — the chain stalls until
|
|
43
|
+
* the option Node emits its first DATA. Each rebuild creates a fresh
|
|
44
|
+
* primitive instance, so internal state is lost (rate-limiter pending buffer,
|
|
45
|
+
* breaker failure count, retry attempt count, in-flight timeout). Per-layer
|
|
46
|
+
* **companion Nodes** (`droppedCount`, `rateLimitState`, `breakerState`) are
|
|
47
|
+
* therefore exposed ONLY for the static-options path. Primitive-side widening
|
|
48
|
+
* (filed in `docs/optimizations.md` under "Tier 5.2 follow-up — primitive-side
|
|
49
|
+
* reactive-options widening") will preserve internal state once it lands and
|
|
50
|
+
* the pipeline will trivially forward Node-form options to the primitive.
|
|
51
|
+
*
|
|
52
|
+
* @module
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Options for {@link resilientPipeline}. Every layer is optional — omit a
|
|
57
|
+
* field and that layer is skipped.
|
|
58
|
+
*
|
|
59
|
+
* Reactive (`Node<T>`) forms are accepted everywhere a primitive value would
|
|
60
|
+
* fit; the pipeline subscribes via `switchMap` and rebuilds the layer on each
|
|
61
|
+
* emission. See module JSDoc for the rebuild semantics + state-loss caveat.
|
|
62
|
+
*/
|
|
63
|
+
interface ResilientPipelineOptions<T> {
|
|
64
|
+
/**
|
|
65
|
+
* Admission control — at most `maxEvents` `DATA` per `windowNs`. See
|
|
66
|
+
* {@link rateLimiter}.
|
|
67
|
+
*
|
|
68
|
+
* `maxBuffer` is optional at the pipeline layer (defaults to `Infinity`,
|
|
69
|
+
* preserving the historical unbounded behavior). Pass an explicit positive
|
|
70
|
+
* integer to opt in to a bounded queue.
|
|
71
|
+
*/
|
|
72
|
+
rateLimit?: NodeOrValue<Omit<RateLimiterOptions, "maxBuffer"> & {
|
|
73
|
+
maxBuffer?: number;
|
|
74
|
+
}>;
|
|
75
|
+
/** Cost/constraint gate. See {@link budgetGate}. */
|
|
76
|
+
budget?: NodeOrValue<ReadonlyArray<BudgetConstraint>>;
|
|
77
|
+
/** Circuit breaker — fail-fast when the downstream resource is unhealthy. See {@link circuitBreaker}. */
|
|
78
|
+
breaker?: NodeOrValue<CircuitBreakerOptions>;
|
|
79
|
+
/**
|
|
80
|
+
* Behavior when the breaker is open:
|
|
81
|
+
* - `"skip"` (default) — emit `RESOLVED` (lets downstream drop the beat).
|
|
82
|
+
* - `"error"` — emit a `CircuitOpenError` so `retry` / `fallback` can react.
|
|
83
|
+
* See module JSDoc for the retry-budget burn caveat.
|
|
84
|
+
*
|
|
85
|
+
* Static (configuration-only — no reactive form).
|
|
86
|
+
*/
|
|
87
|
+
breakerOnOpen?: "skip" | "error";
|
|
88
|
+
/** Retry policy on terminal `ERROR`. See {@link retry}. */
|
|
89
|
+
retry?: NodeOrValue<RetryOptions>;
|
|
90
|
+
/**
|
|
91
|
+
* Per-attempt deadline in milliseconds. Converted to ns internally. Omit
|
|
92
|
+
* to skip the timeout wrap.
|
|
93
|
+
*
|
|
94
|
+
* Specified in ms (not ns) because callers consistently think in
|
|
95
|
+
* millisecond deadlines; the underlying {@link timeout} primitive takes ns
|
|
96
|
+
* internally.
|
|
97
|
+
*/
|
|
98
|
+
timeoutMs?: NodeOrValue<number>;
|
|
99
|
+
/** Final fallback value emitted on terminal `ERROR` after retry exhausts. See {@link fallback}. */
|
|
100
|
+
fallback?: FallbackInput<T>;
|
|
101
|
+
/**
|
|
102
|
+
* Initial status reported by the status node. Default `"pending"`. Static.
|
|
103
|
+
*/
|
|
104
|
+
initialStatus?: StatusValue;
|
|
105
|
+
/** Wrapper graph name. Default `"resilient_pipeline"`. */
|
|
106
|
+
name?: string;
|
|
107
|
+
/** Wrapper graph options. */
|
|
108
|
+
graph?: GraphOptions;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Graph subclass returned by {@link resilientPipeline}. Mounts each
|
|
112
|
+
* configured intermediate under a stable name and exposes per-layer status
|
|
113
|
+
* companions.
|
|
114
|
+
*
|
|
115
|
+
* @category patterns
|
|
116
|
+
*/
|
|
117
|
+
declare class ResilientPipelineGraph<T> extends Graph {
|
|
118
|
+
/**
|
|
119
|
+
* Final resilient node — subscribe to this for `DATA` emissions.
|
|
120
|
+
*
|
|
121
|
+
* Named `output` (not `node`) because `Graph.node(name)` already names the
|
|
122
|
+
* path-resolution method on the base class; a `readonly node` field would
|
|
123
|
+
* shadow it.
|
|
124
|
+
*/
|
|
125
|
+
readonly output: Node<T>;
|
|
126
|
+
/** Live status: `"pending" | "running" | "completed" | "errored"`. */
|
|
127
|
+
readonly status: Node<StatusValue>;
|
|
128
|
+
/**
|
|
129
|
+
* Last error payload, or `null` when not errored.
|
|
130
|
+
*
|
|
131
|
+
* Named `lastError` (not `error`) because `Graph.error(name, err)` already
|
|
132
|
+
* names a method on the base class.
|
|
133
|
+
*/
|
|
134
|
+
readonly lastError: Node<unknown | null>;
|
|
135
|
+
/** Breaker state when `opts.breaker` is provided; `undefined` otherwise. */
|
|
136
|
+
readonly breakerState: Node<BreakerState> | undefined;
|
|
137
|
+
/**
|
|
138
|
+
* Timeout state companion when `opts.timeoutMs` is supplied as a
|
|
139
|
+
* `Node<Partial<TimeoutOptions>>`-like form; `undefined` otherwise
|
|
140
|
+
* (DS-13.5.B forwarding contract — Node-form opts skip the switchMap
|
|
141
|
+
* rebuild and lift the primitive's lifecycle companion onto the
|
|
142
|
+
* pipeline bundle).
|
|
143
|
+
*/
|
|
144
|
+
readonly timeoutState: Node<TimeoutState> | undefined;
|
|
145
|
+
/**
|
|
146
|
+
* Retry state companion when `opts.retry` is supplied as a
|
|
147
|
+
* `Node<RetryOptions>`-like form; `undefined` otherwise
|
|
148
|
+
* (DS-13.5.B forwarding contract).
|
|
149
|
+
*/
|
|
150
|
+
readonly retryState: Node<RetryState> | undefined;
|
|
151
|
+
/**
|
|
152
|
+
* Drop-counter when `opts.rateLimit` is provided; `undefined` otherwise.
|
|
153
|
+
*
|
|
154
|
+
* **Lifetime note:** `droppedCount` retains its final value through
|
|
155
|
+
* terminal (`COMPLETE` / `ERROR` / `TEARDOWN`); the underlying counter
|
|
156
|
+
* resets to `0` only at the next subscription cycle.
|
|
157
|
+
*/
|
|
158
|
+
readonly droppedCount: Node<number> | undefined;
|
|
159
|
+
/**
|
|
160
|
+
* Combined rate-limit state when `opts.rateLimit` is provided; `undefined`
|
|
161
|
+
* otherwise. Same lifecycle as {@link droppedCount} but exposes
|
|
162
|
+
* `pendingCount` and `paused` alongside the drop counter for richer
|
|
163
|
+
* backpressure observability (Tier 5.2 D7).
|
|
164
|
+
*/
|
|
165
|
+
readonly rateLimitState: Node<RateLimiterState> | undefined;
|
|
166
|
+
constructor(source: Node<T>, opts?: ResilientPipelineOptions<T>);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Compose a resilient pipeline around `source` in the canonical nesting
|
|
170
|
+
* order — `rateLimit → budget → breaker → timeout → retry → fallback → status`.
|
|
171
|
+
* Omit any option to skip that layer.
|
|
172
|
+
*
|
|
173
|
+
* Returns a {@link ResilientPipelineGraph} (Graph subclass) —
|
|
174
|
+
* `pipeline.output` is the externally visible final node; `pipeline.status`
|
|
175
|
+
* / `pipeline.lastError` / `pipeline.breakerState` / `pipeline.droppedCount`
|
|
176
|
+
* are the per-layer companions. Call `pipeline.describe()` to see the
|
|
177
|
+
* mounted intermediates; compose with {@link graphLens}'s `health` for
|
|
178
|
+
* aggregate status.
|
|
179
|
+
*
|
|
180
|
+
* **Naming note:** `output` and `lastError` (not `node` / `error`) avoid
|
|
181
|
+
* clashes with `Graph.node(name)` and `Graph.error(name, err)` on the base
|
|
182
|
+
* class.
|
|
183
|
+
*
|
|
184
|
+
* @param source - Upstream node to wrap.
|
|
185
|
+
* @param opts - See {@link ResilientPipelineOptions}. All fields optional.
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* ```ts
|
|
189
|
+
* const safeFetch = resilientPipeline(fetchNode, {
|
|
190
|
+
* rateLimit: { maxEvents: 10, windowNs: NS_PER_SEC },
|
|
191
|
+
* breaker: { failureThreshold: 5 },
|
|
192
|
+
* retry: { count: 3, backoff: "exponential" },
|
|
193
|
+
* timeoutMs: 10_000,
|
|
194
|
+
* fallback: null,
|
|
195
|
+
* });
|
|
196
|
+
* safeFetch.output.subscribe(msgs => console.log(msgs));
|
|
197
|
+
* safeFetch.status.subscribe(msgs => console.log(msgs));
|
|
198
|
+
* graphSpecToAscii(safeFetch.describe()); // visualize the chain
|
|
199
|
+
* ```
|
|
200
|
+
*
|
|
201
|
+
* @category patterns
|
|
202
|
+
*/
|
|
203
|
+
declare function resilientPipeline<T>(source: Node<T>, opts?: ResilientPipelineOptions<T>): ResilientPipelineGraph<T>;
|
|
204
|
+
|
|
205
|
+
export { ResilientPipelineGraph, type ResilientPipelineOptions, resilientPipeline };
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { Node } from '@graphrefly/pure-ts/core';
|
|
2
|
+
import { Graph, GraphOptions } from '@graphrefly/pure-ts/graph';
|
|
3
|
+
import { N as NodeOrValue } from '../../_internal-B23BagFd.js';
|
|
4
|
+
import { c as RetryState, b as RetryOptions } from '../../retry-BDbRZ_gx.js';
|
|
5
|
+
import { S as StatusValue } from '../../status-U-rUI79b.js';
|
|
6
|
+
import { k as TimeoutState, h as RateLimiterState, e as RateLimiterOptions, B as BudgetConstraint, F as FallbackInput } from '../../rate-limiter-CEALq4N1.js';
|
|
7
|
+
import { B as BreakerState, a as CircuitBreakerOptions } from '../../breaker-C9skL3d8.js';
|
|
8
|
+
import '../../backoff-Bnb9OoPh.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Resilience composition with correct nesting order (roadmap §9.0b — Tier 5.2 Wave-B rebuild).
|
|
12
|
+
*
|
|
13
|
+
* {@link resilientPipeline} composes the resilience primitives from
|
|
14
|
+
* `extra/resilience/` in the canonical nesting order:
|
|
15
|
+
*
|
|
16
|
+
* ```text
|
|
17
|
+
* rateLimit → budget → breaker → timeout → retry → fallback → status
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* Returns a {@link ResilientPipelineGraph} (Graph subclass) with mounted
|
|
21
|
+
* intermediate nodes and per-layer status companions, replacing the prior
|
|
22
|
+
* bundle return. Each intermediate is mounted under a stable name so
|
|
23
|
+
* `pipeline.describe()` shows the resilience chain in topology snapshots,
|
|
24
|
+
* mermaid renders, and `lens.health` aggregations.
|
|
25
|
+
*
|
|
26
|
+
* **Per-attempt timeout vs. retry ordering.** `timeout` is applied BEFORE
|
|
27
|
+
* `retry` so each retry attempt resubscribes to a fresh deadline (per-attempt
|
|
28
|
+
* semantics). If `timeout` wrapped `retry`, a single deadline would apply to
|
|
29
|
+
* the entire retry chain — not what callers expect.
|
|
30
|
+
*
|
|
31
|
+
* **`breakerOnOpen` + `retry` interaction.** With `breakerOnOpen: "error"` AND
|
|
32
|
+
* `retry`, retry sees `CircuitOpenError` and resubscribes; the next attempt
|
|
33
|
+
* very likely also breaker-open → another error → retry burns its budget
|
|
34
|
+
* against an open circuit. Either set retry's `backoff` long enough for the
|
|
35
|
+
* breaker reset window OR keep the default `breakerOnOpen: "skip"` (emits
|
|
36
|
+
* RESOLVED when open; downstream drops the beat without retry firing).
|
|
37
|
+
*
|
|
38
|
+
* **Reactive options (switchMap rebuild).** Every primitive option accepts a
|
|
39
|
+
* `T | Node<T>` (precedent-aligned with `FallbackInput<T>`). When the caller
|
|
40
|
+
* supplies a static value, the layer is built once at construction. When the
|
|
41
|
+
* caller supplies a `Node<T>`, the pipeline subscribes via `switchMap` and
|
|
42
|
+
* **rebuilds the layer on every option emission** — the chain stalls until
|
|
43
|
+
* the option Node emits its first DATA. Each rebuild creates a fresh
|
|
44
|
+
* primitive instance, so internal state is lost (rate-limiter pending buffer,
|
|
45
|
+
* breaker failure count, retry attempt count, in-flight timeout). Per-layer
|
|
46
|
+
* **companion Nodes** (`droppedCount`, `rateLimitState`, `breakerState`) are
|
|
47
|
+
* therefore exposed ONLY for the static-options path. Primitive-side widening
|
|
48
|
+
* (filed in `docs/optimizations.md` under "Tier 5.2 follow-up — primitive-side
|
|
49
|
+
* reactive-options widening") will preserve internal state once it lands and
|
|
50
|
+
* the pipeline will trivially forward Node-form options to the primitive.
|
|
51
|
+
*
|
|
52
|
+
* @module
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Options for {@link resilientPipeline}. Every layer is optional — omit a
|
|
57
|
+
* field and that layer is skipped.
|
|
58
|
+
*
|
|
59
|
+
* Reactive (`Node<T>`) forms are accepted everywhere a primitive value would
|
|
60
|
+
* fit; the pipeline subscribes via `switchMap` and rebuilds the layer on each
|
|
61
|
+
* emission. See module JSDoc for the rebuild semantics + state-loss caveat.
|
|
62
|
+
*/
|
|
63
|
+
interface ResilientPipelineOptions<T> {
|
|
64
|
+
/**
|
|
65
|
+
* Admission control — at most `maxEvents` `DATA` per `windowNs`. See
|
|
66
|
+
* {@link rateLimiter}.
|
|
67
|
+
*
|
|
68
|
+
* `maxBuffer` is optional at the pipeline layer (defaults to `Infinity`,
|
|
69
|
+
* preserving the historical unbounded behavior). Pass an explicit positive
|
|
70
|
+
* integer to opt in to a bounded queue.
|
|
71
|
+
*/
|
|
72
|
+
rateLimit?: NodeOrValue<Omit<RateLimiterOptions, "maxBuffer"> & {
|
|
73
|
+
maxBuffer?: number;
|
|
74
|
+
}>;
|
|
75
|
+
/** Cost/constraint gate. See {@link budgetGate}. */
|
|
76
|
+
budget?: NodeOrValue<ReadonlyArray<BudgetConstraint>>;
|
|
77
|
+
/** Circuit breaker — fail-fast when the downstream resource is unhealthy. See {@link circuitBreaker}. */
|
|
78
|
+
breaker?: NodeOrValue<CircuitBreakerOptions>;
|
|
79
|
+
/**
|
|
80
|
+
* Behavior when the breaker is open:
|
|
81
|
+
* - `"skip"` (default) — emit `RESOLVED` (lets downstream drop the beat).
|
|
82
|
+
* - `"error"` — emit a `CircuitOpenError` so `retry` / `fallback` can react.
|
|
83
|
+
* See module JSDoc for the retry-budget burn caveat.
|
|
84
|
+
*
|
|
85
|
+
* Static (configuration-only — no reactive form).
|
|
86
|
+
*/
|
|
87
|
+
breakerOnOpen?: "skip" | "error";
|
|
88
|
+
/** Retry policy on terminal `ERROR`. See {@link retry}. */
|
|
89
|
+
retry?: NodeOrValue<RetryOptions>;
|
|
90
|
+
/**
|
|
91
|
+
* Per-attempt deadline in milliseconds. Converted to ns internally. Omit
|
|
92
|
+
* to skip the timeout wrap.
|
|
93
|
+
*
|
|
94
|
+
* Specified in ms (not ns) because callers consistently think in
|
|
95
|
+
* millisecond deadlines; the underlying {@link timeout} primitive takes ns
|
|
96
|
+
* internally.
|
|
97
|
+
*/
|
|
98
|
+
timeoutMs?: NodeOrValue<number>;
|
|
99
|
+
/** Final fallback value emitted on terminal `ERROR` after retry exhausts. See {@link fallback}. */
|
|
100
|
+
fallback?: FallbackInput<T>;
|
|
101
|
+
/**
|
|
102
|
+
* Initial status reported by the status node. Default `"pending"`. Static.
|
|
103
|
+
*/
|
|
104
|
+
initialStatus?: StatusValue;
|
|
105
|
+
/** Wrapper graph name. Default `"resilient_pipeline"`. */
|
|
106
|
+
name?: string;
|
|
107
|
+
/** Wrapper graph options. */
|
|
108
|
+
graph?: GraphOptions;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Graph subclass returned by {@link resilientPipeline}. Mounts each
|
|
112
|
+
* configured intermediate under a stable name and exposes per-layer status
|
|
113
|
+
* companions.
|
|
114
|
+
*
|
|
115
|
+
* @category patterns
|
|
116
|
+
*/
|
|
117
|
+
declare class ResilientPipelineGraph<T> extends Graph {
|
|
118
|
+
/**
|
|
119
|
+
* Final resilient node — subscribe to this for `DATA` emissions.
|
|
120
|
+
*
|
|
121
|
+
* Named `output` (not `node`) because `Graph.node(name)` already names the
|
|
122
|
+
* path-resolution method on the base class; a `readonly node` field would
|
|
123
|
+
* shadow it.
|
|
124
|
+
*/
|
|
125
|
+
readonly output: Node<T>;
|
|
126
|
+
/** Live status: `"pending" | "running" | "completed" | "errored"`. */
|
|
127
|
+
readonly status: Node<StatusValue>;
|
|
128
|
+
/**
|
|
129
|
+
* Last error payload, or `null` when not errored.
|
|
130
|
+
*
|
|
131
|
+
* Named `lastError` (not `error`) because `Graph.error(name, err)` already
|
|
132
|
+
* names a method on the base class.
|
|
133
|
+
*/
|
|
134
|
+
readonly lastError: Node<unknown | null>;
|
|
135
|
+
/** Breaker state when `opts.breaker` is provided; `undefined` otherwise. */
|
|
136
|
+
readonly breakerState: Node<BreakerState> | undefined;
|
|
137
|
+
/**
|
|
138
|
+
* Timeout state companion when `opts.timeoutMs` is supplied as a
|
|
139
|
+
* `Node<Partial<TimeoutOptions>>`-like form; `undefined` otherwise
|
|
140
|
+
* (DS-13.5.B forwarding contract — Node-form opts skip the switchMap
|
|
141
|
+
* rebuild and lift the primitive's lifecycle companion onto the
|
|
142
|
+
* pipeline bundle).
|
|
143
|
+
*/
|
|
144
|
+
readonly timeoutState: Node<TimeoutState> | undefined;
|
|
145
|
+
/**
|
|
146
|
+
* Retry state companion when `opts.retry` is supplied as a
|
|
147
|
+
* `Node<RetryOptions>`-like form; `undefined` otherwise
|
|
148
|
+
* (DS-13.5.B forwarding contract).
|
|
149
|
+
*/
|
|
150
|
+
readonly retryState: Node<RetryState> | undefined;
|
|
151
|
+
/**
|
|
152
|
+
* Drop-counter when `opts.rateLimit` is provided; `undefined` otherwise.
|
|
153
|
+
*
|
|
154
|
+
* **Lifetime note:** `droppedCount` retains its final value through
|
|
155
|
+
* terminal (`COMPLETE` / `ERROR` / `TEARDOWN`); the underlying counter
|
|
156
|
+
* resets to `0` only at the next subscription cycle.
|
|
157
|
+
*/
|
|
158
|
+
readonly droppedCount: Node<number> | undefined;
|
|
159
|
+
/**
|
|
160
|
+
* Combined rate-limit state when `opts.rateLimit` is provided; `undefined`
|
|
161
|
+
* otherwise. Same lifecycle as {@link droppedCount} but exposes
|
|
162
|
+
* `pendingCount` and `paused` alongside the drop counter for richer
|
|
163
|
+
* backpressure observability (Tier 5.2 D7).
|
|
164
|
+
*/
|
|
165
|
+
readonly rateLimitState: Node<RateLimiterState> | undefined;
|
|
166
|
+
constructor(source: Node<T>, opts?: ResilientPipelineOptions<T>);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Compose a resilient pipeline around `source` in the canonical nesting
|
|
170
|
+
* order — `rateLimit → budget → breaker → timeout → retry → fallback → status`.
|
|
171
|
+
* Omit any option to skip that layer.
|
|
172
|
+
*
|
|
173
|
+
* Returns a {@link ResilientPipelineGraph} (Graph subclass) —
|
|
174
|
+
* `pipeline.output` is the externally visible final node; `pipeline.status`
|
|
175
|
+
* / `pipeline.lastError` / `pipeline.breakerState` / `pipeline.droppedCount`
|
|
176
|
+
* are the per-layer companions. Call `pipeline.describe()` to see the
|
|
177
|
+
* mounted intermediates; compose with {@link graphLens}'s `health` for
|
|
178
|
+
* aggregate status.
|
|
179
|
+
*
|
|
180
|
+
* **Naming note:** `output` and `lastError` (not `node` / `error`) avoid
|
|
181
|
+
* clashes with `Graph.node(name)` and `Graph.error(name, err)` on the base
|
|
182
|
+
* class.
|
|
183
|
+
*
|
|
184
|
+
* @param source - Upstream node to wrap.
|
|
185
|
+
* @param opts - See {@link ResilientPipelineOptions}. All fields optional.
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* ```ts
|
|
189
|
+
* const safeFetch = resilientPipeline(fetchNode, {
|
|
190
|
+
* rateLimit: { maxEvents: 10, windowNs: NS_PER_SEC },
|
|
191
|
+
* breaker: { failureThreshold: 5 },
|
|
192
|
+
* retry: { count: 3, backoff: "exponential" },
|
|
193
|
+
* timeoutMs: 10_000,
|
|
194
|
+
* fallback: null,
|
|
195
|
+
* });
|
|
196
|
+
* safeFetch.output.subscribe(msgs => console.log(msgs));
|
|
197
|
+
* safeFetch.status.subscribe(msgs => console.log(msgs));
|
|
198
|
+
* graphSpecToAscii(safeFetch.describe()); // visualize the chain
|
|
199
|
+
* ```
|
|
200
|
+
*
|
|
201
|
+
* @category patterns
|
|
202
|
+
*/
|
|
203
|
+
declare function resilientPipeline<T>(source: Node<T>, opts?: ResilientPipelineOptions<T>): ResilientPipelineGraph<T>;
|
|
204
|
+
|
|
205
|
+
export { ResilientPipelineGraph, type ResilientPipelineOptions, resilientPipeline };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import "../../chunk-KRNQ6RGQ.js";
|
|
2
|
+
import {
|
|
3
|
+
ResilientPipelineGraph,
|
|
4
|
+
resilientPipeline
|
|
5
|
+
} from "../../chunk-6XZYT4SW.js";
|
|
6
|
+
import "../../chunk-RJOG4IJU.js";
|
|
7
|
+
import "../../chunk-RAGGHLCV.js";
|
|
8
|
+
import "../../chunk-FMPF42Q4.js";
|
|
9
|
+
import "../../chunk-Y52CS6YA.js";
|
|
10
|
+
import "../../chunk-Z4YXAUDN.js";
|
|
11
|
+
import "../../chunk-TSBFTJKM.js";
|
|
12
|
+
import "../../chunk-P5LBT622.js";
|
|
13
|
+
import "../../chunk-AZDQPQ3V.js";
|
|
14
|
+
export {
|
|
15
|
+
ResilientPipelineGraph,
|
|
16
|
+
resilientPipeline
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|