@catalisa/wpp-sdk 0.2.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/README.md +486 -0
- package/dist/client.d.ts +81 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +97 -0
- package/dist/client.js.map +1 -0
- package/dist/errors/index.d.ts +42 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +70 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/http/client.d.ts +48 -0
- package/dist/http/client.d.ts.map +1 -0
- package/dist/http/client.js +125 -0
- package/dist/http/client.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +66 -0
- package/dist/index.js.map +1 -0
- package/dist/resources/apiTokens.d.ts +29 -0
- package/dist/resources/apiTokens.d.ts.map +1 -0
- package/dist/resources/apiTokens.js +38 -0
- package/dist/resources/apiTokens.js.map +1 -0
- package/dist/resources/auth.d.ts +29 -0
- package/dist/resources/auth.d.ts.map +1 -0
- package/dist/resources/auth.js +43 -0
- package/dist/resources/auth.js.map +1 -0
- package/dist/resources/branding.d.ts +27 -0
- package/dist/resources/branding.d.ts.map +1 -0
- package/dist/resources/branding.js +36 -0
- package/dist/resources/branding.js.map +1 -0
- package/dist/resources/health.d.ts +16 -0
- package/dist/resources/health.d.ts.map +1 -0
- package/dist/resources/health.js +19 -0
- package/dist/resources/health.js.map +1 -0
- package/dist/resources/tenants.d.ts +36 -0
- package/dist/resources/tenants.d.ts.map +1 -0
- package/dist/resources/tenants.js +51 -0
- package/dist/resources/tenants.js.map +1 -0
- package/dist/resources/users.d.ts +33 -0
- package/dist/resources/users.d.ts.map +1 -0
- package/dist/resources/users.js +46 -0
- package/dist/resources/users.js.map +1 -0
- package/dist/resources/webhooks.d.ts +113 -0
- package/dist/resources/webhooks.d.ts.map +1 -0
- package/dist/resources/webhooks.js +216 -0
- package/dist/resources/webhooks.js.map +1 -0
- package/dist/resources/whatsapp.d.ts +121 -0
- package/dist/resources/whatsapp.d.ts.map +1 -0
- package/dist/resources/whatsapp.js +183 -0
- package/dist/resources/whatsapp.js.map +1 -0
- package/dist/resources/whatsappAdmin.d.ts +110 -0
- package/dist/resources/whatsappAdmin.d.ts.map +1 -0
- package/dist/resources/whatsappAdmin.js +140 -0
- package/dist/resources/whatsappAdmin.js.map +1 -0
- package/dist/types/admin.d.ts +57 -0
- package/dist/types/admin.d.ts.map +1 -0
- package/dist/types/admin.js +6 -0
- package/dist/types/admin.js.map +1 -0
- package/dist/types/auth.d.ts +31 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +6 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/branding.d.ts +30 -0
- package/dist/types/branding.d.ts.map +1 -0
- package/dist/types/branding.js +6 -0
- package/dist/types/branding.js.map +1 -0
- package/dist/types/common.d.ts +27 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +6 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +26 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/webhook.d.ts +126 -0
- package/dist/types/webhook.d.ts.map +1 -0
- package/dist/types/webhook.js +6 -0
- package/dist/types/webhook.js.map +1 -0
- package/dist/types/whatsapp.d.ts +154 -0
- package/dist/types/whatsapp.d.ts.map +1 -0
- package/dist/types/whatsapp.js +6 -0
- package/dist/types/whatsapp.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { HTTPClient } from '../http/client';
|
|
2
|
+
import { EnqueuedResponse, OperationResult, Device, QRResponse, ConnectRequest, ReconnectRequest, ResetRequest, LogoutRequest, SendMessageRequest, SendReactionRequest, SendMediaRequest, Group, CreateGroupRequest, UpdateGroupSubjectRequest, UpdateGroupDescriptionRequest, ManageGroupParticipantsRequest, LeaveGroupRequest, DeleteGroupRequest, Chat, Contact, GenerateQRLinkRequest, QRLinkResponse, SendQRLinkRequest, PublicQRResponse } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* WhatsApp resource (user endpoints)
|
|
5
|
+
* Requires API Token authentication (x-api-key header)
|
|
6
|
+
*/
|
|
7
|
+
export declare class WhatsAppResource {
|
|
8
|
+
private http;
|
|
9
|
+
constructor(http: HTTPClient);
|
|
10
|
+
/**
|
|
11
|
+
* Connect/start WhatsApp session and generate QR code
|
|
12
|
+
*/
|
|
13
|
+
connect(params?: ConnectRequest): Promise<EnqueuedResponse>;
|
|
14
|
+
/**
|
|
15
|
+
* Force reconnect session (useful for stuck sessions)
|
|
16
|
+
*/
|
|
17
|
+
reconnect(params?: ReconnectRequest): Promise<EnqueuedResponse>;
|
|
18
|
+
/**
|
|
19
|
+
* Reset session (deletes auth state, next connect generates fresh QR)
|
|
20
|
+
*/
|
|
21
|
+
reset(params?: ResetRequest): Promise<EnqueuedResponse>;
|
|
22
|
+
/**
|
|
23
|
+
* Gracefully disconnect and logout
|
|
24
|
+
*/
|
|
25
|
+
logout(params?: LogoutRequest): Promise<EnqueuedResponse>;
|
|
26
|
+
/**
|
|
27
|
+
* Ping device to check connectivity
|
|
28
|
+
*/
|
|
29
|
+
ping(tenantId: string): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Get current QR code
|
|
32
|
+
* QR expires in 20-40 seconds
|
|
33
|
+
*/
|
|
34
|
+
getQR(tenantId: string): Promise<QRResponse>;
|
|
35
|
+
/**
|
|
36
|
+
* Get device info and status
|
|
37
|
+
*/
|
|
38
|
+
getDevice(tenantId: string): Promise<Device | null>;
|
|
39
|
+
/**
|
|
40
|
+
* Send text message
|
|
41
|
+
*/
|
|
42
|
+
sendMessage(params: SendMessageRequest): Promise<EnqueuedResponse>;
|
|
43
|
+
/**
|
|
44
|
+
* Send reaction to a message
|
|
45
|
+
*/
|
|
46
|
+
sendReaction(params: SendReactionRequest): Promise<EnqueuedResponse>;
|
|
47
|
+
/**
|
|
48
|
+
* Send media (image/video/audio/document)
|
|
49
|
+
* Provide either url OR base64 (not both)
|
|
50
|
+
*/
|
|
51
|
+
sendMedia(params: SendMediaRequest): Promise<EnqueuedResponse>;
|
|
52
|
+
/**
|
|
53
|
+
* Create new group
|
|
54
|
+
*/
|
|
55
|
+
createGroup(params: CreateGroupRequest): Promise<EnqueuedResponse>;
|
|
56
|
+
/**
|
|
57
|
+
* Update group subject/name
|
|
58
|
+
*/
|
|
59
|
+
updateGroupSubject(params: UpdateGroupSubjectRequest): Promise<EnqueuedResponse>;
|
|
60
|
+
/**
|
|
61
|
+
* Update group description
|
|
62
|
+
*/
|
|
63
|
+
updateGroupDescription(params: UpdateGroupDescriptionRequest): Promise<EnqueuedResponse>;
|
|
64
|
+
/**
|
|
65
|
+
* Add participants to group
|
|
66
|
+
*/
|
|
67
|
+
addGroupParticipants(params: ManageGroupParticipantsRequest): Promise<EnqueuedResponse>;
|
|
68
|
+
/**
|
|
69
|
+
* Remove participants from group
|
|
70
|
+
*/
|
|
71
|
+
removeGroupParticipants(params: ManageGroupParticipantsRequest): Promise<EnqueuedResponse>;
|
|
72
|
+
/**
|
|
73
|
+
* Promote participants to admin
|
|
74
|
+
*/
|
|
75
|
+
promoteGroupParticipants(params: ManageGroupParticipantsRequest): Promise<EnqueuedResponse>;
|
|
76
|
+
/**
|
|
77
|
+
* Demote participants from admin
|
|
78
|
+
*/
|
|
79
|
+
demoteGroupParticipants(params: ManageGroupParticipantsRequest): Promise<EnqueuedResponse>;
|
|
80
|
+
/**
|
|
81
|
+
* Leave a group
|
|
82
|
+
*/
|
|
83
|
+
leaveGroup(params: LeaveGroupRequest): Promise<EnqueuedResponse>;
|
|
84
|
+
/**
|
|
85
|
+
* Delete group (leave + optionally remove all members)
|
|
86
|
+
*/
|
|
87
|
+
deleteGroup(params: DeleteGroupRequest): Promise<EnqueuedResponse>;
|
|
88
|
+
/**
|
|
89
|
+
* List all groups (cached unless force=true)
|
|
90
|
+
*/
|
|
91
|
+
listGroups(tenantId: string, force?: boolean): Promise<Group[]>;
|
|
92
|
+
/**
|
|
93
|
+
* List all chats (cached unless force=true)
|
|
94
|
+
*/
|
|
95
|
+
listChats(tenantId: string, force?: boolean): Promise<Chat[]>;
|
|
96
|
+
/**
|
|
97
|
+
* List all contacts (cached unless force=true)
|
|
98
|
+
*/
|
|
99
|
+
listContacts(tenantId: string, force?: boolean): Promise<Contact[]>;
|
|
100
|
+
/**
|
|
101
|
+
* Get operation result by correlation ID
|
|
102
|
+
*/
|
|
103
|
+
getOperation(correlationId: string): Promise<OperationResult>;
|
|
104
|
+
/**
|
|
105
|
+
* Generate shareable QR code link for support purposes
|
|
106
|
+
*/
|
|
107
|
+
generateQRLink(params: GenerateQRLinkRequest): Promise<QRLinkResponse>;
|
|
108
|
+
/**
|
|
109
|
+
* Send QR link via WhatsApp message
|
|
110
|
+
*/
|
|
111
|
+
sendQRLink(params: SendQRLinkRequest): Promise<EnqueuedResponse>;
|
|
112
|
+
/**
|
|
113
|
+
* Get public QR from link token (no authentication required)
|
|
114
|
+
*/
|
|
115
|
+
getPublicQR(token: string): Promise<PublicQRResponse>;
|
|
116
|
+
/**
|
|
117
|
+
* Regenerate QR for link token (no authentication required)
|
|
118
|
+
*/
|
|
119
|
+
regeneratePublicQR(token: string): Promise<PublicQRResponse>;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=whatsapp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../../src/resources/whatsapp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WhatsAppResource = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* WhatsApp resource (user endpoints)
|
|
6
|
+
* Requires API Token authentication (x-api-key header)
|
|
7
|
+
*/
|
|
8
|
+
class WhatsAppResource {
|
|
9
|
+
constructor(http) {
|
|
10
|
+
this.http = http;
|
|
11
|
+
}
|
|
12
|
+
// ===== Session Management =====
|
|
13
|
+
/**
|
|
14
|
+
* Connect/start WhatsApp session and generate QR code
|
|
15
|
+
*/
|
|
16
|
+
async connect(params = {}) {
|
|
17
|
+
return this.http.post('/wpp/connect', params);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Force reconnect session (useful for stuck sessions)
|
|
21
|
+
*/
|
|
22
|
+
async reconnect(params = {}) {
|
|
23
|
+
return this.http.post('/wpp/reconnect', params);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Reset session (deletes auth state, next connect generates fresh QR)
|
|
27
|
+
*/
|
|
28
|
+
async reset(params = {}) {
|
|
29
|
+
return this.http.post('/wpp/reset', params);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Gracefully disconnect and logout
|
|
33
|
+
*/
|
|
34
|
+
async logout(params = {}) {
|
|
35
|
+
return this.http.post('/wpp/logout', params);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Ping device to check connectivity
|
|
39
|
+
*/
|
|
40
|
+
async ping(tenantId) {
|
|
41
|
+
await this.http.post(`/wpp/ping/${tenantId}`);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get current QR code
|
|
45
|
+
* QR expires in 20-40 seconds
|
|
46
|
+
*/
|
|
47
|
+
async getQR(tenantId) {
|
|
48
|
+
return this.http.get(`/wpp/${tenantId}/qr`);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get device info and status
|
|
52
|
+
*/
|
|
53
|
+
async getDevice(tenantId) {
|
|
54
|
+
return this.http.get(`/wpp/${tenantId}/device`);
|
|
55
|
+
}
|
|
56
|
+
// ===== Messaging =====
|
|
57
|
+
/**
|
|
58
|
+
* Send text message
|
|
59
|
+
*/
|
|
60
|
+
async sendMessage(params) {
|
|
61
|
+
return this.http.post('/wpp/send', params);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Send reaction to a message
|
|
65
|
+
*/
|
|
66
|
+
async sendReaction(params) {
|
|
67
|
+
return this.http.post('/wpp/reaction', params);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Send media (image/video/audio/document)
|
|
71
|
+
* Provide either url OR base64 (not both)
|
|
72
|
+
*/
|
|
73
|
+
async sendMedia(params) {
|
|
74
|
+
return this.http.post('/wpp/media', params);
|
|
75
|
+
}
|
|
76
|
+
// ===== Group Management =====
|
|
77
|
+
/**
|
|
78
|
+
* Create new group
|
|
79
|
+
*/
|
|
80
|
+
async createGroup(params) {
|
|
81
|
+
return this.http.post('/wpp/group/create', params);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Update group subject/name
|
|
85
|
+
*/
|
|
86
|
+
async updateGroupSubject(params) {
|
|
87
|
+
return this.http.post('/wpp/group/subject', params);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Update group description
|
|
91
|
+
*/
|
|
92
|
+
async updateGroupDescription(params) {
|
|
93
|
+
return this.http.post('/wpp/group/description', params);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Add participants to group
|
|
97
|
+
*/
|
|
98
|
+
async addGroupParticipants(params) {
|
|
99
|
+
return this.http.post('/wpp/group/add', params);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Remove participants from group
|
|
103
|
+
*/
|
|
104
|
+
async removeGroupParticipants(params) {
|
|
105
|
+
return this.http.post('/wpp/group/remove', params);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Promote participants to admin
|
|
109
|
+
*/
|
|
110
|
+
async promoteGroupParticipants(params) {
|
|
111
|
+
return this.http.post('/wpp/group/promote', params);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Demote participants from admin
|
|
115
|
+
*/
|
|
116
|
+
async demoteGroupParticipants(params) {
|
|
117
|
+
return this.http.post('/wpp/group/demote', params);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Leave a group
|
|
121
|
+
*/
|
|
122
|
+
async leaveGroup(params) {
|
|
123
|
+
return this.http.post('/wpp/group/leave', params);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Delete group (leave + optionally remove all members)
|
|
127
|
+
*/
|
|
128
|
+
async deleteGroup(params) {
|
|
129
|
+
return this.http.post('/wpp/group/delete', params);
|
|
130
|
+
}
|
|
131
|
+
// ===== Query Endpoints =====
|
|
132
|
+
/**
|
|
133
|
+
* List all groups (cached unless force=true)
|
|
134
|
+
*/
|
|
135
|
+
async listGroups(tenantId, force = false) {
|
|
136
|
+
return this.http.get(`/wpp/groups?tenantId=${tenantId}&force=${force}`);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* List all chats (cached unless force=true)
|
|
140
|
+
*/
|
|
141
|
+
async listChats(tenantId, force = false) {
|
|
142
|
+
return this.http.get(`/wpp/chats?tenantId=${tenantId}&force=${force}`);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* List all contacts (cached unless force=true)
|
|
146
|
+
*/
|
|
147
|
+
async listContacts(tenantId, force = false) {
|
|
148
|
+
return this.http.get(`/wpp/contacts?tenantId=${tenantId}&force=${force}`);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get operation result by correlation ID
|
|
152
|
+
*/
|
|
153
|
+
async getOperation(correlationId) {
|
|
154
|
+
return this.http.get(`/wpp/operation/${correlationId}`);
|
|
155
|
+
}
|
|
156
|
+
// ===== QR Link Support Tools =====
|
|
157
|
+
/**
|
|
158
|
+
* Generate shareable QR code link for support purposes
|
|
159
|
+
*/
|
|
160
|
+
async generateQRLink(params) {
|
|
161
|
+
return this.http.post('/wpp/generate-qr-link', params);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Send QR link via WhatsApp message
|
|
165
|
+
*/
|
|
166
|
+
async sendQRLink(params) {
|
|
167
|
+
return this.http.post('/wpp/send-qr-link', params);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get public QR from link token (no authentication required)
|
|
171
|
+
*/
|
|
172
|
+
async getPublicQR(token) {
|
|
173
|
+
return this.http.get(`/wpp/public/qr/${token}`);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Regenerate QR for link token (no authentication required)
|
|
177
|
+
*/
|
|
178
|
+
async regeneratePublicQR(token) {
|
|
179
|
+
return this.http.post(`/wpp/public/qr/${token}/regenerate`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
exports.WhatsAppResource = WhatsAppResource;
|
|
183
|
+
//# sourceMappingURL=whatsapp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsapp.js","sourceRoot":"","sources":["../../src/resources/whatsapp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { HTTPClient } from '../http/client';
|
|
2
|
+
import { EnqueuedResponse, OperationResult, Device, QRResponse, DeviceResponse, CallbackParams, Group, PaginatedParticipants, QRLinkResponse, SendQRLinkRequest } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* WhatsApp Admin resource
|
|
5
|
+
* Admin-level control over any tenant's WhatsApp operations
|
|
6
|
+
* Requires JWT authentication with admin role
|
|
7
|
+
*/
|
|
8
|
+
export declare class WhatsAppAdminResource {
|
|
9
|
+
private http;
|
|
10
|
+
constructor(http: HTTPClient);
|
|
11
|
+
/**
|
|
12
|
+
* List all devices across all tenants
|
|
13
|
+
*/
|
|
14
|
+
listDevices(): Promise<Device[]>;
|
|
15
|
+
/**
|
|
16
|
+
* Get device snapshot for a tenant (with QR freshness, status, stats)
|
|
17
|
+
*/
|
|
18
|
+
getDevice(tenantId: string): Promise<DeviceResponse>;
|
|
19
|
+
/**
|
|
20
|
+
* Get current QR code for tenant
|
|
21
|
+
*/
|
|
22
|
+
getQR(tenantId: string): Promise<QRResponse>;
|
|
23
|
+
/**
|
|
24
|
+
* Connect device for tenant
|
|
25
|
+
*/
|
|
26
|
+
connect(tenantId: string, params?: CallbackParams): Promise<EnqueuedResponse>;
|
|
27
|
+
/**
|
|
28
|
+
* Reconnect device for tenant
|
|
29
|
+
*/
|
|
30
|
+
reconnect(tenantId: string, params?: CallbackParams & {
|
|
31
|
+
force?: boolean;
|
|
32
|
+
}): Promise<EnqueuedResponse>;
|
|
33
|
+
/**
|
|
34
|
+
* Disconnect device for tenant
|
|
35
|
+
*/
|
|
36
|
+
disconnect(tenantId: string, params?: CallbackParams): Promise<EnqueuedResponse>;
|
|
37
|
+
/**
|
|
38
|
+
* Reset session for tenant (deletes auth state)
|
|
39
|
+
*/
|
|
40
|
+
reset(tenantId: string, params?: CallbackParams): Promise<EnqueuedResponse>;
|
|
41
|
+
/**
|
|
42
|
+
* Ping device for tenant
|
|
43
|
+
*/
|
|
44
|
+
ping(tenantId: string, params?: CallbackParams): Promise<EnqueuedResponse>;
|
|
45
|
+
/**
|
|
46
|
+
* Get operation result for any tenant
|
|
47
|
+
*/
|
|
48
|
+
getOperation(correlationId: string): Promise<OperationResult>;
|
|
49
|
+
/**
|
|
50
|
+
* Send message as tenant
|
|
51
|
+
*/
|
|
52
|
+
sendMessage(tenantId: string, params: {
|
|
53
|
+
jid: string;
|
|
54
|
+
text: string;
|
|
55
|
+
} & CallbackParams): Promise<EnqueuedResponse>;
|
|
56
|
+
/**
|
|
57
|
+
* Generate QR link for tenant
|
|
58
|
+
*/
|
|
59
|
+
generateQRLink(tenantId: string, params?: {
|
|
60
|
+
deviceId?: string;
|
|
61
|
+
expirationHours?: number;
|
|
62
|
+
}): Promise<QRLinkResponse>;
|
|
63
|
+
/**
|
|
64
|
+
* Send QR link via WhatsApp for tenant
|
|
65
|
+
*/
|
|
66
|
+
sendQRLink(tenantId: string, params: Omit<SendQRLinkRequest, 'senderTenantId'>): Promise<EnqueuedResponse>;
|
|
67
|
+
/**
|
|
68
|
+
* List groups for tenant
|
|
69
|
+
*/
|
|
70
|
+
listGroups(tenantId: string, force?: boolean): Promise<Group[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Get group participants (paginated)
|
|
73
|
+
*/
|
|
74
|
+
getGroupParticipants(tenantId: string, gid: string, page?: number, limit?: number): Promise<PaginatedParticipants>;
|
|
75
|
+
/**
|
|
76
|
+
* Create group for tenant
|
|
77
|
+
*/
|
|
78
|
+
createGroup(tenantId: string, params: {
|
|
79
|
+
subject: string;
|
|
80
|
+
participants?: string[];
|
|
81
|
+
} & CallbackParams): Promise<EnqueuedResponse>;
|
|
82
|
+
/**
|
|
83
|
+
* Update group subject for tenant
|
|
84
|
+
*/
|
|
85
|
+
updateGroupSubject(tenantId: string, gid: string, params: {
|
|
86
|
+
subject: string;
|
|
87
|
+
} & CallbackParams): Promise<EnqueuedResponse>;
|
|
88
|
+
/**
|
|
89
|
+
* Update group description for tenant
|
|
90
|
+
*/
|
|
91
|
+
updateGroupDescription(tenantId: string, gid: string, params: {
|
|
92
|
+
description: string;
|
|
93
|
+
} & CallbackParams): Promise<EnqueuedResponse>;
|
|
94
|
+
/**
|
|
95
|
+
* Manage group participants for tenant
|
|
96
|
+
*/
|
|
97
|
+
manageGroupParticipants(tenantId: string, gid: string, params: {
|
|
98
|
+
action: 'add' | 'remove' | 'promote' | 'demote';
|
|
99
|
+
participants: string[];
|
|
100
|
+
} & CallbackParams): Promise<EnqueuedResponse>;
|
|
101
|
+
/**
|
|
102
|
+
* Leave group for tenant
|
|
103
|
+
*/
|
|
104
|
+
leaveGroup(tenantId: string, gid: string, params?: CallbackParams): Promise<EnqueuedResponse>;
|
|
105
|
+
/**
|
|
106
|
+
* Delete group for tenant
|
|
107
|
+
*/
|
|
108
|
+
deleteGroup(tenantId: string, gid: string, removeAll?: boolean, params?: CallbackParams): Promise<void>;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=whatsappAdmin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsappAdmin.d.ts","sourceRoot":"","sources":["../../src/resources/whatsappAdmin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,MAAM,EACN,UAAU,EACV,cAAc,EACd,cAAc,EACd,KAAK,EAEL,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAElB;;;;GAIG;AACH,qBAAa,qBAAqB;IACpB,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAIpC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAItC;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI1D;;OAEG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAMlD;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIvF;;OAEG;IACG,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAChD,OAAO,CAAC,gBAAgB,CAAC;IAI5B;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI1F;;OAEG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIrF;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMpF;;OAEG;IACG,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAInE;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,GACrD,OAAO,CAAC,gBAAgB,CAAC;IAM5B;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAO,GAC3D,OAAO,CAAC,cAAc,CAAC;IAO1B;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAShH;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAInE;;OAEG;IACG,oBAAoB,CACxB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,SAAI,EACR,KAAK,SAAK,GACT,OAAO,CAAC,qBAAqB,CAAC;IAMjC;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,cAAc,GACpE,OAAO,CAAC,gBAAgB,CAAC;IAI5B;;OAEG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,GAC3C,OAAO,CAAC,gBAAgB,CAAC;IAO5B;;OAEG;IACG,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,GAC/C,OAAO,CAAC,gBAAgB,CAAC;IAO5B;;OAEG;IACG,uBAAuB,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE;QACN,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;QAChD,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,GAAG,cAAc,GACjB,OAAO,CAAC,gBAAgB,CAAC;IAO5B;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAOvG;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,SAAS,UAAQ,EACjB,MAAM,GAAE,cAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC;CAMjB"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WhatsAppAdminResource = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* WhatsApp Admin resource
|
|
6
|
+
* Admin-level control over any tenant's WhatsApp operations
|
|
7
|
+
* Requires JWT authentication with admin role
|
|
8
|
+
*/
|
|
9
|
+
class WhatsAppAdminResource {
|
|
10
|
+
constructor(http) {
|
|
11
|
+
this.http = http;
|
|
12
|
+
}
|
|
13
|
+
// ===== Device Management =====
|
|
14
|
+
/**
|
|
15
|
+
* List all devices across all tenants
|
|
16
|
+
*/
|
|
17
|
+
async listDevices() {
|
|
18
|
+
return this.http.get('/admin/wpp/devices');
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get device snapshot for a tenant (with QR freshness, status, stats)
|
|
22
|
+
*/
|
|
23
|
+
async getDevice(tenantId) {
|
|
24
|
+
return this.http.get(`/admin/wpp/tenants/${tenantId}/device`);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get current QR code for tenant
|
|
28
|
+
*/
|
|
29
|
+
async getQR(tenantId) {
|
|
30
|
+
return this.http.get(`/admin/wpp/tenants/${tenantId}/qr`);
|
|
31
|
+
}
|
|
32
|
+
// ===== Session Management =====
|
|
33
|
+
/**
|
|
34
|
+
* Connect device for tenant
|
|
35
|
+
*/
|
|
36
|
+
async connect(tenantId, params = {}) {
|
|
37
|
+
return this.http.post(`/admin/wpp/tenants/${tenantId}/connect`, params);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Reconnect device for tenant
|
|
41
|
+
*/
|
|
42
|
+
async reconnect(tenantId, params = {}) {
|
|
43
|
+
return this.http.post(`/admin/wpp/tenants/${tenantId}/reconnect`, params);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Disconnect device for tenant
|
|
47
|
+
*/
|
|
48
|
+
async disconnect(tenantId, params = {}) {
|
|
49
|
+
return this.http.post(`/admin/wpp/tenants/${tenantId}/disconnect`, params);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Reset session for tenant (deletes auth state)
|
|
53
|
+
*/
|
|
54
|
+
async reset(tenantId, params = {}) {
|
|
55
|
+
return this.http.post(`/admin/wpp/tenants/${tenantId}/reset`, params);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Ping device for tenant
|
|
59
|
+
*/
|
|
60
|
+
async ping(tenantId, params = {}) {
|
|
61
|
+
return this.http.post(`/admin/wpp/tenants/${tenantId}/ping`, params);
|
|
62
|
+
}
|
|
63
|
+
// ===== Operations =====
|
|
64
|
+
/**
|
|
65
|
+
* Get operation result for any tenant
|
|
66
|
+
*/
|
|
67
|
+
async getOperation(correlationId) {
|
|
68
|
+
return this.http.get(`/admin/wpp/operation/${correlationId}`);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Send message as tenant
|
|
72
|
+
*/
|
|
73
|
+
async sendMessage(tenantId, params) {
|
|
74
|
+
return this.http.post(`/admin/wpp/tenants/${tenantId}/send-message`, params);
|
|
75
|
+
}
|
|
76
|
+
// ===== QR Link Tools =====
|
|
77
|
+
/**
|
|
78
|
+
* Generate QR link for tenant
|
|
79
|
+
*/
|
|
80
|
+
async generateQRLink(tenantId, params = {}) {
|
|
81
|
+
return this.http.post(`/admin/wpp/tenants/${tenantId}/generate-qr-link`, params);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Send QR link via WhatsApp for tenant
|
|
85
|
+
*/
|
|
86
|
+
async sendQRLink(tenantId, params) {
|
|
87
|
+
return this.http.post(`/admin/wpp/tenants/${tenantId}/send-qr-link`, params);
|
|
88
|
+
}
|
|
89
|
+
// ===== Group Management =====
|
|
90
|
+
/**
|
|
91
|
+
* List groups for tenant
|
|
92
|
+
*/
|
|
93
|
+
async listGroups(tenantId, force = false) {
|
|
94
|
+
return this.http.get(`/admin/wpp/tenants/${tenantId}/groups?force=${force}`);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get group participants (paginated)
|
|
98
|
+
*/
|
|
99
|
+
async getGroupParticipants(tenantId, gid, page = 1, limit = 20) {
|
|
100
|
+
return this.http.get(`/admin/wpp/tenants/${tenantId}/groups/${gid}/participants?page=${page}&limit=${limit}`);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Create group for tenant
|
|
104
|
+
*/
|
|
105
|
+
async createGroup(tenantId, params) {
|
|
106
|
+
return this.http.post(`/admin/wpp/tenants/${tenantId}/groups`, params);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Update group subject for tenant
|
|
110
|
+
*/
|
|
111
|
+
async updateGroupSubject(tenantId, gid, params) {
|
|
112
|
+
return this.http.patch(`/admin/wpp/tenants/${tenantId}/groups/${gid}/subject`, params);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Update group description for tenant
|
|
116
|
+
*/
|
|
117
|
+
async updateGroupDescription(tenantId, gid, params) {
|
|
118
|
+
return this.http.patch(`/admin/wpp/tenants/${tenantId}/groups/${gid}/description`, params);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Manage group participants for tenant
|
|
122
|
+
*/
|
|
123
|
+
async manageGroupParticipants(tenantId, gid, params) {
|
|
124
|
+
return this.http.post(`/admin/wpp/tenants/${tenantId}/groups/${gid}/participants`, params);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Leave group for tenant
|
|
128
|
+
*/
|
|
129
|
+
async leaveGroup(tenantId, gid, params = {}) {
|
|
130
|
+
return this.http.post(`/admin/wpp/tenants/${tenantId}/groups/${gid}/leave`, params);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Delete group for tenant
|
|
134
|
+
*/
|
|
135
|
+
async deleteGroup(tenantId, gid, removeAll = false, params = {}) {
|
|
136
|
+
await this.http.delete(`/admin/wpp/tenants/${tenantId}/groups/${gid}?removeAll=${removeAll}`, { data: params });
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.WhatsAppAdminResource = WhatsAppAdminResource;
|
|
140
|
+
//# sourceMappingURL=whatsappAdmin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsappAdmin.js","sourceRoot":"","sources":["../../src/resources/whatsappAdmin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin resource types (users, tenants, API tokens)
|
|
3
|
+
*/
|
|
4
|
+
import { User } from './auth';
|
|
5
|
+
export interface CreateUserRequest {
|
|
6
|
+
email: string;
|
|
7
|
+
password: string;
|
|
8
|
+
role: 'admin' | 'user';
|
|
9
|
+
tenantId?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface UpdateUserRequest {
|
|
12
|
+
email?: string;
|
|
13
|
+
role?: 'admin' | 'user';
|
|
14
|
+
tenantId?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface Tenant {
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
createdAt: string;
|
|
20
|
+
updatedAt: string;
|
|
21
|
+
settings?: TenantSettings;
|
|
22
|
+
}
|
|
23
|
+
export interface TenantSettings {
|
|
24
|
+
webhookUrl?: string;
|
|
25
|
+
webhookSecret?: string;
|
|
26
|
+
retryAttempts?: number;
|
|
27
|
+
retryBackoffMs?: number;
|
|
28
|
+
}
|
|
29
|
+
export interface CreateTenantRequest {
|
|
30
|
+
name: string;
|
|
31
|
+
}
|
|
32
|
+
export interface UpdateTenantRequest {
|
|
33
|
+
name: string;
|
|
34
|
+
}
|
|
35
|
+
export interface UpdateTenantSettingsRequest {
|
|
36
|
+
webhookUrl?: string;
|
|
37
|
+
webhookSecret?: string;
|
|
38
|
+
retryAttempts?: number;
|
|
39
|
+
retryBackoffMs?: number;
|
|
40
|
+
}
|
|
41
|
+
export interface APIToken {
|
|
42
|
+
id: string;
|
|
43
|
+
key?: string;
|
|
44
|
+
prefix: string;
|
|
45
|
+
name?: string;
|
|
46
|
+
tenantId: string;
|
|
47
|
+
isTest: boolean;
|
|
48
|
+
expiresAt?: string;
|
|
49
|
+
createdAt: string;
|
|
50
|
+
lastUsedAt?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface CreateAPITokenRequest {
|
|
53
|
+
name?: string;
|
|
54
|
+
expiresAt?: string;
|
|
55
|
+
}
|
|
56
|
+
export { User };
|
|
57
|
+
//# sourceMappingURL=admin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/types/admin.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/types/admin.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|