@rotorsoft/act 1.22.0 → 1.22.1

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
@@ -2401,10 +2401,15 @@ function build_handle(deps) {
2401
2401
  return async (lease, payloads) => {
2402
2402
  if (payloads.length === 0) return { lease, handled: 0, acked_at: lease.at };
2403
2403
  const stream = lease.stream;
2404
- let at = payloads.at(0).event.id;
2404
+ const last_index_of = /* @__PURE__ */ new Map();
2405
+ for (let i = 0; i < payloads.length; i++)
2406
+ last_index_of.set(payloads[i].event.id, i);
2407
+ let at = lease.at;
2405
2408
  let handled = 0;
2406
2409
  if (lease.retry > 0)
2407
- logger.warn(`Retrying ${stream}@${at} (${lease.retry}).`);
2410
+ logger.warn(
2411
+ `Retrying ${stream}@${payloads.at(0).event.id} (${lease.retry}).`
2412
+ );
2408
2413
  const scoped_app = {
2409
2414
  do: bound_do,
2410
2415
  load: bound_load,
@@ -2412,7 +2417,8 @@ function build_handle(deps) {
2412
2417
  query_array: bound_query_array,
2413
2418
  forget: bound_forget
2414
2419
  };
2415
- for (const payload of payloads) {
2420
+ for (let i = 0; i < payloads.length; i++) {
2421
+ const payload = payloads[i];
2416
2422
  const { event, handler } = payload;
2417
2423
  scoped_app.do = (action2, target, action_payload, options) => bound_do(action2, target, action_payload, {
2418
2424
  ...options,
@@ -2420,8 +2426,10 @@ function build_handle(deps) {
2420
2426
  });
2421
2427
  try {
2422
2428
  await handler(event, stream, scoped_app);
2423
- at = event.id;
2424
- handled++;
2429
+ if (last_index_of.get(event.id) === i) {
2430
+ at = event.id;
2431
+ handled++;
2432
+ }
2425
2433
  } catch (error) {
2426
2434
  if (error instanceof DeferSignal)
2427
2435
  return {