@graphrefly/graphrefly 0.19.0 → 0.21.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 (52) hide show
  1. package/README.md +20 -3
  2. package/dist/{chunk-JC2SN46B.js → chunk-2UDLYZHT.js} +3 -3
  3. package/dist/{chunk-YXR3WW3Q.js → chunk-4MQ2J6IG.js} +4 -4
  4. package/dist/{chunk-YXR3WW3Q.js.map → chunk-4MQ2J6IG.js.map} +1 -1
  5. package/dist/{chunk-XUOY3YKN.js → chunk-7IGHIFTT.js} +2 -2
  6. package/dist/{chunk-AHRKWMNI.js → chunk-DOSLSFKL.js} +3 -3
  7. package/dist/{chunk-BER7UYLM.js → chunk-ECN37NVS.js} +161 -199
  8. package/dist/chunk-ECN37NVS.js.map +1 -0
  9. package/dist/{chunk-YLR5JUJZ.js → chunk-G66H6ZRK.js} +3 -3
  10. package/dist/{chunk-IRZAGZUB.js → chunk-VOQFK7YN.js} +26 -2
  11. package/dist/chunk-VOQFK7YN.js.map +1 -0
  12. package/dist/{chunk-OO5QOAXI.js → chunk-XWBVAO2R.js} +22 -9
  13. package/dist/chunk-XWBVAO2R.js.map +1 -0
  14. package/dist/{chunk-UW77D7SP.js → chunk-ZTCDY5NQ.js} +3 -3
  15. package/dist/compat/nestjs/index.cjs +15 -6
  16. package/dist/compat/nestjs/index.cjs.map +1 -1
  17. package/dist/compat/nestjs/index.js +7 -7
  18. package/dist/core/index.cjs +3 -3
  19. package/dist/core/index.cjs.map +1 -1
  20. package/dist/core/index.d.cts +1 -1
  21. package/dist/core/index.d.ts +1 -1
  22. package/dist/core/index.js +3 -3
  23. package/dist/extra/index.cjs +183 -199
  24. package/dist/extra/index.cjs.map +1 -1
  25. package/dist/extra/index.d.cts +1 -1
  26. package/dist/extra/index.d.ts +1 -1
  27. package/dist/extra/index.js +7 -3
  28. package/dist/graph/index.cjs +1 -1
  29. package/dist/graph/index.cjs.map +1 -1
  30. package/dist/graph/index.js +4 -4
  31. package/dist/{index-CvKzv0AW.d.ts → index-BHfg_Ez3.d.ts} +1 -1
  32. package/dist/{index-BBUYZfJ1.d.cts → index-Bc_diYYJ.d.cts} +1 -1
  33. package/dist/{index-BnkMgNNa.d.ts → index-DuN3bhtm.d.ts} +47 -2
  34. package/dist/{index-Bjh5C1Tp.d.cts → index-SFzE_KTa.d.cts} +47 -2
  35. package/dist/index.cjs +463 -281
  36. package/dist/index.cjs.map +1 -1
  37. package/dist/index.d.cts +275 -10
  38. package/dist/index.d.ts +275 -10
  39. package/dist/index.js +284 -90
  40. package/dist/index.js.map +1 -1
  41. package/dist/patterns/reactive-layout/index.cjs +1 -1
  42. package/dist/patterns/reactive-layout/index.cjs.map +1 -1
  43. package/dist/patterns/reactive-layout/index.js +4 -4
  44. package/package.json +3 -2
  45. package/dist/chunk-BER7UYLM.js.map +0 -1
  46. package/dist/chunk-IRZAGZUB.js.map +0 -1
  47. package/dist/chunk-OO5QOAXI.js.map +0 -1
  48. /package/dist/{chunk-JC2SN46B.js.map → chunk-2UDLYZHT.js.map} +0 -0
  49. /package/dist/{chunk-XUOY3YKN.js.map → chunk-7IGHIFTT.js.map} +0 -0
  50. /package/dist/{chunk-AHRKWMNI.js.map → chunk-DOSLSFKL.js.map} +0 -0
  51. /package/dist/{chunk-YLR5JUJZ.js.map → chunk-G66H6ZRK.js.map} +0 -0
  52. /package/dist/{chunk-UW77D7SP.js.map → chunk-ZTCDY5NQ.js.map} +0 -0
@@ -1,2 +1,2 @@
1
1
  export { A as Actor, C as CLEANUP_RESULT, c as COMPLETE, d as CleanupResult, D as DATA, e as DEFAULT_ACTOR, f as DIRTY, g as DescribeDetail, h as DescribeField, i as DescribeNodeOutput, E as ERROR, G as GuardAction, j as GuardDenied, k as GuardDeniedDetails, H as HashFn, I as INVALIDATE, M as Message, l as Messages, N as Node, b as NodeActions, m as NodeDescribeKind, n as NodeGuard, a as NodeOptions, o as NodeSink, p as NodeStatus, q as NodeTransportOptions, r as NodeVersionInfo, O as OnMessageHandler, P as PAUSE, s as PolicyAllow, t as PolicyDeny, u as PolicyRuleData, R as RESOLVED, v as RESUME, S as START, w 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 isKnownMessageType, U as isLocalOnly, W as isPhase2Message, X as isTerminalMessage, Y as isV1, Z as knownMessageTypes, _ as messageTier, $ as normalizeActor, a0 as policy, a1 as policyFromRules, a2 as propagatesToMeta, a3 as resolveDescribeFields } from '../meta-BnG7XAaE.cjs';
2
- export { B as BridgeOptions, D as DEFAULT_DOWN, a as DownStrategy, b as DynGet, c as DynamicNodeFn, d as DynamicNodeImpl, e as DynamicNodeOptions, N as NodeFn, P as PipeOperator, R as ResettableTimer, f as batch, g as bridge, h as derived, j as downWithBatch, k as dynamicNode, l as effect, m as isBatching, n as monotonicNs, o as node, p as partitionForBatch, q as pipe, r as producer, s as state, w as wallClockNs } from '../index-BBUYZfJ1.cjs';
2
+ export { B as BridgeOptions, D as DEFAULT_DOWN, a as DownStrategy, b as DynGet, c as DynamicNodeFn, d as DynamicNodeImpl, e as DynamicNodeOptions, N as NodeFn, P as PipeOperator, R as ResettableTimer, f as batch, g as bridge, h as derived, j as downWithBatch, k as dynamicNode, l as effect, m as isBatching, n as monotonicNs, o as node, p as partitionForBatch, q as pipe, r as producer, s as state, w as wallClockNs } from '../index-Bc_diYYJ.cjs';
@@ -1,2 +1,2 @@
1
1
  export { A as Actor, C as CLEANUP_RESULT, c as COMPLETE, d as CleanupResult, D as DATA, e as DEFAULT_ACTOR, f as DIRTY, g as DescribeDetail, h as DescribeField, i as DescribeNodeOutput, E as ERROR, G as GuardAction, j as GuardDenied, k as GuardDeniedDetails, H as HashFn, I as INVALIDATE, M as Message, l as Messages, N as Node, b as NodeActions, m as NodeDescribeKind, n as NodeGuard, a as NodeOptions, o as NodeSink, p as NodeStatus, q as NodeTransportOptions, r as NodeVersionInfo, O as OnMessageHandler, P as PAUSE, s as PolicyAllow, t as PolicyDeny, u as PolicyRuleData, R as RESOLVED, v as RESUME, S as START, w 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 isKnownMessageType, U as isLocalOnly, W as isPhase2Message, X as isTerminalMessage, Y as isV1, Z as knownMessageTypes, _ as messageTier, $ as normalizeActor, a0 as policy, a1 as policyFromRules, a2 as propagatesToMeta, a3 as resolveDescribeFields } from '../meta-BnG7XAaE.js';
2
- export { B as BridgeOptions, D as DEFAULT_DOWN, a as DownStrategy, b as DynGet, c as DynamicNodeFn, d as DynamicNodeImpl, e as DynamicNodeOptions, N as NodeFn, P as PipeOperator, R as ResettableTimer, f as batch, g as bridge, h as derived, j as downWithBatch, k as dynamicNode, l as effect, m as isBatching, n as monotonicNs, o as node, p as partitionForBatch, q as pipe, r as producer, s as state, w as wallClockNs } from '../index-CvKzv0AW.js';
2
+ export { B as BridgeOptions, D as DEFAULT_DOWN, a as DownStrategy, b as DynGet, c as DynamicNodeFn, d as DynamicNodeImpl, e as DynamicNodeOptions, N as NodeFn, P as PipeOperator, R as ResettableTimer, f as batch, g as bridge, h as derived, j as downWithBatch, k as dynamicNode, l as effect, m as isBatching, n as monotonicNs, o as node, p as partitionForBatch, q as pipe, r as producer, s as state, w as wallClockNs } from '../index-BHfg_Ez3.js';
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  DEFAULT_DOWN,
3
3
  bridge
4
- } from "../chunk-AHRKWMNI.js";
4
+ } from "../chunk-DOSLSFKL.js";
5
5
  import {
6
6
  ResettableTimer
7
7
  } from "../chunk-WZ2Z2CRV.js";
8
8
  import {
9
9
  resolveDescribeFields
10
- } from "../chunk-XUOY3YKN.js";
10
+ } from "../chunk-7IGHIFTT.js";
11
11
  import {
12
12
  CLEANUP_RESULT,
13
13
  COMPLETE,
@@ -52,7 +52,7 @@ import {
52
52
  propagatesToMeta,
53
53
  state,
54
54
  wallClockNs
55
- } from "../chunk-YXR3WW3Q.js";
55
+ } from "../chunk-4MQ2J6IG.js";
56
56
  export {
57
57
  CLEANUP_RESULT,
58
58
  COMPLETE,
@@ -101,6 +101,7 @@ __export(extra_exports, {
101
101
  fromWebhook: () => fromWebhook,
102
102
  globToRegExp: () => globToRegExp,
103
103
  interval: () => interval,
104
+ keepalive: () => keepalive,
104
105
  last: () => last,
105
106
  linear: () => linear,
106
107
  logSlice: () => logSlice,
@@ -122,6 +123,7 @@ __export(extra_exports, {
122
123
  pubsub: () => pubsub,
123
124
  race: () => race,
124
125
  rateLimiter: () => rateLimiter,
126
+ reactiveCounter: () => reactiveCounter,
125
127
  reactiveIndex: () => reactiveIndex,
126
128
  reactiveList: () => reactiveList,
127
129
  reactiveLog: () => reactiveLog,
@@ -1119,7 +1121,7 @@ var NodeImpl = class extends NodeBase {
1119
1121
  try {
1120
1122
  const consumed = this._onMessage(msg, index, this._actions);
1121
1123
  if (consumed) {
1122
- if (t === START) {
1124
+ if (t === START || t === DATA || t === RESOLVED) {
1123
1125
  this._depDirtyMask.clear(index);
1124
1126
  if (this._depDirtyMask.any() && this._depSettledMask.covers(this._depDirtyMask)) {
1125
1127
  this._depDirtyMask.reset();
@@ -1285,8 +1287,8 @@ function producer(fn, opts) {
1285
1287
  function derived(deps, fn, opts) {
1286
1288
  return node(deps, fn, { describeKind: "derived", ...opts });
1287
1289
  }
1288
- function effect(deps, fn) {
1289
- return node(deps, fn, { describeKind: "effect" });
1290
+ function effect(deps, fn, opts) {
1291
+ return node(deps, fn, { describeKind: "effect", ...opts });
1290
1292
  }
1291
1293
 
1292
1294
  // src/extra/backoff.ts
@@ -2436,6 +2438,28 @@ function firstWhere(source, predicate) {
2436
2438
  });
2437
2439
  }
2438
2440
  var shareReplay = replay;
2441
+ function keepalive(n) {
2442
+ return n.subscribe(() => {
2443
+ });
2444
+ }
2445
+ function reactiveCounter(cap) {
2446
+ const counter = state(0);
2447
+ return {
2448
+ node: counter,
2449
+ increment() {
2450
+ const current = counter.get() ?? 0;
2451
+ if (current >= cap) return false;
2452
+ counter.down([[DIRTY], [DATA, current + 1]]);
2453
+ return true;
2454
+ },
2455
+ get() {
2456
+ return counter.get() ?? 0;
2457
+ },
2458
+ atCap() {
2459
+ return (counter.get() ?? 0) >= cap;
2460
+ }
2461
+ };
2462
+ }
2439
2463
 
2440
2464
  // src/extra/adapters.ts
2441
2465
  function createSinkErrorHandler(userHandler) {
@@ -5640,9 +5664,11 @@ function scan(source, reducer, seed, opts) {
5640
5664
  function reduce(source, reducer, seed, opts) {
5641
5665
  let acc = seed;
5642
5666
  let sawData = false;
5667
+ let depHasData = false;
5643
5668
  return node(
5644
5669
  [source],
5645
5670
  ([v]) => {
5671
+ if (!depHasData) return void 0;
5646
5672
  sawData = true;
5647
5673
  acc = reducer(acc, v);
5648
5674
  return void 0;
@@ -5653,8 +5679,10 @@ function reduce(source, reducer, seed, opts) {
5653
5679
  onResubscribe: opts?.resubscribable === true ? () => {
5654
5680
  acc = seed;
5655
5681
  sawData = false;
5682
+ depHasData = false;
5656
5683
  } : void 0,
5657
5684
  onMessage(msg, _i, a) {
5685
+ if (msg[0] === DATA) depHasData = true;
5658
5686
  if (msg[0] === COMPLETE) {
5659
5687
  if (!sawData) acc = seed;
5660
5688
  a.emit(acc);
@@ -5773,9 +5801,11 @@ function skip(source, count, opts) {
5773
5801
  }
5774
5802
  function takeWhile(source, predicate, opts) {
5775
5803
  let done = false;
5804
+ let depHasData = false;
5776
5805
  return node(
5777
5806
  [source],
5778
5807
  ([v], a) => {
5808
+ if (!depHasData) return void 0;
5779
5809
  if (done) return void 0;
5780
5810
  if (!predicate(v)) {
5781
5811
  done = true;
@@ -5788,6 +5818,7 @@ function takeWhile(source, predicate, opts) {
5788
5818
  ...operatorOpts3(opts),
5789
5819
  completeWhenDepsComplete: false,
5790
5820
  onMessage(msg, _i, a) {
5821
+ if (msg[0] === DATA) depHasData = true;
5791
5822
  if (done) {
5792
5823
  if (msg[0] === COMPLETE) {
5793
5824
  a.down([[COMPLETE]]);
@@ -5840,9 +5871,11 @@ function last(source, options) {
5840
5871
  const useDefault = options != null && Object.hasOwn(options, "defaultValue");
5841
5872
  let lastVal;
5842
5873
  let has = false;
5874
+ let depHasData = false;
5843
5875
  return node(
5844
5876
  [source],
5845
5877
  ([v]) => {
5878
+ if (!depHasData) return void 0;
5846
5879
  lastVal = v;
5847
5880
  has = true;
5848
5881
  return void 0;
@@ -5851,6 +5884,7 @@ function last(source, options) {
5851
5884
  ...operatorOpts3(rest),
5852
5885
  completeWhenDepsComplete: false,
5853
5886
  onMessage(msg, _i, a) {
5887
+ if (msg[0] === DATA) depHasData = true;
5854
5888
  if (msg[0] === COMPLETE) {
5855
5889
  if (has) {
5856
5890
  a.emit(lastVal);
@@ -6237,120 +6271,101 @@ function forwardInner(inner, a, onInnerComplete) {
6237
6271
  function switchMap(source, project, opts) {
6238
6272
  let innerUnsub;
6239
6273
  let sourceDone = false;
6240
- let attached = false;
6241
6274
  function clearInner() {
6242
6275
  innerUnsub?.();
6243
6276
  innerUnsub = void 0;
6244
6277
  }
6245
6278
  function attach(v, a) {
6246
- attached = true;
6247
6279
  clearInner();
6248
6280
  innerUnsub = forwardInner(fromAny(project(v)), a, () => {
6249
6281
  clearInner();
6250
6282
  if (sourceDone) a.down([[COMPLETE]]);
6251
6283
  });
6252
6284
  }
6253
- return node(
6254
- [source],
6255
- ([v], a) => {
6256
- if (!attached) attach(v, a);
6257
- return clearInner;
6258
- },
6259
- {
6260
- ...operatorOpts3(opts),
6261
- completeWhenDepsComplete: false,
6262
- onMessage(msg, _i, a) {
6263
- const t = msg[0];
6264
- if (t === ERROR) {
6265
- clearInner();
6266
- a.down([msg]);
6267
- return true;
6268
- }
6269
- if (t === COMPLETE) {
6270
- sourceDone = true;
6271
- if (innerUnsub === void 0) a.down([[COMPLETE]]);
6272
- return true;
6273
- }
6274
- if (t === DIRTY) {
6275
- a.down([[DIRTY]]);
6276
- return true;
6277
- }
6278
- if (t === RESOLVED) {
6279
- a.down([[RESOLVED]]);
6280
- return true;
6281
- }
6282
- if (t === DATA) {
6283
- attach(msg[1], a);
6284
- return true;
6285
- }
6286
- return false;
6285
+ return node([source], () => clearInner, {
6286
+ ...operatorOpts3(opts),
6287
+ completeWhenDepsComplete: false,
6288
+ onMessage(msg, _i, a) {
6289
+ const t = msg[0];
6290
+ if (t === ERROR) {
6291
+ clearInner();
6292
+ a.down([msg]);
6293
+ return true;
6287
6294
  }
6295
+ if (t === COMPLETE) {
6296
+ sourceDone = true;
6297
+ if (innerUnsub === void 0) a.down([[COMPLETE]]);
6298
+ return true;
6299
+ }
6300
+ if (t === DIRTY) {
6301
+ a.down([[DIRTY]]);
6302
+ return true;
6303
+ }
6304
+ if (t === RESOLVED) {
6305
+ a.down([[RESOLVED]]);
6306
+ return true;
6307
+ }
6308
+ if (t === DATA) {
6309
+ attach(msg[1], a);
6310
+ return true;
6311
+ }
6312
+ return false;
6288
6313
  }
6289
- );
6314
+ });
6290
6315
  }
6291
6316
  function exhaustMap(source, project, opts) {
6292
6317
  let innerUnsub;
6293
6318
  let sourceDone = false;
6294
- let attached = false;
6295
6319
  function clearInner() {
6296
6320
  innerUnsub?.();
6297
6321
  innerUnsub = void 0;
6298
6322
  }
6299
6323
  function attach(v, a) {
6300
- attached = true;
6301
6324
  innerUnsub = forwardInner(fromAny(project(v)), a, () => {
6302
6325
  clearInner();
6303
6326
  if (sourceDone) a.down([[COMPLETE]]);
6304
6327
  });
6305
6328
  }
6306
- return node(
6307
- [source],
6308
- ([v], a) => {
6309
- if (!attached && innerUnsub === void 0) attach(v, a);
6310
- return clearInner;
6311
- },
6312
- {
6313
- ...operatorOpts3(opts),
6314
- completeWhenDepsComplete: false,
6315
- onMessage(msg, _i, a) {
6316
- const t = msg[0];
6317
- if (t === ERROR) {
6318
- clearInner();
6319
- a.down([msg]);
6320
- return true;
6321
- }
6322
- if (t === COMPLETE) {
6323
- sourceDone = true;
6324
- if (innerUnsub === void 0) a.down([[COMPLETE]]);
6325
- return true;
6326
- }
6327
- if (t === DIRTY) {
6328
- a.down([[DIRTY]]);
6329
- return true;
6330
- }
6331
- if (t === RESOLVED) {
6329
+ return node([source], () => clearInner, {
6330
+ ...operatorOpts3(opts),
6331
+ completeWhenDepsComplete: false,
6332
+ onMessage(msg, _i, a) {
6333
+ const t = msg[0];
6334
+ if (t === ERROR) {
6335
+ clearInner();
6336
+ a.down([msg]);
6337
+ return true;
6338
+ }
6339
+ if (t === COMPLETE) {
6340
+ sourceDone = true;
6341
+ if (innerUnsub === void 0) a.down([[COMPLETE]]);
6342
+ return true;
6343
+ }
6344
+ if (t === DIRTY) {
6345
+ a.down([[DIRTY]]);
6346
+ return true;
6347
+ }
6348
+ if (t === RESOLVED) {
6349
+ a.down([[RESOLVED]]);
6350
+ return true;
6351
+ }
6352
+ if (t === DATA) {
6353
+ if (innerUnsub !== void 0) {
6332
6354
  a.down([[RESOLVED]]);
6333
6355
  return true;
6334
6356
  }
6335
- if (t === DATA) {
6336
- if (innerUnsub !== void 0) {
6337
- a.down([[RESOLVED]]);
6338
- return true;
6339
- }
6340
- attach(msg[1], a);
6341
- return true;
6342
- }
6343
- return false;
6357
+ attach(msg[1], a);
6358
+ return true;
6344
6359
  }
6360
+ return false;
6345
6361
  }
6346
- );
6362
+ });
6347
6363
  }
6348
6364
  function concatMap(source, project, opts) {
6349
6365
  const { maxBuffer: maxBuf, ...concatNodeOpts } = opts ?? {};
6350
6366
  const queue = [];
6351
6367
  let innerUnsub;
6352
6368
  let sourceDone = false;
6353
- let attached = false;
6354
6369
  function clearInner() {
6355
6370
  innerUnsub?.();
6356
6371
  innerUnsub = void 0;
@@ -6368,49 +6383,41 @@ function concatMap(source, project, opts) {
6368
6383
  });
6369
6384
  }
6370
6385
  function enqueue(v, a) {
6371
- attached = true;
6372
6386
  if (maxBuf && maxBuf > 0 && queue.length >= maxBuf) queue.shift();
6373
6387
  queue.push(v);
6374
6388
  tryPump(a);
6375
6389
  }
6376
- return node(
6377
- [source],
6378
- ([v], a) => {
6379
- if (!attached) enqueue(v, a);
6380
- return clearInner;
6381
- },
6382
- {
6383
- ...operatorOpts3(concatNodeOpts),
6384
- completeWhenDepsComplete: false,
6385
- onMessage(msg, _i, a) {
6386
- const t = msg[0];
6387
- if (t === ERROR) {
6388
- clearInner();
6389
- queue.length = 0;
6390
- a.down([msg]);
6391
- return true;
6392
- }
6393
- if (t === COMPLETE) {
6394
- sourceDone = true;
6395
- tryPump(a);
6396
- return true;
6397
- }
6398
- if (t === DIRTY) {
6399
- a.down([[DIRTY]]);
6400
- return true;
6401
- }
6402
- if (t === RESOLVED) {
6403
- a.down([[RESOLVED]]);
6404
- return true;
6405
- }
6406
- if (t === DATA) {
6407
- enqueue(msg[1], a);
6408
- return true;
6409
- }
6410
- return false;
6390
+ return node([source], () => clearInner, {
6391
+ ...operatorOpts3(concatNodeOpts),
6392
+ completeWhenDepsComplete: false,
6393
+ onMessage(msg, _i, a) {
6394
+ const t = msg[0];
6395
+ if (t === ERROR) {
6396
+ clearInner();
6397
+ queue.length = 0;
6398
+ a.down([msg]);
6399
+ return true;
6400
+ }
6401
+ if (t === COMPLETE) {
6402
+ sourceDone = true;
6403
+ tryPump(a);
6404
+ return true;
6405
+ }
6406
+ if (t === DIRTY) {
6407
+ a.down([[DIRTY]]);
6408
+ return true;
6409
+ }
6410
+ if (t === RESOLVED) {
6411
+ a.down([[RESOLVED]]);
6412
+ return true;
6411
6413
  }
6414
+ if (t === DATA) {
6415
+ enqueue(msg[1], a);
6416
+ return true;
6417
+ }
6418
+ return false;
6412
6419
  }
6413
- );
6420
+ });
6414
6421
  }
6415
6422
  function mergeMap(source, project, opts) {
6416
6423
  const { concurrent: concurrentOpt, ...mergeNodeOpts } = opts ?? {};
@@ -6466,47 +6473,36 @@ function mergeMap(source, project, opts) {
6466
6473
  active = 0;
6467
6474
  buffer2.length = 0;
6468
6475
  }
6469
- let attached = false;
6470
- return node(
6471
- [source],
6472
- ([v], a) => {
6473
- if (!attached) {
6474
- attached = true;
6475
- enqueue(v, a);
6476
+ return node([source], () => clearAll, {
6477
+ ...operatorOpts3(mergeNodeOpts),
6478
+ completeWhenDepsComplete: false,
6479
+ onMessage(msg, _i, a) {
6480
+ const t = msg[0];
6481
+ if (t === ERROR) {
6482
+ clearAll();
6483
+ a.down([msg]);
6484
+ return true;
6476
6485
  }
6477
- return clearAll;
6478
- },
6479
- {
6480
- ...operatorOpts3(mergeNodeOpts),
6481
- completeWhenDepsComplete: false,
6482
- onMessage(msg, _i, a) {
6483
- const t = msg[0];
6484
- if (t === ERROR) {
6485
- clearAll();
6486
- a.down([msg]);
6487
- return true;
6488
- }
6489
- if (t === COMPLETE) {
6490
- sourceDone = true;
6491
- tryComplete(a);
6492
- return true;
6493
- }
6494
- if (t === DIRTY) {
6495
- a.down([[DIRTY]]);
6496
- return true;
6497
- }
6498
- if (t === RESOLVED) {
6499
- a.down([[RESOLVED]]);
6500
- return true;
6501
- }
6502
- if (t === DATA) {
6503
- enqueue(msg[1], a);
6504
- return true;
6505
- }
6506
- return false;
6486
+ if (t === COMPLETE) {
6487
+ sourceDone = true;
6488
+ tryComplete(a);
6489
+ return true;
6507
6490
  }
6491
+ if (t === DIRTY) {
6492
+ a.down([[DIRTY]]);
6493
+ return true;
6494
+ }
6495
+ if (t === RESOLVED) {
6496
+ a.down([[RESOLVED]]);
6497
+ return true;
6498
+ }
6499
+ if (t === DATA) {
6500
+ enqueue(msg[1], a);
6501
+ return true;
6502
+ }
6503
+ return false;
6508
6504
  }
6509
- );
6505
+ });
6510
6506
  }
6511
6507
  var flatMap = mergeMap;
6512
6508
  function delay(source, ms, opts) {
@@ -6825,53 +6821,39 @@ function buffer(source, notifier, opts) {
6825
6821
  function bufferCount(source, count, opts) {
6826
6822
  if (count <= 0) throw new RangeError("bufferCount expects count > 0");
6827
6823
  const buf = [];
6828
- let started = false;
6829
- return node(
6830
- [source],
6831
- ([v], a) => {
6832
- if (!started) {
6833
- started = true;
6834
- buf.push(v);
6824
+ return node([source], () => void 0, {
6825
+ ...operatorOpts3(opts),
6826
+ completeWhenDepsComplete: false,
6827
+ onMessage(msg, _i, a) {
6828
+ const t = msg[0];
6829
+ if (t === ERROR) {
6830
+ a.down([msg]);
6831
+ return true;
6832
+ }
6833
+ if (t === COMPLETE) {
6834
+ if (buf.length > 0) a.emit([...buf]);
6835
+ buf.length = 0;
6836
+ a.down([[COMPLETE]]);
6837
+ return true;
6838
+ }
6839
+ if (t === DIRTY) {
6840
+ a.down([[DIRTY]]);
6841
+ return true;
6842
+ }
6843
+ if (t === RESOLVED) {
6844
+ a.down([[RESOLVED]]);
6845
+ return true;
6846
+ }
6847
+ if (t === DATA) {
6848
+ buf.push(msg[1]);
6835
6849
  if (buf.length >= count) {
6836
6850
  a.emit(buf.splice(0, buf.length));
6837
6851
  }
6852
+ return true;
6838
6853
  }
6839
- return void 0;
6840
- },
6841
- {
6842
- ...operatorOpts3(opts),
6843
- completeWhenDepsComplete: false,
6844
- onMessage(msg, _i, a) {
6845
- const t = msg[0];
6846
- if (t === ERROR) {
6847
- a.down([msg]);
6848
- return true;
6849
- }
6850
- if (t === COMPLETE) {
6851
- if (buf.length > 0) a.emit([...buf]);
6852
- buf.length = 0;
6853
- a.down([[COMPLETE]]);
6854
- return true;
6855
- }
6856
- if (t === DIRTY) {
6857
- a.down([[DIRTY]]);
6858
- return true;
6859
- }
6860
- if (t === RESOLVED) {
6861
- a.down([[RESOLVED]]);
6862
- return true;
6863
- }
6864
- if (t === DATA) {
6865
- buf.push(msg[1]);
6866
- if (buf.length >= count) {
6867
- a.emit(buf.splice(0, buf.length));
6868
- }
6869
- return true;
6870
- }
6871
- return false;
6872
- }
6854
+ return false;
6873
6855
  }
6874
- );
6856
+ });
6875
6857
  }
6876
6858
  function windowCount(source, count, opts) {
6877
6859
  if (count <= 0) throw new RangeError("windowCount expects count > 0");
@@ -7364,7 +7346,7 @@ function verifiable(source, verifyFn, opts) {
7364
7346
  }
7365
7347
  return { node: sourceNode, verified, trigger: triggerNode };
7366
7348
  }
7367
- function keepalive(node2) {
7349
+ function keepalive2(node2) {
7368
7350
  node2.subscribe(() => void 0);
7369
7351
  }
7370
7352
  function mapFromSnapshot(snapshot) {
@@ -7449,8 +7431,8 @@ function distill(source, extractFn, opts) {
7449
7431
  return packed;
7450
7432
  });
7451
7433
  const size = derived([store.entries], ([snapshot]) => mapFromSnapshot(snapshot).size);
7452
- keepalive(compact);
7453
- keepalive(size);
7434
+ keepalive2(compact);
7435
+ keepalive2(size);
7454
7436
  return { store, compact, size };
7455
7437
  }
7456
7438
 
@@ -8327,6 +8309,7 @@ function workerSelf(target, opts) {
8327
8309
  fromWebhook,
8328
8310
  globToRegExp,
8329
8311
  interval,
8312
+ keepalive,
8330
8313
  last,
8331
8314
  linear,
8332
8315
  logSlice,
@@ -8348,6 +8331,7 @@ function workerSelf(target, opts) {
8348
8331
  pubsub,
8349
8332
  race,
8350
8333
  rateLimiter,
8334
+ reactiveCounter,
8351
8335
  reactiveIndex,
8352
8336
  reactiveList,
8353
8337
  reactiveLog,