@graphrefly/graphrefly 0.10.0 → 0.12.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 (70) hide show
  1. package/dist/{chunk-QTZSBQGJ.js → chunk-4F2ZFD5L.js} +19 -1
  2. package/dist/chunk-4F2ZFD5L.js.map +1 -0
  3. package/dist/{chunk-LR2CLSEF.js → chunk-6OLNYOGU.js} +2 -3
  4. package/dist/chunk-6OLNYOGU.js.map +1 -0
  5. package/dist/{chunk-TZLX4KIT.js → chunk-BRPCN2HJ.js} +46 -17
  6. package/dist/chunk-BRPCN2HJ.js.map +1 -0
  7. package/dist/{chunk-A2AJJOSJ.js → chunk-IXTW3BIO.js} +3 -3
  8. package/dist/{chunk-XCZPGOVP.js → chunk-JYRHO63K.js} +3 -3
  9. package/dist/{chunk-UCW3VWMN.js → chunk-NULSP7U4.js} +4 -4
  10. package/dist/{chunk-WYI7YW54.js → chunk-VQWLA6XQ.js} +3 -3
  11. package/dist/{chunk-YWTP2XRJ.js → chunk-X732W3QA.js} +2 -2
  12. package/dist/{chunk-E7OH6ZAZ.js → chunk-XWMTVV2D.js} +62 -3
  13. package/dist/chunk-XWMTVV2D.js.map +1 -0
  14. package/dist/compat/nestjs/index.cjs +10 -1
  15. package/dist/compat/nestjs/index.cjs.map +1 -1
  16. package/dist/compat/nestjs/index.d.cts +4 -4
  17. package/dist/compat/nestjs/index.d.ts +4 -4
  18. package/dist/compat/nestjs/index.js +7 -7
  19. package/dist/core/index.cjs +74 -1
  20. package/dist/core/index.cjs.map +1 -1
  21. package/dist/core/index.d.cts +2 -2
  22. package/dist/core/index.d.ts +2 -2
  23. package/dist/core/index.js +12 -3
  24. package/dist/extra/index.cjs +52 -14
  25. package/dist/extra/index.cjs.map +1 -1
  26. package/dist/extra/index.d.cts +4 -4
  27. package/dist/extra/index.d.ts +4 -4
  28. package/dist/extra/index.js +5 -5
  29. package/dist/graph/index.cjs +10 -1
  30. package/dist/graph/index.cjs.map +1 -1
  31. package/dist/graph/index.d.cts +3 -3
  32. package/dist/graph/index.d.ts +3 -3
  33. package/dist/graph/index.js +4 -4
  34. package/dist/{graph-DqTICAY2.d.cts → graph-BE10ujU9.d.cts} +1 -1
  35. package/dist/{graph-X9uwnD_z.d.ts → graph-DXT95WZ3.d.ts} +1 -1
  36. package/dist/{index-DLO8wnYU.d.ts → index-53cDGX7F.d.ts} +3 -3
  37. package/dist/{index-DMv1Etbi.d.ts → index-B10Q0sQB.d.ts} +2 -2
  38. package/dist/{index-BPCeYDS4.d.ts → index-C0_7g9sj.d.ts} +1 -1
  39. package/dist/{index-3U0WxdD-.d.cts → index-CCvzN5GB.d.cts} +2 -2
  40. package/dist/{index-BP1t_38S.d.cts → index-CiAqgfFg.d.ts} +17 -13
  41. package/dist/{index-a5gHmH5b.d.ts → index-CthwPnHQ.d.cts} +17 -13
  42. package/dist/{index-BVG5pjin.d.ts → index-Dzdm20sx.d.ts} +88 -3
  43. package/dist/{index-BYEgosAX.d.cts → index-QfbXNW1N.d.cts} +88 -3
  44. package/dist/{index-BYa2YMat.d.cts → index-aBZ2RoP0.d.cts} +3 -3
  45. package/dist/{index-DbwgQ4Cw.d.cts → index-nRulwTr-.d.cts} +1 -1
  46. package/dist/index.cjs +1084 -118
  47. package/dist/index.cjs.map +1 -1
  48. package/dist/index.d.cts +422 -22
  49. package/dist/index.d.ts +422 -22
  50. package/dist/index.js +988 -120
  51. package/dist/index.js.map +1 -1
  52. package/dist/{meta-BJEU8fYz.d.cts → meta-BcuDhtwu.d.cts} +33 -1
  53. package/dist/{meta-BJEU8fYz.d.ts → meta-BcuDhtwu.d.ts} +33 -1
  54. package/dist/patterns/reactive-layout/index.cjs +10 -1
  55. package/dist/patterns/reactive-layout/index.cjs.map +1 -1
  56. package/dist/patterns/reactive-layout/index.d.cts +3 -3
  57. package/dist/patterns/reactive-layout/index.d.ts +3 -3
  58. package/dist/patterns/reactive-layout/index.js +4 -4
  59. package/dist/{reactive-log-RhgIog2Z.d.ts → reactive-log-Cu0VdqkT.d.ts} +2 -2
  60. package/dist/{reactive-log-BfX6bOSZ.d.cts → reactive-log-OULQssZg.d.cts} +2 -2
  61. package/package.json +7 -2
  62. package/dist/chunk-E7OH6ZAZ.js.map +0 -1
  63. package/dist/chunk-LR2CLSEF.js.map +0 -1
  64. package/dist/chunk-QTZSBQGJ.js.map +0 -1
  65. package/dist/chunk-TZLX4KIT.js.map +0 -1
  66. /package/dist/{chunk-A2AJJOSJ.js.map → chunk-IXTW3BIO.js.map} +0 -0
  67. /package/dist/{chunk-XCZPGOVP.js.map → chunk-JYRHO63K.js.map} +0 -0
  68. /package/dist/{chunk-UCW3VWMN.js.map → chunk-NULSP7U4.js.map} +0 -0
  69. /package/dist/{chunk-WYI7YW54.js.map → chunk-VQWLA6XQ.js.map} +0 -0
  70. /package/dist/{chunk-YWTP2XRJ.js.map → chunk-X732W3QA.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- export { A as Actor, C as COMPLETE, D as DATA, d as DEFAULT_ACTOR, e as DIRTY, f as DescribeDetail, g as DescribeField, h as DescribeNodeOutput, E as ERROR, G as GuardAction, i as GuardDenied, j as GuardDeniedDetails, H as HashFn, I as INVALIDATE, M as Message, k as Messages, N as Node, b as NodeActions, l as NodeDescribeKind, c as NodeFn, m as NodeGuard, a as NodeOptions, n as NodeSink, o as NodeStatus, p as NodeTransportOptions, q as NodeVersionInfo, O as OnMessageHandler, P as PAUSE, r as PolicyAllow, s as PolicyDeny, t as PolicyRuleData, R as RESOLVED, u as RESUME, S as SubscribeHints, T as TEARDOWN, V as V0, v as V1, w as VersioningLevel, x as VersioningOptions, y as accessHintForGuard, z as advanceVersion, B as createVersioning, F as defaultHash, J as describeNode, K as isKnownMessageType, L as isPhase2Message, Q as isTerminalMessage, U as isV1, W as knownMessageTypes, X as messageTier, Y as metaSnapshot, Z as node, _ as normalizeActor, $ as policy, a0 as policyFromRules, a1 as propagatesToMeta, a2 as resolveDescribeFields } from '../meta-BJEU8fYz.cjs';
2
- export { D as DynGet, a as DynamicNodeFn, b as DynamicNodeImpl, c as DynamicNodeOptions, P as PipeOperator, R as ResettableTimer, d as batch, e as derived, f as dynamicNode, g as effect, h as emitWithBatch, j as isBatching, m as monotonicNs, p as partitionForBatch, k as pipe, l as producer, s as state, w as wallClockNs } from '../index-BYEgosAX.cjs';
1
+ export { A as Actor, C as CLEANUP_RESULT, d as COMPLETE, e as CleanupResult, D as DATA, f as DEFAULT_ACTOR, g as DIRTY, h as DescribeDetail, i as DescribeField, j as DescribeNodeOutput, E as ERROR, G as GuardAction, k as GuardDenied, l as GuardDeniedDetails, H as HashFn, I as INVALIDATE, M as Message, m as Messages, N as Node, b as NodeActions, n as NodeDescribeKind, c as NodeFn, o as NodeGuard, a as NodeOptions, p as NodeSink, q as NodeStatus, r as NodeTransportOptions, s as NodeVersionInfo, O as OnMessageHandler, P as PAUSE, t as PolicyAllow, u as PolicyDeny, v as PolicyRuleData, R as RESOLVED, w as RESUME, S as SubscribeHints, T as TEARDOWN, V as V0, x as V1, y as VersioningLevel, z as VersioningOptions, B as accessHintForGuard, F as advanceVersion, J as cleanupResult, K as createVersioning, L as defaultHash, Q as describeNode, U as isKnownMessageType, W as isPhase2Message, X as isTerminalMessage, Y as isV1, Z as knownMessageTypes, _ as messageTier, $ as metaSnapshot, a0 as node, a1 as normalizeActor, a2 as policy, a3 as policyFromRules, a4 as propagatesToMeta, a5 as resolveDescribeFields } from '../meta-BcuDhtwu.cjs';
2
+ export { B as BridgeOptions, D as DEFAULT_DOWN, a as DynGet, b as DynamicNodeFn, c as DynamicNodeImpl, d as DynamicNodeOptions, P as PipeOperator, R as ResettableTimer, e as batch, f as bridge, g as derived, h as dynamicNode, j as effect, k as emitWithBatch, l as isBatching, m as monotonicNs, p as partitionForBatch, n as pipe, o as producer, s as state, w as wallClockNs } from '../index-QfbXNW1N.cjs';
@@ -1,2 +1,2 @@
1
- export { A as Actor, C as COMPLETE, D as DATA, d as DEFAULT_ACTOR, e as DIRTY, f as DescribeDetail, g as DescribeField, h as DescribeNodeOutput, E as ERROR, G as GuardAction, i as GuardDenied, j as GuardDeniedDetails, H as HashFn, I as INVALIDATE, M as Message, k as Messages, N as Node, b as NodeActions, l as NodeDescribeKind, c as NodeFn, m as NodeGuard, a as NodeOptions, n as NodeSink, o as NodeStatus, p as NodeTransportOptions, q as NodeVersionInfo, O as OnMessageHandler, P as PAUSE, r as PolicyAllow, s as PolicyDeny, t as PolicyRuleData, R as RESOLVED, u as RESUME, S as SubscribeHints, T as TEARDOWN, V as V0, v as V1, w as VersioningLevel, x as VersioningOptions, y as accessHintForGuard, z as advanceVersion, B as createVersioning, F as defaultHash, J as describeNode, K as isKnownMessageType, L as isPhase2Message, Q as isTerminalMessage, U as isV1, W as knownMessageTypes, X as messageTier, Y as metaSnapshot, Z as node, _ as normalizeActor, $ as policy, a0 as policyFromRules, a1 as propagatesToMeta, a2 as resolveDescribeFields } from '../meta-BJEU8fYz.js';
2
- export { D as DynGet, a as DynamicNodeFn, b as DynamicNodeImpl, c as DynamicNodeOptions, P as PipeOperator, R as ResettableTimer, d as batch, e as derived, f as dynamicNode, g as effect, h as emitWithBatch, j as isBatching, m as monotonicNs, p as partitionForBatch, k as pipe, l as producer, s as state, w as wallClockNs } from '../index-BVG5pjin.js';
1
+ export { A as Actor, C as CLEANUP_RESULT, d as COMPLETE, e as CleanupResult, D as DATA, f as DEFAULT_ACTOR, g as DIRTY, h as DescribeDetail, i as DescribeField, j as DescribeNodeOutput, E as ERROR, G as GuardAction, k as GuardDenied, l as GuardDeniedDetails, H as HashFn, I as INVALIDATE, M as Message, m as Messages, N as Node, b as NodeActions, n as NodeDescribeKind, c as NodeFn, o as NodeGuard, a as NodeOptions, p as NodeSink, q as NodeStatus, r as NodeTransportOptions, s as NodeVersionInfo, O as OnMessageHandler, P as PAUSE, t as PolicyAllow, u as PolicyDeny, v as PolicyRuleData, R as RESOLVED, w as RESUME, S as SubscribeHints, T as TEARDOWN, V as V0, x as V1, y as VersioningLevel, z as VersioningOptions, B as accessHintForGuard, F as advanceVersion, J as cleanupResult, K as createVersioning, L as defaultHash, Q as describeNode, U as isKnownMessageType, W as isPhase2Message, X as isTerminalMessage, Y as isV1, Z as knownMessageTypes, _ as messageTier, $ as metaSnapshot, a0 as node, a1 as normalizeActor, a2 as policy, a3 as policyFromRules, a4 as propagatesToMeta, a5 as resolveDescribeFields } from '../meta-BcuDhtwu.js';
2
+ export { B as BridgeOptions, D as DEFAULT_DOWN, a as DynGet, b as DynamicNodeFn, c as DynamicNodeImpl, d as DynamicNodeOptions, P as PipeOperator, R as ResettableTimer, e as batch, f as bridge, g as derived, h as dynamicNode, j as effect, k as emitWithBatch, l as isBatching, m as monotonicNs, p as partitionForBatch, n as pipe, o as producer, s as state, w as wallClockNs } from '../index-Dzdm20sx.js';
@@ -1,4 +1,7 @@
1
- import "../chunk-E7OH6ZAZ.js";
1
+ import {
2
+ DEFAULT_DOWN,
3
+ bridge
4
+ } from "../chunk-XWMTVV2D.js";
2
5
  import {
3
6
  ResettableTimer
4
7
  } from "../chunk-WZ2Z2CRV.js";
@@ -6,8 +9,9 @@ import {
6
9
  describeNode,
7
10
  metaSnapshot,
8
11
  resolveDescribeFields
9
- } from "../chunk-LR2CLSEF.js";
12
+ } from "../chunk-6OLNYOGU.js";
10
13
  import {
14
+ CLEANUP_RESULT,
11
15
  COMPLETE,
12
16
  DATA,
13
17
  DEFAULT_ACTOR,
@@ -23,6 +27,7 @@ import {
23
27
  accessHintForGuard,
24
28
  advanceVersion,
25
29
  batch,
30
+ cleanupResult,
26
31
  createVersioning,
27
32
  defaultHash,
28
33
  derived,
@@ -47,11 +52,13 @@ import {
47
52
  propagatesToMeta,
48
53
  state,
49
54
  wallClockNs
50
- } from "../chunk-QTZSBQGJ.js";
55
+ } from "../chunk-4F2ZFD5L.js";
51
56
  export {
57
+ CLEANUP_RESULT,
52
58
  COMPLETE,
53
59
  DATA,
54
60
  DEFAULT_ACTOR,
61
+ DEFAULT_DOWN,
55
62
  DIRTY,
56
63
  DynamicNodeImpl,
57
64
  ERROR,
@@ -65,6 +72,8 @@ export {
65
72
  accessHintForGuard,
66
73
  advanceVersion,
67
74
  batch,
75
+ bridge,
76
+ cleanupResult,
68
77
  createVersioning,
69
78
  defaultHash,
70
79
  derived,
@@ -98,7 +98,6 @@ __export(extra_exports, {
98
98
  fromTimer: () => fromTimer,
99
99
  fromWebSocket: () => fromWebSocket,
100
100
  fromWebhook: () => fromWebhook,
101
- gate: () => gate,
102
101
  globToRegExp: () => globToRegExp,
103
102
  interval: () => interval,
104
103
  last: () => last,
@@ -177,6 +176,7 @@ __export(extra_exports, {
177
176
  toWebSocket: () => toWebSocket,
178
177
  tokenBucket: () => tokenBucket,
179
178
  tokenTracker: () => tokenTracker,
179
+ valve: () => valve,
180
180
  verifiable: () => verifiable,
181
181
  window: () => window,
182
182
  windowCount: () => windowCount,
@@ -509,6 +509,7 @@ function advanceVersion(info, newValue, hashFn) {
509
509
 
510
510
  // src/core/node.ts
511
511
  var NO_VALUE = /* @__PURE__ */ Symbol.for("graphrefly/NO_VALUE");
512
+ var CLEANUP_RESULT = /* @__PURE__ */ Symbol.for("graphrefly/CLEANUP_RESULT");
512
513
  function createIntBitSet() {
513
514
  let bits = 0;
514
515
  return {
@@ -571,6 +572,7 @@ function createBitSet(size) {
571
572
  }
572
573
  var isNodeArray = (value) => Array.isArray(value);
573
574
  var isNodeOptions = (value) => typeof value === "object" && value != null && !Array.isArray(value);
575
+ var isCleanupResult = (value) => typeof value === "object" && value !== null && CLEANUP_RESULT in value;
574
576
  var isCleanupFn = (value) => typeof value === "function";
575
577
  var statusAfterMessage = (status, msg) => {
576
578
  const t = msg[0];
@@ -986,6 +988,14 @@ var NodeImpl = class {
986
988
  this._lastDepValues = depValues;
987
989
  this._inspectorHook?.({ kind: "run", depValues });
988
990
  const out = this._fn(depValues, this._actions);
991
+ if (isCleanupResult(out)) {
992
+ this._cleanup = out.cleanup;
993
+ if (this._manualEmitUsed) return;
994
+ if ("value" in out) {
995
+ this._emitAutoValue(out.value);
996
+ }
997
+ return;
998
+ }
989
999
  if (isCleanupFn(out)) {
990
1000
  this._cleanup = out;
991
1001
  return;
@@ -6658,30 +6668,58 @@ function throttle(source, ms, opts) {
6658
6668
  );
6659
6669
  }
6660
6670
  function sample(source, notifier, opts) {
6671
+ let lastSourceValue = NO_VALUE;
6672
+ let terminated = false;
6673
+ let sourceCompleted = false;
6661
6674
  return node([source, notifier], () => void 0, {
6662
6675
  ...operatorOpts3(opts),
6663
6676
  completeWhenDepsComplete: false,
6677
+ onResubscribe: opts?.resubscribable === true ? () => {
6678
+ lastSourceValue = NO_VALUE;
6679
+ terminated = false;
6680
+ sourceCompleted = false;
6681
+ } : void 0,
6664
6682
  onMessage(msg, i, a) {
6683
+ if (terminated) return true;
6665
6684
  const t = msg[0];
6666
- if (t === ERROR) {
6685
+ const tier = messageTier(t);
6686
+ if (tier >= 3) {
6687
+ if (t === ERROR) {
6688
+ terminated = true;
6689
+ a.down([msg]);
6690
+ return true;
6691
+ }
6692
+ if (t === COMPLETE) {
6693
+ if (i === 0) {
6694
+ sourceCompleted = true;
6695
+ lastSourceValue = NO_VALUE;
6696
+ return true;
6697
+ }
6698
+ terminated = true;
6699
+ a.down([msg]);
6700
+ return true;
6701
+ }
6667
6702
  a.down([msg]);
6668
6703
  return true;
6669
6704
  }
6670
- if (t === COMPLETE) {
6705
+ if (i === 0) {
6706
+ if (t === DATA) {
6707
+ lastSourceValue = msg[1];
6708
+ return true;
6709
+ }
6710
+ if (t === DIRTY || t === RESOLVED) return true;
6671
6711
  a.down([msg]);
6672
6712
  return true;
6673
6713
  }
6674
- if (i === 1 && t === DATA) {
6675
- a.emit(source.get());
6676
- return true;
6677
- }
6678
- if (i === 1 && t === RESOLVED) {
6679
- return true;
6680
- }
6681
- if (i === 0) {
6714
+ if (t === DATA) {
6715
+ if (lastSourceValue !== NO_VALUE && !sourceCompleted) {
6716
+ a.emit(lastSourceValue);
6717
+ }
6682
6718
  return true;
6683
6719
  }
6684
- return false;
6720
+ if (t === RESOLVED) return true;
6721
+ a.down([msg]);
6722
+ return true;
6685
6723
  }
6686
6724
  });
6687
6725
  }
@@ -7148,7 +7186,7 @@ function rescue(source, recover, opts) {
7148
7186
  }
7149
7187
  });
7150
7188
  }
7151
- function gate(source, control, opts) {
7189
+ function valve(source, control, opts) {
7152
7190
  return node(
7153
7191
  [source, control],
7154
7192
  (_deps, a) => {
@@ -8358,7 +8396,6 @@ function workerSelf(target, opts) {
8358
8396
  fromTimer,
8359
8397
  fromWebSocket,
8360
8398
  fromWebhook,
8361
- gate,
8362
8399
  globToRegExp,
8363
8400
  interval,
8364
8401
  last,
@@ -8437,6 +8474,7 @@ function workerSelf(target, opts) {
8437
8474
  toWebSocket,
8438
8475
  tokenBucket,
8439
8476
  tokenTracker,
8477
+ valve,
8440
8478
  verifiable,
8441
8479
  window,
8442
8480
  windowCount,