@arcaelas/whatsapp 2.1.0 → 3.0.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.
Files changed (127) hide show
  1. package/build/cjs/decorators.d.ts +9 -0
  2. package/build/cjs/decorators.js +26 -0
  3. package/build/cjs/decorators.js.map +1 -0
  4. package/build/cjs/index.d.ts +6 -10
  5. package/build/cjs/index.js +11 -10
  6. package/build/cjs/index.js.map +1 -1
  7. package/build/cjs/lib/bot/decorator.d.ts +77 -0
  8. package/build/cjs/lib/bot/decorator.js +219 -0
  9. package/build/cjs/lib/bot/decorator.js.map +1 -0
  10. package/build/cjs/lib/bot/decorators.d.ts +113 -0
  11. package/build/cjs/lib/bot/decorators.js +253 -0
  12. package/build/cjs/lib/bot/decorators.js.map +1 -0
  13. package/build/cjs/lib/bot/index.d.ts +3 -0
  14. package/build/cjs/lib/bot/index.js +20 -0
  15. package/build/cjs/lib/bot/index.js.map +1 -0
  16. package/build/cjs/lib/chat/index.d.ts +227 -0
  17. package/build/cjs/lib/chat/index.js +324 -0
  18. package/build/cjs/lib/chat/index.js.map +1 -0
  19. package/build/cjs/lib/contact/index.d.ts +203 -0
  20. package/build/cjs/lib/contact/index.js +226 -0
  21. package/build/cjs/lib/contact/index.js.map +1 -0
  22. package/build/cjs/lib/message/index.d.ts +228 -0
  23. package/build/cjs/lib/message/index.js +678 -0
  24. package/build/cjs/lib/message/index.js.map +1 -0
  25. package/build/cjs/lib/store/engine/index.d.ts +34 -0
  26. package/build/cjs/lib/store/engine/index.js +13 -0
  27. package/build/cjs/lib/store/engine/index.js.map +1 -0
  28. package/build/cjs/lib/store/engine/lib/file_system/index.d.ts +56 -0
  29. package/build/cjs/lib/store/engine/lib/file_system/index.js +160 -0
  30. package/build/cjs/lib/store/engine/lib/file_system/index.js.map +1 -0
  31. package/build/cjs/lib/store/engine/lib/redis/index.d.ts +82 -0
  32. package/build/cjs/lib/store/engine/lib/redis/index.js +132 -0
  33. package/build/cjs/lib/store/engine/lib/redis/index.js.map +1 -0
  34. package/build/cjs/lib/store/index.d.ts +22 -0
  35. package/build/cjs/lib/store/index.js +38 -0
  36. package/build/cjs/lib/store/index.js.map +1 -0
  37. package/build/cjs/lib/whatsapp/index.d.ts +179 -0
  38. package/build/cjs/lib/whatsapp/index.js +754 -0
  39. package/build/cjs/lib/whatsapp/index.js.map +1 -0
  40. package/build/esm/decorators.d.ts +9 -0
  41. package/build/esm/decorators.js +9 -0
  42. package/build/esm/decorators.js.map +1 -0
  43. package/build/esm/index.d.ts +6 -10
  44. package/build/esm/index.js +4 -6
  45. package/build/esm/index.js.map +1 -1
  46. package/build/esm/lib/bot/decorator.d.ts +77 -0
  47. package/build/esm/lib/bot/decorator.js +210 -0
  48. package/build/esm/lib/bot/decorator.js.map +1 -0
  49. package/build/esm/lib/bot/decorators.d.ts +113 -0
  50. package/build/esm/lib/bot/decorators.js +242 -0
  51. package/build/esm/lib/bot/decorators.js.map +1 -0
  52. package/build/esm/lib/bot/index.d.ts +3 -0
  53. package/build/esm/lib/bot/index.js +3 -0
  54. package/build/esm/lib/bot/index.js.map +1 -0
  55. package/build/esm/lib/chat/index.d.ts +227 -0
  56. package/build/esm/lib/chat/index.js +319 -0
  57. package/build/esm/lib/chat/index.js.map +1 -0
  58. package/build/esm/lib/contact/index.d.ts +203 -0
  59. package/build/esm/lib/contact/index.js +221 -0
  60. package/build/esm/lib/contact/index.js.map +1 -0
  61. package/build/esm/lib/message/index.d.ts +228 -0
  62. package/build/esm/lib/message/index.js +666 -0
  63. package/build/esm/lib/message/index.js.map +1 -0
  64. package/build/esm/lib/store/engine/index.d.ts +34 -0
  65. package/build/esm/lib/store/engine/index.js +8 -0
  66. package/build/esm/lib/store/engine/index.js.map +1 -0
  67. package/build/esm/lib/store/engine/lib/file_system/index.d.ts +56 -0
  68. package/build/esm/lib/store/engine/lib/file_system/index.js +156 -0
  69. package/build/esm/lib/store/engine/lib/file_system/index.js.map +1 -0
  70. package/build/esm/lib/store/engine/lib/redis/index.d.ts +82 -0
  71. package/build/esm/lib/store/engine/lib/redis/index.js +128 -0
  72. package/build/esm/lib/store/engine/lib/redis/index.js.map +1 -0
  73. package/build/esm/lib/store/index.d.ts +22 -0
  74. package/build/esm/lib/store/index.js +31 -0
  75. package/build/esm/lib/store/index.js.map +1 -0
  76. package/build/esm/lib/whatsapp/index.d.ts +179 -0
  77. package/build/esm/lib/whatsapp/index.js +714 -0
  78. package/build/esm/lib/whatsapp/index.js.map +1 -0
  79. package/package.json +8 -6
  80. package/build/cjs/Chat.d.ts +0 -317
  81. package/build/cjs/Chat.js +0 -273
  82. package/build/cjs/Chat.js.map +0 -1
  83. package/build/cjs/Contact.d.ts +0 -1163
  84. package/build/cjs/Contact.js +0 -160
  85. package/build/cjs/Contact.js.map +0 -1
  86. package/build/cjs/Message.d.ts +0 -902
  87. package/build/cjs/Message.js +0 -515
  88. package/build/cjs/Message.js.map +0 -1
  89. package/build/cjs/WhatsApp.d.ts +0 -80
  90. package/build/cjs/WhatsApp.js +0 -412
  91. package/build/cjs/WhatsApp.js.map +0 -1
  92. package/build/cjs/store/driver/FileEngine.d.ts +0 -34
  93. package/build/cjs/store/driver/FileEngine.js +0 -86
  94. package/build/cjs/store/driver/FileEngine.js.map +0 -1
  95. package/build/cjs/store/driver/RedisEngine.d.ts +0 -47
  96. package/build/cjs/store/driver/RedisEngine.js +0 -70
  97. package/build/cjs/store/driver/RedisEngine.js.map +0 -1
  98. package/build/cjs/store/engine.d.ts +0 -53
  99. package/build/cjs/store/engine.js +0 -7
  100. package/build/cjs/store/engine.js.map +0 -1
  101. package/build/cjs/store/index.d.ts +0 -8
  102. package/build/cjs/store/index.js +0 -12
  103. package/build/cjs/store/index.js.map +0 -1
  104. package/build/esm/Chat.d.ts +0 -317
  105. package/build/esm/Chat.js +0 -268
  106. package/build/esm/Chat.js.map +0 -1
  107. package/build/esm/Contact.d.ts +0 -1163
  108. package/build/esm/Contact.js +0 -155
  109. package/build/esm/Contact.js.map +0 -1
  110. package/build/esm/Message.d.ts +0 -902
  111. package/build/esm/Message.js +0 -510
  112. package/build/esm/Message.js.map +0 -1
  113. package/build/esm/WhatsApp.d.ts +0 -80
  114. package/build/esm/WhatsApp.js +0 -372
  115. package/build/esm/WhatsApp.js.map +0 -1
  116. package/build/esm/store/driver/FileEngine.d.ts +0 -34
  117. package/build/esm/store/driver/FileEngine.js +0 -82
  118. package/build/esm/store/driver/FileEngine.js.map +0 -1
  119. package/build/esm/store/driver/RedisEngine.d.ts +0 -47
  120. package/build/esm/store/driver/RedisEngine.js +0 -66
  121. package/build/esm/store/driver/RedisEngine.js.map +0 -1
  122. package/build/esm/store/engine.d.ts +0 -53
  123. package/build/esm/store/engine.js +0 -6
  124. package/build/esm/store/engine.js.map +0 -1
  125. package/build/esm/store/index.d.ts +0 -8
  126. package/build/esm/store/index.js +0 -7
  127. package/build/esm/store/index.js.map +0 -1
@@ -1,372 +0,0 @@
1
- /**
2
- * @file WhatsApp.ts
3
- * @description Clase principal que gestiona la conexión y eventos de WhatsApp
4
- */
5
- import { Browsers, BufferJSON, DisconnectReason, downloadMediaMessage, fetchLatestBaileysVersion, getContentType, initAuthCreds, makeWASocket, proto, } from 'baileys';
6
- import { EventEmitter } from 'node:events';
7
- import pino from 'pino';
8
- import * as QRCode from 'qrcode';
9
- import { chat } from './Chat';
10
- import { contact } from './Contact';
11
- import { message } from './Message';
12
- import { FileEngine } from './store';
13
- /**
14
- * @description
15
- * Clase principal para gestionar la conexión con WhatsApp.
16
- * Main class for managing the WhatsApp connection.
17
- *
18
- * @example
19
- * const { event, pair, Contact, Chat, Message } = new WhatsApp({ phone: '5491112345678' });
20
- * event.on('open', () => console.log('Conectado'));
21
- * await pair((code) => console.log('Código:', code));
22
- */
23
- export class WhatsApp {
24
- constructor(options = {}) {
25
- this._socket = null;
26
- /**
27
- * @description Conecta a WhatsApp.
28
- * Connects to WhatsApp.
29
- * - Con phone: callback recibe código de 8 dígitos (una vez)
30
- * - Sin phone: callback recibe QR como Buffer PNG (periódicamente)
31
- */
32
- this.pair = async (callback) => {
33
- const { version } = await fetchLatestBaileysVersion();
34
- const stored = await this.engine.get('session/creds');
35
- const creds = stored ? JSON.parse(stored, BufferJSON.reviver) : initAuthCreds();
36
- let code_sent = false;
37
- const connect = async () => {
38
- this._socket = makeWASocket({
39
- version,
40
- auth: {
41
- creds,
42
- keys: {
43
- get: async (type, ids) => {
44
- const data = {};
45
- for (const id of ids) {
46
- const stored = await this.engine.get(`session/${type}/${id}`);
47
- if (stored) {
48
- let value = JSON.parse(stored, BufferJSON.reviver);
49
- if (type === 'app-state-sync-key')
50
- value = proto.Message.AppStateSyncKeyData.create(value);
51
- data[id] = value;
52
- }
53
- }
54
- return data;
55
- },
56
- set: async (data) => {
57
- for (const category in data) {
58
- for (const id in data[category]) {
59
- const value = data[category][id];
60
- await this.engine.set(`session/${category}/${id}`, value ? JSON.stringify(value, BufferJSON.replacer) : null);
61
- }
62
- }
63
- },
64
- },
65
- },
66
- browser: Browsers.windows('Chrome'),
67
- printQRInTerminal: false,
68
- logger: pino({ level: 'silent' }),
69
- syncFullHistory: false,
70
- markOnlineOnConnect: false,
71
- });
72
- const socket = this._socket;
73
- socket.ev.on('creds.update', () => this.engine.set('session/creds', JSON.stringify(creds, BufferJSON.replacer)));
74
- socket.ev.on('connection.update', async (update) => {
75
- const { connection, lastDisconnect, qr } = update;
76
- if (qr && !creds.registered) {
77
- if (this._phone && !code_sent) {
78
- code_sent = true;
79
- await callback(await socket.requestPairingCode(this._phone));
80
- }
81
- else if (!this._phone) {
82
- await callback(await QRCode.toBuffer(qr, { type: 'png', margin: 2 }));
83
- }
84
- }
85
- if (connection === 'open') {
86
- this.event.emit('open');
87
- }
88
- else if (connection === 'close') {
89
- this._socket = null;
90
- if (lastDisconnect?.error?.output?.statusCode === DisconnectReason.loggedOut) {
91
- this.event.emit('error', new Error('Logged out'));
92
- return;
93
- }
94
- this.event.emit('close');
95
- setTimeout(connect, 3000);
96
- }
97
- });
98
- // ═══════════════════════════════════════════════════════════════════
99
- // CONTACTS
100
- // ═══════════════════════════════════════════════════════════════════
101
- socket.ev.on('contacts.upsert', async (contacts) => {
102
- for (const c of contacts) {
103
- if (!c.id)
104
- continue;
105
- const existing = await this.engine.get(`contact/${c.id}/index`);
106
- const raw = {
107
- id: c.id,
108
- lid: c.lid ?? null,
109
- name: c.name ?? null,
110
- notify: c.notify ?? null,
111
- verifiedName: c.verifiedName ?? null,
112
- imgUrl: c.imgUrl ?? null,
113
- status: c.status ?? null,
114
- };
115
- await this.engine.set(`contact/${c.id}/index`, JSON.stringify(raw, BufferJSON.replacer));
116
- if (raw.lid)
117
- await this.engine.set(`lid/${raw.lid}`, raw.id);
118
- this.event.emit(existing ? 'contact:updated' : 'contact:created', new this.Contact(raw));
119
- }
120
- });
121
- socket.ev.on('contacts.update', async (contacts) => {
122
- for (const c of contacts) {
123
- if (!c.id)
124
- continue;
125
- const stored = await this.engine.get(`contact/${c.id}/index`);
126
- if (!stored)
127
- continue;
128
- const raw = JSON.parse(stored, BufferJSON.reviver);
129
- if (c.notify)
130
- raw.notify = c.notify;
131
- if (c.name)
132
- raw.name = c.name;
133
- if (c.imgUrl)
134
- raw.imgUrl = c.imgUrl;
135
- if (c.status)
136
- raw.status = c.status;
137
- if (c.lid)
138
- raw.lid = c.lid;
139
- await this.engine.set(`contact/${c.id}/index`, JSON.stringify(raw, BufferJSON.replacer));
140
- if (raw.lid)
141
- await this.engine.set(`lid/${raw.lid}`, raw.id);
142
- this.event.emit('contact:updated', new this.Contact(raw));
143
- }
144
- });
145
- socket.ev.on('lid-mapping.update', async ({ lid, pn }) => {
146
- await this.engine.set(`lid/${lid}`, pn);
147
- await this.engine.set(`lid/${pn}`, lid);
148
- });
149
- // ═══════════════════════════════════════════════════════════════════
150
- // CHATS
151
- // ═══════════════════════════════════════════════════════════════════
152
- socket.ev.on('chats.upsert', async (chats) => {
153
- for (const ch of chats) {
154
- const existing = await this.engine.get(`chat/${ch.id}/index`);
155
- const raw = existing
156
- ? JSON.parse(existing, BufferJSON.reviver)
157
- : {
158
- id: ch.id,
159
- name: ch.name ?? null,
160
- archived: ch.archived ?? null,
161
- pinned: ch.pinned ?? null,
162
- muteEndTime: ch.muteEndTime ?? null,
163
- unreadCount: ch.unreadCount ?? null,
164
- readOnly: ch.readOnly ?? null,
165
- };
166
- if (ch.name)
167
- raw.name = ch.name;
168
- await this.engine.set(`chat/${ch.id}/index`, JSON.stringify(raw, BufferJSON.replacer));
169
- this.event.emit(existing ? 'chat:updated' : 'chat:created', new this.Chat(raw));
170
- }
171
- });
172
- socket.ev.on('chats.update', async (chats) => {
173
- for (const ch of chats) {
174
- if (!ch.id)
175
- continue;
176
- const stored = await this.engine.get(`chat/${ch.id}/index`);
177
- const raw = stored ? JSON.parse(stored, BufferJSON.reviver) : { id: ch.id, name: ch.name ?? null };
178
- let has_specific_event = false;
179
- if (ch.name !== undefined)
180
- raw.name = ch.name ?? raw.name;
181
- if ('pinned' in ch) {
182
- raw.pinned = ch.pinned ?? null;
183
- has_specific_event = true;
184
- }
185
- if (ch.archived !== undefined) {
186
- raw.archived = ch.archived ?? false;
187
- has_specific_event = true;
188
- }
189
- if ('muteEndTime' in ch) {
190
- raw.muteEndTime = ch.muteEndTime ? Number(ch.muteEndTime) : null;
191
- has_specific_event = true;
192
- }
193
- if (ch.unreadCount !== undefined)
194
- raw.unreadCount = ch.unreadCount;
195
- await this.engine.set(`chat/${ch.id}/index`, JSON.stringify(raw, BufferJSON.replacer));
196
- const instance = new this.Chat({ ...raw });
197
- if ('pinned' in ch)
198
- this.event.emit('chat:pinned', instance);
199
- if (ch.archived !== undefined)
200
- this.event.emit('chat:archived', instance);
201
- if ('muteEndTime' in ch)
202
- this.event.emit('chat:muted', instance);
203
- if (!has_specific_event)
204
- this.event.emit(stored ? 'chat:updated' : 'chat:created', instance);
205
- }
206
- });
207
- socket.ev.on('chats.delete', async (ids) => {
208
- for (const cid of ids) {
209
- await this.engine.set(`chat/${cid}`, null);
210
- this.event.emit('chat:deleted', cid);
211
- }
212
- });
213
- // ═══════════════════════════════════════════════════════════════════
214
- // MESSAGES
215
- // ═══════════════════════════════════════════════════════════════════
216
- socket.ev.on('messages.upsert', async ({ messages }) => {
217
- for (const msg of messages) {
218
- if (!msg.key?.remoteJid || !msg.key.id)
219
- continue;
220
- const cid = msg.key.remoteJidAlt || msg.key.remoteJid;
221
- const mid = msg.key.id;
222
- const content_type = getContentType(msg.message ?? {});
223
- if (content_type === 'reactionMessage' || content_type === 'pollUpdateMessage')
224
- continue;
225
- // ─── PROTOCOL MESSAGE (ediciones y eliminaciones) ───
226
- if (content_type === 'protocolMessage') {
227
- const protocol = msg.message?.protocolMessage;
228
- if (!protocol?.key?.id)
229
- continue;
230
- const target_mid = protocol.key.id;
231
- const target_cid = protocol.key.remoteJid ?? cid;
232
- if (protocol.type === proto.Message.ProtocolMessage.Type.MESSAGE_EDIT) {
233
- const edited_msg = protocol.editedMessage;
234
- if (!edited_msg)
235
- continue;
236
- const stored_index = await this.engine.get(`chat/${target_cid}/message/${target_mid}/index`);
237
- const stored_raw = await this.engine.get(`chat/${target_cid}/message/${target_mid}/raw`);
238
- if (!stored_index || !stored_raw)
239
- continue;
240
- const index = JSON.parse(stored_index, BufferJSON.reviver);
241
- const raw = JSON.parse(stored_raw, BufferJSON.reviver);
242
- raw.message = edited_msg;
243
- index.edited = true;
244
- index.caption = this.Message._build_index(raw).caption;
245
- await this.engine.set(`chat/${target_cid}/message/${target_mid}/index`, JSON.stringify(index, BufferJSON.replacer));
246
- await this.engine.set(`chat/${target_cid}/message/${target_mid}/raw`, JSON.stringify(raw, BufferJSON.replacer));
247
- const instance = new this.Message({ index, raw });
248
- this.Message._notify(target_cid, target_mid);
249
- this.event.emit('message:updated', instance);
250
- continue;
251
- }
252
- if (protocol.type === proto.Message.ProtocolMessage.Type.REVOKE) {
253
- await this.Message._remove_from_index(target_cid, target_mid);
254
- await this.engine.set(`chat/${target_cid}/message/${target_mid}`, null);
255
- this.event.emit('message:deleted', target_cid, target_mid);
256
- }
257
- continue;
258
- }
259
- // ─── MENSAJE NUEVO ───
260
- const index = this.Message._build_index(msg);
261
- await this.engine.set(`chat/${cid}/message/${mid}/index`, JSON.stringify(index, BufferJSON.replacer));
262
- await this.engine.set(`chat/${cid}/message/${mid}/raw`, JSON.stringify(msg, BufferJSON.replacer));
263
- let content = Buffer.alloc(0);
264
- if (index.type === 'text') {
265
- const raw_content = msg.message?.[content_type];
266
- content = Buffer.from(typeof raw_content === 'string' ? raw_content : raw_content?.text ?? raw_content?.caption ?? '', 'utf-8');
267
- }
268
- else if (index.type === 'location') {
269
- const loc = msg.message?.locationMessage ?? msg.message?.liveLocationMessage;
270
- content = Buffer.from(JSON.stringify({ lat: loc?.degreesLatitude, lng: loc?.degreesLongitude }), 'utf-8');
271
- }
272
- else if (index.type === 'poll') {
273
- const poll = msg.message?.pollCreationMessage ?? msg.message?.pollCreationMessageV2 ?? msg.message?.pollCreationMessageV3;
274
- content = Buffer.from(JSON.stringify({ content: poll?.name ?? '', options: poll?.options?.map((o) => ({ content: o.optionName })) ?? [] }), 'utf-8');
275
- }
276
- else if (['image', 'video', 'audio'].includes(index.type) && this._socket) {
277
- try {
278
- const buffer = await downloadMediaMessage(msg, 'buffer', {});
279
- if (Buffer.isBuffer(buffer))
280
- content = buffer;
281
- }
282
- catch { /* media download may fail */ }
283
- }
284
- if (content.length)
285
- await this.engine.set(`chat/${cid}/message/${mid}/content`, content.toString('base64'));
286
- await this.Message._add_to_index(cid, mid, index.created_at);
287
- const instance = new this.Message({ index, raw: msg });
288
- if (content.length)
289
- instance.content = async () => content;
290
- this.Message._notify(cid, mid);
291
- this.event.emit('message:created', instance);
292
- }
293
- });
294
- socket.ev.on('messages.update', async (updates) => {
295
- for (const { key, update } of updates) {
296
- if (!key.remoteJid || !key.id)
297
- continue;
298
- const stored_raw = await this.engine.get(`chat/${key.remoteJid}/message/${key.id}/raw`);
299
- const stored_index = await this.engine.get(`chat/${key.remoteJid}/message/${key.id}/index`);
300
- if (!stored_index)
301
- continue;
302
- const index = JSON.parse(stored_index, BufferJSON.reviver);
303
- const raw = stored_raw ? JSON.parse(stored_raw, BufferJSON.reviver) : { key };
304
- if (update.message?.editedMessage?.message) {
305
- raw.message = update.message.editedMessage.message;
306
- index.edited = true;
307
- index.caption = this.Message._build_index(raw).caption;
308
- await this.engine.set(`chat/${key.remoteJid}/message/${key.id}/index`, JSON.stringify(index, BufferJSON.replacer));
309
- await this.engine.set(`chat/${key.remoteJid}/message/${key.id}/raw`, JSON.stringify(raw, BufferJSON.replacer));
310
- const instance = new this.Message({ index, raw });
311
- this.Message._notify(key.remoteJid, key.id);
312
- this.event.emit('message:updated', instance);
313
- continue;
314
- }
315
- if (update.status !== undefined) {
316
- raw.status = update.status;
317
- index.status = raw.status;
318
- await this.engine.set(`chat/${key.remoteJid}/message/${key.id}/index`, JSON.stringify(index, BufferJSON.replacer));
319
- await this.engine.set(`chat/${key.remoteJid}/message/${key.id}/raw`, JSON.stringify(raw, BufferJSON.replacer));
320
- }
321
- }
322
- });
323
- socket.ev.on('messages.reaction', async (reactions) => {
324
- for (const { key, reaction } of reactions) {
325
- if (key.remoteJid && key.id)
326
- this.event.emit('message:reacted', key.remoteJid, key.id, reaction.text ?? '');
327
- }
328
- });
329
- };
330
- await connect();
331
- };
332
- this._phone = options.phone?.toString();
333
- this.engine = options.engine ?? new FileEngine(this._phone ? `.baileys/${this._phone}` : '.baileys/default');
334
- this.event = new EventEmitter();
335
- this.Contact = contact(this);
336
- this.Chat = chat(this);
337
- this.Message = message(this);
338
- }
339
- /**
340
- * @description Retorna el socket de Baileys (null si no está conectado).
341
- * Returns the Baileys socket (null if disconnected).
342
- */
343
- get socket() {
344
- return this._socket;
345
- }
346
- /**
347
- * @description Normaliza cualquier identificador (JID, LID, phone) a JID.
348
- * Normalizes any identifier (JID, LID, phone) to JID format.
349
- * @param uid Identificador: JID, LID (@lid), o numero de telefono.
350
- */
351
- async resolveJID(uid) {
352
- if (uid.endsWith('@g.us'))
353
- return uid;
354
- if (uid.endsWith('@s.whatsapp.net'))
355
- return uid;
356
- if (uid.endsWith('@lid')) {
357
- const lid_number = uid.split('@')[0];
358
- const direct = await this.engine.get(`lid/${uid}`);
359
- if (direct)
360
- return direct.includes('@') ? direct : `${direct}@s.whatsapp.net`;
361
- const reverse = await this.engine.get(`session/lid-mapping/${lid_number}_reverse`);
362
- if (reverse) {
363
- const phone = JSON.parse(reverse);
364
- return `${phone}@s.whatsapp.net`;
365
- }
366
- return null;
367
- }
368
- const cleaned = uid.replace(/\D/g, '');
369
- return cleaned ? `${cleaned}@s.whatsapp.net` : null;
370
- }
371
- }
372
- //# sourceMappingURL=WhatsApp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WhatsApp.js","sourceRoot":"","sources":["../../src/WhatsApp.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- /**
2
- * @file store/driver/FileEngine.ts
3
- * @description Engine de persistencia en sistema de archivos local
4
- */
5
- import type { Engine } from '../../store/engine';
6
- /**
7
- * @description
8
- * Engine de persistencia en sistema de archivos.
9
- * Almacena texto plano (JSON stringified).
10
- *
11
- * Filesystem persistence engine.
12
- * Stores plain text (JSON stringified).
13
- *
14
- * @example
15
- * const engine = new FileEngine('.baileys/5491112345678');
16
- * await engine.set('contact/123', '{"name":"John"}');
17
- * const data = await engine.get('contact/123');
18
- */
19
- export declare class FileEngine implements Engine {
20
- private readonly _base;
21
- constructor(_base?: string);
22
- /** @description Obtiene un valor por su key. / Retrieves a value by its key. */
23
- get(key: string): Promise<string | null>;
24
- /**
25
- * @description Guarda o elimina un valor. Si value es null, elimina la key como archivo y como directorio recursivamente.
26
- * Saves or deletes a value. If value is null, removes the key as file and as directory recursively.
27
- */
28
- set(key: string, value: string | null): Promise<void>;
29
- /**
30
- * @description Lista keys bajo un prefijo, ordenados por más reciente.
31
- * Lists keys under a prefix, ordered by most recent.
32
- */
33
- list(prefix: string, offset?: number, limit?: number): Promise<string[]>;
34
- }
@@ -1,82 +0,0 @@
1
- /**
2
- * @file store/driver/FileEngine.ts
3
- * @description Engine de persistencia en sistema de archivos local
4
- */
5
- import { mkdir, readdir, readFile, rm, stat, writeFile } from 'node:fs/promises';
6
- import { dirname, join } from 'node:path';
7
- /**
8
- * @description
9
- * Engine de persistencia en sistema de archivos.
10
- * Almacena texto plano (JSON stringified).
11
- *
12
- * Filesystem persistence engine.
13
- * Stores plain text (JSON stringified).
14
- *
15
- * @example
16
- * const engine = new FileEngine('.baileys/5491112345678');
17
- * await engine.set('contact/123', '{"name":"John"}');
18
- * const data = await engine.get('contact/123');
19
- */
20
- export class FileEngine {
21
- constructor(_base = '.baileys/default') {
22
- this._base = _base;
23
- }
24
- /** @description Obtiene un valor por su key. / Retrieves a value by its key. */
25
- async get(key) {
26
- try {
27
- return await readFile(join(this._base, key.replace(/@/g, '_at_')), 'utf-8');
28
- }
29
- catch {
30
- return null;
31
- }
32
- }
33
- /**
34
- * @description Guarda o elimina un valor. Si value es null, elimina la key como archivo y como directorio recursivamente.
35
- * Saves or deletes a value. If value is null, removes the key as file and as directory recursively.
36
- */
37
- async set(key, value) {
38
- const path = join(this._base, key.replace(/@/g, '_at_'));
39
- if (value) {
40
- await mkdir(dirname(path), { recursive: true });
41
- await writeFile(path, value, 'utf-8');
42
- }
43
- else {
44
- try {
45
- await rm(path, { recursive: true, force: true });
46
- }
47
- catch { /* already deleted */ }
48
- }
49
- }
50
- /**
51
- * @description Lista keys bajo un prefijo, ordenados por más reciente.
52
- * Lists keys under a prefix, ordered by most recent.
53
- */
54
- async list(prefix, offset = 0, limit = 50) {
55
- const base = join(this._base, prefix.replace(/@/g, '_at_'));
56
- try {
57
- const items = [];
58
- const entries = await readdir(base, { withFileTypes: true, recursive: true });
59
- for (const file of entries) {
60
- if (!file.isFile())
61
- continue;
62
- const parent = file.parentPath || file.path || base;
63
- const path = join(parent, file.name);
64
- try {
65
- items.push({
66
- key: path.slice(this._base.length + 1).replace(/_at_/g, '@'),
67
- mtime: (await stat(path)).mtimeMs,
68
- });
69
- }
70
- catch { /* stat may fail for transient files */ }
71
- }
72
- return items
73
- .sort((a, b) => b.mtime - a.mtime)
74
- .slice(offset, offset + limit)
75
- .map((f) => f.key);
76
- }
77
- catch {
78
- return [];
79
- }
80
- }
81
- }
82
- //# sourceMappingURL=FileEngine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileEngine.js","sourceRoot":"","sources":["../../../../src/store/driver/FileEngine.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- /**
2
- * @file store/driver/RedisEngine.ts
3
- * @description Engine de persistencia con Redis
4
- */
5
- import type { Engine } from '../../store/engine';
6
- /**
7
- * @description Interface mínima del cliente Redis (compatible con ioredis y redis).
8
- * Minimal Redis client interface (compatible with ioredis and redis).
9
- */
10
- export interface RedisClient {
11
- get(key: string): Promise<string | null>;
12
- set(key: string, value: string): Promise<unknown>;
13
- del(key: string | string[]): Promise<unknown>;
14
- scan(cursor: number | string, ...args: unknown[]): Promise<[string, string[]]>;
15
- }
16
- /**
17
- * @description
18
- * Engine de persistencia con Redis.
19
- * Recibe una conexión existente de ioredis o redis.
20
- *
21
- * Redis persistence engine.
22
- * Receives an existing ioredis or redis connection.
23
- *
24
- * @example
25
- * import Redis from 'ioredis';
26
- * const client = new Redis();
27
- * const engine = new RedisEngine(client, 'wa:5491112345678');
28
- * await engine.set('contact/123', '{"name":"John"}');
29
- */
30
- export declare class RedisEngine implements Engine {
31
- private readonly _client;
32
- private readonly _prefix;
33
- constructor(_client: RedisClient, _prefix?: string);
34
- /** @description Obtiene un valor por su key. / Retrieves a value by its key. */
35
- get(key: string): Promise<string | null>;
36
- /**
37
- * @description Guarda o elimina un valor. Si value es null, elimina la key y todas las sub-keys con ese prefijo.
38
- * Saves or deletes a value. If value is null, deletes the key and all sub-keys matching the prefix.
39
- */
40
- set(key: string, value: string | null): Promise<void>;
41
- /**
42
- * @description Lista keys bajo un prefijo.
43
- * Lists keys under a prefix.
44
- * @note Redis SCAN no garantiza orden. / Redis SCAN does not guarantee order.
45
- */
46
- list(prefix: string, offset?: number, limit?: number): Promise<string[]>;
47
- }
@@ -1,66 +0,0 @@
1
- /**
2
- * @file store/driver/RedisEngine.ts
3
- * @description Engine de persistencia con Redis
4
- */
5
- /**
6
- * @description
7
- * Engine de persistencia con Redis.
8
- * Recibe una conexión existente de ioredis o redis.
9
- *
10
- * Redis persistence engine.
11
- * Receives an existing ioredis or redis connection.
12
- *
13
- * @example
14
- * import Redis from 'ioredis';
15
- * const client = new Redis();
16
- * const engine = new RedisEngine(client, 'wa:5491112345678');
17
- * await engine.set('contact/123', '{"name":"John"}');
18
- */
19
- export class RedisEngine {
20
- constructor(_client, _prefix = 'wa:default') {
21
- this._client = _client;
22
- this._prefix = _prefix;
23
- }
24
- /** @description Obtiene un valor por su key. / Retrieves a value by its key. */
25
- async get(key) {
26
- return this._client.get(`${this._prefix}:${key}`);
27
- }
28
- /**
29
- * @description Guarda o elimina un valor. Si value es null, elimina la key y todas las sub-keys con ese prefijo.
30
- * Saves or deletes a value. If value is null, deletes the key and all sub-keys matching the prefix.
31
- */
32
- async set(key, value) {
33
- const full_key = `${this._prefix}:${key}`;
34
- if (value) {
35
- await this._client.set(full_key, value);
36
- }
37
- else {
38
- await this._client.del(full_key);
39
- const pattern = `${full_key}/*`;
40
- let cursor = '0';
41
- do {
42
- const [next, batch] = await this._client.scan(cursor, 'MATCH', pattern, 'COUNT', 100);
43
- cursor = next;
44
- if (batch.length)
45
- await this._client.del(batch);
46
- } while (cursor !== '0');
47
- }
48
- }
49
- /**
50
- * @description Lista keys bajo un prefijo.
51
- * Lists keys under a prefix.
52
- * @note Redis SCAN no garantiza orden. / Redis SCAN does not guarantee order.
53
- */
54
- async list(prefix, offset = 0, limit = 50) {
55
- const pattern = `${this._prefix}:${prefix}*`;
56
- const keys = [];
57
- let cursor = '0';
58
- do {
59
- const [next, batch] = await this._client.scan(cursor, 'MATCH', pattern, 'COUNT', 100);
60
- cursor = next;
61
- keys.push(...batch);
62
- } while (cursor !== '0' && keys.length < offset + limit + 100);
63
- return keys.map((k) => k.slice(this._prefix.length + 1)).slice(offset, offset + limit);
64
- }
65
- }
66
- //# sourceMappingURL=RedisEngine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RedisEngine.js","sourceRoot":"","sources":["../../../../src/store/driver/RedisEngine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,WAAW;IACpB,YAA6B,OAAoB,EAAmB,UAAkB,YAAY;QAArE,YAAO,GAAP,OAAO,CAAa;QAAmB,YAAO,GAAP,OAAO,CAAuB;IAAI,CAAC;IAEvG,gFAAgF;IAChF,KAAK,CAAC,GAAG,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAoB;QACvC,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC;QAC1C,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,GAAG,QAAQ,IAAI,CAAC;YAChC,IAAI,MAAM,GAAG,GAAG,CAAC;YACjB,GAAG,CAAC;gBACA,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;gBACtF,MAAM,GAAG,IAAI,CAAC;gBACd,IAAI,KAAK,CAAC,MAAM;oBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC,QAAQ,MAAM,KAAK,GAAG,EAAE;QAC7B,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE;QAC7C,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,GAAG,CAAC;QAC7C,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,MAAM,GAAG,GAAG,CAAC;QACjB,GAAG,CAAC;YACA,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACtF,MAAM,GAAG,IAAI,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACxB,CAAC,QAAQ,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,GAAG,EAAE;QAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;IAC3F,CAAC;CACJ"}