@graphrefly/graphrefly 0.12.0 → 0.13.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 (67) hide show
  1. package/dist/{chunk-XWMTVV2D.js → chunk-5RN7NBNG.js} +5 -5
  2. package/dist/{chunk-4F2ZFD5L.js → chunk-6B2ZCCNN.js} +39 -39
  3. package/dist/chunk-6B2ZCCNN.js.map +1 -0
  4. package/dist/{chunk-BRPCN2HJ.js → chunk-H4UFM6WD.js} +3 -3
  5. package/dist/{chunk-NULSP7U4.js → chunk-HA6QMDKQ.js} +4 -4
  6. package/dist/{chunk-X732W3QA.js → chunk-KNGOJEYP.js} +2 -2
  7. package/dist/{chunk-6OLNYOGU.js → chunk-PFMXKG4Y.js} +2 -2
  8. package/dist/{chunk-IXTW3BIO.js → chunk-QOGWU5K7.js} +3 -3
  9. package/dist/{chunk-JYRHO63K.js → chunk-UPC5OEB5.js} +17 -17
  10. package/dist/chunk-UPC5OEB5.js.map +1 -0
  11. package/dist/{chunk-VQWLA6XQ.js → chunk-UQI4GAHD.js} +3 -3
  12. package/dist/compat/nestjs/index.cjs +37 -37
  13. package/dist/compat/nestjs/index.cjs.map +1 -1
  14. package/dist/compat/nestjs/index.d.cts +4 -4
  15. package/dist/compat/nestjs/index.d.ts +4 -4
  16. package/dist/compat/nestjs/index.js +7 -7
  17. package/dist/core/index.cjs +39 -39
  18. package/dist/core/index.cjs.map +1 -1
  19. package/dist/core/index.d.cts +2 -2
  20. package/dist/core/index.d.ts +2 -2
  21. package/dist/core/index.js +5 -5
  22. package/dist/extra/index.cjs +37 -37
  23. package/dist/extra/index.cjs.map +1 -1
  24. package/dist/extra/index.d.cts +4 -4
  25. package/dist/extra/index.d.ts +4 -4
  26. package/dist/extra/index.js +3 -3
  27. package/dist/graph/index.cjs +37 -37
  28. package/dist/graph/index.cjs.map +1 -1
  29. package/dist/graph/index.d.cts +3 -3
  30. package/dist/graph/index.d.ts +3 -3
  31. package/dist/graph/index.js +4 -4
  32. package/dist/{graph-DXT95WZ3.d.ts → graph-BXIK5Dq5.d.ts} +1 -1
  33. package/dist/{graph-BE10ujU9.d.cts → graph-BhADtuFU.d.cts} +1 -1
  34. package/dist/{index-QfbXNW1N.d.cts → index-BNB0KjKe.d.ts} +24 -21
  35. package/dist/{index-C0_7g9sj.d.ts → index-BkToATim.d.ts} +1 -1
  36. package/dist/{index-CiAqgfFg.d.ts → index-CKyYg4IP.d.ts} +3 -3
  37. package/dist/{index-CCvzN5GB.d.cts → index-DANO9Gg7.d.cts} +2 -2
  38. package/dist/{index-CthwPnHQ.d.cts → index-DBhLjWSV.d.cts} +3 -3
  39. package/dist/{index-Dzdm20sx.d.ts → index-DKIyo4Bq.d.cts} +24 -21
  40. package/dist/{index-53cDGX7F.d.ts → index-DSp5R3Xq.d.ts} +3 -3
  41. package/dist/{index-aBZ2RoP0.d.cts → index-Dqemj9q0.d.cts} +3 -3
  42. package/dist/{index-nRulwTr-.d.cts → index-Wa8jXne6.d.cts} +1 -1
  43. package/dist/{index-B10Q0sQB.d.ts → index-fYObbpUw.d.ts} +2 -2
  44. package/dist/index.cjs +53 -53
  45. package/dist/index.cjs.map +1 -1
  46. package/dist/index.d.cts +12 -12
  47. package/dist/index.d.ts +12 -12
  48. package/dist/index.js +11 -11
  49. package/dist/{meta-BcuDhtwu.d.cts → meta-CrZUQAJ6.d.cts} +1 -1
  50. package/dist/{meta-BcuDhtwu.d.ts → meta-CrZUQAJ6.d.ts} +1 -1
  51. package/dist/patterns/reactive-layout/index.cjs +50 -50
  52. package/dist/patterns/reactive-layout/index.cjs.map +1 -1
  53. package/dist/patterns/reactive-layout/index.d.cts +3 -3
  54. package/dist/patterns/reactive-layout/index.d.ts +3 -3
  55. package/dist/patterns/reactive-layout/index.js +4 -4
  56. package/dist/{reactive-log-OULQssZg.d.cts → reactive-log-ChbpUrY2.d.cts} +2 -2
  57. package/dist/{reactive-log-Cu0VdqkT.d.ts → reactive-log-DV--7BWd.d.ts} +2 -2
  58. package/package.json +1 -1
  59. package/dist/chunk-4F2ZFD5L.js.map +0 -1
  60. package/dist/chunk-JYRHO63K.js.map +0 -1
  61. /package/dist/{chunk-XWMTVV2D.js.map → chunk-5RN7NBNG.js.map} +0 -0
  62. /package/dist/{chunk-BRPCN2HJ.js.map → chunk-H4UFM6WD.js.map} +0 -0
  63. /package/dist/{chunk-NULSP7U4.js.map → chunk-HA6QMDKQ.js.map} +0 -0
  64. /package/dist/{chunk-X732W3QA.js.map → chunk-KNGOJEYP.js.map} +0 -0
  65. /package/dist/{chunk-6OLNYOGU.js.map → chunk-PFMXKG4Y.js.map} +0 -0
  66. /package/dist/{chunk-IXTW3BIO.js.map → chunk-QOGWU5K7.js.map} +0 -0
  67. /package/dist/{chunk-VQWLA6XQ.js.map → chunk-UQI4GAHD.js.map} +0 -0
package/dist/index.cjs CHANGED
@@ -134,10 +134,10 @@ __export(index_exports, {
134
134
  distill: () => distill,
135
135
  distinctUntilChanged: () => distinctUntilChanged,
136
136
  domainTemplates: () => domain_templates_exports,
137
+ downWithBatch: () => downWithBatch,
137
138
  dynamicNode: () => dynamicNode,
138
139
  effect: () => effect,
139
140
  elementAt: () => elementAt,
140
- emitWithBatch: () => emitWithBatch,
141
141
  empty: () => empty,
142
142
  escapeRegexChar: () => escapeRegexChar,
143
143
  exhaustMap: () => exhaustMap,
@@ -499,12 +499,12 @@ function partitionForBatch(messages) {
499
499
  }
500
500
  return { immediate, deferred, terminal };
501
501
  }
502
- function emitWithBatch(emit, messages, phase = 2, options) {
502
+ function downWithBatch(sink, messages, phase = 2, options) {
503
503
  if (messages.length === 0) {
504
504
  return;
505
505
  }
506
506
  if (options?.strategy === "sequential") {
507
- _emitSequential(emit, messages, phase);
507
+ _downSequential(sink, messages, phase);
508
508
  return;
509
509
  }
510
510
  const queue = phase === 3 ? pendingPhase3 : pendingPhase2;
@@ -512,61 +512,61 @@ function emitWithBatch(emit, messages, phase = 2, options) {
512
512
  const t = messages[0][0];
513
513
  if (t === DATA || t === RESOLVED) {
514
514
  if (isBatching()) {
515
- queue.push(() => emit(messages));
515
+ queue.push(() => sink(messages));
516
516
  } else {
517
- emit(messages);
517
+ sink(messages);
518
518
  }
519
519
  } else if (isTerminalMessage(t)) {
520
520
  if (isBatching()) {
521
- queue.push(() => emit(messages));
521
+ queue.push(() => sink(messages));
522
522
  } else {
523
- emit(messages);
523
+ sink(messages);
524
524
  }
525
525
  } else {
526
- emit(messages);
526
+ sink(messages);
527
527
  }
528
528
  return;
529
529
  }
530
530
  const { immediate, deferred, terminal } = partitionForBatch(messages);
531
531
  if (immediate.length > 0) {
532
- emit(immediate);
532
+ sink(immediate);
533
533
  }
534
534
  if (isBatching()) {
535
535
  if (deferred.length > 0) {
536
- queue.push(() => emit(deferred));
536
+ queue.push(() => sink(deferred));
537
537
  }
538
538
  if (terminal.length > 0) {
539
- queue.push(() => emit(terminal));
539
+ queue.push(() => sink(terminal));
540
540
  }
541
541
  } else {
542
542
  if (deferred.length > 0) {
543
- emit(deferred);
543
+ sink(deferred);
544
544
  }
545
545
  if (terminal.length > 0) {
546
- emit(terminal);
546
+ sink(terminal);
547
547
  }
548
548
  }
549
549
  }
550
- function _emitSequential(emit, messages, phase = 2) {
550
+ function _downSequential(sink, messages, phase = 2) {
551
551
  const dataQueue = phase === 3 ? pendingPhase3 : pendingPhase2;
552
552
  for (const msg of messages) {
553
553
  const tier = messageTier(msg[0]);
554
554
  if (tier === 2) {
555
555
  if (isBatching()) {
556
556
  const m = msg;
557
- dataQueue.push(() => emit([m]));
557
+ dataQueue.push(() => sink([m]));
558
558
  } else {
559
- emit([msg]);
559
+ sink([msg]);
560
560
  }
561
561
  } else if (tier >= 3) {
562
562
  if (isBatching()) {
563
563
  const m = msg;
564
- pendingPhase3.push(() => emit([m]));
564
+ pendingPhase3.push(() => sink([m]));
565
565
  } else {
566
- emit([msg]);
566
+ sink([msg]);
567
567
  }
568
568
  } else {
569
- emit([msg]);
569
+ sink([msg]);
570
570
  }
571
571
  }
572
572
  }
@@ -854,7 +854,7 @@ var NodeImpl = class {
854
854
  _singleDepSinks = /* @__PURE__ */ new WeakSet();
855
855
  _upstreamUnsubs = [];
856
856
  _actions;
857
- _boundEmitToSinks;
857
+ _boundDownToSinks;
858
858
  _inspectorHook;
859
859
  _versioning;
860
860
  _hashFn;
@@ -901,7 +901,7 @@ var NodeImpl = class {
901
901
  },
902
902
  emit(value) {
903
903
  self._manualEmitUsed = true;
904
- self._emitAutoValue(value);
904
+ self._downAutoValue(value);
905
905
  },
906
906
  up(messages) {
907
907
  self._upInternal(messages);
@@ -909,7 +909,7 @@ var NodeImpl = class {
909
909
  };
910
910
  this.down = this.down.bind(this);
911
911
  this.up = this.up.bind(this);
912
- this._boundEmitToSinks = this._emitToSinks.bind(this);
912
+ this._boundDownToSinks = this._downToSinks.bind(this);
913
913
  }
914
914
  get name() {
915
915
  return this._registryName ?? this._optsName;
@@ -1015,12 +1015,12 @@ var NodeImpl = class {
1015
1015
  if (sinkMessages[i][0] !== DIRTY) filtered.push(sinkMessages[i]);
1016
1016
  }
1017
1017
  if (filtered.length > 0) {
1018
- emitWithBatch(this._boundEmitToSinks, filtered);
1018
+ downWithBatch(this._boundDownToSinks, filtered);
1019
1019
  }
1020
1020
  return;
1021
1021
  }
1022
1022
  }
1023
- emitWithBatch(this._boundEmitToSinks, sinkMessages);
1023
+ downWithBatch(this._boundDownToSinks, sinkMessages);
1024
1024
  }
1025
1025
  subscribe(sink, hints) {
1026
1026
  if (hints?.actor != null && this._guard != null) {
@@ -1107,7 +1107,7 @@ var NodeImpl = class {
1107
1107
  this._disconnectUpstream();
1108
1108
  }
1109
1109
  // --- Private methods (prototype, _ prefix) ---
1110
- _emitToSinks(messages) {
1110
+ _downToSinks(messages) {
1111
1111
  if (this._sinks == null) return;
1112
1112
  if (typeof this._sinks === "function") {
1113
1113
  this._sinks(messages);
@@ -1169,7 +1169,7 @@ var NodeImpl = class {
1169
1169
  _canSkipDirty() {
1170
1170
  return this._sinkCount === 1 && this._singleDepSinkCount === 1;
1171
1171
  }
1172
- _emitAutoValue(value) {
1172
+ _downAutoValue(value) {
1173
1173
  const wasDirty = this._status === "dirty";
1174
1174
  let unchanged;
1175
1175
  try {
@@ -1222,7 +1222,7 @@ var NodeImpl = class {
1222
1222
  this._cleanup = out.cleanup;
1223
1223
  if (this._manualEmitUsed) return;
1224
1224
  if ("value" in out) {
1225
- this._emitAutoValue(out.value);
1225
+ this._downAutoValue(out.value);
1226
1226
  }
1227
1227
  return;
1228
1228
  }
@@ -1232,7 +1232,7 @@ var NodeImpl = class {
1232
1232
  }
1233
1233
  if (this._manualEmitUsed) return;
1234
1234
  if (out === void 0) return;
1235
- this._emitAutoValue(out);
1235
+ this._downAutoValue(out);
1236
1236
  } catch (err) {
1237
1237
  const errMsg = err instanceof Error ? err.message : String(err);
1238
1238
  const wrapped = new Error(`Node "${this.name}": fn threw: ${errMsg}`, { cause: err });
@@ -1409,7 +1409,7 @@ var DynamicNodeImpl = class {
1409
1409
  _singleDepSinks = /* @__PURE__ */ new WeakSet();
1410
1410
  // Actions object (for onMessage handler)
1411
1411
  _actions;
1412
- _boundEmitToSinks;
1412
+ _boundDownToSinks;
1413
1413
  // Mutable state
1414
1414
  _cached = NO_VALUE;
1415
1415
  _status = "disconnected";
@@ -1456,7 +1456,7 @@ var DynamicNodeImpl = class {
1456
1456
  self._downInternal(messages);
1457
1457
  },
1458
1458
  emit(value) {
1459
- self._emitAutoValue(value);
1459
+ self._downAutoValue(value);
1460
1460
  },
1461
1461
  up(messages) {
1462
1462
  for (const dep of self._deps) {
@@ -1464,7 +1464,7 @@ var DynamicNodeImpl = class {
1464
1464
  }
1465
1465
  }
1466
1466
  };
1467
- this._boundEmitToSinks = this._emitToSinks.bind(this);
1467
+ this._boundDownToSinks = this._downToSinks.bind(this);
1468
1468
  }
1469
1469
  get name() {
1470
1470
  return this._registryName ?? this._optsName;
@@ -1544,12 +1544,12 @@ var DynamicNodeImpl = class {
1544
1544
  if (sinkMessages[i][0] !== DIRTY) filtered.push(sinkMessages[i]);
1545
1545
  }
1546
1546
  if (filtered.length > 0) {
1547
- emitWithBatch(this._boundEmitToSinks, filtered);
1547
+ downWithBatch(this._boundDownToSinks, filtered);
1548
1548
  }
1549
1549
  return;
1550
1550
  }
1551
1551
  }
1552
- emitWithBatch(this._boundEmitToSinks, sinkMessages);
1552
+ downWithBatch(this._boundDownToSinks, sinkMessages);
1553
1553
  }
1554
1554
  _canSkipDirty() {
1555
1555
  return this._sinkCount === 1 && this._singleDepSinkCount === 1;
@@ -1625,7 +1625,7 @@ var DynamicNodeImpl = class {
1625
1625
  this._disconnect();
1626
1626
  }
1627
1627
  // --- Private methods ---
1628
- _emitToSinks(messages) {
1628
+ _downToSinks(messages) {
1629
1629
  if (this._sinks == null) return;
1630
1630
  if (typeof this._sinks === "function") {
1631
1631
  this._sinks(messages);
@@ -1679,7 +1679,7 @@ var DynamicNodeImpl = class {
1679
1679
  }
1680
1680
  }
1681
1681
  }
1682
- _emitAutoValue(value) {
1682
+ _downAutoValue(value) {
1683
1683
  const wasDirty = this._status === "dirty";
1684
1684
  let unchanged;
1685
1685
  try {
@@ -1739,7 +1739,7 @@ var DynamicNodeImpl = class {
1739
1739
  const result = this._fn(get);
1740
1740
  this._rewire(trackedDeps);
1741
1741
  if (result === void 0) return;
1742
- this._emitAutoValue(result);
1742
+ this._downAutoValue(result);
1743
1743
  } catch (err) {
1744
1744
  this._downInternal([[ERROR, err]]);
1745
1745
  }
@@ -1803,14 +1803,14 @@ var DynamicNodeImpl = class {
1803
1803
  this._dirtyBits.add(index);
1804
1804
  this._settledBits.delete(index);
1805
1805
  if (this._dirtyBits.size === 1) {
1806
- emitWithBatch(this._boundEmitToSinks, [[DIRTY]]);
1806
+ downWithBatch(this._boundDownToSinks, [[DIRTY]]);
1807
1807
  }
1808
1808
  continue;
1809
1809
  }
1810
1810
  if (t === DATA || t === RESOLVED) {
1811
1811
  if (!this._dirtyBits.has(index)) {
1812
1812
  this._dirtyBits.add(index);
1813
- emitWithBatch(this._boundEmitToSinks, [[DIRTY]]);
1813
+ downWithBatch(this._boundDownToSinks, [[DIRTY]]);
1814
1814
  }
1815
1815
  this._settledBits.add(index);
1816
1816
  if (this._allDirtySettled()) {
@@ -5562,9 +5562,9 @@ __export(core_exports, {
5562
5562
  defaultHash: () => defaultHash,
5563
5563
  derived: () => derived,
5564
5564
  describeNode: () => describeNode,
5565
+ downWithBatch: () => downWithBatch,
5565
5566
  dynamicNode: () => dynamicNode,
5566
5567
  effect: () => effect,
5567
- emitWithBatch: () => emitWithBatch,
5568
5568
  isBatching: () => isBatching,
5569
5569
  isKnownMessageType: () => isKnownMessageType,
5570
5570
  isPhase2Message: () => isPhase2Message,
@@ -14917,7 +14917,7 @@ function computeLineBreaks(segments, maxWidth, adapter, font, cache2) {
14917
14917
  hyphenWidth = adapter.measureSegment("-", font).width;
14918
14918
  fontCache.set("-", hyphenWidth);
14919
14919
  }
14920
- function emitLine(endSeg = lineEndSeg, endGrapheme = lineEndGrapheme, width = lineW) {
14920
+ function flushLine(endSeg = lineEndSeg, endGrapheme = lineEndGrapheme, width = lineW) {
14921
14921
  let text = "";
14922
14922
  for (let i = lineStartSeg; i < endSeg; i++) {
14923
14923
  const seg = segments[i];
@@ -14980,7 +14980,7 @@ function computeLineBreaks(segments, maxWidth, adapter, font, cache2) {
14980
14980
  const seg = segments[i];
14981
14981
  if (seg.kind === "hard-break") {
14982
14982
  if (hasContent) {
14983
- emitLine();
14983
+ flushLine();
14984
14984
  } else {
14985
14985
  lines.push({
14986
14986
  text: "",
@@ -15014,20 +15014,20 @@ function computeLineBreaks(segments, maxWidth, adapter, font, cache2) {
15014
15014
  lineW += w;
15015
15015
  lineEndSeg = i + 1;
15016
15016
  lineEndGrapheme = 0;
15017
- emitLine(i + 1, 0, seg.kind === "space" ? lineW - w : lineW);
15017
+ flushLine(i + 1, 0, seg.kind === "space" ? lineW - w : lineW);
15018
15018
  continue;
15019
15019
  }
15020
15020
  if (pendingBreakSeg >= 0) {
15021
- emitLine(pendingBreakSeg, 0, pendingBreakWidth);
15021
+ flushLine(pendingBreakSeg, 0, pendingBreakWidth);
15022
15022
  i--;
15023
15023
  continue;
15024
15024
  }
15025
15025
  if (w > maxWidth && seg.graphemeWidths) {
15026
- emitLine();
15026
+ flushLine();
15027
15027
  appendBreakableSegment(i, 0, seg.graphemeWidths);
15028
15028
  continue;
15029
15029
  }
15030
- emitLine();
15030
+ flushLine();
15031
15031
  i--;
15032
15032
  continue;
15033
15033
  }
@@ -15040,7 +15040,7 @@ function computeLineBreaks(segments, maxWidth, adapter, font, cache2) {
15040
15040
  }
15041
15041
  }
15042
15042
  if (hasContent) {
15043
- emitLine();
15043
+ flushLine();
15044
15044
  }
15045
15045
  return { lines, lineCount: lines.length };
15046
15046
  function appendBreakableSegment(segIdx, startG, gWidths) {
@@ -15051,7 +15051,7 @@ function computeLineBreaks(segments, maxWidth, adapter, font, cache2) {
15051
15051
  continue;
15052
15052
  }
15053
15053
  if (lineW + gw > maxWidth + 5e-3) {
15054
- emitLine();
15054
+ flushLine();
15055
15055
  startLineAtGrapheme(segIdx, g, gw);
15056
15056
  } else {
15057
15057
  lineW += gw;
@@ -15142,9 +15142,9 @@ function reactiveLayout(opts) {
15142
15142
  const hr = hitRate;
15143
15143
  const len = result.length;
15144
15144
  const el = elapsed;
15145
- emitWithBatch((msgs) => meta["cache-hit-rate"]?.down(msgs), [[DATA, hr]], 3);
15146
- emitWithBatch((msgs) => meta["segment-count"]?.down(msgs), [[DATA, len]], 3);
15147
- emitWithBatch((msgs) => meta["layout-time-ns"]?.down(msgs), [[DATA, el]], 3);
15145
+ downWithBatch((msgs) => meta["cache-hit-rate"]?.down(msgs), [[DATA, hr]], 3);
15146
+ downWithBatch((msgs) => meta["segment-count"]?.down(msgs), [[DATA, len]], 3);
15147
+ downWithBatch((msgs) => meta["layout-time-ns"]?.down(msgs), [[DATA, el]], 3);
15148
15148
  }
15149
15149
  return result;
15150
15150
  },
@@ -18687,8 +18687,8 @@ function reactiveBlockLayout(opts) {
18687
18687
  const elapsed = monotonicNs() - t0;
18688
18688
  const meta = measuredBlocksNode.meta;
18689
18689
  if (meta) {
18690
- emitWithBatch((msgs) => meta["block-count"]?.down(msgs), [[DATA, result.length]], 3);
18691
- emitWithBatch((msgs) => meta["layout-time-ns"]?.down(msgs), [[DATA, elapsed]], 3);
18690
+ downWithBatch((msgs) => meta["block-count"]?.down(msgs), [[DATA, result.length]], 3);
18691
+ downWithBatch((msgs) => meta["layout-time-ns"]?.down(msgs), [[DATA, elapsed]], 3);
18692
18692
  }
18693
18693
  return result;
18694
18694
  },
@@ -18839,10 +18839,10 @@ var version = "0.0.0";
18839
18839
  distill,
18840
18840
  distinctUntilChanged,
18841
18841
  domainTemplates,
18842
+ downWithBatch,
18842
18843
  dynamicNode,
18843
18844
  effect,
18844
18845
  elementAt,
18845
- emitWithBatch,
18846
18846
  empty,
18847
18847
  escapeRegexChar,
18848
18848
  exhaustMap,