@arcaelas/whatsapp 1.2.2 → 1.4.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.
- package/build/{Chat.js → cjs/Chat.js} +1 -1
- package/build/cjs/Chat.js.map +1 -0
- package/build/{Contact.d.ts → cjs/Contact.d.ts} +28 -0
- package/build/{Contact.js → cjs/Contact.js} +6 -5
- package/build/cjs/Contact.js.map +1 -0
- package/build/{Message.d.ts → cjs/Message.d.ts} +62 -7
- package/build/{Message.js → cjs/Message.js} +42 -22
- package/build/cjs/Message.js.map +1 -0
- package/build/{WhatsApp.js → cjs/WhatsApp.js} +11 -6
- package/build/cjs/WhatsApp.js.map +1 -0
- package/build/cjs/index.js +17 -0
- package/build/cjs/index.js.map +1 -0
- package/build/cjs/package.json +1 -0
- package/build/{store → cjs/store}/driver/FileEngine.d.ts +1 -1
- package/build/{store → cjs/store}/driver/FileEngine.js +2 -2
- package/build/cjs/store/driver/FileEngine.js.map +1 -0
- package/build/{store → cjs/store}/driver/RedisEngine.d.ts +1 -1
- package/build/cjs/store/driver/RedisEngine.js.map +1 -0
- package/build/cjs/store/engine.js.map +1 -0
- package/build/cjs/store/index.d.ts +8 -0
- package/build/{store → cjs/store}/index.js +2 -2
- package/build/cjs/store/index.js.map +1 -0
- package/build/esm/Chat.d.ts +335 -0
- package/build/esm/Chat.js +390 -0
- package/build/esm/Chat.js.map +1 -0
- package/build/esm/Contact.d.ts +856 -0
- package/build/esm/Contact.js +183 -0
- package/build/esm/Contact.js.map +1 -0
- package/build/esm/Message.d.ts +580 -0
- package/build/esm/Message.js +459 -0
- package/build/esm/Message.js.map +1 -0
- package/build/esm/WhatsApp.d.ts +68 -0
- package/build/esm/WhatsApp.js +364 -0
- package/build/esm/WhatsApp.js.map +1 -0
- package/build/esm/index.d.ts +13 -0
- package/build/esm/index.js +10 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/package.json +1 -0
- package/build/esm/store/driver/FileEngine.d.ts +23 -0
- package/build/esm/store/driver/FileEngine.js +86 -0
- package/build/esm/store/driver/FileEngine.js.map +1 -0
- package/build/esm/store/driver/RedisEngine.d.ts +38 -0
- package/build/esm/store/driver/RedisEngine.js +65 -0
- package/build/esm/store/driver/RedisEngine.js.map +1 -0
- package/build/esm/store/engine.d.ts +54 -0
- package/build/esm/store/engine.js +6 -0
- package/build/{store → esm/store}/engine.js.map +1 -1
- package/build/esm/store/index.d.ts +8 -0
- package/build/esm/store/index.js +7 -0
- package/build/esm/store/index.js.map +1 -0
- package/package.json +70 -58
- package/API.md +0 -776
- package/CHANGELOG.md +0 -53
- package/DOC.md +0 -532
- package/build/Chat.js.map +0 -1
- package/build/Contact.js.map +0 -1
- package/build/Message.js.map +0 -1
- package/build/WhatsApp.js.map +0 -1
- package/build/index.js +0 -2
- package/build/index.js.map +0 -7
- package/build/store/driver/FileEngine.js.map +0 -1
- package/build/store/driver/RedisEngine.js.map +0 -1
- package/build/store/index.d.ts +0 -8
- package/build/store/index.js.map +0 -1
- package/context7.json +0 -4
- package/tsconfig.json +0 -27
- /package/build/{Chat.d.ts → cjs/Chat.d.ts} +0 -0
- /package/build/{WhatsApp.d.ts → cjs/WhatsApp.d.ts} +0 -0
- /package/build/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/build/{store → cjs/store}/driver/RedisEngine.js +0 -0
- /package/build/{store → cjs/store}/engine.d.ts +0 -0
- /package/build/{store → cjs/store}/engine.js +0 -0
package/CHANGELOG.md
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# CHANGELOG
|
|
2
|
-
|
|
3
|
-
## 2025-07-26
|
|
4
|
-
|
|
5
|
-
### Features
|
|
6
|
-
|
|
7
|
-
- Implementar modelo de contactos y mejorar gestión de eventos de mensajería (07272cd)
|
|
8
|
-
- Modificar método reply() de mensajes para retornar instancia Message en lugar de boolean (07272cd)
|
|
9
|
-
|
|
10
|
-
### Refactor
|
|
11
|
-
|
|
12
|
-
- Separar manejo de eventos de socket en handlers específicos para mejor organización (07272cd)
|
|
13
|
-
- Optimizar gestión de eliminación de mensajes con deleteMedia condicional según tipo (07272cd)
|
|
14
|
-
- Simplificar métodos de mensaje eliminando funcionalidad redundante (07272cd)
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Historial anterior
|
|
19
|
-
|
|
20
|
-
### Features
|
|
21
|
-
|
|
22
|
-
- Permitir descripción personalizada del navegador en la inicialización del cliente WhatsApp (4ccad93)
|
|
23
|
-
- Emitir eventos de socket al middleware de proceso con contexto de store (9f8a033)
|
|
24
|
-
- Configurar agente de navegador macOS y agregar manejador de recuperación de mensajes (5f82eff)
|
|
25
|
-
- Agregar retraso de 5 segundos antes de solicitar código de emparejamiento (180dcb1)
|
|
26
|
-
- Implementar sistema de caché y reconexión automática para WhatsApp con node-cache (e458423)
|
|
27
|
-
- Agregar métodos de detección de rol, tipo y recuperación de contenido de mensajes (5273d4c)
|
|
28
|
-
- Agregar información de autor de mensaje y mejorar liberación de recursos en métodos de mensaje (b12da52)
|
|
29
|
-
|
|
30
|
-
### Fixes
|
|
31
|
-
|
|
32
|
-
- Hacer condicional la opción de navegador en la configuración de WASocket (b7c7b48)
|
|
33
|
-
- Mejorar manejo de conexión de socket con verificación explícita de estado y timeout más largo (a08e55f)
|
|
34
|
-
- Esperar conexión de socket antes de solicitar código de emparejamiento (7bd91f4)
|
|
35
|
-
- Mover inicialización del store después de configurar las opciones (9ed0bd0)
|
|
36
|
-
- Deshabilitar solicitud de código de emparejamiento y devolver placeholder NO-CODE en su lugar (02b9c26)
|
|
37
|
-
- Agregar llamadas de liberación a operaciones de socket y mejorar detalles de autor de mensaje (7f8a2dc)
|
|
38
|
-
|
|
39
|
-
### Refactor
|
|
40
|
-
|
|
41
|
-
- Optimizar manejo de eventos y agregar emisión de eventos de proceso en cliente WhatsApp (57a77ec)
|
|
42
|
-
- Simplificar login de WhatsApp para usar únicamente autenticación basada en código (c52fd97)
|
|
43
|
-
- Optimizar flujo de conexión de WhatsApp y eliminar emisiones de eventos redundantes (616a989)
|
|
44
|
-
- Simplificar manejo de conexión de WhatsApp y eliminar importaciones sin uso (ad6a158)
|
|
45
|
-
- Introducir getter raw para acceder a datos de mensaje y actualizar referencias (157490f)
|
|
46
|
-
- Agregar información de autor de mensaje y mejorar manejo de liberación de mutex (7fa54cc)
|
|
47
|
-
- Implementar patrón de liberación de recursos en métodos de chat y mensaje (15be77f)
|
|
48
|
-
|
|
49
|
-
### Docs
|
|
50
|
-
|
|
51
|
-
- Agregar comentarios JSDoc a métodos y propiedades de la clase Chat (0bd5cb0)
|
|
52
|
-
- Agregar JSDoc a la clase Base y sus métodos de serialización (f51b081)
|
|
53
|
-
- Agregar comentarios JSDoc a métodos e interfaces de la clase WhatsApp (c538750)
|
package/DOC.md
DELETED
|
@@ -1,532 +0,0 @@
|
|
|
1
|
-
# @arcaelas/whatsapp
|
|
2
|
-
|
|
3
|
-
Libreria para crear clientes de WhatsApp utilizando Baileys como proveedor WebSocket.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Flujo de Uso
|
|
8
|
-
|
|
9
|
-
El ciclo de vida de una conexion WhatsApp sigue 4 pasos bien definidos:
|
|
10
|
-
|
|
11
|
-
### 1. Inicializacion
|
|
12
|
-
|
|
13
|
-
```typescript
|
|
14
|
-
const wa = new WhatsApp({ phone: "56962816490" })
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
El constructor prepara toda la configuracion interna: el store, los factories de entidades (Contact, Chat, Message) y se suscribe a sus propios eventos (`this.on(...)`) para persistir automaticamente. **En este punto no hay conexion a WhatsApp ni contacto con Baileys.**
|
|
18
|
-
|
|
19
|
-
### 2. Conexion
|
|
20
|
-
|
|
21
|
-
```typescript
|
|
22
|
-
await wa.pair(code => console.log("Ingresa el codigo: %s", code))
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
El metodo `pair()` establece la conexion con WhatsApp. Si es primera vez, ejecuta el callback con el codigo de emparejamiento que el usuario debe ingresar en su telefono. Si ya existe una sesion valida, el callback nunca se ejecuta. **La promesa se resuelve cuando la conexion esta establecida.**
|
|
26
|
-
|
|
27
|
-
### 3. Listo para usar
|
|
28
|
-
|
|
29
|
-
```typescript
|
|
30
|
-
console.log("Conectado!")
|
|
31
|
-
// Ya puedes usar wa.on("message"), wa.Chat.text(), etc.
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Una vez que `pair()` resuelve, la instancia esta operativa. Puedes enviar mensajes, recibir eventos, y acceder a datos. Los mensajes entrantes comienzan a llegar inmediatamente.
|
|
35
|
-
|
|
36
|
-
### 4. Sincronizacion (opcional)
|
|
37
|
-
|
|
38
|
-
```typescript
|
|
39
|
-
await wa.sync(percent => console.log("Sincronizacion al %s%", percent))
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
Internamente, WhatsApp **siempre** sincroniza el historial y emite eventos `progress`. El metodo `sync()` simplemente espera hasta que esa sincronizacion termine (100%). Es util si necesitas garantizar que todos los contactos, chats y mensajes historicos esten disponibles antes de continuar.
|
|
43
|
-
|
|
44
|
-
### Resumen
|
|
45
|
-
|
|
46
|
-
| Metodo | Proposito | Obligatorio |
|
|
47
|
-
|--------|-----------|-------------|
|
|
48
|
-
| `new WhatsApp()` | Configurar la instancia | Si |
|
|
49
|
-
| `pair()` | Conectar a WhatsApp | Si |
|
|
50
|
-
| `sync()` | Esperar historial completo | No |
|
|
51
|
-
|
|
52
|
-
La separacion entre `pair()` y `sync()` permite que puedas empezar a recibir mensajes en tiempo real inmediatamente despues de conectar, sin esperar a que se descargue todo el historial.
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## Eventos
|
|
57
|
-
|
|
58
|
-
La clase `WhatsApp` extiende `EventEmitter<EventMap>`, por lo que los eventos se manejan directamente en la instancia. Puedes suscribirte **antes o despues** de `pair()`, es indiferente porque usa un EventEmitter propio, no el socket de Baileys.
|
|
59
|
-
|
|
60
|
-
### Eventos disponibles
|
|
61
|
-
|
|
62
|
-
| Evento | Payload | Descripcion |
|
|
63
|
-
|--------|---------|-------------|
|
|
64
|
-
| `open` | `void` | Conexion establecida. Usado internamente por `pair()` |
|
|
65
|
-
| `close` | `void` | Desconexion. Util para metricas o reintentos |
|
|
66
|
-
| `progress` | `number` | Progreso de sincronizacion (0-100). Usado internamente por `sync()` |
|
|
67
|
-
| `error` | `Error` | Error de conexion o autenticacion |
|
|
68
|
-
| | | |
|
|
69
|
-
| `contact:upsert` | `Contact` | Contacto nuevo o actualizado |
|
|
70
|
-
| | | |
|
|
71
|
-
| `chat:upsert` | `Chat` | Chat nuevo o actualizado |
|
|
72
|
-
| `chat:deleted` | `string` | ID del chat eliminado |
|
|
73
|
-
| | | |
|
|
74
|
-
| `message:created` | `Message` | Mensaje nuevo |
|
|
75
|
-
| `message:status` | `Message` | Cambio de estado (pending→sent→delivered→read) |
|
|
76
|
-
| `message:updated` | `Message` | Mensaje editado |
|
|
77
|
-
| `message:deleted` | `{ cid: string, mid: string }` | Mensaje eliminado |
|
|
78
|
-
| `message:reaction` | `Message` | Reaccion emoji al mensaje |
|
|
79
|
-
|
|
80
|
-
### Uso de eventos
|
|
81
|
-
|
|
82
|
-
```typescript
|
|
83
|
-
const wa = new WhatsApp({ phone: "56962816490" })
|
|
84
|
-
|
|
85
|
-
// Mensajes nuevos
|
|
86
|
-
wa.on("message:created", async (message) => {
|
|
87
|
-
const buffer = await message.content() // Siempre retorna Buffer
|
|
88
|
-
|
|
89
|
-
if (message.mime === "text/plain") {
|
|
90
|
-
const text = buffer.toString("utf-8")
|
|
91
|
-
console.log("Texto:", text)
|
|
92
|
-
} else if (message.mime === "application/json") {
|
|
93
|
-
const data = JSON.parse(buffer.toString())
|
|
94
|
-
console.log("JSON:", data) // location: {lat, lng}, poll: {content, items}
|
|
95
|
-
} else {
|
|
96
|
-
console.log("Media:", buffer.length, "bytes") // image/*, video/*, audio/*
|
|
97
|
-
}
|
|
98
|
-
})
|
|
99
|
-
|
|
100
|
-
// Cambios de estado del mensaje
|
|
101
|
-
wa.on("message:status", (message) => {
|
|
102
|
-
console.log(`Mensaje ${message.id}: ${message.status}`) // pending, sent, delivered, read
|
|
103
|
-
})
|
|
104
|
-
|
|
105
|
-
// Mensaje editado
|
|
106
|
-
wa.on("message:updated", async (message) => {
|
|
107
|
-
const text = (await message.content()).toString()
|
|
108
|
-
console.log("Editado:", text)
|
|
109
|
-
})
|
|
110
|
-
|
|
111
|
-
// Mensaje eliminado
|
|
112
|
-
wa.on("message:deleted", ({ cid, mid }) => {
|
|
113
|
-
console.log(`Eliminado: ${mid} en chat ${cid}`)
|
|
114
|
-
})
|
|
115
|
-
|
|
116
|
-
// Reaccion a mensaje
|
|
117
|
-
wa.on("message:reaction", (message) => {
|
|
118
|
-
console.log("Reaccion en mensaje:", message.id)
|
|
119
|
-
})
|
|
120
|
-
|
|
121
|
-
// Contactos y chats
|
|
122
|
-
wa.on("contact:upsert", (contact) => console.log("Contacto:", contact.name))
|
|
123
|
-
wa.on("chat:upsert", (chat) => console.log("Chat:", chat.name))
|
|
124
|
-
wa.on("chat:deleted", (cid) => console.log("Chat eliminado:", cid))
|
|
125
|
-
|
|
126
|
-
// Progreso de sincronizacion
|
|
127
|
-
wa.on("progress", (percent) => {
|
|
128
|
-
console.log("Sincronizacion:", percent + "%")
|
|
129
|
-
})
|
|
130
|
-
|
|
131
|
-
// Conexion y desconexion
|
|
132
|
-
wa.on("open", () => console.log("Conectado"))
|
|
133
|
-
wa.on("close", () => console.log("Desconectado"))
|
|
134
|
-
|
|
135
|
-
await wa.pair()
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### Arquitectura interna
|
|
139
|
-
|
|
140
|
-
```
|
|
141
|
-
BAILEYS (socket.ev.on)
|
|
142
|
-
│
|
|
143
|
-
▼
|
|
144
|
-
pair() ← Unico punto de contacto con Baileys
|
|
145
|
-
│ Recibe eventos Baileys
|
|
146
|
-
│ Transforma → new Contact/Chat/Message(data)
|
|
147
|
-
│ Reemplaza content() con buffer en memoria
|
|
148
|
-
│ Emite → this.emit("event:type", instance)
|
|
149
|
-
▼
|
|
150
|
-
EventEmitter (this)
|
|
151
|
-
│
|
|
152
|
-
├── Constructor (listener interno)
|
|
153
|
-
│ this.on("message:created", m => store.message.set(...))
|
|
154
|
-
│ this.on("contact:upsert", c => store.contact.set(...))
|
|
155
|
-
│ this.on("chat:upsert", ch => store.chat.set(...))
|
|
156
|
-
│
|
|
157
|
-
└── Usuario (listener externo)
|
|
158
|
-
wa.on("message:created", m => console.log(m))
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
**Flujo de datos:**
|
|
162
|
-
1. `pair()` recibe eventos de Baileys (`messages.upsert`, `contacts.upsert`, etc.)
|
|
163
|
-
2. `pair()` transforma los datos a instancias propias (Contact, Chat, Message)
|
|
164
|
-
3. `pair()` emite con `this.emit()` el evento correspondiente (`:created`, `:upsert`, etc.)
|
|
165
|
-
4. El constructor (listener interno) persiste automaticamente en el store
|
|
166
|
-
5. El usuario (listener externo) procesa segun su logica
|
|
167
|
-
|
|
168
|
-
**Ventajas:**
|
|
169
|
-
- `pair()` es el unico metodo que interactua con Baileys
|
|
170
|
-
- El resto de la libreria usa instancias propias, eventos propios
|
|
171
|
-
- El store se actualiza automaticamente via eventos internos
|
|
172
|
-
- El usuario tiene acceso a los mismos eventos sin conocer Baileys
|
|
173
|
-
|
|
174
|
-
**Virtualizacion de content():**
|
|
175
|
-
El metodo `content()` de cada mensaje se reemplaza en runtime con una funcion que retorna el buffer directamente desde memoria. Esto evita ir al store cuando el contenido ya fue descargado por `pair()`.
|
|
176
|
-
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
## Class WhatsApp
|
|
180
|
-
|
|
181
|
-
Clase principal para gestionar la conexion y comunicacion con WhatsApp.
|
|
182
|
-
|
|
183
|
-
##### Opciones de Configuracion
|
|
184
|
-
|
|
185
|
-
| Propiedad | Tipo | Default | Descripcion |
|
|
186
|
-
|-----------|------|---------|-------------|
|
|
187
|
-
| `phone` | `string` | - | Numero con prefijo de pais, ej: `5491155555555` (requerido para auth por codigo) |
|
|
188
|
-
| `engine` | `Engine` | `FileStore` | Engine de persistencia para credenciales. Por defecto usa FileStore en `.baileys/{phone}/` |
|
|
189
|
-
|
|
190
|
-
**Modo de autenticacion:** Si `phone` esta presente -> codigo. Si no -> QR.
|
|
191
|
-
|
|
192
|
-
##### Retorno del Constructor
|
|
193
|
-
|
|
194
|
-
| Propiedad | Tipo | Default | Descripcion |
|
|
195
|
-
|-----------|------|---------|-------------|
|
|
196
|
-
| `Contact` | `typeof Contact` | - | Clase Contact vinculada a esta instancia |
|
|
197
|
-
| `Chat` | `typeof Chat` | - | Clase Chat vinculada a esta instancia |
|
|
198
|
-
| `Message` | `typeof Message` | - | Clase Message vinculada a esta instancia |
|
|
199
|
-
| `pair` | `(cb?) => Promise<void>` | - | Funcion para completar autenticacion |
|
|
200
|
-
| `sync` | `(cb?) => Promise<void>` | - | Funcion para esperar sincronizacion completa |
|
|
201
|
-
| `on` | `(event, handler) => void` | - | Suscribirse a eventos |
|
|
202
|
-
| `off` | `(event, handler) => void` | - | Desuscribirse de eventos |
|
|
203
|
-
|
|
204
|
-
##### Funcion pair(callback)
|
|
205
|
-
|
|
206
|
-
| Escenario | Callback param | Ejecucion | Comportamiento |
|
|
207
|
-
|-----------|----------------|-----------|----------------|
|
|
208
|
-
| Sin `phone` (QR) | `Buffer` | Multiples veces | Imagen QR lista para mostrar, se renueva cada ~20s |
|
|
209
|
-
| Con `phone` (Code) | `string` | Una vez | Codigo de 8 caracteres para ingresar en WhatsApp |
|
|
210
|
-
| Sesion existente | - | No se ejecuta | Resuelve inmediatamente sin llamar callback |
|
|
211
|
-
|
|
212
|
-
**Notas:**
|
|
213
|
-
- En modo QR, el Buffer es una imagen PNG del codigo QR.
|
|
214
|
-
- En modo Code, el usuario debe ingresar el codigo en WhatsApp > Dispositivos vinculados > Vincular con numero.
|
|
215
|
-
- Si la autenticacion falla, `pair()` lanza una excepcion.
|
|
216
|
-
|
|
217
|
-
##### Funcion sync(callback)
|
|
218
|
-
|
|
219
|
-
Bloquea hasta que WhatsApp termine de sincronizar contactos, chats y mensajes.
|
|
220
|
-
|
|
221
|
-
| Escenario | Callback param | Ejecucion | Comportamiento |
|
|
222
|
-
|-----------|----------------|-----------|----------------|
|
|
223
|
-
| Sincronizando | `number` (0-100) | Multiples veces | Progreso de sincronizacion |
|
|
224
|
-
| Sincronizacion completa | `100` | Una vez final | Resuelve la promesa |
|
|
225
|
-
|
|
226
|
-
**Notas:**
|
|
227
|
-
- Llamar despues de `pair()` para esperar sincronizacion completa.
|
|
228
|
-
- El callback es opcional - sin callback solo bloquea hasta completar.
|
|
229
|
-
|
|
230
|
-
##### Eventos
|
|
231
|
-
|
|
232
|
-
Ver seccion [Eventos](#eventos) para detalles completos.
|
|
233
|
-
|
|
234
|
-
```typescript
|
|
235
|
-
// Modo QR
|
|
236
|
-
const wa = new WhatsApp()
|
|
237
|
-
|
|
238
|
-
wa.on('open', () => console.log('Conectado'))
|
|
239
|
-
wa.on('contact:upsert', (c) => console.log('Contacto:', c.name))
|
|
240
|
-
wa.on('chat:upsert', (ch) => console.log('Chat:', ch.name))
|
|
241
|
-
wa.on('message:created', (msg) => console.log('Mensaje:', msg.id))
|
|
242
|
-
|
|
243
|
-
await wa.pair((qr: Buffer) => {
|
|
244
|
-
fs.writeFileSync('qr.png', qr)
|
|
245
|
-
})
|
|
246
|
-
|
|
247
|
-
await wa.sync((progress) => {
|
|
248
|
-
console.log(`Sincronizando: ${progress}%`)
|
|
249
|
-
})
|
|
250
|
-
console.log('Sincronizacion completa')
|
|
251
|
-
|
|
252
|
-
// Modo Code
|
|
253
|
-
const wa = new WhatsApp({ phone: '5491155555555' })
|
|
254
|
-
|
|
255
|
-
await wa.pair((code: string) => {
|
|
256
|
-
console.log('Ingresa en WhatsApp:', code)
|
|
257
|
-
})
|
|
258
|
-
|
|
259
|
-
await wa.sync() // Esperar sin callback
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
---
|
|
263
|
-
|
|
264
|
-
## Interface Engine
|
|
265
|
-
|
|
266
|
-
Contrato minimo que cualquier proveedor de persistencia debe implementar.
|
|
267
|
-
|
|
268
|
-
##### Metodos
|
|
269
|
-
|
|
270
|
-
| Metodo | Argumentos | Retorno | Descripcion |
|
|
271
|
-
|--------|------------|---------|-------------|
|
|
272
|
-
| `get` | `(key, offset?, limit?)` | `Promise<string[]>` | Obtiene documentos por clave o namespace |
|
|
273
|
-
| `set` | `(key, value)` | `Promise<boolean>` | Guarda string, `null` elimina |
|
|
274
|
-
|
|
275
|
-
##### Comportamiento de get()
|
|
276
|
-
|
|
277
|
-
| Llamada | Resultado |
|
|
278
|
-
|---------|-----------|
|
|
279
|
-
| `get('contact/123')` | Array con 1 item (o vacio) |
|
|
280
|
-
| `get('contact/123', 0, 100)` | Igual - offset/limit no afectan clave exacta |
|
|
281
|
-
| `get('contact', 0, 50)` | Array con contactos paginados |
|
|
282
|
-
| `get('chat/abc/message', 0, 20)` | Array con mensajes del chat |
|
|
283
|
-
|
|
284
|
-
La firma es uniforme. El Engine detecta internamente si es clave exacta o namespace y aplica offset/limit solo cuando corresponde.
|
|
285
|
-
|
|
286
|
-
##### Ejemplo
|
|
287
|
-
|
|
288
|
-
```typescript
|
|
289
|
-
class MemoryEngine implements Engine {
|
|
290
|
-
private data = new Map<string, string>()
|
|
291
|
-
|
|
292
|
-
async get(key: string, offset = 0, limit = 50): Promise<string[]> {
|
|
293
|
-
if (this.data.has(key)) return [this.data.get(key)!]
|
|
294
|
-
const items: string[] = []
|
|
295
|
-
for (const [k, v] of this.data) {
|
|
296
|
-
if (k.startsWith(`${key}/`)) items.push(v)
|
|
297
|
-
}
|
|
298
|
-
return items.slice(offset, offset + limit)
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
async set(key: string, value: string | null): Promise<boolean> {
|
|
302
|
-
if (value === null) return this.data.delete(key)
|
|
303
|
-
this.data.set(key, value)
|
|
304
|
-
return true
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
---
|
|
310
|
-
|
|
311
|
-
## Class Store
|
|
312
|
-
|
|
313
|
-
Clase interna que envuelve el Engine y expone metodos tipados para cada entidad.
|
|
314
|
-
|
|
315
|
-
##### Namespaces
|
|
316
|
-
|
|
317
|
-
Cada namespace almacena strings JSON con las propiedades de la entidad correspondiente.
|
|
318
|
-
|
|
319
|
-
| Namespace | Ruta | Propiedades JSON |
|
|
320
|
-
|-----------|------|------------------|
|
|
321
|
-
| `session` | `session/creds`, `session/signal/{type}/{id}` | Credenciales y claves de sesion Baileys |
|
|
322
|
-
| `contact` | `contact/:id` | `{ id, name, phone, photo, custom_name }` |
|
|
323
|
-
| `chat` | `chat/:id` | `{ id, name, photo, phone, type }` |
|
|
324
|
-
| `message` | `chat/:cid/message/:mid` | `{ id, cid, uid, mid, type, mime, caption, me, status, created_at, edited }` |
|
|
325
|
-
| `content` | `chat/:cid/message/:mid/content` | `Buffer` serializado con BufferJSON |
|
|
326
|
-
|
|
327
|
-
##### Metodos document
|
|
328
|
-
|
|
329
|
-
| Metodo | Argumentos | Retorno | Descripcion |
|
|
330
|
-
|--------|------------|---------|-------------|
|
|
331
|
-
| `document.get` | `(pathname, offset?, limit?)` | `Promise<T[]>` | Obtiene documentos parseados con BufferJSON |
|
|
332
|
-
| `document.set` | `(pathname, value)` | `Promise<boolean>` | Guarda documento serializado con BufferJSON |
|
|
333
|
-
|
|
334
|
-
##### Metodos de Entidades
|
|
335
|
-
|
|
336
|
-
| Metodo | Argumentos | Retorno | Descripcion |
|
|
337
|
-
|--------|------------|---------|-------------|
|
|
338
|
-
| `contact.get` | `(id)` | `Promise<IContact \| null>` | Obtiene contacto parseado |
|
|
339
|
-
| `contact.find` | `(offset, limit)` | `Promise<IContact[]>` | Pagina contactos parseados |
|
|
340
|
-
| `contact.set` | `(data)` | `Promise<boolean>` | Guarda contacto |
|
|
341
|
-
| `chat.get` | `(id)` | `Promise<IChat \| null>` | Obtiene chat parseado |
|
|
342
|
-
| `chat.find` | `(offset, limit)` | `Promise<IChat[]>` | Pagina chats parseados |
|
|
343
|
-
| `chat.set` | `(data)` | `Promise<boolean>` | Guarda chat |
|
|
344
|
-
| `message.get` | `(cid, mid)` | `Promise<IMessage \| null>` | Obtiene mensaje parseado |
|
|
345
|
-
| `message.find` | `(cid, offset, limit)` | `Promise<IMessage[]>` | Pagina mensajes parseados |
|
|
346
|
-
| `message.set` | `(data)` | `Promise<boolean>` | Guarda mensaje |
|
|
347
|
-
| `content.get` | `(cid, mid)` | `Promise<Buffer \| null>` | Obtiene contenido multimedia |
|
|
348
|
-
| `content.set` | `(cid, mid, buffer)` | `Promise<boolean>` | Guarda contenido multimedia |
|
|
349
|
-
|
|
350
|
-
```typescript
|
|
351
|
-
// document: parsea JSON con BufferJSON, retorna objetos
|
|
352
|
-
await store.document.get('contact/123') // object[]
|
|
353
|
-
await store.document.set('contact/123', obj) // boolean
|
|
354
|
-
|
|
355
|
-
// entidades: retornan datos crudos (IContact, IChat, IMessage)
|
|
356
|
-
await store.contact.get('123') // IContact | null
|
|
357
|
-
await store.contact.find(0, 50) // IContact[]
|
|
358
|
-
await store.chat.get('cid') // IChat | null
|
|
359
|
-
await store.chat.find(0, 50) // IChat[]
|
|
360
|
-
await store.message.get('cid', 'mid') // IMessage | null
|
|
361
|
-
await store.message.find('cid', 0, 20) // IMessage[]
|
|
362
|
-
await store.content.get('cid', 'mid') // Buffer | null
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
---
|
|
366
|
-
|
|
367
|
-
## Class Contact
|
|
368
|
-
|
|
369
|
-
Representa un contacto de WhatsApp.
|
|
370
|
-
|
|
371
|
-
##### Propiedades
|
|
372
|
-
|
|
373
|
-
| Propiedad | Tipo | Default | Descripcion |
|
|
374
|
-
|-----------|------|---------|-------------|
|
|
375
|
-
| `id` | `string` | - | JID del contacto (`@s.whatsapp.net`) |
|
|
376
|
-
| `name` | `string` | - | Nombre publico del usuario |
|
|
377
|
-
| `phone` | `string` | - | Numero con prefijo de pais (sin +) |
|
|
378
|
-
| `photo` | `string \| null` | `null` | URL de foto de perfil |
|
|
379
|
-
| `custom_name` | `string` | `name` | Nombre en agenda local |
|
|
380
|
-
|
|
381
|
-
##### Metodos Estaticos
|
|
382
|
-
|
|
383
|
-
| Metodo | Argumentos | Retorno | Descripcion |
|
|
384
|
-
|--------|------------|---------|-------------|
|
|
385
|
-
| `me` | `()` | `Promise<Contact>` | Obtiene el contacto propio |
|
|
386
|
-
| `get` | `(uid)` | `Promise<Contact \| null>` | Obtiene contacto por UID |
|
|
387
|
-
| `find` | `(offset, limit)` | `Promise<Contact[]>` | Obtiene contactos paginados |
|
|
388
|
-
|
|
389
|
-
##### Metodos de Instancia
|
|
390
|
-
|
|
391
|
-
| Metodo | Argumentos | Retorno | Descripcion |
|
|
392
|
-
|--------|------------|---------|-------------|
|
|
393
|
-
| `chat` | `()` | `Promise<Chat>` | Obtiene o crea el chat 1-1 |
|
|
394
|
-
| `rename` | `(name)` | `Promise<boolean>` | Cambia custom_name localmente |
|
|
395
|
-
|
|
396
|
-
```typescript
|
|
397
|
-
const yo = await wa.Contact.me()
|
|
398
|
-
const contact = await wa.Contact.get('5491155555555@s.whatsapp.net')
|
|
399
|
-
const todos = await wa.Contact.find(0, 50)
|
|
400
|
-
const chat = await contact.chat()
|
|
401
|
-
await contact.rename('Mi amigo')
|
|
402
|
-
```
|
|
403
|
-
|
|
404
|
-
---
|
|
405
|
-
|
|
406
|
-
## Class Chat
|
|
407
|
-
|
|
408
|
-
Representa un chat de WhatsApp (grupo o contacto directo).
|
|
409
|
-
|
|
410
|
-
##### Propiedades
|
|
411
|
-
|
|
412
|
-
| Propiedad | Tipo | Default | Descripcion |
|
|
413
|
-
|-----------|------|---------|-------------|
|
|
414
|
-
| `id` | `string` | - | ID del chat (remoteJid) |
|
|
415
|
-
| `name` | `string` | - | Nombre del grupo o contacto |
|
|
416
|
-
| `photo` | `string \| null` | `null` | URL de foto de perfil |
|
|
417
|
-
| `phone` | `string \| null` | `null` | Numero (null en grupos) |
|
|
418
|
-
| `type` | `'group' \| 'contact'` | - | Tipo de chat |
|
|
419
|
-
|
|
420
|
-
##### Metodos Estaticos
|
|
421
|
-
|
|
422
|
-
| Metodo | Argumentos | Retorno | Descripcion |
|
|
423
|
-
|--------|------------|---------|-------------|
|
|
424
|
-
| `get` | `(cid)` | `Promise<Chat \| null>` | Obtiene chat por CID |
|
|
425
|
-
| `find` | `(offset, limit)` | `Promise<Chat[]>` | Obtiene chats paginados |
|
|
426
|
-
| `seen` | `(cid, mid?)` | `Promise<boolean>` | Marca mensaje como leido. Sin mid usa el ultimo |
|
|
427
|
-
| `members` | `(cid, offset, limit)` | `Promise<Contact[]>` | Participantes (incluye `me`) |
|
|
428
|
-
| `messages` | `(cid, offset, limit)` | `Promise<Message[]>` | Obtiene mensajes paginados |
|
|
429
|
-
| `text` | `(cid, content, mid?)` | `Promise<boolean>` | Envia texto |
|
|
430
|
-
| `image` | `(cid, buffer, mid?)` | `Promise<boolean>` | Envia imagen |
|
|
431
|
-
| `video` | `(cid, buffer, mid?)` | `Promise<boolean>` | Envia video |
|
|
432
|
-
| `audio` | `(cid, buffer, mid?)` | `Promise<boolean>` | Envia audio |
|
|
433
|
-
| `location` | `(cid, {lat, lng, caption?})` | `Promise<boolean>` | Envia ubicacion |
|
|
434
|
-
| `poll` | `(cid, text, options[])` | `Promise<boolean>` | Crea encuesta |
|
|
435
|
-
| `typing` | `(cid, bool)` | `Promise<boolean>` | Activa/desactiva "escribiendo..." |
|
|
436
|
-
| `recording` | `(cid, bool)` | `Promise<boolean>` | Activa/desactiva "grabando..." |
|
|
437
|
-
|
|
438
|
-
##### Metodos de Instancia
|
|
439
|
-
|
|
440
|
-
| Metodo | Argumentos | Retorno | Descripcion |
|
|
441
|
-
|--------|------------|---------|-------------|
|
|
442
|
-
| `seen` | `(mid?)` | `Promise<boolean>` | `Chat.seen(this.id, mid)` |
|
|
443
|
-
| `members` | `(offset, limit)` | `Promise<Contact[]>` | `Chat.members(this.id, ...)` |
|
|
444
|
-
| `messages` | `(offset, limit)` | `Promise<Message[]>` | `Chat.messages(this.id, ...)` |
|
|
445
|
-
| `text` | `(content, mid?)` | `Promise<boolean>` | `Chat.text(this.id, ...)` |
|
|
446
|
-
| `image` | `(buffer, mid?)` | `Promise<boolean>` | `Chat.image(this.id, ...)` |
|
|
447
|
-
| `video` | `(buffer, mid?)` | `Promise<boolean>` | `Chat.video(this.id, ...)` |
|
|
448
|
-
| `audio` | `(buffer, mid?)` | `Promise<boolean>` | `Chat.audio(this.id, ...)` |
|
|
449
|
-
| `location` | `({lat, lng, caption?})` | `Promise<boolean>` | `Chat.location(this.id, ...)` |
|
|
450
|
-
| `poll` | `(text, options[])` | `Promise<boolean>` | `Chat.poll(this.id, ...)` |
|
|
451
|
-
| `typing` | `(bool)` | `Promise<boolean>` | `Chat.typing(this.id, ...)` |
|
|
452
|
-
| `recording` | `(bool)` | `Promise<boolean>` | `Chat.recording(this.id, ...)` |
|
|
453
|
-
|
|
454
|
-
```typescript
|
|
455
|
-
const chat = await wa.Chat.get('5491155555555@s.whatsapp.net')
|
|
456
|
-
const chats = await wa.Chat.find(0, 50)
|
|
457
|
-
const msgs = await chat.messages(0, 10)
|
|
458
|
-
const members = await chat.members(0, 50)
|
|
459
|
-
await chat.text('Hola!', msgs[0].id)
|
|
460
|
-
await chat.poll('Donde cenamos?', ['Pizza', 'Sushi', 'Tacos'])
|
|
461
|
-
await chat.location({ lat: -34.603, lng: -58.381 })
|
|
462
|
-
await chat.seen() // Marca ultimo mensaje como leido
|
|
463
|
-
```
|
|
464
|
-
|
|
465
|
-
---
|
|
466
|
-
|
|
467
|
-
## Class Message
|
|
468
|
-
|
|
469
|
-
Representa un mensaje de WhatsApp.
|
|
470
|
-
|
|
471
|
-
##### Propiedades
|
|
472
|
-
|
|
473
|
-
| Propiedad | Tipo | Default | Descripcion |
|
|
474
|
-
|-----------|------|---------|-------------|
|
|
475
|
-
| `id` | `string` | - | ID unico del mensaje |
|
|
476
|
-
| `cid` | `string` | - | ID del chat |
|
|
477
|
-
| `uid` | `string` | - | ID del usuario que envio |
|
|
478
|
-
| `mid` | `string \| null` | `null` | ID del mensaje citado |
|
|
479
|
-
| `type` | `'text' \| 'image' \| 'video' \| 'audio' \| 'location' \| 'poll' \| 'unknown'` | - | Tipo de contenido |
|
|
480
|
-
| `mime` | `string` | `'text/plain'` | Formato: `text/plain`, `image/*`, `video/*`, `audio/*`, `application/json` |
|
|
481
|
-
| `caption` | `string` | `''` | Texto en imagen/video/location |
|
|
482
|
-
| `me` | `boolean` | - | `true` si soy el autor |
|
|
483
|
-
| `status` | `'pending' \| 'sent' \| 'delivered' \| 'read'` | - | Estado del mensaje |
|
|
484
|
-
| `created_at` | `string` | - | Fecha en UTC (ISO string) |
|
|
485
|
-
| `edited` | `boolean` | `false` | `true` si fue editado |
|
|
486
|
-
|
|
487
|
-
##### Metodos Estaticos
|
|
488
|
-
|
|
489
|
-
| Metodo | Argumentos | Retorno | Descripcion |
|
|
490
|
-
|--------|------------|---------|-------------|
|
|
491
|
-
| `get` | `(cid, mid)` | `Promise<Message \| null>` | Obtiene mensaje por CID y MID |
|
|
492
|
-
| `delete` | `(cid, mid, all?)` | `Promise<boolean>` | Elimina mensaje (`all` = para todos) |
|
|
493
|
-
| ~~`forward`~~ | ~~`(cid, mid, target_cid)`~~ | ~~`Promise<boolean>`~~ | ~~Deprecated: usar envio manual~~ |
|
|
494
|
-
| `edit` | `(cid, mid, content)` | `Promise<boolean>` | Edita mensaje de texto propio |
|
|
495
|
-
| `votes` | `(cid, mid)` | `Promise<{name, count}[]>` | Obtiene votos de encuesta |
|
|
496
|
-
| `seen` | `(cid, mid)` | `Promise<boolean>` | Marca mensaje como leido |
|
|
497
|
-
|
|
498
|
-
##### Metodos de Instancia
|
|
499
|
-
|
|
500
|
-
| Metodo | Argumentos | Retorno | Descripcion |
|
|
501
|
-
|--------|------------|---------|-------------|
|
|
502
|
-
| `content` | `()` | `Promise<Buffer>` | Contenido segun tipo y mime |
|
|
503
|
-
| `chat` | `()` | `Promise<Chat \| null>` | Obtiene el chat donde se envio |
|
|
504
|
-
| `author` | `()` | `Promise<Contact \| null>` | Obtiene el contacto autor |
|
|
505
|
-
| `delete` | `(all?)` | `Promise<boolean>` | `Message.delete(this.cid, this.id, ...)` |
|
|
506
|
-
| `edit` | `(content)` | `Promise<boolean>` | `Message.edit(this.cid, this.id, ...)` |
|
|
507
|
-
| `votes` | `()` | `Promise<{name, count}[]>` | `Message.votes(this.cid, this.id)` |
|
|
508
|
-
| `seen` | `()` | `Promise<boolean>` | `Message.seen(this.cid, this.id)` |
|
|
509
|
-
|
|
510
|
-
```typescript
|
|
511
|
-
const msg = await wa.Message.get('5491155555555@s.whatsapp.net', 'ABC123')
|
|
512
|
-
|
|
513
|
-
// Texto: mime = 'text/plain'
|
|
514
|
-
const text = (await msg.content()).toString()
|
|
515
|
-
|
|
516
|
-
// Media: mime = 'image/jpeg', 'video/mp4', 'audio/ogg', etc.
|
|
517
|
-
const media = await msg.content()
|
|
518
|
-
|
|
519
|
-
// Location/Poll: mime = 'application/json'
|
|
520
|
-
const location = JSON.parse((await msg.content()).toString()) // {lat, lng}
|
|
521
|
-
const poll = JSON.parse((await msg.content()).toString()) // {content, items[]}
|
|
522
|
-
|
|
523
|
-
// Navegacion
|
|
524
|
-
const chat = await msg.chat()
|
|
525
|
-
const author = await msg.author()
|
|
526
|
-
|
|
527
|
-
await msg.edit('Texto corregido')
|
|
528
|
-
await msg.delete(true)
|
|
529
|
-
await msg.seen()
|
|
530
|
-
```
|
|
531
|
-
|
|
532
|
-
---
|
package/build/Chat.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../src/Chat.ts"],"names":[],"mappings":"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"}
|
package/build/Contact.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Contact.js","sourceRoot":"","sources":["../src/Contact.ts"],"names":[],"mappings":"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"}
|
package/build/Message.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../src/Message.ts"],"names":[],"mappings":"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"}
|