trompot 1.5.0 → 1.6.2

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.
Files changed (144) hide show
  1. package/README.md +195 -20
  2. package/lib/bot/BotEvents.d.ts +2 -0
  3. package/lib/bot/BotEvents.js.map +1 -1
  4. package/lib/client/Client.js +93 -28
  5. package/lib/client/Client.js.map +1 -1
  6. package/lib/client/ClientFunctionHandler.js +39 -3
  7. package/lib/client/ClientFunctionHandler.js.map +1 -1
  8. package/lib/telegram/TelegramAuth.js +36 -1
  9. package/lib/telegram/TelegramAuth.js.map +1 -1
  10. package/lib/telegram/TelegramBot.d.ts +11 -0
  11. package/lib/telegram/TelegramBot.js +101 -15
  12. package/lib/telegram/TelegramBot.js.map +1 -1
  13. package/lib/telegram/TelegramEvents.d.ts +8 -1
  14. package/lib/telegram/TelegramEvents.js +67 -30
  15. package/lib/telegram/TelegramEvents.js.map +1 -1
  16. package/lib/telegram/TelegramSendingController.js +59 -17
  17. package/lib/telegram/TelegramSendingController.js.map +1 -1
  18. package/lib/telegram/TelegramToRompotConverter.js +44 -14
  19. package/lib/telegram/TelegramToRompotConverter.js.map +1 -1
  20. package/lib/wa/Auth.js +17 -5
  21. package/lib/wa/Auth.js.map +1 -1
  22. package/lib/wa/ConfigWAEvents.d.ts +6 -10
  23. package/lib/wa/ConfigWAEvents.js +220 -426
  24. package/lib/wa/ConfigWAEvents.js.map +1 -1
  25. package/lib/wa/ConvertWAMessage.js +28 -19
  26. package/lib/wa/ConvertWAMessage.js.map +1 -1
  27. package/lib/wa/ID.d.ts +10 -1
  28. package/lib/wa/ID.js +22 -2
  29. package/lib/wa/ID.js.map +1 -1
  30. package/lib/wa/WhatsAppBot.d.ts +58 -11
  31. package/lib/wa/WhatsAppBot.js +365 -648
  32. package/lib/wa/WhatsAppBot.js.map +1 -1
  33. package/lib/wa/constants/ConfigDefaults.d.ts +23 -0
  34. package/lib/wa/constants/ConfigDefaults.js +27 -0
  35. package/lib/wa/constants/ConfigDefaults.js.map +1 -0
  36. package/lib/wa/constants/DisconnectReasons.d.ts +24 -0
  37. package/lib/wa/constants/DisconnectReasons.js +36 -0
  38. package/lib/wa/constants/DisconnectReasons.js.map +1 -0
  39. package/lib/wa/constants/ErrorCodes.d.ts +28 -0
  40. package/lib/wa/constants/ErrorCodes.js +32 -0
  41. package/lib/wa/constants/ErrorCodes.js.map +1 -0
  42. package/lib/wa/constants/JIDPatterns.d.ts +23 -0
  43. package/lib/wa/constants/JIDPatterns.js +38 -0
  44. package/lib/wa/constants/JIDPatterns.js.map +1 -0
  45. package/lib/wa/constants/Timeouts.d.ts +11 -0
  46. package/lib/wa/constants/Timeouts.js +15 -0
  47. package/lib/wa/constants/Timeouts.js.map +1 -0
  48. package/lib/wa/core/ConnectionManager.d.ts +84 -0
  49. package/lib/wa/core/ConnectionManager.js +256 -0
  50. package/lib/wa/core/ConnectionManager.js.map +1 -0
  51. package/lib/wa/core/SessionManager.d.ts +29 -0
  52. package/lib/wa/core/SessionManager.js +155 -0
  53. package/lib/wa/core/SessionManager.js.map +1 -0
  54. package/lib/wa/core/StateManager.d.ts +49 -0
  55. package/lib/wa/core/StateManager.js +135 -0
  56. package/lib/wa/core/StateManager.js.map +1 -0
  57. package/lib/wa/events/CallEventHandler.d.ts +17 -0
  58. package/lib/wa/events/CallEventHandler.js +155 -0
  59. package/lib/wa/events/CallEventHandler.js.map +1 -0
  60. package/lib/wa/events/ChatEventHandler.d.ts +12 -0
  61. package/lib/wa/events/ChatEventHandler.js +74 -0
  62. package/lib/wa/events/ChatEventHandler.js.map +1 -0
  63. package/lib/wa/events/ConnectionEventHandler.d.ts +43 -0
  64. package/lib/wa/events/ConnectionEventHandler.js +305 -0
  65. package/lib/wa/events/ConnectionEventHandler.js.map +1 -0
  66. package/lib/wa/events/ContactEventHandler.d.ts +12 -0
  67. package/lib/wa/events/ContactEventHandler.js +55 -0
  68. package/lib/wa/events/ContactEventHandler.js.map +1 -0
  69. package/lib/wa/events/EventManager.d.ts +43 -0
  70. package/lib/wa/events/EventManager.js +198 -0
  71. package/lib/wa/events/EventManager.js.map +1 -0
  72. package/lib/wa/events/GroupEventHandler.d.ts +12 -0
  73. package/lib/wa/events/GroupEventHandler.js +74 -0
  74. package/lib/wa/events/GroupEventHandler.js.map +1 -0
  75. package/lib/wa/events/HistoryEventHandler.d.ts +16 -0
  76. package/lib/wa/events/HistoryEventHandler.js +101 -0
  77. package/lib/wa/events/HistoryEventHandler.js.map +1 -0
  78. package/lib/wa/events/LIDMappingEventHandler.d.ts +20 -0
  79. package/lib/wa/events/LIDMappingEventHandler.js +39 -0
  80. package/lib/wa/events/LIDMappingEventHandler.js.map +1 -0
  81. package/lib/wa/events/MessageEventHandler.d.ts +16 -0
  82. package/lib/wa/events/MessageEventHandler.js +218 -0
  83. package/lib/wa/events/MessageEventHandler.js.map +1 -0
  84. package/lib/wa/interfaces/ICacheService.d.ts +12 -0
  85. package/lib/wa/interfaces/ICacheService.js +3 -0
  86. package/lib/wa/interfaces/ICacheService.js.map +1 -0
  87. package/lib/wa/interfaces/IConnectionManager.d.ts +15 -0
  88. package/lib/wa/interfaces/IConnectionManager.js +3 -0
  89. package/lib/wa/interfaces/IConnectionManager.js.map +1 -0
  90. package/lib/wa/interfaces/IErrorHandler.d.ts +9 -0
  91. package/lib/wa/interfaces/IErrorHandler.js +3 -0
  92. package/lib/wa/interfaces/IErrorHandler.js.map +1 -0
  93. package/lib/wa/interfaces/ILoggerService.d.ts +13 -0
  94. package/lib/wa/interfaces/ILoggerService.js +3 -0
  95. package/lib/wa/interfaces/ILoggerService.js.map +1 -0
  96. package/lib/wa/interfaces/ISessionManager.d.ts +16 -0
  97. package/lib/wa/interfaces/ISessionManager.js +3 -0
  98. package/lib/wa/interfaces/ISessionManager.js.map +1 -0
  99. package/lib/wa/interfaces/IStateManager.d.ts +41 -0
  100. package/lib/wa/interfaces/IStateManager.js +3 -0
  101. package/lib/wa/interfaces/IStateManager.js.map +1 -0
  102. package/lib/wa/operations/ChatOperations.d.ts +117 -0
  103. package/lib/wa/operations/ChatOperations.js +349 -0
  104. package/lib/wa/operations/ChatOperations.js.map +1 -0
  105. package/lib/wa/operations/GroupOperations.d.ts +31 -0
  106. package/lib/wa/operations/GroupOperations.js +128 -0
  107. package/lib/wa/operations/GroupOperations.js.map +1 -0
  108. package/lib/wa/operations/MessageOperations.d.ts +69 -0
  109. package/lib/wa/operations/MessageOperations.js +335 -0
  110. package/lib/wa/operations/MessageOperations.js.map +1 -0
  111. package/lib/wa/operations/UserOperations.d.ts +100 -0
  112. package/lib/wa/operations/UserOperations.js +216 -0
  113. package/lib/wa/operations/UserOperations.js.map +1 -0
  114. package/lib/wa/services/CacheService.d.ts +45 -0
  115. package/lib/wa/services/CacheService.js +93 -0
  116. package/lib/wa/services/CacheService.js.map +1 -0
  117. package/lib/wa/services/ErrorHandler.d.ts +26 -0
  118. package/lib/wa/services/ErrorHandler.js +73 -0
  119. package/lib/wa/services/ErrorHandler.js.map +1 -0
  120. package/lib/wa/services/LIDMappingService.d.ts +42 -0
  121. package/lib/wa/services/LIDMappingService.js +132 -0
  122. package/lib/wa/services/LIDMappingService.js.map +1 -0
  123. package/lib/wa/services/LIDNormalizationService.d.ts +30 -0
  124. package/lib/wa/services/LIDNormalizationService.js +136 -0
  125. package/lib/wa/services/LIDNormalizationService.js.map +1 -0
  126. package/lib/wa/services/LoggerService.d.ts +44 -0
  127. package/lib/wa/services/LoggerService.js +85 -0
  128. package/lib/wa/services/LoggerService.js.map +1 -0
  129. package/lib/wa/services/PendingMessageQueue.d.ts +46 -0
  130. package/lib/wa/services/PendingMessageQueue.js +119 -0
  131. package/lib/wa/services/PendingMessageQueue.js.map +1 -0
  132. package/lib/wa/services/RetryService.d.ts +25 -0
  133. package/lib/wa/services/RetryService.js +59 -0
  134. package/lib/wa/services/RetryService.js.map +1 -0
  135. package/lib/wa/utils/ConfigValidator.d.ts +15 -0
  136. package/lib/wa/utils/ConfigValidator.js +66 -0
  137. package/lib/wa/utils/ConfigValidator.js.map +1 -0
  138. package/lib/wa/utils/ErrorUtils.d.ts +29 -0
  139. package/lib/wa/utils/ErrorUtils.js +66 -0
  140. package/lib/wa/utils/ErrorUtils.js.map +1 -0
  141. package/lib/wa/utils/Validation.d.ts +18 -0
  142. package/lib/wa/utils/Validation.js +40 -0
  143. package/lib/wa/utils/Validation.js.map +1 -0
  144. package/package.json +4 -3
package/README.md CHANGED
@@ -14,6 +14,11 @@ Fork do projeto Rompot. Este repositório é mantido por TelksBr: https://github
14
14
  - [x] Tratamento de conexão
15
15
  - [x] Alta personalização
16
16
  - [x] Suporte a Cluster (Beta)
17
+ - [x] Arquitetura modular e escalável
18
+ - [x] Compatível com Baileys v7.0.0
19
+ - [x] Reconexão automática inteligente
20
+ - [x] Gerenciamento de estado centralizado
21
+ - [x] Tratamento de erros robusto
17
22
 
18
23
  | Plataformas | Whatsapp | Telegram (Beta) |
19
24
  | ----------------------- | -------- | --------------- |
@@ -47,42 +52,142 @@ const { Client, WhatsAppBot, TelegramBot } = require("trompot");
47
52
 
48
53
  ## WhatsApp
49
54
 
50
- Após iniciar o bot um QR Code será emprimido no terminal, escane-o com seu WhatsApp para gerar uma nova conexão entre seu número e o Client. Essa conexão será guardada em `./path-to-auth`, para gerar uma nova delete-o ou se conecte com um novo caminho de sessão.
55
+ ### Novidades na Versão Refatorada
56
+
57
+ A biblioteca foi completamente refatorada com uma arquitetura modular, melhorando:
58
+ - **Compatibilidade**: Totalmente compatível com Baileys v7.0.0
59
+ - **Performance**: Caches otimizados e gerenciamento de estado centralizado
60
+ - **Confiabilidade**: Reconexão automática inteligente com retry e backoff exponencial
61
+ - **Manutenibilidade**: Código modular e mais fácil de manter
62
+ - **Logging**: Sistema de logs estruturado e configurável
63
+
64
+ ### Conexão e Reconexão Automática
65
+
66
+ O trompot gerencia automaticamente a reconexão com sessões existentes. Se você já autenticou uma vez, não precisará escanear o QR code novamente.
67
+
68
+ **IMPORTANTE:** Use sempre o **mesmo caminho de sessão** para que a reconexão automática funcione.
51
69
 
52
70
  ```ts
53
- const client = new Client(new WhatsAppBot());
54
- client.connect("./path-to-auth");
71
+ import Client, { WhatsAppBot } from "trompot";
72
+
73
+ // Configuração do bot com opções avançadas
74
+ const wbot = new WhatsAppBot({
75
+ autoSyncHistory: false, // Sincronizar histórico automaticamente
76
+ useExperimentalServers: true, // Usar servidores experimentais para mídia
77
+ autoLoadContactInfo: false, // Carregar informações de contatos automaticamente
78
+ autoLoadGroupInfo: false, // Carregar informações de grupos automaticamente
79
+ autoRejectCalls: false, // Rejeitar automaticamente todas as chamadas recebidas
80
+ logLevel: 'info', // Nível de log: 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace' | 'silent'
81
+ });
82
+
83
+ const client = new Client(wbot);
84
+
85
+ // Use sempre o mesmo caminho de sessão
86
+ const SESSION_PATH = "./whatsapp-session";
55
87
 
56
- // Exibe o QR code no terminal (padrão Baileys)
88
+ // Escuta o QR code (só será emitido se não houver sessão válida)
57
89
  client.on("qr", async (qr) => {
58
90
  try {
59
91
  const QRCode = (await import("qrcode")).default;
92
+ console.log("Escaneie o QR code com seu WhatsApp:");
60
93
  console.log(await QRCode.toString(qr, { type: "terminal" }));
61
94
  } catch (err) {
62
- console.log("QRCode:", qr);
95
+ console.log("QR Code:", qr);
63
96
  }
64
97
  });
65
- ```
66
-
67
- ## Parear código
68
98
 
69
- Necessita passar um método de autenticação personalizado incluindo o número do bot a ser conectado.
70
-
71
- ```ts
72
- import Client, { WhatsAppBot, MultiFileAuthState } from "trompot";
99
+ // Escuta quando conecta (pode ser reconexão automática ou novo login)
100
+ client.on("open", (update) => {
101
+ if (update.isNewLogin) {
102
+ console.log("✅ Novo login realizado!");
103
+ } else {
104
+ console.log("✅ Reconectado automaticamente com sessão existente!");
105
+ }
106
+ });
73
107
 
74
- const client = new Client(new WhatsAppBot());
108
+ // Escuta erros de conexão
109
+ client.on("close", (update) => {
110
+ console.log(`Conexão fechada. Motivo: ${update.reason}`);
111
+
112
+ // Se for erro 401/421 (sessão morta), a biblioteca já limpou automaticamente
113
+ if (update.reason === 401 || update.reason === 421) {
114
+ console.log("⚠️ Sessão desconectada do WhatsApp.");
115
+ console.log("✅ A biblioteca já limpou TODA a sessão automaticamente (creds + todas as keys).");
116
+ console.log("🔄 Reconectando automaticamente em 2 segundos...");
117
+
118
+ // Reconecta automaticamente após 2 segundos
119
+ // A biblioteca já limpou TUDO, então um novo QR code será gerado
120
+ setTimeout(async () => {
121
+ try {
122
+ await client.connect(SESSION_PATH);
123
+ } catch (error) {
124
+ console.error("❌ Erro ao reconectar:", error);
125
+ }
126
+ }, 2000);
127
+ } else if (update.reason === 428) {
128
+ console.warn("⚠️ Erro 428: Connection Terminated (erro temporário). O Baileys tentará reconectar automaticamente.");
129
+ } else if (update.reason === 408) {
130
+ console.warn("⚠️ Erro 408: Request Timeout (erro temporário). O Baileys tentará reconectar automaticamente.");
131
+ } else if (update.reason === 500) {
132
+ console.warn("⚠️ Erro 500: Internal Server Error (erro temporário). A biblioteca tentará reconectar automaticamente.");
133
+ }
134
+ });
75
135
 
76
- client.on("code", (code) => {
77
- console.info("Código de pareamento gerado:", code);
136
+ // Conecta - se já houver sessão válida, reconecta automaticamente sem QR code
137
+ await client.connect(SESSION_PATH);
138
+ ```
139
+
140
+ ### Como Funciona a Reconexão Automática
141
+
142
+ 1. **Primeira vez**: Quando não há sessão, o Baileys gera um QR code. Escaneie com seu WhatsApp.
143
+ 2. **Próximas vezes**: Se a sessão estiver válida (`registered: true` no `creds.json`), o Baileys reconecta automaticamente **sem gerar QR code**.
144
+ 3. **Sessão expirada**: Se a sessão expirar ou for inválida (erros 401/421), a biblioteca:
145
+ - **Limpa automaticamente** toda a sessão (creds.json + todas as keys)
146
+ - **Gera um novo QR code** quando você chamar `connect()` novamente
147
+ - **O cliente não precisa fazer nada manualmente** - a biblioteca gerencia tudo
148
+ 4. **Reconexão inteligente**: O sistema tenta reconectar automaticamente com retry exponencial em caso de falhas temporárias (402, 408, 428, 500).
149
+ 5. **Erros temporários**: Erros 402, 408, 428 e 500 são tratados como temporários e permitem reconexão automática sem limpar a sessão.
150
+ 6. **Após escanear QR**: Quando você escaneia o QR code, o WhatsApp força uma desconexão (`restartRequired`). A biblioteca cria automaticamente um novo socket e finaliza a conexão corretamente.
151
+
152
+ ### Configurações Avançadas do WhatsAppBot
153
+
154
+ ```ts
155
+ const wbot = new WhatsAppBot({
156
+ // Sincronização
157
+ autoSyncHistory: false, // Sincronizar histórico de mensagens ao conectar
158
+
159
+ // Carregamento automático
160
+ autoLoadContactInfo: false, // Carregar informações de contatos automaticamente
161
+ autoLoadGroupInfo: false, // Carregar informações de grupos automaticamente
162
+
163
+ // Servidores
164
+ useExperimentalServers: false, // Usar servidores experimentais para download de mídia
165
+
166
+ // Chamadas
167
+ autoRejectCalls: false, // Rejeitar automaticamente todas as chamadas recebidas
168
+
169
+ // Logging
170
+ logLevel: 'info', // Nível de log: 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace' | 'silent'
171
+
172
+ // Outras opções do Baileys podem ser passadas aqui
173
+ qrTimeout: 60000, // Timeout para QR code (60 segundos)
174
+ defaultQueryTimeoutMs: 10000, // Timeout padrão para queries
175
+ retryRequestDelayMs: 500, // Delay entre tentativas de retry
176
+ maxMsgRetryCount: 5, // Máximo de tentativas de reenvio de mensagem
78
177
  });
178
+ ```
79
179
 
80
- const botPhoneNumber = "5511991234567";
180
+ ### Dicas Importantes
81
181
 
82
- const auth = new MultiFileAuthState("./path-to-auth", botPhoneNumber));
182
+ - **Use sempre o mesmo caminho de sessão** para manter a sessão
183
+ - ✅ **Não delete a pasta de sessão** se quiser reconectar automaticamente
184
+ - ✅ **O QR code só aparece** quando não há sessão válida ou quando a sessão expira
185
+ - ✅ **Erros 401/421**: A biblioteca limpa automaticamente toda a sessão (creds + keys) e gera novo QR code
186
+ - ✅ **Reconexão automática**: A biblioteca gerencia reconexões e limpeza de sessão - o cliente não precisa fazer nada manualmente
187
+ - ✅ **Erros temporários (402, 408, 428, 500)**: A biblioteca tenta reconectar automaticamente sem limpar a sessão
188
+ - ❌ **Não mude o caminho de sessão** entre conexões se quiser reconexão automática
189
+ - ⚠️ **autoRejectCalls**: Quando ativado, todas as chamadas recebidas são rejeitadas automaticamente antes do evento `new-call`
83
190
 
84
- await client.connect(auth);
85
- ```
86
191
 
87
192
  ## Telegram (Beta)
88
193
 
@@ -99,6 +204,8 @@ client.on("open", () => {
99
204
 
100
205
  ## Configurações
101
206
 
207
+ ### Configuração do Client
208
+
102
209
  ```ts
103
210
  type ConnectionConfig = {
104
211
  /** Desativa execução do comando automático */
@@ -123,7 +230,35 @@ type ConnectionConfig = {
123
230
  maxTimeout: number;
124
231
  };
125
232
 
126
- client.config = config;
233
+ const client = new Client(new WhatsAppBot(), config);
234
+ ```
235
+
236
+ ### Configuração do WhatsAppBot
237
+
238
+ ```ts
239
+ const wbot = new WhatsAppBot({
240
+ // Sincronização e histórico
241
+ autoSyncHistory: false, // Sincronizar histórico de mensagens ao conectar
242
+
243
+ // Carregamento automático
244
+ autoLoadContactInfo: false, // Carregar informações de contatos automaticamente
245
+ autoLoadGroupInfo: false, // Carregar informações de grupos automaticamente
246
+
247
+ // Servidores
248
+ useExperimentalServers: false, // Usar servidores experimentais para download de mídia
249
+
250
+ // Chamadas
251
+ autoRejectCalls: false, // Rejeitar automaticamente todas as chamadas recebidas
252
+
253
+ // Logging (novo na versão refatorada)
254
+ logLevel: 'info', // Nível de log: 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace' | 'silent'
255
+
256
+ // Outras opções do Baileys
257
+ qrTimeout: 60000, // Timeout para QR code (60 segundos)
258
+ defaultQueryTimeoutMs: 10000, // Timeout padrão para queries
259
+ retryRequestDelayMs: 500, // Delay entre tentativas de retry
260
+ maxMsgRetryCount: 5, // Máximo de tentativas de reenvio de mensagem
261
+ });
127
262
  ```
128
263
 
129
264
  ## ⚙️ Criando comandos
@@ -160,6 +295,19 @@ client.on("open", (open) => {
160
295
 
161
296
  client.on("close", (update) => {
162
297
  console.info(`Cliente desconectou! Motivo: ${update.reason}`);
298
+
299
+ // Tratamento de erros específicos
300
+ if (update.reason === 401 || update.reason === 421) {
301
+ console.warn("⚠️ Sessão desconectada do WhatsApp.");
302
+ console.info("✅ A biblioteca já limpou TODA a sessão automaticamente (creds + todas as keys).");
303
+ console.info("🔄 Chame connect() novamente para gerar um novo QR code.");
304
+ } else if (update.reason === 428) {
305
+ console.warn("⚠️ Erro 428: Connection Terminated (erro temporário). O Baileys tentará reconectar automaticamente.");
306
+ } else if (update.reason === 408) {
307
+ console.warn("⚠️ Erro 408: Request Timeout (erro temporário). O Baileys tentará reconectar automaticamente.");
308
+ } else if (update.reason === 500) {
309
+ console.warn("⚠️ Erro 500: Internal Server Error (erro temporário). A biblioteca tentará reconectar automaticamente.");
310
+ }
163
311
  });
164
312
 
165
313
  client.on("stop", (update) => {
@@ -493,6 +641,33 @@ client.demoteUserInChat(chat, user);
493
641
  client.rejectCall(call);
494
642
  ```
495
643
 
644
+ ## 🏗️ Arquitetura e Melhorias
645
+
646
+ ### Arquitetura Modular
647
+
648
+ A biblioteca foi refatorada com uma arquitetura modular que separa responsabilidades:
649
+
650
+ - **Serviços Base**: LoggerService, CacheService, ErrorHandler, RetryService, LIDMappingService
651
+ - **Gerenciamento de Conexão**: ConnectionManager, SessionManager, StateManager
652
+ - **Event Handlers**: Handlers especializados para cada tipo de evento (mensagens, conexão, grupos, etc.)
653
+
654
+ ### Compatibilidade Baileys v7.0.0
655
+
656
+ A biblioteca é totalmente compatível com Baileys v7.0.0, incluindo:
657
+ - Suporte a LIDs (Local Identifiers) e PNs (Phone Numbers) com normalização automática
658
+ - Eventos obrigatórios (`messaging-history.set`, `lid-mapping.update`)
659
+ - Protobufs usando `.create()` em vez de `.fromObject()`
660
+ - Remoção de ACKs automáticos (conforme recomendação do Baileys)
661
+ - Fila de mensagens pendentes para LIDs não mapeados ainda
662
+ - Normalização automática de JIDs com múltiplas estratégias de fallback
663
+
664
+ ### Melhorias de Performance
665
+
666
+ - Caches otimizados para metadata de grupos e chaves de sinal
667
+ - Gerenciamento de estado centralizado
668
+ - Reconexão automática com retry exponencial
669
+ - Tratamento de erros robusto e estruturado
670
+
496
671
  ## Utilitários de Estado do App e Recursos de Negócio (WhatsAppBot)
497
672
 
498
673
  A partir da versão mais recente, o WhatsAppBot oferece métodos utilitários para manipular o estado dos chats e acessar recursos de negócio do WhatsApp Business. Veja exemplos abaixo:
@@ -27,6 +27,8 @@ export type BotEventsMap = {
27
27
  close: {
28
28
  /** Motivo da desconeção */
29
29
  reason: any;
30
+ /** Mensagem adicional sobre o motivo (opcional) */
31
+ message?: string;
30
32
  };
31
33
  /** Ocorre quando um código QR é gerado para autenticação. */
32
34
  qr: string;
@@ -1 +1 @@
1
- {"version":3,"file":"BotEvents.js","sourceRoot":"","sources":["../../src/bot/BotEvents.ts"],"names":[],"mappings":";;;;;AAIA,oDAAkC;AAqDlC;;GAEG;AACH,MAAqB,SAAS;IAA9B;QACS,OAAE,GAAG,IAAI,gBAAY,EAAE,CAAC;QACxB,mBAAc,GAAY,KAAK,CAAC;IAgDzC,CAAC;IA9CC;;;;OAIG;IACI,EAAE,CACP,SAAY,EACZ,QAAwC;QAExC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,GAAG,CACR,SAAY,EACZ,QAAwC;QAExC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACI,kBAAkB,CAA+B,KAAQ;QAC9D,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACI,IAAI,CACT,SAAY,EACZ,GAAoB;QAEpB,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,KAAK,CAAC;QAEtC,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;CACF;AAlDD,4BAkDC"}
1
+ {"version":3,"file":"BotEvents.js","sourceRoot":"","sources":["../../src/bot/BotEvents.ts"],"names":[],"mappings":";;;;;AAIA,oDAAkC;AAuDlC;;GAEG;AACH,MAAqB,SAAS;IAA9B;QACS,OAAE,GAAG,IAAI,gBAAY,EAAE,CAAC;QACxB,mBAAc,GAAY,KAAK,CAAC;IAgDzC,CAAC;IA9CC;;;;OAIG;IACI,EAAE,CACP,SAAY,EACZ,QAAwC;QAExC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,GAAG,CACR,SAAY,EACZ,QAAwC;QAExC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACI,kBAAkB,CAA+B,KAAQ;QAC9D,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACI,IAAI,CACT,SAAY,EACZ,GAAoB;QAEpB,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,KAAK,CAAC;QAEtC,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;CACF;AAlDD,4BAkDC"}
@@ -86,38 +86,42 @@ class Client extends ClientEvents_1.default {
86
86
  this.bot.on('message', async (message) => {
87
87
  try {
88
88
  message.inject({ clientId: this.id, botId: this.bot.id });
89
+ // Marca como lida em background - não bloqueia o processamento
89
90
  if (!message.fromMe && !this.config.disableAutoRead) {
90
91
  if (!message.isDeleted && !message.isUpdate) {
91
- await message.read();
92
+ // Executa em background sem aguardar
93
+ message.read().catch(() => {
94
+ // Ignora erros - não é crítico
95
+ });
92
96
  }
93
97
  }
94
- message.user = (await this.getUser(message.user)) || message.user;
95
- message.chat = (await this.getChat(message.chat)) || message.chat;
98
+ // REMOVIDO: getUser e getChat durante processamento inicial
99
+ // A mensagem já vem com user e chat básicos do ConvertWAMessage
100
+ // Essas chamadas só adicionam dados extras do cache e não são necessárias
101
+ // para processar a mensagem. Se necessário, podem ser chamadas depois em background.
102
+ // Isso torna o processamento instantâneo como era antes.
96
103
  if (!message.chat.timestamp ||
97
104
  message.timestamp > message.chat.timestamp) {
98
105
  message.chat.timestamp = message.timestamp;
99
106
  }
107
+ // Atualiza mention - usa dados já disponíveis, sem chamadas adicionais
108
+ // Isso torna o processamento instantâneo
100
109
  if (message.mention) {
101
- if (message.mention.chat.id != message.chat.id) {
102
- message.mention.chat =
103
- (await this.getChat(message.mention.chat)) ||
104
- message.mention.chat;
105
- }
106
- else {
110
+ if (message.mention.chat.id == message.chat.id) {
107
111
  message.mention.chat = message.chat;
108
112
  }
109
- if (message.mention.user.id != message.user.id) {
110
- message.mention.user =
111
- (await this.getUser(message.mention.user)) ||
112
- message.mention.user;
113
- }
114
- else {
113
+ if (message.mention.user.id == message.user.id) {
115
114
  message.mention.user = message.user;
116
115
  }
117
116
  }
118
117
  if (this.messageHandler.resolveMessage(message))
119
118
  return;
120
119
  this.emit('message', message);
120
+ // CRÍTICO: Não processa comandos ou quick responses para mensagens próprias
121
+ // Isso evita loops infinitos quando o bot recebe suas próprias mensagens
122
+ if (message.fromMe) {
123
+ return;
124
+ }
121
125
  if (this.config.disableAutoCommand)
122
126
  return;
123
127
  if (this.config.disableAutoCommandForOldMessage && message.isOld)
@@ -125,13 +129,23 @@ class Client extends ClientEvents_1.default {
125
129
  if (this.config.disableAutoCommandForUnofficialMessage &&
126
130
  message.isUnofficial)
127
131
  return;
128
- await this.quickResponseController.searchAndExecute(message);
132
+ // QuickResponse em background - não bloqueia
133
+ this.quickResponseController.searchAndExecute(message).catch(() => {
134
+ // Ignora erros - não é crítico
135
+ });
129
136
  const command = this.searchCommand(message.text);
130
137
  if (command != null) {
131
- this.runCommand(command, message, CommandEnums_1.CMDRunType.Exec);
138
+ // Executa comando - precisa aguardar para capturar erros
139
+ // Mas não bloqueia a emissão da mensagem (já foi emitida acima)
140
+ this.runCommand(command, message, CommandEnums_1.CMDRunType.Exec).catch((err) => {
141
+ console.error('[Client] Erro ao executar comando:', err);
142
+ });
132
143
  }
133
144
  }
134
145
  catch (err) {
146
+ // Só emite ErrorMessage se for um erro crítico
147
+ // Erros em getUser/getChat não devem bloquear a mensagem
148
+ console.error('[Client] Erro crítico ao processar mensagem:', err);
135
149
  this.emit('message', new ErrorMessage_1.default(message.chat, err));
136
150
  }
137
151
  });
@@ -163,6 +177,12 @@ class Client extends ClientEvents_1.default {
163
177
  this.bot.on('close', async (update) => {
164
178
  try {
165
179
  this.emit('close', update);
180
+ // Não reconecta automaticamente apenas para erros 401, 421 (token expirado)
181
+ // 428 foi removido - é erro temporário que permite reconexão
182
+ // 402: Baileys gerencia reconexão automaticamente, não precisamos interferir
183
+ if (update.reason === 401 || update.reason === 421 || update.reason === 402) {
184
+ return;
185
+ }
166
186
  if (this.reconnectTimes < this.config.maxReconnectTimes) {
167
187
  this.reconnectTimes++;
168
188
  await (0, Generic_1.sleep)(this.config.reconnectTimeout);
@@ -245,6 +265,20 @@ class Client extends ClientEvents_1.default {
245
265
  await this.bot.reconnect(alert);
246
266
  }
247
267
  async stop(reason) {
268
+ // Remove todos os listeners do bot para evitar vazamento de memória
269
+ // Os listeners são reconfigurados quando o bot é reconectado
270
+ this.bot.removeAllListeners('message');
271
+ this.bot.removeAllListeners('open');
272
+ this.bot.removeAllListeners('close');
273
+ this.bot.removeAllListeners('stop');
274
+ this.bot.removeAllListeners('connecting');
275
+ this.bot.removeAllListeners('reconnecting');
276
+ this.bot.removeAllListeners('qr');
277
+ this.bot.removeAllListeners('code');
278
+ this.bot.removeAllListeners('chat');
279
+ this.bot.removeAllListeners('user');
280
+ this.bot.removeAllListeners('call');
281
+ this.bot.removeAllListeners('error');
248
282
  await this.bot.stop(reason);
249
283
  }
250
284
  async logout() {
@@ -269,9 +303,26 @@ class Client extends ClientEvents_1.default {
269
303
  });
270
304
  }
271
305
  async awaitConnectionOpen() {
272
- if (this.bot.status != BotStatus_1.BotStatus.Online) {
273
- await this.awaitEvent('open', this.config.maxTimeout);
306
+ var _a;
307
+ // Verifica se já está conectado antes de aguardar
308
+ const sock = this.bot.sock;
309
+ const statusIsOnline = this.bot.status === BotStatus_1.BotStatus.Online;
310
+ const sockIsOpen = ((_a = sock === null || sock === void 0 ? void 0 : sock.ws) === null || _a === void 0 ? void 0 : _a.isOpen) === true;
311
+ // Determina se está conectado baseado no tipo de bot
312
+ // Telegram não tem sock, então verifica apenas status
313
+ // WhatsApp precisa de sock.ws.isOpen E status Online
314
+ const isTelegram = !sock; // Telegram não tem sock
315
+ const isAlreadyConnected = isTelegram
316
+ ? statusIsOnline
317
+ : (statusIsOnline && sockIsOpen);
318
+ if (isAlreadyConnected) {
319
+ return;
274
320
  }
321
+ // Para WhatsApp: Se o socket está aberto mas status não é Online, também não precisa aguardar
322
+ if (!isTelegram && sockIsOpen) {
323
+ return;
324
+ }
325
+ await this.awaitEvent('open', this.config.maxTimeout);
275
326
  }
276
327
  getCommandController() {
277
328
  if (this.commandController.clientId != this.id) {
@@ -370,7 +421,9 @@ class Client extends ClientEvents_1.default {
370
421
  return this.funcHandler.exec('message', this.bot.removeMessage, message);
371
422
  }
372
423
  async readMessage(message) {
373
- await this.funcHandler.exec('message', this.bot.readMessage, message);
424
+ // Executa diretamente sem passar por funcHandler para evitar delay
425
+ // readMessage não precisa de validação de conexão - é apenas cache local
426
+ await this.bot.readMessage(message);
374
427
  if (message.status == Message_1.MessageStatus.Sending ||
375
428
  message.status == Message_1.MessageStatus.Sended ||
376
429
  message.status == Message_1.MessageStatus.Received) {
@@ -426,15 +479,27 @@ class Client extends ClientEvents_1.default {
426
479
  return stop;
427
480
  }
428
481
  async send(message) {
429
- message = Message_1.default.apply(message, { clientId: this.id, botId: this.bot.id });
430
- if (!this.config.disableAutoTyping) {
431
- await this.changeChatStatus(message.chat, message.type == 'audio' ? ChatStatus_1.default.Recording : ChatStatus_1.default.Typing);
432
- }
433
- if ('file' in message) {
434
- return Message_1.default.apply(await this.funcHandler.exec('sendMediaMessage', this.bot.send, message), { clientId: this.id, botId: this.bot.id });
482
+ try {
483
+ message = Message_1.default.apply(message, { clientId: this.id, botId: this.bot.id });
484
+ // changeChatStatus não é crítico - executa em background sem bloquear
485
+ // Isso torna o envio de mensagens instantâneo
486
+ if (!this.config.disableAutoTyping) {
487
+ this.changeChatStatus(message.chat, message.type == 'audio' ? ChatStatus_1.default.Recording : ChatStatus_1.default.Typing).catch(() => {
488
+ // Ignora erros - não é crítico
489
+ });
490
+ }
491
+ let result;
492
+ if ('file' in message) {
493
+ result = Message_1.default.apply(await this.funcHandler.exec('sendMediaMessage', this.bot.send, message), { clientId: this.id, botId: this.bot.id });
494
+ }
495
+ else {
496
+ result = Message_1.default.apply(await this.funcHandler.exec('sendMessage', this.bot.send, message), { clientId: this.id, botId: this.bot.id });
497
+ }
498
+ return result;
435
499
  }
436
- else {
437
- return Message_1.default.apply(await this.funcHandler.exec('sendMessage', this.bot.send, message), { clientId: this.id, botId: this.bot.id });
500
+ catch (error) {
501
+ console.error('[Client.send] Erro ao enviar mensagem:', error);
502
+ throw error;
438
503
  }
439
504
  }
440
505
  async sendMessage(chat, message, mention) {
@@ -1 +1 @@
1
- {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/client/Client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/client/Client.ts"],"names":[],"mappings":"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"}