@graphrefly/ts 0.0.0 → 0.0.1
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 +135 -0
- package/dist/adapters/index.cjs +105 -66
- package/dist/adapters/index.cjs.map +1 -1
- package/dist/adapters/index.d.cts +11 -136
- package/dist/adapters/index.d.ts +11 -136
- package/dist/adapters/index.js +27 -225
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/observe-storage.d.cts +4 -4
- package/dist/adapters/observe-storage.d.ts +4 -4
- package/dist/adapters/observe-storage.js +1 -0
- package/dist/adapters/observe-storage.js.map +1 -1
- package/dist/adapters/react.cjs +166 -0
- package/dist/adapters/react.cjs.map +1 -0
- package/dist/adapters/react.d.cts +31 -0
- package/dist/adapters/react.d.ts +31 -0
- package/dist/adapters/react.js +51 -0
- package/dist/adapters/react.js.map +1 -0
- package/dist/adapters/solid.cjs +157 -0
- package/dist/adapters/solid.cjs.map +1 -0
- package/dist/adapters/solid.d.cts +26 -0
- package/dist/adapters/solid.d.ts +26 -0
- package/dist/adapters/solid.js +48 -0
- package/dist/adapters/solid.js.map +1 -0
- package/dist/adapters/svelte.cjs +148 -0
- package/dist/adapters/svelte.cjs.map +1 -0
- package/dist/adapters/svelte.d.cts +31 -0
- package/dist/adapters/svelte.d.ts +31 -0
- package/dist/adapters/svelte.js +46 -0
- package/dist/adapters/svelte.js.map +1 -0
- package/dist/adapters/vue.cjs +155 -0
- package/dist/adapters/vue.cjs.map +1 -0
- package/dist/adapters/vue.d.cts +26 -0
- package/dist/adapters/vue.d.ts +26 -0
- package/dist/adapters/vue.js +46 -0
- package/dist/adapters/vue.js.map +1 -0
- package/dist/agent-runtime-BesGDZcB.d.ts +555 -0
- package/dist/agent-runtime-DZTJ3C-p.d.cts +555 -0
- package/dist/agentic-memory-BmRCvh0d.d.ts +517 -0
- package/dist/agentic-memory-DfuVZ-lY.d.cts +517 -0
- package/dist/capability-admission-B0BzqAm5.d.cts +102 -0
- package/dist/capability-admission-g0mn9hpq.d.ts +102 -0
- package/dist/{chunk-JR4IKCR2.js → chunk-2747WN4Y.js} +5 -5
- package/dist/{chunk-2ILL7HQI.js → chunk-3JR3EDB2.js} +17 -17
- package/dist/{chunk-2ILL7HQI.js.map → chunk-3JR3EDB2.js.map} +1 -1
- package/dist/{chunk-GDL26N2T.js → chunk-3KN7NJDR.js} +2 -2
- package/dist/{chunk-DJC4CHLQ.js → chunk-43BKLFZU.js} +9 -9
- package/dist/chunk-6XAIOL3X.js +2407 -0
- package/dist/chunk-6XAIOL3X.js.map +1 -0
- package/dist/{chunk-SCRFRCGR.js → chunk-BSQGE5PS.js} +1 -1
- package/dist/{chunk-Y3ZLRGHC.js → chunk-CZNV3VXM.js} +16 -16
- package/dist/chunk-DGUM43GV.js +11 -0
- package/dist/chunk-DGUM43GV.js.map +1 -0
- package/dist/{chunk-JIMUDQN3.js → chunk-FBUU43PM.js} +2 -2
- package/dist/chunk-H75VXTGT.js +219 -0
- package/dist/chunk-H75VXTGT.js.map +1 -0
- package/dist/{chunk-RIIOUTGM.js → chunk-HKK2JD7Z.js} +12 -9
- package/dist/chunk-HKK2JD7Z.js.map +1 -0
- package/dist/{chunk-D6BG7U6A.js → chunk-IXZBUWSP.js} +3 -3
- package/dist/chunk-PC3BTTBE.js +3217 -0
- package/dist/chunk-PC3BTTBE.js.map +1 -0
- package/dist/chunk-QFY4AFY4.js +879 -0
- package/dist/chunk-QFY4AFY4.js.map +1 -0
- package/dist/{chunk-DK554R7P.js → chunk-S6HXABGL.js} +2 -1
- package/dist/chunk-S6HXABGL.js.map +1 -0
- package/dist/{chunk-PKVBHGBM.js → chunk-SS2A464I.js} +7 -7
- package/dist/chunk-UT3MHJCW.js +49 -0
- package/dist/chunk-UT3MHJCW.js.map +1 -0
- package/dist/{chunk-G4M3NHRJ.js → chunk-V7CIJE4B.js} +3 -3
- package/dist/{chunk-TEW47IVR.js → chunk-VPEFSDME.js} +2 -2
- package/dist/chunk-VTHLCFN4.js +368 -0
- package/dist/chunk-VTHLCFN4.js.map +1 -0
- package/dist/{chunk-SWTLEQL6.js → chunk-WQIA3GFB.js} +2 -2
- package/dist/chunk-WQIA3GFB.js.map +1 -0
- package/dist/{chunk-I3IHOHCJ.js → chunk-XKXWK2KP.js} +108 -64
- package/dist/chunk-XKXWK2KP.js.map +1 -0
- package/dist/{chunk-COHO25CZ.js → chunk-YDSIVHRR.js} +553 -7
- package/dist/chunk-YDSIVHRR.js.map +1 -0
- package/dist/chunk-YXMZ2N6J.js +1884 -0
- package/dist/chunk-YXMZ2N6J.js.map +1 -0
- package/dist/composition/index.cjs +102 -57
- package/dist/composition/index.cjs.map +1 -1
- package/dist/composition/index.d.cts +4 -4
- package/dist/composition/index.d.ts +4 -4
- package/dist/composition/index.js +6 -5
- package/dist/core/index.cjs +102 -57
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +5 -4
- package/dist/cqrs/index.cjs.map +1 -1
- package/dist/cqrs/index.d.cts +4 -4
- package/dist/cqrs/index.d.ts +4 -4
- package/dist/cqrs/index.js +3 -2
- package/dist/cqrs/index.js.map +1 -1
- package/dist/cqrs/messaging.cjs +312 -0
- package/dist/cqrs/messaging.cjs.map +1 -0
- package/dist/cqrs/messaging.d.cts +57 -0
- package/dist/cqrs/messaging.d.ts +57 -0
- package/dist/cqrs/messaging.js +274 -0
- package/dist/cqrs/messaging.js.map +1 -0
- package/dist/cqrs/work-queue.cjs +329 -0
- package/dist/cqrs/work-queue.cjs.map +1 -0
- package/dist/cqrs/work-queue.d.cts +90 -0
- package/dist/cqrs/work-queue.d.ts +90 -0
- package/dist/cqrs/work-queue.js +292 -0
- package/dist/cqrs/work-queue.js.map +1 -0
- package/dist/data/index.cjs +19 -0
- package/dist/data/index.cjs.map +1 -0
- package/dist/data/index.d.cts +36 -0
- package/dist/data/index.d.ts +36 -0
- package/dist/data/index.js +1 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data-structures/index.cjs +105 -57
- package/dist/data-structures/index.cjs.map +1 -1
- package/dist/data-structures/index.d.cts +8 -8
- package/dist/data-structures/index.d.ts +8 -8
- package/dist/data-structures/index.js +7 -6
- package/dist/{describe-BZb7AS2y.d.ts → describe-BpyJuWkw.d.ts} +1 -1
- package/dist/{describe-Ciu8SUnN.d.cts → describe-DYMw_l1C.d.cts} +1 -1
- package/dist/executors/work-queue.cjs +342 -0
- package/dist/executors/work-queue.cjs.map +1 -0
- package/dist/executors/work-queue.d.cts +90 -0
- package/dist/executors/work-queue.d.ts +90 -0
- package/dist/executors/work-queue.js +306 -0
- package/dist/executors/work-queue.js.map +1 -0
- package/dist/graph/index.cjs +112 -58
- package/dist/graph/index.cjs.map +1 -1
- package/dist/graph/index.d.cts +9 -9
- package/dist/graph/index.d.ts +9 -9
- package/dist/graph/index.js +18 -17
- package/dist/{graph-DfdF9zy4.d.ts → graph-D-1-SQeC.d.ts} +3 -3
- package/dist/{graph-s23RbbFO.d.cts → graph-DCEWh4T2.d.cts} +3 -3
- package/dist/{index-CAEmLCYF.d.cts → index-72VZC0-E.d.cts} +2 -2
- package/dist/{index-SnzZu3x7.d.ts → index-Bmxeu0nK.d.ts} +2 -2
- package/dist/index.cjs +112 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -10
- package/dist/index.d.ts +11 -10
- package/dist/index.js +118 -113
- package/dist/inspection/boundary.cjs +98 -0
- package/dist/inspection/boundary.cjs.map +1 -0
- package/dist/inspection/boundary.d.cts +61 -0
- package/dist/inspection/boundary.d.ts +61 -0
- package/dist/inspection/boundary.js +75 -0
- package/dist/inspection/boundary.js.map +1 -0
- package/dist/{messages-BZqrGGm1.d.ts → messages-CAzUPPJM.d.cts} +10 -5
- package/dist/{messages-BZqrGGm1.d.cts → messages-CAzUPPJM.d.ts} +10 -5
- package/dist/messaging/index.cjs +744 -613
- package/dist/messaging/index.cjs.map +1 -1
- package/dist/messaging/index.d.cts +216 -160
- package/dist/messaging/index.d.ts +216 -160
- package/dist/messaging/index.js +19 -749
- package/dist/messaging/index.js.map +1 -1
- package/dist/operators/index.cjs +102 -57
- package/dist/operators/index.cjs.map +1 -1
- package/dist/operators/index.d.cts +6 -6
- package/dist/operators/index.d.ts +6 -6
- package/dist/operators/index.js +8 -7
- package/dist/orchestration/index.cjs +3333 -59
- package/dist/orchestration/index.cjs.map +1 -1
- package/dist/orchestration/index.d.cts +7 -4
- package/dist/orchestration/index.d.ts +7 -4
- package/dist/orchestration/index.js +49 -8
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/messaging.cjs +314 -0
- package/dist/orchestration/messaging.cjs.map +1 -0
- package/dist/orchestration/messaging.d.cts +59 -0
- package/dist/orchestration/messaging.d.ts +59 -0
- package/dist/orchestration/messaging.js +276 -0
- package/dist/orchestration/messaging.js.map +1 -0
- package/dist/orchestration/work-queue.cjs +262 -0
- package/dist/orchestration/work-queue.cjs.map +1 -0
- package/dist/orchestration/work-queue.d.cts +85 -0
- package/dist/orchestration/work-queue.d.ts +85 -0
- package/dist/orchestration/work-queue.js +226 -0
- package/dist/orchestration/work-queue.js.map +1 -0
- package/dist/patterns/event-flow.cjs +447 -0
- package/dist/patterns/event-flow.cjs.map +1 -0
- package/dist/patterns/event-flow.d.cts +115 -0
- package/dist/patterns/event-flow.d.ts +115 -0
- package/dist/patterns/event-flow.js +14 -0
- package/dist/patterns/event-flow.js.map +1 -0
- package/dist/patterns/index.cjs +423 -18
- package/dist/patterns/index.cjs.map +1 -1
- package/dist/patterns/index.d.cts +8 -5
- package/dist/patterns/index.d.ts +8 -5
- package/dist/patterns/index.js +13 -4
- package/dist/{reactive-collection-Cb1II1Fi.d.ts → reactive-collection-BAmfrGjd.d.ts} +9 -9
- package/dist/{reactive-collection-BxBqtIOE.d.cts → reactive-collection-DNV0-gFi.d.cts} +9 -9
- package/dist/{reactive-collection-storage-D-KmjE0J.d.cts → reactive-collection-storage-BNEldDyi.d.cts} +5 -5
- package/dist/{reactive-collection-storage-BNiEc-Gd.d.ts → reactive-collection-storage-YZsAQsWK.d.ts} +5 -5
- package/dist/{reactive-map-D-g3dv8I.d.cts → reactive-map-DRD1LJ2H.d.cts} +6 -6
- package/dist/{reactive-map-BcB4KsQR.d.ts → reactive-map-EsDiCmJk.d.ts} +6 -6
- package/dist/render/index.d.cts +3 -3
- package/dist/render/index.d.ts +3 -3
- package/dist/render/index.js +1 -0
- package/dist/{semantic-memory-graph-BYoIlP35.d.cts → semantic-memory-graph-DKuNzuWw.d.cts} +2 -2
- package/dist/{semantic-memory-graph-CxyXLms3.d.ts → semantic-memory-graph-uwbwJdhe.d.ts} +2 -2
- package/dist/solutions/index.cjs +4478 -2
- package/dist/solutions/index.cjs.map +1 -1
- package/dist/solutions/index.d.cts +13 -519
- package/dist/solutions/index.d.ts +13 -519
- package/dist/solutions/index.js +90 -6
- package/dist/solutions/reactive-layout/browser/index.cjs +449 -0
- package/dist/solutions/reactive-layout/browser/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/browser/index.d.cts +44 -0
- package/dist/solutions/reactive-layout/browser/index.d.ts +44 -0
- package/dist/solutions/reactive-layout/browser/index.js +69 -0
- package/dist/solutions/reactive-layout/browser/index.js.map +1 -0
- package/dist/solutions/reactive-layout/index.cjs +4266 -0
- package/dist/solutions/reactive-layout/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/index.d.cts +581 -0
- package/dist/solutions/reactive-layout/index.d.ts +581 -0
- package/dist/solutions/reactive-layout/index.js +86 -0
- package/dist/solutions/reactive-layout/index.js.map +1 -0
- package/dist/solutions/reactive-layout/node-canvas/index.cjs +545 -0
- package/dist/solutions/reactive-layout/node-canvas/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/node-canvas/index.d.cts +54 -0
- package/dist/solutions/reactive-layout/node-canvas/index.d.ts +54 -0
- package/dist/solutions/reactive-layout/node-canvas/index.js +131 -0
- package/dist/solutions/reactive-layout/node-canvas/index.js.map +1 -0
- package/dist/solutions/reactive-layout/react-native/index.cjs +494 -0
- package/dist/solutions/reactive-layout/react-native/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/react-native/index.d.cts +51 -0
- package/dist/solutions/reactive-layout/react-native/index.d.ts +51 -0
- package/dist/solutions/reactive-layout/react-native/index.js +77 -0
- package/dist/solutions/reactive-layout/react-native/index.js.map +1 -0
- package/dist/solutions/reactive-layout/skia/index.cjs +547 -0
- package/dist/solutions/reactive-layout/skia/index.cjs.map +1 -0
- package/dist/solutions/reactive-layout/skia/index.d.cts +64 -0
- package/dist/solutions/reactive-layout/skia/index.d.ts +64 -0
- package/dist/solutions/reactive-layout/skia/index.js +70 -0
- package/dist/solutions/reactive-layout/skia/index.js.map +1 -0
- package/dist/solutions/work-item/actions.cjs +2164 -0
- package/dist/solutions/work-item/actions.cjs.map +1 -0
- package/dist/solutions/work-item/actions.d.cts +201 -0
- package/dist/solutions/work-item/actions.d.ts +201 -0
- package/dist/solutions/work-item/actions.js +1454 -0
- package/dist/solutions/work-item/actions.js.map +1 -0
- package/dist/solutions/work-item/scheduling.cjs +2454 -0
- package/dist/solutions/work-item/scheduling.cjs.map +1 -0
- package/dist/solutions/work-item/scheduling.d.cts +433 -0
- package/dist/solutions/work-item/scheduling.d.ts +433 -0
- package/dist/solutions/work-item/scheduling.js +32 -0
- package/dist/solutions/work-item/scheduling.js.map +1 -0
- package/dist/solutions/work-item/work-queue.cjs +306 -0
- package/dist/solutions/work-item/work-queue.cjs.map +1 -0
- package/dist/solutions/work-item/work-queue.d.cts +71 -0
- package/dist/solutions/work-item/work-queue.d.ts +71 -0
- package/dist/solutions/work-item/work-queue.js +270 -0
- package/dist/solutions/work-item/work-queue.js.map +1 -0
- package/dist/sources/browser.cjs +169 -57
- package/dist/sources/browser.cjs.map +1 -1
- package/dist/sources/browser.d.cts +33 -6
- package/dist/sources/browser.d.ts +33 -6
- package/dist/sources/browser.js +73 -6
- package/dist/sources/browser.js.map +1 -1
- package/dist/sources/index.cjs +102 -57
- package/dist/sources/index.cjs.map +1 -1
- package/dist/sources/index.d.cts +5 -5
- package/dist/sources/index.d.ts +5 -5
- package/dist/sources/index.js +6 -5
- package/dist/sources/node.cjs.map +1 -1
- package/dist/sources/node.d.cts +4 -4
- package/dist/sources/node.d.ts +4 -4
- package/dist/sources/node.js +2 -1
- package/dist/sources/node.js.map +1 -1
- package/dist/storage/browser.js +1 -0
- package/dist/storage/browser.js.map +1 -1
- package/dist/storage/index.d.cts +5 -5
- package/dist/storage/index.d.ts +5 -5
- package/dist/storage/index.js +5 -4
- package/dist/storage/node.js +1 -0
- package/dist/storage/node.js.map +1 -1
- package/dist/store-C-joM4gh.d.ts +123 -0
- package/dist/store-CNJwmT-h.d.cts +123 -0
- package/dist/testing/index.cjs +1 -0
- package/dist/testing/index.cjs.map +1 -1
- package/dist/testing/index.d.cts +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +3 -2
- package/dist/{types-h12mNYbq.d.ts → types-BsJvElYZ.d.ts} +31 -31
- package/dist/{types-bNMSWKqF.d.cts → types-CcPIn7sy.d.cts} +31 -31
- package/dist/work-item-runtime-C3M79vE9.d.ts +228 -0
- package/dist/work-item-runtime-qaVgsL0T.d.cts +228 -0
- package/dist/work-queue/index.cjs +1132 -0
- package/dist/work-queue/index.cjs.map +1 -0
- package/dist/work-queue/index.d.cts +369 -0
- package/dist/work-queue/index.d.ts +369 -0
- package/dist/work-queue/index.js +1078 -0
- package/dist/work-queue/index.js.map +1 -0
- package/package.json +266 -2
- package/dist/chunk-COHO25CZ.js.map +0 -1
- package/dist/chunk-DK554R7P.js.map +0 -1
- package/dist/chunk-I3IHOHCJ.js.map +0 -1
- package/dist/chunk-RIIOUTGM.js.map +0 -1
- package/dist/chunk-SWTLEQL6.js.map +0 -1
- /package/dist/{chunk-JR4IKCR2.js.map → chunk-2747WN4Y.js.map} +0 -0
- /package/dist/{chunk-GDL26N2T.js.map → chunk-3KN7NJDR.js.map} +0 -0
- /package/dist/{chunk-DJC4CHLQ.js.map → chunk-43BKLFZU.js.map} +0 -0
- /package/dist/{chunk-SCRFRCGR.js.map → chunk-BSQGE5PS.js.map} +0 -0
- /package/dist/{chunk-Y3ZLRGHC.js.map → chunk-CZNV3VXM.js.map} +0 -0
- /package/dist/{chunk-JIMUDQN3.js.map → chunk-FBUU43PM.js.map} +0 -0
- /package/dist/{chunk-D6BG7U6A.js.map → chunk-IXZBUWSP.js.map} +0 -0
- /package/dist/{chunk-PKVBHGBM.js.map → chunk-SS2A464I.js.map} +0 -0
- /package/dist/{chunk-G4M3NHRJ.js.map → chunk-V7CIJE4B.js.map} +0 -0
- /package/dist/{chunk-TEW47IVR.js.map → chunk-VPEFSDME.js.map} +0 -0
package/dist/graph/index.cjs
CHANGED
|
@@ -94,6 +94,7 @@ var TIER = {
|
|
|
94
94
|
START: TIER_START,
|
|
95
95
|
PAUSE: TIER_CONTROL,
|
|
96
96
|
RESUME: TIER_CONTROL,
|
|
97
|
+
PULL: TIER_CONTROL,
|
|
97
98
|
DIRTY: TIER_NOTIFICATION,
|
|
98
99
|
DATA: TIER_VALUE,
|
|
99
100
|
RESOLVED: TIER_VALUE,
|
|
@@ -1260,6 +1261,17 @@ function isNodeRuntimeReleased(n) {
|
|
|
1260
1261
|
function terminalView(t) {
|
|
1261
1262
|
return t === void 0 ? false : t;
|
|
1262
1263
|
}
|
|
1264
|
+
function normalizePullDemand(demand) {
|
|
1265
|
+
if (typeof demand !== "object" || demand === null || Array.isArray(demand)) {
|
|
1266
|
+
throw new Error("ctx.up: PULL requires { pullId, params? } demand payload (D269)");
|
|
1267
|
+
}
|
|
1268
|
+
const pullId = demand.pullId;
|
|
1269
|
+
if (typeof pullId !== "string" && typeof pullId !== "symbol") {
|
|
1270
|
+
throw new Error("ctx.up: PULL demand requires a string or symbol pullId (D269)");
|
|
1271
|
+
}
|
|
1272
|
+
const params = demand.params;
|
|
1273
|
+
return params === void 0 ? { pullId } : { pullId, params };
|
|
1274
|
+
}
|
|
1263
1275
|
function validateDownPayloads(msgs) {
|
|
1264
1276
|
for (const m of msgs) {
|
|
1265
1277
|
if (m[0] === "DATA" && m[1] === void 0) {
|
|
@@ -1303,7 +1315,7 @@ var Node = class {
|
|
|
1303
1315
|
const pull = opts.pullId !== void 0;
|
|
1304
1316
|
if (pull && pausable === false)
|
|
1305
1317
|
throw new Error(
|
|
1306
|
-
"node: pullId is incompatible with pausable:false \u2014 a pull node
|
|
1318
|
+
"node: pullId is incompatible with pausable:false \u2014 a pull node uses the pausable delivery-content axis (R-pull / R-pause-modes / D55,D269)"
|
|
1307
1319
|
);
|
|
1308
1320
|
let handle;
|
|
1309
1321
|
if (handleOrFn === null) handle = null;
|
|
@@ -1326,7 +1338,6 @@ var Node = class {
|
|
|
1326
1338
|
value.status = "settled";
|
|
1327
1339
|
}
|
|
1328
1340
|
const pauseLockset = /* @__PURE__ */ new Set();
|
|
1329
|
-
if (pull) pauseLockset.add(pullLock);
|
|
1330
1341
|
this._core = core ?? new NodeCore();
|
|
1331
1342
|
const created = this._core.createSlot(
|
|
1332
1343
|
{
|
|
@@ -1367,7 +1378,9 @@ var Node = class {
|
|
|
1367
1378
|
pauseLockset,
|
|
1368
1379
|
pausedDepWaveOccurred: false,
|
|
1369
1380
|
pauseBuffer: [],
|
|
1370
|
-
demandOwed:
|
|
1381
|
+
demandOwed: void 0,
|
|
1382
|
+
activePull: void 0,
|
|
1383
|
+
pullDirtyOwed: false,
|
|
1371
1384
|
inDeliverDemand: false
|
|
1372
1385
|
},
|
|
1373
1386
|
privateState: { value: SENTINEL, persist: false },
|
|
@@ -1424,10 +1437,11 @@ var Node = class {
|
|
|
1424
1437
|
this._wave.batchDirtyOwed = false;
|
|
1425
1438
|
this._control.pauseBuffer = [];
|
|
1426
1439
|
this._control.pausedDepWaveOccurred = false;
|
|
1427
|
-
this._control.demandOwed =
|
|
1440
|
+
this._control.demandOwed = void 0;
|
|
1441
|
+
this._control.activePull = void 0;
|
|
1442
|
+
this._control.pullDirtyOwed = false;
|
|
1428
1443
|
this._control.inDeliverDemand = false;
|
|
1429
1444
|
this._control.pauseLockset.clear();
|
|
1430
|
-
if (this._slot.pull) this._control.pauseLockset.add(this._slot.pullLock);
|
|
1431
1445
|
this._privateState.value = state.ctxState.value;
|
|
1432
1446
|
this._privateState.persist = state.ctxState.persist;
|
|
1433
1447
|
if (state.version === false) {
|
|
@@ -1466,17 +1480,16 @@ var Node = class {
|
|
|
1466
1480
|
subscriberCountReaders.set(this, () => this._subscriberCount());
|
|
1467
1481
|
activationReaders.set(this, () => this._lifecycle.activated);
|
|
1468
1482
|
}
|
|
1469
|
-
/** R-pull (D55): true while a pull node is
|
|
1483
|
+
/** R-pull (D55/D272): true while a pull node is not serving a PULL demand pulse. */
|
|
1470
1484
|
_isPullQuiet() {
|
|
1471
|
-
return this._slot.pull && this._control.
|
|
1485
|
+
return this._slot.pull && this._control.activePull === void 0;
|
|
1472
1486
|
}
|
|
1473
1487
|
/**
|
|
1474
|
-
* R-pull (
|
|
1475
|
-
* triggers computation). A consumer demands one delivery by cone-routing
|
|
1476
|
-
* reference): `ctx.up([["
|
|
1477
|
-
* `ctx.upNext([["
|
|
1478
|
-
*
|
|
1479
|
-
* for inspection/describe; routing matches by the pullId value carried in the RESUME, by identity.
|
|
1488
|
+
* R-pull (D269/D272): this pull node's pullId (pure data, like {@link cache}/{@link handle} —
|
|
1489
|
+
* never triggers computation). A consumer demands one delivery by cone-routing PULL of it (no
|
|
1490
|
+
* node reference): `ctx.up([["PULL", { pullId }]])` (immediate; loops back → D37 for a self-read
|
|
1491
|
+
* dep) or `ctx.upNext([["PULL", { pullId }]])` (boundary-deferred self-demand). Undefined for a
|
|
1492
|
+
* non-pull node. The author writes the pullId verbatim; routing matches by identity.
|
|
1480
1493
|
*/
|
|
1481
1494
|
get pullId() {
|
|
1482
1495
|
return this._slot.pullLock;
|
|
@@ -1583,10 +1596,10 @@ var Node = class {
|
|
|
1583
1596
|
});
|
|
1584
1597
|
}
|
|
1585
1598
|
/**
|
|
1586
|
-
* Enqueue a deferred up-going control wave (R-up-routing / R-pull /
|
|
1599
|
+
* Enqueue a deferred up-going control/demand wave (R-up-routing / R-pull / D269): at the committed wave
|
|
1587
1600
|
* boundary, route `msgs` up from THIS node (broadcast, or up the single `towardDep` edge). The
|
|
1588
|
-
* deferred form of `ctx.up` — the SELF-demand path: a consumer issues `ctx.upNext([[
|
|
1589
|
-
* pullId]])` to demand a dep it ALSO reads; the demand applies at the boundary (not mid-fn), so
|
|
1601
|
+
* deferred form of `ctx.up` — the SELF-demand path: a consumer issues `ctx.upNext([[PULL,
|
|
1602
|
+
* { pullId }]])` to demand a dep it ALSO reads; the demand applies at the boundary (not mid-fn), so
|
|
1590
1603
|
* the pull node's delivery loops back as a FRESH wave rather than re-entering the consumer (D37 /
|
|
1591
1604
|
* R-reentrancy). Rides the same R-rewire-deferred (D47) drain as ctx.rewireNext.
|
|
1592
1605
|
*/
|
|
@@ -1801,7 +1814,6 @@ var Node = class {
|
|
|
1801
1814
|
this._lifecycle.activated = true;
|
|
1802
1815
|
const seedRestoredDeps = this._restoredActivationPending;
|
|
1803
1816
|
this._restoredActivationPending = false;
|
|
1804
|
-
if (this._slot.pull) this._control.pauseLockset.add(this._slot.pullLock);
|
|
1805
1817
|
this._dep.unsubs = new Array(this._slot.deps.length);
|
|
1806
1818
|
this._dep.idxBoxes = new Array(this._slot.deps.length);
|
|
1807
1819
|
for (const dep of this._slot.deps)
|
|
@@ -1873,7 +1885,9 @@ var Node = class {
|
|
|
1873
1885
|
this._control.pauseLockset.clear();
|
|
1874
1886
|
this._control.pauseBuffer = [];
|
|
1875
1887
|
this._control.pausedDepWaveOccurred = false;
|
|
1876
|
-
this._control.demandOwed =
|
|
1888
|
+
this._control.demandOwed = void 0;
|
|
1889
|
+
this._control.activePull = void 0;
|
|
1890
|
+
this._control.pullDirtyOwed = false;
|
|
1877
1891
|
this._value.replayRing = [];
|
|
1878
1892
|
if (!this._privateState.persist) this._privateState.value = SENTINEL;
|
|
1879
1893
|
}
|
|
@@ -1885,8 +1899,7 @@ var Node = class {
|
|
|
1885
1899
|
return this._lifecycle.subscribers.size;
|
|
1886
1900
|
}
|
|
1887
1901
|
_isRuntimeQuiescentForRelease() {
|
|
1888
|
-
|
|
1889
|
-
return !this._released && this._value.status !== "dirty" && this._value.status !== "pending" && this._wave.pending === 0 && !this._wave.insideRunWave && !this._wave.inDepMutation && !this._wave.rewireRunPending && !this._wave.batchDirtyOwed && this._dep.dirty.every((dirty) => !dirty) && this._control.pauseBuffer.length === 0 && !this._control.pausedDepWaveOccurred && !this._control.demandOwed && !this._control.inDeliverDemand && (this._control.pauseLockset.size === 0 || allowedPullQuietLock);
|
|
1902
|
+
return !this._released && this._value.status !== "dirty" && this._value.status !== "pending" && this._wave.pending === 0 && !this._wave.insideRunWave && !this._wave.inDepMutation && !this._wave.rewireRunPending && !this._wave.batchDirtyOwed && this._dep.dirty.every((dirty) => !dirty) && this._control.pauseBuffer.length === 0 && !this._control.pausedDepWaveOccurred && this._control.demandOwed === void 0 && this._control.activePull === void 0 && !this._control.inDeliverDemand && this._control.pauseLockset.size === 0;
|
|
1890
1903
|
}
|
|
1891
1904
|
_releaseRuntime() {
|
|
1892
1905
|
if (this._released) return;
|
|
@@ -1942,7 +1955,9 @@ var Node = class {
|
|
|
1942
1955
|
this._control.pauseLockset.clear();
|
|
1943
1956
|
this._control.pauseBuffer = [];
|
|
1944
1957
|
this._control.pausedDepWaveOccurred = false;
|
|
1945
|
-
this._control.demandOwed =
|
|
1958
|
+
this._control.demandOwed = void 0;
|
|
1959
|
+
this._control.activePull = void 0;
|
|
1960
|
+
this._control.pullDirtyOwed = false;
|
|
1946
1961
|
this._restoredActivationPending = false;
|
|
1947
1962
|
checkpointReaders.delete(this);
|
|
1948
1963
|
restoreWriters.delete(this);
|
|
@@ -2124,7 +2139,7 @@ var Node = class {
|
|
|
2124
2139
|
this._wave.rewireRunPending = true;
|
|
2125
2140
|
return;
|
|
2126
2141
|
}
|
|
2127
|
-
if (this._slot.pausable === true && this._isPaused()) {
|
|
2142
|
+
if (this._slot.pausable === true && (this._isPaused() || this._isPullQuiet())) {
|
|
2128
2143
|
this._control.pausedDepWaveOccurred = true;
|
|
2129
2144
|
return;
|
|
2130
2145
|
}
|
|
@@ -2264,10 +2279,11 @@ var Node = class {
|
|
|
2264
2279
|
unsubscribeDep: (dep, fn) => this._requestRewireNext({ kind: "remove", dep, fn }),
|
|
2265
2280
|
replaceDeps: (deps, fn) => this._requestRewireNext({ kind: "set", deps, fn })
|
|
2266
2281
|
},
|
|
2267
|
-
// R-up-routing / R-pull (
|
|
2268
|
-
//
|
|
2282
|
+
// R-up-routing / R-pull (D269): deferred up — route a control/demand wave (e.g. PULL)
|
|
2283
|
+
// up the declared cone at the committed boundary. The SELF-demand path: an
|
|
2269
2284
|
// immediate ctx.up whose delivery loops back re-enters this fn (D37 / R-reentrancy).
|
|
2270
2285
|
upNext: (msgs, towardDep) => this._requestUpNext(msgs, towardDep),
|
|
2286
|
+
...this._control.activePull === void 0 ? {} : { pull: this._control.activePull },
|
|
2271
2287
|
[CTX_DEP_CACHE]: { latest: snapshot?.latest ?? this._dep.prev },
|
|
2272
2288
|
[CTX_NODE_BINDING]: {
|
|
2273
2289
|
dispatcher: this._slot.dispatcher,
|
|
@@ -2282,6 +2298,11 @@ var Node = class {
|
|
|
2282
2298
|
_refreshCtx(ctx) {
|
|
2283
2299
|
ctx.waveData = this._dep.waveData;
|
|
2284
2300
|
ctx.terminal = this._dep.terminalInput.map(terminalView);
|
|
2301
|
+
if (this._control.activePull === void 0) {
|
|
2302
|
+
delete ctx.pull;
|
|
2303
|
+
} else {
|
|
2304
|
+
ctx.pull = this._control.activePull;
|
|
2305
|
+
}
|
|
2285
2306
|
ctx[CTX_DEP_CACHE] = { latest: this._dep.prev };
|
|
2286
2307
|
}
|
|
2287
2308
|
_makeState() {
|
|
@@ -2374,7 +2395,7 @@ var Node = class {
|
|
|
2374
2395
|
plannedVersions[i] = plannedVersion;
|
|
2375
2396
|
}
|
|
2376
2397
|
}
|
|
2377
|
-
if (hasTier3 && !this._wave.insideRunWave && !this._wave.emittedDirtyThisWave) {
|
|
2398
|
+
if (hasTier3 && (!this._wave.insideRunWave || this._control.pullDirtyOwed) && !this._wave.emittedDirtyThisWave) {
|
|
2378
2399
|
this._wave.emittedDirtyThisWave = true;
|
|
2379
2400
|
this._value.status = "dirty";
|
|
2380
2401
|
this._emitToSubs(["DIRTY"], { wave: deliveryWave, last: false });
|
|
@@ -2454,13 +2475,18 @@ var Node = class {
|
|
|
2454
2475
|
if (m[0] === "PAUSE") {
|
|
2455
2476
|
this._pauseAcquire(m[1]);
|
|
2456
2477
|
} else if (m[0] === "RESUME") {
|
|
2457
|
-
if (this.
|
|
2458
|
-
if (!this._markDemandRouted(m[1], routeState)) this._onDemand();
|
|
2459
|
-
} else if (this._control.pauseLockset.has(m[1])) {
|
|
2478
|
+
if (this._control.pauseLockset.has(m[1])) {
|
|
2460
2479
|
this._pauseRelease(m[1]);
|
|
2461
2480
|
} else {
|
|
2462
2481
|
this._forwardUp(m, towardDep, routeState);
|
|
2463
2482
|
}
|
|
2483
|
+
} else if (m[0] === "PULL") {
|
|
2484
|
+
const demand = normalizePullDemand(m[1]);
|
|
2485
|
+
if (this._slot.pull && demand.pullId === this._slot.pullLock) {
|
|
2486
|
+
if (!this._markDemandRouted(demand.pullId, routeState)) this._onDemand(demand);
|
|
2487
|
+
} else {
|
|
2488
|
+
this._forwardUp(["PULL", demand], towardDep, routeState);
|
|
2489
|
+
}
|
|
2464
2490
|
} else if (this._slot.deps.length === 0) {
|
|
2465
2491
|
if (m[0] === "INVALIDATE") this._down([["INVALIDATE"]]);
|
|
2466
2492
|
} else {
|
|
@@ -2482,7 +2508,7 @@ var Node = class {
|
|
|
2482
2508
|
* Forward one up-going control message toward deps (R-up-routing): up the single declared edge
|
|
2483
2509
|
* `towardDep` (directed — prunes other branches; only meaningful on the issuer's FIRST hop) or
|
|
2484
2510
|
* broadcast up ALL deps. A depless source has no deps → the message DROPS here (the terminus —
|
|
2485
|
-
* e.g. a cone-routed
|
|
2511
|
+
* e.g. a cone-routed PULL whose pullId no node up this cone holds, R-up-at-source). Recursive
|
|
2486
2512
|
* forwarding carries the same per-wave route state and no `towardDep` → broadcast beyond the
|
|
2487
2513
|
* first hop.
|
|
2488
2514
|
*/
|
|
@@ -2501,9 +2527,7 @@ var Node = class {
|
|
|
2501
2527
|
}
|
|
2502
2528
|
_hasBoundaryPauseLock() {
|
|
2503
2529
|
if (this._slot.pausable === false) return false;
|
|
2504
|
-
|
|
2505
|
-
if (this._slot.pull && this._control.pauseLockset.has(this._slot.pullLock)) locks--;
|
|
2506
|
-
return locks > 0;
|
|
2530
|
+
return this._control.pauseLockset.size > 0;
|
|
2507
2531
|
}
|
|
2508
2532
|
_isAsyncPool() {
|
|
2509
2533
|
return this._slot.handle !== null && this._slot.dispatcher.poolKind(this._slot.handle.poolId) === "async";
|
|
@@ -2514,17 +2538,19 @@ var Node = class {
|
|
|
2514
2538
|
_pauseRelease(lockId) {
|
|
2515
2539
|
if (!this._control.pauseLockset.has(lockId)) return;
|
|
2516
2540
|
this._control.pauseLockset.delete(lockId);
|
|
2517
|
-
if (this._slot.pull && this._control.demandOwed) this._fireOwedDemandIfReady();
|
|
2541
|
+
if (this._slot.pull && this._control.demandOwed !== void 0) this._fireOwedDemandIfReady();
|
|
2518
2542
|
if (this._hasBoundaryPauseLock()) return;
|
|
2519
2543
|
scheduleBoundaryDrain(this._core);
|
|
2520
|
-
if (this.
|
|
2544
|
+
if (this._slot.pull) return;
|
|
2521
2545
|
this._onResume();
|
|
2522
2546
|
}
|
|
2523
2547
|
_onResume() {
|
|
2524
2548
|
if (this._value.terminal !== void 0) {
|
|
2525
2549
|
this._control.pauseBuffer = [];
|
|
2526
2550
|
this._control.pausedDepWaveOccurred = false;
|
|
2527
|
-
this._control.demandOwed =
|
|
2551
|
+
this._control.demandOwed = void 0;
|
|
2552
|
+
this._control.activePull = void 0;
|
|
2553
|
+
this._control.pullDirtyOwed = false;
|
|
2528
2554
|
return;
|
|
2529
2555
|
}
|
|
2530
2556
|
if (this._control.pauseBuffer.length > 0) {
|
|
@@ -2538,41 +2564,38 @@ var Node = class {
|
|
|
2538
2564
|
}
|
|
2539
2565
|
}
|
|
2540
2566
|
/**
|
|
2541
|
-
* R-pull (
|
|
2567
|
+
* R-pull (D269): can this pull node fire a demand NOW? — not terminal, settle-ready (_pending===0),
|
|
2542
2568
|
* and no OTHER (non-pullId) lock holds it paused. The gate that decides fire-now vs OWE.
|
|
2543
2569
|
*/
|
|
2544
2570
|
_canFireDemand() {
|
|
2545
2571
|
if (this._value.terminal !== void 0 || this._wave.pending > 0) return false;
|
|
2546
|
-
|
|
2547
|
-
return this._control.pauseLockset.size <= own;
|
|
2572
|
+
return this._control.pauseLockset.size === 0;
|
|
2548
2573
|
}
|
|
2549
2574
|
/**
|
|
2550
|
-
* R-pull (
|
|
2551
|
-
*
|
|
2552
|
-
* `finally` so a throwing pull fn (graph-less node, no D30 catch) cannot leave the node
|
|
2553
|
-
* permanently non-quiet (the wedge-fix silently disabled) — QA-found robustness fix.
|
|
2575
|
+
* R-pull (D269/D272): deliver ONE demand pulse — install activePull so the demand wave may
|
|
2576
|
+
* emit, fire it, then clear activePull so the node is quiet again (1:1).
|
|
2554
2577
|
*/
|
|
2555
|
-
_deliverPullDemand() {
|
|
2556
|
-
this._control.demandOwed =
|
|
2578
|
+
_deliverPullDemand(demand) {
|
|
2579
|
+
this._control.demandOwed = void 0;
|
|
2580
|
+
this._control.activePull = demand;
|
|
2557
2581
|
this._control.inDeliverDemand = true;
|
|
2558
|
-
this._control.pauseLockset.delete(this._slot.pullLock);
|
|
2559
2582
|
try {
|
|
2560
2583
|
this._firePullDemand();
|
|
2561
2584
|
} finally {
|
|
2562
|
-
this._control.
|
|
2585
|
+
this._control.activePull = void 0;
|
|
2563
2586
|
this._control.inDeliverDemand = false;
|
|
2564
2587
|
}
|
|
2565
2588
|
}
|
|
2566
2589
|
/**
|
|
2567
|
-
* R-pull (
|
|
2590
|
+
* R-pull (D269): a cone-routed PULL of THIS node's pullId arrived (R-up-routing) = a DEMAND.
|
|
2568
2591
|
* Fire immediately if able; else OWE it — pin-5 (a dep DIRTY in flight, _pending>0) or F4/F5 (an
|
|
2569
2592
|
* external PAUSE lock co-holds the node) — and fire when the node next becomes able. A demand
|
|
2570
2593
|
* arriving WHILE a delivery is in flight (synchronous re-entry) is DROPPED (1:1, QA guard).
|
|
2571
2594
|
*/
|
|
2572
|
-
_onDemand() {
|
|
2595
|
+
_onDemand(demand) {
|
|
2573
2596
|
if (this._control.inDeliverDemand) return;
|
|
2574
|
-
if (this._canFireDemand()) this._deliverPullDemand();
|
|
2575
|
-
else this._control.demandOwed =
|
|
2597
|
+
if (this._canFireDemand()) this._deliverPullDemand(demand);
|
|
2598
|
+
else this._control.demandOwed = demand;
|
|
2576
2599
|
}
|
|
2577
2600
|
/**
|
|
2578
2601
|
* R-pull (D55): service ONE demand. Delivery content = the orthogonal pausable mode:
|
|
@@ -2585,33 +2608,53 @@ var Node = class {
|
|
|
2585
2608
|
* `_markDirty` relays the leading DIRTY (not absorbed).
|
|
2586
2609
|
*/
|
|
2587
2610
|
_firePullDemand() {
|
|
2611
|
+
let drainedBuffer = false;
|
|
2588
2612
|
if (this._control.pauseBuffer.length > 0) {
|
|
2589
2613
|
const buf = this._control.pauseBuffer;
|
|
2590
2614
|
this._control.pauseBuffer = [];
|
|
2591
2615
|
for (const wave of buf) this._down(wave);
|
|
2616
|
+
drainedBuffer = true;
|
|
2592
2617
|
}
|
|
2618
|
+
if (drainedBuffer) return;
|
|
2593
2619
|
if (this._control.pausedDepWaveOccurred) {
|
|
2594
2620
|
const gated = this._slot.handle !== null && !this._wave.hasCalledFnOnce && !(this._slot.partial || this._allDepsSettled());
|
|
2595
2621
|
if (this._wave.pending > 0 || gated) return;
|
|
2596
2622
|
this._control.pausedDepWaveOccurred = false;
|
|
2597
|
-
this.
|
|
2598
|
-
this.
|
|
2623
|
+
this._wave.emittedDirtyThisWave = false;
|
|
2624
|
+
this._control.pullDirtyOwed = true;
|
|
2625
|
+
try {
|
|
2626
|
+
this._tryRun();
|
|
2627
|
+
} finally {
|
|
2628
|
+
this._control.pullDirtyOwed = false;
|
|
2629
|
+
}
|
|
2630
|
+
return;
|
|
2631
|
+
}
|
|
2632
|
+
if (this._slot.handle !== null) {
|
|
2633
|
+
if (!this._wave.hasCalledFnOnce && !(this._slot.partial || this._allDepsSettled())) return;
|
|
2634
|
+
this._wave.emittedDirtyThisWave = false;
|
|
2635
|
+
this._control.pullDirtyOwed = true;
|
|
2636
|
+
try {
|
|
2637
|
+
this._runWave();
|
|
2638
|
+
} finally {
|
|
2639
|
+
this._control.pullDirtyOwed = false;
|
|
2640
|
+
}
|
|
2599
2641
|
}
|
|
2600
2642
|
}
|
|
2601
2643
|
/**
|
|
2602
|
-
* R-pull (
|
|
2644
|
+
* R-pull (D269): fire a demand that was OWED (deferred at demand time) once the node becomes
|
|
2603
2645
|
* able — called from the dep-settle arms (DATA/RESOLVED/INVALIDATE/terminal drain _pending, pin-5
|
|
2604
2646
|
* + B1/F6) and from `_pauseRelease` (an external PAUSE lock releases, F4/F5).
|
|
2605
2647
|
*/
|
|
2606
2648
|
_fireOwedDemandIfReady() {
|
|
2607
2649
|
if (this._control.inDeliverDemand) return;
|
|
2608
|
-
if (this._slot.pull && this._control.demandOwed && this._canFireDemand())
|
|
2609
|
-
this._deliverPullDemand();
|
|
2650
|
+
if (this._slot.pull && this._control.demandOwed !== void 0 && this._canFireDemand()) {
|
|
2651
|
+
this._deliverPullDemand(this._control.demandOwed);
|
|
2652
|
+
}
|
|
2610
2653
|
}
|
|
2611
2654
|
/** Should an outgoing settle slice be deferred into the pause buffer? */
|
|
2612
2655
|
_shouldBufferOnPause() {
|
|
2613
2656
|
if (this._slot.pausable === false) return false;
|
|
2614
|
-
if (!this._isPaused()) return false;
|
|
2657
|
+
if (!this._isPaused() && !this._isPullQuiet()) return false;
|
|
2615
2658
|
if (this._slot.pausable === "resumeAll") return true;
|
|
2616
2659
|
if (!this._wave.insideRunWave && this._isAsyncPool() && this._slot.deps.length > 0) return true;
|
|
2617
2660
|
return false;
|
|
@@ -2651,7 +2694,9 @@ var Node = class {
|
|
|
2651
2694
|
this._control.pauseLockset.clear();
|
|
2652
2695
|
this._control.pauseBuffer = [];
|
|
2653
2696
|
this._control.pausedDepWaveOccurred = false;
|
|
2654
|
-
this._control.demandOwed =
|
|
2697
|
+
this._control.demandOwed = void 0;
|
|
2698
|
+
this._control.activePull = void 0;
|
|
2699
|
+
this._control.pullDirtyOwed = false;
|
|
2655
2700
|
this._value.replayRing = [];
|
|
2656
2701
|
const isCompute = this._slot.handle !== null || this._slot.deps.length > 0;
|
|
2657
2702
|
if (isCompute) {
|
|
@@ -3053,7 +3098,10 @@ function collectionCore(backend, factory, opts = {}, restore) {
|
|
|
3053
3098
|
name: name ? `${name}.delta` : void 0
|
|
3054
3099
|
});
|
|
3055
3100
|
const pullId = /* @__PURE__ */ Symbol(name ? `${name}.snapshot` : `${factory}.snapshot`);
|
|
3101
|
+
let deliveredVersion = backend.version;
|
|
3056
3102
|
const snapFn = (ctx) => {
|
|
3103
|
+
if (ctx.pull !== void 0 && backend.version === deliveredVersion) return;
|
|
3104
|
+
deliveredVersion = backend.version;
|
|
3057
3105
|
ctx.down([["DATA", backend.snapshot()]]);
|
|
3058
3106
|
};
|
|
3059
3107
|
const snapshot = graph2 ? graph2.node([delta], snapFn, {
|
|
@@ -6221,7 +6269,13 @@ var Graph = class {
|
|
|
6221
6269
|
}
|
|
6222
6270
|
/** Look up a registered node by its id. */
|
|
6223
6271
|
find(id) {
|
|
6224
|
-
|
|
6272
|
+
const local = this._byId.get(id);
|
|
6273
|
+
if (local !== void 0) return local;
|
|
6274
|
+
const separator = id.indexOf("::");
|
|
6275
|
+
if (separator < 0) return void 0;
|
|
6276
|
+
const mountPath = id.slice(0, separator);
|
|
6277
|
+
const childPath = id.slice(separator + 2);
|
|
6278
|
+
return this._mounts.find((mount) => mount.at === mountPath)?.graph.find(childPath);
|
|
6225
6279
|
}
|
|
6226
6280
|
_releaseNodes(nodes, _opts = {}) {
|
|
6227
6281
|
const seen = /* @__PURE__ */ new Set();
|