@atribu/node 0.1.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/CHANGELOG.md +27 -0
- package/LICENSE +21 -0
- package/README.md +423 -0
- package/dist/admin/index.cjs +326 -0
- package/dist/admin/index.cjs.map +1 -0
- package/dist/admin/index.d.cts +46 -0
- package/dist/admin/index.d.ts +46 -0
- package/dist/admin/index.js +323 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/api.d-BXINTQo6.d.cts +3547 -0
- package/dist/api.d-BXINTQo6.d.ts +3547 -0
- package/dist/errors-D3ApBz8J.d.cts +86 -0
- package/dist/errors-D3ApBz8J.d.ts +86 -0
- package/dist/index.cjs +549 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +198 -0
- package/dist/index.d.ts +198 -0
- package/dist/index.js +536 -0
- package/dist/index.js.map +1 -0
- package/dist/next/index.cjs +153 -0
- package/dist/next/index.cjs.map +1 -0
- package/dist/next/index.d.cts +43 -0
- package/dist/next/index.d.ts +43 -0
- package/dist/next/index.js +151 -0
- package/dist/next/index.js.map +1 -0
- package/dist/oauth/index.cjs +299 -0
- package/dist/oauth/index.cjs.map +1 -0
- package/dist/oauth/index.d.cts +117 -0
- package/dist/oauth/index.d.ts +117 -0
- package/dist/oauth/index.js +291 -0
- package/dist/oauth/index.js.map +1 -0
- package/dist/test/index.cjs +443 -0
- package/dist/test/index.cjs.map +1 -0
- package/dist/test/index.d.cts +321 -0
- package/dist/test/index.d.ts +321 -0
- package/dist/test/index.js +437 -0
- package/dist/test/index.js.map +1 -0
- package/dist/types-Dc6tIN_V.d.cts +101 -0
- package/dist/types-Dc6tIN_V.d.ts +101 -0
- package/dist/webhooks/index.cjs +97 -0
- package/dist/webhooks/index.cjs.map +1 -0
- package/dist/webhooks/index.d.cts +35 -0
- package/dist/webhooks/index.d.ts +35 -0
- package/dist/webhooks/index.js +94 -0
- package/dist/webhooks/index.js.map +1 -0
- package/package.json +101 -0
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
import { HttpHandler } from 'msw';
|
|
2
|
+
import { A as AtribuWebhookEvent, h as WhatsAppMessageReceivedEvent, g as WhatsAppMessageDeliveryEvent, e as InstagramMessageReceivedEvent, c as InstagramMessageDeliveryEvent } from '../types-Dc6tIN_V.cjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Drop-in MSW v2 handlers for testing against `@atribu/sdk`.
|
|
6
|
+
*
|
|
7
|
+
* Consumers add these to their MSW server setup:
|
|
8
|
+
*
|
|
9
|
+
* import { setupServer } from "msw/node";
|
|
10
|
+
* import { atribuMockHandlers } from "@atribu/sdk/test";
|
|
11
|
+
*
|
|
12
|
+
* const server = setupServer(...atribuMockHandlers());
|
|
13
|
+
*
|
|
14
|
+
* Per-endpoint defaults reflect the wire shape the real Atribu API returns.
|
|
15
|
+
* Override any response by passing `MockOverrides` — the handler returns
|
|
16
|
+
* the override directly if `body` is provided; otherwise the default
|
|
17
|
+
* envelope from `responseFixtures`.
|
|
18
|
+
*
|
|
19
|
+
* MSW v2 is a peer dependency. Consumers must install it.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
interface EndpointOverride {
|
|
23
|
+
status?: number;
|
|
24
|
+
body?: unknown;
|
|
25
|
+
}
|
|
26
|
+
interface MockOverrides {
|
|
27
|
+
baseUrl?: string;
|
|
28
|
+
messages?: {
|
|
29
|
+
send?: EndpointOverride;
|
|
30
|
+
};
|
|
31
|
+
comments?: {
|
|
32
|
+
reply?: EndpointOverride;
|
|
33
|
+
privateReply?: EndpointOverride;
|
|
34
|
+
};
|
|
35
|
+
webhooks?: {
|
|
36
|
+
subscriptions?: {
|
|
37
|
+
list?: EndpointOverride;
|
|
38
|
+
create?: EndpointOverride;
|
|
39
|
+
update?: EndpointOverride;
|
|
40
|
+
delete?: EndpointOverride;
|
|
41
|
+
rotateSecret?: EndpointOverride;
|
|
42
|
+
test?: EndpointOverride;
|
|
43
|
+
};
|
|
44
|
+
deliveries?: {
|
|
45
|
+
replay?: EndpointOverride;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
oauth?: {
|
|
49
|
+
token?: EndpointOverride;
|
|
50
|
+
revoke?: EndpointOverride;
|
|
51
|
+
};
|
|
52
|
+
admin?: {
|
|
53
|
+
create?: EndpointOverride;
|
|
54
|
+
update?: EndpointOverride;
|
|
55
|
+
suspend?: EndpointOverride;
|
|
56
|
+
rotateClientSecret?: EndpointOverride;
|
|
57
|
+
rotateJwtSecret?: EndpointOverride;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
declare function atribuMockHandlers(overrides?: MockOverrides): HttpHandler[];
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Canned fixtures for testing against the Atribu SDK.
|
|
64
|
+
*
|
|
65
|
+
* Use these to drive your test cases with realistic event shapes, or pass
|
|
66
|
+
* `body` overrides into `atribuMockHandlers({...})` to customize responses.
|
|
67
|
+
*/
|
|
68
|
+
|
|
69
|
+
type DeepPartial<T> = T extends object ? {
|
|
70
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
71
|
+
} : T;
|
|
72
|
+
declare const sampleIds: {
|
|
73
|
+
readonly appId: "00000000-0000-0000-0000-000000000aaa";
|
|
74
|
+
readonly connectionId: "00000000-0000-0000-0000-000000000bbb";
|
|
75
|
+
readonly profileId: "00000000-0000-0000-0000-000000000ccc";
|
|
76
|
+
readonly workspaceId: "00000000-0000-0000-0000-000000000ddd";
|
|
77
|
+
readonly subscriptionId: "00000000-0000-0000-0000-000000000eee";
|
|
78
|
+
};
|
|
79
|
+
/** Canned webhook event fixtures — deep-merge any field you care about. */
|
|
80
|
+
declare const eventFixtures: {
|
|
81
|
+
whatsappMessageReceived(overrides?: DeepPartial<WhatsAppMessageReceivedEvent>): WhatsAppMessageReceivedEvent;
|
|
82
|
+
whatsappMessageDelivery(overrides?: DeepPartial<WhatsAppMessageDeliveryEvent>): WhatsAppMessageDeliveryEvent;
|
|
83
|
+
instagramFbLoginMessage(overrides?: DeepPartial<InstagramMessageReceivedEvent>): InstagramMessageReceivedEvent;
|
|
84
|
+
instagramPostback(overrides?: DeepPartial<InstagramMessageReceivedEvent>): InstagramMessageReceivedEvent;
|
|
85
|
+
instagramIgLoginChange(overrides?: DeepPartial<InstagramMessageReceivedEvent>): InstagramMessageReceivedEvent;
|
|
86
|
+
instagramMessageDelivery(overrides?: DeepPartial<InstagramMessageDeliveryEvent>): InstagramMessageDeliveryEvent;
|
|
87
|
+
};
|
|
88
|
+
/** Canned API response envelopes (matches what the server returns on 200). */
|
|
89
|
+
declare const responseFixtures: {
|
|
90
|
+
messageSent(overrides?: {
|
|
91
|
+
provider_message_id?: string;
|
|
92
|
+
sent_at?: string;
|
|
93
|
+
}): {
|
|
94
|
+
data: {
|
|
95
|
+
connection_id: string;
|
|
96
|
+
channel: "whatsapp";
|
|
97
|
+
to: string;
|
|
98
|
+
provider_message_id: string;
|
|
99
|
+
sent_at: string;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
commentReply(overrides?: {
|
|
103
|
+
provider_message_id?: string;
|
|
104
|
+
}): {
|
|
105
|
+
data: {
|
|
106
|
+
comment_id: string;
|
|
107
|
+
kind: "private_reply";
|
|
108
|
+
connection_id: string;
|
|
109
|
+
provider_message_id: string;
|
|
110
|
+
sent_at: string;
|
|
111
|
+
};
|
|
112
|
+
meta: {
|
|
113
|
+
profile_id: string;
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
subscriptionCreated(overrides?: {
|
|
117
|
+
secret?: string;
|
|
118
|
+
url?: string;
|
|
119
|
+
}): {
|
|
120
|
+
data: {
|
|
121
|
+
id: string;
|
|
122
|
+
app_id: string;
|
|
123
|
+
profile_id: string;
|
|
124
|
+
url: string;
|
|
125
|
+
events: string[];
|
|
126
|
+
providers: string[];
|
|
127
|
+
status: "active";
|
|
128
|
+
last_delivery_at: null;
|
|
129
|
+
consecutive_failures: number;
|
|
130
|
+
previous_secret_expires_at: null;
|
|
131
|
+
created_at: string;
|
|
132
|
+
updated_at: string;
|
|
133
|
+
secret: string;
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
subscriptionList(overrides?: {
|
|
137
|
+
items?: number;
|
|
138
|
+
}): {
|
|
139
|
+
data: {
|
|
140
|
+
id: string;
|
|
141
|
+
app_id: string;
|
|
142
|
+
profile_id: string;
|
|
143
|
+
url: string;
|
|
144
|
+
events: string[];
|
|
145
|
+
providers: string[];
|
|
146
|
+
status: "active";
|
|
147
|
+
last_delivery_at: null;
|
|
148
|
+
consecutive_failures: number;
|
|
149
|
+
previous_secret_expires_at: null;
|
|
150
|
+
created_at: string;
|
|
151
|
+
updated_at: string;
|
|
152
|
+
}[];
|
|
153
|
+
meta: {
|
|
154
|
+
profile_id: string;
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
rotatedSecret(overrides?: {
|
|
158
|
+
secret?: string;
|
|
159
|
+
graceDays?: number;
|
|
160
|
+
}): {
|
|
161
|
+
data: {
|
|
162
|
+
subscription_id: string;
|
|
163
|
+
secret: string;
|
|
164
|
+
grace_days: number;
|
|
165
|
+
previous_secret_expires_at: string;
|
|
166
|
+
};
|
|
167
|
+
meta: {
|
|
168
|
+
profile_id: string;
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
oauthTokenResponse(overrides?: {
|
|
172
|
+
accessToken?: string;
|
|
173
|
+
scope?: string;
|
|
174
|
+
}): {
|
|
175
|
+
access_token: string;
|
|
176
|
+
token_type: "bearer";
|
|
177
|
+
scope: string;
|
|
178
|
+
connection_id: string;
|
|
179
|
+
profile_id: string;
|
|
180
|
+
workspace_id: string;
|
|
181
|
+
};
|
|
182
|
+
oauthError(error?: string, description?: string): {
|
|
183
|
+
error: string;
|
|
184
|
+
error_description: string;
|
|
185
|
+
};
|
|
186
|
+
apiError(code: string, message: string, status: number): {
|
|
187
|
+
error: {
|
|
188
|
+
code: string;
|
|
189
|
+
message: string;
|
|
190
|
+
status: number;
|
|
191
|
+
request_id: string;
|
|
192
|
+
};
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
/** Combined export so consumers can `import { fixtures } from "@atribu/sdk/test"`. */
|
|
196
|
+
declare const fixtures: {
|
|
197
|
+
ids: {
|
|
198
|
+
readonly appId: "00000000-0000-0000-0000-000000000aaa";
|
|
199
|
+
readonly connectionId: "00000000-0000-0000-0000-000000000bbb";
|
|
200
|
+
readonly profileId: "00000000-0000-0000-0000-000000000ccc";
|
|
201
|
+
readonly workspaceId: "00000000-0000-0000-0000-000000000ddd";
|
|
202
|
+
readonly subscriptionId: "00000000-0000-0000-0000-000000000eee";
|
|
203
|
+
};
|
|
204
|
+
events: {
|
|
205
|
+
whatsappMessageReceived(overrides?: DeepPartial<WhatsAppMessageReceivedEvent>): WhatsAppMessageReceivedEvent;
|
|
206
|
+
whatsappMessageDelivery(overrides?: DeepPartial<WhatsAppMessageDeliveryEvent>): WhatsAppMessageDeliveryEvent;
|
|
207
|
+
instagramFbLoginMessage(overrides?: DeepPartial<InstagramMessageReceivedEvent>): InstagramMessageReceivedEvent;
|
|
208
|
+
instagramPostback(overrides?: DeepPartial<InstagramMessageReceivedEvent>): InstagramMessageReceivedEvent;
|
|
209
|
+
instagramIgLoginChange(overrides?: DeepPartial<InstagramMessageReceivedEvent>): InstagramMessageReceivedEvent;
|
|
210
|
+
instagramMessageDelivery(overrides?: DeepPartial<InstagramMessageDeliveryEvent>): InstagramMessageDeliveryEvent;
|
|
211
|
+
};
|
|
212
|
+
responses: {
|
|
213
|
+
messageSent(overrides?: {
|
|
214
|
+
provider_message_id?: string;
|
|
215
|
+
sent_at?: string;
|
|
216
|
+
}): {
|
|
217
|
+
data: {
|
|
218
|
+
connection_id: string;
|
|
219
|
+
channel: "whatsapp";
|
|
220
|
+
to: string;
|
|
221
|
+
provider_message_id: string;
|
|
222
|
+
sent_at: string;
|
|
223
|
+
};
|
|
224
|
+
};
|
|
225
|
+
commentReply(overrides?: {
|
|
226
|
+
provider_message_id?: string;
|
|
227
|
+
}): {
|
|
228
|
+
data: {
|
|
229
|
+
comment_id: string;
|
|
230
|
+
kind: "private_reply";
|
|
231
|
+
connection_id: string;
|
|
232
|
+
provider_message_id: string;
|
|
233
|
+
sent_at: string;
|
|
234
|
+
};
|
|
235
|
+
meta: {
|
|
236
|
+
profile_id: string;
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
subscriptionCreated(overrides?: {
|
|
240
|
+
secret?: string;
|
|
241
|
+
url?: string;
|
|
242
|
+
}): {
|
|
243
|
+
data: {
|
|
244
|
+
id: string;
|
|
245
|
+
app_id: string;
|
|
246
|
+
profile_id: string;
|
|
247
|
+
url: string;
|
|
248
|
+
events: string[];
|
|
249
|
+
providers: string[];
|
|
250
|
+
status: "active";
|
|
251
|
+
last_delivery_at: null;
|
|
252
|
+
consecutive_failures: number;
|
|
253
|
+
previous_secret_expires_at: null;
|
|
254
|
+
created_at: string;
|
|
255
|
+
updated_at: string;
|
|
256
|
+
secret: string;
|
|
257
|
+
};
|
|
258
|
+
};
|
|
259
|
+
subscriptionList(overrides?: {
|
|
260
|
+
items?: number;
|
|
261
|
+
}): {
|
|
262
|
+
data: {
|
|
263
|
+
id: string;
|
|
264
|
+
app_id: string;
|
|
265
|
+
profile_id: string;
|
|
266
|
+
url: string;
|
|
267
|
+
events: string[];
|
|
268
|
+
providers: string[];
|
|
269
|
+
status: "active";
|
|
270
|
+
last_delivery_at: null;
|
|
271
|
+
consecutive_failures: number;
|
|
272
|
+
previous_secret_expires_at: null;
|
|
273
|
+
created_at: string;
|
|
274
|
+
updated_at: string;
|
|
275
|
+
}[];
|
|
276
|
+
meta: {
|
|
277
|
+
profile_id: string;
|
|
278
|
+
};
|
|
279
|
+
};
|
|
280
|
+
rotatedSecret(overrides?: {
|
|
281
|
+
secret?: string;
|
|
282
|
+
graceDays?: number;
|
|
283
|
+
}): {
|
|
284
|
+
data: {
|
|
285
|
+
subscription_id: string;
|
|
286
|
+
secret: string;
|
|
287
|
+
grace_days: number;
|
|
288
|
+
previous_secret_expires_at: string;
|
|
289
|
+
};
|
|
290
|
+
meta: {
|
|
291
|
+
profile_id: string;
|
|
292
|
+
};
|
|
293
|
+
};
|
|
294
|
+
oauthTokenResponse(overrides?: {
|
|
295
|
+
accessToken?: string;
|
|
296
|
+
scope?: string;
|
|
297
|
+
}): {
|
|
298
|
+
access_token: string;
|
|
299
|
+
token_type: "bearer";
|
|
300
|
+
scope: string;
|
|
301
|
+
connection_id: string;
|
|
302
|
+
profile_id: string;
|
|
303
|
+
workspace_id: string;
|
|
304
|
+
};
|
|
305
|
+
oauthError(error?: string, description?: string): {
|
|
306
|
+
error: string;
|
|
307
|
+
error_description: string;
|
|
308
|
+
};
|
|
309
|
+
apiError(code: string, message: string, status: number): {
|
|
310
|
+
error: {
|
|
311
|
+
code: string;
|
|
312
|
+
message: string;
|
|
313
|
+
status: number;
|
|
314
|
+
request_id: string;
|
|
315
|
+
};
|
|
316
|
+
};
|
|
317
|
+
};
|
|
318
|
+
};
|
|
319
|
+
type FixtureWebhookEvent = AtribuWebhookEvent;
|
|
320
|
+
|
|
321
|
+
export { type FixtureWebhookEvent, type MockOverrides, atribuMockHandlers, eventFixtures, fixtures, responseFixtures, sampleIds };
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
import { HttpHandler } from 'msw';
|
|
2
|
+
import { A as AtribuWebhookEvent, h as WhatsAppMessageReceivedEvent, g as WhatsAppMessageDeliveryEvent, e as InstagramMessageReceivedEvent, c as InstagramMessageDeliveryEvent } from '../types-Dc6tIN_V.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Drop-in MSW v2 handlers for testing against `@atribu/sdk`.
|
|
6
|
+
*
|
|
7
|
+
* Consumers add these to their MSW server setup:
|
|
8
|
+
*
|
|
9
|
+
* import { setupServer } from "msw/node";
|
|
10
|
+
* import { atribuMockHandlers } from "@atribu/sdk/test";
|
|
11
|
+
*
|
|
12
|
+
* const server = setupServer(...atribuMockHandlers());
|
|
13
|
+
*
|
|
14
|
+
* Per-endpoint defaults reflect the wire shape the real Atribu API returns.
|
|
15
|
+
* Override any response by passing `MockOverrides` — the handler returns
|
|
16
|
+
* the override directly if `body` is provided; otherwise the default
|
|
17
|
+
* envelope from `responseFixtures`.
|
|
18
|
+
*
|
|
19
|
+
* MSW v2 is a peer dependency. Consumers must install it.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
interface EndpointOverride {
|
|
23
|
+
status?: number;
|
|
24
|
+
body?: unknown;
|
|
25
|
+
}
|
|
26
|
+
interface MockOverrides {
|
|
27
|
+
baseUrl?: string;
|
|
28
|
+
messages?: {
|
|
29
|
+
send?: EndpointOverride;
|
|
30
|
+
};
|
|
31
|
+
comments?: {
|
|
32
|
+
reply?: EndpointOverride;
|
|
33
|
+
privateReply?: EndpointOverride;
|
|
34
|
+
};
|
|
35
|
+
webhooks?: {
|
|
36
|
+
subscriptions?: {
|
|
37
|
+
list?: EndpointOverride;
|
|
38
|
+
create?: EndpointOverride;
|
|
39
|
+
update?: EndpointOverride;
|
|
40
|
+
delete?: EndpointOverride;
|
|
41
|
+
rotateSecret?: EndpointOverride;
|
|
42
|
+
test?: EndpointOverride;
|
|
43
|
+
};
|
|
44
|
+
deliveries?: {
|
|
45
|
+
replay?: EndpointOverride;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
oauth?: {
|
|
49
|
+
token?: EndpointOverride;
|
|
50
|
+
revoke?: EndpointOverride;
|
|
51
|
+
};
|
|
52
|
+
admin?: {
|
|
53
|
+
create?: EndpointOverride;
|
|
54
|
+
update?: EndpointOverride;
|
|
55
|
+
suspend?: EndpointOverride;
|
|
56
|
+
rotateClientSecret?: EndpointOverride;
|
|
57
|
+
rotateJwtSecret?: EndpointOverride;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
declare function atribuMockHandlers(overrides?: MockOverrides): HttpHandler[];
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Canned fixtures for testing against the Atribu SDK.
|
|
64
|
+
*
|
|
65
|
+
* Use these to drive your test cases with realistic event shapes, or pass
|
|
66
|
+
* `body` overrides into `atribuMockHandlers({...})` to customize responses.
|
|
67
|
+
*/
|
|
68
|
+
|
|
69
|
+
type DeepPartial<T> = T extends object ? {
|
|
70
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
71
|
+
} : T;
|
|
72
|
+
declare const sampleIds: {
|
|
73
|
+
readonly appId: "00000000-0000-0000-0000-000000000aaa";
|
|
74
|
+
readonly connectionId: "00000000-0000-0000-0000-000000000bbb";
|
|
75
|
+
readonly profileId: "00000000-0000-0000-0000-000000000ccc";
|
|
76
|
+
readonly workspaceId: "00000000-0000-0000-0000-000000000ddd";
|
|
77
|
+
readonly subscriptionId: "00000000-0000-0000-0000-000000000eee";
|
|
78
|
+
};
|
|
79
|
+
/** Canned webhook event fixtures — deep-merge any field you care about. */
|
|
80
|
+
declare const eventFixtures: {
|
|
81
|
+
whatsappMessageReceived(overrides?: DeepPartial<WhatsAppMessageReceivedEvent>): WhatsAppMessageReceivedEvent;
|
|
82
|
+
whatsappMessageDelivery(overrides?: DeepPartial<WhatsAppMessageDeliveryEvent>): WhatsAppMessageDeliveryEvent;
|
|
83
|
+
instagramFbLoginMessage(overrides?: DeepPartial<InstagramMessageReceivedEvent>): InstagramMessageReceivedEvent;
|
|
84
|
+
instagramPostback(overrides?: DeepPartial<InstagramMessageReceivedEvent>): InstagramMessageReceivedEvent;
|
|
85
|
+
instagramIgLoginChange(overrides?: DeepPartial<InstagramMessageReceivedEvent>): InstagramMessageReceivedEvent;
|
|
86
|
+
instagramMessageDelivery(overrides?: DeepPartial<InstagramMessageDeliveryEvent>): InstagramMessageDeliveryEvent;
|
|
87
|
+
};
|
|
88
|
+
/** Canned API response envelopes (matches what the server returns on 200). */
|
|
89
|
+
declare const responseFixtures: {
|
|
90
|
+
messageSent(overrides?: {
|
|
91
|
+
provider_message_id?: string;
|
|
92
|
+
sent_at?: string;
|
|
93
|
+
}): {
|
|
94
|
+
data: {
|
|
95
|
+
connection_id: string;
|
|
96
|
+
channel: "whatsapp";
|
|
97
|
+
to: string;
|
|
98
|
+
provider_message_id: string;
|
|
99
|
+
sent_at: string;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
commentReply(overrides?: {
|
|
103
|
+
provider_message_id?: string;
|
|
104
|
+
}): {
|
|
105
|
+
data: {
|
|
106
|
+
comment_id: string;
|
|
107
|
+
kind: "private_reply";
|
|
108
|
+
connection_id: string;
|
|
109
|
+
provider_message_id: string;
|
|
110
|
+
sent_at: string;
|
|
111
|
+
};
|
|
112
|
+
meta: {
|
|
113
|
+
profile_id: string;
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
subscriptionCreated(overrides?: {
|
|
117
|
+
secret?: string;
|
|
118
|
+
url?: string;
|
|
119
|
+
}): {
|
|
120
|
+
data: {
|
|
121
|
+
id: string;
|
|
122
|
+
app_id: string;
|
|
123
|
+
profile_id: string;
|
|
124
|
+
url: string;
|
|
125
|
+
events: string[];
|
|
126
|
+
providers: string[];
|
|
127
|
+
status: "active";
|
|
128
|
+
last_delivery_at: null;
|
|
129
|
+
consecutive_failures: number;
|
|
130
|
+
previous_secret_expires_at: null;
|
|
131
|
+
created_at: string;
|
|
132
|
+
updated_at: string;
|
|
133
|
+
secret: string;
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
subscriptionList(overrides?: {
|
|
137
|
+
items?: number;
|
|
138
|
+
}): {
|
|
139
|
+
data: {
|
|
140
|
+
id: string;
|
|
141
|
+
app_id: string;
|
|
142
|
+
profile_id: string;
|
|
143
|
+
url: string;
|
|
144
|
+
events: string[];
|
|
145
|
+
providers: string[];
|
|
146
|
+
status: "active";
|
|
147
|
+
last_delivery_at: null;
|
|
148
|
+
consecutive_failures: number;
|
|
149
|
+
previous_secret_expires_at: null;
|
|
150
|
+
created_at: string;
|
|
151
|
+
updated_at: string;
|
|
152
|
+
}[];
|
|
153
|
+
meta: {
|
|
154
|
+
profile_id: string;
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
rotatedSecret(overrides?: {
|
|
158
|
+
secret?: string;
|
|
159
|
+
graceDays?: number;
|
|
160
|
+
}): {
|
|
161
|
+
data: {
|
|
162
|
+
subscription_id: string;
|
|
163
|
+
secret: string;
|
|
164
|
+
grace_days: number;
|
|
165
|
+
previous_secret_expires_at: string;
|
|
166
|
+
};
|
|
167
|
+
meta: {
|
|
168
|
+
profile_id: string;
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
oauthTokenResponse(overrides?: {
|
|
172
|
+
accessToken?: string;
|
|
173
|
+
scope?: string;
|
|
174
|
+
}): {
|
|
175
|
+
access_token: string;
|
|
176
|
+
token_type: "bearer";
|
|
177
|
+
scope: string;
|
|
178
|
+
connection_id: string;
|
|
179
|
+
profile_id: string;
|
|
180
|
+
workspace_id: string;
|
|
181
|
+
};
|
|
182
|
+
oauthError(error?: string, description?: string): {
|
|
183
|
+
error: string;
|
|
184
|
+
error_description: string;
|
|
185
|
+
};
|
|
186
|
+
apiError(code: string, message: string, status: number): {
|
|
187
|
+
error: {
|
|
188
|
+
code: string;
|
|
189
|
+
message: string;
|
|
190
|
+
status: number;
|
|
191
|
+
request_id: string;
|
|
192
|
+
};
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
/** Combined export so consumers can `import { fixtures } from "@atribu/sdk/test"`. */
|
|
196
|
+
declare const fixtures: {
|
|
197
|
+
ids: {
|
|
198
|
+
readonly appId: "00000000-0000-0000-0000-000000000aaa";
|
|
199
|
+
readonly connectionId: "00000000-0000-0000-0000-000000000bbb";
|
|
200
|
+
readonly profileId: "00000000-0000-0000-0000-000000000ccc";
|
|
201
|
+
readonly workspaceId: "00000000-0000-0000-0000-000000000ddd";
|
|
202
|
+
readonly subscriptionId: "00000000-0000-0000-0000-000000000eee";
|
|
203
|
+
};
|
|
204
|
+
events: {
|
|
205
|
+
whatsappMessageReceived(overrides?: DeepPartial<WhatsAppMessageReceivedEvent>): WhatsAppMessageReceivedEvent;
|
|
206
|
+
whatsappMessageDelivery(overrides?: DeepPartial<WhatsAppMessageDeliveryEvent>): WhatsAppMessageDeliveryEvent;
|
|
207
|
+
instagramFbLoginMessage(overrides?: DeepPartial<InstagramMessageReceivedEvent>): InstagramMessageReceivedEvent;
|
|
208
|
+
instagramPostback(overrides?: DeepPartial<InstagramMessageReceivedEvent>): InstagramMessageReceivedEvent;
|
|
209
|
+
instagramIgLoginChange(overrides?: DeepPartial<InstagramMessageReceivedEvent>): InstagramMessageReceivedEvent;
|
|
210
|
+
instagramMessageDelivery(overrides?: DeepPartial<InstagramMessageDeliveryEvent>): InstagramMessageDeliveryEvent;
|
|
211
|
+
};
|
|
212
|
+
responses: {
|
|
213
|
+
messageSent(overrides?: {
|
|
214
|
+
provider_message_id?: string;
|
|
215
|
+
sent_at?: string;
|
|
216
|
+
}): {
|
|
217
|
+
data: {
|
|
218
|
+
connection_id: string;
|
|
219
|
+
channel: "whatsapp";
|
|
220
|
+
to: string;
|
|
221
|
+
provider_message_id: string;
|
|
222
|
+
sent_at: string;
|
|
223
|
+
};
|
|
224
|
+
};
|
|
225
|
+
commentReply(overrides?: {
|
|
226
|
+
provider_message_id?: string;
|
|
227
|
+
}): {
|
|
228
|
+
data: {
|
|
229
|
+
comment_id: string;
|
|
230
|
+
kind: "private_reply";
|
|
231
|
+
connection_id: string;
|
|
232
|
+
provider_message_id: string;
|
|
233
|
+
sent_at: string;
|
|
234
|
+
};
|
|
235
|
+
meta: {
|
|
236
|
+
profile_id: string;
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
subscriptionCreated(overrides?: {
|
|
240
|
+
secret?: string;
|
|
241
|
+
url?: string;
|
|
242
|
+
}): {
|
|
243
|
+
data: {
|
|
244
|
+
id: string;
|
|
245
|
+
app_id: string;
|
|
246
|
+
profile_id: string;
|
|
247
|
+
url: string;
|
|
248
|
+
events: string[];
|
|
249
|
+
providers: string[];
|
|
250
|
+
status: "active";
|
|
251
|
+
last_delivery_at: null;
|
|
252
|
+
consecutive_failures: number;
|
|
253
|
+
previous_secret_expires_at: null;
|
|
254
|
+
created_at: string;
|
|
255
|
+
updated_at: string;
|
|
256
|
+
secret: string;
|
|
257
|
+
};
|
|
258
|
+
};
|
|
259
|
+
subscriptionList(overrides?: {
|
|
260
|
+
items?: number;
|
|
261
|
+
}): {
|
|
262
|
+
data: {
|
|
263
|
+
id: string;
|
|
264
|
+
app_id: string;
|
|
265
|
+
profile_id: string;
|
|
266
|
+
url: string;
|
|
267
|
+
events: string[];
|
|
268
|
+
providers: string[];
|
|
269
|
+
status: "active";
|
|
270
|
+
last_delivery_at: null;
|
|
271
|
+
consecutive_failures: number;
|
|
272
|
+
previous_secret_expires_at: null;
|
|
273
|
+
created_at: string;
|
|
274
|
+
updated_at: string;
|
|
275
|
+
}[];
|
|
276
|
+
meta: {
|
|
277
|
+
profile_id: string;
|
|
278
|
+
};
|
|
279
|
+
};
|
|
280
|
+
rotatedSecret(overrides?: {
|
|
281
|
+
secret?: string;
|
|
282
|
+
graceDays?: number;
|
|
283
|
+
}): {
|
|
284
|
+
data: {
|
|
285
|
+
subscription_id: string;
|
|
286
|
+
secret: string;
|
|
287
|
+
grace_days: number;
|
|
288
|
+
previous_secret_expires_at: string;
|
|
289
|
+
};
|
|
290
|
+
meta: {
|
|
291
|
+
profile_id: string;
|
|
292
|
+
};
|
|
293
|
+
};
|
|
294
|
+
oauthTokenResponse(overrides?: {
|
|
295
|
+
accessToken?: string;
|
|
296
|
+
scope?: string;
|
|
297
|
+
}): {
|
|
298
|
+
access_token: string;
|
|
299
|
+
token_type: "bearer";
|
|
300
|
+
scope: string;
|
|
301
|
+
connection_id: string;
|
|
302
|
+
profile_id: string;
|
|
303
|
+
workspace_id: string;
|
|
304
|
+
};
|
|
305
|
+
oauthError(error?: string, description?: string): {
|
|
306
|
+
error: string;
|
|
307
|
+
error_description: string;
|
|
308
|
+
};
|
|
309
|
+
apiError(code: string, message: string, status: number): {
|
|
310
|
+
error: {
|
|
311
|
+
code: string;
|
|
312
|
+
message: string;
|
|
313
|
+
status: number;
|
|
314
|
+
request_id: string;
|
|
315
|
+
};
|
|
316
|
+
};
|
|
317
|
+
};
|
|
318
|
+
};
|
|
319
|
+
type FixtureWebhookEvent = AtribuWebhookEvent;
|
|
320
|
+
|
|
321
|
+
export { type FixtureWebhookEvent, type MockOverrides, atribuMockHandlers, eventFixtures, fixtures, responseFixtures, sampleIds };
|