@catalisa/wpp-sdk 0.2.3 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +178 -1
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -1
- package/dist/http/client.d.ts +4 -0
- package/dist/http/client.d.ts.map +1 -1
- package/dist/http/client.js +6 -0
- package/dist/http/client.js.map +1 -1
- package/dist/resources/storage.d.ts +151 -0
- package/dist/resources/storage.d.ts.map +1 -0
- package/dist/resources/storage.js +162 -0
- package/dist/resources/storage.js.map +1 -0
- package/dist/resources/whatsapp.d.ts +193 -1
- package/dist/resources/whatsapp.d.ts.map +1 -1
- package/dist/resources/whatsapp.js +217 -0
- package/dist/resources/whatsapp.js.map +1 -1
- package/dist/resources/whatsapp.test.d.ts +2 -0
- package/dist/resources/whatsapp.test.d.ts.map +1 -0
- package/dist/resources/whatsapp.test.js +780 -0
- package/dist/resources/whatsapp.test.js.map +1 -0
- package/dist/test/fixtures/webhook-events.d.ts +1197 -0
- package/dist/test/fixtures/webhook-events.d.ts.map +1 -0
- package/dist/test/fixtures/webhook-events.js +737 -0
- package/dist/test/fixtures/webhook-events.js.map +1 -0
- package/dist/test/message-type-filter.test.d.ts +6 -0
- package/dist/test/message-type-filter.test.d.ts.map +1 -0
- package/dist/test/message-type-filter.test.js +368 -0
- package/dist/test/message-type-filter.test.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/storage.d.ts +86 -0
- package/dist/types/storage.d.ts.map +1 -0
- package/dist/types/storage.js +6 -0
- package/dist/types/storage.js.map +1 -0
- package/dist/types/webhook.d.ts +205 -0
- package/dist/types/webhook.d.ts.map +1 -1
- package/dist/types/webhook.js +24 -0
- package/dist/types/webhook.js.map +1 -1
- package/dist/types/whatsapp.d.ts +245 -2
- package/dist/types/whatsapp.d.ts.map +1 -1
- package/package.json +14 -3
package/dist/types/webhook.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Webhook types (basic and advanced)
|
|
3
3
|
*/
|
|
4
|
+
/**
|
|
5
|
+
* Supported message types for filtering
|
|
6
|
+
* Compatible with both Baileys and Cloud API
|
|
7
|
+
*/
|
|
8
|
+
export declare const MESSAGE_TYPES: readonly ["text", "image", "video", "audio", "document", "sticker", "contact", "location", "reaction", "poll", "buttons", "list", "template", "product", "order", "viewOnce", "interactive"];
|
|
9
|
+
export type MessageType = typeof MESSAGE_TYPES[number];
|
|
4
10
|
export interface WebhookConfig {
|
|
5
11
|
id: string;
|
|
6
12
|
tenantId: string;
|
|
@@ -44,12 +50,37 @@ export interface AdvancedWebhook {
|
|
|
44
50
|
createdAt: string;
|
|
45
51
|
updatedAt: string;
|
|
46
52
|
}
|
|
53
|
+
export interface FilterCondition {
|
|
54
|
+
remoteJid?: string;
|
|
55
|
+
senderPn?: string;
|
|
56
|
+
senderLid?: string;
|
|
57
|
+
fromMe?: boolean;
|
|
58
|
+
textPattern?: string;
|
|
59
|
+
textContains?: string;
|
|
60
|
+
hasMentions?: boolean;
|
|
61
|
+
mentionsMe?: boolean;
|
|
62
|
+
mentionsJid?: string;
|
|
63
|
+
messageType?: MessageType | MessageType[];
|
|
64
|
+
}
|
|
65
|
+
export interface FilterGroup {
|
|
66
|
+
operator: 'AND' | 'OR';
|
|
67
|
+
conditions: FilterCondition;
|
|
68
|
+
}
|
|
47
69
|
export interface WebhookFilters {
|
|
70
|
+
operator?: 'AND' | 'OR';
|
|
71
|
+
groups?: FilterGroup[];
|
|
48
72
|
remoteJid?: string;
|
|
73
|
+
senderPn?: string;
|
|
74
|
+
senderLid?: string;
|
|
49
75
|
fromMe?: boolean;
|
|
50
76
|
textContains?: string;
|
|
51
77
|
textPattern?: string;
|
|
78
|
+
hasMentions?: boolean;
|
|
79
|
+
mentionsMe?: boolean;
|
|
80
|
+
mentionsJid?: string;
|
|
81
|
+
messageType?: MessageType | MessageType[];
|
|
52
82
|
jsonPath?: Record<string, any>;
|
|
83
|
+
matchAll?: boolean;
|
|
53
84
|
}
|
|
54
85
|
export interface CreateAdvancedWebhookRequest {
|
|
55
86
|
tenantId?: string;
|
|
@@ -123,4 +154,178 @@ export interface GetWebhookStatsParams {
|
|
|
123
154
|
startDate?: string;
|
|
124
155
|
endDate?: string;
|
|
125
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Downloaded media info included in message events when downloadMedia=true
|
|
159
|
+
*/
|
|
160
|
+
export interface DownloadedMedia {
|
|
161
|
+
/** Local file path within the worker container (e.g., '/tmp/wpp-media/tenant123/1234567890_abc.jpg') */
|
|
162
|
+
localPath: string;
|
|
163
|
+
/** Base64 encoded content (ready to use, without data URI prefix) */
|
|
164
|
+
base64: string;
|
|
165
|
+
/** MIME type (e.g., 'image/jpeg', 'audio/ogg; codecs=opus') */
|
|
166
|
+
mimetype: string;
|
|
167
|
+
/** Media type */
|
|
168
|
+
type: 'image' | 'video' | 'audio' | 'document' | 'sticker';
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* WhatsApp message key
|
|
172
|
+
*/
|
|
173
|
+
export interface MessageKey {
|
|
174
|
+
/** Remote JID (sender for incoming, recipient for outgoing) */
|
|
175
|
+
remoteJid: string;
|
|
176
|
+
/** True if sent by the connected device */
|
|
177
|
+
fromMe: boolean;
|
|
178
|
+
/** Unique message ID */
|
|
179
|
+
id: string;
|
|
180
|
+
/** Participant JID (for group messages) */
|
|
181
|
+
participant?: string;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Image message content from Baileys
|
|
185
|
+
*/
|
|
186
|
+
export interface ImageMessageContent {
|
|
187
|
+
url: string;
|
|
188
|
+
mimetype: string;
|
|
189
|
+
caption?: string;
|
|
190
|
+
fileSha256: string;
|
|
191
|
+
fileLength: string;
|
|
192
|
+
mediaKey: string;
|
|
193
|
+
jpegThumbnail?: string;
|
|
194
|
+
width?: number;
|
|
195
|
+
height?: number;
|
|
196
|
+
viewOnce?: boolean;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Audio message content from Baileys
|
|
200
|
+
*/
|
|
201
|
+
export interface AudioMessageContent {
|
|
202
|
+
url: string;
|
|
203
|
+
mimetype: string;
|
|
204
|
+
seconds: number;
|
|
205
|
+
ptt: boolean;
|
|
206
|
+
mediaKey: string;
|
|
207
|
+
fileSha256: string;
|
|
208
|
+
fileLength: string;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Video message content from Baileys
|
|
212
|
+
*/
|
|
213
|
+
export interface VideoMessageContent {
|
|
214
|
+
url: string;
|
|
215
|
+
mimetype: string;
|
|
216
|
+
caption?: string;
|
|
217
|
+
seconds: number;
|
|
218
|
+
mediaKey: string;
|
|
219
|
+
fileSha256: string;
|
|
220
|
+
fileLength: string;
|
|
221
|
+
jpegThumbnail?: string;
|
|
222
|
+
width?: number;
|
|
223
|
+
height?: number;
|
|
224
|
+
viewOnce?: boolean;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Document message content from Baileys
|
|
228
|
+
*/
|
|
229
|
+
export interface DocumentMessageContent {
|
|
230
|
+
url: string;
|
|
231
|
+
mimetype: string;
|
|
232
|
+
fileName: string;
|
|
233
|
+
caption?: string;
|
|
234
|
+
mediaKey: string;
|
|
235
|
+
fileSha256: string;
|
|
236
|
+
fileLength: string;
|
|
237
|
+
jpegThumbnail?: string;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Message content from Baileys
|
|
241
|
+
*/
|
|
242
|
+
export interface MessageContent {
|
|
243
|
+
conversation?: string;
|
|
244
|
+
extendedTextMessage?: {
|
|
245
|
+
text: string;
|
|
246
|
+
contextInfo?: any;
|
|
247
|
+
};
|
|
248
|
+
imageMessage?: ImageMessageContent;
|
|
249
|
+
audioMessage?: AudioMessageContent;
|
|
250
|
+
videoMessage?: VideoMessageContent;
|
|
251
|
+
documentMessage?: DocumentMessageContent;
|
|
252
|
+
stickerMessage?: {
|
|
253
|
+
url: string;
|
|
254
|
+
mimetype: string;
|
|
255
|
+
mediaKey: string;
|
|
256
|
+
};
|
|
257
|
+
reactionMessage?: {
|
|
258
|
+
key: MessageKey;
|
|
259
|
+
text: string;
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* WhatsApp message object from Baileys
|
|
264
|
+
*/
|
|
265
|
+
export interface WhatsAppMessage {
|
|
266
|
+
key: MessageKey;
|
|
267
|
+
message?: MessageContent;
|
|
268
|
+
messageTimestamp?: number | Long;
|
|
269
|
+
pushName?: string;
|
|
270
|
+
/** Downloaded and decrypted media (when downloadMedia=true in TenantSettings) */
|
|
271
|
+
downloadedMedia?: DownloadedMedia;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* messages.upsert webhook event payload
|
|
275
|
+
*
|
|
276
|
+
* @example
|
|
277
|
+
* ```typescript
|
|
278
|
+
* app.post('/webhook', (req, res) => {
|
|
279
|
+
* const event: MessagesUpsertEvent = req.body;
|
|
280
|
+
*
|
|
281
|
+
* if (event.event === 'messages.upsert') {
|
|
282
|
+
* for (const msg of event.messages) {
|
|
283
|
+
* // Handle downloaded media
|
|
284
|
+
* if (msg.downloadedMedia) {
|
|
285
|
+
* const { type, base64, mimetype } = msg.downloadedMedia;
|
|
286
|
+
* console.log(`Received ${type}: ${mimetype}, ${base64.length} bytes`);
|
|
287
|
+
* }
|
|
288
|
+
*
|
|
289
|
+
* // Handle text
|
|
290
|
+
* const text = msg.message?.conversation ||
|
|
291
|
+
* msg.message?.extendedTextMessage?.text ||
|
|
292
|
+
* msg.message?.imageMessage?.caption;
|
|
293
|
+
* if (text) console.log('Text:', text);
|
|
294
|
+
* }
|
|
295
|
+
* }
|
|
296
|
+
* res.sendStatus(200);
|
|
297
|
+
* });
|
|
298
|
+
* ```
|
|
299
|
+
*/
|
|
300
|
+
export interface MessagesUpsertEvent {
|
|
301
|
+
event: 'messages.upsert';
|
|
302
|
+
tenantId: string;
|
|
303
|
+
type: 'notify' | 'append' | 'history';
|
|
304
|
+
messages: WhatsAppMessage[];
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* connection.update webhook event payload
|
|
308
|
+
*/
|
|
309
|
+
export interface ConnectionUpdateEvent {
|
|
310
|
+
event: 'connection.update';
|
|
311
|
+
tenantId: string;
|
|
312
|
+
connection?: 'connecting' | 'open' | 'close';
|
|
313
|
+
qr?: string;
|
|
314
|
+
pairingCode?: string;
|
|
315
|
+
lastDisconnect?: {
|
|
316
|
+
error?: {
|
|
317
|
+
output?: {
|
|
318
|
+
statusCode?: number;
|
|
319
|
+
};
|
|
320
|
+
};
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Union of all webhook event types
|
|
325
|
+
*/
|
|
326
|
+
export type WebhookEvent = MessagesUpsertEvent | ConnectionUpdateEvent | {
|
|
327
|
+
event: string;
|
|
328
|
+
tenantId: string;
|
|
329
|
+
[key: string]: any;
|
|
330
|
+
};
|
|
126
331
|
//# sourceMappingURL=webhook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../src/types/webhook.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;
|
|
1
|
+
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../src/types/webhook.ts"],"names":[],"mappings":"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"}
|
package/dist/types/webhook.js
CHANGED
|
@@ -3,4 +3,28 @@
|
|
|
3
3
|
* Webhook types (basic and advanced)
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MESSAGE_TYPES = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Supported message types for filtering
|
|
9
|
+
* Compatible with both Baileys and Cloud API
|
|
10
|
+
*/
|
|
11
|
+
exports.MESSAGE_TYPES = [
|
|
12
|
+
'text', // Baileys: conversation, extendedTextMessage | Cloud API: text
|
|
13
|
+
'image', // Baileys: imageMessage | Cloud API: image
|
|
14
|
+
'video', // Baileys: videoMessage | Cloud API: video
|
|
15
|
+
'audio', // Baileys: audioMessage | Cloud API: audio
|
|
16
|
+
'document', // Baileys: documentMessage | Cloud API: document
|
|
17
|
+
'sticker', // Baileys: stickerMessage | Cloud API: sticker
|
|
18
|
+
'contact', // Baileys: contactMessage, contactsArrayMessage | Cloud API: contacts
|
|
19
|
+
'location', // Baileys: locationMessage, liveLocationMessage | Cloud API: location
|
|
20
|
+
'reaction', // Baileys: reactionMessage | Cloud API: reaction
|
|
21
|
+
'poll', // Baileys: pollCreationMessage, pollUpdateMessage
|
|
22
|
+
'buttons', // Baileys: buttonsMessage, buttonsResponseMessage
|
|
23
|
+
'list', // Baileys: listMessage, listResponseMessage
|
|
24
|
+
'template', // Baileys: templateMessage | Cloud API: template
|
|
25
|
+
'product', // Baileys: productMessage
|
|
26
|
+
'order', // Baileys: orderMessage
|
|
27
|
+
'viewOnce', // Baileys: viewOnceMessage, viewOnceMessageV2
|
|
28
|
+
'interactive', // Cloud API: interactive (list/button replies)
|
|
29
|
+
];
|
|
6
30
|
//# sourceMappingURL=webhook.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/types/webhook.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
1
|
+
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/types/webhook.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;;GAGG;AACU,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAU,+DAA+D;IAC/E,OAAO,EAAS,2CAA2C;IAC3D,OAAO,EAAS,2CAA2C;IAC3D,OAAO,EAAS,2CAA2C;IAC3D,UAAU,EAAM,iDAAiD;IACjE,SAAS,EAAO,+CAA+C;IAC/D,SAAS,EAAO,sEAAsE;IACtF,UAAU,EAAM,sEAAsE;IACtF,UAAU,EAAM,iDAAiD;IACjE,MAAM,EAAU,kDAAkD;IAClE,SAAS,EAAO,kDAAkD;IAClE,MAAM,EAAU,4CAA4C;IAC5D,UAAU,EAAM,iDAAiD;IACjE,SAAS,EAAO,0BAA0B;IAC1C,OAAO,EAAS,wBAAwB;IACxC,UAAU,EAAM,8CAA8C;IAC9D,aAAa,EAAG,+CAA+C;CACvD,CAAC"}
|
package/dist/types/whatsapp.d.ts
CHANGED
|
@@ -2,17 +2,39 @@
|
|
|
2
2
|
* WhatsApp resource types
|
|
3
3
|
*/
|
|
4
4
|
import { CallbackParams } from './common';
|
|
5
|
+
/**
|
|
6
|
+
* WhatsApp driver type
|
|
7
|
+
*/
|
|
8
|
+
export type WhatsAppDriverType = 'baileys' | 'cloud-api';
|
|
9
|
+
/**
|
|
10
|
+
* Cloud API credentials for Meta's WhatsApp Business API
|
|
11
|
+
*/
|
|
12
|
+
export interface CloudApiCredentials {
|
|
13
|
+
phoneNumberId: string;
|
|
14
|
+
accessToken: string;
|
|
15
|
+
businessAccountId: string;
|
|
16
|
+
webhookVerifyToken?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Device driver configuration
|
|
20
|
+
*/
|
|
21
|
+
export interface DeviceDriverConfig {
|
|
22
|
+
driver: WhatsAppDriverType;
|
|
23
|
+
cloudApi?: CloudApiCredentials;
|
|
24
|
+
}
|
|
5
25
|
export interface Device {
|
|
6
26
|
id: string;
|
|
7
27
|
tenantId: string;
|
|
8
28
|
deviceId: string;
|
|
9
|
-
status: 'connecting' | 'qr' | 'open' | 'closed' | 'reset';
|
|
29
|
+
status: 'connecting' | 'qr' | 'open' | 'closed' | 'reset' | 'banned';
|
|
30
|
+
driver: WhatsAppDriverType;
|
|
10
31
|
lastQr?: string;
|
|
11
32
|
jid?: string;
|
|
12
33
|
lid?: string;
|
|
13
34
|
qrGeneratedAt?: string;
|
|
14
35
|
createdAt: string;
|
|
15
36
|
updatedAt: string;
|
|
37
|
+
cloudApiCreds?: CloudApiCredentials;
|
|
16
38
|
}
|
|
17
39
|
export interface QRResponse {
|
|
18
40
|
qr: string | null;
|
|
@@ -45,12 +67,30 @@ export interface DeviceResponse {
|
|
|
45
67
|
};
|
|
46
68
|
};
|
|
47
69
|
}
|
|
48
|
-
export type ConnectRequest = CallbackParams
|
|
70
|
+
export type ConnectRequest = CallbackParams & {
|
|
71
|
+
driver?: WhatsAppDriverType;
|
|
72
|
+
cloudApi?: CloudApiCredentials;
|
|
73
|
+
};
|
|
49
74
|
export type ReconnectRequest = CallbackParams & {
|
|
50
75
|
force?: boolean;
|
|
51
76
|
};
|
|
52
77
|
export type ResetRequest = CallbackParams;
|
|
53
78
|
export type LogoutRequest = CallbackParams;
|
|
79
|
+
export interface ConfigureDriverRequest {
|
|
80
|
+
driver: WhatsAppDriverType;
|
|
81
|
+
cloudApi?: CloudApiCredentials;
|
|
82
|
+
}
|
|
83
|
+
export interface DriverConfigResponse {
|
|
84
|
+
tenantId: string;
|
|
85
|
+
deviceId: string;
|
|
86
|
+
driver: WhatsAppDriverType;
|
|
87
|
+
configured: boolean;
|
|
88
|
+
cloudApi?: {
|
|
89
|
+
phoneNumberId: string;
|
|
90
|
+
businessAccountId: string;
|
|
91
|
+
hasAccessToken: boolean;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
54
94
|
export interface SendMessageRequest extends CallbackParams {
|
|
55
95
|
jid: string;
|
|
56
96
|
text: string;
|
|
@@ -63,13 +103,42 @@ export interface SendReactionRequest extends CallbackParams {
|
|
|
63
103
|
};
|
|
64
104
|
emoji: string;
|
|
65
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Request to send media (image, video, audio, document)
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* // Send image from URL
|
|
112
|
+
* await client.whatsapp.sendMedia({
|
|
113
|
+
* jid: '5511999999999@s.whatsapp.net',
|
|
114
|
+
* type: 'image',
|
|
115
|
+
* url: 'https://example.com/photo.jpg',
|
|
116
|
+
* caption: 'Check this out!'
|
|
117
|
+
* });
|
|
118
|
+
*
|
|
119
|
+
* // Send audio from base64
|
|
120
|
+
* await client.whatsapp.sendMedia({
|
|
121
|
+
* jid: '5511999999999@s.whatsapp.net',
|
|
122
|
+
* type: 'audio',
|
|
123
|
+
* base64: 'T2dnUwAC...', // Without data URI prefix
|
|
124
|
+
* mimetype: 'audio/ogg; codecs=opus'
|
|
125
|
+
* });
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
66
128
|
export interface SendMediaRequest extends CallbackParams {
|
|
129
|
+
/** Recipient JID (e.g., '5511999999999@s.whatsapp.net') */
|
|
67
130
|
jid: string;
|
|
131
|
+
/** Media type */
|
|
68
132
|
type: 'image' | 'video' | 'audio' | 'document';
|
|
133
|
+
/** URL to download media from (mutually exclusive with base64) */
|
|
69
134
|
url?: string;
|
|
135
|
+
/** Base64 encoded content without data URI prefix (mutually exclusive with url) */
|
|
70
136
|
base64?: string;
|
|
137
|
+
/** Caption text to display with media */
|
|
71
138
|
caption?: string;
|
|
139
|
+
/** MIME type (e.g., 'image/jpeg', 'audio/ogg; codecs=opus'). Auto-detected if url provided */
|
|
72
140
|
mimetype?: string;
|
|
141
|
+
/** Filename for documents (e.g., 'contract.pdf') */
|
|
73
142
|
filename?: string;
|
|
74
143
|
}
|
|
75
144
|
export interface Group {
|
|
@@ -151,4 +220,178 @@ export interface PublicQRResponse {
|
|
|
151
220
|
};
|
|
152
221
|
expiresAt: string;
|
|
153
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* Template message component parameter
|
|
225
|
+
*/
|
|
226
|
+
export interface TemplateParameter {
|
|
227
|
+
type: 'text' | 'currency' | 'date_time' | 'image' | 'document' | 'video';
|
|
228
|
+
text?: string;
|
|
229
|
+
currency?: {
|
|
230
|
+
fallback_value: string;
|
|
231
|
+
code: string;
|
|
232
|
+
amount_1000: number;
|
|
233
|
+
};
|
|
234
|
+
date_time?: {
|
|
235
|
+
fallback_value: string;
|
|
236
|
+
};
|
|
237
|
+
image?: {
|
|
238
|
+
link: string;
|
|
239
|
+
};
|
|
240
|
+
document?: {
|
|
241
|
+
link: string;
|
|
242
|
+
};
|
|
243
|
+
video?: {
|
|
244
|
+
link: string;
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Template message component
|
|
249
|
+
*/
|
|
250
|
+
export interface TemplateComponent {
|
|
251
|
+
type: 'header' | 'body' | 'button';
|
|
252
|
+
sub_type?: 'quick_reply' | 'url';
|
|
253
|
+
index?: number;
|
|
254
|
+
parameters?: TemplateParameter[];
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Send template message request (Cloud API only)
|
|
258
|
+
*/
|
|
259
|
+
export interface SendTemplateRequest extends CallbackParams {
|
|
260
|
+
jid: string;
|
|
261
|
+
templateName: string;
|
|
262
|
+
languageCode: string;
|
|
263
|
+
components?: TemplateComponent[];
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Message template from Cloud API
|
|
267
|
+
*/
|
|
268
|
+
export interface MessageTemplate {
|
|
269
|
+
id: string;
|
|
270
|
+
name: string;
|
|
271
|
+
status: 'APPROVED' | 'PENDING' | 'REJECTED';
|
|
272
|
+
category: string;
|
|
273
|
+
language: string;
|
|
274
|
+
components: Array<{
|
|
275
|
+
type: string;
|
|
276
|
+
format?: string;
|
|
277
|
+
text?: string;
|
|
278
|
+
buttons?: Array<{
|
|
279
|
+
type: string;
|
|
280
|
+
text: string;
|
|
281
|
+
url?: string;
|
|
282
|
+
}>;
|
|
283
|
+
}>;
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* List templates response
|
|
287
|
+
*/
|
|
288
|
+
export interface TemplatesResponse {
|
|
289
|
+
templates: MessageTemplate[];
|
|
290
|
+
paging?: {
|
|
291
|
+
cursors?: {
|
|
292
|
+
before?: string;
|
|
293
|
+
after?: string;
|
|
294
|
+
};
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Interactive message types (Cloud API)
|
|
299
|
+
*/
|
|
300
|
+
export interface InteractiveButton {
|
|
301
|
+
type: 'reply';
|
|
302
|
+
reply: {
|
|
303
|
+
id: string;
|
|
304
|
+
title: string;
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
export interface InteractiveListSection {
|
|
308
|
+
title: string;
|
|
309
|
+
rows: Array<{
|
|
310
|
+
id: string;
|
|
311
|
+
title: string;
|
|
312
|
+
description?: string;
|
|
313
|
+
}>;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Send interactive message request (Cloud API only)
|
|
317
|
+
*/
|
|
318
|
+
export interface SendInteractiveRequest extends CallbackParams {
|
|
319
|
+
jid: string;
|
|
320
|
+
type: 'button' | 'list';
|
|
321
|
+
header?: {
|
|
322
|
+
type: 'text' | 'image' | 'video' | 'document';
|
|
323
|
+
text?: string;
|
|
324
|
+
image?: {
|
|
325
|
+
link: string;
|
|
326
|
+
};
|
|
327
|
+
video?: {
|
|
328
|
+
link: string;
|
|
329
|
+
};
|
|
330
|
+
document?: {
|
|
331
|
+
link: string;
|
|
332
|
+
};
|
|
333
|
+
};
|
|
334
|
+
body: {
|
|
335
|
+
text: string;
|
|
336
|
+
};
|
|
337
|
+
footer?: {
|
|
338
|
+
text: string;
|
|
339
|
+
};
|
|
340
|
+
action: {
|
|
341
|
+
buttons?: InteractiveButton[];
|
|
342
|
+
button?: string;
|
|
343
|
+
sections?: InteractiveListSection[];
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Media type for downloaded content
|
|
348
|
+
*/
|
|
349
|
+
export type MediaType = 'image' | 'video' | 'audio' | 'document' | 'sticker';
|
|
350
|
+
/**
|
|
351
|
+
* Response from downloading media from a stored message
|
|
352
|
+
*
|
|
353
|
+
* @example
|
|
354
|
+
* ```typescript
|
|
355
|
+
* const media = await client.whatsapp.downloadMedia('msg-id-123');
|
|
356
|
+
* console.log(media.mimetype); // 'image/jpeg'
|
|
357
|
+
* console.log(media.base64.length); // Base64 string length
|
|
358
|
+
* ```
|
|
359
|
+
*/
|
|
360
|
+
export interface DownloadMediaResponse {
|
|
361
|
+
/** Base64 encoded media content */
|
|
362
|
+
base64: string;
|
|
363
|
+
/** MIME type of the media (e.g., 'image/jpeg', 'audio/ogg; codecs=opus') */
|
|
364
|
+
mimetype: string;
|
|
365
|
+
/** Type of media */
|
|
366
|
+
type: MediaType;
|
|
367
|
+
/** Size in bytes */
|
|
368
|
+
size: number;
|
|
369
|
+
/** Original filename (for documents) */
|
|
370
|
+
filename?: string;
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Cloud API Receiver status response
|
|
374
|
+
* Returned from GET /wpp/cloud-api/receiver/:tenantId/:deviceId/status
|
|
375
|
+
*/
|
|
376
|
+
export interface CloudApiReceiverStatus {
|
|
377
|
+
tenantId: string;
|
|
378
|
+
deviceId: string;
|
|
379
|
+
driver: WhatsAppDriverType;
|
|
380
|
+
configured: boolean;
|
|
381
|
+
cloudApi: {
|
|
382
|
+
phoneNumberId: string;
|
|
383
|
+
businessAccountId: string;
|
|
384
|
+
hasAccessToken: boolean;
|
|
385
|
+
hasWebhookToken: boolean;
|
|
386
|
+
} | null;
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Webhook URL configuration for Cloud API
|
|
390
|
+
*/
|
|
391
|
+
export interface CloudApiWebhookUrl {
|
|
392
|
+
tenantId: string;
|
|
393
|
+
deviceId: string;
|
|
394
|
+
webhookUrl: string;
|
|
395
|
+
verifyToken: string;
|
|
396
|
+
}
|
|
154
397
|
//# sourceMappingURL=whatsapp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../../src/types/whatsapp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAoB,MAAM,UAAU,CAAC;AAE5D,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../../src/types/whatsapp.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@catalisa/wpp-sdk",
|
|
3
|
-
"version": "0.2
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "TypeScript SDK for WhatsApp Multi-tenant API - Clean, type-safe, and easy to use",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -14,13 +14,19 @@
|
|
|
14
14
|
"dev": "tsc --watch",
|
|
15
15
|
"clean": "rm -rf dist",
|
|
16
16
|
"prepublishOnly": "npm run clean && npm run build",
|
|
17
|
+
"test": "vitest run",
|
|
18
|
+
"test:watch": "vitest",
|
|
19
|
+
"test:coverage": "vitest run --coverage",
|
|
17
20
|
"test:admin-crud": "npx ts-node -r tsconfig-paths/register examples/test-admin-crud.ts",
|
|
18
21
|
"test:branding": "npx ts-node -r tsconfig-paths/register examples/test-branding.ts",
|
|
19
22
|
"test:basic-webhooks": "npx ts-node -r tsconfig-paths/register examples/test-basic-webhooks.ts",
|
|
23
|
+
"test:advanced-webhooks": "npx ts-node -r tsconfig-paths/register examples/test-advanced-webhooks.ts",
|
|
20
24
|
"test:messaging": "npx ts-node -r tsconfig-paths/register examples/test-messaging.ts",
|
|
21
25
|
"test:groups": "npx ts-node -r tsconfig-paths/register examples/test-groups.ts",
|
|
22
26
|
"test:real": "npx ts-node -r tsconfig-paths/register examples/test-real.ts",
|
|
23
|
-
"test:tenant": "npx ts-node -r tsconfig-paths/register examples/test-specific-tenant.ts"
|
|
27
|
+
"test:tenant": "npx ts-node -r tsconfig-paths/register examples/test-specific-tenant.ts",
|
|
28
|
+
"test:driver-config": "npx ts-node -r tsconfig-paths/register examples/test-driver-config.ts",
|
|
29
|
+
"test:cloud-api": "npx ts-node -r tsconfig-paths/register -r dotenv/config examples/test-cloud-api-integration.ts"
|
|
24
30
|
},
|
|
25
31
|
"keywords": [
|
|
26
32
|
"whatsapp",
|
|
@@ -44,6 +50,11 @@
|
|
|
44
50
|
},
|
|
45
51
|
"devDependencies": {
|
|
46
52
|
"@types/node": "^20.10.0",
|
|
47
|
-
"
|
|
53
|
+
"@vitest/coverage-v8": "^4.0.15",
|
|
54
|
+
"dotenv": "^16.3.1",
|
|
55
|
+
"ts-node": "^10.9.2",
|
|
56
|
+
"tsconfig-paths": "^4.2.0",
|
|
57
|
+
"typescript": "^5.6.3",
|
|
58
|
+
"vitest": "^4.0.15"
|
|
48
59
|
}
|
|
49
60
|
}
|