@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.
@@ -206,7 +206,7 @@ interface Middleware<Req, Res, Err, Options> {
206
206
  }
207
207
 
208
208
  type ResponseStyle = 'data' | 'fields';
209
- interface Config<T extends ClientOptions$1 = ClientOptions$1> extends Omit<RequestInit, 'body' | 'headers' | 'method'>, Config$1 {
209
+ interface Config<T extends ClientOptions = ClientOptions> extends Omit<RequestInit, 'body' | 'headers' | 'method'>, Config$1 {
210
210
  /**
211
211
  * Base URL for all requests made by this client.
212
212
  */
@@ -285,7 +285,7 @@ type RequestResult<TData = unknown, TError = unknown, ThrowOnError extends boole
285
285
  /** response may be undefined, because error may be from building the request object itself or from a network error */
286
286
  response?: Response;
287
287
  }>;
288
- interface ClientOptions$1 {
288
+ interface ClientOptions {
289
289
  baseUrl?: string;
290
290
  responseStyle?: ResponseStyle;
291
291
  throwOnError?: boolean;
@@ -312,359 +312,4 @@ interface TDataShape {
312
312
  type OmitKeys<T, K> = Pick<T, Exclude<keyof T, K>>;
313
313
  type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown, TResponseStyle extends ResponseStyle = 'fields'> = OmitKeys<RequestOptions<TResponse, TResponseStyle, ThrowOnError>, 'body' | 'path' | 'query' | 'url'> & ([TData] extends [never] ? unknown : Omit<TData, 'url'>);
314
314
 
315
- type ClientOptions = {
316
- baseUrl: string;
317
- };
318
- type WebProfileDto = {
319
- /**
320
- * Display name (≤120 chars)
321
- */
322
- name: string;
323
- /**
324
- * User email
325
- */
326
- email?: string;
327
- /**
328
- * URL to user profile in admin panel
329
- */
330
- profileUrl?: string;
331
- /**
332
- * Key-value pairs (≤32 keys, key ≤64, value ≤512). Read by plugins (e.g. Remnawave reads userId).
333
- */
334
- extra?: {
335
- [key: string]: string;
336
- };
337
- };
338
- type IssueTokenDto = {
339
- /**
340
- * External user ID from your backend database
341
- */
342
- userId: string;
343
- /**
344
- * User profile snapshot passed from your backend
345
- */
346
- userProfile: WebProfileDto;
347
- /**
348
- * JWT TTL in seconds (max 3600, default 900)
349
- */
350
- ttlSec?: number;
351
- };
352
- type IssueTokenResponseDto = {
353
- /**
354
- * Short-lived JWT for widget authentication
355
- */
356
- token: string;
357
- /**
358
- * ISO timestamp when the token expires
359
- */
360
- expiresAt: string;
361
- };
362
- type WebSseEventDataDto = {
363
- /**
364
- * Message ID (for 'message' events)
365
- */
366
- messageId?: number;
367
- /**
368
- * Message text
369
- */
370
- text?: string;
371
- /**
372
- * Attachment upload IDs
373
- */
374
- attachmentIds?: Array<string>;
375
- /**
376
- * Message ID that triggered escalation ('escalation_ack' event)
377
- */
378
- escalatableMessageId?: number;
379
- /**
380
- * Escalation source
381
- */
382
- source?: string;
383
- /**
384
- * ISO timestamp of the event
385
- */
386
- createdAt?: string;
387
- /**
388
- * Human-readable message for system events
389
- */
390
- message?: string;
391
- };
392
- type WebSseEventDto = {
393
- /**
394
- * Event type
395
- */
396
- type: 'message' | 'resolved' | 'closed' | 'escalation_ack' | 'reopened' | 'heartbeat';
397
- /**
398
- * Ticket ID this event belongs to
399
- */
400
- ticketId: number;
401
- /**
402
- * Event payload (absent for heartbeat)
403
- */
404
- data?: WebSseEventDataDto;
405
- };
406
- type SendMessageDto = {
407
- /**
408
- * Message text
409
- */
410
- text: string;
411
- /**
412
- * Upload IDs returned by POST /web/uploads
413
- */
414
- attachmentIds?: Array<string>;
415
- };
416
- type SendMessageResponseDto = {
417
- /**
418
- * Ticket ID (created or existing)
419
- */
420
- ticketId: number;
421
- /**
422
- * ID of the recorded message
423
- */
424
- messageId: number;
425
- /**
426
- * ISO timestamp when the message was created
427
- */
428
- createdAt: string;
429
- };
430
- type TicketInfoDto = {
431
- /**
432
- * Ticket ID
433
- */
434
- id: number;
435
- /**
436
- * Ticket status
437
- */
438
- status: 'open' | 'closed';
439
- /**
440
- * ISO timestamp when ticket was created
441
- */
442
- createdAt: string;
443
- /**
444
- * ISO timestamp of last update
445
- */
446
- updatedAt: string;
447
- };
448
- type MessageDto = {
449
- /**
450
- * Message ID
451
- */
452
- id: number;
453
- /**
454
- * Message author role
455
- */
456
- role: 'user' | 'moderator' | 'bot' | 'system';
457
- /**
458
- * Text content of the message
459
- */
460
- content: {
461
- [key: string]: unknown;
462
- } | null;
463
- /**
464
- * Upload IDs of attached images
465
- */
466
- webAttachmentIds: Array<string> | null;
467
- /**
468
- * ISO timestamp when the message was created
469
- */
470
- createdAt: string;
471
- };
472
- type CurrentTicketResponseDto = {
473
- /**
474
- * Current open ticket, null if none
475
- */
476
- ticket: TicketInfoDto | null;
477
- /**
478
- * Messages in chronological order (oldest first, max 50)
479
- */
480
- messages: Array<MessageDto>;
481
- };
482
- type MessagesResponseDto = {
483
- /**
484
- * Messages in chronological order (oldest first)
485
- */
486
- messages: Array<MessageDto>;
487
- /**
488
- * Pass as ?since= in the next poll request. Null when no messages returned.
489
- */
490
- nextCursor: {
491
- [key: string]: unknown;
492
- } | null;
493
- };
494
- type UploadResponseDto = {
495
- /**
496
- * Upload ID to use in attachmentIds when sending a message
497
- */
498
- uploadId: string;
499
- /**
500
- * MIME type of the uploaded file
501
- */
502
- mimeType: string;
503
- /**
504
- * File size in bytes
505
- */
506
- sizeBytes: number;
507
- };
508
- type WebAuthControllerIssueTokenData = {
509
- body: IssueTokenDto;
510
- path?: never;
511
- query?: never;
512
- url: '/web/auth/token';
513
- };
514
- type WebAuthControllerIssueTokenResponses = {
515
- /**
516
- * Short-lived JWT issued
517
- */
518
- 200: IssueTokenResponseDto;
519
- };
520
- type WebAuthControllerIssueTokenResponse = WebAuthControllerIssueTokenResponses[keyof WebAuthControllerIssueTokenResponses];
521
- type WebTicketsControllerSendMessageData = {
522
- body: SendMessageDto;
523
- path?: never;
524
- query?: never;
525
- url: '/web/messages';
526
- };
527
- type WebTicketsControllerSendMessageResponses = {
528
- /**
529
- * Message recorded
530
- */
531
- 200: SendMessageResponseDto;
532
- };
533
- type WebTicketsControllerSendMessageResponse = WebTicketsControllerSendMessageResponses[keyof WebTicketsControllerSendMessageResponses];
534
- type WebTicketsControllerGetCurrentTicketData = {
535
- body?: never;
536
- path?: never;
537
- query?: never;
538
- url: '/web/tickets/current';
539
- };
540
- type WebTicketsControllerGetCurrentTicketResponses = {
541
- /**
542
- * Current ticket state
543
- */
544
- 200: CurrentTicketResponseDto;
545
- };
546
- type WebTicketsControllerGetCurrentTicketResponse = WebTicketsControllerGetCurrentTicketResponses[keyof WebTicketsControllerGetCurrentTicketResponses];
547
- type WebTicketsControllerGetMessagesData = {
548
- body?: never;
549
- path: {
550
- /**
551
- * Ticket ID
552
- */
553
- id: number;
554
- };
555
- query?: {
556
- /**
557
- * ISO timestamp cursor from previous response nextCursor
558
- */
559
- since?: string;
560
- /**
561
- * Max messages to return (1–100, default 50)
562
- */
563
- limit?: string;
564
- };
565
- url: '/web/tickets/{id}/messages';
566
- };
567
- type WebTicketsControllerGetMessagesResponses = {
568
- /**
569
- * Messages since cursor
570
- */
571
- 200: MessagesResponseDto;
572
- };
573
- type WebTicketsControllerGetMessagesResponse = WebTicketsControllerGetMessagesResponses[keyof WebTicketsControllerGetMessagesResponses];
574
- type WebTicketsControllerSseStreamData = {
575
- body?: never;
576
- path: {
577
- /**
578
- * Ticket ID
579
- */
580
- id: number;
581
- };
582
- query?: {
583
- /**
584
- * JWT token (alternative to Authorization header, required for native EventSource)
585
- */
586
- access_token?: unknown;
587
- };
588
- url: '/web/tickets/{id}/stream';
589
- };
590
- type WebTicketsControllerSseStreamResponses = {
591
- /**
592
- * Server-Sent Events stream
593
- */
594
- 200: WebSseEventDto;
595
- };
596
- type WebTicketsControllerSseStreamResponse = WebTicketsControllerSseStreamResponses[keyof WebTicketsControllerSseStreamResponses];
597
- type WebTicketsControllerEscalateData = {
598
- body?: never;
599
- path: {
600
- /**
601
- * Ticket ID
602
- */
603
- id: number;
604
- };
605
- query?: never;
606
- url: '/web/tickets/{id}/escalate';
607
- };
608
- type WebTicketsControllerEscalateResponses = {
609
- /**
610
- * Escalation request submitted
611
- */
612
- 204: void;
613
- };
614
- type WebTicketsControllerEscalateResponse = WebTicketsControllerEscalateResponses[keyof WebTicketsControllerEscalateResponses];
615
- type WebTicketsControllerResolveByUserData = {
616
- body?: never;
617
- path: {
618
- /**
619
- * Ticket ID
620
- */
621
- id: number;
622
- };
623
- query?: never;
624
- url: '/web/tickets/{id}/resolve';
625
- };
626
- type WebTicketsControllerResolveByUserResponses = {
627
- /**
628
- * Ticket resolved
629
- */
630
- 204: void;
631
- };
632
- type WebTicketsControllerResolveByUserResponse = WebTicketsControllerResolveByUserResponses[keyof WebTicketsControllerResolveByUserResponses];
633
- type WebUploadsControllerUploadData = {
634
- body: {
635
- /**
636
- * Image file (jpeg/png/webp, max 10 MB)
637
- */
638
- file: Blob | File;
639
- };
640
- path?: never;
641
- query?: never;
642
- url: '/web/uploads';
643
- };
644
- type WebUploadsControllerUploadResponses = {
645
- /**
646
- * File uploaded successfully
647
- */
648
- 200: UploadResponseDto;
649
- };
650
- type WebUploadsControllerUploadResponse = WebUploadsControllerUploadResponses[keyof WebUploadsControllerUploadResponses];
651
- type WebUploadsControllerGetUploadData = {
652
- body?: never;
653
- path: {
654
- /**
655
- * Upload ID returned by POST /web/uploads
656
- */
657
- id: string;
658
- };
659
- query?: never;
660
- url: '/web/uploads/{id}';
661
- };
662
- type WebUploadsControllerGetUploadResponses = {
663
- /**
664
- * Image file stream
665
- */
666
- 200: Blob | File;
667
- };
668
- type WebUploadsControllerGetUploadResponse = WebUploadsControllerGetUploadResponses[keyof WebUploadsControllerGetUploadResponses];
669
-
670
- export type { WebTicketsControllerSendMessageData as A, WebTicketsControllerSendMessageResponse as B, Client as C, WebTicketsControllerSendMessageResponses as D, WebTicketsControllerSseStreamData as E, WebTicketsControllerSseStreamResponse as F, WebTicketsControllerSseStreamResponses as G, WebUploadsControllerGetUploadData as H, IssueTokenDto as I, WebUploadsControllerGetUploadResponse as J, WebUploadsControllerGetUploadResponses as K, WebUploadsControllerUploadData as L, MessageDto as M, WebUploadsControllerUploadResponse as N, Options as O, WebUploadsControllerUploadResponses as P, RequestResult as R, SendMessageDto as S, TDataShape as T, UploadResponseDto as U, WebAuthControllerIssueTokenData as W, ClientOptions as a, ClientOptions$1 as b, Config as c, CurrentTicketResponseDto as d, IssueTokenResponseDto as e, MessagesResponseDto as f, SendMessageResponseDto as g, ServerSentEventsResult as h, TicketInfoDto as i, WebAuthControllerIssueTokenResponse as j, WebAuthControllerIssueTokenResponses as k, WebProfileDto as l, WebSseEventDataDto as m, WebSseEventDto as n, WebTicketsControllerEscalateData as o, WebTicketsControllerEscalateResponse as p, WebTicketsControllerEscalateResponses as q, WebTicketsControllerGetCurrentTicketData as r, WebTicketsControllerGetCurrentTicketResponse as s, WebTicketsControllerGetCurrentTicketResponses as t, WebTicketsControllerGetMessagesData as u, WebTicketsControllerGetMessagesResponse as v, WebTicketsControllerGetMessagesResponses as w, WebTicketsControllerResolveByUserData as x, WebTicketsControllerResolveByUserResponse as y, WebTicketsControllerResolveByUserResponses as z };
315
+ export type { Client as C, Options as O, RequestResult as R, ServerSentEventsResult as S, TDataShape as T, ClientOptions as a, Config as b };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webzaytsev/support-sdk",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "TypeScript SDK for Support Bot Web API",
5
5
  "private": false,
6
6
  "main": "dist/index.js",
@@ -21,6 +21,16 @@
21
21
  "types": "./dist/zod.gen.d.ts",
22
22
  "import": "./dist/zod.gen.mjs",
23
23
  "require": "./dist/zod.gen.js"
24
+ },
25
+ "./plugins": {
26
+ "types": "./dist/plugins.d.ts",
27
+ "import": "./dist/plugins.mjs",
28
+ "require": "./dist/plugins.js"
29
+ },
30
+ "./configure": {
31
+ "types": "./dist/configure.d.ts",
32
+ "import": "./dist/configure.mjs",
33
+ "require": "./dist/configure.js"
24
34
  }
25
35
  },
26
36
  "files": [