@webzaytsev/support-sdk 0.1.2 → 0.1.4
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 +80 -11
- package/dist/chunk-62GXFPNC.js +812 -0
- package/dist/chunk-62GXFPNC.js.map +1 -0
- package/dist/chunk-EBVUPKNG.mjs +809 -0
- package/dist/chunk-EBVUPKNG.mjs.map +1 -0
- package/dist/client.gen.d.mts +2 -1
- package/dist/client.gen.d.ts +2 -1
- package/dist/client.gen.js +4 -778
- package/dist/client.gen.js.map +1 -1
- package/dist/client.gen.mjs +1 -782
- package/dist/client.gen.mjs.map +1 -1
- package/dist/configure.d.mts +28 -0
- package/dist/configure.d.ts +28 -0
- package/dist/configure.js +15 -0
- package/dist/configure.js.map +1 -0
- package/dist/configure.mjs +13 -0
- package/dist/configure.mjs.map +1 -0
- package/dist/index.d.mts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +11 -815
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -805
- package/dist/index.mjs.map +1 -1
- package/dist/plugins.d.mts +50 -0
- package/dist/plugins.d.ts +50 -0
- package/dist/plugins.js +4 -0
- package/dist/plugins.js.map +1 -0
- package/dist/plugins.mjs +3 -0
- package/dist/plugins.mjs.map +1 -0
- package/dist/types.gen-Bkafu1bx.d.mts +356 -0
- package/dist/types.gen-Bkafu1bx.d.ts +356 -0
- package/dist/{types.gen-DHi9F3K-.d.mts → types.gen-D6uwMaOo.d.mts} +3 -358
- package/dist/{types.gen-DHi9F3K-.d.ts → types.gen-D6uwMaOo.d.ts} +3 -358
- package/package.json +11 -1
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
type ClientOptions = {
|
|
2
|
+
baseUrl: string;
|
|
3
|
+
};
|
|
4
|
+
type WebProfileDto = {
|
|
5
|
+
/**
|
|
6
|
+
* Display name (≤120 chars)
|
|
7
|
+
*/
|
|
8
|
+
name: string;
|
|
9
|
+
/**
|
|
10
|
+
* User email
|
|
11
|
+
*/
|
|
12
|
+
email?: string;
|
|
13
|
+
/**
|
|
14
|
+
* URL to user profile in admin panel
|
|
15
|
+
*/
|
|
16
|
+
profileUrl?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Key-value pairs (≤32 keys, key ≤64, value ≤512). Read by plugins (e.g. Remnawave reads userId).
|
|
19
|
+
*/
|
|
20
|
+
extra?: {
|
|
21
|
+
[key: string]: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
type IssueTokenDto = {
|
|
25
|
+
/**
|
|
26
|
+
* External user ID from your backend database
|
|
27
|
+
*/
|
|
28
|
+
userId: string;
|
|
29
|
+
/**
|
|
30
|
+
* User profile snapshot passed from your backend
|
|
31
|
+
*/
|
|
32
|
+
userProfile: WebProfileDto;
|
|
33
|
+
/**
|
|
34
|
+
* JWT TTL in seconds (max 3600, default 900)
|
|
35
|
+
*/
|
|
36
|
+
ttlSec?: number;
|
|
37
|
+
};
|
|
38
|
+
type IssueTokenResponseDto = {
|
|
39
|
+
/**
|
|
40
|
+
* Short-lived JWT for widget authentication
|
|
41
|
+
*/
|
|
42
|
+
token: string;
|
|
43
|
+
/**
|
|
44
|
+
* ISO timestamp when the token expires
|
|
45
|
+
*/
|
|
46
|
+
expiresAt: string;
|
|
47
|
+
};
|
|
48
|
+
type WebSseEventDataDto = {
|
|
49
|
+
/**
|
|
50
|
+
* Message ID (for 'message' events)
|
|
51
|
+
*/
|
|
52
|
+
messageId?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Message text
|
|
55
|
+
*/
|
|
56
|
+
text?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Attachment upload IDs
|
|
59
|
+
*/
|
|
60
|
+
attachmentIds?: Array<string>;
|
|
61
|
+
/**
|
|
62
|
+
* Message ID that triggered escalation ('escalation_ack' event)
|
|
63
|
+
*/
|
|
64
|
+
escalatableMessageId?: number;
|
|
65
|
+
/**
|
|
66
|
+
* Escalation source
|
|
67
|
+
*/
|
|
68
|
+
source?: string;
|
|
69
|
+
/**
|
|
70
|
+
* ISO timestamp of the event
|
|
71
|
+
*/
|
|
72
|
+
createdAt?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Human-readable message for system events
|
|
75
|
+
*/
|
|
76
|
+
message?: string;
|
|
77
|
+
};
|
|
78
|
+
type WebSseEventDto = {
|
|
79
|
+
/**
|
|
80
|
+
* Event type
|
|
81
|
+
*/
|
|
82
|
+
type: 'message' | 'resolved' | 'closed' | 'escalation_ack' | 'reopened' | 'heartbeat';
|
|
83
|
+
/**
|
|
84
|
+
* Ticket ID this event belongs to
|
|
85
|
+
*/
|
|
86
|
+
ticketId: number;
|
|
87
|
+
/**
|
|
88
|
+
* Event payload (absent for heartbeat)
|
|
89
|
+
*/
|
|
90
|
+
data?: WebSseEventDataDto;
|
|
91
|
+
};
|
|
92
|
+
type SendMessageDto = {
|
|
93
|
+
/**
|
|
94
|
+
* Message text
|
|
95
|
+
*/
|
|
96
|
+
text: string;
|
|
97
|
+
/**
|
|
98
|
+
* Upload IDs returned by POST /web/uploads
|
|
99
|
+
*/
|
|
100
|
+
attachmentIds?: Array<string>;
|
|
101
|
+
};
|
|
102
|
+
type SendMessageResponseDto = {
|
|
103
|
+
/**
|
|
104
|
+
* Ticket ID (created or existing)
|
|
105
|
+
*/
|
|
106
|
+
ticketId: number;
|
|
107
|
+
/**
|
|
108
|
+
* ID of the recorded message
|
|
109
|
+
*/
|
|
110
|
+
messageId: number;
|
|
111
|
+
/**
|
|
112
|
+
* ISO timestamp when the message was created
|
|
113
|
+
*/
|
|
114
|
+
createdAt: string;
|
|
115
|
+
};
|
|
116
|
+
type TicketInfoDto = {
|
|
117
|
+
/**
|
|
118
|
+
* Ticket ID
|
|
119
|
+
*/
|
|
120
|
+
id: number;
|
|
121
|
+
/**
|
|
122
|
+
* Ticket status
|
|
123
|
+
*/
|
|
124
|
+
status: 'open' | 'closed';
|
|
125
|
+
/**
|
|
126
|
+
* ISO timestamp when ticket was created
|
|
127
|
+
*/
|
|
128
|
+
createdAt: string;
|
|
129
|
+
/**
|
|
130
|
+
* ISO timestamp of last update
|
|
131
|
+
*/
|
|
132
|
+
updatedAt: string;
|
|
133
|
+
};
|
|
134
|
+
type MessageDto = {
|
|
135
|
+
/**
|
|
136
|
+
* Message ID
|
|
137
|
+
*/
|
|
138
|
+
id: number;
|
|
139
|
+
/**
|
|
140
|
+
* Message author role
|
|
141
|
+
*/
|
|
142
|
+
role: 'user' | 'moderator' | 'bot' | 'system';
|
|
143
|
+
/**
|
|
144
|
+
* Text content of the message
|
|
145
|
+
*/
|
|
146
|
+
content: {
|
|
147
|
+
[key: string]: unknown;
|
|
148
|
+
} | null;
|
|
149
|
+
/**
|
|
150
|
+
* Upload IDs of attached images
|
|
151
|
+
*/
|
|
152
|
+
webAttachmentIds: Array<string> | null;
|
|
153
|
+
/**
|
|
154
|
+
* ISO timestamp when the message was created
|
|
155
|
+
*/
|
|
156
|
+
createdAt: string;
|
|
157
|
+
};
|
|
158
|
+
type CurrentTicketResponseDto = {
|
|
159
|
+
/**
|
|
160
|
+
* Current open ticket, null if none
|
|
161
|
+
*/
|
|
162
|
+
ticket: TicketInfoDto | null;
|
|
163
|
+
/**
|
|
164
|
+
* Messages in chronological order (oldest first, max 50)
|
|
165
|
+
*/
|
|
166
|
+
messages: Array<MessageDto>;
|
|
167
|
+
};
|
|
168
|
+
type MessagesResponseDto = {
|
|
169
|
+
/**
|
|
170
|
+
* Messages in chronological order (oldest first)
|
|
171
|
+
*/
|
|
172
|
+
messages: Array<MessageDto>;
|
|
173
|
+
/**
|
|
174
|
+
* Pass as ?since= in the next poll request. Null when no messages returned.
|
|
175
|
+
*/
|
|
176
|
+
nextCursor: {
|
|
177
|
+
[key: string]: unknown;
|
|
178
|
+
} | null;
|
|
179
|
+
};
|
|
180
|
+
type UploadResponseDto = {
|
|
181
|
+
/**
|
|
182
|
+
* Upload ID to use in attachmentIds when sending a message
|
|
183
|
+
*/
|
|
184
|
+
uploadId: string;
|
|
185
|
+
/**
|
|
186
|
+
* MIME type of the uploaded file
|
|
187
|
+
*/
|
|
188
|
+
mimeType: string;
|
|
189
|
+
/**
|
|
190
|
+
* File size in bytes
|
|
191
|
+
*/
|
|
192
|
+
sizeBytes: number;
|
|
193
|
+
};
|
|
194
|
+
type WebAuthControllerIssueTokenData = {
|
|
195
|
+
body: IssueTokenDto;
|
|
196
|
+
path?: never;
|
|
197
|
+
query?: never;
|
|
198
|
+
url: '/web/auth/token';
|
|
199
|
+
};
|
|
200
|
+
type WebAuthControllerIssueTokenResponses = {
|
|
201
|
+
/**
|
|
202
|
+
* Short-lived JWT issued
|
|
203
|
+
*/
|
|
204
|
+
200: IssueTokenResponseDto;
|
|
205
|
+
};
|
|
206
|
+
type WebAuthControllerIssueTokenResponse = WebAuthControllerIssueTokenResponses[keyof WebAuthControllerIssueTokenResponses];
|
|
207
|
+
type WebTicketsControllerSendMessageData = {
|
|
208
|
+
body: SendMessageDto;
|
|
209
|
+
path?: never;
|
|
210
|
+
query?: never;
|
|
211
|
+
url: '/web/messages';
|
|
212
|
+
};
|
|
213
|
+
type WebTicketsControllerSendMessageResponses = {
|
|
214
|
+
/**
|
|
215
|
+
* Message recorded
|
|
216
|
+
*/
|
|
217
|
+
200: SendMessageResponseDto;
|
|
218
|
+
};
|
|
219
|
+
type WebTicketsControllerSendMessageResponse = WebTicketsControllerSendMessageResponses[keyof WebTicketsControllerSendMessageResponses];
|
|
220
|
+
type WebTicketsControllerGetCurrentTicketData = {
|
|
221
|
+
body?: never;
|
|
222
|
+
path?: never;
|
|
223
|
+
query?: never;
|
|
224
|
+
url: '/web/tickets/current';
|
|
225
|
+
};
|
|
226
|
+
type WebTicketsControllerGetCurrentTicketResponses = {
|
|
227
|
+
/**
|
|
228
|
+
* Current ticket state
|
|
229
|
+
*/
|
|
230
|
+
200: CurrentTicketResponseDto;
|
|
231
|
+
};
|
|
232
|
+
type WebTicketsControllerGetCurrentTicketResponse = WebTicketsControllerGetCurrentTicketResponses[keyof WebTicketsControllerGetCurrentTicketResponses];
|
|
233
|
+
type WebTicketsControllerGetMessagesData = {
|
|
234
|
+
body?: never;
|
|
235
|
+
path: {
|
|
236
|
+
/**
|
|
237
|
+
* Ticket ID
|
|
238
|
+
*/
|
|
239
|
+
id: number;
|
|
240
|
+
};
|
|
241
|
+
query?: {
|
|
242
|
+
/**
|
|
243
|
+
* ISO timestamp cursor from previous response nextCursor
|
|
244
|
+
*/
|
|
245
|
+
since?: string;
|
|
246
|
+
/**
|
|
247
|
+
* Max messages to return (1–100, default 50)
|
|
248
|
+
*/
|
|
249
|
+
limit?: string;
|
|
250
|
+
};
|
|
251
|
+
url: '/web/tickets/{id}/messages';
|
|
252
|
+
};
|
|
253
|
+
type WebTicketsControllerGetMessagesResponses = {
|
|
254
|
+
/**
|
|
255
|
+
* Messages since cursor
|
|
256
|
+
*/
|
|
257
|
+
200: MessagesResponseDto;
|
|
258
|
+
};
|
|
259
|
+
type WebTicketsControllerGetMessagesResponse = WebTicketsControllerGetMessagesResponses[keyof WebTicketsControllerGetMessagesResponses];
|
|
260
|
+
type WebTicketsControllerSseStreamData = {
|
|
261
|
+
body?: never;
|
|
262
|
+
path: {
|
|
263
|
+
/**
|
|
264
|
+
* Ticket ID
|
|
265
|
+
*/
|
|
266
|
+
id: number;
|
|
267
|
+
};
|
|
268
|
+
query?: {
|
|
269
|
+
/**
|
|
270
|
+
* JWT token (alternative to Authorization header, required for native EventSource)
|
|
271
|
+
*/
|
|
272
|
+
access_token?: unknown;
|
|
273
|
+
};
|
|
274
|
+
url: '/web/tickets/{id}/stream';
|
|
275
|
+
};
|
|
276
|
+
type WebTicketsControllerSseStreamResponses = {
|
|
277
|
+
/**
|
|
278
|
+
* Server-Sent Events stream
|
|
279
|
+
*/
|
|
280
|
+
200: WebSseEventDto;
|
|
281
|
+
};
|
|
282
|
+
type WebTicketsControllerSseStreamResponse = WebTicketsControllerSseStreamResponses[keyof WebTicketsControllerSseStreamResponses];
|
|
283
|
+
type WebTicketsControllerEscalateData = {
|
|
284
|
+
body?: never;
|
|
285
|
+
path: {
|
|
286
|
+
/**
|
|
287
|
+
* Ticket ID
|
|
288
|
+
*/
|
|
289
|
+
id: number;
|
|
290
|
+
};
|
|
291
|
+
query?: never;
|
|
292
|
+
url: '/web/tickets/{id}/escalate';
|
|
293
|
+
};
|
|
294
|
+
type WebTicketsControllerEscalateResponses = {
|
|
295
|
+
/**
|
|
296
|
+
* Escalation request submitted
|
|
297
|
+
*/
|
|
298
|
+
204: void;
|
|
299
|
+
};
|
|
300
|
+
type WebTicketsControllerEscalateResponse = WebTicketsControllerEscalateResponses[keyof WebTicketsControllerEscalateResponses];
|
|
301
|
+
type WebTicketsControllerResolveByUserData = {
|
|
302
|
+
body?: never;
|
|
303
|
+
path: {
|
|
304
|
+
/**
|
|
305
|
+
* Ticket ID
|
|
306
|
+
*/
|
|
307
|
+
id: number;
|
|
308
|
+
};
|
|
309
|
+
query?: never;
|
|
310
|
+
url: '/web/tickets/{id}/resolve';
|
|
311
|
+
};
|
|
312
|
+
type WebTicketsControllerResolveByUserResponses = {
|
|
313
|
+
/**
|
|
314
|
+
* Ticket resolved
|
|
315
|
+
*/
|
|
316
|
+
204: void;
|
|
317
|
+
};
|
|
318
|
+
type WebTicketsControllerResolveByUserResponse = WebTicketsControllerResolveByUserResponses[keyof WebTicketsControllerResolveByUserResponses];
|
|
319
|
+
type WebUploadsControllerUploadData = {
|
|
320
|
+
body: {
|
|
321
|
+
/**
|
|
322
|
+
* Image file (jpeg/png/webp, max 10 MB)
|
|
323
|
+
*/
|
|
324
|
+
file: Blob | File;
|
|
325
|
+
};
|
|
326
|
+
path?: never;
|
|
327
|
+
query?: never;
|
|
328
|
+
url: '/web/uploads';
|
|
329
|
+
};
|
|
330
|
+
type WebUploadsControllerUploadResponses = {
|
|
331
|
+
/**
|
|
332
|
+
* File uploaded successfully
|
|
333
|
+
*/
|
|
334
|
+
200: UploadResponseDto;
|
|
335
|
+
};
|
|
336
|
+
type WebUploadsControllerUploadResponse = WebUploadsControllerUploadResponses[keyof WebUploadsControllerUploadResponses];
|
|
337
|
+
type WebUploadsControllerGetUploadData = {
|
|
338
|
+
body?: never;
|
|
339
|
+
path: {
|
|
340
|
+
/**
|
|
341
|
+
* Upload ID returned by POST /web/uploads
|
|
342
|
+
*/
|
|
343
|
+
id: string;
|
|
344
|
+
};
|
|
345
|
+
query?: never;
|
|
346
|
+
url: '/web/uploads/{id}';
|
|
347
|
+
};
|
|
348
|
+
type WebUploadsControllerGetUploadResponses = {
|
|
349
|
+
/**
|
|
350
|
+
* Image file stream
|
|
351
|
+
*/
|
|
352
|
+
200: Blob | File;
|
|
353
|
+
};
|
|
354
|
+
type WebUploadsControllerGetUploadResponse = WebUploadsControllerGetUploadResponses[keyof WebUploadsControllerGetUploadResponses];
|
|
355
|
+
|
|
356
|
+
export type { WebTicketsControllerSseStreamResponses as A, WebUploadsControllerGetUploadData as B, ClientOptions as C, WebUploadsControllerGetUploadResponse as D, WebUploadsControllerGetUploadResponses as E, WebUploadsControllerUploadData as F, WebUploadsControllerUploadResponse as G, WebUploadsControllerUploadResponses as H, IssueTokenDto as I, MessageDto as M, SendMessageDto as S, TicketInfoDto as T, UploadResponseDto as U, WebAuthControllerIssueTokenData as W, CurrentTicketResponseDto as a, IssueTokenResponseDto as b, MessagesResponseDto as c, SendMessageResponseDto as d, WebAuthControllerIssueTokenResponse as e, WebAuthControllerIssueTokenResponses as f, WebProfileDto as g, WebSseEventDataDto as h, WebSseEventDto as i, WebTicketsControllerEscalateData as j, WebTicketsControllerEscalateResponse as k, WebTicketsControllerEscalateResponses as l, WebTicketsControllerGetCurrentTicketData as m, WebTicketsControllerGetCurrentTicketResponse as n, WebTicketsControllerGetCurrentTicketResponses as o, WebTicketsControllerGetMessagesData as p, WebTicketsControllerGetMessagesResponse as q, WebTicketsControllerGetMessagesResponses as r, WebTicketsControllerResolveByUserData as s, WebTicketsControllerResolveByUserResponse as t, WebTicketsControllerResolveByUserResponses as u, WebTicketsControllerSendMessageData as v, WebTicketsControllerSendMessageResponse as w, WebTicketsControllerSendMessageResponses as x, WebTicketsControllerSseStreamData as y, WebTicketsControllerSseStreamResponse as z };
|