@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.
Files changed (82) hide show
  1. package/README.md +486 -0
  2. package/dist/client.d.ts +81 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +97 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/errors/index.d.ts +42 -0
  7. package/dist/errors/index.d.ts.map +1 -0
  8. package/dist/errors/index.js +70 -0
  9. package/dist/errors/index.js.map +1 -0
  10. package/dist/http/client.d.ts +48 -0
  11. package/dist/http/client.d.ts.map +1 -0
  12. package/dist/http/client.js +125 -0
  13. package/dist/http/client.js.map +1 -0
  14. package/dist/index.d.ts +33 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +66 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/resources/apiTokens.d.ts +29 -0
  19. package/dist/resources/apiTokens.d.ts.map +1 -0
  20. package/dist/resources/apiTokens.js +38 -0
  21. package/dist/resources/apiTokens.js.map +1 -0
  22. package/dist/resources/auth.d.ts +29 -0
  23. package/dist/resources/auth.d.ts.map +1 -0
  24. package/dist/resources/auth.js +43 -0
  25. package/dist/resources/auth.js.map +1 -0
  26. package/dist/resources/branding.d.ts +27 -0
  27. package/dist/resources/branding.d.ts.map +1 -0
  28. package/dist/resources/branding.js +36 -0
  29. package/dist/resources/branding.js.map +1 -0
  30. package/dist/resources/health.d.ts +16 -0
  31. package/dist/resources/health.d.ts.map +1 -0
  32. package/dist/resources/health.js +19 -0
  33. package/dist/resources/health.js.map +1 -0
  34. package/dist/resources/tenants.d.ts +36 -0
  35. package/dist/resources/tenants.d.ts.map +1 -0
  36. package/dist/resources/tenants.js +51 -0
  37. package/dist/resources/tenants.js.map +1 -0
  38. package/dist/resources/users.d.ts +33 -0
  39. package/dist/resources/users.d.ts.map +1 -0
  40. package/dist/resources/users.js +46 -0
  41. package/dist/resources/users.js.map +1 -0
  42. package/dist/resources/webhooks.d.ts +113 -0
  43. package/dist/resources/webhooks.d.ts.map +1 -0
  44. package/dist/resources/webhooks.js +216 -0
  45. package/dist/resources/webhooks.js.map +1 -0
  46. package/dist/resources/whatsapp.d.ts +121 -0
  47. package/dist/resources/whatsapp.d.ts.map +1 -0
  48. package/dist/resources/whatsapp.js +183 -0
  49. package/dist/resources/whatsapp.js.map +1 -0
  50. package/dist/resources/whatsappAdmin.d.ts +110 -0
  51. package/dist/resources/whatsappAdmin.d.ts.map +1 -0
  52. package/dist/resources/whatsappAdmin.js +140 -0
  53. package/dist/resources/whatsappAdmin.js.map +1 -0
  54. package/dist/types/admin.d.ts +57 -0
  55. package/dist/types/admin.d.ts.map +1 -0
  56. package/dist/types/admin.js +6 -0
  57. package/dist/types/admin.js.map +1 -0
  58. package/dist/types/auth.d.ts +31 -0
  59. package/dist/types/auth.d.ts.map +1 -0
  60. package/dist/types/auth.js +6 -0
  61. package/dist/types/auth.js.map +1 -0
  62. package/dist/types/branding.d.ts +30 -0
  63. package/dist/types/branding.d.ts.map +1 -0
  64. package/dist/types/branding.js +6 -0
  65. package/dist/types/branding.js.map +1 -0
  66. package/dist/types/common.d.ts +27 -0
  67. package/dist/types/common.d.ts.map +1 -0
  68. package/dist/types/common.js +6 -0
  69. package/dist/types/common.js.map +1 -0
  70. package/dist/types/index.d.ts +10 -0
  71. package/dist/types/index.d.ts.map +1 -0
  72. package/dist/types/index.js +26 -0
  73. package/dist/types/index.js.map +1 -0
  74. package/dist/types/webhook.d.ts +126 -0
  75. package/dist/types/webhook.d.ts.map +1 -0
  76. package/dist/types/webhook.js +6 -0
  77. package/dist/types/webhook.js.map +1 -0
  78. package/dist/types/whatsapp.d.ts +154 -0
  79. package/dist/types/whatsapp.d.ts.map +1 -0
  80. package/dist/types/whatsapp.js +6 -0
  81. package/dist/types/whatsapp.js.map +1 -0
  82. 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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,MAAM,EACN,UAAU,EAEV,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,EACL,kBAAkB,EAClB,yBAAyB,EACzB,6BAA6B,EAC7B,8BAA8B,EAC9B,iBAAiB,EACjB,kBAAkB,EAClB,IAAI,EACJ,OAAO,EACP,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB;;;GAGG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAIpC;;OAEG;IACG,OAAO,CAAC,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIrE;;OAEG;IACG,SAAS,CAAC,MAAM,GAAE,gBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIzE;;OAEG;IACG,KAAK,CAAC,MAAM,GAAE,YAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIjE;;OAEG;IACG,MAAM,CAAC,MAAM,GAAE,aAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAInE;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C;;;OAGG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAIlD;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMzD;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIxE;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI1E;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMpE;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIxE;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAItF;;OAEG;IACG,sBAAsB,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI9F;;OAEG;IACG,oBAAoB,CAAC,MAAM,EAAE,8BAA8B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI7F;;OAEG;IACG,uBAAuB,CAAC,MAAM,EAAE,8BAA8B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIhG;;OAEG;IACG,wBAAwB,CAAC,MAAM,EAAE,8BAA8B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIjG;;OAEG;IACG,uBAAuB,CAAC,MAAM,EAAE,8BAA8B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIhG;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAItE;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMxE;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAInE;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAIjE;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIvE;;OAEG;IACG,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAMnE;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI5E;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAItE;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI3D;;OAEG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAGnE"}
@@ -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":"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"}
@@ -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":";;;AAeA;;;;GAIG;AACH,MAAa,qBAAqB;IAChC,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAExC,gCAAgC;IAEhC;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAW,oBAAoB,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiB,sBAAsB,QAAQ,SAAS,CAAC,CAAC;IAChF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAa,sBAAsB,QAAQ,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,iCAAiC;IAEjC;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,SAAyB,EAAE;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,sBAAsB,QAAQ,UAAU,EAAE,MAAM,CAAC,CAAC;IAC5F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,QAAgB,EAChB,SAA+C,EAAE;QAEjD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,sBAAsB,QAAQ,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,SAAyB,EAAE;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,sBAAsB,QAAQ,aAAa,EAAE,MAAM,CAAC,CAAC;IAC/F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,SAAyB,EAAE;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,sBAAsB,QAAQ,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,SAAyB,EAAE;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,sBAAsB,QAAQ,OAAO,EAAE,MAAM,CAAC,CAAC;IACzF,CAAC;IAED,yBAAyB;IAEzB;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,aAAqB;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,wBAAwB,aAAa,EAAE,CAAC,CAAC;IACjF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,MAAsD;QAEtD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,sBAAsB,QAAQ,eAAe,EAAE,MAAM,CAAC,CAAC;IACjG,CAAC;IAED,4BAA4B;IAE5B;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAA0D,EAAE;QAE5D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,sBAAsB,QAAQ,mBAAmB,EACjD,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,MAAiD;QAClF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,sBAAsB,QAAQ,eAAe,EAC7C,MAAM,CACP,CAAC;IACJ,CAAC;IAED,+BAA+B;IAE/B;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,KAAK,GAAG,KAAK;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAU,sBAAsB,QAAQ,iBAAiB,KAAK,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CACxB,QAAgB,EAChB,GAAW,EACX,IAAI,GAAG,CAAC,EACR,KAAK,GAAG,EAAE;QAEV,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,sBAAsB,QAAQ,WAAW,GAAG,sBAAsB,IAAI,UAAU,KAAK,EAAE,CACxF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,MAAqE;QAErE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,sBAAsB,QAAQ,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACtB,QAAgB,EAChB,GAAW,EACX,MAA4C;QAE5C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CACpB,sBAAsB,QAAQ,WAAW,GAAG,UAAU,EACtD,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAC1B,QAAgB,EAChB,GAAW,EACX,MAAgD;QAEhD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CACpB,sBAAsB,QAAQ,WAAW,GAAG,cAAc,EAC1D,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAC3B,QAAgB,EAChB,GAAW,EACX,MAGkB;QAElB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,sBAAsB,QAAQ,WAAW,GAAG,eAAe,EAC3D,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,GAAW,EAAE,SAAyB,EAAE;QACzE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,sBAAsB,QAAQ,WAAW,GAAG,QAAQ,EACpD,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,GAAW,EACX,SAAS,GAAG,KAAK,EACjB,SAAyB,EAAE;QAE3B,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CACpB,sBAAsB,QAAQ,WAAW,GAAG,cAAc,SAAS,EAAE,EACrE,EAAE,IAAI,EAAE,MAAM,EAAE,CACjB,CAAC;IACJ,CAAC;CACF;AApND,sDAoNC"}
@@ -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,6 @@
1
+ "use strict";
2
+ /**
3
+ * Admin resource types (users, tenants, API tokens)
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/types/admin.ts"],"names":[],"mappings":";AAAA;;GAEG"}