crisp-api 10.10.4 → 10.10.6
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 +14 -0
- package/dist/crisp.d.ts +8 -2
- package/dist/crisp.js +2 -2
- package/dist/events/Events.d.ts +601 -0
- package/dist/events/Events.js +8 -0
- package/dist/resources/WebsitePeople.d.ts +1 -0
- package/lib/crisp.ts +20 -0
- package/lib/events/Events.ts +793 -0
- package/lib/resources/WebsitePeople.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,793 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of node-crisp-api
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2025 Crisp IM SAS
|
|
5
|
+
* All rights belong to Crisp IM SAS
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**************************************************************************
|
|
9
|
+
* IMPORTS
|
|
10
|
+
***************************************************************************/
|
|
11
|
+
|
|
12
|
+
// PROJECT: RESOURCES
|
|
13
|
+
import {
|
|
14
|
+
ConversationMessageType,
|
|
15
|
+
ConversationMessageUser,
|
|
16
|
+
ConversationState,
|
|
17
|
+
ConversationFileMessageContent,
|
|
18
|
+
ConversationAnimationMessageContent,
|
|
19
|
+
ConversationAudioMessageContent,
|
|
20
|
+
ConversationPickerMessageContent,
|
|
21
|
+
ConversationFieldMessageContent,
|
|
22
|
+
ConversationCarouselMessageContent,
|
|
23
|
+
ConversationEventMessageContent,
|
|
24
|
+
GeolocationInfo,
|
|
25
|
+
SystemInfo,
|
|
26
|
+
ConnectionInfo
|
|
27
|
+
} from "@/resources/WebsiteConversation";
|
|
28
|
+
|
|
29
|
+
/**************************************************************************
|
|
30
|
+
* TYPES + INTERFACES (COMMON)
|
|
31
|
+
***************************************************************************/
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Common fields shared by every website-scoped event.
|
|
35
|
+
*/
|
|
36
|
+
export interface EventsWebsiteGeneric {
|
|
37
|
+
website_id: string;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Common fields shared by every session-scoped event.
|
|
42
|
+
*/
|
|
43
|
+
export interface EventsSessionGeneric extends EventsWebsiteGeneric {
|
|
44
|
+
session_id: string;
|
|
45
|
+
inbox_id: string | null;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface EventsOperator {
|
|
49
|
+
user_id: string;
|
|
50
|
+
avatar?: string | null;
|
|
51
|
+
nickname?: string;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**************************************************************************
|
|
55
|
+
* TYPES + INTERFACES (SESSION EVENTS)
|
|
56
|
+
***************************************************************************/
|
|
57
|
+
|
|
58
|
+
export type EventsSessionAvailability = "online" | "offline";
|
|
59
|
+
|
|
60
|
+
export interface EventsSessionUpdateAvailability extends EventsSessionGeneric {
|
|
61
|
+
availability: EventsSessionAvailability;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export interface EventsSessionVerification {
|
|
65
|
+
identity: string;
|
|
66
|
+
method: string;
|
|
67
|
+
annotation: string;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export interface EventsSessionUpdateVerify extends EventsSessionGeneric {
|
|
71
|
+
is_verified: boolean;
|
|
72
|
+
verifications: EventsSessionVerification[];
|
|
73
|
+
routing_ids?: string[];
|
|
74
|
+
error?: "unknown";
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export type EventsSessionRequestInitiated = EventsSessionGeneric;
|
|
78
|
+
|
|
79
|
+
export interface EventsSessionSetEmail extends EventsSessionGeneric {
|
|
80
|
+
email: string;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export interface EventsSessionSetPhone extends EventsSessionGeneric {
|
|
84
|
+
phone: string;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export interface EventsSessionSetAddress extends EventsSessionGeneric {
|
|
88
|
+
address: string;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface EventsSessionSetSubject extends EventsSessionGeneric {
|
|
92
|
+
subject: string;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export interface EventsSessionSetAvatar extends EventsSessionGeneric {
|
|
96
|
+
avatar: string;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export interface EventsSessionSetNickname extends EventsSessionGeneric {
|
|
100
|
+
nickname: string;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export interface EventsSessionSetOrigin extends EventsSessionGeneric {
|
|
104
|
+
origin: string;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export interface EventsSessionSetData extends EventsSessionGeneric {
|
|
108
|
+
data: Record<string, string | number | boolean>;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface EventsSessionSetSegments extends EventsSessionGeneric {
|
|
112
|
+
segments: string[];
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export interface EventsSessionSetBlock extends EventsSessionGeneric {
|
|
116
|
+
is_blocked: boolean;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export interface EventsSessionSetOpened extends EventsSessionGeneric {
|
|
120
|
+
operator: EventsOperator;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export interface EventsSessionSetClosed extends EventsSessionGeneric {
|
|
124
|
+
operator: EventsOperator;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export interface EventsSessionParticipant {
|
|
128
|
+
target: string;
|
|
129
|
+
type: string;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export interface EventsSessionSetParticipants extends EventsSessionGeneric {
|
|
133
|
+
participants: EventsSessionParticipant[];
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export interface EventsSessionSetMentions extends EventsSessionGeneric {
|
|
137
|
+
mentions: string[];
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export interface EventsSessionSetRouting extends EventsSessionGeneric {
|
|
141
|
+
routing_id: string | null;
|
|
142
|
+
previous_routing_id: string | null;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export interface EventsSessionSetInbox extends EventsSessionGeneric {
|
|
146
|
+
previous_inbox_id: string | null;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export interface EventsSessionSetState extends EventsSessionGeneric {
|
|
150
|
+
state: ConversationState;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export interface EventsSessionSyncCapabilities extends EventsSessionGeneric {
|
|
154
|
+
capabilities: string[];
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export interface EventsSessionSyncGeolocation extends EventsSessionGeneric {
|
|
158
|
+
geolocation: GeolocationInfo;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export interface EventsSessionSyncSystem extends EventsSessionGeneric {
|
|
162
|
+
system: SystemInfo;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export interface EventsSessionSyncNetworkInfo {
|
|
166
|
+
ip: string;
|
|
167
|
+
connection?: ConnectionInfo;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export interface EventsSessionSyncNetwork extends EventsSessionGeneric {
|
|
171
|
+
network: EventsSessionSyncNetworkInfo;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export interface EventsSessionSyncTimezone extends EventsSessionGeneric {
|
|
175
|
+
timezone: {
|
|
176
|
+
offset: number;
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
export interface EventsSessionSyncLocales extends EventsSessionGeneric {
|
|
181
|
+
locales: {
|
|
182
|
+
locales: string[];
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export interface EventsSessionPage {
|
|
187
|
+
page_url: string;
|
|
188
|
+
page_title: string;
|
|
189
|
+
timestamp: number;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
export interface EventsSessionSyncPages extends EventsSessionGeneric {
|
|
193
|
+
pages: EventsSessionPage[];
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export interface EventsSessionEvent {
|
|
197
|
+
text: string;
|
|
198
|
+
data?: Record<string, string | number | boolean>;
|
|
199
|
+
color?: string;
|
|
200
|
+
timestamp: number;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export interface EventsSessionSyncEvents extends EventsSessionGeneric {
|
|
204
|
+
events: EventsSessionEvent[];
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
export interface EventsSessionRating {
|
|
208
|
+
stars: number;
|
|
209
|
+
comment?: string;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export interface EventsSessionSyncRating extends EventsSessionGeneric {
|
|
213
|
+
rating: EventsSessionRating;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
export interface EventsSessionSyncTopic extends EventsSessionGeneric {
|
|
217
|
+
topic: string;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export type EventsSessionRemoved = EventsSessionGeneric;
|
|
221
|
+
|
|
222
|
+
export interface EventsSessionError extends EventsSessionGeneric {
|
|
223
|
+
type: string;
|
|
224
|
+
value: string;
|
|
225
|
+
previous_value: string;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/**************************************************************************
|
|
229
|
+
* TYPES + INTERFACES (MESSAGE EVENTS)
|
|
230
|
+
***************************************************************************/
|
|
231
|
+
|
|
232
|
+
export interface EventsMessageUpdated extends EventsSessionGeneric {
|
|
233
|
+
fingerprint: number;
|
|
234
|
+
content: string | ConversationPickerMessageContent;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Common fields shared by 'message:send' and 'message:received' events.
|
|
239
|
+
*/
|
|
240
|
+
export interface EventsMessageGeneric extends EventsSessionGeneric {
|
|
241
|
+
type: ConversationMessageType;
|
|
242
|
+
from: string;
|
|
243
|
+
origin: string;
|
|
244
|
+
fingerprint: number;
|
|
245
|
+
timestamp: number;
|
|
246
|
+
user: ConversationMessageUser;
|
|
247
|
+
mentions?: string[];
|
|
248
|
+
stamped?: boolean;
|
|
249
|
+
automated?: boolean;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
export interface EventsMessageSendText extends EventsMessageGeneric {
|
|
253
|
+
type: "text";
|
|
254
|
+
content: string;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
export interface EventsMessageSendFile extends EventsMessageGeneric {
|
|
258
|
+
type: "file";
|
|
259
|
+
content: ConversationFileMessageContent;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export interface EventsMessageSendAnimation extends EventsMessageGeneric {
|
|
263
|
+
type: "animation";
|
|
264
|
+
content: ConversationAnimationMessageContent;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
export interface EventsMessageSendAudio extends EventsMessageGeneric {
|
|
268
|
+
type: "audio";
|
|
269
|
+
content: ConversationAudioMessageContent;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
export interface EventsMessageSendPicker extends EventsMessageGeneric {
|
|
273
|
+
type: "picker";
|
|
274
|
+
content: ConversationPickerMessageContent;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
export interface EventsMessageSendField extends EventsMessageGeneric {
|
|
278
|
+
type: "field";
|
|
279
|
+
content: ConversationFieldMessageContent;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
export interface EventsMessageSendCarousel extends EventsMessageGeneric {
|
|
283
|
+
type: "carousel";
|
|
284
|
+
content: ConversationCarouselMessageContent;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Payload of a 'message:send' event (message sent by a visitor).
|
|
289
|
+
*/
|
|
290
|
+
export type EventsMessageSend =
|
|
291
|
+
| EventsMessageSendText
|
|
292
|
+
| EventsMessageSendFile
|
|
293
|
+
| EventsMessageSendAnimation
|
|
294
|
+
| EventsMessageSendAudio
|
|
295
|
+
| EventsMessageSendPicker
|
|
296
|
+
| EventsMessageSendField
|
|
297
|
+
| EventsMessageSendCarousel;
|
|
298
|
+
|
|
299
|
+
export interface EventsMessageReceivedNote extends EventsMessageGeneric {
|
|
300
|
+
type: "note";
|
|
301
|
+
content: string;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
export interface EventsMessageReceivedEvent extends EventsMessageGeneric {
|
|
305
|
+
type: "event";
|
|
306
|
+
content: ConversationEventMessageContent;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Payload of a 'message:received' event (message sent by an operator).
|
|
311
|
+
*/
|
|
312
|
+
export type EventsMessageReceived =
|
|
313
|
+
| EventsMessageSendText
|
|
314
|
+
| EventsMessageReceivedNote
|
|
315
|
+
| EventsMessageSendFile
|
|
316
|
+
| EventsMessageSendAnimation
|
|
317
|
+
| EventsMessageSendAudio
|
|
318
|
+
| EventsMessageSendPicker
|
|
319
|
+
| EventsMessageSendField
|
|
320
|
+
| EventsMessageSendCarousel
|
|
321
|
+
| EventsMessageReceivedEvent;
|
|
322
|
+
|
|
323
|
+
export interface EventsMessageRemoved extends EventsSessionGeneric {
|
|
324
|
+
fingerprint: number;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
export interface EventsMessageComposeSend extends EventsSessionGeneric {
|
|
328
|
+
type: "start" | "stop";
|
|
329
|
+
excerpt?: string;
|
|
330
|
+
timestamp: number;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
export interface EventsMessageComposeReceive extends EventsSessionGeneric {
|
|
334
|
+
type: "start" | "stop";
|
|
335
|
+
excerpt?: string;
|
|
336
|
+
timestamp: number;
|
|
337
|
+
user: ConversationMessageUser;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
export interface EventsMessageAcknowledge extends EventsSessionGeneric {
|
|
341
|
+
origin: string;
|
|
342
|
+
fingerprints: number[];
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
export interface EventsMessageAcknowledgeIgnoredDetails {
|
|
346
|
+
type: string;
|
|
347
|
+
reason: string;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
export interface EventsMessageAcknowledgeIgnored
|
|
351
|
+
extends EventsMessageAcknowledge {
|
|
352
|
+
details?: EventsMessageAcknowledgeIgnoredDetails;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
export type EventsMessageNotifyUnread = EventsSessionGeneric;
|
|
356
|
+
|
|
357
|
+
/**************************************************************************
|
|
358
|
+
* TYPES + INTERFACES (SPAM EVENTS)
|
|
359
|
+
***************************************************************************/
|
|
360
|
+
|
|
361
|
+
export interface EventsSpamMessage extends EventsWebsiteGeneric {
|
|
362
|
+
spam_id: string;
|
|
363
|
+
type: string;
|
|
364
|
+
reason: string;
|
|
365
|
+
metadata?: Record<string, unknown>;
|
|
366
|
+
headers?: Record<string, string>;
|
|
367
|
+
timestamp: number;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
export interface EventsSpamDecision extends EventsWebsiteGeneric {
|
|
371
|
+
spam_id: string;
|
|
372
|
+
action: string;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/**************************************************************************
|
|
376
|
+
* TYPES + INTERFACES (PEOPLE EVENTS)
|
|
377
|
+
***************************************************************************/
|
|
378
|
+
|
|
379
|
+
export interface EventsPeopleProfileCreated extends EventsWebsiteGeneric {
|
|
380
|
+
people_id: string;
|
|
381
|
+
email?: string;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
export interface EventsPeopleEmployment {
|
|
385
|
+
domain?: string;
|
|
386
|
+
name?: string;
|
|
387
|
+
role?: string;
|
|
388
|
+
title?: string;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
export interface EventsPeoplePerson {
|
|
392
|
+
geolocation?: GeolocationInfo;
|
|
393
|
+
locales?: string[];
|
|
394
|
+
nickname?: string;
|
|
395
|
+
timezone?: number;
|
|
396
|
+
phone?: string;
|
|
397
|
+
avatar?: string;
|
|
398
|
+
employment?: EventsPeopleEmployment;
|
|
399
|
+
address?: string;
|
|
400
|
+
website?: string;
|
|
401
|
+
gender?: string;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
export interface EventsPeopleCompany {
|
|
405
|
+
description?: string;
|
|
406
|
+
domain?: string;
|
|
407
|
+
geolocation?: GeolocationInfo;
|
|
408
|
+
legal_name?: string;
|
|
409
|
+
name?: string;
|
|
410
|
+
url?: string;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
export interface EventsPeopleProfileUpdated extends EventsWebsiteGeneric {
|
|
414
|
+
people_id: string;
|
|
415
|
+
email?: string;
|
|
416
|
+
update: {
|
|
417
|
+
updated_at: number;
|
|
418
|
+
person: EventsPeoplePerson;
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
export interface EventsPeopleProfileRemoved extends EventsWebsiteGeneric {
|
|
423
|
+
people_id: string;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
export interface EventsPeopleBindSession extends EventsSessionGeneric {
|
|
427
|
+
people_id: string;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
export interface EventsPeopleSyncProfile extends EventsSessionGeneric {
|
|
431
|
+
people_id: string;
|
|
432
|
+
identity: {
|
|
433
|
+
person?: EventsPeoplePerson;
|
|
434
|
+
company?: EventsPeopleCompany;
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
export interface EventsPeopleImportProgress extends EventsWebsiteGeneric {
|
|
439
|
+
people_id?: string;
|
|
440
|
+
progress: number;
|
|
441
|
+
count: {
|
|
442
|
+
skipped: number;
|
|
443
|
+
remaining: number;
|
|
444
|
+
};
|
|
445
|
+
items?: {
|
|
446
|
+
skipped?: Array<{
|
|
447
|
+
identifier: string | null;
|
|
448
|
+
reason: string;
|
|
449
|
+
}>;
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
export interface EventsPeopleImportDone extends EventsWebsiteGeneric {
|
|
454
|
+
people_id?: string;
|
|
455
|
+
error: boolean;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
/**************************************************************************
|
|
459
|
+
* TYPES + INTERFACES (CAMPAIGN EVENTS)
|
|
460
|
+
***************************************************************************/
|
|
461
|
+
|
|
462
|
+
export interface EventsCampaignProgress extends EventsWebsiteGeneric {
|
|
463
|
+
campaign_id: string;
|
|
464
|
+
progress: number;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
export interface EventsCampaignDispatched extends EventsWebsiteGeneric {
|
|
468
|
+
campaign_id: string;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
export interface EventsCampaignRunning extends EventsWebsiteGeneric {
|
|
472
|
+
campaign_id: string;
|
|
473
|
+
running: boolean;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
/**************************************************************************
|
|
477
|
+
* TYPES + INTERFACES (BROWSING EVENTS)
|
|
478
|
+
***************************************************************************/
|
|
479
|
+
|
|
480
|
+
export interface EventsBrowsingRequestInitiated extends EventsSessionGeneric {
|
|
481
|
+
browsing_id: string;
|
|
482
|
+
browsing_token: string;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
export type EventsBrowsingRequestRejected = EventsSessionGeneric;
|
|
486
|
+
|
|
487
|
+
/**************************************************************************
|
|
488
|
+
* TYPES + INTERFACES (CALL EVENTS)
|
|
489
|
+
***************************************************************************/
|
|
490
|
+
|
|
491
|
+
export interface EventsCallRequestInitiated extends EventsSessionGeneric {
|
|
492
|
+
call_id: string;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
export interface EventsCallRequestRejected extends EventsSessionGeneric {
|
|
496
|
+
call_id: string;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
/**************************************************************************
|
|
500
|
+
* TYPES + INTERFACES (IDENTITY EVENTS)
|
|
501
|
+
***************************************************************************/
|
|
502
|
+
|
|
503
|
+
export interface EventsIdentityVerifyRequest extends EventsWebsiteGeneric {
|
|
504
|
+
plugin_id: string;
|
|
505
|
+
session_id: string;
|
|
506
|
+
target: string;
|
|
507
|
+
code: string;
|
|
508
|
+
confirm_url: string;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
/**************************************************************************
|
|
512
|
+
* TYPES + INTERFACES (WIDGET EVENTS)
|
|
513
|
+
***************************************************************************/
|
|
514
|
+
|
|
515
|
+
export interface EventsWidgetActionProcessed extends EventsSessionGeneric {
|
|
516
|
+
plugin_id: string;
|
|
517
|
+
correlation_id: string;
|
|
518
|
+
outcome: "success" | "failure";
|
|
519
|
+
result?: Record<string, unknown>;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
/**************************************************************************
|
|
523
|
+
* TYPES + INTERFACES (STATUS EVENTS)
|
|
524
|
+
***************************************************************************/
|
|
525
|
+
|
|
526
|
+
export type EventsStatusHealth = "healthy" | "sick" | "dead";
|
|
527
|
+
|
|
528
|
+
export interface EventsStatusNode {
|
|
529
|
+
label: string;
|
|
530
|
+
replica: string;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
export interface EventsStatusHealthChanged extends EventsWebsiteGeneric {
|
|
534
|
+
health: EventsStatusHealth;
|
|
535
|
+
nodes: EventsStatusNode[];
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
/**************************************************************************
|
|
539
|
+
* TYPES + INTERFACES (WEBSITE EVENTS)
|
|
540
|
+
***************************************************************************/
|
|
541
|
+
|
|
542
|
+
export interface EventsWebsiteUpdateVisitorsCount extends EventsWebsiteGeneric {
|
|
543
|
+
visitors_count: number;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
export interface EventsWebsiteUpdateOperatorsAvailability
|
|
547
|
+
extends EventsWebsiteGeneric {
|
|
548
|
+
user_id: string;
|
|
549
|
+
availability: {
|
|
550
|
+
type: EventsSessionAvailability;
|
|
551
|
+
};
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
export interface EventsWebsiteUsersAvailable extends EventsWebsiteGeneric {
|
|
555
|
+
available: boolean;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
/**************************************************************************
|
|
559
|
+
* TYPES + INTERFACES (BUCKET EVENTS)
|
|
560
|
+
***************************************************************************/
|
|
561
|
+
|
|
562
|
+
export interface EventsBucketURLGenerated {
|
|
563
|
+
from: string;
|
|
564
|
+
id: string;
|
|
565
|
+
identifier: string;
|
|
566
|
+
resource: {
|
|
567
|
+
type: string;
|
|
568
|
+
id: string;
|
|
569
|
+
};
|
|
570
|
+
policy: {
|
|
571
|
+
size_limit: number;
|
|
572
|
+
};
|
|
573
|
+
type: string;
|
|
574
|
+
url: {
|
|
575
|
+
resource: string;
|
|
576
|
+
signed: string;
|
|
577
|
+
};
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
/**************************************************************************
|
|
581
|
+
* TYPES + INTERFACES (MEDIA EVENTS)
|
|
582
|
+
***************************************************************************/
|
|
583
|
+
|
|
584
|
+
export interface EventsMediaAnimationResult {
|
|
585
|
+
type: string;
|
|
586
|
+
url: string;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
export interface EventsMediaAnimationListed {
|
|
590
|
+
id: number;
|
|
591
|
+
identifier: string;
|
|
592
|
+
results: EventsMediaAnimationResult[];
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
/**************************************************************************
|
|
596
|
+
* TYPES + INTERFACES (EMAIL EVENTS)
|
|
597
|
+
***************************************************************************/
|
|
598
|
+
|
|
599
|
+
export interface EventsEmailSubscribe extends EventsWebsiteGeneric {
|
|
600
|
+
email: string;
|
|
601
|
+
subscribed: boolean;
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
export interface EventsEmailTrackView extends EventsWebsiteGeneric {
|
|
605
|
+
type: string;
|
|
606
|
+
identifier: string;
|
|
607
|
+
mode: string;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
/**************************************************************************
|
|
611
|
+
* TYPES + INTERFACES (PLUGIN EVENTS)
|
|
612
|
+
***************************************************************************/
|
|
613
|
+
|
|
614
|
+
export interface EventsPluginChannel extends EventsWebsiteGeneric {
|
|
615
|
+
type?: string;
|
|
616
|
+
plugin_id: string;
|
|
617
|
+
identifier: string;
|
|
618
|
+
namespace: string;
|
|
619
|
+
payload: unknown;
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
export interface EventsPluginEvent extends EventsWebsiteGeneric {
|
|
623
|
+
plugin_id: string;
|
|
624
|
+
urn: string;
|
|
625
|
+
name: string;
|
|
626
|
+
data: Record<string, unknown>;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
export interface EventsPluginSubscriptionUpdated extends EventsWebsiteGeneric {
|
|
630
|
+
plugin_id: string;
|
|
631
|
+
bound: boolean;
|
|
632
|
+
target: string;
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
export interface EventsPluginSettingsSaved extends EventsWebsiteGeneric {
|
|
636
|
+
plugin_id: string;
|
|
637
|
+
settings: Record<string, unknown>;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
/**************************************************************************
|
|
641
|
+
* TYPES + INTERFACES (PLAN EVENTS)
|
|
642
|
+
***************************************************************************/
|
|
643
|
+
|
|
644
|
+
export interface EventsPlanSubscriptionUpdated extends EventsWebsiteGeneric {
|
|
645
|
+
plan: {
|
|
646
|
+
id: string;
|
|
647
|
+
name: string;
|
|
648
|
+
price?: number;
|
|
649
|
+
trialing: boolean;
|
|
650
|
+
};
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
/**************************************************************************
|
|
654
|
+
* EVENT MAP
|
|
655
|
+
***************************************************************************/
|
|
656
|
+
|
|
657
|
+
/**
|
|
658
|
+
* Maps each event name to the shape of the payload delivered to its listener,
|
|
659
|
+
* whether received over WebSockets or Web Hooks.
|
|
660
|
+
*/
|
|
661
|
+
export interface EventsMap {
|
|
662
|
+
// Session Events
|
|
663
|
+
"session:update_availability": EventsSessionUpdateAvailability;
|
|
664
|
+
"session:update_verify": EventsSessionUpdateVerify;
|
|
665
|
+
"session:request:initiated": EventsSessionRequestInitiated;
|
|
666
|
+
"session:set_email": EventsSessionSetEmail;
|
|
667
|
+
"session:set_phone": EventsSessionSetPhone;
|
|
668
|
+
"session:set_address": EventsSessionSetAddress;
|
|
669
|
+
"session:set_subject": EventsSessionSetSubject;
|
|
670
|
+
"session:set_avatar": EventsSessionSetAvatar;
|
|
671
|
+
"session:set_nickname": EventsSessionSetNickname;
|
|
672
|
+
"session:set_origin": EventsSessionSetOrigin;
|
|
673
|
+
"session:set_data": EventsSessionSetData;
|
|
674
|
+
"session:set_segments": EventsSessionSetSegments;
|
|
675
|
+
"session:set_block": EventsSessionSetBlock;
|
|
676
|
+
"session:set_opened": EventsSessionSetOpened;
|
|
677
|
+
"session:set_closed": EventsSessionSetClosed;
|
|
678
|
+
"session:set_participants": EventsSessionSetParticipants;
|
|
679
|
+
"session:set_mentions": EventsSessionSetMentions;
|
|
680
|
+
"session:set_routing": EventsSessionSetRouting;
|
|
681
|
+
"session:set_inbox": EventsSessionSetInbox;
|
|
682
|
+
"session:set_state": EventsSessionSetState;
|
|
683
|
+
"session:sync:capabilities": EventsSessionSyncCapabilities;
|
|
684
|
+
"session:sync:geolocation": EventsSessionSyncGeolocation;
|
|
685
|
+
"session:sync:system": EventsSessionSyncSystem;
|
|
686
|
+
"session:sync:network": EventsSessionSyncNetwork;
|
|
687
|
+
"session:sync:timezone": EventsSessionSyncTimezone;
|
|
688
|
+
"session:sync:locales": EventsSessionSyncLocales;
|
|
689
|
+
"session:sync:pages": EventsSessionSyncPages;
|
|
690
|
+
"session:sync:events": EventsSessionSyncEvents;
|
|
691
|
+
"session:sync:rating": EventsSessionSyncRating;
|
|
692
|
+
"session:sync:topic": EventsSessionSyncTopic;
|
|
693
|
+
"session:removed": EventsSessionRemoved;
|
|
694
|
+
"session:error": EventsSessionError;
|
|
695
|
+
|
|
696
|
+
// Message Events
|
|
697
|
+
"message:updated": EventsMessageUpdated;
|
|
698
|
+
"message:send": EventsMessageSend;
|
|
699
|
+
"message:received": EventsMessageReceived;
|
|
700
|
+
"message:removed": EventsMessageRemoved;
|
|
701
|
+
"message:compose:send": EventsMessageComposeSend;
|
|
702
|
+
"message:compose:receive": EventsMessageComposeReceive;
|
|
703
|
+
"message:acknowledge:read:send": EventsMessageAcknowledge;
|
|
704
|
+
"message:acknowledge:read:received": EventsMessageAcknowledge;
|
|
705
|
+
"message:acknowledge:unread:send": EventsMessageAcknowledge;
|
|
706
|
+
"message:acknowledge:delivered": EventsMessageAcknowledge;
|
|
707
|
+
"message:acknowledge:ignored": EventsMessageAcknowledgeIgnored;
|
|
708
|
+
"message:notify:unread:send": EventsMessageNotifyUnread;
|
|
709
|
+
"message:notify:unread:received": EventsMessageNotifyUnread;
|
|
710
|
+
|
|
711
|
+
// Spam Events
|
|
712
|
+
"spam:message": EventsSpamMessage;
|
|
713
|
+
"spam:decision": EventsSpamDecision;
|
|
714
|
+
|
|
715
|
+
// People Events
|
|
716
|
+
"people:profile:created": EventsPeopleProfileCreated;
|
|
717
|
+
"people:profile:updated": EventsPeopleProfileUpdated;
|
|
718
|
+
"people:profile:removed": EventsPeopleProfileRemoved;
|
|
719
|
+
"people:bind:session": EventsPeopleBindSession;
|
|
720
|
+
"people:sync:profile": EventsPeopleSyncProfile;
|
|
721
|
+
"people:import:progress": EventsPeopleImportProgress;
|
|
722
|
+
"people:import:done": EventsPeopleImportDone;
|
|
723
|
+
|
|
724
|
+
// Campaign Events
|
|
725
|
+
"campaign:progress": EventsCampaignProgress;
|
|
726
|
+
"campaign:dispatched": EventsCampaignDispatched;
|
|
727
|
+
"campaign:running": EventsCampaignRunning;
|
|
728
|
+
|
|
729
|
+
// Browsing Events
|
|
730
|
+
"browsing:request:initiated": EventsBrowsingRequestInitiated;
|
|
731
|
+
"browsing:request:rejected": EventsBrowsingRequestRejected;
|
|
732
|
+
|
|
733
|
+
// Call Events
|
|
734
|
+
"call:request:initiated": EventsCallRequestInitiated;
|
|
735
|
+
"call:request:rejected": EventsCallRequestRejected;
|
|
736
|
+
|
|
737
|
+
// Identity Events
|
|
738
|
+
"identity:verify:request": EventsIdentityVerifyRequest;
|
|
739
|
+
|
|
740
|
+
// Widget Events
|
|
741
|
+
"widget:action:processed": EventsWidgetActionProcessed;
|
|
742
|
+
|
|
743
|
+
// Status Events
|
|
744
|
+
"status:health:changed": EventsStatusHealthChanged;
|
|
745
|
+
|
|
746
|
+
// Website Events
|
|
747
|
+
"website:update_visitors_count": EventsWebsiteUpdateVisitorsCount;
|
|
748
|
+
"website:update_operators_availability": EventsWebsiteUpdateOperatorsAvailability;
|
|
749
|
+
"website:users:available": EventsWebsiteUsersAvailable;
|
|
750
|
+
|
|
751
|
+
// Bucket Events
|
|
752
|
+
"bucket:url:upload:generated": EventsBucketURLGenerated;
|
|
753
|
+
"bucket:url:avatar:generated": EventsBucketURLGenerated;
|
|
754
|
+
"bucket:url:website:generated": EventsBucketURLGenerated;
|
|
755
|
+
"bucket:url:campaign:generated": EventsBucketURLGenerated;
|
|
756
|
+
"bucket:url:helpdesk:generated": EventsBucketURLGenerated;
|
|
757
|
+
"bucket:url:status:generated": EventsBucketURLGenerated;
|
|
758
|
+
"bucket:url:processing:generated": EventsBucketURLGenerated;
|
|
759
|
+
|
|
760
|
+
// Media Events
|
|
761
|
+
"media:animation:listed": EventsMediaAnimationListed;
|
|
762
|
+
|
|
763
|
+
// Email Events
|
|
764
|
+
"email:subscribe": EventsEmailSubscribe;
|
|
765
|
+
"email:track:view": EventsEmailTrackView;
|
|
766
|
+
|
|
767
|
+
// Plugin Events
|
|
768
|
+
"plugin:channel": EventsPluginChannel;
|
|
769
|
+
"plugin:event": EventsPluginEvent;
|
|
770
|
+
"plugin:subscription:updated": EventsPluginSubscriptionUpdated;
|
|
771
|
+
"plugin:settings:saved": EventsPluginSettingsSaved;
|
|
772
|
+
|
|
773
|
+
// Plan Events
|
|
774
|
+
"plan:subscription:updated": EventsPlanSubscriptionUpdated;
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
/**
|
|
778
|
+
* Union of all recognized event names.
|
|
779
|
+
*/
|
|
780
|
+
export type EventName = keyof EventsMap;
|
|
781
|
+
|
|
782
|
+
/**
|
|
783
|
+
* Shape of a Web Hook body, as received on the HTTP endpoint before being
|
|
784
|
+
* dispatched with 'receiveHook'.
|
|
785
|
+
*/
|
|
786
|
+
export type EventsWebHookBody<Name extends EventName = EventName> = {
|
|
787
|
+
[K in Name]: {
|
|
788
|
+
event: K;
|
|
789
|
+
data: EventsMap[K];
|
|
790
|
+
timestamp?: number;
|
|
791
|
+
website_id?: string;
|
|
792
|
+
};
|
|
793
|
+
}[Name];
|