@rotorsoft/act 1.23.28 → 1.23.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2945,7 +2945,7 @@ var SettleLoop = class {
2945
2945
  this._running = true;
2946
2946
  (async () => {
2947
2947
  await this._deps.init();
2948
- let last_drain;
2948
+ let settled_drain;
2949
2949
  for (let i = 0; i < maxPasses; i++) {
2950
2950
  const after_before = this._deps.checkpoint();
2951
2951
  const { subscribed, last_id } = await this._deps.correlate({
@@ -2953,11 +2953,17 @@ var SettleLoop = class {
2953
2953
  after: after_before
2954
2954
  });
2955
2955
  if (this._deps.correlate_probes_store) this._deps.breaker.passed();
2956
- last_drain = await this._deps.drain(drain_options);
2957
- const made_progress = subscribed > 0 || last_drain.acked.length > 0 || last_drain.blocked.length > 0 || last_id > after_before;
2956
+ const drain = await this._deps.drain(drain_options);
2957
+ settled_drain = settled_drain ? {
2958
+ fetched: [...settled_drain.fetched, ...drain.fetched],
2959
+ leased: [...settled_drain.leased, ...drain.leased],
2960
+ acked: [...settled_drain.acked, ...drain.acked],
2961
+ blocked: [...settled_drain.blocked, ...drain.blocked]
2962
+ } : drain;
2963
+ const made_progress = subscribed > 0 || drain.acked.length > 0 || drain.blocked.length > 0 || last_id > after_before;
2958
2964
  if (!made_progress) break;
2959
2965
  }
2960
- if (last_drain) this._deps.on_settled(last_drain);
2966
+ if (settled_drain) this._deps.on_settled(settled_drain);
2961
2967
  })().catch((err) => {
2962
2968
  this._deps.breaker.failed(Date.now(), err);
2963
2969
  }).finally(() => {
@@ -4899,11 +4905,15 @@ var CsvFile = class {
4899
4905
  const event = {
4900
4906
  id: Number.parseInt(fields[0], 10),
4901
4907
  name: fields[1],
4902
- data: JSON.parse(fields[2]),
4908
+ // Revive dates like every Store adapter does — a Date in an event
4909
+ // payload must not depend on whether it came back through a store or
4910
+ // through a CSV restore (#1399). The `created` column below has
4911
+ // always been parsed explicitly; the JSON columns were missed.
4912
+ data: JSON.parse(fields[2], dateReviver),
4903
4913
  stream: fields[3],
4904
4914
  version: Number.parseInt(fields[4], 10),
4905
4915
  created: new Date(fields[5]),
4906
- meta: JSON.parse(fields[6])
4916
+ meta: JSON.parse(fields[6], dateReviver)
4907
4917
  };
4908
4918
  await Promise.resolve(callback(event));
4909
4919
  count++;