trompot 1.6.1 → 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 (142) hide show
  1. package/README.md +195 -20
  2. package/lib/client/Client.js +93 -28
  3. package/lib/client/Client.js.map +1 -1
  4. package/lib/client/ClientFunctionHandler.js +39 -3
  5. package/lib/client/ClientFunctionHandler.js.map +1 -1
  6. package/lib/telegram/TelegramAuth.js +36 -1
  7. package/lib/telegram/TelegramAuth.js.map +1 -1
  8. package/lib/telegram/TelegramBot.d.ts +11 -0
  9. package/lib/telegram/TelegramBot.js +101 -15
  10. package/lib/telegram/TelegramBot.js.map +1 -1
  11. package/lib/telegram/TelegramEvents.d.ts +8 -1
  12. package/lib/telegram/TelegramEvents.js +67 -30
  13. package/lib/telegram/TelegramEvents.js.map +1 -1
  14. package/lib/telegram/TelegramSendingController.js +59 -17
  15. package/lib/telegram/TelegramSendingController.js.map +1 -1
  16. package/lib/telegram/TelegramToRompotConverter.js +44 -14
  17. package/lib/telegram/TelegramToRompotConverter.js.map +1 -1
  18. package/lib/wa/Auth.js +17 -5
  19. package/lib/wa/Auth.js.map +1 -1
  20. package/lib/wa/ConfigWAEvents.d.ts +6 -10
  21. package/lib/wa/ConfigWAEvents.js +216 -430
  22. package/lib/wa/ConfigWAEvents.js.map +1 -1
  23. package/lib/wa/ConvertWAMessage.js +28 -19
  24. package/lib/wa/ConvertWAMessage.js.map +1 -1
  25. package/lib/wa/ID.d.ts +10 -1
  26. package/lib/wa/ID.js +22 -2
  27. package/lib/wa/ID.js.map +1 -1
  28. package/lib/wa/WhatsAppBot.d.ts +58 -11
  29. package/lib/wa/WhatsAppBot.js +365 -666
  30. package/lib/wa/WhatsAppBot.js.map +1 -1
  31. package/lib/wa/constants/ConfigDefaults.d.ts +23 -0
  32. package/lib/wa/constants/ConfigDefaults.js +27 -0
  33. package/lib/wa/constants/ConfigDefaults.js.map +1 -0
  34. package/lib/wa/constants/DisconnectReasons.d.ts +24 -0
  35. package/lib/wa/constants/DisconnectReasons.js +36 -0
  36. package/lib/wa/constants/DisconnectReasons.js.map +1 -0
  37. package/lib/wa/constants/ErrorCodes.d.ts +28 -0
  38. package/lib/wa/constants/ErrorCodes.js +32 -0
  39. package/lib/wa/constants/ErrorCodes.js.map +1 -0
  40. package/lib/wa/constants/JIDPatterns.d.ts +23 -0
  41. package/lib/wa/constants/JIDPatterns.js +38 -0
  42. package/lib/wa/constants/JIDPatterns.js.map +1 -0
  43. package/lib/wa/constants/Timeouts.d.ts +11 -0
  44. package/lib/wa/constants/Timeouts.js +15 -0
  45. package/lib/wa/constants/Timeouts.js.map +1 -0
  46. package/lib/wa/core/ConnectionManager.d.ts +84 -0
  47. package/lib/wa/core/ConnectionManager.js +256 -0
  48. package/lib/wa/core/ConnectionManager.js.map +1 -0
  49. package/lib/wa/core/SessionManager.d.ts +29 -0
  50. package/lib/wa/core/SessionManager.js +155 -0
  51. package/lib/wa/core/SessionManager.js.map +1 -0
  52. package/lib/wa/core/StateManager.d.ts +49 -0
  53. package/lib/wa/core/StateManager.js +135 -0
  54. package/lib/wa/core/StateManager.js.map +1 -0
  55. package/lib/wa/events/CallEventHandler.d.ts +17 -0
  56. package/lib/wa/events/CallEventHandler.js +155 -0
  57. package/lib/wa/events/CallEventHandler.js.map +1 -0
  58. package/lib/wa/events/ChatEventHandler.d.ts +12 -0
  59. package/lib/wa/events/ChatEventHandler.js +74 -0
  60. package/lib/wa/events/ChatEventHandler.js.map +1 -0
  61. package/lib/wa/events/ConnectionEventHandler.d.ts +43 -0
  62. package/lib/wa/events/ConnectionEventHandler.js +305 -0
  63. package/lib/wa/events/ConnectionEventHandler.js.map +1 -0
  64. package/lib/wa/events/ContactEventHandler.d.ts +12 -0
  65. package/lib/wa/events/ContactEventHandler.js +55 -0
  66. package/lib/wa/events/ContactEventHandler.js.map +1 -0
  67. package/lib/wa/events/EventManager.d.ts +43 -0
  68. package/lib/wa/events/EventManager.js +198 -0
  69. package/lib/wa/events/EventManager.js.map +1 -0
  70. package/lib/wa/events/GroupEventHandler.d.ts +12 -0
  71. package/lib/wa/events/GroupEventHandler.js +74 -0
  72. package/lib/wa/events/GroupEventHandler.js.map +1 -0
  73. package/lib/wa/events/HistoryEventHandler.d.ts +16 -0
  74. package/lib/wa/events/HistoryEventHandler.js +101 -0
  75. package/lib/wa/events/HistoryEventHandler.js.map +1 -0
  76. package/lib/wa/events/LIDMappingEventHandler.d.ts +20 -0
  77. package/lib/wa/events/LIDMappingEventHandler.js +39 -0
  78. package/lib/wa/events/LIDMappingEventHandler.js.map +1 -0
  79. package/lib/wa/events/MessageEventHandler.d.ts +16 -0
  80. package/lib/wa/events/MessageEventHandler.js +218 -0
  81. package/lib/wa/events/MessageEventHandler.js.map +1 -0
  82. package/lib/wa/interfaces/ICacheService.d.ts +12 -0
  83. package/lib/wa/interfaces/ICacheService.js +3 -0
  84. package/lib/wa/interfaces/ICacheService.js.map +1 -0
  85. package/lib/wa/interfaces/IConnectionManager.d.ts +15 -0
  86. package/lib/wa/interfaces/IConnectionManager.js +3 -0
  87. package/lib/wa/interfaces/IConnectionManager.js.map +1 -0
  88. package/lib/wa/interfaces/IErrorHandler.d.ts +9 -0
  89. package/lib/wa/interfaces/IErrorHandler.js +3 -0
  90. package/lib/wa/interfaces/IErrorHandler.js.map +1 -0
  91. package/lib/wa/interfaces/ILoggerService.d.ts +13 -0
  92. package/lib/wa/interfaces/ILoggerService.js +3 -0
  93. package/lib/wa/interfaces/ILoggerService.js.map +1 -0
  94. package/lib/wa/interfaces/ISessionManager.d.ts +16 -0
  95. package/lib/wa/interfaces/ISessionManager.js +3 -0
  96. package/lib/wa/interfaces/ISessionManager.js.map +1 -0
  97. package/lib/wa/interfaces/IStateManager.d.ts +41 -0
  98. package/lib/wa/interfaces/IStateManager.js +3 -0
  99. package/lib/wa/interfaces/IStateManager.js.map +1 -0
  100. package/lib/wa/operations/ChatOperations.d.ts +117 -0
  101. package/lib/wa/operations/ChatOperations.js +349 -0
  102. package/lib/wa/operations/ChatOperations.js.map +1 -0
  103. package/lib/wa/operations/GroupOperations.d.ts +31 -0
  104. package/lib/wa/operations/GroupOperations.js +128 -0
  105. package/lib/wa/operations/GroupOperations.js.map +1 -0
  106. package/lib/wa/operations/MessageOperations.d.ts +69 -0
  107. package/lib/wa/operations/MessageOperations.js +335 -0
  108. package/lib/wa/operations/MessageOperations.js.map +1 -0
  109. package/lib/wa/operations/UserOperations.d.ts +100 -0
  110. package/lib/wa/operations/UserOperations.js +216 -0
  111. package/lib/wa/operations/UserOperations.js.map +1 -0
  112. package/lib/wa/services/CacheService.d.ts +45 -0
  113. package/lib/wa/services/CacheService.js +93 -0
  114. package/lib/wa/services/CacheService.js.map +1 -0
  115. package/lib/wa/services/ErrorHandler.d.ts +26 -0
  116. package/lib/wa/services/ErrorHandler.js +73 -0
  117. package/lib/wa/services/ErrorHandler.js.map +1 -0
  118. package/lib/wa/services/LIDMappingService.d.ts +42 -0
  119. package/lib/wa/services/LIDMappingService.js +132 -0
  120. package/lib/wa/services/LIDMappingService.js.map +1 -0
  121. package/lib/wa/services/LIDNormalizationService.d.ts +30 -0
  122. package/lib/wa/services/LIDNormalizationService.js +136 -0
  123. package/lib/wa/services/LIDNormalizationService.js.map +1 -0
  124. package/lib/wa/services/LoggerService.d.ts +44 -0
  125. package/lib/wa/services/LoggerService.js +85 -0
  126. package/lib/wa/services/LoggerService.js.map +1 -0
  127. package/lib/wa/services/PendingMessageQueue.d.ts +46 -0
  128. package/lib/wa/services/PendingMessageQueue.js +119 -0
  129. package/lib/wa/services/PendingMessageQueue.js.map +1 -0
  130. package/lib/wa/services/RetryService.d.ts +25 -0
  131. package/lib/wa/services/RetryService.js +59 -0
  132. package/lib/wa/services/RetryService.js.map +1 -0
  133. package/lib/wa/utils/ConfigValidator.d.ts +15 -0
  134. package/lib/wa/utils/ConfigValidator.js +66 -0
  135. package/lib/wa/utils/ConfigValidator.js.map +1 -0
  136. package/lib/wa/utils/ErrorUtils.d.ts +29 -0
  137. package/lib/wa/utils/ErrorUtils.js +66 -0
  138. package/lib/wa/utils/ErrorUtils.js.map +1 -0
  139. package/lib/wa/utils/Validation.d.ts +18 -0
  140. package/lib/wa/utils/Validation.js +40 -0
  141. package/lib/wa/utils/Validation.js.map +1 -0
  142. package/package.json +4 -3
@@ -0,0 +1,335 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MessageOperations = void 0;
7
+ const baileys_1 = require("@whiskeysockets/baileys");
8
+ const Message_1 = require("../../messages/Message");
9
+ const messages_1 = require("../../messages");
10
+ const Validation_1 = require("../utils/Validation");
11
+ const JIDPatterns_1 = require("../constants/JIDPatterns");
12
+ const ConvertToWAMessage_1 = __importDefault(require("../ConvertToWAMessage"));
13
+ const ChatType_1 = __importDefault(require("../../modules/chat/ChatType"));
14
+ const ID_1 = require("../ID");
15
+ /**
16
+ * Operações relacionadas a mensagens
17
+ */
18
+ class MessageOperations {
19
+ constructor(bot, errorHandler, pendingMessageQueue) {
20
+ this.bot = bot;
21
+ this.errorHandler = errorHandler;
22
+ this.pendingMessageQueue = pendingMessageQueue;
23
+ }
24
+ /**
25
+ * Normaliza JID LID para JID válido (baseado em práticas do Rompot)
26
+ * Tenta normalizar apenas quando necessário (antes de enviar mensagem)
27
+ * Usa LIDMappingService do bot (que tem cache) primeiro
28
+ * Tenta múltiplas vezes com delays crescentes antes de desistir
29
+ */
30
+ async normalizeJIDForSend(jid, maxRetries = 5) {
31
+ var _a, _b;
32
+ if (!jid || (0, JIDPatterns_1.isValidJID)(jid)) {
33
+ return jid;
34
+ }
35
+ // Verifica se é um JID LID (termina com @lid)
36
+ if (jid.endsWith('@lid')) {
37
+ const lid = jid.replace('@lid', '');
38
+ // Tenta usar o LIDNormalizationService (múltiplas estratégias, mais rápido)
39
+ try {
40
+ if (this.bot.lidNormalizationService) {
41
+ const normalized = await this.bot.lidNormalizationService.normalizeJID(jid, false);
42
+ if (normalized && (0, JIDPatterns_1.isValidJID)(normalized)) {
43
+ return normalized;
44
+ }
45
+ }
46
+ }
47
+ catch (error) {
48
+ // Ignora erro - continua para tentar do socket
49
+ }
50
+ // Tenta múltiplas vezes do socket com delays crescentes
51
+ // Delays: 500ms, 1000ms, 2000ms, 4000ms, 8000ms
52
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
53
+ try {
54
+ if ((_b = (_a = this.bot.sock) === null || _a === void 0 ? void 0 : _a.signalRepository) === null || _b === void 0 ? void 0 : _b.lidMapping) {
55
+ const pn = await this.bot.sock.signalRepository.lidMapping.getPNForLID(lid);
56
+ if (pn) {
57
+ return (0, ID_1.getID)(pn);
58
+ }
59
+ }
60
+ // Aguarda antes de tentar novamente (backoff exponencial)
61
+ if (attempt < maxRetries - 1) {
62
+ const delay = 500 * Math.pow(2, attempt);
63
+ await new Promise(resolve => setTimeout(resolve, delay));
64
+ }
65
+ }
66
+ catch (error) {
67
+ // Ignora erro
68
+ if (attempt < maxRetries - 1) {
69
+ const delay = 500 * Math.pow(2, attempt);
70
+ await new Promise(resolve => setTimeout(resolve, delay));
71
+ }
72
+ }
73
+ }
74
+ }
75
+ // Retorna null se não conseguir normalizar (indica que deve usar fila ou fallback)
76
+ return null;
77
+ }
78
+ /**
79
+ * Envia uma mensagem
80
+ * Baseado no Rompot: normaliza JID apenas quando necessário (antes de enviar)
81
+ * Usa fila de mensagens pendentes se o mapeamento LID/PN não estiver disponível
82
+ */
83
+ async send(message) {
84
+ var _a, _b, _c, _d, _e, _f, _g, _h;
85
+ // Valida estado antes de enviar
86
+ const sockIsOpen = ((_b = (_a = this.bot.sock) === null || _a === void 0 ? void 0 : _a.ws) === null || _b === void 0 ? void 0 : _b.isOpen) === true;
87
+ if (!sockIsOpen) {
88
+ const error = new Error('Bot não está conectado. Socket não está aberto.');
89
+ throw error;
90
+ }
91
+ // Normaliza JID LID antes de validar (se necessário)
92
+ if (((_c = message.chat) === null || _c === void 0 ? void 0 : _c.id) && !(0, JIDPatterns_1.isValidJID)(message.chat.id)) {
93
+ // Verifica se o socket está disponível antes de tentar normalizar
94
+ if (!((_e = (_d = this.bot.sock) === null || _d === void 0 ? void 0 : _d.signalRepository) === null || _e === void 0 ? void 0 : _e.lidMapping)) {
95
+ const error = new Error(`JID de chat inválido: ${(_f = message.chat) === null || _f === void 0 ? void 0 : _f.id}. Socket não está disponível para normalização LID.`);
96
+ throw error;
97
+ }
98
+ // Tenta normalizar usando LIDNormalizationService (múltiplas estratégias otimizadas)
99
+ let normalizedJID = null;
100
+ try {
101
+ if (this.bot.lidNormalizationService) {
102
+ normalizedJID = await this.bot.lidNormalizationService.normalizeJID(message.chat.id, false);
103
+ }
104
+ }
105
+ catch (error) {
106
+ // Ignora erro - continua para tentar outras estratégias
107
+ }
108
+ if (normalizedJID && (0, JIDPatterns_1.isValidJID)(normalizedJID)) {
109
+ // Normalização bem-sucedida, atualiza o JID e continua
110
+ message.chat.id = normalizedJID;
111
+ }
112
+ else {
113
+ // Se não conseguiu normalizar, tenta enviar com JID LID diretamente primeiro
114
+ // Baileys pode aceitar JID LID em alguns casos
115
+ try {
116
+ const waMsg = (await new ConvertToWAMessage_1.default(this.bot, message).refactory()).waMessage;
117
+ const sent = await this.bot.sock.sendMessage(message.chat.id, waMsg);
118
+ if (sent && sent.key && sent.key.id) {
119
+ message.id = sent.key.id;
120
+ }
121
+ return message;
122
+ }
123
+ catch (sendError) {
124
+ // Se falhar ao enviar com LID, adiciona à fila de pendentes
125
+ // A mensagem será processada quando o mapeamento ficar disponível
126
+ return new Promise((resolve, reject) => {
127
+ this.pendingMessageQueue.add(message,
128
+ // Resolve: quando o mapeamento ficar disponível, envia a mensagem
129
+ async (normalizedMessage) => {
130
+ try {
131
+ const sent = await this.sendMessageInternal(normalizedMessage);
132
+ resolve(sent);
133
+ }
134
+ catch (error) {
135
+ reject(error);
136
+ }
137
+ },
138
+ // Reject: se a mensagem expirar ou houver erro
139
+ reject);
140
+ });
141
+ }
142
+ }
143
+ }
144
+ // Valida JID do chat usando utilitário
145
+ if (!((_g = message.chat) === null || _g === void 0 ? void 0 : _g.id) || !(0, JIDPatterns_1.isValidJID)(message.chat.id)) {
146
+ const error = new Error(`JID de chat inválido: ${(_h = message.chat) === null || _h === void 0 ? void 0 : _h.id}. O mapeamento LID/PN pode não estar disponível ainda.`);
147
+ throw error;
148
+ }
149
+ // Envia a mensagem
150
+ return this.sendMessageInternal(message);
151
+ }
152
+ /**
153
+ * Envia a mensagem internamente (JID já deve estar normalizado)
154
+ */
155
+ async sendMessageInternal(message) {
156
+ try {
157
+ const waMsg = (await new ConvertToWAMessage_1.default(this.bot, message).refactory()).waMessage;
158
+ const sent = await this.bot.sock.sendMessage(message.chat.id, waMsg);
159
+ if (sent && sent.key && sent.key.id) {
160
+ message.id = sent.key.id;
161
+ }
162
+ return message;
163
+ }
164
+ catch (error) {
165
+ this.errorHandler.handle(error, 'MessageOperations.sendMessageInternal');
166
+ throw error;
167
+ }
168
+ }
169
+ /**
170
+ * Lê uma mensagem (marca como lida localmente)
171
+ */
172
+ async readMessage(message) {
173
+ var _a;
174
+ // Validações básicas
175
+ if (!((_a = message.chat) === null || _a === void 0 ? void 0 : _a.id) || !message.id) {
176
+ return;
177
+ }
178
+ // Valida se socket está disponível (mas não exige conexão completa para leitura)
179
+ if (!this.bot.sock) {
180
+ return;
181
+ }
182
+ // REMOVIDO: await this.bot.getChat(message.chat) - estava bloqueando!
183
+ // Não precisa buscar chat do cache - já temos message.chat.type
184
+ // Apenas marca como lido localmente, sem enviar ACK
185
+ const chatType = (0, baileys_1.isJidGroup)(message.chat.id) ? ChatType_1.default.Group : ChatType_1.default.PV;
186
+ if (chatType === ChatType_1.default.Group || chatType === ChatType_1.default.PV) {
187
+ // Marcar mensagem como lida apenas no cache local
188
+ this.bot.addMessageCache(message.id || '');
189
+ }
190
+ }
191
+ /**
192
+ * Remove uma mensagem (marca como removida para todos)
193
+ */
194
+ async removeMessage(message) {
195
+ var _a;
196
+ if (!message.id || !((_a = message.chat) === null || _a === void 0 ? void 0 : _a.id))
197
+ return;
198
+ await this.bot.sock.sendMessage(message.chat.id, {
199
+ delete: {
200
+ remoteJid: message.chat.id,
201
+ id: message.id,
202
+ fromMe: message.fromMe || message.user.id === this.bot.id,
203
+ participant: (0, baileys_1.isJidGroup)(message.chat.id)
204
+ ? message.user.id || this.bot.id || undefined
205
+ : undefined,
206
+ },
207
+ });
208
+ }
209
+ /**
210
+ * Deleta uma mensagem (remove do histórico)
211
+ */
212
+ async deleteMessage(message) {
213
+ var _a;
214
+ if (!message.id || !((_a = message.chat) === null || _a === void 0 ? void 0 : _a.id))
215
+ return;
216
+ await this.bot.sock.sendMessage(message.chat.id, {
217
+ delete: {
218
+ remoteJid: message.chat.id,
219
+ id: message.id,
220
+ fromMe: message.fromMe || message.user.id === this.bot.id,
221
+ participant: (0, baileys_1.isJidGroup)(message.chat.id)
222
+ ? message.user.id || this.bot.id || undefined
223
+ : undefined,
224
+ },
225
+ });
226
+ }
227
+ /**
228
+ * Edita o texto de uma mensagem enviada
229
+ */
230
+ async editMessage(message) {
231
+ var _a;
232
+ // Validações
233
+ Validation_1.Validation.ensureConnected(this.bot.status, this.bot.sock);
234
+ if (!message.id || !((_a = message.chat) === null || _a === void 0 ? void 0 : _a.id)) {
235
+ throw new Error('Message deve ter id e chat.id válidos para edição');
236
+ }
237
+ Validation_1.Validation.ensureValidJID(message.chat.id, 'message.chat.id');
238
+ await this.bot.sock.sendMessage(message.chat.id, {
239
+ edit: {
240
+ remoteJid: message.chat.id,
241
+ id: message.id,
242
+ fromMe: message.fromMe || message.user.id === this.bot.id,
243
+ participant: (0, baileys_1.isJidGroup)(message.chat.id)
244
+ ? message.user.id || this.bot.id || undefined
245
+ : undefined,
246
+ },
247
+ text: message.text,
248
+ });
249
+ }
250
+ /**
251
+ * Adiciona uma reação a uma mensagem
252
+ */
253
+ async addReaction(message) {
254
+ var _a;
255
+ if (!message.id || !((_a = message.chat) === null || _a === void 0 ? void 0 : _a.id) || !message.reaction)
256
+ return;
257
+ await this.bot.sock.sendMessage(message.chat.id, {
258
+ react: {
259
+ text: message.reaction,
260
+ key: {
261
+ id: message.id,
262
+ remoteJid: message.chat.id,
263
+ fromMe: message.fromMe || message.user.id === this.bot.id,
264
+ participant: (0, baileys_1.isJidGroup)(message.chat.id)
265
+ ? message.user.id || this.bot.id || undefined
266
+ : undefined,
267
+ },
268
+ },
269
+ });
270
+ }
271
+ /**
272
+ * Remove uma reação de uma mensagem
273
+ */
274
+ async removeReaction(message) {
275
+ var _a, _b;
276
+ // Validações
277
+ Validation_1.Validation.ensureConnected(this.bot.status, this.bot.sock);
278
+ if (!((_a = message.chat) === null || _a === void 0 ? void 0 : _a.id) || !message.id) {
279
+ throw new Error('ReactionMessage deve ter chat.id e id válidos');
280
+ }
281
+ Validation_1.Validation.ensureValidJID(message.chat.id, 'message.chat.id');
282
+ if (!message.id || !((_b = message.chat) === null || _b === void 0 ? void 0 : _b.id))
283
+ return;
284
+ await this.bot.sock.sendMessage(message.chat.id, {
285
+ react: {
286
+ text: '',
287
+ key: {
288
+ id: message.id,
289
+ remoteJid: message.chat.id,
290
+ fromMe: message.fromMe || message.user.id === this.bot.id,
291
+ participant: (0, baileys_1.isJidGroup)(message.chat.id)
292
+ ? message.user.id || this.bot.id || undefined
293
+ : undefined,
294
+ },
295
+ },
296
+ });
297
+ }
298
+ /**
299
+ * Baixa a stream de mídia de uma mensagem
300
+ */
301
+ async downloadStreamMessage(media) {
302
+ var _a;
303
+ // Validações
304
+ Validation_1.Validation.ensureConnected(this.bot.status, this.bot.sock);
305
+ Validation_1.Validation.ensureValidJID((_a = media.chat) === null || _a === void 0 ? void 0 : _a.id, 'media.chat.id');
306
+ Validation_1.Validation.ensureNotNull(media.id, 'media.id');
307
+ const msg = await this.bot.store.loadMessage(media.chat.id, media.id);
308
+ if (!msg)
309
+ return Buffer.from("");
310
+ // downloadMediaMessage espera (msg, type, options?)
311
+ return Buffer.from(await (0, baileys_1.downloadMediaMessage)(msg, "buffer", {
312
+ // opções extras se necessário
313
+ }));
314
+ }
315
+ /**
316
+ * Obtém uma mensagem de enquete
317
+ */
318
+ async getPollMessage(pollMessageId) {
319
+ const pollMessage = await this.bot.auth.get(`polls-${pollMessageId}`);
320
+ if (!pollMessage || !messages_1.PollMessage.isValid(pollMessage))
321
+ return messages_1.PollMessage.fromJSON({ id: pollMessageId });
322
+ if (pollMessage.type == Message_1.MessageType.PollUpdate) {
323
+ return messages_1.PollUpdateMessage.fromJSON(pollMessage);
324
+ }
325
+ return messages_1.PollMessage.fromJSON(pollMessage);
326
+ }
327
+ /**
328
+ * Salva uma mensagem de enquete
329
+ */
330
+ async savePollMessage(pollMessage) {
331
+ await this.bot.auth.set(`polls-${pollMessage.id}`, pollMessage.toJSON());
332
+ }
333
+ }
334
+ exports.MessageOperations = MessageOperations;
335
+ //# sourceMappingURL=MessageOperations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageOperations.js","sourceRoot":"","sources":["../../../src/wa/operations/MessageOperations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { Contact } from '@whiskeysockets/baileys';
2
+ import User from '../../modules/user/User';
3
+ import WhatsAppBot from '../WhatsAppBot';
4
+ /**
5
+ * Operações relacionadas a usuários
6
+ */
7
+ export declare class UserOperations {
8
+ private bot;
9
+ constructor(bot: WhatsAppBot);
10
+ /**
11
+ * Obtém o nome de um usuário
12
+ */
13
+ getUserName(user: User): Promise<string>;
14
+ /**
15
+ * Define o nome de um usuário (apenas para o próprio bot)
16
+ */
17
+ setUserName(user: User, name: string): Promise<void>;
18
+ /**
19
+ * Obtém a descrição de um usuário
20
+ */
21
+ getUserDescription(user: User): Promise<string>;
22
+ /**
23
+ * Define a descrição de um usuário (apenas para o próprio bot)
24
+ */
25
+ setUserDescription(user: User, description: string): Promise<void>;
26
+ /**
27
+ * Obtém a foto de perfil de um usuário
28
+ */
29
+ getUserProfile(user: User, lowQuality?: boolean): Promise<Buffer>;
30
+ /**
31
+ * Obtém a URL da foto de perfil de um usuário
32
+ */
33
+ getUserProfileUrl(user: User, lowQuality?: boolean): Promise<string>;
34
+ /**
35
+ * Define a foto de perfil de um usuário (apenas para o próprio bot)
36
+ */
37
+ setUserProfile(user: User, image: Buffer): Promise<void>;
38
+ /**
39
+ * Obtém um usuário
40
+ */
41
+ getUser(user: User): Promise<User | null>;
42
+ /**
43
+ * Obtém lista de IDs de usuários
44
+ */
45
+ getUsers(): Promise<string[]>;
46
+ /**
47
+ * Atualiza informações de um usuário
48
+ */
49
+ updateUser(user: {
50
+ id: string;
51
+ } & Partial<User>): Promise<void>;
52
+ /**
53
+ * Define múltiplos usuários
54
+ */
55
+ setUsers(users: User[]): Promise<void>;
56
+ /**
57
+ * Remove um usuário
58
+ */
59
+ removeUser(user: User): Promise<void>;
60
+ /**
61
+ * Bloqueia um usuário
62
+ */
63
+ blockUser(user: User): Promise<void>;
64
+ /**
65
+ * Desbloqueia um usuário
66
+ */
67
+ unblockUser(user: User): Promise<void>;
68
+ /**
69
+ * Lê o usuário e atualiza suas informações
70
+ */
71
+ readUser(user: Partial<User>, metadata?: Partial<Contact>): Promise<void>;
72
+ /**
73
+ * Obtém o nome do bot
74
+ */
75
+ getBotName(): Promise<string>;
76
+ /**
77
+ * Define o nome do bot
78
+ */
79
+ setBotName(name: string): Promise<void>;
80
+ /**
81
+ * Obtém a descrição do bot
82
+ */
83
+ getBotDescription(): Promise<string>;
84
+ /**
85
+ * Define a descrição do bot
86
+ */
87
+ setBotDescription(description: string): Promise<void>;
88
+ /**
89
+ * Obtém a foto de perfil do bot
90
+ */
91
+ getBotProfile(lowQuality?: boolean): Promise<Buffer>;
92
+ /**
93
+ * Obtém a URL da foto de perfil do bot
94
+ */
95
+ getBotProfileUrl(lowQuality?: boolean): Promise<string>;
96
+ /**
97
+ * Define a foto de perfil do bot
98
+ */
99
+ setBotProfile(image: Buffer): Promise<void>;
100
+ }
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.UserOperations = void 0;
7
+ const User_1 = __importDefault(require("../../modules/user/User"));
8
+ const Generic_1 = require("../../utils/Generic");
9
+ const ID_1 = require("../ID");
10
+ const JIDPatterns_1 = require("../constants/JIDPatterns");
11
+ /**
12
+ * Operações relacionadas a usuários
13
+ */
14
+ class UserOperations {
15
+ constructor(bot) {
16
+ this.bot = bot;
17
+ }
18
+ /**
19
+ * Obtém o nome de um usuário
20
+ */
21
+ async getUserName(user) {
22
+ var _a;
23
+ return ((_a = (await this.bot.getUser(user))) === null || _a === void 0 ? void 0 : _a.name) || '';
24
+ }
25
+ /**
26
+ * Define o nome de um usuário (apenas para o próprio bot)
27
+ */
28
+ async setUserName(user, name) {
29
+ if (user.id !== this.bot.id)
30
+ return;
31
+ await this.bot.setBotName(name);
32
+ }
33
+ /**
34
+ * Obtém a descrição de um usuário
35
+ */
36
+ async getUserDescription(user) {
37
+ // O método fetchStatus não existe na API pública do Baileys
38
+ throw new Error('getUserDescription não implementado: fetchStatus não disponível na API do Baileys');
39
+ }
40
+ /**
41
+ * Define a descrição de um usuário (apenas para o próprio bot)
42
+ */
43
+ async setUserDescription(user, description) {
44
+ if (user.id !== this.bot.id)
45
+ return;
46
+ await this.bot.setBotDescription(description);
47
+ }
48
+ /**
49
+ * Obtém a foto de perfil de um usuário
50
+ */
51
+ async getUserProfile(user, lowQuality) {
52
+ const uri = await this.getUserProfileUrl(user, lowQuality);
53
+ return await (0, Generic_1.getImageURL)(uri);
54
+ }
55
+ /**
56
+ * Obtém a URL da foto de perfil de um usuário
57
+ */
58
+ async getUserProfileUrl(user, lowQuality) {
59
+ try {
60
+ return ((await this.bot.sock.profilePictureUrl(user.id, lowQuality ? 'preview' : 'image')) || '');
61
+ }
62
+ catch (_a) {
63
+ return '';
64
+ }
65
+ }
66
+ /**
67
+ * Define a foto de perfil de um usuário (apenas para o próprio bot)
68
+ */
69
+ async setUserProfile(user, image) {
70
+ if (user.id !== this.bot.id)
71
+ return;
72
+ await this.bot.setBotProfile(image);
73
+ }
74
+ /**
75
+ * Obtém um usuário
76
+ */
77
+ async getUser(user) {
78
+ const userData = await this.bot.auth.get(`users-${user.id}`);
79
+ if (!userData)
80
+ return null;
81
+ return User_1.default.fromJSON(userData);
82
+ }
83
+ /**
84
+ * Obtém lista de IDs de usuários
85
+ */
86
+ async getUsers() {
87
+ return (await this.bot.auth.listAll('users-')).map((id) => id.replace('users-', ''));
88
+ }
89
+ /**
90
+ * Atualiza informações de um usuário
91
+ */
92
+ async updateUser(user) {
93
+ const userData = await this.bot.getUser(new User_1.default(user.id));
94
+ if (userData != null) {
95
+ user = Object.keys(user).reduce((data, key) => {
96
+ if (user[key] == undefined || user[key] == null)
97
+ return data;
98
+ if ((0, Generic_1.verifyIsEquals)(user[key], userData[key]))
99
+ return data;
100
+ return { ...data, [key]: user[key] };
101
+ }, { id: user.id });
102
+ if (Object.keys(user).length < 2)
103
+ return;
104
+ }
105
+ const newUser = User_1.default.fromJSON({ ...(userData || {}), ...user });
106
+ newUser.phoneNumber = newUser.phoneNumber || (0, ID_1.getPhoneNumber)(user.id);
107
+ await this.bot.auth.set(`users-${user.id}`, newUser.toJSON());
108
+ }
109
+ /**
110
+ * Define múltiplos usuários
111
+ */
112
+ async setUsers(users) {
113
+ await Promise.all(users.map(async (user) => await this.updateUser(user)));
114
+ }
115
+ /**
116
+ * Remove um usuário
117
+ */
118
+ async removeUser(user) {
119
+ await this.bot.auth.remove(`users-${user.id}`);
120
+ }
121
+ /**
122
+ * Bloqueia um usuário
123
+ */
124
+ async blockUser(user) {
125
+ if (user.id === this.bot.id)
126
+ return;
127
+ await this.bot.sock.updateBlockStatus(user.id, 'block');
128
+ }
129
+ /**
130
+ * Desbloqueia um usuário
131
+ */
132
+ async unblockUser(user) {
133
+ if (user.id === this.bot.id)
134
+ return;
135
+ await this.bot.sock.updateBlockStatus(user.id, 'unblock');
136
+ }
137
+ /**
138
+ * Lê o usuário e atualiza suas informações
139
+ */
140
+ async readUser(user, metadata) {
141
+ try {
142
+ if (!user.id || !user.id.includes(JIDPatterns_1.JID_PATTERNS.USER))
143
+ return;
144
+ // Valida se socket está disponível (mas não exige conexão completa para leitura)
145
+ if (!this.bot.sock) {
146
+ return;
147
+ }
148
+ if (metadata === null || metadata === void 0 ? void 0 : metadata.imgUrl) {
149
+ user.profileUrl = await this.getUserProfileUrl(new User_1.default(user.id));
150
+ }
151
+ else {
152
+ const userData = await this.getUser(new User_1.default(user.id || ''));
153
+ if (userData == null || !userData.profileUrl) {
154
+ user.profileUrl = await this.getUserProfileUrl(new User_1.default(user.id));
155
+ }
156
+ }
157
+ if ((metadata === null || metadata === void 0 ? void 0 : metadata.notify) || (metadata === null || metadata === void 0 ? void 0 : metadata.verifiedName)) {
158
+ user.name = (metadata === null || metadata === void 0 ? void 0 : metadata.notify) || (metadata === null || metadata === void 0 ? void 0 : metadata.verifiedName);
159
+ }
160
+ if (metadata === null || metadata === void 0 ? void 0 : metadata.name) {
161
+ user.savedName = metadata.name;
162
+ }
163
+ user.name = user.name || user.savedName;
164
+ await this.updateUser({ id: user.id || '', ...user });
165
+ }
166
+ catch (err) {
167
+ this.bot.emit('error', err);
168
+ }
169
+ }
170
+ /**
171
+ * Obtém o nome do bot
172
+ */
173
+ async getBotName() {
174
+ var _a;
175
+ return ((_a = (await this.getUser(new User_1.default(this.bot.id)))) === null || _a === void 0 ? void 0 : _a.name) || '';
176
+ }
177
+ /**
178
+ * Define o nome do bot
179
+ */
180
+ async setBotName(name) {
181
+ await this.bot.sock.updateProfileName(name);
182
+ }
183
+ /**
184
+ * Obtém a descrição do bot
185
+ */
186
+ async getBotDescription() {
187
+ // O método fetchStatus não existe na API pública do Baileys
188
+ throw new Error('getBotDescription não implementado: fetchStatus não disponível na API do Baileys');
189
+ }
190
+ /**
191
+ * Define a descrição do bot
192
+ */
193
+ async setBotDescription(description) {
194
+ await this.bot.sock.updateProfileStatus(description);
195
+ }
196
+ /**
197
+ * Obtém a foto de perfil do bot
198
+ */
199
+ async getBotProfile(lowQuality) {
200
+ return await this.getUserProfile(new User_1.default(this.bot.id), lowQuality);
201
+ }
202
+ /**
203
+ * Obtém a URL da foto de perfil do bot
204
+ */
205
+ async getBotProfileUrl(lowQuality) {
206
+ return (await this.getUserProfileUrl(new User_1.default(this.bot.id), lowQuality)) || '';
207
+ }
208
+ /**
209
+ * Define a foto de perfil do bot
210
+ */
211
+ async setBotProfile(image) {
212
+ await this.bot.sock.updateProfilePicture(this.bot.id, image);
213
+ }
214
+ }
215
+ exports.UserOperations = UserOperations;
216
+ //# sourceMappingURL=UserOperations.js.map