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