@opencx/widget 2.2.0 → 2.3.1

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 (105) hide show
  1. package/README.md +30 -105
  2. package/dist/basic.cjs +3 -3
  3. package/dist/basic.cjs.map +1 -1
  4. package/dist/basic.js +10 -9
  5. package/dist/basic.js.map +1 -1
  6. package/dist/core/client/api.d.ts +21 -7
  7. package/dist/core/client/chat.d.ts +62 -0
  8. package/dist/core/client/client.d.ts +6 -36
  9. package/dist/core/client/config.d.ts +35 -0
  10. package/dist/core/client/contact.d.ts +32 -0
  11. package/dist/core/client/contact.test.d.ts +1 -0
  12. package/dist/core/client/index.d.ts +3 -1
  13. package/dist/core/index.d.ts +6 -1
  14. package/dist/core/platform/index.d.ts +1 -10
  15. package/dist/core/types/index.d.ts +24 -2
  16. package/dist/core/types/pub-sub.d.ts +19 -82
  17. package/dist/core/types/schemas-v2.d.ts +687 -0
  18. package/dist/core/utils/create-fetch.d.ts +24 -0
  19. package/dist/index-CHWVttUy.cjs +18 -0
  20. package/dist/index-CHWVttUy.cjs.map +1 -0
  21. package/dist/{index-XkXeMM77.js → index-pl-6K_wU.js} +1178 -1301
  22. package/dist/index-pl-6K_wU.js.map +1 -0
  23. package/dist/index.cjs +1 -1
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.js +376 -370
  26. package/dist/index.js.map +1 -1
  27. package/dist/react-bindings/context/ChatContext.d.ts +130 -0
  28. package/dist/react-bindings/hooks/useContact.d.ts +9 -0
  29. package/dist/react-bindings/hooks/usePubsub.d.ts +3 -0
  30. package/dist/react-bindings/hooks/useSendMessage.d.ts +6 -0
  31. package/dist/react-bindings/index.d.ts +3 -0
  32. package/dist/react-web/hooks/use-sound.test.d.ts +1 -0
  33. package/dist/react-web/hooks/use-sync-state.test.d.ts +1 -0
  34. package/dist/{react-lib → react-web}/hooks/useAbstractChat.d.ts +42 -45
  35. package/dist/{react-lib → react-web}/hooks/useAxiosInstance.d.ts +37 -0
  36. package/dist/{react-lib → react-web}/hooks/useUploadFiles.d.ts +1 -1
  37. package/dist/{react-lib → react-web}/providers/ChatProvider.d.ts +54 -46
  38. package/dist/{react-lib → react-web}/types/index.d.ts +1 -0
  39. package/dist/react.cjs +1 -1
  40. package/dist/react.cjs.map +1 -1
  41. package/dist/react.d.ts +1 -1
  42. package/dist/react.js +2 -2
  43. package/dist/react.js.map +1 -1
  44. package/dist/schemas-BBAV6Sd_.js +122 -0
  45. package/dist/schemas-BBAV6Sd_.js.map +1 -0
  46. package/dist/schemas-wky4fpbc.cjs +2 -0
  47. package/dist/schemas-wky4fpbc.cjs.map +1 -0
  48. package/dist/src/@components/ChatEvent.component.d.ts +1 -1
  49. package/dist/src/@components/Fallback.component.d.ts +1 -1
  50. package/dist/src/@components/Text.component.d.ts +1 -1
  51. package/dist/src/components/dialog.d.ts +2 -2
  52. package/dist/src/components/userMessage.d.ts +1 -1
  53. package/dist/src/designs/basic/index.d.ts +1 -1
  54. package/dist/style.css +1 -1
  55. package/dist-embed/script.js +106 -106
  56. package/dist-embed/script.js.map +1 -1
  57. package/package.json +1 -3
  58. package/dist/core/managers/chathistory-manager.d.ts +0 -61
  59. package/dist/core/managers/session-manager.d.ts +0 -35
  60. package/dist/core/transport/http.transport.d.ts +0 -17
  61. package/dist/core/transport/transport.d.ts +0 -25
  62. package/dist/core/types/transport.d.ts +0 -31
  63. package/dist/history-to-widget-messages-CP0hKjhv.js +0 -195
  64. package/dist/history-to-widget-messages-CP0hKjhv.js.map +0 -1
  65. package/dist/history-to-widget-messages-CdbZolRN.cjs +0 -2
  66. package/dist/history-to-widget-messages-CdbZolRN.cjs.map +0 -1
  67. package/dist/index-XkXeMM77.js.map +0 -1
  68. package/dist/index-xb7Pg6AD.cjs +0 -18
  69. package/dist/index-xb7Pg6AD.cjs.map +0 -1
  70. package/dist/react-lib/hooks/handle-socket-messages.d.ts +0 -27
  71. package/dist/react-lib/hooks/socket.d.ts +0 -11
  72. package/dist/react-lib/hooks/socketState.d.ts +0 -2
  73. package/dist/react-lib/hooks/useBaseClient.d.ts +0 -2
  74. package/dist/react-lib/providers/ClientProvider.d.ts +0 -7
  75. /package/dist/{react-lib/hooks/use-sound.test.d.ts → core/client/chat.test.d.ts} +0 -0
  76. /package/dist/{react-lib/hooks/use-sync-state.test.d.ts → core/client/config.test.d.ts} +0 -0
  77. /package/dist/{react-lib → react-web}/Root.d.ts +0 -0
  78. /package/dist/{react-lib → react-web}/hooks/index.d.ts +0 -0
  79. /package/dist/{react-lib → react-web}/hooks/use-sound.d.ts +0 -0
  80. /package/dist/{react-lib → react-web}/hooks/useScrollTo.d.ts +0 -0
  81. /package/dist/{react-lib → react-web}/hooks/useSyncState.d.ts +0 -0
  82. /package/dist/{react-lib → react-web}/hooks/useTimeoutState.d.ts +0 -0
  83. /package/dist/{react-lib → react-web}/hooks/useVote.d.ts +0 -0
  84. /package/dist/{react-lib → react-web}/hooks/useWidgetContentHeight.d.ts +0 -0
  85. /package/dist/{react-lib → react-web}/index.d.ts +0 -0
  86. /package/dist/{react-lib → react-web}/locales/ar.locale.d.ts +0 -0
  87. /package/dist/{react-lib → react-web}/locales/de.locale.d.ts +0 -0
  88. /package/dist/{react-lib → react-web}/locales/en.locale.d.ts +0 -0
  89. /package/dist/{react-lib → react-web}/locales/fr.locale.d.ts +0 -0
  90. /package/dist/{react-lib → react-web}/locales/helper.d.ts +0 -0
  91. /package/dist/{react-lib → react-web}/locales/index.d.ts +0 -0
  92. /package/dist/{react-lib → react-web}/locales/nl.locale.d.ts +0 -0
  93. /package/dist/{react-lib → react-web}/locales/pt.locale.d.ts +0 -0
  94. /package/dist/{react-lib → react-web}/providers/ConfigDataProvider.d.ts +0 -0
  95. /package/dist/{react-lib → react-web}/providers/ContactProvider.d.ts +0 -0
  96. /package/dist/{react-lib → react-web}/providers/LocalesProvider.d.ts +0 -0
  97. /package/dist/{react-lib → react-web}/providers/componentRegistry.d.ts +0 -0
  98. /package/dist/{react-lib → react-web}/providers/use-widget-sfx.d.ts +0 -0
  99. /package/dist/{react-lib → react-web}/providers/usePreludeData.d.ts +0 -0
  100. /package/dist/{react-lib → react-web}/types/components.d.ts +0 -0
  101. /package/dist/{react-lib → react-web}/types/options.d.ts +0 -0
  102. /package/dist/{react-lib → react-web}/utils/create-safe-context.d.ts +0 -0
  103. /package/dist/{react-lib → react-web}/utils/debug.d.ts +0 -0
  104. /package/dist/{react-lib → react-web}/utils/getters.d.ts +0 -0
  105. /package/dist/{react-lib → react-web}/utils/index.d.ts +0 -0
@@ -3,7 +3,7 @@ declare const useChat: () => {
3
3
  version: string;
4
4
  state: {
5
5
  lastUpdated: number | null;
6
- messages: import('../../core/types').MessageType[];
6
+ messages: import('../../core').MessageType[];
7
7
  keyboard: {
8
8
  options: string[];
9
9
  } | null;
@@ -14,30 +14,40 @@ declare const useChat: () => {
14
14
  isAssignedToHuman: boolean;
15
15
  isPendingHuman: boolean;
16
16
  id: string;
17
- ai_closure_type: import('../../core/types').AIClosureType | null;
17
+ ai_closure_type: import('../../core').AIClosureType | null;
18
18
  assignee_id: number | null;
19
- channel: import('../../core/types').SessionChannel;
20
- status: import('../../core/types').SessionStatus;
19
+ channel: import('../../core').SessionChannel;
20
+ status: import('../../core').SessionStatus;
21
21
  summary: string | null;
22
22
  language: string | null;
23
23
  last_message: string | null;
24
24
  last_message_at: Date | null;
25
- sentiment: import('../../core/types').SentimentEnum | null;
25
+ sentiment: import('../../core').SentimentEnum | null;
26
26
  assignee?: {
27
27
  email: string;
28
28
  name: string;
29
29
  avatar_url?: string | undefined;
30
30
  } | null | undefined;
31
31
  } | null;
32
- unstable__canSend: {
33
- canSend: boolean;
34
- reason: string;
32
+ noMessages: boolean;
33
+ initState: {
34
+ loading: boolean;
35
+ error?: undefined;
36
+ value?: undefined;
37
+ } | {
38
+ loading: false;
39
+ error: Error;
40
+ value?: undefined;
41
+ } | {
42
+ loading: true;
43
+ error?: Error | undefined;
44
+ value?: void | undefined;
35
45
  } | {
36
- canSend: boolean;
37
- reason?: undefined;
46
+ loading: false;
47
+ error?: undefined;
48
+ value: void;
38
49
  };
39
- noMessages: boolean;
40
- fetchHistoryState: {
50
+ clearSessionState: {
41
51
  loading: boolean;
42
52
  error?: undefined;
43
53
  value?: undefined;
@@ -48,13 +58,13 @@ declare const useChat: () => {
48
58
  } | {
49
59
  loading: true;
50
60
  error?: Error | undefined;
51
- value?: import('../../core/types').MessageType[] | undefined;
61
+ value?: void | undefined;
52
62
  } | {
53
63
  loading: false;
54
64
  error?: undefined;
55
- value: import('../../core/types').MessageType[];
65
+ value: void;
56
66
  };
57
- refreshSessionState: {
67
+ recreateSessionState: {
58
68
  loading: boolean;
59
69
  error?: undefined;
60
70
  value?: undefined;
@@ -67,15 +77,15 @@ declare const useChat: () => {
67
77
  error?: Error | undefined;
68
78
  value?: {
69
79
  id: string;
70
- ai_closure_type: import('../../core/types').AIClosureType | null;
80
+ ai_closure_type: import('../../core').AIClosureType | null;
71
81
  assignee_id: number | null;
72
- channel: import('../../core/types').SessionChannel;
73
- status: import('../../core/types').SessionStatus;
82
+ channel: import('../../core').SessionChannel;
83
+ status: import('../../core').SessionStatus;
74
84
  summary: string | null;
75
85
  language: string | null;
76
86
  last_message: string | null;
77
87
  last_message_at: Date | null;
78
- sentiment: import('../../core/types').SentimentEnum | null;
88
+ sentiment: import('../../core').SentimentEnum | null;
79
89
  assignee?: {
80
90
  email: string;
81
91
  name: string;
@@ -87,15 +97,15 @@ declare const useChat: () => {
87
97
  error?: undefined;
88
98
  value: {
89
99
  id: string;
90
- ai_closure_type: import('../../core/types').AIClosureType | null;
100
+ ai_closure_type: import('../../core').AIClosureType | null;
91
101
  assignee_id: number | null;
92
- channel: import('../../core/types').SessionChannel;
93
- status: import('../../core/types').SessionStatus;
102
+ channel: import('../../core').SessionChannel;
103
+ status: import('../../core').SessionStatus;
94
104
  summary: string | null;
95
105
  language: string | null;
96
106
  last_message: string | null;
97
107
  last_message_at: Date | null;
98
- sentiment: import('../../core/types').SentimentEnum | null;
108
+ sentiment: import('../../core').SentimentEnum | null;
99
109
  assignee?: {
100
110
  email: string;
101
111
  name: string;
@@ -103,31 +113,29 @@ declare const useChat: () => {
103
113
  } | null | undefined;
104
114
  };
105
115
  };
106
- recreateSession: () => void;
107
- clearSession: () => void;
108
- sendMessage: ({ content, user, ...data }: import('../hooks/useAbstractChat').SendMessageInput) => Promise<{
109
- attachments: Array<import('../../core/types').ChatAttachmentType>;
116
+ hookState: import('../hooks/useAbstractChat').HookState;
117
+ recreateSession: () => Promise<{
110
118
  id: string;
111
- language: string;
112
- bot_token: string;
113
- content: string;
114
- session_id: string;
115
- headers: Record<string, string>;
116
- pathParams: Record<string, string>;
117
- query_params: Record<string, string>;
118
- queryParams: Record<string, string>;
119
- user: {
120
- external_id?: string;
121
- name?: string;
122
- email?: string;
123
- phone?: string;
124
- customData?: Record<string, string>;
125
- avatarUrl?: string;
126
- };
127
- } | null>;
128
- info: React.ReactNode;
119
+ ai_closure_type: import('../../core').AIClosureType | null;
120
+ assignee_id: number | null;
121
+ channel: import('../../core').SessionChannel;
122
+ status: import('../../core').SessionStatus;
123
+ summary: string | null;
124
+ language: string | null;
125
+ last_message: string | null;
126
+ last_message_at: Date | null;
127
+ sentiment: import('../../core').SentimentEnum | null;
128
+ assignee?: {
129
+ email: string;
130
+ name: string;
131
+ avatar_url?: string | undefined;
132
+ } | null | undefined;
133
+ }>;
134
+ clearSession: () => Promise<void>;
135
+ sendMessage: ({ content, user, attachments, ...data }: import('../hooks/useAbstractChat').SendMessageInput) => Promise<{
136
+ id: string;
137
+ }>;
129
138
  handleKeyboard: (option: string) => void;
130
- hookState: import('../hooks/useAbstractChat').HookState;
131
139
  };
132
140
  declare function ChatProvider({ children, }: {
133
141
  children: React.ReactNode;
@@ -3,4 +3,5 @@ export * from './options';
3
3
  export * from './components';
4
4
  export type DefaultTextComponentProps = ComponentProps<{
5
5
  message: string;
6
+ variant?: "default" | "error";
6
7
  }>;
package/dist/react.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-xb7Pg6AD.cjs"),a=["monday","tuesday","wednesday","thursday","friday","saturday","sunday","WeekDays","Everyday"];function u(t,o){const{http:s}=e.useConfigData();return e._default(async()=>s.apis.upvote(t).then(o),[s.options,t,o])}function n(t,o){const{http:s}=e.useConfigData();return e._default(async()=>s.apis.downvote(t).then(o),[s.options,t])}exports.WidgetRoot=e.WidgetRoot;exports.useChat=e.useChat;exports.useConfigData=e.useConfigData;exports.useContact=e.useContact;exports.useLocale=e.useLocale;exports.usePreludeData=e.usePreludeData;exports.useUploadFiles=e.useUploadFiles;exports.useWidgetSoundEffects=e.useWidgetSoundEffects;exports.useDownvote=n;exports.useUpvote=u;exports.workingDays=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-CHWVttUy.cjs"),a=["monday","tuesday","wednesday","thursday","friday","saturday","sunday","WeekDays","Everyday"];function u(t,o){const{http:s}=e.useConfigData();return e._default(async()=>s.apis.upvote(t).then(o),[s.options,t,o])}function n(t,o){const{http:s}=e.useConfigData();return e._default(async()=>s.apis.downvote(t).then(o),[s.options,t])}exports.WidgetRoot=e.WidgetRoot;exports.useChat=e.useChat;exports.useConfigData=e.useConfigData;exports.useContact=e.useContact;exports.useLocale=e.useLocale;exports.usePreludeData=e.usePreludeData;exports.useUploadFiles=e.useUploadFiles;exports.useWidgetSoundEffects=e.useWidgetSoundEffects;exports.useDownvote=n;exports.useUpvote=u;exports.workingDays=a;
2
2
  //# sourceMappingURL=react.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.cjs","sources":["../react-lib/utils/getters.ts","../react-lib/hooks/useVote.ts"],"sourcesContent":["import { ChatHistoryMessageType } from \"@core/types\";\n\ninterface DayOfficeHours {\n from: string;\n to: string;\n}\n\nexport const workingDays = [\n \"monday\",\n \"tuesday\",\n \"wednesday\",\n \"thursday\",\n \"friday\",\n \"saturday\",\n \"sunday\",\n \"WeekDays\",\n \"Everyday\",\n] as const;\n\nexport type PreludeData = {\n initial_questions: string[];\n ai_enabled: boolean;\n office_hours: WorkingHours;\n office_hours_timezone: string;\n organization_name: string;\n};\n\ntype Day = (typeof workingDays)[number];\n\nexport type WorkingHours = {\n [K in Day]: DayOfficeHours;\n};\n\nexport type InitialData = {\n logo: string;\n faq: [];\n initial_questions: string[];\n history: ChatHistoryMessageType[];\n};\n","import { useConfigData } from \"@react/providers/ConfigDataProvider\";\nimport useAsyncFn from \"react-use/lib/useAsyncFn\";\n\nexport function useUpvote(id: string, onSuccess?: () => void) {\n const { http } = useConfigData();\n return useAsyncFn(\n async () => http.apis.upvote(id).then(onSuccess),\n [http.options, id, onSuccess],\n );\n}\n\nexport function useDownvote(id: string, onSuccess?: () => void) {\n const { http } = useConfigData();\n return useAsyncFn(\n async () => http.apis.downvote(id).then(onSuccess),\n [http.options, id],\n );\n}\n"],"names":["workingDays","useUpvote","id","onSuccess","http","useConfigData","useAsyncFn","useDownvote"],"mappings":"wHAOaA,EAAc,CACzB,SACA,UACA,YACA,WACA,SACA,WACA,SACA,WACA,UACF,ECdgB,SAAAC,EAAUC,EAAYC,EAAwB,CACtD,KAAA,CAAE,KAAAC,GAASC,EAAAA,gBACV,OAAAC,EAAA,SACL,SAAYF,EAAK,KAAK,OAAOF,CAAE,EAAE,KAAKC,CAAS,EAC/C,CAACC,EAAK,QAASF,EAAIC,CAAS,CAAA,CAEhC,CAEgB,SAAAI,EAAYL,EAAYC,EAAwB,CACxD,KAAA,CAAE,KAAAC,GAASC,EAAAA,gBACV,OAAAC,EAAA,SACL,SAAYF,EAAK,KAAK,SAASF,CAAE,EAAE,KAAKC,CAAS,EACjD,CAACC,EAAK,QAASF,CAAE,CAAA,CAErB"}
1
+ {"version":3,"file":"react.cjs","sources":["../react-web/utils/getters.ts","../react-web/hooks/useVote.ts"],"sourcesContent":["import { ChatHistoryMessageType } from \"@core/types\";\r\n\r\ninterface DayOfficeHours {\r\n from: string;\r\n to: string;\r\n}\r\n\r\nexport const workingDays = [\r\n \"monday\",\r\n \"tuesday\",\r\n \"wednesday\",\r\n \"thursday\",\r\n \"friday\",\r\n \"saturday\",\r\n \"sunday\",\r\n \"WeekDays\",\r\n \"Everyday\",\r\n] as const;\r\n\r\nexport type PreludeData = {\r\n initial_questions: string[];\r\n ai_enabled: boolean;\r\n office_hours: WorkingHours;\r\n office_hours_timezone: string;\r\n organization_name: string;\r\n};\r\n\r\ntype Day = (typeof workingDays)[number];\r\n\r\nexport type WorkingHours = {\r\n [K in Day]: DayOfficeHours;\r\n};\r\n\r\nexport type InitialData = {\r\n logo: string;\r\n faq: [];\r\n initial_questions: string[];\r\n history: ChatHistoryMessageType[];\r\n};\r\n","import { useConfigData } from \"@react/providers/ConfigDataProvider\";\r\nimport useAsyncFn from \"react-use/lib/useAsyncFn\";\r\n\r\nexport function useUpvote(id: string, onSuccess?: () => void) {\r\n const { http } = useConfigData();\r\n return useAsyncFn(\r\n async () => http.apis.upvote(id).then(onSuccess),\r\n [http.options, id, onSuccess],\r\n );\r\n}\r\n\r\nexport function useDownvote(id: string, onSuccess?: () => void) {\r\n const { http } = useConfigData();\r\n return useAsyncFn(\r\n async () => http.apis.downvote(id).then(onSuccess),\r\n [http.options, id],\r\n );\r\n}\r\n"],"names":["workingDays","useUpvote","id","onSuccess","http","useConfigData","useAsyncFn","useDownvote"],"mappings":"wHAOaA,EAAc,CACzB,SACA,UACA,YACA,WACA,SACA,WACA,SACA,WACA,UACF,ECdgB,SAAAC,EAAUC,EAAYC,EAAwB,CACtD,KAAA,CAAE,KAAAC,GAASC,EAAAA,gBACV,OAAAC,EAAA,SACL,SAAYF,EAAK,KAAK,OAAOF,CAAE,EAAE,KAAKC,CAAS,EAC/C,CAACC,EAAK,QAASF,EAAIC,CAAS,CAAA,CAEhC,CAEgB,SAAAI,EAAYL,EAAYC,EAAwB,CACxD,KAAA,CAAE,KAAAC,GAASC,EAAAA,gBACV,OAAAC,EAAA,SACL,SAAYF,EAAK,KAAK,SAASF,CAAE,EAAE,KAAKC,CAAS,EACjD,CAACC,EAAK,QAASF,CAAE,CAAA,CAErB"}
package/dist/react.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from './react-lib/index'
1
+ export * from './react-web/index'
2
2
  export {}
package/dist/react.js CHANGED
@@ -1,5 +1,5 @@
1
- import { u as e, _ as o } from "./index-XkXeMM77.js";
2
- import { W as i, e as f, a as c, d as h, b as l, h as v, l as D } from "./index-XkXeMM77.js";
1
+ import { u as e, _ as o } from "./index-pl-6K_wU.js";
2
+ import { W as i, e as f, a as c, d as h, b as l, h as v, l as D } from "./index-pl-6K_wU.js";
3
3
  const u = [
4
4
  "monday",
5
5
  "tuesday",
package/dist/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sources":["../react-lib/utils/getters.ts","../react-lib/hooks/useVote.ts"],"sourcesContent":["import { ChatHistoryMessageType } from \"@core/types\";\n\ninterface DayOfficeHours {\n from: string;\n to: string;\n}\n\nexport const workingDays = [\n \"monday\",\n \"tuesday\",\n \"wednesday\",\n \"thursday\",\n \"friday\",\n \"saturday\",\n \"sunday\",\n \"WeekDays\",\n \"Everyday\",\n] as const;\n\nexport type PreludeData = {\n initial_questions: string[];\n ai_enabled: boolean;\n office_hours: WorkingHours;\n office_hours_timezone: string;\n organization_name: string;\n};\n\ntype Day = (typeof workingDays)[number];\n\nexport type WorkingHours = {\n [K in Day]: DayOfficeHours;\n};\n\nexport type InitialData = {\n logo: string;\n faq: [];\n initial_questions: string[];\n history: ChatHistoryMessageType[];\n};\n","import { useConfigData } from \"@react/providers/ConfigDataProvider\";\nimport useAsyncFn from \"react-use/lib/useAsyncFn\";\n\nexport function useUpvote(id: string, onSuccess?: () => void) {\n const { http } = useConfigData();\n return useAsyncFn(\n async () => http.apis.upvote(id).then(onSuccess),\n [http.options, id, onSuccess],\n );\n}\n\nexport function useDownvote(id: string, onSuccess?: () => void) {\n const { http } = useConfigData();\n return useAsyncFn(\n async () => http.apis.downvote(id).then(onSuccess),\n [http.options, id],\n );\n}\n"],"names":["workingDays","useUpvote","id","onSuccess","http","useConfigData","useAsyncFn","useDownvote"],"mappings":";;AAOO,MAAMA,IAAc;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;ACdgB,SAAAC,EAAUC,GAAYC,GAAwB;AACtD,QAAA,EAAE,MAAAC,MAASC;AACV,SAAAC;AAAAA,IACL,YAAYF,EAAK,KAAK,OAAOF,CAAE,EAAE,KAAKC,CAAS;AAAA,IAC/C,CAACC,EAAK,SAASF,GAAIC,CAAS;AAAA,EAAA;AAEhC;AAEgB,SAAAI,EAAYL,GAAYC,GAAwB;AACxD,QAAA,EAAE,MAAAC,MAASC;AACV,SAAAC;AAAAA,IACL,YAAYF,EAAK,KAAK,SAASF,CAAE,EAAE,KAAKC,CAAS;AAAA,IACjD,CAACC,EAAK,SAASF,CAAE;AAAA,EAAA;AAErB;"}
1
+ {"version":3,"file":"react.js","sources":["../react-web/utils/getters.ts","../react-web/hooks/useVote.ts"],"sourcesContent":["import { ChatHistoryMessageType } from \"@core/types\";\r\n\r\ninterface DayOfficeHours {\r\n from: string;\r\n to: string;\r\n}\r\n\r\nexport const workingDays = [\r\n \"monday\",\r\n \"tuesday\",\r\n \"wednesday\",\r\n \"thursday\",\r\n \"friday\",\r\n \"saturday\",\r\n \"sunday\",\r\n \"WeekDays\",\r\n \"Everyday\",\r\n] as const;\r\n\r\nexport type PreludeData = {\r\n initial_questions: string[];\r\n ai_enabled: boolean;\r\n office_hours: WorkingHours;\r\n office_hours_timezone: string;\r\n organization_name: string;\r\n};\r\n\r\ntype Day = (typeof workingDays)[number];\r\n\r\nexport type WorkingHours = {\r\n [K in Day]: DayOfficeHours;\r\n};\r\n\r\nexport type InitialData = {\r\n logo: string;\r\n faq: [];\r\n initial_questions: string[];\r\n history: ChatHistoryMessageType[];\r\n};\r\n","import { useConfigData } from \"@react/providers/ConfigDataProvider\";\r\nimport useAsyncFn from \"react-use/lib/useAsyncFn\";\r\n\r\nexport function useUpvote(id: string, onSuccess?: () => void) {\r\n const { http } = useConfigData();\r\n return useAsyncFn(\r\n async () => http.apis.upvote(id).then(onSuccess),\r\n [http.options, id, onSuccess],\r\n );\r\n}\r\n\r\nexport function useDownvote(id: string, onSuccess?: () => void) {\r\n const { http } = useConfigData();\r\n return useAsyncFn(\r\n async () => http.apis.downvote(id).then(onSuccess),\r\n [http.options, id],\r\n );\r\n}\r\n"],"names":["workingDays","useUpvote","id","onSuccess","http","useConfigData","useAsyncFn","useDownvote"],"mappings":";;AAOO,MAAMA,IAAc;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;ACdgB,SAAAC,EAAUC,GAAYC,GAAwB;AACtD,QAAA,EAAE,MAAAC,MAASC;AACV,SAAAC;AAAAA,IACL,YAAYF,EAAK,KAAK,OAAOF,CAAE,EAAE,KAAKC,CAAS;AAAA,IAC/C,CAACC,EAAK,SAASF,GAAIC,CAAS;AAAA,EAAA;AAEhC;AAEgB,SAAAI,EAAYL,GAAYC,GAAwB;AACxD,QAAA,EAAE,MAAAC,MAASC;AACV,SAAAC;AAAAA,IACL,YAAYF,EAAK,KAAK,SAASF,CAAE,EAAE,KAAKC,CAAS;AAAA,IACjD,CAACC,EAAK,SAASF,CAAE;AAAA,EAAA;AAErB;"}
@@ -0,0 +1,122 @@
1
+ import e from "zod";
2
+ const O = (t = 20) => {
3
+ const a = "abcdefghijklmnopqrstuvwxyz0123456789";
4
+ let n = "";
5
+ for (let s = 0; s < t; s++)
6
+ n += a[Math.floor(Math.random() * a.length)];
7
+ return n;
8
+ };
9
+ var r = /* @__PURE__ */ ((t) => (t[t.OPEN = 0] = "OPEN", t[t.CLOSED_RESOLVED = 1] = "CLOSED_RESOLVED", t[t.CLOSED_UNRESOLVED = 2] = "CLOSED_UNRESOLVED", t))(r || {}), i = /* @__PURE__ */ ((t) => (t.WEB = "web", t.WEB_VOICE = "web_voice", t.PHONE_VOICE = "phone_voice", t.EMAIL = "email", t.SMS = "sms", t.WHATSAPP = "whatsapp", t.API = "api", t))(i || {}), l = /* @__PURE__ */ ((t) => (t.resolved = "resolved", t.assumed_resolved = "assumed_resolved", t.handed_off = "handed_off", t))(l || {}), o = /* @__PURE__ */ ((t) => (t.happy = "happy", t.neutral = "neutral", t.angry = "angry", t))(o || {}), _ = /* @__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_TOOK_SESSION_FROM_AI = "agent_took_session_from_ai", t.AI_DECIDED_TO_RESOLVE_THE_ISSUE = "ai_decided_to_resolve_the_issue", t.EMAIL_DRAFT_MESSAGE = "email_draft_message", t.FOLLOWUP = "followup", t))(_ || {});
10
+ const g = e.object({
11
+ id: e.string(),
12
+ ai_closure_type: e.nativeEnum(l).nullable(),
13
+ assignee_id: e.number().nullable(),
14
+ channel: e.nativeEnum(i),
15
+ summary: e.string().nullable(),
16
+ status: e.nativeEnum(r),
17
+ language: e.string().nullable(),
18
+ last_message: e.string().nullable(),
19
+ last_message_at: e.date().nullable(),
20
+ assignee: e.object({
21
+ name: e.string(),
22
+ email: e.string(),
23
+ avatar_url: e.string().optional()
24
+ }).nullable().optional(),
25
+ sentiment: e.nativeEnum(o).nullable()
26
+ }), c = e.object({
27
+ id: e.string(),
28
+ name: e.string(),
29
+ size: e.number(),
30
+ type: e.string(),
31
+ url: e.string()
32
+ }), f = e.object({
33
+ publicId: e.string().uuid(),
34
+ message: e.string().nullable(),
35
+ type: e.string().nullable(),
36
+ agent_avatar: e.string().nullable(),
37
+ agent_id: e.number().nullable(),
38
+ agent_name: e.string().nullable(),
39
+ created_at: e.string(),
40
+ from_user: e.boolean().nullable(),
41
+ handoff_happened_during_office_hours: e.boolean().nullable(),
42
+ session_id: e.string(),
43
+ updated_at: e.string().nullable(),
44
+ attachments: e.array(c).optional()
45
+ }), d = e.object({
46
+ name: e.string(),
47
+ is_ai: e.boolean(),
48
+ profile_picture: e.string().optional().nullable(),
49
+ id: e.string().nullable()
50
+ }), u = e.object({
51
+ type: e.literal("message"),
52
+ value: e.string(),
53
+ attachments: e.array(c).optional(),
54
+ is_stream_chunk: e.boolean().optional(),
55
+ server_session_id: e.string(),
56
+ client_message_id: e.string().optional(),
57
+ server_message_id: e.string()
58
+ }), m = e.object({
59
+ type: e.literal("info"),
60
+ value: e.string()
61
+ }), b = e.object({
62
+ type: e.literal("ui"),
63
+ value: e.object({
64
+ type: e.string(),
65
+ request_response: e.any(),
66
+ name: e.string(),
67
+ content: e.string(),
68
+ message_id: e.string().optional()
69
+ }),
70
+ client_message_id: e.string().optional(),
71
+ server_session_id: e.string()
72
+ }), E = e.object({
73
+ type: e.literal("chat_event"),
74
+ value: e.object({
75
+ event: e.nativeEnum(_),
76
+ message: e.string()
77
+ })
78
+ }), p = e.object({
79
+ type: e.literal("options"),
80
+ value: e.object({
81
+ options: e.array(e.string())
82
+ }),
83
+ server_session_id: e.string()
84
+ }), v = e.object({
85
+ type: e.literal("session_update"),
86
+ value: e.object({
87
+ session: g
88
+ }),
89
+ server_session_id: e.string()
90
+ }), S = e.discriminatedUnion("type", [
91
+ u,
92
+ m,
93
+ b,
94
+ E,
95
+ p,
96
+ v
97
+ ]).and(
98
+ e.object({
99
+ timestamp: e.string(),
100
+ agent: d
101
+ })
102
+ ), j = e.object({
103
+ id: e.string(),
104
+ name: e.string().nullable(),
105
+ created_at: e.string(),
106
+ avatar_url: e.string().nullable(),
107
+ email: e.string().nullable()
108
+ });
109
+ export {
110
+ l as A,
111
+ _ as M,
112
+ r as S,
113
+ i as a,
114
+ o as b,
115
+ g as c,
116
+ c as d,
117
+ f as e,
118
+ j as f,
119
+ O as g,
120
+ S as s
121
+ };
122
+ //# sourceMappingURL=schemas-BBAV6Sd_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas-BBAV6Sd_.js","sources":["../core/utils/genId.ts","../core/types/schemas.ts"],"sourcesContent":["const genId = (len = 20) => {\r\n const chars = \"abcdefghijklmnopqrstuvwxyz0123456789\";\r\n let id = \"\";\r\n for (let i = 0; i < len; i++) {\r\n id += chars[Math.floor(Math.random() * chars.length)];\r\n }\r\n return id;\r\n};\r\n\r\nexport { genId };\r\n","import z from \"zod\";\r\n\r\nexport enum SessionStatus {\r\n OPEN = 0,\r\n CLOSED_RESOLVED = 1,\r\n CLOSED_UNRESOLVED = 2,\r\n}\r\n\r\nexport enum SessionChannel {\r\n WEB = \"web\",\r\n WEB_VOICE = \"web_voice\",\r\n PHONE_VOICE = \"phone_voice\",\r\n EMAIL = \"email\",\r\n SMS = \"sms\",\r\n WHATSAPP = \"whatsapp\",\r\n API = \"api\",\r\n}\r\n\r\nexport enum AIClosureType {\r\n resolved = \"resolved\",\r\n assumed_resolved = \"assumed_resolved\",\r\n handed_off = \"handed_off\",\r\n}\r\n\r\nexport enum SentimentEnum {\r\n happy = \"happy\",\r\n neutral = \"neutral\",\r\n angry = \"angry\",\r\n}\r\n\r\nexport enum MessageTypeEnum {\r\n MESSAGE = \"message\",\r\n HANDOFF = \"handoff\",\r\n HANDOFF_TO_ZENDESK = \"handoff_to_zendesk\",\r\n AGENT_MESSAGE = \"agent_message\",\r\n AGENT_JOINED = \"agent_joined\",\r\n AGENT_TOOK_SESSION_FROM_AI = \"agent_took_session_from_ai\",\r\n AI_DECIDED_TO_RESOLVE_THE_ISSUE = \"ai_decided_to_resolve_the_issue\",\r\n EMAIL_DRAFT_MESSAGE = \"email_draft_message\",\r\n FOLLOWUP = \"followup\",\r\n}\r\n\r\nexport const chatSessionSchema = z.object({\r\n id: z.string(),\r\n ai_closure_type: z.nativeEnum(AIClosureType).nullable(),\r\n assignee_id: z.number().nullable(),\r\n channel: z.nativeEnum(SessionChannel),\r\n summary: z.string().nullable(),\r\n status: z.nativeEnum(SessionStatus),\r\n language: z.string().nullable(),\r\n last_message: z.string().nullable(),\r\n last_message_at: z.date().nullable(),\r\n assignee: z\r\n .object({\r\n name: z.string(),\r\n email: z.string(),\r\n avatar_url: z.string().optional(),\r\n })\r\n .nullable()\r\n .optional(),\r\n sentiment: z.nativeEnum(SentimentEnum).nullable(),\r\n});\r\n\r\nexport type ChatAttachmentType = {\r\n id: string;\r\n name: string;\r\n size: number;\r\n type: string;\r\n url: string;\r\n};\r\n\r\nexport const chatAttachmentSchema = z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n size: z.number(),\r\n type: z.string(),\r\n url: z.string(),\r\n}) as z.ZodType<ChatAttachmentType>;\r\n\r\nexport const chatHistoryMessageSchema = z.object({\r\n publicId: z.string().uuid(),\r\n message: z.string().nullable(),\r\n type: z.string().nullable(),\r\n agent_avatar: z.string().nullable(),\r\n agent_id: z.number().nullable(),\r\n agent_name: z.string().nullable(),\r\n created_at: z.string(),\r\n from_user: z.boolean().nullable(),\r\n handoff_happened_during_office_hours: z.boolean().nullable(),\r\n session_id: z.string(),\r\n updated_at: z.string().nullable(),\r\n attachments: z.array(chatAttachmentSchema).optional(),\r\n});\r\n// ---------- socket responses ----------\r\n\r\nconst agentSchema = z.object({\r\n name: z.string(),\r\n is_ai: z.boolean(),\r\n profile_picture: z.string().optional().nullable(),\r\n id: z.string().nullable(),\r\n});\r\n\r\nconst messageSchema = z.object({\r\n type: z.literal(\"message\"),\r\n value: z.string(),\r\n attachments: z.array(chatAttachmentSchema).optional(),\r\n is_stream_chunk: z.boolean().optional(),\r\n server_session_id: z.string(),\r\n client_message_id: z.string().optional(),\r\n server_message_id: z.string(),\r\n});\r\n\r\nconst infoSchema = z.object({\r\n type: z.literal(\"info\"),\r\n value: z.string(),\r\n});\r\n\r\nconst uiSchema = z.object({\r\n type: z.literal(\"ui\"),\r\n value: z.object({\r\n type: z.string(),\r\n request_response: z.any(),\r\n name: z.string(),\r\n content: z.string(),\r\n message_id: z.string().optional(),\r\n }),\r\n client_message_id: z.string().optional(),\r\n server_session_id: z.string(),\r\n});\r\n\r\nconst chatEventSchema = z.object({\r\n type: z.literal(\"chat_event\"),\r\n value: z.object({\r\n event: z.nativeEnum(MessageTypeEnum),\r\n message: z.string(),\r\n }),\r\n});\r\n\r\nconst optionsSchema = z.object({\r\n type: z.literal(\"options\"),\r\n value: z.object({\r\n options: z.array(z.string()),\r\n }),\r\n server_session_id: z.string(),\r\n});\r\n\r\nconst sessionUpdateSchema = z.object({\r\n type: z.literal(\"session_update\"),\r\n value: z.object({\r\n session: chatSessionSchema,\r\n }),\r\n server_session_id: z.string(),\r\n});\r\n\r\nexport const structuredSocketMessageSchema = z\r\n .discriminatedUnion(\"type\", [\r\n messageSchema,\r\n infoSchema,\r\n uiSchema,\r\n chatEventSchema,\r\n optionsSchema,\r\n sessionUpdateSchema,\r\n ])\r\n .and(\r\n z.object({\r\n timestamp: z.string(),\r\n agent: agentSchema,\r\n }),\r\n );\r\n\r\nexport const consumerSchema = z.object({\r\n id: z.string(),\r\n name: z.string().nullable(),\r\n created_at: z.string(),\r\n avatar_url: z.string().nullable(),\r\n email: z.string().nullable(),\r\n});\r\n\r\ntype AgentType = z.infer<typeof agentSchema>;\r\ntype ConsumerType = z.infer<typeof consumerSchema>;\r\ntype ChatSessionType = z.infer<typeof chatSessionSchema>;\r\ntype ChatSessionWithStatus = ChatSessionType & {\r\n isSessionClosed: boolean;\r\n isAssignedToAi: boolean;\r\n isAssignedToHuman: boolean;\r\n isPendingHuman: boolean;\r\n};\r\ntype StructuredSocketMessageType = z.infer<\r\n typeof structuredSocketMessageSchema\r\n>;\r\ntype ChatHistoryMessageType = z.infer<typeof chatHistoryMessageSchema>;\r\nexport type {\r\n AgentType,\r\n ConsumerType,\r\n ChatSessionType,\r\n StructuredSocketMessageType,\r\n ChatHistoryMessageType,\r\n ChatSessionWithStatus,\r\n};\r\n"],"names":["genId","len","chars","id","i","SessionStatus","SessionChannel","AIClosureType","SentimentEnum","MessageTypeEnum","chatSessionSchema","z","chatAttachmentSchema","chatHistoryMessageSchema","agentSchema","messageSchema","infoSchema","uiSchema","chatEventSchema","optionsSchema","sessionUpdateSchema","structuredSocketMessageSchema","consumerSchema"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("zod"),u=(t=20)=>{const o="abcdefghijklmnopqrstuvwxyz0123456789";let c="";for(let _=0;_<t;_++)c+=o[Math.floor(Math.random()*o.length)];return c};var a=(t=>(t[t.OPEN=0]="OPEN",t[t.CLOSED_RESOLVED=1]="CLOSED_RESOLVED",t[t.CLOSED_UNRESOLVED=2]="CLOSED_UNRESOLVED",t))(a||{}),n=(t=>(t.WEB="web",t.WEB_VOICE="web_voice",t.PHONE_VOICE="phone_voice",t.EMAIL="email",t.SMS="sms",t.WHATSAPP="whatsapp",t.API="api",t))(n||{}),s=(t=>(t.resolved="resolved",t.assumed_resolved="assumed_resolved",t.handed_off="handed_off",t))(s||{}),r=(t=>(t.happy="happy",t.neutral="neutral",t.angry="angry",t))(r||{}),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_TOOK_SESSION_FROM_AI="agent_took_session_from_ai",t.AI_DECIDED_TO_RESOLVE_THE_ISSUE="ai_decided_to_resolve_the_issue",t.EMAIL_DRAFT_MESSAGE="email_draft_message",t.FOLLOWUP="followup",t))(i||{});const g=e.object({id:e.string(),ai_closure_type:e.nativeEnum(s).nullable(),assignee_id:e.number().nullable(),channel:e.nativeEnum(n),summary:e.string().nullable(),status:e.nativeEnum(a),language:e.string().nullable(),last_message:e.string().nullable(),last_message_at:e.date().nullable(),assignee:e.object({name:e.string(),email:e.string(),avatar_url:e.string().optional()}).nullable().optional(),sentiment:e.nativeEnum(r).nullable()}),l=e.object({id:e.string(),name:e.string(),size:e.number(),type:e.string(),url:e.string()}),m=e.object({publicId:e.string().uuid(),message:e.string().nullable(),type:e.string().nullable(),agent_avatar:e.string().nullable(),agent_id:e.number().nullable(),agent_name:e.string().nullable(),created_at:e.string(),from_user:e.boolean().nullable(),handoff_happened_during_office_hours:e.boolean().nullable(),session_id:e.string(),updated_at:e.string().nullable(),attachments:e.array(l).optional()}),d=e.object({name:e.string(),is_ai:e.boolean(),profile_picture:e.string().optional().nullable(),id:e.string().nullable()}),b=e.object({type:e.literal("message"),value:e.string(),attachments:e.array(l).optional(),is_stream_chunk:e.boolean().optional(),server_session_id:e.string(),client_message_id:e.string().optional(),server_message_id:e.string()}),h=e.object({type:e.literal("info"),value:e.string()}),E=e.object({type:e.literal("ui"),value:e.object({type:e.string(),request_response:e.any(),name:e.string(),content:e.string(),message_id:e.string().optional()}),client_message_id:e.string().optional(),server_session_id:e.string()}),p=e.object({type:e.literal("chat_event"),value:e.object({event:e.nativeEnum(i),message:e.string()})}),v=e.object({type:e.literal("options"),value:e.object({options:e.array(e.string())}),server_session_id:e.string()}),S=e.object({type:e.literal("session_update"),value:e.object({session:g}),server_session_id:e.string()}),O=e.discriminatedUnion("type",[b,h,E,p,v,S]).and(e.object({timestamp:e.string(),agent:d})),f=e.object({id:e.string(),name:e.string().nullable(),created_at:e.string(),avatar_url:e.string().nullable(),email:e.string().nullable()});exports.AIClosureType=s;exports.MessageTypeEnum=i;exports.SentimentEnum=r;exports.SessionChannel=n;exports.SessionStatus=a;exports.chatAttachmentSchema=l;exports.chatHistoryMessageSchema=m;exports.chatSessionSchema=g;exports.consumerSchema=f;exports.genId=u;exports.structuredSocketMessageSchema=O;
2
+ //# sourceMappingURL=schemas-wky4fpbc.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas-wky4fpbc.cjs","sources":["../core/utils/genId.ts","../core/types/schemas.ts"],"sourcesContent":["const genId = (len = 20) => {\r\n const chars = \"abcdefghijklmnopqrstuvwxyz0123456789\";\r\n let id = \"\";\r\n for (let i = 0; i < len; i++) {\r\n id += chars[Math.floor(Math.random() * chars.length)];\r\n }\r\n return id;\r\n};\r\n\r\nexport { genId };\r\n","import z from \"zod\";\r\n\r\nexport enum SessionStatus {\r\n OPEN = 0,\r\n CLOSED_RESOLVED = 1,\r\n CLOSED_UNRESOLVED = 2,\r\n}\r\n\r\nexport enum SessionChannel {\r\n WEB = \"web\",\r\n WEB_VOICE = \"web_voice\",\r\n PHONE_VOICE = \"phone_voice\",\r\n EMAIL = \"email\",\r\n SMS = \"sms\",\r\n WHATSAPP = \"whatsapp\",\r\n API = \"api\",\r\n}\r\n\r\nexport enum AIClosureType {\r\n resolved = \"resolved\",\r\n assumed_resolved = \"assumed_resolved\",\r\n handed_off = \"handed_off\",\r\n}\r\n\r\nexport enum SentimentEnum {\r\n happy = \"happy\",\r\n neutral = \"neutral\",\r\n angry = \"angry\",\r\n}\r\n\r\nexport enum MessageTypeEnum {\r\n MESSAGE = \"message\",\r\n HANDOFF = \"handoff\",\r\n HANDOFF_TO_ZENDESK = \"handoff_to_zendesk\",\r\n AGENT_MESSAGE = \"agent_message\",\r\n AGENT_JOINED = \"agent_joined\",\r\n AGENT_TOOK_SESSION_FROM_AI = \"agent_took_session_from_ai\",\r\n AI_DECIDED_TO_RESOLVE_THE_ISSUE = \"ai_decided_to_resolve_the_issue\",\r\n EMAIL_DRAFT_MESSAGE = \"email_draft_message\",\r\n FOLLOWUP = \"followup\",\r\n}\r\n\r\nexport const chatSessionSchema = z.object({\r\n id: z.string(),\r\n ai_closure_type: z.nativeEnum(AIClosureType).nullable(),\r\n assignee_id: z.number().nullable(),\r\n channel: z.nativeEnum(SessionChannel),\r\n summary: z.string().nullable(),\r\n status: z.nativeEnum(SessionStatus),\r\n language: z.string().nullable(),\r\n last_message: z.string().nullable(),\r\n last_message_at: z.date().nullable(),\r\n assignee: z\r\n .object({\r\n name: z.string(),\r\n email: z.string(),\r\n avatar_url: z.string().optional(),\r\n })\r\n .nullable()\r\n .optional(),\r\n sentiment: z.nativeEnum(SentimentEnum).nullable(),\r\n});\r\n\r\nexport type ChatAttachmentType = {\r\n id: string;\r\n name: string;\r\n size: number;\r\n type: string;\r\n url: string;\r\n};\r\n\r\nexport const chatAttachmentSchema = z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n size: z.number(),\r\n type: z.string(),\r\n url: z.string(),\r\n}) as z.ZodType<ChatAttachmentType>;\r\n\r\nexport const chatHistoryMessageSchema = z.object({\r\n publicId: z.string().uuid(),\r\n message: z.string().nullable(),\r\n type: z.string().nullable(),\r\n agent_avatar: z.string().nullable(),\r\n agent_id: z.number().nullable(),\r\n agent_name: z.string().nullable(),\r\n created_at: z.string(),\r\n from_user: z.boolean().nullable(),\r\n handoff_happened_during_office_hours: z.boolean().nullable(),\r\n session_id: z.string(),\r\n updated_at: z.string().nullable(),\r\n attachments: z.array(chatAttachmentSchema).optional(),\r\n});\r\n// ---------- socket responses ----------\r\n\r\nconst agentSchema = z.object({\r\n name: z.string(),\r\n is_ai: z.boolean(),\r\n profile_picture: z.string().optional().nullable(),\r\n id: z.string().nullable(),\r\n});\r\n\r\nconst messageSchema = z.object({\r\n type: z.literal(\"message\"),\r\n value: z.string(),\r\n attachments: z.array(chatAttachmentSchema).optional(),\r\n is_stream_chunk: z.boolean().optional(),\r\n server_session_id: z.string(),\r\n client_message_id: z.string().optional(),\r\n server_message_id: z.string(),\r\n});\r\n\r\nconst infoSchema = z.object({\r\n type: z.literal(\"info\"),\r\n value: z.string(),\r\n});\r\n\r\nconst uiSchema = z.object({\r\n type: z.literal(\"ui\"),\r\n value: z.object({\r\n type: z.string(),\r\n request_response: z.any(),\r\n name: z.string(),\r\n content: z.string(),\r\n message_id: z.string().optional(),\r\n }),\r\n client_message_id: z.string().optional(),\r\n server_session_id: z.string(),\r\n});\r\n\r\nconst chatEventSchema = z.object({\r\n type: z.literal(\"chat_event\"),\r\n value: z.object({\r\n event: z.nativeEnum(MessageTypeEnum),\r\n message: z.string(),\r\n }),\r\n});\r\n\r\nconst optionsSchema = z.object({\r\n type: z.literal(\"options\"),\r\n value: z.object({\r\n options: z.array(z.string()),\r\n }),\r\n server_session_id: z.string(),\r\n});\r\n\r\nconst sessionUpdateSchema = z.object({\r\n type: z.literal(\"session_update\"),\r\n value: z.object({\r\n session: chatSessionSchema,\r\n }),\r\n server_session_id: z.string(),\r\n});\r\n\r\nexport const structuredSocketMessageSchema = z\r\n .discriminatedUnion(\"type\", [\r\n messageSchema,\r\n infoSchema,\r\n uiSchema,\r\n chatEventSchema,\r\n optionsSchema,\r\n sessionUpdateSchema,\r\n ])\r\n .and(\r\n z.object({\r\n timestamp: z.string(),\r\n agent: agentSchema,\r\n }),\r\n );\r\n\r\nexport const consumerSchema = z.object({\r\n id: z.string(),\r\n name: z.string().nullable(),\r\n created_at: z.string(),\r\n avatar_url: z.string().nullable(),\r\n email: z.string().nullable(),\r\n});\r\n\r\ntype AgentType = z.infer<typeof agentSchema>;\r\ntype ConsumerType = z.infer<typeof consumerSchema>;\r\ntype ChatSessionType = z.infer<typeof chatSessionSchema>;\r\ntype ChatSessionWithStatus = ChatSessionType & {\r\n isSessionClosed: boolean;\r\n isAssignedToAi: boolean;\r\n isAssignedToHuman: boolean;\r\n isPendingHuman: boolean;\r\n};\r\ntype StructuredSocketMessageType = z.infer<\r\n typeof structuredSocketMessageSchema\r\n>;\r\ntype ChatHistoryMessageType = z.infer<typeof chatHistoryMessageSchema>;\r\nexport type {\r\n AgentType,\r\n ConsumerType,\r\n ChatSessionType,\r\n StructuredSocketMessageType,\r\n ChatHistoryMessageType,\r\n ChatSessionWithStatus,\r\n};\r\n"],"names":["genId","len","chars","id","i","SessionStatus","SessionChannel","AIClosureType","SentimentEnum","MessageTypeEnum","chatSessionSchema","z","chatAttachmentSchema","chatHistoryMessageSchema","agentSchema","messageSchema","infoSchema","uiSchema","chatEventSchema","optionsSchema","sessionUpdateSchema","structuredSocketMessageSchema","consumerSchema"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { MessageTypeEnum } from '../../core/types';
2
- import { ComponentProps } from '../../react-lib/types';
2
+ import { ComponentProps } from '../../react-web/types';
3
3
  import { default as React } from 'react';
4
4
  type ChatEventComponentProps = ComponentProps<{
5
5
  event: MessageTypeEnum;
@@ -1,4 +1,4 @@
1
- import { ComponentProps } from '../../react-lib/types';
1
+ import { ComponentProps } from '../../react-web/types';
2
2
  import { default as React } from 'react';
3
3
  type Props = ComponentProps<unknown>;
4
4
  /**
@@ -1,3 +1,3 @@
1
1
  import { default as React } from 'react';
2
- import { DefaultTextComponentProps } from '../../react-lib/types';
2
+ import { DefaultTextComponentProps } from '../../react-web/types';
3
3
  export declare function BotTextResponse({ data, id, type, attachments, }: DefaultTextComponentProps): React.JSX.Element;
@@ -21,7 +21,7 @@ declare const DialogContent: React.ForwardRefExoticComponent<Omit<{
21
21
  suppressContentEditableWarning?: boolean | undefined;
22
22
  suppressHydrationWarning?: boolean | undefined;
23
23
  accessKey?: string | undefined;
24
- autoCapitalize?: "none" | "on" | "off" | "sentences" | "words" | "characters" | (string & {}) | undefined;
24
+ autoCapitalize?: "none" | "off" | "on" | "sentences" | "words" | "characters" | (string & {}) | undefined;
25
25
  autoFocus?: boolean | undefined;
26
26
  className?: string | undefined;
27
27
  contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
@@ -56,7 +56,7 @@ declare const DialogContent: React.ForwardRefExoticComponent<Omit<{
56
56
  itemRef?: string | undefined;
57
57
  results?: number | undefined;
58
58
  security?: string | undefined;
59
- unselectable?: "on" | "off" | undefined;
59
+ unselectable?: "off" | "on" | undefined;
60
60
  inputMode?: "email" | "url" | "search" | "text" | "none" | "tel" | "numeric" | "decimal" | undefined;
61
61
  is?: string | undefined;
62
62
  "aria-activedescendant"?: string | undefined;
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { WidgetOptions } from '../../react-lib/types';
2
+ import { WidgetOptions } from '../../react-web/types';
3
3
  import { UserMessageType } from '../../core/types';
4
4
  export declare function UserMessage({ children, user, message, }: {
5
5
  children: React.ReactNode;
@@ -1,4 +1,4 @@
1
- import { WidgetOptions } from '../../../react-lib/index';
1
+ import { WidgetOptions } from '../../../react-web/index';
2
2
  import { default as React, ComponentPropsWithoutRef, ReactNode } from 'react';
3
3
  declare function Widget({ className, ...props }: ComponentPropsWithoutRef<"div">): React.JSX.Element;
4
4
  declare function WidgetRoot({ options, children, }: {