@arcaelas/whatsapp 1.4.0 → 2.1.0

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 (41) hide show
  1. package/build/cjs/Chat.d.ts +199 -217
  2. package/build/cjs/Chat.js +151 -274
  3. package/build/cjs/Chat.js.map +1 -1
  4. package/build/cjs/Contact.d.ts +455 -148
  5. package/build/cjs/Contact.js +74 -103
  6. package/build/cjs/Contact.js.map +1 -1
  7. package/build/cjs/Message.d.ts +587 -265
  8. package/build/cjs/Message.js +304 -254
  9. package/build/cjs/Message.js.map +1 -1
  10. package/build/cjs/WhatsApp.d.ts +19 -7
  11. package/build/cjs/WhatsApp.js +88 -80
  12. package/build/cjs/WhatsApp.js.map +1 -1
  13. package/build/cjs/index.d.ts +2 -2
  14. package/build/cjs/store/driver/FileEngine.d.ts +13 -2
  15. package/build/cjs/store/driver/FileEngine.js +15 -19
  16. package/build/cjs/store/driver/FileEngine.js.map +1 -1
  17. package/build/cjs/store/driver/RedisEngine.d.ts +13 -4
  18. package/build/cjs/store/driver/RedisEngine.js +23 -22
  19. package/build/cjs/store/driver/RedisEngine.js.map +1 -1
  20. package/build/cjs/store/engine.d.ts +9 -10
  21. package/build/esm/Chat.d.ts +199 -217
  22. package/build/esm/Chat.js +151 -273
  23. package/build/esm/Chat.js.map +1 -1
  24. package/build/esm/Contact.d.ts +455 -148
  25. package/build/esm/Contact.js +74 -102
  26. package/build/esm/Contact.js.map +1 -1
  27. package/build/esm/Message.d.ts +587 -265
  28. package/build/esm/Message.js +305 -254
  29. package/build/esm/Message.js.map +1 -1
  30. package/build/esm/WhatsApp.d.ts +19 -7
  31. package/build/esm/WhatsApp.js +91 -83
  32. package/build/esm/WhatsApp.js.map +1 -1
  33. package/build/esm/index.d.ts +2 -2
  34. package/build/esm/store/driver/FileEngine.d.ts +13 -2
  35. package/build/esm/store/driver/FileEngine.js +15 -19
  36. package/build/esm/store/driver/FileEngine.js.map +1 -1
  37. package/build/esm/store/driver/RedisEngine.d.ts +13 -4
  38. package/build/esm/store/driver/RedisEngine.js +23 -22
  39. package/build/esm/store/driver/RedisEngine.js.map +1 -1
  40. package/build/esm/store/engine.d.ts +9 -10
  41. package/package.json +2 -2
package/build/esm/Chat.js CHANGED
@@ -3,79 +3,40 @@
3
3
  * @description Clase Chat para gestión de conversaciones de WhatsApp
4
4
  */
5
5
  import { BufferJSON } from 'baileys';
6
- /**
7
- * @description Construye IChat desde raw.
8
- * @param raw Objeto raw del chat.
9
- * @returns IChat normalizado.
10
- */
11
- export function build_chat(raw) {
12
- return {
13
- id: raw.id,
14
- type: raw.id.endsWith('@g.us') ? 'group' : 'contact',
15
- name: raw.name ?? raw.displayName ?? raw.id.split('@')[0],
16
- content: raw.description ?? '',
17
- pined: raw.pinned !== null && raw.pinned !== undefined,
18
- archived: raw.archived ?? false,
19
- muted: raw.muteEndTime ?? false,
20
- readed: (raw.unreadCount === 0 || raw.unreadCount === null) && !raw.markedAsUnread,
21
- readonly: raw.readOnly ?? false,
22
- labels: [],
23
- raw,
24
- };
25
- }
26
6
  /**
27
7
  * @description
28
8
  * Clase base para representar una conversación de WhatsApp.
29
- * Usar Chat.get() para obtener instancias.
9
+ * Base class representing a WhatsApp conversation.
30
10
  */
31
11
  export class Chat {
32
- constructor(data) {
33
- this.raw = data.raw;
34
- }
35
- /** JID único del chat */
36
- get id() {
37
- return this.raw.id;
38
- }
39
- /** Tipo de chat */
40
- get type() {
41
- return this.raw.id.endsWith('@g.us') ? 'group' : 'contact';
42
- }
43
- /** Nombre del chat */
44
- get name() {
45
- return this.raw.name ?? this.raw.displayName ?? this.raw.id.split('@')[0];
46
- }
47
- /** Descripción del chat/grupo */
48
- get content() {
49
- return this.raw.description ?? '';
50
- }
51
- /** Si está fijado */
52
- get pined() {
53
- return this.raw.pinned !== null && this.raw.pinned !== undefined;
54
- }
55
- /** Si está archivado */
56
- get archived() {
57
- return this.raw.archived ?? false;
58
- }
59
- /** Timestamp cuando expira el silencio o false */
60
- get muted() {
61
- return this.raw.muteEndTime ?? false;
62
- }
63
- /** Si está leído */
64
- get readed() {
65
- return (this.raw.unreadCount === 0 || this.raw.unreadCount === null) && !this.raw.markedAsUnread;
66
- }
67
- /** Si es solo lectura */
68
- get readonly() {
69
- return this.raw.readOnly ?? false;
12
+ constructor(raw) {
13
+ this.raw = raw;
70
14
  }
15
+ /** JID único del chat / Unique chat JID */
16
+ get id() { return this.raw.id; }
17
+ /** Tipo de chat / Chat type */
18
+ get type() { return this.raw.id.endsWith('@g.us') ? 'group' : 'contact'; }
19
+ /** Nombre del chat / Chat name */
20
+ get name() { return this.raw.name ?? this.raw.displayName ?? this.raw.id.split('@')[0]; }
21
+ /** Descripción del chat/grupo / Chat/group description */
22
+ get content() { return this.raw.description ?? ''; }
23
+ /** Si está fijado / Whether it's pinned */
24
+ get pinned() { return this.raw.pinned !== null && this.raw.pinned !== undefined; }
25
+ /** Si está archivado / Whether it's archived */
26
+ get archived() { return this.raw.archived ?? false; }
27
+ /** Timestamp cuando expira el silencio (0 = no silenciado) / Mute end timestamp (0 = not muted) */
28
+ get muted() { return this.raw.muteEndTime ?? 0; }
29
+ /** Si está leído / Whether it's read */
30
+ get read() { return (this.raw.unreadCount === 0 || this.raw.unreadCount === null) && !this.raw.markedAsUnread; }
31
+ /** Si es solo lectura / Whether it's read-only */
32
+ get readonly() { return this.raw.readOnly ?? false; }
71
33
  }
72
34
  /**
73
35
  * @description Factory que retorna la clase Chat enlazada al contexto.
36
+ * Factory that returns the Chat class bound to context.
74
37
  * @param wa Instancia de WhatsApp.
75
- * @returns Clase _Chat que extiende Chat.
76
38
  */
77
39
  export function chat(wa) {
78
- /** Obtiene el último mensaje raw del chat para chatModify */
79
40
  async function _last_messages(cid) {
80
41
  const messages_index = await wa.engine.get(`chat/${cid}/messages`);
81
42
  if (!messages_index)
@@ -92,65 +53,29 @@ export function chat(wa) {
92
53
  const _Chat = class extends Chat {
93
54
  /**
94
55
  * @description Obtiene un chat por su ID.
95
- * @param cid ID del chat (JID).
96
- * @returns Chat o null si no existe.
56
+ * Retrieves a chat by its ID.
97
57
  */
98
58
  static async get(cid) {
99
- const stored = await wa.engine.get(`chat/${cid}/index`);
59
+ const jid = await wa.resolveJID(cid);
60
+ if (!jid)
61
+ return null;
62
+ const stored = await wa.engine.get(`chat/${jid}/index`);
100
63
  if (stored)
101
64
  return new _Chat(JSON.parse(stored, BufferJSON.reviver));
102
- const contact = await wa.Contact.get(cid);
65
+ const contact = await wa.Contact.get(jid);
103
66
  if (!contact)
104
67
  return null;
105
- const raw = { id: cid, name: contact.name };
106
- const data = build_chat(raw);
107
- await wa.engine.set(`chat/${cid}/index`, JSON.stringify(data, BufferJSON.replacer));
108
- return new _Chat(data);
109
- }
110
- /**
111
- * @description Actualiza los datos del chat desde WhatsApp.
112
- * @param cid ID del chat.
113
- * @returns Chat actualizado o null.
114
- */
115
- static async refresh(cid) {
116
- if (!wa.socket)
117
- return null;
118
- const stored = await wa.engine.get(`chat/${cid}/index`);
119
- const data = stored ? JSON.parse(stored, BufferJSON.reviver) : build_chat({ id: cid });
120
- // Para grupos, obtener metadata actualizada
121
- if (cid.endsWith('@g.us')) {
122
- try {
123
- const meta = await wa.socket.groupMetadata(cid);
124
- data.raw.name = meta.subject;
125
- data.raw.description = meta.desc ?? null;
126
- data.raw.participant = meta.participants.map((p) => ({ id: p.id, admin: p.admin ?? null }));
127
- data.raw.createdBy = meta.owner ?? null;
128
- data.raw.createdAt = meta.creation ?? null;
129
- data.name = meta.subject;
130
- data.content = meta.desc ?? '';
131
- }
132
- catch { /* group metadata may fail */ }
133
- }
134
- else {
135
- // Para contactos individuales, actualizar desde Contact
136
- const contact = await wa.Contact.refresh(cid);
137
- if (contact) {
138
- data.raw.name = contact.name;
139
- data.name = contact.name;
140
- }
141
- }
142
- await wa.engine.set(`chat/${cid}/index`, JSON.stringify(data, BufferJSON.replacer));
143
- return new _Chat(data);
68
+ const raw = { id: jid, name: contact.name };
69
+ await wa.engine.set(`chat/${jid}/index`, JSON.stringify(raw, BufferJSON.replacer));
70
+ return new _Chat(raw);
144
71
  }
145
72
  /**
146
73
  * @description Obtiene chats paginados.
147
- * @param offset Inicio de paginación.
148
- * @param limit Cantidad máxima de resultados.
149
- * @returns Array de chats.
74
+ * Retrieves paginated chats.
150
75
  */
151
- static async paginate(offset = 0, limit = 50) {
76
+ static async list(offset = 0, limit = 50) {
152
77
  const chats = [];
153
- for (const key of await wa.engine.list('chat/', offset, limit, '/index')) {
78
+ for (const key of await wa.engine.list('chat/', offset, limit)) {
154
79
  const stored = await wa.engine.get(key);
155
80
  if (stored)
156
81
  chats.push(new _Chat(JSON.parse(stored, BufferJSON.reviver)));
@@ -158,233 +83,186 @@ export function chat(wa) {
158
83
  return chats;
159
84
  }
160
85
  /**
161
- * @description Fija o desfija un chat.
162
- * @param cid ID del chat.
163
- * @param value true para fijar, false para desfijar.
164
- * @returns true si se actualizó correctamente.
86
+ * @description Fija o desfija un chat por su ID.
87
+ * Pins or unpins a chat by its ID.
165
88
  */
166
89
  static async pin(cid, value) {
167
- if (!wa.socket)
168
- return false;
169
- const last_messages = await _last_messages(cid);
170
- await wa.socket.chatModify({ pin: value, lastMessages: last_messages }, cid);
171
- const stored = await wa.engine.get(`chat/${cid}/index`);
172
- if (!stored)
173
- return true;
174
- const data = JSON.parse(stored, BufferJSON.reviver);
175
- data.raw.pinned = value ? Date.now() : null;
176
- data.pined = value;
177
- await wa.engine.set(`chat/${cid}/index`, JSON.stringify(data, BufferJSON.replacer));
178
- return true;
90
+ const chat = await _Chat.get(cid);
91
+ return chat ? chat.pin(value) : false;
179
92
  }
180
93
  /**
181
- * @description Archiva o desarchiva un chat.
182
- * @param cid ID del chat.
183
- * @param value true para archivar, false para desarchivar.
184
- * @returns true si se actualizó correctamente.
94
+ * @description Archiva o desarchiva un chat por su ID.
95
+ * Archives or unarchives a chat by its ID.
185
96
  */
186
97
  static async archive(cid, value) {
187
- if (!wa.socket)
188
- return false;
189
- const last_messages = await _last_messages(cid);
190
- await wa.socket.chatModify({ archive: value, lastMessages: last_messages }, cid);
191
- const stored = await wa.engine.get(`chat/${cid}/index`);
192
- if (!stored)
193
- return true;
194
- const data = JSON.parse(stored, BufferJSON.reviver);
195
- data.raw.archived = value;
196
- data.archived = value;
197
- await wa.engine.set(`chat/${cid}/index`, JSON.stringify(data, BufferJSON.replacer));
198
- return true;
98
+ const chat = await _Chat.get(cid);
99
+ return chat ? chat.archive(value) : false;
199
100
  }
200
101
  /**
201
- * @description Silencia o quita silencio de un chat.
202
- * @param cid ID del chat.
203
- * @param duration Duración en milisegundos (0 o null para quitar silencio).
204
- * @returns true si se actualizó correctamente.
102
+ * @description Silencia o quita silencio de un chat por su ID.
103
+ * Mutes or unmutes a chat by its ID.
205
104
  */
206
105
  static async mute(cid, duration) {
207
- if (!wa.socket)
208
- return false;
209
- const mute_end = duration ? Date.now() + duration : null;
210
- const last_messages = await _last_messages(cid);
211
- await wa.socket.chatModify({ mute: mute_end, lastMessages: last_messages }, cid);
212
- const stored = await wa.engine.get(`chat/${cid}/index`);
213
- if (!stored)
214
- return true;
215
- const data = JSON.parse(stored, BufferJSON.reviver);
216
- data.raw.muteEndTime = mute_end;
217
- data.muted = mute_end ?? false;
218
- await wa.engine.set(`chat/${cid}/index`, JSON.stringify(data, BufferJSON.replacer));
219
- return true;
106
+ const chat = await _Chat.get(cid);
107
+ return chat ? chat.mute(duration) : false;
220
108
  }
221
109
  /**
222
- * @description Marca un chat como leído.
223
- * @param cid ID del chat.
224
- * @returns true si se marcó correctamente.
110
+ * @description Marca un chat como leido por su ID.
111
+ * Marks a chat as read by its ID.
225
112
  */
226
113
  static async seen(cid) {
227
- if (!wa.socket)
228
- return false;
229
- const last_messages = await _last_messages(cid);
230
- if (!last_messages.length)
231
- return false;
232
- const msg = last_messages[0];
233
- await wa.socket.readMessages([{ remoteJid: cid, id: msg.key.id, participant: msg.key.fromMe ? undefined : msg.key.remoteJid }]);
234
- // Actualizar estado del chat
235
- const stored = await wa.engine.get(`chat/${cid}/index`);
236
- if (stored) {
237
- const data = JSON.parse(stored, BufferJSON.reviver);
238
- data.raw.unreadCount = 0;
239
- data.raw.markedAsUnread = false;
240
- data.readed = true;
241
- await wa.engine.set(`chat/${cid}/index`, JSON.stringify(data, BufferJSON.replacer));
242
- }
243
- return true;
114
+ const chat = await _Chat.get(cid);
115
+ return chat ? chat.seen() : false;
244
116
  }
245
117
  /**
246
- * @description Limpia todos los datos del chat del storage (cascade delete).
247
- * @param cid ID del chat.
118
+ * @description Elimina un chat por su ID.
119
+ * Removes a chat by its ID.
248
120
  */
249
- static async cascade_delete(cid) {
250
- await wa.engine.delete_prefix(`chat/${cid}/`);
121
+ static async remove(cid) {
122
+ const chat = await _Chat.get(cid);
123
+ return chat ? chat.remove() : false;
251
124
  }
252
125
  /**
253
- * @description Elimina un chat con cascade delete.
254
- * @param cid ID del chat.
255
- * @returns true si se eliminó correctamente.
126
+ * @description Actualiza los datos del chat desde WhatsApp.
127
+ * Refreshes chat data from WhatsApp.
256
128
  */
257
- static async remove(cid) {
129
+ async refresh() {
258
130
  if (!wa.socket)
259
- return false;
260
- const stored = await wa.engine.get(`chat/${cid}/index`);
261
- if (!stored)
262
- return false;
263
- const data = JSON.parse(stored, BufferJSON.reviver);
264
- if (data.type === 'group') {
265
- await wa.socket.groupLeave(cid);
131
+ return null;
132
+ if (this.id.endsWith('@g.us')) {
133
+ try {
134
+ const meta = await wa.socket.groupMetadata(this.id);
135
+ this.raw.name = meta.subject;
136
+ this.raw.description = meta.desc ?? null;
137
+ this.raw.participant = meta.participants.map((p) => ({ id: p.id, admin: p.admin ?? null }));
138
+ this.raw.createdBy = meta.owner ?? null;
139
+ this.raw.createdAt = meta.creation ?? null;
140
+ }
141
+ catch { /* group metadata may fail */ }
266
142
  }
267
143
  else {
268
- await wa.socket.chatModify({ delete: true, lastMessages: [] }, cid);
144
+ const contact = await wa.Contact.get(this.id);
145
+ if (contact) {
146
+ await contact.refresh();
147
+ this.raw.name = contact.name;
148
+ }
269
149
  }
270
- await _Chat.cascade_delete(cid);
150
+ await wa.engine.set(`chat/${this.id}/index`, JSON.stringify(this.raw, BufferJSON.replacer));
151
+ return this;
152
+ }
153
+ /**
154
+ * @description Elimina el chat con cascade delete.
155
+ * Deletes the chat with cascade delete.
156
+ */
157
+ async remove() {
158
+ if (!wa.socket)
159
+ return false;
160
+ if (this.type === 'group')
161
+ await wa.socket.groupLeave(this.id);
162
+ else
163
+ await wa.socket.chatModify({ delete: true, lastMessages: [] }, this.id);
164
+ await wa.engine.set(`chat/${this.id}`, null);
271
165
  return true;
272
166
  }
273
167
  /**
274
- * @description Agrega un mensaje al índice del chat.
275
- * @param cid ID del chat.
276
- * @param mid ID del mensaje.
277
- * @param timestamp Timestamp de creación.
168
+ * @description Fija o desfija el chat.
169
+ * Pins or unpins the chat.
278
170
  */
279
- static async add_message(cid, mid, timestamp) {
280
- const key = `chat/${cid}/messages`;
281
- const line = `${timestamp} ${mid}`;
282
- const current = await wa.engine.get(key);
283
- await wa.engine.set(key, current ? `${line}\n${current}` : line);
171
+ async pin(value) {
172
+ if (!wa.socket)
173
+ return false;
174
+ const last_messages = await _last_messages(this.id);
175
+ await wa.socket.chatModify({ pin: value, lastMessages: last_messages }, this.id);
176
+ this.raw.pinned = value ? Date.now() : null;
177
+ await wa.engine.set(`chat/${this.id}/index`, JSON.stringify(this.raw, BufferJSON.replacer));
178
+ return true;
284
179
  }
285
180
  /**
286
- * @description Elimina un mensaje del índice del chat.
287
- * @param cid ID del chat.
288
- * @param mid ID del mensaje.
181
+ * @description Archiva o desarchiva el chat.
182
+ * Archives or unarchives the chat.
289
183
  */
290
- static async remove_message(cid, mid) {
291
- const key = `chat/${cid}/messages`;
292
- const content = await wa.engine.get(key);
293
- if (!content)
294
- return;
295
- const filtered = content
296
- .trim()
297
- .split('\n')
298
- .filter((line) => !line.endsWith(` ${mid}`))
299
- .join('\n');
300
- await wa.engine.set(key, filtered || null);
184
+ async archive(value) {
185
+ if (!wa.socket)
186
+ return false;
187
+ const last_messages = await _last_messages(this.id);
188
+ await wa.socket.chatModify({ archive: value, lastMessages: last_messages }, this.id);
189
+ this.raw.archived = value;
190
+ await wa.engine.set(`chat/${this.id}/index`, JSON.stringify(this.raw, BufferJSON.replacer));
191
+ return true;
301
192
  }
302
193
  /**
303
- * @description Lista IDs de mensajes del chat (paginado).
304
- * @param cid ID del chat.
305
- * @param offset Inicio de paginación.
306
- * @param limit Cantidad máxima.
307
- * @returns Array de IDs de mensajes.
194
+ * @description Silencia o quita silencio del chat.
195
+ * Mutes or unmutes the chat.
196
+ * @param duration Duración en ms (0 o null para quitar silencio) / Duration in ms (0 or null to unmute).
308
197
  */
309
- static async list_messages(cid, offset = 0, limit = 50) {
310
- const content = await wa.engine.get(`chat/${cid}/messages`);
311
- if (!content)
312
- return [];
313
- return content
314
- .trim()
315
- .split('\n')
316
- .slice(offset, offset + limit)
317
- .map((line) => line.split(' ')[1])
318
- .filter(Boolean);
198
+ async mute(duration) {
199
+ if (!wa.socket)
200
+ return false;
201
+ const mute_end = duration ? Date.now() + duration : null;
202
+ const last_messages = await _last_messages(this.id);
203
+ await wa.socket.chatModify({ mute: mute_end, lastMessages: last_messages }, this.id);
204
+ this.raw.muteEndTime = mute_end;
205
+ await wa.engine.set(`chat/${this.id}/index`, JSON.stringify(this.raw, BufferJSON.replacer));
206
+ return true;
319
207
  }
320
208
  /**
321
- * @description Cuenta mensajes del chat.
322
- * @param cid ID del chat.
323
- * @returns Cantidad de mensajes.
209
+ * @description Marca el chat como leído.
210
+ * Marks the chat as read.
324
211
  */
325
- static async count_messages(cid) {
326
- const content = await wa.engine.get(`chat/${cid}/messages`);
327
- if (!content)
328
- return 0;
329
- return content.trim().split('\n').filter(Boolean).length;
212
+ async seen() {
213
+ if (!wa.socket)
214
+ return false;
215
+ const last_messages = await _last_messages(this.id);
216
+ if (!last_messages.length)
217
+ return false;
218
+ const msg = last_messages[0];
219
+ const key = msg.key ?? {};
220
+ await wa.socket.readMessages([{ remoteJid: this.id, id: key.id ?? '', participant: key.fromMe ? undefined : key.remoteJid ?? undefined }]);
221
+ this.raw.unreadCount = 0;
222
+ this.raw.markedAsUnread = false;
223
+ await wa.engine.set(`chat/${this.id}/index`, JSON.stringify(this.raw, BufferJSON.replacer));
224
+ return true;
330
225
  }
331
226
  /**
332
- * @description Obtiene los miembros de un chat.
333
- * @param cid ID del chat.
334
- * @param offset Inicio de paginación.
335
- * @param limit Cantidad máxima de resultados.
336
- * @returns Array de contactos.
227
+ * @description Obtiene los miembros del chat.
228
+ * Gets chat members.
337
229
  */
338
- static async members(cid, offset = 0, limit = 50) {
339
- if (!cid.endsWith('@g.us') || !wa.socket) {
340
- const contact = await wa.Contact.get(cid);
230
+ async members(offset = 0, limit = 50) {
231
+ if (!this.id.endsWith('@g.us') || !wa.socket) {
232
+ const contact = await wa.Contact.get(this.id);
341
233
  return contact ? [contact] : [];
342
234
  }
343
235
  const members = [];
344
- for (const p of (await wa.socket.groupMetadata(cid)).participants.slice(offset, offset + limit)) {
236
+ for (const p of (await wa.socket.groupMetadata(this.id)).participants.slice(offset, offset + limit)) {
345
237
  const existing = await wa.Contact.get(p.id);
346
238
  if (existing) {
347
239
  members.push(existing);
348
240
  }
349
241
  else {
350
242
  const raw = { id: p.id };
351
- const data = build_contact(raw);
352
- await wa.engine.set(`contact/${p.id}/index`, JSON.stringify(data, BufferJSON.replacer));
353
- members.push(new wa.Contact(data));
243
+ await wa.engine.set(`contact/${p.id}/index`, JSON.stringify(raw, BufferJSON.replacer));
244
+ members.push(new wa.Contact(raw));
354
245
  }
355
246
  }
356
247
  return members;
357
248
  }
358
249
  /**
359
250
  * @description Obtiene mensajes del chat (paginados).
360
- * @param offset Inicio de paginación.
361
- * @param limit Cantidad máxima de resultados.
362
- * @returns Array de mensajes.
251
+ * Gets chat messages (paginated).
363
252
  */
364
253
  async messages(offset = 0, limit = 50) {
365
- const ids = await _Chat.list_messages(this.id, offset, limit);
366
- const messages = [];
367
- for (const mid of ids) {
368
- const msg = await wa.Message.get(this.id, mid);
369
- if (msg)
370
- messages.push(msg);
371
- }
372
- return messages;
254
+ return wa.Message.list(this.id, offset, limit);
373
255
  }
374
256
  /**
375
- * @description Actualiza los datos del chat desde WhatsApp.
376
- * @returns this con datos actualizados, o null si falla.
257
+ * @description Obtiene el contacto asociado al chat (solo chats individuales).
258
+ * Gets the contact associated with the chat (individual chats only).
377
259
  */
378
- async refresh() {
379
- const updated = await _Chat.refresh(this.id);
380
- if (!updated)
260
+ async contact() {
261
+ if (this.type === 'group')
381
262
  return null;
382
- Object.assign(this.raw, updated.raw);
383
- return this;
263
+ return wa.Contact.get(this.id);
384
264
  }
385
265
  };
386
266
  return _Chat;
387
267
  }
388
- // Import para la factory
389
- import { build_contact } from './Contact';
390
268
  //# sourceMappingURL=Chat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.js","sourceRoot":"","sources":["../../src/Chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chat.js","sourceRoot":"","sources":["../../src/Chat.ts"],"names":[],"mappings":"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"}