@opencx/widget 2.5.0 → 2.6.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 (52) hide show
  1. package/dist/basic.cjs +1 -1
  2. package/dist/basic.cjs.map +1 -1
  3. package/dist/basic.js +1 -1
  4. package/dist/basic.js.map +1 -1
  5. package/dist/core/client/api.d.ts +1 -1
  6. package/dist/core/client/chat.d.ts +37 -2
  7. package/dist/core/client/contact.d.ts +2 -2
  8. package/dist/core/errors/index.d.ts +6 -0
  9. package/dist/core/platform/audio.d.ts +38 -0
  10. package/dist/core/platform/index.d.ts +6 -2
  11. package/dist/core/platform/storage.d.ts +8 -2
  12. package/dist/core/tests/client/integration.test.d.ts +1 -0
  13. package/dist/core/tests/platform/audio.test.d.ts +1 -0
  14. package/dist/core/tests/platform/logger.test.d.ts +1 -0
  15. package/dist/core/tests/platform/storage.test.d.ts +1 -0
  16. package/dist/core/tests/test-utils.d.ts +2 -0
  17. package/dist/core/tests/types/pub-sub.test.d.ts +1 -0
  18. package/dist/core/tests/utils/create-fetch.test.d.ts +1 -0
  19. package/dist/core/types/helpers.d.ts +2 -2
  20. package/dist/core/types/pub-sub.d.ts +1 -0
  21. package/dist/core/types/schemas-v2.d.ts +6 -3
  22. package/dist/core/utils/create-fetch.d.ts +2 -1
  23. package/dist/core/utils/genUuid.d.ts +1 -0
  24. package/dist/{schemas-v2-DZ3nwfID.js → genUuid-C12yFv3j.js} +18 -19
  25. package/dist/genUuid-C12yFv3j.js.map +1 -0
  26. package/dist/genUuid-DdeSE04H.cjs +2 -0
  27. package/dist/genUuid-DdeSE04H.cjs.map +1 -0
  28. package/dist/{index-CJ_skeU7.js → index-C87obATS.js} +583 -569
  29. package/dist/index-C87obATS.js.map +1 -0
  30. package/dist/index-ChwS_h0D.cjs +18 -0
  31. package/dist/index-ChwS_h0D.cjs.map +1 -0
  32. package/dist/index.cjs +1 -1
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.js +668 -471
  35. package/dist/index.js.map +1 -1
  36. package/dist/package.json.d.ts +3 -1
  37. package/dist/react-web/utils/getters.d.ts +1 -1
  38. package/dist/react.cjs +1 -1
  39. package/dist/react.cjs.map +1 -1
  40. package/dist/react.js +2 -2
  41. package/dist/react.js.map +1 -1
  42. package/dist/src/@components/BotOrAgentMessageGroup.d.ts +2 -1
  43. package/dist-embed/script.js +101 -101
  44. package/dist-embed/script.js.map +1 -1
  45. package/package.json +3 -1
  46. package/dist/index-9gKFMrIK.cjs +0 -18
  47. package/dist/index-9gKFMrIK.cjs.map +0 -1
  48. package/dist/index-CJ_skeU7.js.map +0 -1
  49. package/dist/schemas-v2-BiJWHypc.cjs +0 -2
  50. package/dist/schemas-v2-BiJWHypc.cjs.map +0 -1
  51. package/dist/schemas-v2-DZ3nwfID.js.map +0 -1
  52. /package/dist/core/{utils/genId.test.d.ts → tests/client/integration-perisitance.test.d.ts} +0 -0
@@ -12,7 +12,7 @@ export declare class ApiCaller {
12
12
  contactName: string;
13
13
  }>;
14
14
  widgetPrelude(): Promise<WidgetPreludeSchema>;
15
- handleMessage(message: HttpChatInputSchema): Promise<{
15
+ handleMessage(message: HttpChatInputSchema, abortSignal?: AbortSignal): Promise<{
16
16
  success: true;
17
17
  code?: string | undefined;
18
18
  options?: {
@@ -5,13 +5,24 @@ import { HttpChatInputSchema } from '../types/schemas-v2';
5
5
  import { LoadingState, ErrorState, SomeOptional } from '../types/helpers';
6
6
  import { ConfigInstance } from './config';
7
7
  import { Platform } from '../platform';
8
- type ChatState = {
8
+ export type PollingType = 'session' | 'messages';
9
+ export type PollingState = {
10
+ isPolling: boolean;
11
+ lastPollTime: string | null;
12
+ nextPollTime: string | null;
13
+ error: ErrorState;
14
+ };
15
+ export type PollingStates = {
16
+ [K in PollingType]: PollingState;
17
+ };
18
+ export type ChatState = {
9
19
  messages: MessageType[];
10
20
  keyboard: {
11
21
  options: string[];
12
22
  } | null;
13
23
  loading: LoadingState;
14
24
  error: ErrorState;
25
+ polling: PollingStates;
15
26
  };
16
27
  type ChatOptions = {
17
28
  api: ApiCaller;
@@ -19,6 +30,7 @@ type ChatOptions = {
19
30
  onSessionDestroy?: () => void;
20
31
  platform: Platform;
21
32
  };
33
+ export type SendMessageInput = SomeOptional<Omit<HttpChatInputSchema, "bot_token">, "session_id" | "user">;
22
34
  export declare function createChat(options: ChatOptions): {
23
35
  chatState: PubSub<ChatState>;
24
36
  sessionState: PubSub<{
@@ -33,7 +45,28 @@ export declare function createChat(options: ChatOptions): {
33
45
  };
34
46
  channel: string;
35
47
  } | null>;
36
- sendMessage: (input: SomeOptional<Omit<HttpChatInputSchema, "bot_token">, "session_id" | "user">) => Promise<boolean>;
48
+ sendMessage: (input: SendMessageInput, abort?: AbortSignal) => Promise<{
49
+ success: boolean;
50
+ createdSession: boolean;
51
+ botMessage?: undefined;
52
+ error?: undefined;
53
+ } | {
54
+ success: boolean;
55
+ createdSession: boolean;
56
+ botMessage: {
57
+ type: "FROM_BOT";
58
+ id: string;
59
+ timestamp: string;
60
+ component: string;
61
+ data: unknown;
62
+ } | null;
63
+ error?: undefined;
64
+ } | {
65
+ success: boolean;
66
+ createdSession: boolean;
67
+ error: unknown;
68
+ botMessage?: undefined;
69
+ }>;
37
70
  createSession: () => Promise<{
38
71
  id: string;
39
72
  createdAt: Date;
@@ -48,5 +81,7 @@ export declare function createChat(options: ChatOptions): {
48
81
  } | null>;
49
82
  clearSession: () => Promise<void>;
50
83
  cleanup: (removeSession?: boolean) => void;
84
+ initialState: ChatState;
85
+ sessionStorageKey: string;
51
86
  };
52
87
  export {};
@@ -9,12 +9,12 @@ type ContactState = {
9
9
  loading: LoadingState;
10
10
  error: ErrorState;
11
11
  };
12
- type ContactOptions = {
12
+ export type CreateContactOptions = {
13
13
  api: ApiCaller;
14
14
  platform: Platform;
15
15
  config: ConfigInstance;
16
16
  };
17
- export declare function createContact(options: ContactOptions): {
17
+ export declare function createContact(options: CreateContactOptions): {
18
18
  contactState: PubSub<ContactState>;
19
19
  shouldCollectData: () => {
20
20
  should: boolean;
@@ -19,3 +19,9 @@ export declare class TransportError extends OpenCXError {
19
19
  export declare class FileUploadError extends OpenCXError {
20
20
  constructor(message?: string);
21
21
  }
22
+ export declare class StorageNotAvailableError extends OpenCXError {
23
+ constructor(message?: string);
24
+ }
25
+ export declare class ExternalIdNotDefinedError extends OpenCXError {
26
+ constructor(message?: string);
27
+ }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Platform-agnostic audio interface that can be implemented
3
+ * for different environments (web, mobile, desktop, etc.)
4
+ */
5
+ export interface Audio {
6
+ /**
7
+ * Plays a notification sound
8
+ * @returns Promise that resolves when the sound finishes playing or rejects on error
9
+ */
10
+ playNotification(): Promise<void>;
11
+ /**
12
+ * Checks if audio playback is available and working
13
+ * @returns true if audio is available and working
14
+ */
15
+ isAvailable?(): boolean;
16
+ }
17
+ /**
18
+ * Helper function to check if audio is available and working
19
+ */
20
+ export declare function isAudioAvailable(audio: Audio | undefined): audio is Audio;
21
+ /**
22
+ * Type for the result of a safe audio operation
23
+ */
24
+ export type AudioOperationResult = {
25
+ success: true;
26
+ error: null;
27
+ } | {
28
+ success: false;
29
+ error: {
30
+ message: string;
31
+ code: string;
32
+ context: string;
33
+ };
34
+ };
35
+ /**
36
+ * Helper function to safely perform audio operations
37
+ */
38
+ export declare function safeAudioOperation(operation: () => Promise<void>, errorContext: string): Promise<AudioOperationResult>;
@@ -1,11 +1,15 @@
1
- import { Logger } from './logger';
2
1
  import { Storage } from './storage';
2
+ import { Audio } from './audio';
3
+ import { Logger } from './logger';
3
4
  export * from './storage';
4
- export type { Storage };
5
+ export * from './logger';
6
+ export * from './audio';
7
+ export type { Storage, Audio, Logger };
5
8
  export interface Platform {
6
9
  storage?: Storage;
7
10
  logger?: Logger;
8
11
  env: {
9
12
  platform: string;
10
13
  };
14
+ audio?: Audio;
11
15
  }
@@ -36,11 +36,17 @@ export declare function isStorageAvailable(storage: Storage | undefined): storag
36
36
  export type StorageOperationResult<T> = {
37
37
  success: true;
38
38
  result: T;
39
+ error: null;
39
40
  } | {
40
41
  success: false;
41
- error: Error;
42
+ result: null;
43
+ error: {
44
+ message: string;
45
+ code: string;
46
+ context: string;
47
+ };
42
48
  };
43
49
  /**
44
50
  * Helper function to safely perform storage operations
45
51
  */
46
- export declare function safeStorageOperation<T>(operation: () => Promise<T>, errorMessage: string): Promise<StorageOperationResult<T>>;
52
+ export declare function safeStorageOperation<T>(operation: () => Promise<T>, errorContext: string): Promise<StorageOperationResult<T>>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import { User } from '../types';
2
+ export declare function getTestUser(): User;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -6,9 +6,9 @@ export type MakeKeysNotNullable<T, K extends keyof T> = Omit<T, K> & {
6
6
  export type LoadingReason = 'sending_message_to_bot' | 'sending_message_to_agent' | 'creating_session' | 'polling' | 'loading_contact' | 'saving_contact' | 'cleaning_up' | null;
7
7
  export type LoadingState = {
8
8
  isLoading: boolean;
9
- reason?: LoadingReason;
9
+ reason: LoadingReason;
10
10
  };
11
- export type ErrorCode = 'SESSION_CREATION_FAILED' | 'SESSION_CLEAR_FAILED' | 'SESSION_PERSISTENCE_FAILED' | 'MESSAGE_SEND_FAILED' | 'NO_ACTIVE_SESSION' | 'CONTACT_PERSISTENCE_FAILED' | 'CONTACT_LOAD_FAILED' | 'CONTACT_SAVE_FAILED' | 'CONTACT_CLEANUP_FAILED';
11
+ export type ErrorCode = 'SESSION_CREATION_FAILED' | 'SESSION_CLEAR_FAILED' | 'SESSION_PERSISTENCE_FAILED' | 'SESSION_POLLING_FAILED' | 'MESSAGES_POLLING_FAILED' | 'MESSAGE_SEND_FAILED' | 'NO_ACTIVE_SESSION' | 'CONTACT_PERSISTENCE_FAILED' | 'CONTACT_LOAD_FAILED' | 'CONTACT_SAVE_FAILED' | 'CONTACT_CLEANUP_FAILED';
12
12
  export type ErrorState = {
13
13
  hasError: boolean;
14
14
  message?: string;
@@ -19,6 +19,7 @@ export declare class PubSub<S> {
19
19
  private lifecycleListeners;
20
20
  constructor(state: S);
21
21
  private emitLifecycle;
22
+ private notifySubscribers;
22
23
  /**
23
24
  * Subscribe to state changes
24
25
  * @param callback Function to call when state changes
@@ -292,7 +292,7 @@ export declare enum MessageTypeEnum {
292
292
  CONTACT_RESOLVED_THE_SESSION = "user_confirmed_the_session_resolved"
293
293
  }
294
294
  declare const widgetHistorySchema: z.ZodObject<{
295
- publicId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
295
+ publicId: z.ZodString;
296
296
  type: z.ZodNativeEnum<typeof MessageTypeEnum>;
297
297
  sender: z.ZodObject<{
298
298
  kind: z.ZodEnum<["user", "agent", "ai", "none", "unknown"]>;
@@ -349,6 +349,7 @@ declare const widgetHistorySchema: z.ZodObject<{
349
349
  }>, "many">>>;
350
350
  }, "strip", z.ZodTypeAny, {
351
351
  type: MessageTypeEnum;
352
+ publicId: string;
352
353
  sender: {
353
354
  kind: "unknown" | "user" | "agent" | "ai" | "none";
354
355
  name?: string | null | undefined;
@@ -357,7 +358,6 @@ declare const widgetHistorySchema: z.ZodObject<{
357
358
  content: {
358
359
  text?: string | null | undefined;
359
360
  };
360
- publicId?: string | null | undefined;
361
361
  sentAt?: string | null | undefined;
362
362
  actionCalls?: {
363
363
  actionName: string;
@@ -373,6 +373,7 @@ declare const widgetHistorySchema: z.ZodObject<{
373
373
  }[] | null | undefined;
374
374
  }, {
375
375
  type: MessageTypeEnum;
376
+ publicId: string;
376
377
  sender: {
377
378
  kind: "unknown" | "user" | "agent" | "ai" | "none";
378
379
  name?: string | null | undefined;
@@ -381,7 +382,6 @@ declare const widgetHistorySchema: z.ZodObject<{
381
382
  content: {
382
383
  text?: string | null | undefined;
383
384
  };
384
- publicId?: string | null | undefined;
385
385
  sentAt?: string | null | undefined;
386
386
  actionCalls?: {
387
387
  actionName: string;
@@ -437,6 +437,7 @@ declare const widgetSessionSchema: z.ZodObject<{
437
437
  channel: string;
438
438
  }>;
439
439
  declare const httpChatInputDto: z.ZodObject<{
440
+ uuid: z.ZodOptional<z.ZodString>;
440
441
  content: z.ZodString;
441
442
  session_id: z.ZodString;
442
443
  headers: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>>;
@@ -499,6 +500,7 @@ declare const httpChatInputDto: z.ZodObject<{
499
500
  size: number;
500
501
  url: string;
501
502
  }[] | null | undefined;
503
+ uuid?: string | undefined;
502
504
  headers?: Record<string, string> | null | undefined;
503
505
  query_params?: Record<string, string> | null | undefined;
504
506
  language?: string | null | undefined;
@@ -520,6 +522,7 @@ declare const httpChatInputDto: z.ZodObject<{
520
522
  size: number;
521
523
  url: string;
522
524
  }[] | null | undefined;
525
+ uuid?: string | undefined;
523
526
  headers?: Record<string, string> | null | undefined;
524
527
  query_params?: Record<string, string> | null | undefined;
525
528
  language?: string | null | undefined;
@@ -19,6 +19,7 @@ export interface CustomFetch {
19
19
  };
20
20
  };
21
21
  }
22
- export declare function createFetch(defaultConfig?: RequestConfig): CustomFetch;
22
+ type Fetch = typeof globalThis.fetch;
23
+ export declare function createFetch(defaultConfig?: RequestConfig, fetch?: Fetch): CustomFetch;
23
24
  export declare function handleJsonResponse<T>(response: Response): Promise<T>;
24
25
  export {};
@@ -0,0 +1 @@
1
+ export declare function genUuid(): string;
@@ -1,14 +1,9 @@
1
1
  import { z as n } from "zod";
2
- const d = (t = 20) => {
3
- const e = "abcdefghijklmnopqrstuvwxyz0123456789";
4
- let a = "";
5
- for (let i = 0; i < t; i++)
6
- a += e[Math.floor(Math.random() * e.length)];
7
- return a;
8
- }, o = n.object({
2
+ import { v4 as i } from "uuid";
3
+ const o = n.object({
9
4
  from: n.string(),
10
5
  to: n.string()
11
- }), r = n.object({
6
+ }), s = n.object({
12
7
  monday: o.optional(),
13
8
  tuesday: o.optional(),
14
9
  wednesday: o.optional(),
@@ -22,21 +17,21 @@ const d = (t = 20) => {
22
17
  n.object({
23
18
  initialQuestions: n.array(n.string()),
24
19
  aiEnabled: n.boolean(),
25
- officeHours: r,
20
+ officeHours: s,
26
21
  officeHoursTimezone: n.string().nullable(),
27
22
  organizationName: n.string()
28
23
  });
29
- const l = n.object({
24
+ const e = n.object({
30
25
  id: n.string(),
31
26
  name: n.string(),
32
27
  size: n.number(),
33
28
  type: n.string(),
34
29
  url: n.string()
35
30
  });
36
- var s = /* @__PURE__ */ ((t) => (t.MESSAGE = "message", t.HANDOFF = "handoff", t.HANDOFF_TO_ZENDESK = "handoff_to_zendesk", t.AGENT_MESSAGE = "agent_message", t.AGENT_JOINED = "agent_joined", t.AGENT_COMMENT = "agent_comment", t.AGENT_TOOK_SESSION_FROM_AI = "agent_took_session_from_ai", t.AGENT_REOPENED_SESSION = "agent_reopened_session", t.AI_DECIDED_TO_RESOLVE_THE_ISSUE = "ai_decided_to_resolve_the_issue", t.EMAIL_DRAFT_MESSAGE = "email_draft_message", t.FOLLOWUP = "followup", t.AI_ASSUMED_THE_SESSION_RESOLVED = "ai_assumed_the_session_resolved", t.CONTACT_RESOLVED_THE_SESSION = "user_confirmed_the_session_resolved", t))(s || {});
31
+ var a = /* @__PURE__ */ ((t) => (t.MESSAGE = "message", t.HANDOFF = "handoff", t.HANDOFF_TO_ZENDESK = "handoff_to_zendesk", t.AGENT_MESSAGE = "agent_message", t.AGENT_JOINED = "agent_joined", t.AGENT_COMMENT = "agent_comment", t.AGENT_TOOK_SESSION_FROM_AI = "agent_took_session_from_ai", t.AGENT_REOPENED_SESSION = "agent_reopened_session", t.AI_DECIDED_TO_RESOLVE_THE_ISSUE = "ai_decided_to_resolve_the_issue", t.EMAIL_DRAFT_MESSAGE = "email_draft_message", t.FOLLOWUP = "followup", t.AI_ASSUMED_THE_SESSION_RESOLVED = "ai_assumed_the_session_resolved", t.CONTACT_RESOLVED_THE_SESSION = "user_confirmed_the_session_resolved", t))(a || {});
37
32
  n.object({
38
- publicId: n.string().optional().nullable(),
39
- type: n.nativeEnum(s),
33
+ publicId: n.string(),
34
+ type: n.nativeEnum(a),
40
35
  sender: n.object({
41
36
  kind: n.enum(["user", "agent", "ai", "none", "unknown"]),
42
37
  name: n.string().optional().nullable(),
@@ -53,7 +48,7 @@ n.object({
53
48
  result: n.record(n.string(), n.unknown()).optional().nullable()
54
49
  })
55
50
  ).optional().nullable(),
56
- attachments: n.array(l).optional().nullable()
51
+ attachments: n.array(e).optional().nullable()
57
52
  });
58
53
  n.object({
59
54
  id: n.string().uuid(),
@@ -68,6 +63,7 @@ n.object({
68
63
  channel: n.string()
69
64
  });
70
65
  n.object({
66
+ uuid: n.string().uuid().optional(),
71
67
  content: n.string(),
72
68
  session_id: n.string(),
73
69
  headers: n.record(n.string(), n.string()).optional().nullable(),
@@ -81,7 +77,7 @@ n.object({
81
77
  customData: n.record(n.string(), n.string()).optional()
82
78
  }).optional().nullable(),
83
79
  language: n.string().optional().nullable(),
84
- attachments: n.array(l).optional().nullable()
80
+ attachments: n.array(e).optional().nullable()
85
81
  });
86
82
  n.discriminatedUnion(
87
83
  "success",
@@ -130,9 +126,12 @@ n.object({
130
126
  messagePublicId: n.string().nullable(),
131
127
  success: n.boolean()
132
128
  });
129
+ function c() {
130
+ return i();
131
+ }
133
132
  export {
134
- s as M,
135
- l as c,
136
- d as g
133
+ a as M,
134
+ e as c,
135
+ c as g
137
136
  };
138
- //# sourceMappingURL=schemas-v2-DZ3nwfID.js.map
137
+ //# sourceMappingURL=genUuid-C12yFv3j.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genUuid-C12yFv3j.js","sources":["../core/types/schemas-v2.ts","../core/utils/genUuid.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst DayOfficeHoursSchema = z.object({\n from: z.string(),\n to: z.string(),\n})\n\nconst officeHoursSchema = z.object({\n monday: DayOfficeHoursSchema.optional(),\n tuesday: DayOfficeHoursSchema.optional(),\n wednesday: DayOfficeHoursSchema.optional(),\n thursday: DayOfficeHoursSchema.optional(),\n friday: DayOfficeHoursSchema.optional(),\n saturday: DayOfficeHoursSchema.optional(),\n sunday: DayOfficeHoursSchema.optional(),\n Everyday: DayOfficeHoursSchema.optional(),\n WeekDays: DayOfficeHoursSchema.optional(),\n});\n\nconst widgetPreludeSchema = z.object({\n initialQuestions: z.array(z.string()),\n aiEnabled: z.boolean(),\n officeHours: officeHoursSchema,\n officeHoursTimezone: z.string().nullable(),\n organizationName: z.string(),\n})\n\nexport const chatAttachmentSchema = z.object({\n id: z.string(),\n name: z.string(),\n size: z.number(),\n type: z.string(),\n url: z.string(),\n});\n\nexport enum MessageTypeEnum {\n MESSAGE = 'message',\n HANDOFF = 'handoff',\n HANDOFF_TO_ZENDESK = 'handoff_to_zendesk',\n AGENT_MESSAGE = 'agent_message',\n AGENT_JOINED = 'agent_joined',\n AGENT_COMMENT = 'agent_comment',\n AGENT_TOOK_SESSION_FROM_AI = 'agent_took_session_from_ai',\n AGENT_REOPENED_SESSION = 'agent_reopened_session',\n AI_DECIDED_TO_RESOLVE_THE_ISSUE = 'ai_decided_to_resolve_the_issue',\n EMAIL_DRAFT_MESSAGE = 'email_draft_message',\n FOLLOWUP = 'followup',\n AI_ASSUMED_THE_SESSION_RESOLVED = 'ai_assumed_the_session_resolved',\n CONTACT_RESOLVED_THE_SESSION = 'user_confirmed_the_session_resolved',\n}\n\nconst widgetHistorySchema = z.object({\n publicId: z.string(),\n type: z.nativeEnum(MessageTypeEnum),\n sender: z.object({\n kind: z.enum(['user', 'agent', 'ai', 'none', 'unknown']),\n name: z.string().optional().nullable(),\n avatar: z.string().optional().nullable(),\n }),\n content: z.object({\n text: z.string().optional().nullable(),\n }),\n sentAt: z.string().optional().nullable(),\n actionCalls: z\n .array(\n z.object({\n actionName: z.string(),\n args: z.record(z.string(), z.unknown()),\n result: z.record(z.string(), z.unknown()).optional().nullable(),\n }),\n )\n .optional()\n .nullable(),\n attachments: z.array(chatAttachmentSchema).optional().nullable(),\n})\n\nconst widgetSessionSchema = z.object({\n id: z.string().uuid(),\n createdAt: z.date(),\n updatedAt: z.date(),\n isHandedOff: z.boolean(),\n isOpened: z.boolean(),\n assignee: z.object({\n kind: z.enum(['human', 'ai', 'none', 'unknown']),\n name: z.string().nullable(),\n }),\n channel: z.string(),\n})\n\nconst httpChatInputDto = z.object({\n uuid: z.string().uuid().optional(),\n content: z.string(),\n session_id: z.string(),\n headers: z.record(z.string(), z.string()).optional().nullable(),\n bot_token: z.string(),\n query_params: z.record(z.string(), z.string()).optional().nullable(),\n user: z\n .object({\n email: z.string().optional(),\n name: z.string().optional(),\n phone: z.string().optional(),\n avatar: z.string().optional(),\n customData: z.record(z.string(), z.string()).optional(),\n })\n .optional()\n .nullable(),\n language: z.string().optional().nullable(),\n attachments: z.array(chatAttachmentSchema).optional().nullable(),\n})\n\nconst handleContactMessageOutputSchema = z.discriminatedUnion(\n 'success',\n [\n z.object({\n success: z.literal(true),\n code: z.union([z.string(), z.literal(\"session_assigned_to_human_agent\")]).optional(),\n options: z\n .object({\n type: z.literal('options'),\n value: z.array(z.string()),\n })\n .optional(),\n autopilotResponse: z\n .object({\n type: z.literal('text'),\n value: z.object({\n error: z.boolean(),\n content: z.string(),\n }),\n id: z.string().optional(),\n })\n .optional(),\n uiResponse: z\n .object({\n type: z.literal('ui'),\n value: z.object({\n type: z.literal('ui_component'),\n request_response: z.unknown(),\n name: z.string(),\n content: z.string().optional(),\n }),\n })\n .optional(),\n sessionIsHandedOff: z.boolean().optional(),\n }),\n z.object({\n success: z.literal(false),\n error: z.object({\n code: z.string().optional(),\n message: z.string().optional(),\n }),\n }),\n ],\n);\n\nconst widgetVoteSchema = z.object({\n action: z.enum(['upvote', 'downvote']),\n sessionId: z.string(),\n messagePublicId: z.string(),\n});\n\nconst widgetVoteResponseSchema = z.object({\n messagePublicId: z.string().nullable(),\n success: z.boolean(),\n});\n\nexport type WidgetVoteResponseSchema = z.infer<typeof widgetVoteResponseSchema>;\nexport type HandleContactMessageOutputSchema = z.infer<typeof handleContactMessageOutputSchema>;\nexport type HttpChatInputSchema = z.infer<typeof httpChatInputDto>;\nexport type WidgetSessionSchema = z.infer<typeof widgetSessionSchema>;\nexport type WidgetHistorySchema = z.infer<typeof widgetHistorySchema>;\nexport type WidgetPreludeSchema = z.infer<typeof widgetPreludeSchema>;\nexport type WidgetVoteSchema = z.infer<typeof widgetVoteSchema>;\nexport type ChatAttachmentType = z.infer<typeof chatAttachmentSchema>;\n","import { v4 as uuidv4 } from \"uuid\";\n\nexport function genUuid() {\n return uuidv4();\n}\n"],"names":["DayOfficeHoursSchema","z","officeHoursSchema","chatAttachmentSchema","MessageTypeEnum","genUuid","uuidv4"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const n=require("zod"),a=require("uuid"),o=n.z.object({from:n.z.string(),to:n.z.string()}),s=n.z.object({monday:o.optional(),tuesday:o.optional(),wednesday:o.optional(),thursday:o.optional(),friday:o.optional(),saturday:o.optional(),sunday:o.optional(),Everyday:o.optional(),WeekDays:o.optional()});n.z.object({initialQuestions:n.z.array(n.z.string()),aiEnabled:n.z.boolean(),officeHours:s,officeHoursTimezone:n.z.string().nullable(),organizationName:n.z.string()});const e=n.z.object({id:n.z.string(),name:n.z.string(),size:n.z.number(),type:n.z.string(),url:n.z.string()});var i=(t=>(t.MESSAGE="message",t.HANDOFF="handoff",t.HANDOFF_TO_ZENDESK="handoff_to_zendesk",t.AGENT_MESSAGE="agent_message",t.AGENT_JOINED="agent_joined",t.AGENT_COMMENT="agent_comment",t.AGENT_TOOK_SESSION_FROM_AI="agent_took_session_from_ai",t.AGENT_REOPENED_SESSION="agent_reopened_session",t.AI_DECIDED_TO_RESOLVE_THE_ISSUE="ai_decided_to_resolve_the_issue",t.EMAIL_DRAFT_MESSAGE="email_draft_message",t.FOLLOWUP="followup",t.AI_ASSUMED_THE_SESSION_RESOLVED="ai_assumed_the_session_resolved",t.CONTACT_RESOLVED_THE_SESSION="user_confirmed_the_session_resolved",t))(i||{});n.z.object({publicId:n.z.string(),type:n.z.nativeEnum(i),sender:n.z.object({kind:n.z.enum(["user","agent","ai","none","unknown"]),name:n.z.string().optional().nullable(),avatar:n.z.string().optional().nullable()}),content:n.z.object({text:n.z.string().optional().nullable()}),sentAt:n.z.string().optional().nullable(),actionCalls:n.z.array(n.z.object({actionName:n.z.string(),args:n.z.record(n.z.string(),n.z.unknown()),result:n.z.record(n.z.string(),n.z.unknown()).optional().nullable()})).optional().nullable(),attachments:n.z.array(e).optional().nullable()});n.z.object({id:n.z.string().uuid(),createdAt:n.z.date(),updatedAt:n.z.date(),isHandedOff:n.z.boolean(),isOpened:n.z.boolean(),assignee:n.z.object({kind:n.z.enum(["human","ai","none","unknown"]),name:n.z.string().nullable()}),channel:n.z.string()});n.z.object({uuid:n.z.string().uuid().optional(),content:n.z.string(),session_id:n.z.string(),headers:n.z.record(n.z.string(),n.z.string()).optional().nullable(),bot_token:n.z.string(),query_params:n.z.record(n.z.string(),n.z.string()).optional().nullable(),user:n.z.object({email:n.z.string().optional(),name:n.z.string().optional(),phone:n.z.string().optional(),avatar:n.z.string().optional(),customData:n.z.record(n.z.string(),n.z.string()).optional()}).optional().nullable(),language:n.z.string().optional().nullable(),attachments:n.z.array(e).optional().nullable()});n.z.discriminatedUnion("success",[n.z.object({success:n.z.literal(!0),code:n.z.union([n.z.string(),n.z.literal("session_assigned_to_human_agent")]).optional(),options:n.z.object({type:n.z.literal("options"),value:n.z.array(n.z.string())}).optional(),autopilotResponse:n.z.object({type:n.z.literal("text"),value:n.z.object({error:n.z.boolean(),content:n.z.string()}),id:n.z.string().optional()}).optional(),uiResponse:n.z.object({type:n.z.literal("ui"),value:n.z.object({type:n.z.literal("ui_component"),request_response:n.z.unknown(),name:n.z.string(),content:n.z.string().optional()})}).optional(),sessionIsHandedOff:n.z.boolean().optional()}),n.z.object({success:n.z.literal(!1),error:n.z.object({code:n.z.string().optional(),message:n.z.string().optional()})})]);n.z.object({action:n.z.enum(["upvote","downvote"]),sessionId:n.z.string(),messagePublicId:n.z.string()});n.z.object({messagePublicId:n.z.string().nullable(),success:n.z.boolean()});function l(){return a.v4()}exports.MessageTypeEnum=i;exports.chatAttachmentSchema=e;exports.genUuid=l;
2
+ //# sourceMappingURL=genUuid-DdeSE04H.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genUuid-DdeSE04H.cjs","sources":["../core/types/schemas-v2.ts","../core/utils/genUuid.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst DayOfficeHoursSchema = z.object({\n from: z.string(),\n to: z.string(),\n})\n\nconst officeHoursSchema = z.object({\n monday: DayOfficeHoursSchema.optional(),\n tuesday: DayOfficeHoursSchema.optional(),\n wednesday: DayOfficeHoursSchema.optional(),\n thursday: DayOfficeHoursSchema.optional(),\n friday: DayOfficeHoursSchema.optional(),\n saturday: DayOfficeHoursSchema.optional(),\n sunday: DayOfficeHoursSchema.optional(),\n Everyday: DayOfficeHoursSchema.optional(),\n WeekDays: DayOfficeHoursSchema.optional(),\n});\n\nconst widgetPreludeSchema = z.object({\n initialQuestions: z.array(z.string()),\n aiEnabled: z.boolean(),\n officeHours: officeHoursSchema,\n officeHoursTimezone: z.string().nullable(),\n organizationName: z.string(),\n})\n\nexport const chatAttachmentSchema = z.object({\n id: z.string(),\n name: z.string(),\n size: z.number(),\n type: z.string(),\n url: z.string(),\n});\n\nexport enum MessageTypeEnum {\n MESSAGE = 'message',\n HANDOFF = 'handoff',\n HANDOFF_TO_ZENDESK = 'handoff_to_zendesk',\n AGENT_MESSAGE = 'agent_message',\n AGENT_JOINED = 'agent_joined',\n AGENT_COMMENT = 'agent_comment',\n AGENT_TOOK_SESSION_FROM_AI = 'agent_took_session_from_ai',\n AGENT_REOPENED_SESSION = 'agent_reopened_session',\n AI_DECIDED_TO_RESOLVE_THE_ISSUE = 'ai_decided_to_resolve_the_issue',\n EMAIL_DRAFT_MESSAGE = 'email_draft_message',\n FOLLOWUP = 'followup',\n AI_ASSUMED_THE_SESSION_RESOLVED = 'ai_assumed_the_session_resolved',\n CONTACT_RESOLVED_THE_SESSION = 'user_confirmed_the_session_resolved',\n}\n\nconst widgetHistorySchema = z.object({\n publicId: z.string(),\n type: z.nativeEnum(MessageTypeEnum),\n sender: z.object({\n kind: z.enum(['user', 'agent', 'ai', 'none', 'unknown']),\n name: z.string().optional().nullable(),\n avatar: z.string().optional().nullable(),\n }),\n content: z.object({\n text: z.string().optional().nullable(),\n }),\n sentAt: z.string().optional().nullable(),\n actionCalls: z\n .array(\n z.object({\n actionName: z.string(),\n args: z.record(z.string(), z.unknown()),\n result: z.record(z.string(), z.unknown()).optional().nullable(),\n }),\n )\n .optional()\n .nullable(),\n attachments: z.array(chatAttachmentSchema).optional().nullable(),\n})\n\nconst widgetSessionSchema = z.object({\n id: z.string().uuid(),\n createdAt: z.date(),\n updatedAt: z.date(),\n isHandedOff: z.boolean(),\n isOpened: z.boolean(),\n assignee: z.object({\n kind: z.enum(['human', 'ai', 'none', 'unknown']),\n name: z.string().nullable(),\n }),\n channel: z.string(),\n})\n\nconst httpChatInputDto = z.object({\n uuid: z.string().uuid().optional(),\n content: z.string(),\n session_id: z.string(),\n headers: z.record(z.string(), z.string()).optional().nullable(),\n bot_token: z.string(),\n query_params: z.record(z.string(), z.string()).optional().nullable(),\n user: z\n .object({\n email: z.string().optional(),\n name: z.string().optional(),\n phone: z.string().optional(),\n avatar: z.string().optional(),\n customData: z.record(z.string(), z.string()).optional(),\n })\n .optional()\n .nullable(),\n language: z.string().optional().nullable(),\n attachments: z.array(chatAttachmentSchema).optional().nullable(),\n})\n\nconst handleContactMessageOutputSchema = z.discriminatedUnion(\n 'success',\n [\n z.object({\n success: z.literal(true),\n code: z.union([z.string(), z.literal(\"session_assigned_to_human_agent\")]).optional(),\n options: z\n .object({\n type: z.literal('options'),\n value: z.array(z.string()),\n })\n .optional(),\n autopilotResponse: z\n .object({\n type: z.literal('text'),\n value: z.object({\n error: z.boolean(),\n content: z.string(),\n }),\n id: z.string().optional(),\n })\n .optional(),\n uiResponse: z\n .object({\n type: z.literal('ui'),\n value: z.object({\n type: z.literal('ui_component'),\n request_response: z.unknown(),\n name: z.string(),\n content: z.string().optional(),\n }),\n })\n .optional(),\n sessionIsHandedOff: z.boolean().optional(),\n }),\n z.object({\n success: z.literal(false),\n error: z.object({\n code: z.string().optional(),\n message: z.string().optional(),\n }),\n }),\n ],\n);\n\nconst widgetVoteSchema = z.object({\n action: z.enum(['upvote', 'downvote']),\n sessionId: z.string(),\n messagePublicId: z.string(),\n});\n\nconst widgetVoteResponseSchema = z.object({\n messagePublicId: z.string().nullable(),\n success: z.boolean(),\n});\n\nexport type WidgetVoteResponseSchema = z.infer<typeof widgetVoteResponseSchema>;\nexport type HandleContactMessageOutputSchema = z.infer<typeof handleContactMessageOutputSchema>;\nexport type HttpChatInputSchema = z.infer<typeof httpChatInputDto>;\nexport type WidgetSessionSchema = z.infer<typeof widgetSessionSchema>;\nexport type WidgetHistorySchema = z.infer<typeof widgetHistorySchema>;\nexport type WidgetPreludeSchema = z.infer<typeof widgetPreludeSchema>;\nexport type WidgetVoteSchema = z.infer<typeof widgetVoteSchema>;\nexport type ChatAttachmentType = z.infer<typeof chatAttachmentSchema>;\n","import { v4 as uuidv4 } from \"uuid\";\n\nexport function genUuid() {\n return uuidv4();\n}\n"],"names":["DayOfficeHoursSchema","z","officeHoursSchema","chatAttachmentSchema","MessageTypeEnum","genUuid","uuidv4"],"mappings":"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"}