Commit Graph

702 Commits

Author SHA1 Message Date
Vitordotpy
f46699ef3f fix(baileys): cast messageRaw and its properties to any for type safety 2025-12-15 22:35:07 -03:00
Vitordotpy
72b0833ce2 fix(baileys): cast messageRaw and its properties to any for type safety 2025-12-15 22:26:52 -03:00
Vitordotpy
2e3c8184ef fix(baileys): normalize remote JIDs for consistent database lookups 2025-12-15 21:38:45 -03:00
Davidson Gomes
6f2bef678c fix(chat): clean up code formatting by removing unnecessary blank lines in chat controller
Some checks failed
Check Code Quality / check-lint-and-build (push) Has been cancelled
Build Docker image / Build and Deploy (push) Has been cancelled
Security Scan / CodeQL Analysis (javascript) (push) Has been cancelled
Security Scan / Dependency Review (push) Has been cancelled
2025-12-12 17:57:44 -03:00
Davidson Gomes
6ede76f8cc Merge branch 'develop' into develop 2025-12-12 17:51:51 -03:00
OrionDesign
2fee5053f3 fix(baileys): corrigir declaração de variável error em blocos catch 2025-12-11 17:11:58 -03:00
OrionDesign
67c4aa640b refactor(baileys): atualizar serviço de mensagens e schemas de validação 2025-12-11 17:01:13 -03:00
OrionDesign
5faf3d18d6 Add poll vote decryption endpoint and logic
Introduces a new API endpoint and supporting logic to decrypt WhatsApp poll votes. Adds DecryptPollVoteDto, validation schema, controller method, and service logic to process and aggregate poll vote results based on poll creation message key.
2025-12-09 16:56:46 -03:00
Caio Bleggi
52fa931140 feat(channel): add support for @newsletter in sendMessage and findChannels 2025-12-09 12:03:47 -03:00
Davidson Gomes
2e3e752719 style(whatsapp): fix indentation and remove unnecessary blank lines in BaileysStartupService 2025-12-05 11:03:52 -03:00
Davidson Gomes
de11e6f9ca fix(websocket): improve host validation logic in WebsocketController 2025-12-05 11:03:52 -03:00
Davidson Gomes
26e7eefe51 Merge pull request #2259 from muriloleal13/fix/baileys-message-stub-placeholder
fix(baileys): prevent message loss from WhatsApp stub placeholders
2025-12-05 11:02:34 -03:00
Davidson Gomes
b55c9fcab7 Merge pull request #2250 from gabrielmouallem/fix/respect-database-save-data-contacts
fix: respect DATABASE_SAVE_DATA_CONTACTS in contact updates
2025-12-05 11:01:46 -03:00
Davidson Gomes
86b194af5f Merge pull request #2260 from alexandrereyes/feat/add-islatest-progress-to-messages-set
feat(events): add isLatest and progress to messages.set event
2025-12-05 11:01:21 -03:00
Davidson Gomes
178386594c Merge branch 'develop' into feature/quote-message-n8n 2025-12-05 11:00:40 -03:00
Davidson Gomes
38be0b49d9 Merge pull request #2280 from micaelmz/feature/wildcard-for-websocket-allowed-hosts
feat: add wildcard "*" to allow all hosts to connect via websocket
2025-12-05 10:59:03 -03:00
Alexandre Martins
04ac880fcc style: fix lint formatting issues 2025-12-05 10:58:42 -03:00
Davidson Gomes
3864366e75 Merge pull request #2273 from kay0ramon/fix/minio-messagecontextinfo-upload-error
fix: handle messageContextInfo in media upload to prevent MinIO errors
2025-12-05 10:57:55 -03:00
Davidson Gomes
2756d7e61c Merge pull request #2264 from lucascampuus/patch-1
Fix Typebot message routing for @lid JIDs
2025-12-05 10:57:31 -03:00
Davidson Gomes
bb36bfe424 Merge pull request #2249 from rodps/fix/fetch-messages-jid
fix: unify remoteJid filtering using OR with remoteJidAlt
2025-12-05 10:55:50 -03:00
Davidson Gomes
6277c5d084 Merge branch 'develop' into patch-1 2025-12-05 10:55:05 -03:00
micaelmz
abd0351f8f feat: add wildcard "*" to allow all hosts to connect via websocket 2025-12-02 18:01:19 -03:00
Vitordotpy
c7a2aa51ee fix: reorganize imports and improve message handling in BaileysStartupService 2025-11-30 19:56:03 -03:00
Vitor Manoel Santos Moura
bbf60e30b0 Refactor imports and clean up code structure 2025-11-30 18:51:34 -03:00
Vitor Manoel Santos Moura
2408384b0f Refactor message handling and polling updates
Refactor message handling and polling updates, including decryption logic for poll votes and cache management for message updates. Improved event processing flow and added handling for various message types.
2025-11-30 00:25:17 -03:00
Vitordotpy
250ddd2e89 fix(chatwoot): improve jid normalization and type safety in chatwoot integration
Refactor  to preserve LID identifiers and update  parameter type for better type safety as per code review feedback.
2025-11-28 21:28:45 -03:00
Vitordotpy
bee309cd28 fix: streamline message handling logic and improve cache management in BaileysStartupService 2025-11-28 21:14:19 -03:00
Vitordotpy
92c2ace7bc fix: enhance remoteJid processing to handle '@lid' cases 2025-11-28 19:03:24 -03:00
Vitordotpy
faed3f4574 fix: improve error handling for existing contacts and simplify remoteJid processing 2025-11-28 16:32:06 -03:00
Vitordotpy
baff4e8f5e fix: update remoteJid handling to avoid unnecessary splitting for message number 2025-11-28 16:18:33 -03:00
Kayo Ramon Oliveira
1c3a7ab027 fix: handle messageContextInfo in media upload to prevent MinIO errors 2025-11-28 15:59:09 -03:00
Lucas Luiz Campos
338cc93cfc Fix Typebot message routing for @lid JIDs
O Typebot não respondia mensagens vindas de JIDs que terminam com "@lid", apenas "@s.whatsapp.net".

O comportamento ocorria porque o número era sempre extraído via:
remoteJid.split('@')[0]

Com a atualização do WhatsApp Web, algumas mensagens de mídia chegam com JID "@lid", e nesses casos o JID completo precisa ser mantido.

Ajuste realizado:
ANTES:
number: remoteJid.split('@')[0]

DEPOIS:
number: remoteJid.includes('@lid') ? remoteJid : remoteJid.split('@')[0]

Com essa condição, mensagens vindas de ambos os formatos passam a ser tratadas corretamente pelo Typebot.
2025-11-27 09:31:40 -03:00
Alexandre Martins
930d32df3a fix(events): guard extra spread and prevent core field override
- Use (extra ?? {}) to handle undefined extra safely
- Spread extra first to prevent overriding core fields like event, instance, data
- Applied fix to all 7 event controllers

Addresses Sourcery AI review feedback.
2025-11-26 15:48:53 -03:00
Alexandre Martins
fa6b5c28a6 feat(events): add isLatest and progress to messages.set event
- Add extra field to EmitData type for additional payload properties
- Update EventManager and sendDataWebhook to support extra parameters
- Update all event controllers (webhook, rabbitmq, sqs, websocket, pusher, kafka, nats) to include extra fields in payload
- Pass isLatest and progress from Baileys messaging-history.set to messages.set webhook

This allows consumers to know when the history sync is complete (isLatest=true) and track sync progress percentage.
2025-11-26 15:44:18 -03:00
Murilo Leal
8e7f348c12 fix(baileys): prevent message loss from WhatsApp stub placeholders
Mensagens do WhatsApp estavam sendo perdidas e não eram salvas no banco de dados, especialmente mensagens de canais/newsletters (@lid) e mensagens com criptografia complexa.

O WhatsApp/Baileys envia mensagens criptografadas em duas etapas:

1. Primeiro: Envia um stub (placeholder) com messageStubParameters: ['Message absent from node'] enquanto descriptografa a mensagem

2. Depois: Envia a mensagem real com o conteúdo descriptografado

O problema ocorria porque:

- O stub chegava primeiro e era adicionado ao cache de mensagens duplicadas

- O stub era descartado (corretamente) por não ter conteúdo (!received?.message)

- A mensagem real chegava depois, mas era ignorada como duplicata porque o ID já estava no cache

- Resultado: mensagem nunca era salva no banco de dados

Solução:

- Detectar stubs do WhatsApp através de messageStubParameters contendo 'Message absent from node'

- Não adicionar stubs ao cache de mensagens duplicadas

- Permitir que a mensagem real seja processada quando chegar

- Manter o descarte do stub para evitar salvar placeholders vazios
2025-11-26 13:29:31 -03:00
Gabriel Mouallem
08a4795016 fix: respect DATABASE_SAVE_DATA_CONTACTS in contact updates
- Added missing conditional checks for `DATABASE_SAVE_DATA_CONTACTS` in `contacts.upsert` and `contacts.update` handlers.
- Fixed an issue where profile picture updates were attempting to save to the database even when disabled.
- Fixed an unawaited promise in `contacts.upsert` to ensure database operations complete correctly.
2025-11-23 23:09:42 -03:00
Gabriel Mouallem
53a94af3f7 fix: respect DATABASE_SAVE_DATA_CONTACTS in contact updates 2025-11-23 22:59:18 -03:00
Rodrigo da Silva
302e219f7f fix: unify remoteJid filtering using OR with remoteJidAlt 2025-11-23 18:46:06 -03:00
Davidson Gomes
7743063439 Merge pull request #2220 from victoreduardo/evo/feature-pix
feature: handle with interactive button message for pix
2025-11-19 17:45:02 -03:00
Victor Eduardo
8707520a3e lint 2025-11-19 16:12:16 -03:00
Jonatas
e5a249109c feat: add quotedMessage to payload in sendMessageToBot on N8N 2025-11-18 23:52:36 -03:00
Davidson Gomes
73fb376602 Merge pull request #2219 from victoreduardo/evo/main
Some checks failed
Security Scan / CodeQL Analysis (javascript) (push) Has been cancelled
Security Scan / Dependency Review (push) Has been cancelled
Check Code Quality / check-lint-and-build (push) Has been cancelled
Build Docker image / Build and Deploy (push) Has been cancelled
Fix: Chatwoot service fails when processing read message
2025-11-13 14:03:09 -03:00
Victor Eduardo
27633aad53 feature: handle with interactive button message for pix 2025-11-13 09:47:53 -03:00
Victor Eduardo
06543e89e5 fix: await chatwootRequest in update_last_seen method for proper asynchronous handling 2025-11-12 22:47:05 -03:00
Rafael Freire Cunha
da8774caa2 fix(chatwoot): corrige erro de duplicação na importação de contatos
Resolve o erro 'ON CONFLICT DO UPDATE command cannot affect row a second time' que ocorria ao importar histórico de contatos duplicados.

A correção remove a tentativa de atualizar o campo 'identifier' no ON CONFLICT, já que este campo faz parte da constraint de conflito e não pode ser atualizado.

Erro original:
- identifier = EXCLUDED.identifier

Correção:
- updated_at = NOW()

Isso permite que contatos duplicados sejam atualizados corretamente sem causar erro.
2025-11-09 14:56:53 -04:00
Davidson Gomes
139ad9b3cb Merge pull request #2186 from muriloleal13/fix/baileys-message-processor-reconnection
fix(baileys): resolve incoming message events not working after reconnection
2025-11-07 14:39:26 -03:00
Davidson Gomes
fca39a2b34 Merge pull request #2191 from JefersonRamos/bugfix/waiting-for-message
Durante o processo de logout de uma instância, as chaves associadas a…
2025-11-07 14:38:36 -03:00
Davidson Gomes
71322cd8f6 Merge pull request #2161 from ricaelchiquetti/main
feat(whatsapp): corrigir Business (base64/filename/caption), remoteJid
2025-11-07 14:32:37 -03:00
Jeferson Ramos
4d2a189905 lint ajustes 2025-11-05 16:29:09 -03:00
Jeferson Ramos
48625a739c Merge branch 'main' into bugfix/waiting-for-message 2025-11-05 16:27:22 -03:00