@graphrefly/graphrefly 0.23.0 → 0.24.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.
Files changed (76) hide show
  1. package/dist/{chunk-NZMBRXQV.js → chunk-5DJTTKX3.js} +11 -13
  2. package/dist/chunk-5DJTTKX3.js.map +1 -0
  3. package/dist/{chunk-XTLYW4FR.js → chunk-5WGT55R4.js} +4 -4
  4. package/dist/{chunk-CWYPA63G.js → chunk-AOCBDH4T.js} +2 -2
  5. package/dist/{chunk-HVBX5KIW.js → chunk-H4RVA4VE.js} +2 -2
  6. package/dist/{chunk-32N5A454.js → chunk-HWPIFSW2.js} +2 -2
  7. package/dist/chunk-HWPIFSW2.js.map +1 -0
  8. package/dist/{chunk-PNUZM7PC.js → chunk-IPLKX3L2.js} +6 -6
  9. package/dist/{chunk-2GQLMQVJ.js → chunk-MW4VAKAO.js} +3 -3
  10. package/dist/{chunk-JFONSPNF.js → chunk-PY4XCDLR.js} +2 -2
  11. package/dist/{chunk-263BEJJO.js → chunk-QOWVNWOC.js} +3 -3
  12. package/dist/{chunk-PX6PDUJ5.js → chunk-TDEXAMGO.js} +4 -4
  13. package/dist/{chunk-PX6PDUJ5.js.map → chunk-TDEXAMGO.js.map} +1 -1
  14. package/dist/{chunk-XRFJJ2IU.js → chunk-XOFWRC73.js} +3 -3
  15. package/dist/compat/nestjs/index.cjs +10 -12
  16. package/dist/compat/nestjs/index.cjs.map +1 -1
  17. package/dist/compat/nestjs/index.d.cts +6 -6
  18. package/dist/compat/nestjs/index.d.ts +6 -6
  19. package/dist/compat/nestjs/index.js +9 -9
  20. package/dist/core/index.cjs +10 -12
  21. package/dist/core/index.cjs.map +1 -1
  22. package/dist/core/index.d.cts +3 -3
  23. package/dist/core/index.d.ts +3 -3
  24. package/dist/core/index.js +3 -3
  25. package/dist/extra/index.cjs +10 -12
  26. package/dist/extra/index.cjs.map +1 -1
  27. package/dist/extra/index.d.cts +4 -4
  28. package/dist/extra/index.d.ts +4 -4
  29. package/dist/extra/index.js +4 -4
  30. package/dist/graph/index.cjs +10 -12
  31. package/dist/graph/index.cjs.map +1 -1
  32. package/dist/graph/index.d.cts +5 -5
  33. package/dist/graph/index.d.ts +5 -5
  34. package/dist/graph/index.js +4 -4
  35. package/dist/{graph-CEO2FkLY.d.ts → graph-B6NFqv3z.d.ts} +3 -3
  36. package/dist/{graph-BtdSRHUc.d.cts → graph-D-3JIQme.d.cts} +3 -3
  37. package/dist/{index-B0tfuXwV.d.cts → index-1z8vRTCt.d.cts} +3 -3
  38. package/dist/{index-BFGjXbiP.d.cts → index-AMWewNDe.d.cts} +2 -2
  39. package/dist/{index-BUj3ASVe.d.cts → index-BJB7t9gg.d.cts} +10 -24
  40. package/dist/{index-RXN94sHK.d.ts → index-BysCTzJz.d.ts} +3 -3
  41. package/dist/{index-DSPc5rkv.d.ts → index-C-TXEa7C.d.ts} +10 -24
  42. package/dist/{index-CkElcUY6.d.ts → index-CYkjxu3s.d.ts} +2 -2
  43. package/dist/{index-jEtF4N7L.d.ts → index-D7XgsUt7.d.ts} +2 -2
  44. package/dist/{index-DgscL7v0.d.ts → index-DiobMNwE.d.ts} +3 -3
  45. package/dist/{index-BPlWVAKY.d.cts → index-J7Kc0oIQ.d.cts} +3 -3
  46. package/dist/{index-C59uSJAH.d.cts → index-b5BYtczN.d.cts} +2 -2
  47. package/dist/index.cjs +20 -32
  48. package/dist/index.cjs.map +1 -1
  49. package/dist/index.d.cts +15 -15
  50. package/dist/index.d.ts +15 -15
  51. package/dist/index.js +21 -31
  52. package/dist/index.js.map +1 -1
  53. package/dist/{meta-3QjzotRv.d.ts → meta-CnkLA_43.d.ts} +1 -1
  54. package/dist/{meta-B-Lbs4-O.d.cts → meta-DWbkoq1s.d.cts} +1 -1
  55. package/dist/{node-C7PD3sn9.d.cts → node-B-f-Lu-k.d.cts} +15 -13
  56. package/dist/{node-C7PD3sn9.d.ts → node-B-f-Lu-k.d.ts} +15 -13
  57. package/dist/{observable-axpzv1K2.d.cts → observable-DBnrwcar.d.cts} +1 -1
  58. package/dist/{observable-EyO-moQY.d.ts → observable-uP-wy_uK.d.ts} +1 -1
  59. package/dist/patterns/reactive-layout/index.cjs +10 -12
  60. package/dist/patterns/reactive-layout/index.cjs.map +1 -1
  61. package/dist/patterns/reactive-layout/index.d.cts +5 -5
  62. package/dist/patterns/reactive-layout/index.d.ts +5 -5
  63. package/dist/patterns/reactive-layout/index.js +6 -6
  64. package/dist/{storage-DIgAr7M_.d.cts → storage-BuTdpCI1.d.cts} +1 -1
  65. package/dist/{storage-CHT5WE9m.d.ts → storage-F2X1U1x0.d.ts} +1 -1
  66. package/package.json +2 -2
  67. package/dist/chunk-32N5A454.js.map +0 -1
  68. package/dist/chunk-NZMBRXQV.js.map +0 -1
  69. /package/dist/{chunk-XTLYW4FR.js.map → chunk-5WGT55R4.js.map} +0 -0
  70. /package/dist/{chunk-CWYPA63G.js.map → chunk-AOCBDH4T.js.map} +0 -0
  71. /package/dist/{chunk-HVBX5KIW.js.map → chunk-H4RVA4VE.js.map} +0 -0
  72. /package/dist/{chunk-PNUZM7PC.js.map → chunk-IPLKX3L2.js.map} +0 -0
  73. /package/dist/{chunk-2GQLMQVJ.js.map → chunk-MW4VAKAO.js.map} +0 -0
  74. /package/dist/{chunk-JFONSPNF.js.map → chunk-PY4XCDLR.js.map} +0 -0
  75. /package/dist/{chunk-263BEJJO.js.map → chunk-QOWVNWOC.js.map} +0 -0
  76. /package/dist/{chunk-XRFJJ2IU.js.map → chunk-XOFWRC73.js.map} +0 -0
@@ -1,5 +1,5 @@
1
- export { E as ENVELOPE_VERSION, a as EvictedSubgraphInfo, b as EvictionPolicy, G as GraphCodec, J as JsonCodec, L as LazyGraphCodec, O as SIZEOF_OVERHEAD, S as SIZEOF_SYMBOL, W as WALEntry, c as createDagCborCodec, d as createDagCborZstdCodec, e as decodeEnvelope, f as encodeEnvelope, r as registerBuiltinCodecs, g as replayWAL, s as sizeof } from '../index-BFGjXbiP.cjs';
2
- export { D as DescribeFilter, e as GRAPH_META_SEGMENT, G as Graph, f as GraphActorOptions, b as GraphAttachStorageOptions, g as GraphCheckpointRecord, h as GraphDescribeOptions, i as GraphDescribeOutput, j as GraphDiagramDirection, k as GraphDiagramOptions, l as GraphDiffChange, m as GraphDiffResult, n as GraphFactoryContext, o as GraphNodeFactory, p as GraphObserveAll, q as GraphObserveOne, a as GraphOptions, r as GraphPersistSnapshot, d as GraphProfileOptions, c as GraphProfileResult, s as GraphVersionChange, t as GraphWALDiff, N as NodeProfile, O as ObserveDetail, u as ObserveEvent, v as ObserveOptions, w as ObserveResult, x as ObserveTheme, y as ObserveThemeName, R as ReachableDirection, z as ReachableOptions, T as TraceEntry, A as diffForWAL, B as graphProfile, C as reachable } from '../graph-BtdSRHUc.cjs';
3
- import '../node-C7PD3sn9.cjs';
4
- import '../meta-B-Lbs4-O.cjs';
5
- import '../storage-DIgAr7M_.cjs';
1
+ export { E as ENVELOPE_VERSION, a as EvictedSubgraphInfo, b as EvictionPolicy, G as GraphCodec, J as JsonCodec, L as LazyGraphCodec, O as SIZEOF_OVERHEAD, S as SIZEOF_SYMBOL, W as WALEntry, c as createDagCborCodec, d as createDagCborZstdCodec, e as decodeEnvelope, f as encodeEnvelope, r as registerBuiltinCodecs, g as replayWAL, s as sizeof } from '../index-AMWewNDe.cjs';
2
+ export { D as DescribeFilter, e as GRAPH_META_SEGMENT, G as Graph, f as GraphActorOptions, b as GraphAttachStorageOptions, g as GraphCheckpointRecord, h as GraphDescribeOptions, i as GraphDescribeOutput, j as GraphDiagramDirection, k as GraphDiagramOptions, l as GraphDiffChange, m as GraphDiffResult, n as GraphFactoryContext, o as GraphNodeFactory, p as GraphObserveAll, q as GraphObserveOne, a as GraphOptions, r as GraphPersistSnapshot, d as GraphProfileOptions, c as GraphProfileResult, s as GraphVersionChange, t as GraphWALDiff, N as NodeProfile, O as ObserveDetail, u as ObserveEvent, v as ObserveOptions, w as ObserveResult, x as ObserveTheme, y as ObserveThemeName, R as ReachableDirection, z as ReachableOptions, T as TraceEntry, A as diffForWAL, B as graphProfile, C as reachable } from '../graph-D-3JIQme.cjs';
3
+ import '../node-B-f-Lu-k.cjs';
4
+ import '../meta-DWbkoq1s.cjs';
5
+ import '../storage-BuTdpCI1.cjs';
@@ -1,5 +1,5 @@
1
- export { E as ENVELOPE_VERSION, a as EvictedSubgraphInfo, b as EvictionPolicy, G as GraphCodec, J as JsonCodec, L as LazyGraphCodec, O as SIZEOF_OVERHEAD, S as SIZEOF_SYMBOL, W as WALEntry, c as createDagCborCodec, d as createDagCborZstdCodec, e as decodeEnvelope, f as encodeEnvelope, r as registerBuiltinCodecs, g as replayWAL, s as sizeof } from '../index-CkElcUY6.js';
2
- export { D as DescribeFilter, e as GRAPH_META_SEGMENT, G as Graph, f as GraphActorOptions, b as GraphAttachStorageOptions, g as GraphCheckpointRecord, h as GraphDescribeOptions, i as GraphDescribeOutput, j as GraphDiagramDirection, k as GraphDiagramOptions, l as GraphDiffChange, m as GraphDiffResult, n as GraphFactoryContext, o as GraphNodeFactory, p as GraphObserveAll, q as GraphObserveOne, a as GraphOptions, r as GraphPersistSnapshot, d as GraphProfileOptions, c as GraphProfileResult, s as GraphVersionChange, t as GraphWALDiff, N as NodeProfile, O as ObserveDetail, u as ObserveEvent, v as ObserveOptions, w as ObserveResult, x as ObserveTheme, y as ObserveThemeName, R as ReachableDirection, z as ReachableOptions, T as TraceEntry, A as diffForWAL, B as graphProfile, C as reachable } from '../graph-CEO2FkLY.js';
3
- import '../node-C7PD3sn9.js';
4
- import '../meta-3QjzotRv.js';
5
- import '../storage-CHT5WE9m.js';
1
+ export { E as ENVELOPE_VERSION, a as EvictedSubgraphInfo, b as EvictionPolicy, G as GraphCodec, J as JsonCodec, L as LazyGraphCodec, O as SIZEOF_OVERHEAD, S as SIZEOF_SYMBOL, W as WALEntry, c as createDagCborCodec, d as createDagCborZstdCodec, e as decodeEnvelope, f as encodeEnvelope, r as registerBuiltinCodecs, g as replayWAL, s as sizeof } from '../index-CYkjxu3s.js';
2
+ export { D as DescribeFilter, e as GRAPH_META_SEGMENT, G as Graph, f as GraphActorOptions, b as GraphAttachStorageOptions, g as GraphCheckpointRecord, h as GraphDescribeOptions, i as GraphDescribeOutput, j as GraphDiagramDirection, k as GraphDiagramOptions, l as GraphDiffChange, m as GraphDiffResult, n as GraphFactoryContext, o as GraphNodeFactory, p as GraphObserveAll, q as GraphObserveOne, a as GraphOptions, r as GraphPersistSnapshot, d as GraphProfileOptions, c as GraphProfileResult, s as GraphVersionChange, t as GraphWALDiff, N as NodeProfile, O as ObserveDetail, u as ObserveEvent, v as ObserveOptions, w as ObserveResult, x as ObserveTheme, y as ObserveThemeName, R as ReachableDirection, z as ReachableOptions, T as TraceEntry, A as diffForWAL, B as graphProfile, C as reachable } from '../graph-B6NFqv3z.js';
3
+ import '../node-B-f-Lu-k.js';
4
+ import '../meta-CnkLA_43.js';
5
+ import '../storage-F2X1U1x0.js';
@@ -1,4 +1,4 @@
1
- import "../chunk-2GQLMQVJ.js";
1
+ import "../chunk-MW4VAKAO.js";
2
2
  import {
3
3
  GRAPH_META_SEGMENT,
4
4
  Graph,
@@ -8,8 +8,8 @@ import {
8
8
  graphProfile,
9
9
  reachable,
10
10
  sizeof
11
- } from "../chunk-XRFJJ2IU.js";
12
- import "../chunk-HVBX5KIW.js";
11
+ } from "../chunk-XOFWRC73.js";
12
+ import "../chunk-H4RVA4VE.js";
13
13
  import "../chunk-7TAQJHQV.js";
14
14
  import {
15
15
  ENVELOPE_VERSION,
@@ -20,7 +20,7 @@ import {
20
20
  encodeEnvelope,
21
21
  registerBuiltinCodecs,
22
22
  replayWAL
23
- } from "../chunk-NZMBRXQV.js";
23
+ } from "../chunk-5DJTTKX3.js";
24
24
  export {
25
25
  ENVELOPE_VERSION,
26
26
  GRAPH_META_SEGMENT,
@@ -1,6 +1,6 @@
1
- import { k as GraphReFlyConfig, a6 as VersioningLevel, N as Node, A as Actor, t as Messages, K as NodeSink } from './node-C7PD3sn9.js';
2
- import { b as DescribeNodeOutput, D as DescribeDetail, a as DescribeField } from './meta-3QjzotRv.js';
3
- import { a as StorageTier, S as StorageHandle } from './storage-CHT5WE9m.js';
1
+ import { k as GraphReFlyConfig, a6 as VersioningLevel, N as Node, A as Actor, t as Messages, K as NodeSink } from './node-B-f-Lu-k.js';
2
+ import { b as DescribeNodeOutput, D as DescribeDetail, a as DescribeField } from './meta-CnkLA_43.js';
3
+ import { a as StorageTier, S as StorageHandle } from './storage-F2X1U1x0.js';
4
4
 
5
5
  /**
6
6
  * Graph profiling and inspection utilities.
@@ -1,6 +1,6 @@
1
- import { k as GraphReFlyConfig, a6 as VersioningLevel, N as Node, A as Actor, t as Messages, K as NodeSink } from './node-C7PD3sn9.cjs';
2
- import { b as DescribeNodeOutput, D as DescribeDetail, a as DescribeField } from './meta-B-Lbs4-O.cjs';
3
- import { a as StorageTier, S as StorageHandle } from './storage-DIgAr7M_.cjs';
1
+ import { k as GraphReFlyConfig, a6 as VersioningLevel, N as Node, A as Actor, t as Messages, K as NodeSink } from './node-B-f-Lu-k.cjs';
2
+ import { b as DescribeNodeOutput, D as DescribeDetail, a as DescribeField } from './meta-DWbkoq1s.cjs';
3
+ import { a as StorageTier, S as StorageHandle } from './storage-BuTdpCI1.cjs';
4
4
 
5
5
  /**
6
6
  * Graph profiling and inspection utilities.
@@ -1,6 +1,6 @@
1
- import { a as NodeOptions, N as Node, M as Message, t as Messages, a6 as VersioningLevel } from './node-C7PD3sn9.cjs';
2
- import { a as StorageTier, I as IndexedDbStorageSpec, S as StorageHandle, d as dictStorage, f as fileStorage, b as fromIDBRequest, c as fromIDBTransaction, i as indexedDbStorage, m as memoryStorage, s as sqliteStorage } from './storage-DIgAr7M_.cjs';
3
- import { T as ToObservableOptions, t as toObservable } from './observable-axpzv1K2.cjs';
1
+ import { a as NodeOptions, N as Node, M as Message, t as Messages, a6 as VersioningLevel } from './node-B-f-Lu-k.cjs';
2
+ import { a as StorageTier, I as IndexedDbStorageSpec, S as StorageHandle, d as dictStorage, f as fileStorage, b as fromIDBRequest, c as fromIDBTransaction, i as indexedDbStorage, m as memoryStorage, s as sqliteStorage } from './storage-BuTdpCI1.cjs';
3
+ import { T as ToObservableOptions, t as toObservable } from './observable-DBnrwcar.cjs';
4
4
 
5
5
  /**
6
6
  * External-register helpers — the common `register({emit, error, complete})`
@@ -1,5 +1,5 @@
1
- import { k as GraphReFlyConfig } from './node-C7PD3sn9.cjs';
2
- import { r as GraphPersistSnapshot, g as GraphCheckpointRecord, D as DescribeFilter, e as GRAPH_META_SEGMENT, G as Graph, f as GraphActorOptions, b as GraphAttachStorageOptions, h as GraphDescribeOptions, i as GraphDescribeOutput, j as GraphDiagramDirection, k as GraphDiagramOptions, l as GraphDiffChange, m as GraphDiffResult, n as GraphFactoryContext, o as GraphNodeFactory, p as GraphObserveAll, q as GraphObserveOne, a as GraphOptions, d as GraphProfileOptions, c as GraphProfileResult, s as GraphVersionChange, t as GraphWALDiff, N as NodeProfile, O as ObserveDetail, u as ObserveEvent, v as ObserveOptions, w as ObserveResult, x as ObserveTheme, y as ObserveThemeName, R as ReachableDirection, z as ReachableOptions, T as TraceEntry, A as diffForWAL, B as graphProfile, C as reachable } from './graph-BtdSRHUc.cjs';
1
+ import { k as GraphReFlyConfig } from './node-B-f-Lu-k.cjs';
2
+ import { r as GraphPersistSnapshot, g as GraphCheckpointRecord, D as DescribeFilter, e as GRAPH_META_SEGMENT, G as Graph, f as GraphActorOptions, b as GraphAttachStorageOptions, h as GraphDescribeOptions, i as GraphDescribeOutput, j as GraphDiagramDirection, k as GraphDiagramOptions, l as GraphDiffChange, m as GraphDiffResult, n as GraphFactoryContext, o as GraphNodeFactory, p as GraphObserveAll, q as GraphObserveOne, a as GraphOptions, d as GraphProfileOptions, c as GraphProfileResult, s as GraphVersionChange, t as GraphWALDiff, N as NodeProfile, O as ObserveDetail, u as ObserveEvent, v as ObserveOptions, w as ObserveResult, x as ObserveTheme, y as ObserveThemeName, R as ReachableDirection, z as ReachableOptions, T as TraceEntry, A as diffForWAL, B as graphProfile, C as reachable } from './graph-D-3JIQme.cjs';
3
3
 
4
4
  /**
5
5
  * Approximate in-memory size estimation for arbitrary JS values.
@@ -1,28 +1,21 @@
1
- import { t as Messages, a as NodeOptions, F as FnCtx, N as Node, b as NodeActions, x as NodeFnCleanup, A as Actor, C as COMPLETE, c as COMPLETE_MSG, d as COMPLETE_ONLY_BATCH, D as DATA, e as DEFAULT_ACTOR, f as DIRTY, g as DIRTY_MSG, h as DIRTY_ONLY_BATCH, i as DepRecord, E as ERROR, G as GlobalInspectorEvent, j as GlobalInspectorHook, k as GraphReFlyConfig, l as GuardAction, m as GuardDenied, n as GuardDeniedDetails, H as HashFn, I as INVALIDATE, o as INVALIDATE_MSG, p as INVALIDATE_ONLY_BATCH, M as Message, q as MessageContext, r as MessageTypeRegistration, s as MessageTypeRegistrationInput, u as NodeCtx, v as NodeDescribeKind, w as NodeFn, y as NodeGuard, z as NodeImpl, B as NodeInspectorHook, J as NodeInspectorHookEvent, K as NodeSink, L as NodeStatus, O as NodeTransportOptions, P as NodeVersionInfo, Q as OnMessageHandler, R as OnSubscribeHandler, S as PAUSE, T as PolicyAllow, U as PolicyDeny, V as PolicyRuleData, W as RESOLVED, X as RESOLVED_MSG, Y as RESOLVED_ONLY_BATCH, Z as RESUME, _ as START, $ as START_MSG, a0 as SubscribeContext, a1 as TEARDOWN, a2 as TEARDOWN_MSG, a3 as TEARDOWN_ONLY_BATCH, a4 as V0, a5 as V1, a6 as VersioningLevel, a7 as VersioningOptions, a8 as accessHintForGuard, a9 as advanceVersion, aa as configure, ab as createVersioning, ac as defaultConfig, ad as defaultHash, ae as isV1, af as node, ag as normalizeActor, ah as policy, ai as policyFromRules, aj as registerBuiltins } from './node-C7PD3sn9.cjs';
2
- import { D as DescribeDetail, a as DescribeField, b as DescribeNodeOutput, r as resolveDescribeFields } from './meta-B-Lbs4-O.cjs';
1
+ import { t as Messages, a as NodeOptions, F as FnCtx, N as Node, b as NodeActions, x as NodeFnCleanup, A as Actor, C as COMPLETE, c as COMPLETE_MSG, d as COMPLETE_ONLY_BATCH, D as DATA, e as DEFAULT_ACTOR, f as DIRTY, g as DIRTY_MSG, h as DIRTY_ONLY_BATCH, i as DepRecord, E as ERROR, G as GlobalInspectorEvent, j as GlobalInspectorHook, k as GraphReFlyConfig, l as GuardAction, m as GuardDenied, n as GuardDeniedDetails, H as HashFn, I as INVALIDATE, o as INVALIDATE_MSG, p as INVALIDATE_ONLY_BATCH, M as Message, q as MessageContext, r as MessageTypeRegistration, s as MessageTypeRegistrationInput, u as NodeCtx, v as NodeDescribeKind, w as NodeFn, y as NodeGuard, z as NodeImpl, B as NodeInspectorHook, J as NodeInspectorHookEvent, K as NodeSink, L as NodeStatus, O as NodeTransportOptions, P as NodeVersionInfo, Q as OnMessageHandler, R as OnSubscribeHandler, S as PAUSE, T as PolicyAllow, U as PolicyDeny, V as PolicyRuleData, W as RESOLVED, X as RESOLVED_MSG, Y as RESOLVED_ONLY_BATCH, Z as RESUME, _ as START, $ as START_MSG, a0 as SubscribeContext, a1 as TEARDOWN, a2 as TEARDOWN_MSG, a3 as TEARDOWN_ONLY_BATCH, a4 as V0, a5 as V1, a6 as VersioningLevel, a7 as VersioningOptions, a8 as accessHintForGuard, a9 as advanceVersion, aa as configure, ab as createVersioning, ac as defaultConfig, ad as defaultHash, ae as isV1, af as node, ag as normalizeActor, ah as policy, ai as policyFromRules, aj as registerBuiltins } from './node-B-f-Lu-k.cjs';
2
+ import { D as DescribeDetail, a as DescribeField, b as DescribeNodeOutput, r as resolveDescribeFields } from './meta-DWbkoq1s.cjs';
3
3
 
4
4
  /**
5
5
  * Batch deferral for tier-3+ messages, plus per-node emit coalescing inside
6
6
  * explicit `batch()` scopes.
7
7
  *
8
- * §1.3.7 — Inside a batch, tier 0–2 signals propagate immediately. Tier 3
9
- * (DATA/RESOLVED), tier 4 (COMPLETE/ERROR), and tier 5 (TEARDOWN) are queued
10
- * and drained in ascending phase order after the outermost `batch()` callback
11
- * returns.
8
+ * **Canonical invariant:** GRAPHREFLY-SPEC.md §1.3.7 — inside a batch,
9
+ * tier 0–2 signals propagate immediately; tier 3 (DATA/RESOLVED), tier 4
10
+ * (COMPLETE/ERROR), and tier 5 (TEARDOWN) are queued and drained in ascending
11
+ * phase order after the outermost `batch()` callback returns.
12
12
  *
13
13
  * **Per-node emit coalescing (Bug 2 fix, 2026-04-17).** Inside an explicit
14
14
  * `batch()` scope, consecutive emissions from the same node accumulate in
15
- * `NodeImpl._batchPendingMessages` instead of each producing a separate
16
- * downstream wave. At batch end, each node flushes its accumulated messages
17
- * as ONE multi-message `downWithBatch` call K `.emit()`s to the same
18
- * source collapse to K DIRTYs in one tier-1 sink call + K DATAs in one
19
- * tier-3 sink call. Downstream nodes' fns run once per wave with the full
20
- * `batchData` (dep's `dataBatch` accumulates all K values, fn sees
21
- * `[[v1, v2, ..., vK]]`). Resolves the K+1 fan-in over-fire.
22
- *
23
- * Outside batch — and during drain (where `flushInProgress` is true but
24
- * `batchDepth` is 0) — coalescing does NOT apply: each emit goes through
25
- * its own `downWithBatch` call and produces its own wave.
15
+ * `NodeImpl._batchPendingMessages` (see JSDoc there) instead of each producing
16
+ * a separate downstream wave. K `.emit()` calls to the same source collapse to
17
+ * one coalesced `downWithBatch` call per child edge at batch end. Outside batch
18
+ * (or during drain), coalescing does NOT apply each emit produces its own wave.
26
19
  *
27
20
  * **Phase vocabulary:**
28
21
  * - Phase 1 = tiers 0–2 — immediate, never queued.
@@ -34,13 +27,6 @@ import { D as DescribeDetail, a as DescribeField, b as DescribeNodeOutput, r as
34
27
  * phase. Re-enqueues during drain (and hooks registered by reentrant batches
35
28
  * inside subscriber callbacks) bump the loop back to the top so newly-added
36
29
  * hooks and closures get processed.
37
- *
38
- * **Pre-sorted input invariant.** `downWithBatch` assumes `messages` is
39
- * already sorted in ascending tier order (produced by `_frameBatch` in
40
- * `node.ts`). The walker exploits monotonicity for a single O(n) pass and
41
- * slices at phase boundaries without re-sorting. Flushed multi-emit batches
42
- * re-run `_frameBatch` to restore monotonicity (the per-emit framings
43
- * accumulate in interleaved order: `[DIRTY, DATA, DIRTY, DATA, ...]`).
44
30
  */
45
31
 
46
32
  /**
@@ -1,6 +1,6 @@
1
- import { a as NodeOptions, N as Node, M as Message, t as Messages, a6 as VersioningLevel } from './node-C7PD3sn9.js';
2
- import { a as StorageTier, I as IndexedDbStorageSpec, S as StorageHandle, d as dictStorage, f as fileStorage, b as fromIDBRequest, c as fromIDBTransaction, i as indexedDbStorage, m as memoryStorage, s as sqliteStorage } from './storage-CHT5WE9m.js';
3
- import { T as ToObservableOptions, t as toObservable } from './observable-EyO-moQY.js';
1
+ import { a as NodeOptions, N as Node, M as Message, t as Messages, a6 as VersioningLevel } from './node-B-f-Lu-k.js';
2
+ import { a as StorageTier, I as IndexedDbStorageSpec, S as StorageHandle, d as dictStorage, f as fileStorage, b as fromIDBRequest, c as fromIDBTransaction, i as indexedDbStorage, m as memoryStorage, s as sqliteStorage } from './storage-F2X1U1x0.js';
3
+ import { T as ToObservableOptions, t as toObservable } from './observable-uP-wy_uK.js';
4
4
 
5
5
  /**
6
6
  * External-register helpers — the common `register({emit, error, complete})`
@@ -1,28 +1,21 @@
1
- import { t as Messages, a as NodeOptions, F as FnCtx, N as Node, b as NodeActions, x as NodeFnCleanup, A as Actor, C as COMPLETE, c as COMPLETE_MSG, d as COMPLETE_ONLY_BATCH, D as DATA, e as DEFAULT_ACTOR, f as DIRTY, g as DIRTY_MSG, h as DIRTY_ONLY_BATCH, i as DepRecord, E as ERROR, G as GlobalInspectorEvent, j as GlobalInspectorHook, k as GraphReFlyConfig, l as GuardAction, m as GuardDenied, n as GuardDeniedDetails, H as HashFn, I as INVALIDATE, o as INVALIDATE_MSG, p as INVALIDATE_ONLY_BATCH, M as Message, q as MessageContext, r as MessageTypeRegistration, s as MessageTypeRegistrationInput, u as NodeCtx, v as NodeDescribeKind, w as NodeFn, y as NodeGuard, z as NodeImpl, B as NodeInspectorHook, J as NodeInspectorHookEvent, K as NodeSink, L as NodeStatus, O as NodeTransportOptions, P as NodeVersionInfo, Q as OnMessageHandler, R as OnSubscribeHandler, S as PAUSE, T as PolicyAllow, U as PolicyDeny, V as PolicyRuleData, W as RESOLVED, X as RESOLVED_MSG, Y as RESOLVED_ONLY_BATCH, Z as RESUME, _ as START, $ as START_MSG, a0 as SubscribeContext, a1 as TEARDOWN, a2 as TEARDOWN_MSG, a3 as TEARDOWN_ONLY_BATCH, a4 as V0, a5 as V1, a6 as VersioningLevel, a7 as VersioningOptions, a8 as accessHintForGuard, a9 as advanceVersion, aa as configure, ab as createVersioning, ac as defaultConfig, ad as defaultHash, ae as isV1, af as node, ag as normalizeActor, ah as policy, ai as policyFromRules, aj as registerBuiltins } from './node-C7PD3sn9.js';
2
- import { D as DescribeDetail, a as DescribeField, b as DescribeNodeOutput, r as resolveDescribeFields } from './meta-3QjzotRv.js';
1
+ import { t as Messages, a as NodeOptions, F as FnCtx, N as Node, b as NodeActions, x as NodeFnCleanup, A as Actor, C as COMPLETE, c as COMPLETE_MSG, d as COMPLETE_ONLY_BATCH, D as DATA, e as DEFAULT_ACTOR, f as DIRTY, g as DIRTY_MSG, h as DIRTY_ONLY_BATCH, i as DepRecord, E as ERROR, G as GlobalInspectorEvent, j as GlobalInspectorHook, k as GraphReFlyConfig, l as GuardAction, m as GuardDenied, n as GuardDeniedDetails, H as HashFn, I as INVALIDATE, o as INVALIDATE_MSG, p as INVALIDATE_ONLY_BATCH, M as Message, q as MessageContext, r as MessageTypeRegistration, s as MessageTypeRegistrationInput, u as NodeCtx, v as NodeDescribeKind, w as NodeFn, y as NodeGuard, z as NodeImpl, B as NodeInspectorHook, J as NodeInspectorHookEvent, K as NodeSink, L as NodeStatus, O as NodeTransportOptions, P as NodeVersionInfo, Q as OnMessageHandler, R as OnSubscribeHandler, S as PAUSE, T as PolicyAllow, U as PolicyDeny, V as PolicyRuleData, W as RESOLVED, X as RESOLVED_MSG, Y as RESOLVED_ONLY_BATCH, Z as RESUME, _ as START, $ as START_MSG, a0 as SubscribeContext, a1 as TEARDOWN, a2 as TEARDOWN_MSG, a3 as TEARDOWN_ONLY_BATCH, a4 as V0, a5 as V1, a6 as VersioningLevel, a7 as VersioningOptions, a8 as accessHintForGuard, a9 as advanceVersion, aa as configure, ab as createVersioning, ac as defaultConfig, ad as defaultHash, ae as isV1, af as node, ag as normalizeActor, ah as policy, ai as policyFromRules, aj as registerBuiltins } from './node-B-f-Lu-k.js';
2
+ import { D as DescribeDetail, a as DescribeField, b as DescribeNodeOutput, r as resolveDescribeFields } from './meta-CnkLA_43.js';
3
3
 
4
4
  /**
5
5
  * Batch deferral for tier-3+ messages, plus per-node emit coalescing inside
6
6
  * explicit `batch()` scopes.
7
7
  *
8
- * §1.3.7 — Inside a batch, tier 0–2 signals propagate immediately. Tier 3
9
- * (DATA/RESOLVED), tier 4 (COMPLETE/ERROR), and tier 5 (TEARDOWN) are queued
10
- * and drained in ascending phase order after the outermost `batch()` callback
11
- * returns.
8
+ * **Canonical invariant:** GRAPHREFLY-SPEC.md §1.3.7 — inside a batch,
9
+ * tier 0–2 signals propagate immediately; tier 3 (DATA/RESOLVED), tier 4
10
+ * (COMPLETE/ERROR), and tier 5 (TEARDOWN) are queued and drained in ascending
11
+ * phase order after the outermost `batch()` callback returns.
12
12
  *
13
13
  * **Per-node emit coalescing (Bug 2 fix, 2026-04-17).** Inside an explicit
14
14
  * `batch()` scope, consecutive emissions from the same node accumulate in
15
- * `NodeImpl._batchPendingMessages` instead of each producing a separate
16
- * downstream wave. At batch end, each node flushes its accumulated messages
17
- * as ONE multi-message `downWithBatch` call K `.emit()`s to the same
18
- * source collapse to K DIRTYs in one tier-1 sink call + K DATAs in one
19
- * tier-3 sink call. Downstream nodes' fns run once per wave with the full
20
- * `batchData` (dep's `dataBatch` accumulates all K values, fn sees
21
- * `[[v1, v2, ..., vK]]`). Resolves the K+1 fan-in over-fire.
22
- *
23
- * Outside batch — and during drain (where `flushInProgress` is true but
24
- * `batchDepth` is 0) — coalescing does NOT apply: each emit goes through
25
- * its own `downWithBatch` call and produces its own wave.
15
+ * `NodeImpl._batchPendingMessages` (see JSDoc there) instead of each producing
16
+ * a separate downstream wave. K `.emit()` calls to the same source collapse to
17
+ * one coalesced `downWithBatch` call per child edge at batch end. Outside batch
18
+ * (or during drain), coalescing does NOT apply each emit produces its own wave.
26
19
  *
27
20
  * **Phase vocabulary:**
28
21
  * - Phase 1 = tiers 0–2 — immediate, never queued.
@@ -34,13 +27,6 @@ import { D as DescribeDetail, a as DescribeField, b as DescribeNodeOutput, r as
34
27
  * phase. Re-enqueues during drain (and hooks registered by reentrant batches
35
28
  * inside subscriber callbacks) bump the loop back to the top so newly-added
36
29
  * hooks and closures get processed.
37
- *
38
- * **Pre-sorted input invariant.** `downWithBatch` assumes `messages` is
39
- * already sorted in ascending tier order (produced by `_frameBatch` in
40
- * `node.ts`). The walker exploits monotonicity for a single O(n) pass and
41
- * slices at phase boundaries without re-sorting. Flushed multi-emit batches
42
- * re-run `_frameBatch` to restore monotonicity (the per-emit framings
43
- * accumulate in interleaved order: `[DIRTY, DATA, DIRTY, DATA, ...]`).
44
30
  */
45
31
 
46
32
  /**
@@ -1,5 +1,5 @@
1
- import { k as GraphReFlyConfig } from './node-C7PD3sn9.js';
2
- import { r as GraphPersistSnapshot, g as GraphCheckpointRecord, D as DescribeFilter, e as GRAPH_META_SEGMENT, G as Graph, f as GraphActorOptions, b as GraphAttachStorageOptions, h as GraphDescribeOptions, i as GraphDescribeOutput, j as GraphDiagramDirection, k as GraphDiagramOptions, l as GraphDiffChange, m as GraphDiffResult, n as GraphFactoryContext, o as GraphNodeFactory, p as GraphObserveAll, q as GraphObserveOne, a as GraphOptions, d as GraphProfileOptions, c as GraphProfileResult, s as GraphVersionChange, t as GraphWALDiff, N as NodeProfile, O as ObserveDetail, u as ObserveEvent, v as ObserveOptions, w as ObserveResult, x as ObserveTheme, y as ObserveThemeName, R as ReachableDirection, z as ReachableOptions, T as TraceEntry, A as diffForWAL, B as graphProfile, C as reachable } from './graph-CEO2FkLY.js';
1
+ import { k as GraphReFlyConfig } from './node-B-f-Lu-k.js';
2
+ import { r as GraphPersistSnapshot, g as GraphCheckpointRecord, D as DescribeFilter, e as GRAPH_META_SEGMENT, G as Graph, f as GraphActorOptions, b as GraphAttachStorageOptions, h as GraphDescribeOptions, i as GraphDescribeOutput, j as GraphDiagramDirection, k as GraphDiagramOptions, l as GraphDiffChange, m as GraphDiffResult, n as GraphFactoryContext, o as GraphNodeFactory, p as GraphObserveAll, q as GraphObserveOne, a as GraphOptions, d as GraphProfileOptions, c as GraphProfileResult, s as GraphVersionChange, t as GraphWALDiff, N as NodeProfile, O as ObserveDetail, u as ObserveEvent, v as ObserveOptions, w as ObserveResult, x as ObserveTheme, y as ObserveThemeName, R as ReachableDirection, z as ReachableOptions, T as TraceEntry, A as diffForWAL, B as graphProfile, C as reachable } from './graph-B6NFqv3z.js';
3
3
 
4
4
  /**
5
5
  * Approximate in-memory size estimation for arbitrary JS values.
@@ -1,5 +1,5 @@
1
- import { N as Node } from './node-C7PD3sn9.js';
2
- import { G as Graph } from './graph-CEO2FkLY.js';
1
+ import { N as Node } from './node-B-f-Lu-k.js';
2
+ import { G as Graph } from './graph-B6NFqv3z.js';
3
3
 
4
4
  /** Pluggable measurement backend. */
5
5
  interface MeasurementAdapter {
@@ -1,8 +1,8 @@
1
- import { T as ToObservableOptions, t as toObservable } from './observable-EyO-moQY.js';
1
+ import { T as ToObservableOptions, t as toObservable } from './observable-uP-wy_uK.js';
2
2
  import { OnModuleInit, OnModuleDestroy, ExecutionContext, CanActivate, DynamicModule } from '@nestjs/common';
3
3
  import { ModuleRef } from '@nestjs/core';
4
- import { G as Graph, a as GraphOptions, r as GraphPersistSnapshot } from './graph-CEO2FkLY.js';
5
- import { A as Actor, N as Node } from './node-C7PD3sn9.js';
4
+ import { G as Graph, a as GraphOptions, r as GraphPersistSnapshot } from './graph-B6NFqv3z.js';
5
+ import { A as Actor, N as Node } from './node-B-f-Lu-k.js';
6
6
 
7
7
  /** Class constructor key for decorator registries and Nest `ModuleRef.get()`. */
8
8
  type DecoratorHostConstructor = abstract new (...args: unknown[]) => unknown;
@@ -1,8 +1,8 @@
1
- import { T as ToObservableOptions, t as toObservable } from './observable-axpzv1K2.cjs';
1
+ import { T as ToObservableOptions, t as toObservable } from './observable-DBnrwcar.cjs';
2
2
  import { OnModuleInit, OnModuleDestroy, ExecutionContext, CanActivate, DynamicModule } from '@nestjs/common';
3
3
  import { ModuleRef } from '@nestjs/core';
4
- import { G as Graph, a as GraphOptions, r as GraphPersistSnapshot } from './graph-BtdSRHUc.cjs';
5
- import { A as Actor, N as Node } from './node-C7PD3sn9.cjs';
4
+ import { G as Graph, a as GraphOptions, r as GraphPersistSnapshot } from './graph-D-3JIQme.cjs';
5
+ import { A as Actor, N as Node } from './node-B-f-Lu-k.cjs';
6
6
 
7
7
  /** Class constructor key for decorator registries and Nest `ModuleRef.get()`. */
8
8
  type DecoratorHostConstructor = abstract new (...args: unknown[]) => unknown;
@@ -1,5 +1,5 @@
1
- import { N as Node } from './node-C7PD3sn9.cjs';
2
- import { G as Graph } from './graph-BtdSRHUc.cjs';
1
+ import { N as Node } from './node-B-f-Lu-k.cjs';
2
+ import { G as Graph } from './graph-D-3JIQme.cjs';
3
3
 
4
4
  /** Pluggable measurement backend. */
5
5
  interface MeasurementAdapter {
package/dist/index.cjs CHANGED
@@ -2132,37 +2132,35 @@ var NodeImpl = class _NodeImpl {
2132
2132
  // --- Emit pipeline ---
2133
2133
  /**
2134
2134
  * @internal The unified dispatch waist — one call = one wave.
2135
+ * See `GRAPHREFLY-SPEC.md` §1.3.1 for protocol context — the stages
2136
+ * below are the implementation order.
2135
2137
  *
2136
2138
  * Pipeline stages, in order:
2137
2139
  *
2138
- * 1. Early-return on empty batch.
2139
- * 2. Terminal filter — post-COMPLETE/ERROR only TEARDOWN/INVALIDATE
2140
+ * 1. Terminal filter — post-COMPLETE/ERROR only TEARDOWN/INVALIDATE
2140
2141
  * still propagate so graph teardown and cache-clear still work.
2141
- * 3. Tier sort (stable) — the batch can be in any order when it
2142
+ * 2. Tier sort (stable) — the batch can be in any order when it
2142
2143
  * arrives; the walker downstream (`downWithBatch`) assumes
2143
2144
  * ascending tier monotone, and so does `_updateState`'s tier-3
2144
2145
  * slice walk. This is the single source of truth for ordering.
2145
- * 4. Synthetic DIRTY prefix — if a tier-3 payload is present, no
2146
+ * 3. Synthetic DIRTY prefix — if a tier-3 payload is present, no
2146
2147
  * DIRTY is already in the batch, and the node isn't already in
2147
2148
  * `"dirty"` status, prepend `[DIRTY]` after any tier-0 START
2148
2149
  * entries. Guarantees spec §1.3.1 (DIRTY precedes DATA within
2149
2150
  * the same batch) uniformly across every entry point.
2150
- * 5. PAUSE/RESUME lock bookkeeping (C0) — update `_pauseLocks`,
2151
+ * 4. PAUSE/RESUME lock bookkeeping (C0) — update `_pauseLocks`,
2151
2152
  * derive `_paused`, filter unknown-lockId RESUME, replay
2152
2153
  * bufferAll buffer on final lock release.
2153
- * 6. Meta TEARDOWN fan-out — notify meta children before
2154
+ * 5. Meta TEARDOWN fan-out — notify meta children before
2154
2155
  * `_updateState`'s TEARDOWN branch calls `_deactivate`. Hoisted
2155
2156
  * out of the walk to keep `_updateState` re-entrance-free.
2156
- * 7. `_updateState` — walk the batch in tier order, advancing
2157
+ * 6. `_updateState` — walk the batch in tier order, advancing
2157
2158
  * `_cached` / `_status` / `_versioning` and running equals
2158
2159
  * substitution on tier-3 DATA (§3.5.1). Returns
2159
2160
  * `{finalMessages, equalsError?}`.
2160
- * 8. `downWithBatch` dispatch (or bufferAll capture if paused with
2161
+ * 7. `downWithBatch` dispatch (or bufferAll capture if paused with
2161
2162
  * `pausable: "resumeAll"`).
2162
- * 9. Recursive ERROR emission if equals threw mid-walk.
2163
- *
2164
- * `node.down` / `node.emit` / `actions.down` / `actions.emit` all
2165
- * converge here — the unified `_emit` waist (spec §1.3.1).
2163
+ * 8. Recursive ERROR emission if equals threw mid-walk.
2166
2164
  */
2167
2165
  _emit(messages) {
2168
2166
  if (messages.length === 0) return;
@@ -8187,20 +8185,12 @@ function useStore4(node2) {
8187
8185
  function useSubscribeRecord4(keys, factory) {
8188
8186
  const result = (0, import_vue.shallowRef)({});
8189
8187
  const activeSubs = /* @__PURE__ */ new Map();
8190
- let disposed = false;
8191
- let batchPending = false;
8192
- function scheduleBatch() {
8193
- if (batchPending) return;
8194
- batchPending = true;
8195
- queueMicrotask(() => {
8196
- if (disposed) return;
8197
- batchPending = false;
8198
- const snap = {};
8199
- for (const [key, entry] of activeSubs) {
8200
- snap[key] = { ...entry.values };
8201
- }
8202
- result.value = snap;
8203
- });
8188
+ function flushResult() {
8189
+ const snap = {};
8190
+ for (const [key, entry] of activeSubs) {
8191
+ snap[key] = { ...entry.values };
8192
+ }
8193
+ result.value = snap;
8204
8194
  }
8205
8195
  function sync(newKeys) {
8206
8196
  for (const entry of activeSubs.values()) {
@@ -8217,7 +8207,7 @@ function useSubscribeRecord4(keys, factory) {
8217
8207
  values[field] = node2.cache;
8218
8208
  const unsub = node2.subscribe(() => {
8219
8209
  values[field] = node2.cache;
8220
- scheduleBatch();
8210
+ flushResult();
8221
8211
  });
8222
8212
  subs.push(unsub);
8223
8213
  }
@@ -8236,7 +8226,6 @@ function useSubscribeRecord4(keys, factory) {
8236
8226
  (0, import_vue.watch)(readKeys, (newKeys) => sync(newKeys ?? []), { immediate: true });
8237
8227
  if ((0, import_vue.getCurrentScope)()) {
8238
8228
  (0, import_vue.onScopeDispose)(() => {
8239
- disposed = true;
8240
8229
  for (const entry of activeSubs.values()) {
8241
8230
  for (const unsub of entry.subs) unsub();
8242
8231
  }
@@ -8265,18 +8254,17 @@ function create(initializer) {
8265
8254
  g.add("state", s);
8266
8255
  const getState = () => s.cache;
8267
8256
  const setState = (partial, replace) => {
8268
- const prev = getState();
8257
+ const prev = s.cache;
8269
8258
  const next = typeof partial === "function" ? partial(prev) : partial;
8270
- const nextState = replace ? next : { ...prev, ...next };
8271
- s.emit(nextState);
8259
+ s.emit(replace ? next : { ...prev, ...next });
8272
8260
  };
8273
8261
  const api = {
8274
8262
  getState,
8275
8263
  setState,
8276
8264
  getInitialState: () => initialValue,
8277
8265
  subscribe: (listener) => {
8278
- let prev = getState();
8279
8266
  let initial = true;
8267
+ let prev = s.cache;
8280
8268
  return s.subscribe((msgs) => {
8281
8269
  for (const [t, v] of msgs) {
8282
8270
  if (t === DATA) {