@whanext/core 0.19.21 → 0.19.22

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/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.19.22
4
+ ### Fixed
5
+ - Corrige falsos `duplicate` em mensagens de grupo quando o Zapo emite primeiro um shell interno de Sender Key/protocolo sem conteúdo e depois a mensagem real reutilizando o mesmo stanza ID.
6
+ - Shells vazios `unknown` não são mais publicados nem consomem a chave de deduplicação; a mensagem real de texto/mídia continua chegando normalmente ao dispatcher.
7
+
3
8
  ## 0.19.21
4
9
 
5
10
  ### Added
package/dist/index.js CHANGED
@@ -3925,15 +3925,6 @@ var ZapoProvider = class {
3925
3925
  });
3926
3926
  return;
3927
3927
  }
3928
- if (stored.key.id && this.#deliveredMessageStore.has(deliveryKey)) {
3929
- this.#duplicateMessages += 1;
3930
- this.#emitMessageDiscarded("duplicate", stored.key);
3931
- this.#logger.debug("Ignored duplicate Zapo message event.", {
3932
- messageId: stored.key.id,
3933
- chatId: stored.key.remoteJid ?? void 0
3934
- });
3935
- return;
3936
- }
3937
3928
  const message = normalizeZapoMessage(event);
3938
3929
  if (!message) {
3939
3930
  this.#normalizationFailures += 1;
@@ -3944,6 +3935,18 @@ var ZapoProvider = class {
3944
3935
  });
3945
3936
  return;
3946
3937
  }
3938
+ if (this.#isEmptyMessageShell(message)) {
3939
+ return;
3940
+ }
3941
+ if (stored.key.id && this.#deliveredMessageStore.has(deliveryKey)) {
3942
+ this.#duplicateMessages += 1;
3943
+ this.#emitMessageDiscarded("duplicate", stored.key);
3944
+ this.#logger.debug("Ignored duplicate Zapo message event.", {
3945
+ messageId: stored.key.id,
3946
+ chatId: stored.key.remoteJid ?? void 0
3947
+ });
3948
+ return;
3949
+ }
3947
3950
  if (stored.key.id) this.#rememberDeliveredMessage(deliveryKey);
3948
3951
  this.#receivedMessages += 1;
3949
3952
  this.#lastIncomingAt = /* @__PURE__ */ new Date();
@@ -5066,6 +5069,9 @@ var ZapoProvider = class {
5066
5069
  return void 0;
5067
5070
  }
5068
5071
  }
5072
+ #isEmptyMessageShell(message) {
5073
+ return message.contentKind === "unknown" && message.text === void 0 && message.caption === void 0 && message.media === void 0 && message.interactive === void 0 && (message.protocolKinds?.length ?? 0) === 0 && (message.payloadKinds?.length ?? 0) === 0;
5074
+ }
5069
5075
  #messageStoreKey(key) {
5070
5076
  return `${key.remoteJid ?? ""}:${key.id ?? ""}:${key.participant ?? key.participantAlt ?? ""}`;
5071
5077
  }