@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
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passive DATA-level result vocabulary (D184).
|
|
3
|
+
*
|
|
4
|
+
* These shapes are ordinary payload facts. They are not protocol ERROR messages and
|
|
5
|
+
* carry no wave terminal or lifecycle semantics.
|
|
6
|
+
*/
|
|
7
|
+
interface DataIssue {
|
|
8
|
+
readonly kind: "issue";
|
|
9
|
+
readonly code: string;
|
|
10
|
+
readonly message: string;
|
|
11
|
+
readonly severity?: "info" | "warning" | "error";
|
|
12
|
+
readonly source?: string;
|
|
13
|
+
readonly subjectId?: string;
|
|
14
|
+
readonly correlationId?: string;
|
|
15
|
+
readonly causationId?: string;
|
|
16
|
+
readonly path?: readonly (string | number)[];
|
|
17
|
+
readonly refs?: readonly string[];
|
|
18
|
+
readonly retryable?: boolean;
|
|
19
|
+
readonly details?: unknown;
|
|
20
|
+
readonly metadata?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
interface DataOk<T> {
|
|
23
|
+
readonly kind: "ok";
|
|
24
|
+
readonly value: T;
|
|
25
|
+
readonly issues?: readonly DataIssue[];
|
|
26
|
+
readonly metadata?: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
interface DataError<E extends DataIssue = DataIssue> {
|
|
29
|
+
readonly kind: "error";
|
|
30
|
+
readonly error: E;
|
|
31
|
+
readonly issues?: readonly DataIssue[];
|
|
32
|
+
readonly metadata?: Record<string, unknown>;
|
|
33
|
+
}
|
|
34
|
+
type DataResult<T, E extends DataIssue = DataIssue> = DataOk<T> | DataError<E>;
|
|
35
|
+
|
|
36
|
+
export type { DataError, DataIssue, DataOk, DataResult };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passive DATA-level result vocabulary (D184).
|
|
3
|
+
*
|
|
4
|
+
* These shapes are ordinary payload facts. They are not protocol ERROR messages and
|
|
5
|
+
* carry no wave terminal or lifecycle semantics.
|
|
6
|
+
*/
|
|
7
|
+
interface DataIssue {
|
|
8
|
+
readonly kind: "issue";
|
|
9
|
+
readonly code: string;
|
|
10
|
+
readonly message: string;
|
|
11
|
+
readonly severity?: "info" | "warning" | "error";
|
|
12
|
+
readonly source?: string;
|
|
13
|
+
readonly subjectId?: string;
|
|
14
|
+
readonly correlationId?: string;
|
|
15
|
+
readonly causationId?: string;
|
|
16
|
+
readonly path?: readonly (string | number)[];
|
|
17
|
+
readonly refs?: readonly string[];
|
|
18
|
+
readonly retryable?: boolean;
|
|
19
|
+
readonly details?: unknown;
|
|
20
|
+
readonly metadata?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
interface DataOk<T> {
|
|
23
|
+
readonly kind: "ok";
|
|
24
|
+
readonly value: T;
|
|
25
|
+
readonly issues?: readonly DataIssue[];
|
|
26
|
+
readonly metadata?: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
interface DataError<E extends DataIssue = DataIssue> {
|
|
29
|
+
readonly kind: "error";
|
|
30
|
+
readonly error: E;
|
|
31
|
+
readonly issues?: readonly DataIssue[];
|
|
32
|
+
readonly metadata?: Record<string, unknown>;
|
|
33
|
+
}
|
|
34
|
+
type DataResult<T, E extends DataIssue = DataIssue> = DataOk<T> | DataError<E>;
|
|
35
|
+
|
|
36
|
+
export type { DataError, DataIssue, DataOk, DataResult };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -52,6 +52,7 @@ var TIER = {
|
|
|
52
52
|
START: TIER_START,
|
|
53
53
|
PAUSE: TIER_CONTROL,
|
|
54
54
|
RESUME: TIER_CONTROL,
|
|
55
|
+
PULL: TIER_CONTROL,
|
|
55
56
|
DIRTY: TIER_NOTIFICATION,
|
|
56
57
|
DATA: TIER_VALUE,
|
|
57
58
|
RESOLVED: TIER_VALUE,
|
|
@@ -908,6 +909,17 @@ function releaseRuntimeOfNode(n) {
|
|
|
908
909
|
function terminalView(t) {
|
|
909
910
|
return t === void 0 ? false : t;
|
|
910
911
|
}
|
|
912
|
+
function normalizePullDemand(demand) {
|
|
913
|
+
if (typeof demand !== "object" || demand === null || Array.isArray(demand)) {
|
|
914
|
+
throw new Error("ctx.up: PULL requires { pullId, params? } demand payload (D269)");
|
|
915
|
+
}
|
|
916
|
+
const pullId = demand.pullId;
|
|
917
|
+
if (typeof pullId !== "string" && typeof pullId !== "symbol") {
|
|
918
|
+
throw new Error("ctx.up: PULL demand requires a string or symbol pullId (D269)");
|
|
919
|
+
}
|
|
920
|
+
const params = demand.params;
|
|
921
|
+
return params === void 0 ? { pullId } : { pullId, params };
|
|
922
|
+
}
|
|
911
923
|
function validateDownPayloads(msgs) {
|
|
912
924
|
for (const m of msgs) {
|
|
913
925
|
if (m[0] === "DATA" && m[1] === void 0) {
|
|
@@ -951,7 +963,7 @@ var Node = class {
|
|
|
951
963
|
const pull = opts.pullId !== void 0;
|
|
952
964
|
if (pull && pausable === false)
|
|
953
965
|
throw new Error(
|
|
954
|
-
"node: pullId is incompatible with pausable:false \u2014 a pull node
|
|
966
|
+
"node: pullId is incompatible with pausable:false \u2014 a pull node uses the pausable delivery-content axis (R-pull / R-pause-modes / D55,D269)"
|
|
955
967
|
);
|
|
956
968
|
let handle;
|
|
957
969
|
if (handleOrFn === null) handle = null;
|
|
@@ -974,7 +986,6 @@ var Node = class {
|
|
|
974
986
|
value.status = "settled";
|
|
975
987
|
}
|
|
976
988
|
const pauseLockset = /* @__PURE__ */ new Set();
|
|
977
|
-
if (pull) pauseLockset.add(pullLock);
|
|
978
989
|
this._core = core ?? new NodeCore();
|
|
979
990
|
const created = this._core.createSlot(
|
|
980
991
|
{
|
|
@@ -1015,7 +1026,9 @@ var Node = class {
|
|
|
1015
1026
|
pauseLockset,
|
|
1016
1027
|
pausedDepWaveOccurred: false,
|
|
1017
1028
|
pauseBuffer: [],
|
|
1018
|
-
demandOwed:
|
|
1029
|
+
demandOwed: void 0,
|
|
1030
|
+
activePull: void 0,
|
|
1031
|
+
pullDirtyOwed: false,
|
|
1019
1032
|
inDeliverDemand: false
|
|
1020
1033
|
},
|
|
1021
1034
|
privateState: { value: SENTINEL, persist: false },
|
|
@@ -1072,10 +1085,11 @@ var Node = class {
|
|
|
1072
1085
|
this._wave.batchDirtyOwed = false;
|
|
1073
1086
|
this._control.pauseBuffer = [];
|
|
1074
1087
|
this._control.pausedDepWaveOccurred = false;
|
|
1075
|
-
this._control.demandOwed =
|
|
1088
|
+
this._control.demandOwed = void 0;
|
|
1089
|
+
this._control.activePull = void 0;
|
|
1090
|
+
this._control.pullDirtyOwed = false;
|
|
1076
1091
|
this._control.inDeliverDemand = false;
|
|
1077
1092
|
this._control.pauseLockset.clear();
|
|
1078
|
-
if (this._slot.pull) this._control.pauseLockset.add(this._slot.pullLock);
|
|
1079
1093
|
this._privateState.value = state.ctxState.value;
|
|
1080
1094
|
this._privateState.persist = state.ctxState.persist;
|
|
1081
1095
|
if (state.version === false) {
|
|
@@ -1114,17 +1128,16 @@ var Node = class {
|
|
|
1114
1128
|
subscriberCountReaders.set(this, () => this._subscriberCount());
|
|
1115
1129
|
activationReaders.set(this, () => this._lifecycle.activated);
|
|
1116
1130
|
}
|
|
1117
|
-
/** R-pull (D55): true while a pull node is
|
|
1131
|
+
/** R-pull (D55/D272): true while a pull node is not serving a PULL demand pulse. */
|
|
1118
1132
|
_isPullQuiet() {
|
|
1119
|
-
return this._slot.pull && this._control.
|
|
1133
|
+
return this._slot.pull && this._control.activePull === void 0;
|
|
1120
1134
|
}
|
|
1121
1135
|
/**
|
|
1122
|
-
* R-pull (
|
|
1123
|
-
* triggers computation). A consumer demands one delivery by cone-routing
|
|
1124
|
-
* reference): `ctx.up([["
|
|
1125
|
-
* `ctx.upNext([["
|
|
1126
|
-
*
|
|
1127
|
-
* for inspection/describe; routing matches by the pullId value carried in the RESUME, by identity.
|
|
1136
|
+
* R-pull (D269/D272): this pull node's pullId (pure data, like {@link cache}/{@link handle} —
|
|
1137
|
+
* never triggers computation). A consumer demands one delivery by cone-routing PULL of it (no
|
|
1138
|
+
* node reference): `ctx.up([["PULL", { pullId }]])` (immediate; loops back → D37 for a self-read
|
|
1139
|
+
* dep) or `ctx.upNext([["PULL", { pullId }]])` (boundary-deferred self-demand). Undefined for a
|
|
1140
|
+
* non-pull node. The author writes the pullId verbatim; routing matches by identity.
|
|
1128
1141
|
*/
|
|
1129
1142
|
get pullId() {
|
|
1130
1143
|
return this._slot.pullLock;
|
|
@@ -1231,10 +1244,10 @@ var Node = class {
|
|
|
1231
1244
|
});
|
|
1232
1245
|
}
|
|
1233
1246
|
/**
|
|
1234
|
-
* Enqueue a deferred up-going control wave (R-up-routing / R-pull /
|
|
1247
|
+
* Enqueue a deferred up-going control/demand wave (R-up-routing / R-pull / D269): at the committed wave
|
|
1235
1248
|
* boundary, route `msgs` up from THIS node (broadcast, or up the single `towardDep` edge). The
|
|
1236
|
-
* deferred form of `ctx.up` — the SELF-demand path: a consumer issues `ctx.upNext([[
|
|
1237
|
-
* pullId]])` to demand a dep it ALSO reads; the demand applies at the boundary (not mid-fn), so
|
|
1249
|
+
* deferred form of `ctx.up` — the SELF-demand path: a consumer issues `ctx.upNext([[PULL,
|
|
1250
|
+
* { pullId }]])` to demand a dep it ALSO reads; the demand applies at the boundary (not mid-fn), so
|
|
1238
1251
|
* the pull node's delivery loops back as a FRESH wave rather than re-entering the consumer (D37 /
|
|
1239
1252
|
* R-reentrancy). Rides the same R-rewire-deferred (D47) drain as ctx.rewireNext.
|
|
1240
1253
|
*/
|
|
@@ -1449,7 +1462,6 @@ var Node = class {
|
|
|
1449
1462
|
this._lifecycle.activated = true;
|
|
1450
1463
|
const seedRestoredDeps = this._restoredActivationPending;
|
|
1451
1464
|
this._restoredActivationPending = false;
|
|
1452
|
-
if (this._slot.pull) this._control.pauseLockset.add(this._slot.pullLock);
|
|
1453
1465
|
this._dep.unsubs = new Array(this._slot.deps.length);
|
|
1454
1466
|
this._dep.idxBoxes = new Array(this._slot.deps.length);
|
|
1455
1467
|
for (const dep of this._slot.deps)
|
|
@@ -1521,7 +1533,9 @@ var Node = class {
|
|
|
1521
1533
|
this._control.pauseLockset.clear();
|
|
1522
1534
|
this._control.pauseBuffer = [];
|
|
1523
1535
|
this._control.pausedDepWaveOccurred = false;
|
|
1524
|
-
this._control.demandOwed =
|
|
1536
|
+
this._control.demandOwed = void 0;
|
|
1537
|
+
this._control.activePull = void 0;
|
|
1538
|
+
this._control.pullDirtyOwed = false;
|
|
1525
1539
|
this._value.replayRing = [];
|
|
1526
1540
|
if (!this._privateState.persist) this._privateState.value = SENTINEL;
|
|
1527
1541
|
}
|
|
@@ -1533,8 +1547,7 @@ var Node = class {
|
|
|
1533
1547
|
return this._lifecycle.subscribers.size;
|
|
1534
1548
|
}
|
|
1535
1549
|
_isRuntimeQuiescentForRelease() {
|
|
1536
|
-
|
|
1537
|
-
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);
|
|
1550
|
+
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;
|
|
1538
1551
|
}
|
|
1539
1552
|
_releaseRuntime() {
|
|
1540
1553
|
if (this._released) return;
|
|
@@ -1590,7 +1603,9 @@ var Node = class {
|
|
|
1590
1603
|
this._control.pauseLockset.clear();
|
|
1591
1604
|
this._control.pauseBuffer = [];
|
|
1592
1605
|
this._control.pausedDepWaveOccurred = false;
|
|
1593
|
-
this._control.demandOwed =
|
|
1606
|
+
this._control.demandOwed = void 0;
|
|
1607
|
+
this._control.activePull = void 0;
|
|
1608
|
+
this._control.pullDirtyOwed = false;
|
|
1594
1609
|
this._restoredActivationPending = false;
|
|
1595
1610
|
checkpointReaders.delete(this);
|
|
1596
1611
|
restoreWriters.delete(this);
|
|
@@ -1772,7 +1787,7 @@ var Node = class {
|
|
|
1772
1787
|
this._wave.rewireRunPending = true;
|
|
1773
1788
|
return;
|
|
1774
1789
|
}
|
|
1775
|
-
if (this._slot.pausable === true && this._isPaused()) {
|
|
1790
|
+
if (this._slot.pausable === true && (this._isPaused() || this._isPullQuiet())) {
|
|
1776
1791
|
this._control.pausedDepWaveOccurred = true;
|
|
1777
1792
|
return;
|
|
1778
1793
|
}
|
|
@@ -1912,10 +1927,11 @@ var Node = class {
|
|
|
1912
1927
|
unsubscribeDep: (dep, fn) => this._requestRewireNext({ kind: "remove", dep, fn }),
|
|
1913
1928
|
replaceDeps: (deps, fn) => this._requestRewireNext({ kind: "set", deps, fn })
|
|
1914
1929
|
},
|
|
1915
|
-
// R-up-routing / R-pull (
|
|
1916
|
-
//
|
|
1930
|
+
// R-up-routing / R-pull (D269): deferred up — route a control/demand wave (e.g. PULL)
|
|
1931
|
+
// up the declared cone at the committed boundary. The SELF-demand path: an
|
|
1917
1932
|
// immediate ctx.up whose delivery loops back re-enters this fn (D37 / R-reentrancy).
|
|
1918
1933
|
upNext: (msgs, towardDep) => this._requestUpNext(msgs, towardDep),
|
|
1934
|
+
...this._control.activePull === void 0 ? {} : { pull: this._control.activePull },
|
|
1919
1935
|
[CTX_DEP_CACHE]: { latest: snapshot?.latest ?? this._dep.prev },
|
|
1920
1936
|
[CTX_NODE_BINDING]: {
|
|
1921
1937
|
dispatcher: this._slot.dispatcher,
|
|
@@ -1930,6 +1946,11 @@ var Node = class {
|
|
|
1930
1946
|
_refreshCtx(ctx) {
|
|
1931
1947
|
ctx.waveData = this._dep.waveData;
|
|
1932
1948
|
ctx.terminal = this._dep.terminalInput.map(terminalView);
|
|
1949
|
+
if (this._control.activePull === void 0) {
|
|
1950
|
+
delete ctx.pull;
|
|
1951
|
+
} else {
|
|
1952
|
+
ctx.pull = this._control.activePull;
|
|
1953
|
+
}
|
|
1933
1954
|
ctx[CTX_DEP_CACHE] = { latest: this._dep.prev };
|
|
1934
1955
|
}
|
|
1935
1956
|
_makeState() {
|
|
@@ -2022,7 +2043,7 @@ var Node = class {
|
|
|
2022
2043
|
plannedVersions[i] = plannedVersion;
|
|
2023
2044
|
}
|
|
2024
2045
|
}
|
|
2025
|
-
if (hasTier3 && !this._wave.insideRunWave && !this._wave.emittedDirtyThisWave) {
|
|
2046
|
+
if (hasTier3 && (!this._wave.insideRunWave || this._control.pullDirtyOwed) && !this._wave.emittedDirtyThisWave) {
|
|
2026
2047
|
this._wave.emittedDirtyThisWave = true;
|
|
2027
2048
|
this._value.status = "dirty";
|
|
2028
2049
|
this._emitToSubs(["DIRTY"], { wave: deliveryWave, last: false });
|
|
@@ -2102,13 +2123,18 @@ var Node = class {
|
|
|
2102
2123
|
if (m[0] === "PAUSE") {
|
|
2103
2124
|
this._pauseAcquire(m[1]);
|
|
2104
2125
|
} else if (m[0] === "RESUME") {
|
|
2105
|
-
if (this.
|
|
2106
|
-
if (!this._markDemandRouted(m[1], routeState)) this._onDemand();
|
|
2107
|
-
} else if (this._control.pauseLockset.has(m[1])) {
|
|
2126
|
+
if (this._control.pauseLockset.has(m[1])) {
|
|
2108
2127
|
this._pauseRelease(m[1]);
|
|
2109
2128
|
} else {
|
|
2110
2129
|
this._forwardUp(m, towardDep, routeState);
|
|
2111
2130
|
}
|
|
2131
|
+
} else if (m[0] === "PULL") {
|
|
2132
|
+
const demand = normalizePullDemand(m[1]);
|
|
2133
|
+
if (this._slot.pull && demand.pullId === this._slot.pullLock) {
|
|
2134
|
+
if (!this._markDemandRouted(demand.pullId, routeState)) this._onDemand(demand);
|
|
2135
|
+
} else {
|
|
2136
|
+
this._forwardUp(["PULL", demand], towardDep, routeState);
|
|
2137
|
+
}
|
|
2112
2138
|
} else if (this._slot.deps.length === 0) {
|
|
2113
2139
|
if (m[0] === "INVALIDATE") this._down([["INVALIDATE"]]);
|
|
2114
2140
|
} else {
|
|
@@ -2130,7 +2156,7 @@ var Node = class {
|
|
|
2130
2156
|
* Forward one up-going control message toward deps (R-up-routing): up the single declared edge
|
|
2131
2157
|
* `towardDep` (directed — prunes other branches; only meaningful on the issuer's FIRST hop) or
|
|
2132
2158
|
* broadcast up ALL deps. A depless source has no deps → the message DROPS here (the terminus —
|
|
2133
|
-
* e.g. a cone-routed
|
|
2159
|
+
* e.g. a cone-routed PULL whose pullId no node up this cone holds, R-up-at-source). Recursive
|
|
2134
2160
|
* forwarding carries the same per-wave route state and no `towardDep` → broadcast beyond the
|
|
2135
2161
|
* first hop.
|
|
2136
2162
|
*/
|
|
@@ -2149,9 +2175,7 @@ var Node = class {
|
|
|
2149
2175
|
}
|
|
2150
2176
|
_hasBoundaryPauseLock() {
|
|
2151
2177
|
if (this._slot.pausable === false) return false;
|
|
2152
|
-
|
|
2153
|
-
if (this._slot.pull && this._control.pauseLockset.has(this._slot.pullLock)) locks--;
|
|
2154
|
-
return locks > 0;
|
|
2178
|
+
return this._control.pauseLockset.size > 0;
|
|
2155
2179
|
}
|
|
2156
2180
|
_isAsyncPool() {
|
|
2157
2181
|
return this._slot.handle !== null && this._slot.dispatcher.poolKind(this._slot.handle.poolId) === "async";
|
|
@@ -2162,17 +2186,19 @@ var Node = class {
|
|
|
2162
2186
|
_pauseRelease(lockId) {
|
|
2163
2187
|
if (!this._control.pauseLockset.has(lockId)) return;
|
|
2164
2188
|
this._control.pauseLockset.delete(lockId);
|
|
2165
|
-
if (this._slot.pull && this._control.demandOwed) this._fireOwedDemandIfReady();
|
|
2189
|
+
if (this._slot.pull && this._control.demandOwed !== void 0) this._fireOwedDemandIfReady();
|
|
2166
2190
|
if (this._hasBoundaryPauseLock()) return;
|
|
2167
2191
|
scheduleBoundaryDrain(this._core);
|
|
2168
|
-
if (this.
|
|
2192
|
+
if (this._slot.pull) return;
|
|
2169
2193
|
this._onResume();
|
|
2170
2194
|
}
|
|
2171
2195
|
_onResume() {
|
|
2172
2196
|
if (this._value.terminal !== void 0) {
|
|
2173
2197
|
this._control.pauseBuffer = [];
|
|
2174
2198
|
this._control.pausedDepWaveOccurred = false;
|
|
2175
|
-
this._control.demandOwed =
|
|
2199
|
+
this._control.demandOwed = void 0;
|
|
2200
|
+
this._control.activePull = void 0;
|
|
2201
|
+
this._control.pullDirtyOwed = false;
|
|
2176
2202
|
return;
|
|
2177
2203
|
}
|
|
2178
2204
|
if (this._control.pauseBuffer.length > 0) {
|
|
@@ -2186,41 +2212,38 @@ var Node = class {
|
|
|
2186
2212
|
}
|
|
2187
2213
|
}
|
|
2188
2214
|
/**
|
|
2189
|
-
* R-pull (
|
|
2215
|
+
* R-pull (D269): can this pull node fire a demand NOW? — not terminal, settle-ready (_pending===0),
|
|
2190
2216
|
* and no OTHER (non-pullId) lock holds it paused. The gate that decides fire-now vs OWE.
|
|
2191
2217
|
*/
|
|
2192
2218
|
_canFireDemand() {
|
|
2193
2219
|
if (this._value.terminal !== void 0 || this._wave.pending > 0) return false;
|
|
2194
|
-
|
|
2195
|
-
return this._control.pauseLockset.size <= own;
|
|
2220
|
+
return this._control.pauseLockset.size === 0;
|
|
2196
2221
|
}
|
|
2197
2222
|
/**
|
|
2198
|
-
* R-pull (
|
|
2199
|
-
*
|
|
2200
|
-
* `finally` so a throwing pull fn (graph-less node, no D30 catch) cannot leave the node
|
|
2201
|
-
* permanently non-quiet (the wedge-fix silently disabled) — QA-found robustness fix.
|
|
2223
|
+
* R-pull (D269/D272): deliver ONE demand pulse — install activePull so the demand wave may
|
|
2224
|
+
* emit, fire it, then clear activePull so the node is quiet again (1:1).
|
|
2202
2225
|
*/
|
|
2203
|
-
_deliverPullDemand() {
|
|
2204
|
-
this._control.demandOwed =
|
|
2226
|
+
_deliverPullDemand(demand) {
|
|
2227
|
+
this._control.demandOwed = void 0;
|
|
2228
|
+
this._control.activePull = demand;
|
|
2205
2229
|
this._control.inDeliverDemand = true;
|
|
2206
|
-
this._control.pauseLockset.delete(this._slot.pullLock);
|
|
2207
2230
|
try {
|
|
2208
2231
|
this._firePullDemand();
|
|
2209
2232
|
} finally {
|
|
2210
|
-
this._control.
|
|
2233
|
+
this._control.activePull = void 0;
|
|
2211
2234
|
this._control.inDeliverDemand = false;
|
|
2212
2235
|
}
|
|
2213
2236
|
}
|
|
2214
2237
|
/**
|
|
2215
|
-
* R-pull (
|
|
2238
|
+
* R-pull (D269): a cone-routed PULL of THIS node's pullId arrived (R-up-routing) = a DEMAND.
|
|
2216
2239
|
* Fire immediately if able; else OWE it — pin-5 (a dep DIRTY in flight, _pending>0) or F4/F5 (an
|
|
2217
2240
|
* external PAUSE lock co-holds the node) — and fire when the node next becomes able. A demand
|
|
2218
2241
|
* arriving WHILE a delivery is in flight (synchronous re-entry) is DROPPED (1:1, QA guard).
|
|
2219
2242
|
*/
|
|
2220
|
-
_onDemand() {
|
|
2243
|
+
_onDemand(demand) {
|
|
2221
2244
|
if (this._control.inDeliverDemand) return;
|
|
2222
|
-
if (this._canFireDemand()) this._deliverPullDemand();
|
|
2223
|
-
else this._control.demandOwed =
|
|
2245
|
+
if (this._canFireDemand()) this._deliverPullDemand(demand);
|
|
2246
|
+
else this._control.demandOwed = demand;
|
|
2224
2247
|
}
|
|
2225
2248
|
/**
|
|
2226
2249
|
* R-pull (D55): service ONE demand. Delivery content = the orthogonal pausable mode:
|
|
@@ -2233,33 +2256,53 @@ var Node = class {
|
|
|
2233
2256
|
* `_markDirty` relays the leading DIRTY (not absorbed).
|
|
2234
2257
|
*/
|
|
2235
2258
|
_firePullDemand() {
|
|
2259
|
+
let drainedBuffer = false;
|
|
2236
2260
|
if (this._control.pauseBuffer.length > 0) {
|
|
2237
2261
|
const buf = this._control.pauseBuffer;
|
|
2238
2262
|
this._control.pauseBuffer = [];
|
|
2239
2263
|
for (const wave of buf) this._down(wave);
|
|
2264
|
+
drainedBuffer = true;
|
|
2240
2265
|
}
|
|
2266
|
+
if (drainedBuffer) return;
|
|
2241
2267
|
if (this._control.pausedDepWaveOccurred) {
|
|
2242
2268
|
const gated = this._slot.handle !== null && !this._wave.hasCalledFnOnce && !(this._slot.partial || this._allDepsSettled());
|
|
2243
2269
|
if (this._wave.pending > 0 || gated) return;
|
|
2244
2270
|
this._control.pausedDepWaveOccurred = false;
|
|
2245
|
-
this.
|
|
2246
|
-
this.
|
|
2271
|
+
this._wave.emittedDirtyThisWave = false;
|
|
2272
|
+
this._control.pullDirtyOwed = true;
|
|
2273
|
+
try {
|
|
2274
|
+
this._tryRun();
|
|
2275
|
+
} finally {
|
|
2276
|
+
this._control.pullDirtyOwed = false;
|
|
2277
|
+
}
|
|
2278
|
+
return;
|
|
2279
|
+
}
|
|
2280
|
+
if (this._slot.handle !== null) {
|
|
2281
|
+
if (!this._wave.hasCalledFnOnce && !(this._slot.partial || this._allDepsSettled())) return;
|
|
2282
|
+
this._wave.emittedDirtyThisWave = false;
|
|
2283
|
+
this._control.pullDirtyOwed = true;
|
|
2284
|
+
try {
|
|
2285
|
+
this._runWave();
|
|
2286
|
+
} finally {
|
|
2287
|
+
this._control.pullDirtyOwed = false;
|
|
2288
|
+
}
|
|
2247
2289
|
}
|
|
2248
2290
|
}
|
|
2249
2291
|
/**
|
|
2250
|
-
* R-pull (
|
|
2292
|
+
* R-pull (D269): fire a demand that was OWED (deferred at demand time) once the node becomes
|
|
2251
2293
|
* able — called from the dep-settle arms (DATA/RESOLVED/INVALIDATE/terminal drain _pending, pin-5
|
|
2252
2294
|
* + B1/F6) and from `_pauseRelease` (an external PAUSE lock releases, F4/F5).
|
|
2253
2295
|
*/
|
|
2254
2296
|
_fireOwedDemandIfReady() {
|
|
2255
2297
|
if (this._control.inDeliverDemand) return;
|
|
2256
|
-
if (this._slot.pull && this._control.demandOwed && this._canFireDemand())
|
|
2257
|
-
this._deliverPullDemand();
|
|
2298
|
+
if (this._slot.pull && this._control.demandOwed !== void 0 && this._canFireDemand()) {
|
|
2299
|
+
this._deliverPullDemand(this._control.demandOwed);
|
|
2300
|
+
}
|
|
2258
2301
|
}
|
|
2259
2302
|
/** Should an outgoing settle slice be deferred into the pause buffer? */
|
|
2260
2303
|
_shouldBufferOnPause() {
|
|
2261
2304
|
if (this._slot.pausable === false) return false;
|
|
2262
|
-
if (!this._isPaused()) return false;
|
|
2305
|
+
if (!this._isPaused() && !this._isPullQuiet()) return false;
|
|
2263
2306
|
if (this._slot.pausable === "resumeAll") return true;
|
|
2264
2307
|
if (!this._wave.insideRunWave && this._isAsyncPool() && this._slot.deps.length > 0) return true;
|
|
2265
2308
|
return false;
|
|
@@ -2299,7 +2342,9 @@ var Node = class {
|
|
|
2299
2342
|
this._control.pauseLockset.clear();
|
|
2300
2343
|
this._control.pauseBuffer = [];
|
|
2301
2344
|
this._control.pausedDepWaveOccurred = false;
|
|
2302
|
-
this._control.demandOwed =
|
|
2345
|
+
this._control.demandOwed = void 0;
|
|
2346
|
+
this._control.activePull = void 0;
|
|
2347
|
+
this._control.pullDirtyOwed = false;
|
|
2303
2348
|
this._value.replayRing = [];
|
|
2304
2349
|
const isCompute = this._slot.handle !== null || this._slot.deps.length > 0;
|
|
2305
2350
|
if (isCompute) {
|
|
@@ -2478,7 +2523,10 @@ function collectionCore(backend, factory, opts = {}, restore) {
|
|
|
2478
2523
|
name: name ? `${name}.delta` : void 0
|
|
2479
2524
|
});
|
|
2480
2525
|
const pullId = /* @__PURE__ */ Symbol(name ? `${name}.snapshot` : `${factory}.snapshot`);
|
|
2526
|
+
let deliveredVersion = backend.version;
|
|
2481
2527
|
const snapFn = (ctx) => {
|
|
2528
|
+
if (ctx.pull !== void 0 && backend.version === deliveredVersion) return;
|
|
2529
|
+
deliveredVersion = backend.version;
|
|
2482
2530
|
ctx.down([["DATA", backend.snapshot()]]);
|
|
2483
2531
|
};
|
|
2484
2532
|
const snapshot = graph ? graph.node([delta], snapFn, {
|