@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.cjs CHANGED
@@ -3919,10 +3919,15 @@ function build_handle(deps) {
3919
3919
  return async (lease, payloads) => {
3920
3920
  if (payloads.length === 0) return { lease, handled: 0, acked_at: lease.at };
3921
3921
  const stream = lease.stream;
3922
- let at = payloads.at(0).event.id;
3922
+ const last_index_of = /* @__PURE__ */ new Map();
3923
+ for (let i = 0; i < payloads.length; i++)
3924
+ last_index_of.set(payloads[i].event.id, i);
3925
+ let at = lease.at;
3923
3926
  let handled = 0;
3924
3927
  if (lease.retry > 0)
3925
- logger.warn(`Retrying ${stream}@${at} (${lease.retry}).`);
3928
+ logger.warn(
3929
+ `Retrying ${stream}@${payloads.at(0).event.id} (${lease.retry}).`
3930
+ );
3926
3931
  const scoped_app = {
3927
3932
  do: bound_do,
3928
3933
  load: bound_load,
@@ -3930,7 +3935,8 @@ function build_handle(deps) {
3930
3935
  query_array: bound_query_array,
3931
3936
  forget: bound_forget
3932
3937
  };
3933
- for (const payload of payloads) {
3938
+ for (let i = 0; i < payloads.length; i++) {
3939
+ const payload = payloads[i];
3934
3940
  const { event, handler } = payload;
3935
3941
  scoped_app.do = (action2, target, action_payload, options) => bound_do(action2, target, action_payload, {
3936
3942
  ...options,
@@ -3938,8 +3944,10 @@ function build_handle(deps) {
3938
3944
  });
3939
3945
  try {
3940
3946
  await handler(event, stream, scoped_app);
3941
- at = event.id;
3942
- handled++;
3947
+ if (last_index_of.get(event.id) === i) {
3948
+ at = event.id;
3949
+ handled++;
3950
+ }
3943
3951
  } catch (error) {
3944
3952
  if (error instanceof DeferSignal)
3945
3953
  return {