@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
|
@@ -3,6 +3,10 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
6
10
|
var __copyProps = (to, from, except, desc) => {
|
|
7
11
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
12
|
for (let key of __getOwnPropNames(from))
|
|
@@ -11,11 +15,105 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
11
15
|
}
|
|
12
16
|
return to;
|
|
13
17
|
};
|
|
14
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
19
|
|
|
17
20
|
// src/compat/vue/index.ts
|
|
18
21
|
var vue_exports = {};
|
|
22
|
+
__export(vue_exports, {
|
|
23
|
+
useStore: () => useStore,
|
|
24
|
+
useSubscribe: () => useSubscribe,
|
|
25
|
+
useSubscribeRecord: () => useSubscribeRecord
|
|
26
|
+
});
|
|
19
27
|
module.exports = __toCommonJS(vue_exports);
|
|
20
|
-
|
|
28
|
+
var import_core = require("@graphrefly/pure-ts/core");
|
|
29
|
+
var import_vue = require("vue");
|
|
30
|
+
function useSubscribe(node) {
|
|
31
|
+
const ref = (0, import_vue.shallowRef)(node.cache);
|
|
32
|
+
const unsub = node.subscribe(() => {
|
|
33
|
+
ref.value = node.cache;
|
|
34
|
+
});
|
|
35
|
+
if ((0, import_vue.getCurrentScope)()) {
|
|
36
|
+
(0, import_vue.onScopeDispose)(() => unsub());
|
|
37
|
+
} else if (typeof console !== "undefined") {
|
|
38
|
+
console.warn(
|
|
39
|
+
"[graphrefly-ts] useSubscribe called outside a Vue scope \u2014 subscription will not be auto-disposed."
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
return (0, import_vue.readonly)(ref);
|
|
43
|
+
}
|
|
44
|
+
function useStore(node) {
|
|
45
|
+
const inner = (0, import_vue.shallowRef)(node.cache);
|
|
46
|
+
const unsub = node.subscribe(() => {
|
|
47
|
+
inner.value = node.cache;
|
|
48
|
+
});
|
|
49
|
+
if ((0, import_vue.getCurrentScope)()) {
|
|
50
|
+
(0, import_vue.onScopeDispose)(() => unsub());
|
|
51
|
+
} else if (typeof console !== "undefined") {
|
|
52
|
+
console.warn(
|
|
53
|
+
"[graphrefly-ts] useStore called outside a Vue scope \u2014 subscription will not be auto-disposed."
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
return (0, import_vue.computed)({
|
|
57
|
+
get: () => inner.value,
|
|
58
|
+
set: (v) => {
|
|
59
|
+
node.down([[import_core.DIRTY], [import_core.DATA, v]]);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function useSubscribeRecord(keys, factory) {
|
|
64
|
+
const result = (0, import_vue.shallowRef)({});
|
|
65
|
+
const activeSubs = /* @__PURE__ */ new Map();
|
|
66
|
+
function flushResult() {
|
|
67
|
+
const snap = {};
|
|
68
|
+
for (const [key, entry] of activeSubs) {
|
|
69
|
+
snap[key] = { ...entry.values };
|
|
70
|
+
}
|
|
71
|
+
result.value = snap;
|
|
72
|
+
}
|
|
73
|
+
function sync(newKeys) {
|
|
74
|
+
for (const entry of activeSubs.values()) {
|
|
75
|
+
for (const unsub of entry.subs) unsub();
|
|
76
|
+
}
|
|
77
|
+
activeSubs.clear();
|
|
78
|
+
for (const key of newKeys) {
|
|
79
|
+
const nodes = factory(key);
|
|
80
|
+
const fields = Object.keys(nodes);
|
|
81
|
+
const values = {};
|
|
82
|
+
const subs = [];
|
|
83
|
+
for (const field of fields) {
|
|
84
|
+
const node = nodes[field];
|
|
85
|
+
values[field] = node.cache;
|
|
86
|
+
const unsub = node.subscribe(() => {
|
|
87
|
+
values[field] = node.cache;
|
|
88
|
+
flushResult();
|
|
89
|
+
});
|
|
90
|
+
subs.push(unsub);
|
|
91
|
+
}
|
|
92
|
+
activeSubs.set(key, { subs, values });
|
|
93
|
+
}
|
|
94
|
+
const snap = {};
|
|
95
|
+
for (const [key, entry] of activeSubs) {
|
|
96
|
+
snap[key] = { ...entry.values };
|
|
97
|
+
}
|
|
98
|
+
result.value = snap;
|
|
99
|
+
}
|
|
100
|
+
const readKeys = () => {
|
|
101
|
+
const current = typeof keys === "function" ? keys() : (0, import_vue.isRef)(keys) ? keys.value : keys;
|
|
102
|
+
return [...current ?? []];
|
|
103
|
+
};
|
|
104
|
+
(0, import_vue.watch)(readKeys, (newKeys) => sync(newKeys ?? []), { immediate: true });
|
|
105
|
+
if ((0, import_vue.getCurrentScope)()) {
|
|
106
|
+
(0, import_vue.onScopeDispose)(() => {
|
|
107
|
+
for (const entry of activeSubs.values()) {
|
|
108
|
+
for (const unsub of entry.subs) unsub();
|
|
109
|
+
}
|
|
110
|
+
activeSubs.clear();
|
|
111
|
+
});
|
|
112
|
+
} else if (typeof console !== "undefined") {
|
|
113
|
+
console.warn(
|
|
114
|
+
"[graphrefly-ts] useSubscribeRecord called outside a Vue scope \u2014 subscription will not be auto-disposed."
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
return (0, import_vue.readonly)(result);
|
|
118
|
+
}
|
|
21
119
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/compat/vue/index.ts"],"sourcesContent":["//
|
|
1
|
+
{"version":3,"sources":["../../../src/compat/vue/index.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// Vue bindings — useStore / useSubscribe\n// ---------------------------------------------------------------------------\n// Bridges GraphReFly nodes into Vue reactivity. Works with any\n// Node<T>, including companion nodes (node.meta.status).\n//\n// Usage:\n// import { useStore, useSubscribe } from '@graphrefly/graphrefly-ts/compat/vue';\n// // Optional peer install (only for this adapter): pnpm add vue\n// const count = useStore(counterNode); // Ref<number | undefined> (read + write)\n// const status = useSubscribe(wsStatusNode); // Readonly<Ref<string | undefined>>\n// ---------------------------------------------------------------------------\n\nimport { DATA, DIRTY, type Node } from \"@graphrefly/pure-ts/core\";\nimport {\n\tcomputed,\n\tgetCurrentScope,\n\tisRef,\n\tonScopeDispose,\n\ttype Ref,\n\treadonly,\n\tshallowRef,\n\ttype WatchSource,\n\twatch,\n} from \"vue\";\n\n/**\n * Subscribe to a read-only `Node<T>` as a Vue `Ref<T>`. Auto-unsubscribes on scope disposal.\n * Subscription lifecycle is tied to Vue scope disposal (not node terminal messages).\n */\nexport function useSubscribe<T>(node: Node<T>): Readonly<Ref<T | undefined | null>> {\n\tconst ref = shallowRef(node.cache) as Ref<T | undefined | null>;\n\n\tconst unsub = node.subscribe(() => {\n\t\tref.value = node.cache;\n\t});\n\n\tif (getCurrentScope()) {\n\t\tonScopeDispose(() => unsub());\n\t} else if (typeof console !== \"undefined\") {\n\t\tconsole.warn(\n\t\t\t\"[graphrefly-ts] useSubscribe called outside a Vue scope — subscription will not be auto-disposed.\",\n\t\t);\n\t}\n\n\treturn readonly(ref) as Readonly<Ref<T | undefined | null>>;\n}\n\n/**\n * Bind a writable `Node<T>` as a Vue `Ref<T>`. Reads and writes are bidirectional.\n * Value sets always dispatch `[[DIRTY], [DATA, value]]`, including `value === undefined`.\n * Subscription lifecycle is tied to Vue scope disposal (not node terminal messages).\n */\nexport function useStore<T>(node: Node<T>): Ref<T | undefined | null> {\n\tconst inner = shallowRef(node.cache) as Ref<T | undefined | null>;\n\n\tconst unsub = node.subscribe(() => {\n\t\tinner.value = node.cache;\n\t});\n\n\tif (getCurrentScope()) {\n\t\tonScopeDispose(() => unsub());\n\t} else if (typeof console !== \"undefined\") {\n\t\tconsole.warn(\n\t\t\t\"[graphrefly-ts] useStore called outside a Vue scope — subscription will not be auto-disposed.\",\n\t\t);\n\t}\n\n\treturn computed({\n\t\tget: () => inner.value,\n\t\tset: (v: T | undefined | null) => {\n\t\t\tnode.down([[DIRTY], [DATA, v]]);\n\t\t},\n\t});\n}\n\n/** Maps a key to an object of nodes. Used by `useSubscribeRecord` factory. */\nexport type NodeFactory<K, R extends Record<string, any>> = (key: K) => {\n\t[P in keyof R]: Node<R[P]>;\n};\n\n/**\n * Subscribe to a dynamic set of keyed node records. When keys change,\n * old subscriptions are torn down and new ones created automatically.\n * Must be called during Vue `setup()`.\n */\nexport function useSubscribeRecord<K extends string, R extends Record<string, any>>(\n\tkeys: WatchSource<K[] | undefined>,\n\tfactory: NodeFactory<K, R>,\n): Readonly<Ref<Record<K, R>>> {\n\tconst result = shallowRef<Record<K, R>>({} as Record<K, R>);\n\n\t// Track active subscriptions per key (strictly enclosed memory mapping)\n\tconst activeSubs = new Map<K, { subs: Array<() => void>; values: R }>();\n\tfunction flushResult() {\n\t\tconst snap = {} as Record<K, R>;\n\t\tfor (const [key, entry] of activeSubs) {\n\t\t\tsnap[key] = { ...entry.values };\n\t\t}\n\t\tresult.value = snap;\n\t}\n\n\tfunction sync(newKeys: K[]) {\n\t\tfor (const entry of activeSubs.values()) {\n\t\t\tfor (const unsub of entry.subs) unsub();\n\t\t}\n\t\tactiveSubs.clear();\n\n\t\tfor (const key of newKeys) {\n\t\t\tconst nodes = factory(key);\n\t\t\tconst fields = Object.keys(nodes) as (keyof R)[];\n\t\t\tconst values = {} as R;\n\t\t\tconst subs: Array<() => void> = [];\n\n\t\t\tfor (const field of fields) {\n\t\t\t\tconst node = nodes[field];\n\t\t\t\tvalues[field] = node.cache as R[keyof R];\n\t\t\t\tconst unsub = node.subscribe(() => {\n\t\t\t\t\tvalues[field] = node.cache as R[keyof R];\n\t\t\t\t\tflushResult();\n\t\t\t\t});\n\t\t\t\tsubs.push(unsub);\n\t\t\t}\n\n\t\t\tactiveSubs.set(key, { subs, values });\n\t\t}\n\n\t\tconst snap = {} as Record<K, R>;\n\t\tfor (const [key, entry] of activeSubs) {\n\t\t\tsnap[key] = { ...entry.values };\n\t\t}\n\t\tresult.value = snap;\n\t}\n\n\tconst readKeys = (): K[] => {\n\t\tconst current = typeof keys === \"function\" ? keys() : isRef(keys) ? keys.value : keys;\n\t\treturn [...(current ?? [])];\n\t};\n\n\twatch(readKeys, (newKeys) => sync(newKeys ?? []), { immediate: true });\n\n\tif (getCurrentScope()) {\n\t\tonScopeDispose(() => {\n\t\t\tfor (const entry of activeSubs.values()) {\n\t\t\t\tfor (const unsub of entry.subs) unsub();\n\t\t\t}\n\t\t\tactiveSubs.clear();\n\t\t});\n\t} else if (typeof console !== \"undefined\") {\n\t\tconsole.warn(\n\t\t\t\"[graphrefly-ts] useSubscribeRecord called outside a Vue scope — subscription will not be auto-disposed.\",\n\t\t);\n\t}\n\n\treturn readonly(result) as Readonly<Ref<Record<K, R>>>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,kBAAuC;AACvC,iBAUO;AAMA,SAAS,aAAgB,MAAoD;AACnF,QAAM,UAAM,uBAAW,KAAK,KAAK;AAEjC,QAAM,QAAQ,KAAK,UAAU,MAAM;AAClC,QAAI,QAAQ,KAAK;AAAA,EAClB,CAAC;AAED,UAAI,4BAAgB,GAAG;AACtB,mCAAe,MAAM,MAAM,CAAC;AAAA,EAC7B,WAAW,OAAO,YAAY,aAAa;AAC1C,YAAQ;AAAA,MACP;AAAA,IACD;AAAA,EACD;AAEA,aAAO,qBAAS,GAAG;AACpB;AAOO,SAAS,SAAY,MAA0C;AACrE,QAAM,YAAQ,uBAAW,KAAK,KAAK;AAEnC,QAAM,QAAQ,KAAK,UAAU,MAAM;AAClC,UAAM,QAAQ,KAAK;AAAA,EACpB,CAAC;AAED,UAAI,4BAAgB,GAAG;AACtB,mCAAe,MAAM,MAAM,CAAC;AAAA,EAC7B,WAAW,OAAO,YAAY,aAAa;AAC1C,YAAQ;AAAA,MACP;AAAA,IACD;AAAA,EACD;AAEA,aAAO,qBAAS;AAAA,IACf,KAAK,MAAM,MAAM;AAAA,IACjB,KAAK,CAAC,MAA4B;AACjC,WAAK,KAAK,CAAC,CAAC,iBAAK,GAAG,CAAC,kBAAM,CAAC,CAAC,CAAC;AAAA,IAC/B;AAAA,EACD,CAAC;AACF;AAYO,SAAS,mBACf,MACA,SAC8B;AAC9B,QAAM,aAAS,uBAAyB,CAAC,CAAiB;AAG1D,QAAM,aAAa,oBAAI,IAA+C;AACtE,WAAS,cAAc;AACtB,UAAM,OAAO,CAAC;AACd,eAAW,CAAC,KAAK,KAAK,KAAK,YAAY;AACtC,WAAK,GAAG,IAAI,EAAE,GAAG,MAAM,OAAO;AAAA,IAC/B;AACA,WAAO,QAAQ;AAAA,EAChB;AAEA,WAAS,KAAK,SAAc;AAC3B,eAAW,SAAS,WAAW,OAAO,GAAG;AACxC,iBAAW,SAAS,MAAM,KAAM,OAAM;AAAA,IACvC;AACA,eAAW,MAAM;AAEjB,eAAW,OAAO,SAAS;AAC1B,YAAM,QAAQ,QAAQ,GAAG;AACzB,YAAM,SAAS,OAAO,KAAK,KAAK;AAChC,YAAM,SAAS,CAAC;AAChB,YAAM,OAA0B,CAAC;AAEjC,iBAAW,SAAS,QAAQ;AAC3B,cAAM,OAAO,MAAM,KAAK;AACxB,eAAO,KAAK,IAAI,KAAK;AACrB,cAAM,QAAQ,KAAK,UAAU,MAAM;AAClC,iBAAO,KAAK,IAAI,KAAK;AACrB,sBAAY;AAAA,QACb,CAAC;AACD,aAAK,KAAK,KAAK;AAAA,MAChB;AAEA,iBAAW,IAAI,KAAK,EAAE,MAAM,OAAO,CAAC;AAAA,IACrC;AAEA,UAAM,OAAO,CAAC;AACd,eAAW,CAAC,KAAK,KAAK,KAAK,YAAY;AACtC,WAAK,GAAG,IAAI,EAAE,GAAG,MAAM,OAAO;AAAA,IAC/B;AACA,WAAO,QAAQ;AAAA,EAChB;AAEA,QAAM,WAAW,MAAW;AAC3B,UAAM,UAAU,OAAO,SAAS,aAAa,KAAK,QAAI,kBAAM,IAAI,IAAI,KAAK,QAAQ;AACjF,WAAO,CAAC,GAAI,WAAW,CAAC,CAAE;AAAA,EAC3B;AAEA,wBAAM,UAAU,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC,GAAG,EAAE,WAAW,KAAK,CAAC;AAErE,UAAI,4BAAgB,GAAG;AACtB,mCAAe,MAAM;AACpB,iBAAW,SAAS,WAAW,OAAO,GAAG;AACxC,mBAAW,SAAS,MAAM,KAAM,OAAM;AAAA,MACvC;AACA,iBAAW,MAAM;AAAA,IAClB,CAAC;AAAA,EACF,WAAW,OAAO,YAAY,aAAa;AAC1C,YAAQ;AAAA,MACP;AAAA,IACD;AAAA,EACD;AAEA,aAAO,qBAAS,MAAM;AACvB;","names":[]}
|
package/dist/compat/vue/index.js
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
useStore,
|
|
3
|
+
useSubscribe,
|
|
4
|
+
useSubscribeRecord
|
|
5
|
+
} from "../../chunk-PL5UDIQ5.js";
|
|
6
|
+
import "../../chunk-AZDQPQ3V.js";
|
|
7
|
+
export {
|
|
8
|
+
useStore,
|
|
9
|
+
useSubscribe,
|
|
10
|
+
useSubscribeRecord
|
|
11
|
+
};
|
|
3
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -3,6 +3,10 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
6
10
|
var __copyProps = (to, from, except, desc) => {
|
|
7
11
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
12
|
for (let key of __getOwnPropNames(from))
|
|
@@ -11,11 +15,55 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
11
15
|
}
|
|
12
16
|
return to;
|
|
13
17
|
};
|
|
14
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
19
|
|
|
17
20
|
// src/compat/zustand/index.ts
|
|
18
21
|
var zustand_exports = {};
|
|
22
|
+
__export(zustand_exports, {
|
|
23
|
+
create: () => create
|
|
24
|
+
});
|
|
19
25
|
module.exports = __toCommonJS(zustand_exports);
|
|
20
|
-
|
|
26
|
+
var import_core = require("@graphrefly/pure-ts/core");
|
|
27
|
+
var import_graph = require("@graphrefly/pure-ts/graph");
|
|
28
|
+
var alwaysDiffer = () => false;
|
|
29
|
+
function create(initializer) {
|
|
30
|
+
const g = new import_graph.Graph("zustand");
|
|
31
|
+
const s = (0, import_core.node)([], {
|
|
32
|
+
initial: void 0,
|
|
33
|
+
name: "state",
|
|
34
|
+
equals: alwaysDiffer
|
|
35
|
+
});
|
|
36
|
+
g.add(s, { name: "state" });
|
|
37
|
+
const getState = () => s.cache;
|
|
38
|
+
const setState = (partial, replace) => {
|
|
39
|
+
const prev = s.cache;
|
|
40
|
+
const next = typeof partial === "function" ? partial(prev) : partial;
|
|
41
|
+
s.emit(replace ? next : { ...prev, ...next });
|
|
42
|
+
};
|
|
43
|
+
const api = {
|
|
44
|
+
getState,
|
|
45
|
+
setState,
|
|
46
|
+
getInitialState: () => initialValue,
|
|
47
|
+
subscribe: (listener) => {
|
|
48
|
+
let initial = true;
|
|
49
|
+
let prev = s.cache;
|
|
50
|
+
return s.subscribe((msgs) => {
|
|
51
|
+
for (const [t, v] of msgs) {
|
|
52
|
+
if (t === import_core.DATA) {
|
|
53
|
+
if (initial) {
|
|
54
|
+
initial = false;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
listener(v, prev);
|
|
58
|
+
prev = v;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
},
|
|
63
|
+
destroy: g.destroy.bind(g)
|
|
64
|
+
};
|
|
65
|
+
const initialValue = initializer(setState, getState, api);
|
|
66
|
+
s.emit(initialValue);
|
|
67
|
+
return Object.assign(g, api);
|
|
68
|
+
}
|
|
21
69
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/compat/zustand/index.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../src/compat/zustand/index.ts"],"sourcesContent":["import { DATA, node as nodeFactory } from \"@graphrefly/pure-ts/core\";\nimport { Graph } from \"@graphrefly/pure-ts/graph\";\n\n// Zustand fires listeners on every setState, regardless of reference\n// equality. Configure the state node with a permissive equals so every\n// emit produces DATA (not RESOLVED). Diamond coordination still works\n// because `n.emit` routes through the framed pipeline which auto-\n// prefixes `[DIRTY]`.\nconst alwaysDiffer = () => false;\n\n/** Zustand-compatible Store API. */\nexport interface StoreApi<T> {\n\tgetState: () => T;\n\tsetState: (partial: T | Partial<T> | ((state: T) => T | Partial<T>), replace?: boolean) => void;\n\tgetInitialState: () => T;\n\tsubscribe: (listener: (state: T, prevState: T) => void) => () => void;\n\tdestroy: () => void;\n}\n\n/** Function type for initializing the store. */\nexport type StateCreator<T> = (\n\tset: StoreApi<T>[\"setState\"],\n\tget: StoreApi<T>[\"getState\"],\n\tapi: StoreApi<T>,\n) => T;\n\n/**\n * Creates a Zustand-compatible store backed by a GraphReFly state node.\n * returns an object that is both a Graph and a StoreApi.\n *\n * @example\n * ```ts\n * const store = create((set) => ({\n * count: 0,\n * inc: () => set((s) => ({ count: s.count + 1 }))\n * }));\n * store.getState().inc();\n * ```\n *\n * @category compat\n */\nexport function create<T extends object>(initializer: StateCreator<T>): Graph & StoreApi<T> {\n\tconst g = new Graph(\"zustand\");\n\tconst s = nodeFactory<T>([], {\n\t\tinitial: undefined as unknown as T,\n\t\tname: \"state\",\n\t\tequals: alwaysDiffer,\n\t});\n\tg.add(s, { name: \"state\" });\n\n\t// `getState` and `setState` read/write through `s` directly — the single\n\t// source of truth. `s.cache` is `undefined` (SENTINEL) until `emit()` is\n\t// called, but action closures (e.g. `inc: () => set(...)`) are only ever\n\t// invoked after initialization, so `s.cache` is valid by that time.\n\tconst getState = () => s.cache as T;\n\tconst setState = (partial: any, replace?: boolean): void => {\n\t\tconst prev = s.cache as T;\n\t\tconst next = typeof partial === \"function\" ? partial(prev) : partial;\n\t\t// `n.emit` goes through `_actionEmit` → `bundle()`, which auto-\n\t\t// prefixes `[DIRTY]` so diamond legs coordinate under downstream\n\t\t// composition. The `alwaysDiffer` equals keeps zustand's \"fire\n\t\t// on every setState\" semantics.\n\t\ts.emit(replace ? next : { ...prev, ...next });\n\t};\n\n\tconst api: StoreApi<T> = {\n\t\tgetState,\n\t\tsetState,\n\t\tgetInitialState: () => initialValue,\n\t\tsubscribe: (listener) => {\n\t\t\t// Skip the initial push-on-subscribe DATA — zustand subscribe fires on changes only.\n\t\t\tlet initial = true;\n\t\t\tlet prev = s.cache as T;\n\t\t\treturn s.subscribe((msgs) => {\n\t\t\t\tfor (const [t, v] of msgs) {\n\t\t\t\t\tif (t === DATA) {\n\t\t\t\t\t\tif (initial) {\n\t\t\t\t\t\t\tinitial = false;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlistener(v as T, prev);\n\t\t\t\t\t\tprev = v as T;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tdestroy: g.destroy.bind(g),\n\t};\n\n\tconst initialValue = initializer(setState, getState, api);\n\ts.emit(initialValue);\n\n\treturn Object.assign(g, api);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA0C;AAC1C,mBAAsB;AAOtB,IAAM,eAAe,MAAM;AAiCpB,SAAS,OAAyB,aAAmD;AAC3F,QAAM,IAAI,IAAI,mBAAM,SAAS;AAC7B,QAAM,QAAI,YAAAA,MAAe,CAAC,GAAG;AAAA,IAC5B,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,EACT,CAAC;AACD,IAAE,IAAI,GAAG,EAAE,MAAM,QAAQ,CAAC;AAM1B,QAAM,WAAW,MAAM,EAAE;AACzB,QAAM,WAAW,CAAC,SAAc,YAA4B;AAC3D,UAAM,OAAO,EAAE;AACf,UAAM,OAAO,OAAO,YAAY,aAAa,QAAQ,IAAI,IAAI;AAK7D,MAAE,KAAK,UAAU,OAAO,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC;AAAA,EAC7C;AAEA,QAAM,MAAmB;AAAA,IACxB;AAAA,IACA;AAAA,IACA,iBAAiB,MAAM;AAAA,IACvB,WAAW,CAAC,aAAa;AAExB,UAAI,UAAU;AACd,UAAI,OAAO,EAAE;AACb,aAAO,EAAE,UAAU,CAAC,SAAS;AAC5B,mBAAW,CAAC,GAAG,CAAC,KAAK,MAAM;AAC1B,cAAI,MAAM,kBAAM;AACf,gBAAI,SAAS;AACZ,wBAAU;AACV;AAAA,YACD;AACA,qBAAS,GAAQ,IAAI;AACrB,mBAAO;AAAA,UACR;AAAA,QACD;AAAA,MACD,CAAC;AAAA,IACF;AAAA,IACA,SAAS,EAAE,QAAQ,KAAK,CAAC;AAAA,EAC1B;AAEA,QAAM,eAAe,YAAY,UAAU,UAAU,GAAG;AACxD,IAAE,KAAK,YAAY;AAEnB,SAAO,OAAO,OAAO,GAAG,GAAG;AAC5B;","names":["nodeFactory"]}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import '@graphrefly/pure-ts/graph';
|
|
2
|
+
export { S as StateCreator, a as StoreApi, c as create } from '../../index-CDfk6jHN.cjs';
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import '@graphrefly/pure-ts/graph';
|
|
2
|
+
export { S as StateCreator, a as StoreApi, c as create } from '../../index-CDfk6jHN.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Node } from '@graphrefly/pure-ts/core';
|
|
2
|
+
import { ReactiveMapBundle, NodeInput, ReactiveMapOptions } from '@graphrefly/pure-ts/extra';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Budget-constrained reactive memory composition (roadmap §3.2b).
|
|
6
|
+
*
|
|
7
|
+
* Moved to base/composition/distill.ts during cleave A2.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
type Extraction<TMem> = {
|
|
11
|
+
upsert: Array<{
|
|
12
|
+
key: string;
|
|
13
|
+
value: TMem;
|
|
14
|
+
}>;
|
|
15
|
+
remove?: string[];
|
|
16
|
+
};
|
|
17
|
+
type DistillOptions<TMem> = {
|
|
18
|
+
score: (mem: TMem, context: unknown) => number;
|
|
19
|
+
cost: (mem: TMem) => number;
|
|
20
|
+
budget?: number;
|
|
21
|
+
evict?: (key: string, mem: TMem) => boolean | Node<boolean>;
|
|
22
|
+
consolidate?: (entries: ReadonlyMap<string, TMem>) => NodeInput<Extraction<TMem>>;
|
|
23
|
+
consolidateTrigger?: NodeInput<unknown>;
|
|
24
|
+
context?: NodeInput<unknown>;
|
|
25
|
+
mapOptions?: ReactiveMapOptions<string, TMem>;
|
|
26
|
+
};
|
|
27
|
+
type DistillBundle<TMem> = {
|
|
28
|
+
store: ReactiveMapBundle<string, TMem>;
|
|
29
|
+
compact: Node<Array<{
|
|
30
|
+
key: string;
|
|
31
|
+
value: TMem;
|
|
32
|
+
score: number;
|
|
33
|
+
}>>;
|
|
34
|
+
size: Node<number>;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Budget-constrained reactive memory composition.
|
|
38
|
+
*
|
|
39
|
+
* **Tier 1.5.4 (Session A.5 lock, 2026-04-27):** `extractFn` receives the
|
|
40
|
+
* source and existing-store as `Node`s. Distill calls `extractFn` ONCE at
|
|
41
|
+
* wiring time and consumes the returned stream of extractions. The user
|
|
42
|
+
* controls reactive composition — wrap with `switchMap` for cancel-on-new-input,
|
|
43
|
+
* `mergeMap` for parallel, `derived` for sync transforms. See COMPOSITION-GUIDE
|
|
44
|
+
* §40 for the recipe.
|
|
45
|
+
*/
|
|
46
|
+
declare function distill<TRaw, TMem>(source: NodeInput<TRaw>, extractFn: (raw: Node<TRaw>, existing: Node<ReadonlyMap<string, TMem>>) => NodeInput<Extraction<TMem>>, opts: DistillOptions<TMem>): DistillBundle<TMem>;
|
|
47
|
+
|
|
48
|
+
export { type DistillBundle as D, type Extraction as E, type DistillOptions as a, distill as d };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Node } from '@graphrefly/pure-ts/core';
|
|
2
|
+
import { ReactiveMapBundle, NodeInput, ReactiveMapOptions } from '@graphrefly/pure-ts/extra';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Budget-constrained reactive memory composition (roadmap §3.2b).
|
|
6
|
+
*
|
|
7
|
+
* Moved to base/composition/distill.ts during cleave A2.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
type Extraction<TMem> = {
|
|
11
|
+
upsert: Array<{
|
|
12
|
+
key: string;
|
|
13
|
+
value: TMem;
|
|
14
|
+
}>;
|
|
15
|
+
remove?: string[];
|
|
16
|
+
};
|
|
17
|
+
type DistillOptions<TMem> = {
|
|
18
|
+
score: (mem: TMem, context: unknown) => number;
|
|
19
|
+
cost: (mem: TMem) => number;
|
|
20
|
+
budget?: number;
|
|
21
|
+
evict?: (key: string, mem: TMem) => boolean | Node<boolean>;
|
|
22
|
+
consolidate?: (entries: ReadonlyMap<string, TMem>) => NodeInput<Extraction<TMem>>;
|
|
23
|
+
consolidateTrigger?: NodeInput<unknown>;
|
|
24
|
+
context?: NodeInput<unknown>;
|
|
25
|
+
mapOptions?: ReactiveMapOptions<string, TMem>;
|
|
26
|
+
};
|
|
27
|
+
type DistillBundle<TMem> = {
|
|
28
|
+
store: ReactiveMapBundle<string, TMem>;
|
|
29
|
+
compact: Node<Array<{
|
|
30
|
+
key: string;
|
|
31
|
+
value: TMem;
|
|
32
|
+
score: number;
|
|
33
|
+
}>>;
|
|
34
|
+
size: Node<number>;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Budget-constrained reactive memory composition.
|
|
38
|
+
*
|
|
39
|
+
* **Tier 1.5.4 (Session A.5 lock, 2026-04-27):** `extractFn` receives the
|
|
40
|
+
* source and existing-store as `Node`s. Distill calls `extractFn` ONCE at
|
|
41
|
+
* wiring time and consumes the returned stream of extractions. The user
|
|
42
|
+
* controls reactive composition — wrap with `switchMap` for cancel-on-new-input,
|
|
43
|
+
* `mergeMap` for parallel, `derived` for sync transforms. See COMPOSITION-GUIDE
|
|
44
|
+
* §40 for the recipe.
|
|
45
|
+
*/
|
|
46
|
+
declare function distill<TRaw, TMem>(source: NodeInput<TRaw>, extractFn: (raw: Node<TRaw>, existing: Node<ReadonlyMap<string, TMem>>) => NodeInput<Extraction<TMem>>, opts: DistillOptions<TMem>): DistillBundle<TMem>;
|
|
47
|
+
|
|
48
|
+
export { type DistillBundle as D, type Extraction as E, type DistillOptions as a, distill as d };
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { NodeOptions, Node } from '@graphrefly/pure-ts/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* External-register helpers — the common `register({emit, error, complete})`
|
|
5
|
+
* contract shared by webhook, MCP, syslog, StatsD, OTel and other callback-
|
|
6
|
+
* based integrations. Absorbs the `active` flag that every such adapter needs
|
|
7
|
+
* to guard against emits after teardown (§5.10 boundary pattern).
|
|
8
|
+
*
|
|
9
|
+
* Two shapes:
|
|
10
|
+
*
|
|
11
|
+
* - {@link externalProducer} — single channel. Lazy activation: the register
|
|
12
|
+
* fn runs when the node gains its first subscriber; its returned cleanup
|
|
13
|
+
* runs on deactivation.
|
|
14
|
+
*
|
|
15
|
+
* - {@link externalBundle} — multiple named channels. Eager activation: the
|
|
16
|
+
* register fn runs at bundle construction time so externally-owned servers
|
|
17
|
+
* (HTTP endpoints, UDP sockets) start accepting traffic immediately. A
|
|
18
|
+
* shared refcount fires the returned cleanup once every channel has fully
|
|
19
|
+
* torn down.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
type ExtraOpts = Omit<NodeOptions<unknown>, "describeKind">;
|
|
23
|
+
/**
|
|
24
|
+
* Standard emit-triad passed to a single-channel external registrar.
|
|
25
|
+
*
|
|
26
|
+
* Post-teardown calls on any of these are automatically no-ops — the
|
|
27
|
+
* registrar does not need its own guard flag.
|
|
28
|
+
*
|
|
29
|
+
* @category extra
|
|
30
|
+
*/
|
|
31
|
+
type EmitTriad<T> = {
|
|
32
|
+
/** Emit a value as `DATA`. */
|
|
33
|
+
emit: (value: T) => void;
|
|
34
|
+
/** Terminate with `ERROR`. Subsequent `emit` / `error` / `complete` are ignored. */
|
|
35
|
+
error: (err: unknown) => void;
|
|
36
|
+
/** Terminate with `COMPLETE`. Subsequent `emit` / `error` / `complete` are ignored. */
|
|
37
|
+
complete: () => void;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Multi-channel emit bundle. Each declared channel name maps to an emit fn;
|
|
41
|
+
* `error` and `complete` terminate every channel atomically.
|
|
42
|
+
*
|
|
43
|
+
* @category extra
|
|
44
|
+
*/
|
|
45
|
+
type BundleTriad<TChannels extends Record<string, unknown>> = {
|
|
46
|
+
[K in keyof TChannels]: (value: TChannels[K]) => void;
|
|
47
|
+
} & {
|
|
48
|
+
/** Terminate every channel with `ERROR`. */
|
|
49
|
+
error: (err: unknown) => void;
|
|
50
|
+
/** Terminate every channel with `COMPLETE`. */
|
|
51
|
+
complete: () => void;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Generic external registrator contract. The caller installs handlers into a
|
|
55
|
+
* third-party library / framework / server and optionally returns a cleanup
|
|
56
|
+
* callback. Returning `undefined` / `void` is equivalent to a no-op cleanup.
|
|
57
|
+
*
|
|
58
|
+
* @category extra
|
|
59
|
+
*/
|
|
60
|
+
type ExternalRegister<H> = (handlers: H) => (() => void) | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Wraps a callback-style external integration as a reactive source.
|
|
63
|
+
*
|
|
64
|
+
* The registrar installs the supplied `emit` / `error` / `complete` handlers
|
|
65
|
+
* into the external SDK; post-teardown calls are silently dropped. Synchronous
|
|
66
|
+
* exceptions thrown by the registrar surface as terminal `ERROR`.
|
|
67
|
+
*
|
|
68
|
+
* @param register - Installs handlers. Optionally returns a cleanup fn.
|
|
69
|
+
* @param opts - Node options (name, equals, resubscribable, ...).
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* import { externalProducer } from "@graphrefly/graphrefly-ts";
|
|
74
|
+
*
|
|
75
|
+
* const hook$ = externalProducer<Payload>(({ emit, error }) => {
|
|
76
|
+
* const id = transport.onMessage((raw) => {
|
|
77
|
+
* try { emit(parse(raw)); } catch (e) { error(e); }
|
|
78
|
+
* });
|
|
79
|
+
* return () => transport.off(id);
|
|
80
|
+
* });
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
83
|
+
* @category extra
|
|
84
|
+
*/
|
|
85
|
+
declare function externalProducer<T = unknown>(register: ExternalRegister<EmitTriad<T>>, opts?: ExtraOpts): Node<T>;
|
|
86
|
+
/**
|
|
87
|
+
* Options for {@link externalBundle}.
|
|
88
|
+
*
|
|
89
|
+
* @category extra
|
|
90
|
+
*/
|
|
91
|
+
type ExternalBundleOptions<TChannels extends Record<string, unknown>> = {
|
|
92
|
+
/** Base name prefix for channel nodes; each node is named `${name}::${channel}`. */
|
|
93
|
+
name?: string;
|
|
94
|
+
/** Per-channel node options (equals, resubscribable, ...). */
|
|
95
|
+
channelOpts?: {
|
|
96
|
+
[K in keyof TChannels]?: ExtraOpts;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Multi-channel variant — one `Node<T>` per named channel, sharing a single
|
|
101
|
+
* registrar. Activation is eager: the registrar runs at construction time so
|
|
102
|
+
* externally-owned servers (HTTP, UDP, queue consumers) can start accepting
|
|
103
|
+
* traffic immediately. The returned cleanup fires once every channel has been
|
|
104
|
+
* subscribed and then fully deactivated (refcount-on-teardown).
|
|
105
|
+
*
|
|
106
|
+
* Any call to `error` or `complete` propagates to every channel atomically.
|
|
107
|
+
*
|
|
108
|
+
* @param register - Installs handlers for each channel plus shared error/complete.
|
|
109
|
+
* @param channels - Ordered channel names; determines the returned object shape.
|
|
110
|
+
* @param opts - Optional name prefix and per-channel node options.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```ts
|
|
114
|
+
* import { externalBundle } from "@graphrefly/graphrefly-ts";
|
|
115
|
+
*
|
|
116
|
+
* type OTelChannels = { traces: Span; metrics: Metric; logs: LogRec };
|
|
117
|
+
* const otel = externalBundle<OTelChannels>(
|
|
118
|
+
* ({ traces, metrics, logs, error }) => {
|
|
119
|
+
* app.post("/v1/traces", (req, res) => { traces(req.body); res.sendStatus(200); });
|
|
120
|
+
* app.post("/v1/metrics", (req, res) => { metrics(req.body); res.sendStatus(200); });
|
|
121
|
+
* app.post("/v1/logs", (req, res) => { logs(req.body); res.sendStatus(200); });
|
|
122
|
+
* server.on("error", error);
|
|
123
|
+
* return () => server.close();
|
|
124
|
+
* },
|
|
125
|
+
* ["traces", "metrics", "logs"],
|
|
126
|
+
* );
|
|
127
|
+
* otel.traces.subscribe(...);
|
|
128
|
+
* ```
|
|
129
|
+
*
|
|
130
|
+
* @category extra
|
|
131
|
+
*/
|
|
132
|
+
declare function externalBundle<TChannels extends Record<string, unknown>>(register: ExternalRegister<BundleTriad<TChannels>>, channels: readonly (keyof TChannels & string)[], opts?: ExternalBundleOptions<TChannels>): {
|
|
133
|
+
[K in keyof TChannels]: Node<TChannels[K]>;
|
|
134
|
+
} & {
|
|
135
|
+
dispose(): void;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
export { type BundleTriad as B, type EmitTriad as E, type ExternalBundleOptions as a, type ExternalRegister as b, externalProducer as c, externalBundle as e };
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { NodeOptions, Node } from '@graphrefly/pure-ts/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* External-register helpers — the common `register({emit, error, complete})`
|
|
5
|
+
* contract shared by webhook, MCP, syslog, StatsD, OTel and other callback-
|
|
6
|
+
* based integrations. Absorbs the `active` flag that every such adapter needs
|
|
7
|
+
* to guard against emits after teardown (§5.10 boundary pattern).
|
|
8
|
+
*
|
|
9
|
+
* Two shapes:
|
|
10
|
+
*
|
|
11
|
+
* - {@link externalProducer} — single channel. Lazy activation: the register
|
|
12
|
+
* fn runs when the node gains its first subscriber; its returned cleanup
|
|
13
|
+
* runs on deactivation.
|
|
14
|
+
*
|
|
15
|
+
* - {@link externalBundle} — multiple named channels. Eager activation: the
|
|
16
|
+
* register fn runs at bundle construction time so externally-owned servers
|
|
17
|
+
* (HTTP endpoints, UDP sockets) start accepting traffic immediately. A
|
|
18
|
+
* shared refcount fires the returned cleanup once every channel has fully
|
|
19
|
+
* torn down.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
type ExtraOpts = Omit<NodeOptions<unknown>, "describeKind">;
|
|
23
|
+
/**
|
|
24
|
+
* Standard emit-triad passed to a single-channel external registrar.
|
|
25
|
+
*
|
|
26
|
+
* Post-teardown calls on any of these are automatically no-ops — the
|
|
27
|
+
* registrar does not need its own guard flag.
|
|
28
|
+
*
|
|
29
|
+
* @category extra
|
|
30
|
+
*/
|
|
31
|
+
type EmitTriad<T> = {
|
|
32
|
+
/** Emit a value as `DATA`. */
|
|
33
|
+
emit: (value: T) => void;
|
|
34
|
+
/** Terminate with `ERROR`. Subsequent `emit` / `error` / `complete` are ignored. */
|
|
35
|
+
error: (err: unknown) => void;
|
|
36
|
+
/** Terminate with `COMPLETE`. Subsequent `emit` / `error` / `complete` are ignored. */
|
|
37
|
+
complete: () => void;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Multi-channel emit bundle. Each declared channel name maps to an emit fn;
|
|
41
|
+
* `error` and `complete` terminate every channel atomically.
|
|
42
|
+
*
|
|
43
|
+
* @category extra
|
|
44
|
+
*/
|
|
45
|
+
type BundleTriad<TChannels extends Record<string, unknown>> = {
|
|
46
|
+
[K in keyof TChannels]: (value: TChannels[K]) => void;
|
|
47
|
+
} & {
|
|
48
|
+
/** Terminate every channel with `ERROR`. */
|
|
49
|
+
error: (err: unknown) => void;
|
|
50
|
+
/** Terminate every channel with `COMPLETE`. */
|
|
51
|
+
complete: () => void;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Generic external registrator contract. The caller installs handlers into a
|
|
55
|
+
* third-party library / framework / server and optionally returns a cleanup
|
|
56
|
+
* callback. Returning `undefined` / `void` is equivalent to a no-op cleanup.
|
|
57
|
+
*
|
|
58
|
+
* @category extra
|
|
59
|
+
*/
|
|
60
|
+
type ExternalRegister<H> = (handlers: H) => (() => void) | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Wraps a callback-style external integration as a reactive source.
|
|
63
|
+
*
|
|
64
|
+
* The registrar installs the supplied `emit` / `error` / `complete` handlers
|
|
65
|
+
* into the external SDK; post-teardown calls are silently dropped. Synchronous
|
|
66
|
+
* exceptions thrown by the registrar surface as terminal `ERROR`.
|
|
67
|
+
*
|
|
68
|
+
* @param register - Installs handlers. Optionally returns a cleanup fn.
|
|
69
|
+
* @param opts - Node options (name, equals, resubscribable, ...).
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* import { externalProducer } from "@graphrefly/graphrefly-ts";
|
|
74
|
+
*
|
|
75
|
+
* const hook$ = externalProducer<Payload>(({ emit, error }) => {
|
|
76
|
+
* const id = transport.onMessage((raw) => {
|
|
77
|
+
* try { emit(parse(raw)); } catch (e) { error(e); }
|
|
78
|
+
* });
|
|
79
|
+
* return () => transport.off(id);
|
|
80
|
+
* });
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
83
|
+
* @category extra
|
|
84
|
+
*/
|
|
85
|
+
declare function externalProducer<T = unknown>(register: ExternalRegister<EmitTriad<T>>, opts?: ExtraOpts): Node<T>;
|
|
86
|
+
/**
|
|
87
|
+
* Options for {@link externalBundle}.
|
|
88
|
+
*
|
|
89
|
+
* @category extra
|
|
90
|
+
*/
|
|
91
|
+
type ExternalBundleOptions<TChannels extends Record<string, unknown>> = {
|
|
92
|
+
/** Base name prefix for channel nodes; each node is named `${name}::${channel}`. */
|
|
93
|
+
name?: string;
|
|
94
|
+
/** Per-channel node options (equals, resubscribable, ...). */
|
|
95
|
+
channelOpts?: {
|
|
96
|
+
[K in keyof TChannels]?: ExtraOpts;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Multi-channel variant — one `Node<T>` per named channel, sharing a single
|
|
101
|
+
* registrar. Activation is eager: the registrar runs at construction time so
|
|
102
|
+
* externally-owned servers (HTTP, UDP, queue consumers) can start accepting
|
|
103
|
+
* traffic immediately. The returned cleanup fires once every channel has been
|
|
104
|
+
* subscribed and then fully deactivated (refcount-on-teardown).
|
|
105
|
+
*
|
|
106
|
+
* Any call to `error` or `complete` propagates to every channel atomically.
|
|
107
|
+
*
|
|
108
|
+
* @param register - Installs handlers for each channel plus shared error/complete.
|
|
109
|
+
* @param channels - Ordered channel names; determines the returned object shape.
|
|
110
|
+
* @param opts - Optional name prefix and per-channel node options.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```ts
|
|
114
|
+
* import { externalBundle } from "@graphrefly/graphrefly-ts";
|
|
115
|
+
*
|
|
116
|
+
* type OTelChannels = { traces: Span; metrics: Metric; logs: LogRec };
|
|
117
|
+
* const otel = externalBundle<OTelChannels>(
|
|
118
|
+
* ({ traces, metrics, logs, error }) => {
|
|
119
|
+
* app.post("/v1/traces", (req, res) => { traces(req.body); res.sendStatus(200); });
|
|
120
|
+
* app.post("/v1/metrics", (req, res) => { metrics(req.body); res.sendStatus(200); });
|
|
121
|
+
* app.post("/v1/logs", (req, res) => { logs(req.body); res.sendStatus(200); });
|
|
122
|
+
* server.on("error", error);
|
|
123
|
+
* return () => server.close();
|
|
124
|
+
* },
|
|
125
|
+
* ["traces", "metrics", "logs"],
|
|
126
|
+
* );
|
|
127
|
+
* otel.traces.subscribe(...);
|
|
128
|
+
* ```
|
|
129
|
+
*
|
|
130
|
+
* @category extra
|
|
131
|
+
*/
|
|
132
|
+
declare function externalBundle<TChannels extends Record<string, unknown>>(register: ExternalRegister<BundleTriad<TChannels>>, channels: readonly (keyof TChannels & string)[], opts?: ExternalBundleOptions<TChannels>): {
|
|
133
|
+
[K in keyof TChannels]: Node<TChannels[K]>;
|
|
134
|
+
} & {
|
|
135
|
+
dispose(): void;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
export { type BundleTriad as B, type EmitTriad as E, type ExternalBundleOptions as a, type ExternalRegister as b, externalProducer as c, externalBundle as e };
|