@modochats/widget 0.1.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 (195) hide show
  1. package/.github/workflows/build-and-publish.yml +174 -0
  2. package/.vscode/settings.json +3 -0
  3. package/.yarn/install-state.gz +0 -0
  4. package/README.md +163 -0
  5. package/cdn-dist/README.md +42 -0
  6. package/cdn-dist/modo-web-component.js +1344 -0
  7. package/cdn-dist/modo-web-component.min.js +1 -0
  8. package/cdn-dist/package.json +27 -0
  9. package/dist/src/app.d.ts +29 -0
  10. package/dist/src/app.js +1 -0
  11. package/dist/src/app.js.map +1 -0
  12. package/dist/src/constants/index.d.ts +9 -0
  13. package/dist/src/constants/index.js +1 -0
  14. package/dist/src/constants/index.js.map +1 -0
  15. package/dist/src/constants/regex.d.ts +2 -0
  16. package/dist/src/constants/regex.js +1 -0
  17. package/dist/src/constants/regex.js.map +1 -0
  18. package/dist/src/index.d.ts +9 -0
  19. package/dist/src/index.js +1 -0
  20. package/dist/src/index.js.map +1 -0
  21. package/dist/src/models/chatbot.d.ts +23 -0
  22. package/dist/src/models/chatbot.js +1 -0
  23. package/dist/src/models/chatbot.js.map +1 -0
  24. package/dist/src/models/conversation.d.ts +22 -0
  25. package/dist/src/models/conversation.js +1 -0
  26. package/dist/src/models/conversation.js.map +1 -0
  27. package/dist/src/models/customer-data.d.ts +31 -0
  28. package/dist/src/models/customer-data.js +1 -0
  29. package/dist/src/models/customer-data.js.map +1 -0
  30. package/dist/src/models/message-utils.d.ts +12 -0
  31. package/dist/src/models/message-utils.js +1 -0
  32. package/dist/src/models/message-utils.js.map +1 -0
  33. package/dist/src/services/chat/conversation.d.ts +22 -0
  34. package/dist/src/services/chat/conversation.js +1 -0
  35. package/dist/src/services/chat/conversation.js.map +1 -0
  36. package/dist/src/services/chat/message-utils.d.ts +12 -0
  37. package/dist/src/services/chat/message-utils.js +1 -0
  38. package/dist/src/services/chat/message-utils.js.map +1 -0
  39. package/dist/src/services/chat/model.d.ts +27 -0
  40. package/dist/src/services/chat/model.js +1 -0
  41. package/dist/src/services/chat/model.js.map +1 -0
  42. package/dist/src/services/chatbot/chatbot.d.ts +23 -0
  43. package/dist/src/services/chatbot/chatbot.js +1 -0
  44. package/dist/src/services/chatbot/chatbot.js.map +1 -0
  45. package/dist/src/services/checker.d.ts +3 -0
  46. package/dist/src/services/checker.js +1 -0
  47. package/dist/src/services/checker.js.map +1 -0
  48. package/dist/src/services/listeners/adders.d.ts +3 -0
  49. package/dist/src/services/listeners/adders.js +1 -0
  50. package/dist/src/services/listeners/adders.js.map +1 -0
  51. package/dist/src/services/listeners/fn.d.ts +3 -0
  52. package/dist/src/services/listeners/fn.js +1 -0
  53. package/dist/src/services/listeners/fn.js.map +1 -0
  54. package/dist/src/services/socket/utils.d.ts +2 -0
  55. package/dist/src/services/socket/utils.js +1 -0
  56. package/dist/src/services/socket/utils.js.map +1 -0
  57. package/dist/src/services/ui/fn.d.ts +13 -0
  58. package/dist/src/services/ui/fn.js +1 -0
  59. package/dist/src/services/ui/fn.js.map +1 -0
  60. package/dist/src/services/ui/html.d.ts +3 -0
  61. package/dist/src/services/ui/html.js +1 -0
  62. package/dist/src/services/ui/html.js.map +1 -0
  63. package/dist/src/services/user/customer-data.d.ts +31 -0
  64. package/dist/src/services/user/customer-data.js +1 -0
  65. package/dist/src/services/user/customer-data.js.map +1 -0
  66. package/dist/src/services/voice-chat/model.d.ts +12 -0
  67. package/dist/src/services/voice-chat/model.js +1 -0
  68. package/dist/src/services/voice-chat/model.js.map +1 -0
  69. package/dist/src/services/voice-chat/utils.d.ts +9 -0
  70. package/dist/src/services/voice-chat/utils.js +1 -0
  71. package/dist/src/services/voice-chat/utils.js.map +1 -0
  72. package/dist/src/tools/fetch.d.ts +2 -0
  73. package/dist/src/tools/fetch.js +1 -0
  74. package/dist/src/tools/fetch.js.map +1 -0
  75. package/dist/src/types/app.d.ts +17 -0
  76. package/dist/src/types/app.js.map +1 -0
  77. package/dist/src/types/conversation.d.ts +14 -0
  78. package/dist/src/types/conversation.js +1 -0
  79. package/dist/src/types/conversation.js.map +1 -0
  80. package/dist/src/types/socket.d.ts +6 -0
  81. package/dist/src/types/socket.js +1 -0
  82. package/dist/src/types/socket.js.map +1 -0
  83. package/dist/src/types/window.d.ts +9 -0
  84. package/dist/src/types/window.js +1 -0
  85. package/dist/src/types/window.js.map +1 -0
  86. package/dist/src/utils/audio.d.ts +3 -0
  87. package/dist/src/utils/audio.js +1 -0
  88. package/dist/src/utils/audio.js.map +1 -0
  89. package/dist/src/utils/browser.d.ts +2 -0
  90. package/dist/src/utils/browser.js +1 -0
  91. package/dist/src/utils/browser.js.map +1 -0
  92. package/dist/src/utils/fetch.d.ts +18 -0
  93. package/dist/src/utils/fetch.js +1 -0
  94. package/dist/src/utils/fetch.js.map +1 -0
  95. package/dist/src/utils/uuid.d.ts +6 -0
  96. package/dist/src/utils/uuid.js +1 -0
  97. package/dist/src/utils/uuid.js.map +1 -0
  98. package/dist/types/src/app.d.ts +30 -0
  99. package/dist/types/src/app.d.ts.map +1 -0
  100. package/dist/types/src/constants/index.d.ts +10 -0
  101. package/dist/types/src/constants/index.d.ts.map +1 -0
  102. package/dist/types/src/constants/regex.d.ts +3 -0
  103. package/dist/types/src/constants/regex.d.ts.map +1 -0
  104. package/dist/types/src/index.d.ts +10 -0
  105. package/dist/types/src/index.d.ts.map +1 -0
  106. package/dist/types/src/models/chatbot.d.ts +24 -0
  107. package/dist/types/src/models/chatbot.d.ts.map +1 -0
  108. package/dist/types/src/models/conversation.d.ts +23 -0
  109. package/dist/types/src/models/conversation.d.ts.map +1 -0
  110. package/dist/types/src/models/customer-data.d.ts +32 -0
  111. package/dist/types/src/models/customer-data.d.ts.map +1 -0
  112. package/dist/types/src/models/message-utils.d.ts +13 -0
  113. package/dist/types/src/models/message-utils.d.ts.map +1 -0
  114. package/dist/types/src/services/chat/conversation.d.ts +23 -0
  115. package/dist/types/src/services/chat/conversation.d.ts.map +1 -0
  116. package/dist/types/src/services/chat/message-utils.d.ts +13 -0
  117. package/dist/types/src/services/chat/message-utils.d.ts.map +1 -0
  118. package/dist/types/src/services/chat/model.d.ts +28 -0
  119. package/dist/types/src/services/chat/model.d.ts.map +1 -0
  120. package/dist/types/src/services/chatbot/chatbot.d.ts +24 -0
  121. package/dist/types/src/services/chatbot/chatbot.d.ts.map +1 -0
  122. package/dist/types/src/services/checker.d.ts +4 -0
  123. package/dist/types/src/services/checker.d.ts.map +1 -0
  124. package/dist/types/src/services/listeners/adders.d.ts +4 -0
  125. package/dist/types/src/services/listeners/adders.d.ts.map +1 -0
  126. package/dist/types/src/services/listeners/fn.d.ts +4 -0
  127. package/dist/types/src/services/listeners/fn.d.ts.map +1 -0
  128. package/dist/types/src/services/socket/utils.d.ts +3 -0
  129. package/dist/types/src/services/socket/utils.d.ts.map +1 -0
  130. package/dist/types/src/services/ui/fn.d.ts +14 -0
  131. package/dist/types/src/services/ui/fn.d.ts.map +1 -0
  132. package/dist/types/src/services/ui/html.d.ts +4 -0
  133. package/dist/types/src/services/ui/html.d.ts.map +1 -0
  134. package/dist/types/src/services/user/customer-data.d.ts +32 -0
  135. package/dist/types/src/services/user/customer-data.d.ts.map +1 -0
  136. package/dist/types/src/services/voice-chat/model.d.ts +13 -0
  137. package/dist/types/src/services/voice-chat/model.d.ts.map +1 -0
  138. package/dist/types/src/services/voice-chat/utils.d.ts +10 -0
  139. package/dist/types/src/services/voice-chat/utils.d.ts.map +1 -0
  140. package/dist/types/src/tools/fetch.d.ts +3 -0
  141. package/dist/types/src/tools/fetch.d.ts.map +1 -0
  142. package/dist/types/src/types/app.d.ts +18 -0
  143. package/dist/types/src/types/app.d.ts.map +1 -0
  144. package/dist/types/src/types/conversation.d.ts +15 -0
  145. package/dist/types/src/types/conversation.d.ts.map +1 -0
  146. package/dist/types/src/types/socket.d.ts +7 -0
  147. package/dist/types/src/types/socket.d.ts.map +1 -0
  148. package/dist/types/src/types/window.d.ts +10 -0
  149. package/dist/types/src/types/window.d.ts.map +1 -0
  150. package/dist/types/src/utils/audio.d.ts +4 -0
  151. package/dist/types/src/utils/audio.d.ts.map +1 -0
  152. package/dist/types/src/utils/browser.d.ts +3 -0
  153. package/dist/types/src/utils/browser.d.ts.map +1 -0
  154. package/dist/types/src/utils/fetch.d.ts +19 -0
  155. package/dist/types/src/utils/fetch.d.ts.map +1 -0
  156. package/dist/types/src/utils/uuid.d.ts +7 -0
  157. package/dist/types/src/utils/uuid.d.ts.map +1 -0
  158. package/package.json +76 -0
  159. package/rollup.config.js +18 -0
  160. package/rollup.dev.config.js +22 -0
  161. package/scripts/create-umd-bundle.js +213 -0
  162. package/scripts/terser-minify.js +112 -0
  163. package/src/app.ts +117 -0
  164. package/src/constants/index.ts +21 -0
  165. package/src/constants/regex.ts +2 -0
  166. package/src/index.ts +16 -0
  167. package/src/services/chat/conversation.ts +135 -0
  168. package/src/services/chat/message-utils.ts +221 -0
  169. package/src/services/chat/model.ts +139 -0
  170. package/src/services/chatbot/chatbot.ts +66 -0
  171. package/src/services/checker.ts +10 -0
  172. package/src/services/listeners/adders.ts +178 -0
  173. package/src/services/listeners/fn.ts +77 -0
  174. package/src/services/socket/utils.ts +9 -0
  175. package/src/services/ui/fn.ts +254 -0
  176. package/src/services/ui/html.ts +192 -0
  177. package/src/services/user/customer-data.ts +78 -0
  178. package/src/services/voice-chat/model.ts +79 -0
  179. package/src/services/voice-chat/utils.ts +137 -0
  180. package/src/tools/fetch.ts +7 -0
  181. package/src/types/app.ts +17 -0
  182. package/src/types/conversation.ts +14 -0
  183. package/src/types/socket.ts +7 -0
  184. package/src/types/window.ts +12 -0
  185. package/src/utils/audio.ts +67 -0
  186. package/src/utils/browser.ts +4 -0
  187. package/src/utils/fetch.ts +98 -0
  188. package/src/utils/uuid.ts +13 -0
  189. package/temp/audio/new-message.mp3 +0 -0
  190. package/temp/audio/on-hold.mp3 +0 -0
  191. package/temp/audio-processor.js +261 -0
  192. package/temp/css/index.css +2283 -0
  193. package/temp/dev.html +87 -0
  194. package/temp/index.html +16 -0
  195. package/tsconfig.json +119 -0
@@ -0,0 +1,12 @@
1
+ import { VoiceClient } from "@modochats/voice-client";
2
+ declare class VoiceChat {
3
+ instance?: VoiceClient;
4
+ isFirstInSession: boolean;
5
+ constructor();
6
+ connect(): Promise<void>;
7
+ disconnect(): Promise<void>;
8
+ initHtml(): void;
9
+ toggleLayout(): void;
10
+ showTooltip(): void;
11
+ }
12
+ export { VoiceChat };
@@ -0,0 +1 @@
1
+ import{VoiceClient,EventType}from"@modochats/voice-client";import{initVoiceChatLayout,handleVoiceConnected,handleVoiceDisconnected,handleVoiceConnectionError,handleMicrophonePaused,handleMicrophoneResumed}from"./utils.js";class VoiceChat{instance;isFirstInSession=!0;constructor(){const e=window.getMWidget?.();this.instance=new VoiceClient({apiBase:"https://live.modochats.com",chatbotUuid:e?.chatbot?.uuid,userUniqueId:e?.customerData.uniqueId}),this.instance.on(EventType.CONNECTED,e=>{handleVoiceConnected()}),this.instance.on(EventType.DISCONNECTED,e=>{e.reason,handleVoiceDisconnected(e.reason)}),this.instance.on(EventType.CONNECTION_ERROR,e=>{handleVoiceConnectionError(e.message)}),this.instance.on(EventType.MICROPHONE_PAUSED,()=>{handleMicrophonePaused()}),this.instance.on(EventType.MICROPHONE_RESUMED,()=>{handleMicrophoneResumed()}),this.initHtml();"true"===sessionStorage.getItem("modochats:voice-agent-seen")?this.isFirstInSession=!1:sessionStorage.setItem("modochats:voice-agent-seen","true"),this.isFirstInSession&&this.showTooltip()}async connect(){try{await(this.instance?.connect())}catch(e){}}async disconnect(){await(this.instance?.disconnect())}initHtml(){initVoiceChatLayout()}toggleLayout(){this.toggleLayout()}showTooltip(){const e=document.querySelector(".mw-voice-call-tooltip");e?.classList.remove("mw-hidden"),setTimeout(()=>{e?.classList.add("mw-hidden")},6e3)}}export{VoiceChat};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/services/voice-chat/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB,MAAM,SAAS;IACb,QAAQ,CAAe;IACvB,gBAAgB,GAAY,IAAI,CAAC;IACjC;QACE,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC;YAC9B,OAAO,EAAE,4BAA4B;YACrC,oCAAoC;YACpC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,IAAc;YAC5C,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,QAAkB;SACtD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,KAAU,EAAE,EAAE;YACnD,oBAAoB,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,KAAU,EAAE,EAAE;YACtD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACnB,CAAC;YACD,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,KAAU,EAAE,EAAE;YAC1D,wDAAwD;YACxD,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,EAAE;YACjD,sBAAsB,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAClD,uBAAuB,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,gCAAgC;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,gBAAgB;QAChB,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,4BAA4B,CAAC,KAAK,MAAM,CAAC;QAChF,IAAI,OAAO;YAAE,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;;YACtC,cAAc,CAAC,OAAO,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,gBAAgB;YAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IAChD,CAAC;IACD,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,8CAA8C;QAChD,CAAC;IACH,CAAC;IACD,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACpC,CAAC;IACD,QAAQ;QACN,mBAAmB,EAAE,CAAC;IACxB,CAAC;IACD,YAAY;QACV,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,WAAW;QACT,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;QACjE,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACvC,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;CACF;AACD,OAAO,EAAC,SAAS,EAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ declare function toggleVoiceChatLayout(): void;
2
+ declare function initVoiceChatLayout(): void;
3
+ declare function updateVoiceChatStatus(status: string, color?: string): void;
4
+ declare function handleVoiceConnected(): void;
5
+ declare function handleVoiceDisconnected(reason?: string): void;
6
+ declare function handleVoiceConnectionError(message: string): void;
7
+ declare function handleMicrophonePaused(): void;
8
+ declare function handleMicrophoneResumed(): void;
9
+ export { toggleVoiceChatLayout, initVoiceChatLayout, updateVoiceChatStatus, handleVoiceConnected, handleVoiceDisconnected, handleVoiceConnectionError, handleMicrophonePaused, handleMicrophoneResumed };
@@ -0,0 +1 @@
1
+ function toggleVoiceChatLayout(){const e=window.getMWidget?.(),t=e?.container?.querySelector(".mw-voice-agent-overlay");t&&(t.classList.toggle("mw-active"),t.classList.toggle("mw-hidden"))}function initVoiceChatLayout(){const e=window.getMWidget?.(),t=e?.container?.querySelector(".mw-voice-agent-overlay"),o=t?.querySelector(".mw-voice-close-btn"),n=t?.querySelector(".mw-voice-disconnect-btn"),i=e?.container?.querySelector(".mw-voice-call-btn");i&&(i.classList.remove("mw-hidden"),i.classList.add("mw-visible"));const c=t?.querySelector(".mw-voice-agent-logo");c&&e?.chatbot?.image&&(c.src=e.chatbot.image,c.alt=e.chatbot.name||"چت بات");const a=t?.querySelector(".mw-voice-agent-title");a&&(a.textContent=e?.chatbot?.name||"تماس صوتی"),i?.addEventListener("click",()=>{t&&(t.classList.remove("mw-hidden"),t.classList.add("mw-active"),e?.voiceChat?.connect())}),o?.addEventListener("click",()=>{t&&(t.classList.remove("mw-active"),t.classList.add("mw-hidden"),e?.voiceChat?.disconnect())}),n?.addEventListener("click",()=>{t&&(t.classList.remove("mw-active"),t.classList.add("mw-hidden"),e?.voiceChat?.disconnect())})}function updateVoiceChatStatus(e,t){const o=window.getMWidget?.(),n=o?.container?.querySelector(".mw-voice-agent-status");n&&(n.textContent=e,t&&(n.style.color=t))}function handleVoiceConnected(){const e=window.getMWidget?.(),t=e?.container?.querySelector(".mw-voice-agent-logo"),o=e?.container?.querySelector(".mw-voice-agent-status");t&&(t.style.animation="mw-voice-pulse 2s ease-in-out infinite"),o&&(o.style.animation="mw-pulse 1.5s ease-in-out infinite"),updateVoiceChatStatus("متصل ✓","#68d391")}function handleVoiceDisconnected(e){const t=window.getMWidget?.(),o=t?.container?.querySelector(".mw-voice-agent-logo"),n=t?.container?.querySelector(".mw-voice-agent-status");o&&(o.style.animation="none"),n&&(n.style.animation="none");updateVoiceChatStatus(e?`قطع شد: ${e}`:"قطع شد","#fc8181")}function handleVoiceConnectionError(e){updateVoiceChatStatus(`خطا: ${e}`,"#fbb040"),console.error("🔴 Voice Connection Error:",e)}function handleMicrophonePaused(){updateVoiceChatStatus("⏸ میکروفن متوقف شد","#fbb040")}function handleMicrophoneResumed(){updateVoiceChatStatus("🎤 میکروفن فعال","#68d391")}export{toggleVoiceChatLayout,initVoiceChatLayout,updateVoiceChatStatus,handleVoiceConnected,handleVoiceDisconnected,handleVoiceConnectionError,handleMicrophonePaused,handleMicrophoneResumed};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/services/voice-chat/utils.ts"],"names":[],"mappings":"AAAA,SAAS,qBAAqB;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAEjF,IAAI,YAAY,EAAE,CAAC;QACjB,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAC;IACjF,MAAM,aAAa,GAAG,YAAY,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IACzE,MAAM,kBAAkB,GAAG,YAAY,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAE5E,yBAAyB;IACzB,IAAI,YAAY,EAAE,CAAC;QACjB,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED,6BAA6B;IAC7B,MAAM,OAAO,GAAG,YAAY,EAAE,aAAa,CAAC,sBAAsB,CAAqB,CAAC;IACxF,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;IAChD,CAAC;IAED,YAAY;IACZ,MAAM,OAAO,GAAG,YAAY,EAAE,aAAa,CAAC,uBAAuB,CAAgB,CAAC;IACpF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,WAAW,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,IAAI,WAAW,CAAC;IAC7D,CAAC;IAED,4BAA4B;IAC5B,YAAY,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QAC3C,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC3C,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACxC,4BAA4B;YAC5B,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,aAAa,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QAC5C,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC3C,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACxC,iCAAiC;YACjC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,kCAAkC;IAClC,kBAAkB,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACjD,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC3C,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACxC,iCAAiC;YACjC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc,EAAE,KAAc;IAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,wBAAwB,CAAgB,CAAC;IAE3F,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC;QAC9B,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,sBAAsB,CAAgB,CAAC;IACvF,MAAM,QAAQ,GAAG,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,wBAAwB,CAAgB,CAAC;IAE3F,uCAAuC;IACvC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,wCAAwC,CAAC;IACpE,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,oCAAoC,CAAC;IAClE,CAAC;IAED,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ;AACtD,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAe;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,sBAAsB,CAAgB,CAAC;IACvF,MAAM,QAAQ,GAAG,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,wBAAwB,CAAgB,CAAC;IAE3F,sCAAsC;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IAClC,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IACpC,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3D,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM;AACtD,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAe;IACjD,qBAAqB,CAAC,QAAQ,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,iBAAiB;IAEtE,oDAAoD;IACpD,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,sBAAsB;IAC7B,qBAAqB,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS;AACnE,CAAC;AAED,SAAS,uBAAuB;IAC9B,qBAAqB,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ;AAC/D,CAAC;AAED,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const $fetch: import("ofetch").$Fetch;
2
+ export { $fetch };
@@ -0,0 +1 @@
1
+ import{BASE_API_URL}from"#src/constants/index.js";import{ofetch}from"ofetch";const $fetch=ofetch.create({baseURL:BASE_API_URL});export{$fetch};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/tools/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAE9B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,OAAO,EAAE,YAAY;CACtB,CAAC,CAAC;AACH,OAAO,EAAC,MAAM,EAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ interface WidgetOptions {
2
+ position: "left" | "right";
3
+ theme: "dark" | "light";
4
+ primaryColor: string;
5
+ title: string;
6
+ foregroundColor: string;
7
+ userData?: Record<string, any>;
8
+ autoInit?: boolean;
9
+ fullScreen: boolean;
10
+ }
11
+ interface FetchPaginationRes<T = any> {
12
+ results: T[];
13
+ next: string | null;
14
+ prev: string | null;
15
+ count: number;
16
+ }
17
+ export { WidgetOptions, FetchPaginationRes };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/types/app.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ declare enum ConversationStatus {
2
+ AI_CHAT = 0,
3
+ SUPPORTER_CHAT = 1,
4
+ RESOLVED = 2,
5
+ UNKNOWN = 3
6
+ }
7
+ declare enum MessageType {
8
+ USER = 0,
9
+ AI = 1,
10
+ SUPPORTER = 2,
11
+ SYSTEM = 3,
12
+ UNKNOWN = 4
13
+ }
14
+ export type { ConversationStatus, MessageType };
@@ -0,0 +1 @@
1
+ var ConversationStatus,MessageType;!function(S){S[S.AI_CHAT=0]="AI_CHAT",S[S.SUPPORTER_CHAT=1]="SUPPORTER_CHAT",S[S.RESOLVED=2]="RESOLVED",S[S.UNKNOWN=3]="UNKNOWN"}(ConversationStatus||(ConversationStatus={})),function(S){S[S.USER=0]="USER",S[S.AI=1]="AI",S[S.SUPPORTER=2]="SUPPORTER",S[S.SYSTEM=3]="SYSTEM",S[S.UNKNOWN=4]="UNKNOWN"}(MessageType||(MessageType={}));export{};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../../src/types/conversation.ts"],"names":[],"mappings":"AAAA,IAAK,kBAKJ;AALD,WAAK,kBAAkB;IACrB,iEAAO,CAAA;IACP,+EAAc,CAAA;IACd,mEAAQ,CAAA;IACR,iEAAO,CAAA;AACT,CAAC,EALI,kBAAkB,KAAlB,kBAAkB,QAKtB;AACD,IAAK,WAMJ;AAND,WAAK,WAAW;IACd,6CAAI,CAAA;IACJ,yCAAE,CAAA;IACF,uDAAS,CAAA;IACT,iDAAM,CAAA;IACN,mDAAO,CAAA;AACT,CAAC,EANI,WAAW,KAAX,WAAW,QAMf"}
@@ -0,0 +1,6 @@
1
+ interface SocketMessage {
2
+ type: "new_message" | "ai_response" | "conversation_status_change";
3
+ message: any;
4
+ status: string;
5
+ }
6
+ export type { SocketMessage };
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../src/types/socket.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { Widget } from "../app.js";
2
+ declare global {
3
+ interface Window {
4
+ ModoChat: typeof Widget;
5
+ ModoWidget: typeof Widget;
6
+ getMWidget?: () => Widget;
7
+ }
8
+ }
9
+ export {};
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window.js","sourceRoot":"","sources":["../../../src/types/window.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ declare const preloadAudio: (audioPath: string) => Promise<HTMLAudioElement>;
2
+ declare const playAudio: (audioPath: string) => Promise<void>;
3
+ export { playAudio, preloadAudio };
@@ -0,0 +1 @@
1
+ const audioCache=new Map,preloadAudio=e=>new Promise((a,o)=>{if(audioCache.has(e))return void a(audioCache.get(e));const t=new Audio(e);t.volume=.5,t.preload="auto",t.addEventListener("canplaythrough",()=>{audioCache.set(e,t),a(t)}),t.addEventListener("error",e=>{o(e)}),t.load()}),playAudio=async e=>{try{let a=audioCache.get(e);a||(a=new Audio(e),a.volume=.5,a.preload="auto"),await a.play()}catch(e){console.warn("Failed to play audio:",e);try{const e=new(window.AudioContext||window.webkitAudioContext),a=e.createOscillator(),o=e.createGain();a.connect(o),o.connect(e.destination),a.frequency.setValueAtTime(800,e.currentTime),a.type="sine",o.gain.setValueAtTime(.3,e.currentTime),o.gain.exponentialRampToValueAtTime(.01,e.currentTime+.5),a.start(e.currentTime),a.stop(e.currentTime+.5)}catch(e){console.warn("Audio fallback also failed:",e)}}};export{playAudio,preloadAudio};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../../src/utils/audio.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;AAEvD,MAAM,YAAY,GAAG,CAAC,SAAiB,EAA6B,EAAE;IACpE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1C,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC;QAC1B,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC;QAE9B,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,GAAG,EAAE;YACnD,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YACxC,OAAO,CAAC,YAAY,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;YAC7C,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,YAAY,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,KAAK,EAAE,SAAiB,EAAE,EAAE;IAC5C,IAAI,CAAC;QACH,+CAA+C;QAC/C,IAAI,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,YAAY,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;YACpC,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC;YAC1B,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC;QAChC,CAAC;QAED,iBAAiB;QACjB,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC7C,gEAAgE;QAChE,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAK,MAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACvF,MAAM,UAAU,GAAG,YAAY,CAAC,gBAAgB,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;YAE3C,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7B,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAE3C,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;YACnE,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC;YAEzB,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;YAC5D,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,YAAY,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;YAEjF,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC3C,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,aAAa,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,aAAa,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,OAAO,EAAC,SAAS,EAAE,YAAY,EAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare let getDocumentHead: () => Element;
2
+ export { getDocumentHead };
@@ -0,0 +1 @@
1
+ let getDocumentHead=()=>document.getElementsByTagName("HEAD")[0];export{getDocumentHead};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/utils/browser.ts"],"names":[],"mappings":"AAAA,IAAI,eAAe,GAAG,GAAG,EAAE;IACzB,OAAO,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AACF,OAAO,EAAC,eAAe,EAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { FetchPaginationRes } from "#src/types/app.js";
2
+ declare const fetchChatbot: (publicKey: string) => Promise<Record<string, any>>;
3
+ declare const fetchSendMessage: (chatbotId: number, content: string, uniqueId: string, conversationUuid?: string, phoneNumber?: string, options?: {
4
+ file?: File;
5
+ replyTo?: number;
6
+ }) => Promise<any>;
7
+ declare const fetchGetAccessTokenForSocket: (chatbotId: string, conversationUuid: string, uniqueId: string) => Promise<{
8
+ access_token: string;
9
+ conversation_uuid: string;
10
+ expires_in: number;
11
+ }>;
12
+ declare const fetchConversationMessages: (conversationUuid: string, chatbotUuid: string) => Promise<Record<string, any>>;
13
+ declare const fetchUpdateUserData: (chatbotUuid: string, uniqueId: string, userData: Record<string, any>) => Promise<any>;
14
+ declare const fetchReadMessage: (id: number) => Promise<any>;
15
+ declare const fetchMarkConversationAsRead: (conversationUuid: string, uniqueId: string) => Promise<any>;
16
+ declare const fetchMessageFeedback: (id: number, uniqueId: string, conversationUuid: string, liked: boolean) => Promise<any>;
17
+ declare const fetchConversations: (conversationUuid: string, uniqueId: string) => Promise<FetchPaginationRes<any>>;
18
+ export { fetchChatbot, fetchSendMessage, fetchGetAccessTokenForSocket, fetchConversationMessages, fetchUpdateUserData, fetchReadMessage, fetchMarkConversationAsRead, fetchMessageFeedback, fetchConversations };
@@ -0,0 +1 @@
1
+ import{$fetch}from"#src/tools/fetch.js";const fetchChatbot=async e=>await $fetch(`/v1/chatbot/public/${e}`),fetchSendMessage=async(e,t,s,a,o,n)=>{const c=new FormData;return c.append("chatbot_id",e.toString()),c.append("content",t),c.append("message_type","0"),c.append("unique_id",s),a&&c.append("conversation_id",a),c.append("url",window?.location?.href||""),c.append("title",document?.title||""),o&&"no phone number"!==o&&c.append("phone_number",o),n?.file&&c.append("file",n.file),n?.replyTo&&c.append("response_to",n.replyTo.toString()),await $fetch("/v2/conversations/website/send-message/",{method:"POST",body:c})},fetchGetAccessTokenForSocket=async(e,t,s)=>await $fetch("/v2/conversations/websocket/auth/",{method:"POST",body:{chatbot_id:e,conversation_uuid:t,unique_id:s}}),fetchConversationMessages=async(e,t)=>await $fetch(`/v2/conversations/website/conversations/${e}/chatbot/${t}/messages/`),fetchUpdateUserData=async(e,t,s)=>await $fetch("/v1/chatbot/customners/set-user-data",{method:"POST",body:{chatbot_uuid:e,unique_id:t,user_data:s}}),fetchReadMessage=async e=>await $fetch(`/v2/conversations/messages/${e}/`,{method:"POST"}),fetchMarkConversationAsRead=async(e,t)=>await $fetch(`/v2/conversations/website/conversations/${e}/messages/seen`,{method:"POST",body:{unique_id:t}}),fetchMessageFeedback=async(e,t,s,a)=>await $fetch("/v2/conversations/website/conversations/messages/feedback",{method:"POST",body:{unique_id:t,feedback:a?1:0,message_id:e,conversation_uuid:s}}),fetchConversations=async(e,t)=>await $fetch(`/v2/conversations/website/conversations/${e}/customer/${t}`);export{fetchChatbot,fetchSendMessage,fetchGetAccessTokenForSocket,fetchConversationMessages,fetchUpdateUserData,fetchReadMessage,fetchMarkConversationAsRead,fetchMessageFeedback,fetchConversations};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAG3C,MAAM,YAAY,GAAG,KAAK,EAAE,SAAiB,EAAE,EAAE;IAC/C,OAAO,MAAM,MAAM,CAAsB,sBAAsB,SAAS,EAAE,CAAC,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,KAAK,EAC5B,SAAiB,EACjB,OAAe,EACf,QAAgB,EAChB,gBAAyB,EACzB,WAAoB,EACpB,OAGC,EACD,EAAE;IACF,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpD,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACvC,IAAI,gBAAgB;QAAE,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IAC3E,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,WAAW,IAAI,WAAW,KAAK,iBAAiB;QAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACnG,IAAI,OAAO,EAAE,IAAI;QAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,OAAO,EAAE,OAAO;QAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEjF,OAAO,MAAM,MAAM,CAAC,yCAAyC,EAAE;QAC7D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AACF,MAAM,4BAA4B,GAAG,KAAK,EAAE,SAAiB,EAAE,gBAAwB,EAAE,QAAgB,EAAE,EAAE;IAC3G,OAAO,MAAM,MAAM,CAAwE,mCAAmC,EAAE;QAC9H,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,UAAU,EAAE,SAAS;YACrB,iBAAiB,EAAE,gBAAgB;YACnC,SAAS,EAAE,QAAQ;SACpB;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AACF,MAAM,yBAAyB,GAAG,KAAK,EAAE,gBAAwB,EAAE,WAAmB,EAAE,EAAE;IACxF,OAAO,MAAM,MAAM,CAAsB,2CAA2C,gBAAgB,YAAY,WAAW,YAAY,CAAC,CAAC;AAC3I,CAAC,CAAC;AACF,MAAM,mBAAmB,GAAG,KAAK,EAAE,WAAmB,EAAE,QAAgB,EAAE,QAA6B,EAAE,EAAE;IACzG,OAAO,MAAM,MAAM,CAAC,sCAAsC,EAAE;QAC1D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,YAAY,EAAE,WAAW;YACzB,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,QAAQ;SACpB;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AACF,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;IAC5C,OAAO,MAAM,MAAM,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACvD,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AACF,MAAM,2BAA2B,GAAG,KAAK,EAAE,gBAAwB,EAAE,QAAgB,EAAE,EAAE;IACvF,OAAO,MAAM,MAAM,CAAC,2CAA2C,gBAAgB,gBAAgB,EAAE;QAC/F,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,SAAS,EAAE,QAAQ;SACpB;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,KAAK,EAAE,EAAU,EAAE,QAAgB,EAAE,gBAAwB,EAAE,KAAc,EAAE,EAAE;IAC5G,OAAO,MAAM,MAAM,CAAC,2DAA2D,EAAE;QAC/E,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,UAAU,EAAE,EAAE;YACd,iBAAiB,EAAE,gBAAgB;SACpC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,gBAAwB,EAAE,QAAgB,EAAE,EAAE;IAC9E,OAAO,MAAM,MAAM,CAAqB,2CAA2C,gBAAgB,aAAa,QAAQ,EAAE,CAAC,CAAC;AAC9H,CAAC,CAAC;AACF,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,4BAA4B,EAC5B,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,EACnB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generates a random UUID v4
3
+ * @returns A random UUID string
4
+ */
5
+ declare const generateUUID: () => string;
6
+ export { generateUUID };
@@ -0,0 +1 @@
1
+ const generateUUID=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(x){const e=16*Math.random()|0;return("x"===x?e:3&e|8).toString(16)});export{generateUUID};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../../src/utils/uuid.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,YAAY,GAAG,GAAW,EAAE;IAChC,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;QACxE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,OAAO,EAAC,YAAY,EAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { WidgetOptions } from "./types/app.js";
2
+ import { Chatbot } from "./services/chatbot/chatbot.js";
3
+ import { CustomerData } from "./services/user/customer-data.js";
4
+ import { VoiceChat } from "./services/voice-chat/model.js";
5
+ import { Chat } from "./services/chat/model.js";
6
+ declare class Widget {
7
+ container?: HTMLDivElement;
8
+ publicKey: string;
9
+ chatbot?: Chatbot;
10
+ customerData: CustomerData;
11
+ chat: Chat;
12
+ options: Partial<WidgetOptions>;
13
+ openedCount: number;
14
+ version: string;
15
+ isInitialized: boolean;
16
+ isOpen: boolean;
17
+ voiceChat?: VoiceChat;
18
+ constructor(publicKey: string, options?: Partial<WidgetOptions>);
19
+ init(): Promise<void>;
20
+ onOpen(): Promise<void>;
21
+ onClose(): void;
22
+ /**
23
+ * Update user data with new values
24
+ * @param newUserData - Object containing new user data to merge
25
+ */
26
+ updateUserData(newUserData: Record<string, any>): Promise<void>;
27
+ get conversation(): import("../dist/src/models/conversation.js").Conversation;
28
+ }
29
+ export type { Widget };
30
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,OAAO,EAAC,MAAM,+BAA+B,CAAC;AAItD,OAAO,EAAC,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAG9D,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,IAAI,EAAC,MAAM,0BAA0B,CAAC;AAE9C,cAAM,MAAM;IACV,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;IAEX,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAM;IACrC,WAAW,EAAE,MAAM,CAAK;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAS;IAC/B,MAAM,EAAE,OAAO,CAAS;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;gBAEV,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAgBzD,IAAI;IAsCJ,MAAM;IAkBZ,OAAO;IAIP;;;OAGG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAGrD,IAAI,YAAY,8DAEf;CACF;AAKD,YAAY,EAAC,MAAM,EAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ declare const getEnvironment: () => any;
2
+ declare const isDev: boolean;
3
+ declare const isProd: boolean;
4
+ declare const BASE_API_URL: string;
5
+ declare const BASE_WEBSOCKET_URL: string;
6
+ declare const VERSION = "0.51";
7
+ declare const BASE_STORAGE_URL = "https://modochats.s3.ir-thr-at1.arvanstorage.ir";
8
+ declare const NEW_MESSAGE_AUDIO_URL = "https://modochats.s3.ir-thr-at1.arvanstorage.ir/new-message.mp3";
9
+ export { BASE_API_URL, BASE_WEBSOCKET_URL, VERSION, isDev, isProd, getEnvironment, NEW_MESSAGE_AUDIO_URL, BASE_STORAGE_URL };
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,cAAc,WAYnB,CAAC;AACF,QAAA,MAAM,KAAK,SAA6B,CAAC;AACzC,QAAA,MAAM,MAAM,SAA8B,CAAC;AAC3C,QAAA,MAAM,YAAY,QAAwE,CAAC;AAC3F,QAAA,MAAM,kBAAkB,QAA0E,CAAC;AACnG,QAAA,MAAM,OAAO,SAAS,CAAC;AACvB,QAAA,MAAM,gBAAgB,oDAAoD,CAAC;AAC3E,QAAA,MAAM,qBAAqB,oEAAwC,CAAC;AACpE,OAAO,EAAC,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,qBAAqB,EAAE,gBAAgB,EAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const PhoneNumberRegex: RegExp;
2
+ export { PhoneNumberRegex };
3
+ //# sourceMappingURL=regex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex.d.ts","sourceRoot":"","sources":["../../../../src/constants/regex.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,gBAAgB,QAAsB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ export { Widget as ModoChat } from "./app.js";
2
+ export type { WidgetOptions, FetchPaginationRes } from "./types/app.js";
3
+ export { Chatbot } from "./services/chatbot/chatbot.js";
4
+ export { Conversation } from "./services/chat/conversation.js";
5
+ export { CustomerData } from "./services/user/customer-data.js";
6
+ export { VoiceChat } from "./services/voice-chat/model.js";
7
+ export { Chat } from "./services/chat/model.js";
8
+ export type { ConversationStatus, MessageType } from "./types/conversation.js";
9
+ export type { SocketMessage } from "./types/socket.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,IAAI,QAAQ,EAAC,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAC,aAAa,EAAE,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAGtE,OAAO,EAAC,OAAO,EAAC,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAC,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAC,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAG9D,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,IAAI,EAAC,MAAM,0BAA0B,CAAC;AAG9C,YAAY,EAAC,kBAAkB,EAAE,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAC7E,YAAY,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,24 @@
1
+ declare class Chatbot {
2
+ name: string;
3
+ image: string;
4
+ shortDescription: string;
5
+ starters: string[];
6
+ voiceChat: boolean;
7
+ createdAt: string;
8
+ updatedAt: string;
9
+ deletedAt: string | null;
10
+ uuid: string;
11
+ allowedHosts: string[];
12
+ id: number;
13
+ greetingMessage?: string;
14
+ uiConfig: {
15
+ primaryColor: string;
16
+ foregroundColor: string;
17
+ theme: "dark" | "light";
18
+ };
19
+ constructor(data: Record<string, any>);
20
+ showTooltip(): void;
21
+ hideTooltip(): void;
22
+ }
23
+ export { Chatbot };
24
+ //# sourceMappingURL=chatbot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../../../../src/models/chatbot.ts"],"names":[],"mappings":"AAAA,cAAM,OAAO;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAM;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE;QACR,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;KACzB,CAAC;gBACU,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAoBrC,WAAW;IAmBX,WAAW;CAOZ;AACD,OAAO,EAAC,OAAO,EAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { ConversationMessage } from "@modochats/chat-client";
2
+ declare class Conversation {
3
+ constructor();
4
+ get d(): import("@modochats/chat-client").Conversation | undefined;
5
+ addMessage(message: ConversationMessage, options?: {
6
+ incoming: boolean;
7
+ }): void;
8
+ clearContainerEl(): void;
9
+ addSystemMessage(message: string): void;
10
+ scrollToBottom(): void;
11
+ clear(): void;
12
+ onInit(): void;
13
+ setStatus(): void;
14
+ loadMessages(): Promise<void>;
15
+ addBadge(): void;
16
+ get unreadCount(): number;
17
+ hideBadge(): void;
18
+ hideTooltip(): void;
19
+ markAsRead(): Promise<void>;
20
+ get containerElement(): HTMLDivElement | null;
21
+ }
22
+ export { Conversation };
23
+ //# sourceMappingURL=conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../src/models/conversation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAE3D,cAAM,YAAY;;IAGhB,IAAI,CAAC,8DAEJ;IACD,UAAU,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAC;IAatE,gBAAgB;IAMhB,gBAAgB,CAAC,OAAO,EAAE,MAAM;IAehC,cAAc;IAOd,KAAK;IASL,MAAM;IAMN,SAAS;IAIH,YAAY;IAQlB,QAAQ;IAwBR,IAAI,WAAW,WAEd;IAED,SAAS;IAQT,WAAW;IAQL,UAAU;IAMhB,IAAI,gBAAgB,IAAI,cAAc,GAAG,IAAI,CAE5C;CACF;AACD,OAAO,EAAC,YAAY,EAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { Widget } from "#src/app.js";
2
+ declare class CustomerData {
3
+ private _uniqueId?;
4
+ private _userData?;
5
+ private widget;
6
+ phoneNumber?: string;
7
+ constructor(widget: Widget, userData?: Record<string, any>);
8
+ initializePhoneNumber(): void;
9
+ /**
10
+ * Initialize unique ID from localStorage or generate a new one
11
+ * Unique ID is independent of user key/data and is generated by ourselves
12
+ */
13
+ private initializeUniqueId;
14
+ /**
15
+ * Get the current unique ID
16
+ */
17
+ get uniqueId(): string;
18
+ /**
19
+ * Get the current user data
20
+ */
21
+ get userData(): Record<string, any>;
22
+ /**
23
+ * Update user data with new values
24
+ * @param newUserData - Object containing new user data to merge
25
+ */
26
+ updateUserData(newUserData?: Record<string, any>): Promise<void>;
27
+ hasSubmittedPhoneForm(): boolean;
28
+ savePhoneNumber(phoneNumber?: string): void;
29
+ fetchUpdate(): Promise<void>;
30
+ }
31
+ export { CustomerData };
32
+ //# sourceMappingURL=customer-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customer-data.d.ts","sourceRoot":"","sources":["../../../../src/models/customer-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAInC,cAAM,YAAY;IAChB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAC,CAAsB;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;gBAET,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAO1D,qBAAqB;IAOrB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAElC;IAED;;;OAGG;IACG,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtE,qBAAqB,IAAI,OAAO;IAIhC,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM;IAK9B,WAAW;CAGlB;AACD,OAAO,EAAC,YAAY,EAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { ConversationMessage } from "@modochats/chat-client";
2
+ type MessageRelatedUtil<T extends Array<any> = [], R = void> = (message: ConversationMessage, ...args: T) => R;
3
+ declare const initMessageElement: MessageRelatedUtil;
4
+ declare const addMessageElementListeners: MessageRelatedUtil;
5
+ declare const addMessageFeedbackListeners: MessageRelatedUtil;
6
+ declare const sendMessageFeedBack: MessageRelatedUtil<[liked: boolean]>;
7
+ declare const disableMessageFeedbackButtons: MessageRelatedUtil;
8
+ declare const addMessageRepliedToListener: MessageRelatedUtil;
9
+ declare const getMessageElement: MessageRelatedUtil<[], HTMLDivElement | undefined | null>;
10
+ declare const showMessageTooltip: MessageRelatedUtil;
11
+ declare const enableMessageFeedbackButtons: MessageRelatedUtil;
12
+ export { initMessageElement, addMessageElementListeners, addMessageFeedbackListeners, sendMessageFeedBack, disableMessageFeedbackButtons, addMessageRepliedToListener, getMessageElement, showMessageTooltip, enableMessageFeedbackButtons };
13
+ //# sourceMappingURL=message-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-utils.d.ts","sourceRoot":"","sources":["../../../../src/models/message-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAG3D,KAAK,kBAAkB,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;AAE/G,QAAA,MAAM,kBAAkB,EAAE,kBAkFzB,CAAC;AAEF,QAAA,MAAM,0BAA0B,EAAE,kBAOjC,CAAC;AAEF,QAAA,MAAM,2BAA2B,EAAE,kBAgBlC,CAAC;AAEF,QAAA,MAAM,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAiB7D,CAAC;AAEF,QAAA,MAAM,6BAA6B,EAAE,kBAcpC,CAAC;AAEF,QAAA,MAAM,2BAA2B,EAAE,kBAiBlC,CAAC;AAEF,QAAA,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI,CAGhF,CAAC;AAEF,QAAA,MAAM,kBAAkB,EAAE,kBAiBzB,CAAC;AAEF,QAAA,MAAM,4BAA4B,EAAE,kBAcnC,CAAC;AAEF,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,6BAA6B,EAC7B,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,4BAA4B,EAC7B,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { ConversationMessage } from "@modochats/chat-client";
2
+ declare class Conversation {
3
+ constructor();
4
+ get d(): import("@modochats/chat-client").Conversation | undefined;
5
+ addMessage(message: ConversationMessage, options?: {
6
+ incoming: boolean;
7
+ }): void;
8
+ clearContainerEl(): void;
9
+ addSystemMessage(message: string): void;
10
+ scrollToBottom(): void;
11
+ clear(): void;
12
+ onInit(): void;
13
+ setStatus(): void;
14
+ loadMessages(): Promise<void>;
15
+ addBadge(): void;
16
+ get unreadCount(): number;
17
+ hideBadge(): void;
18
+ hideTooltip(): void;
19
+ markAsRead(): Promise<void>;
20
+ get containerElement(): HTMLDivElement | null;
21
+ }
22
+ export { Conversation };
23
+ //# sourceMappingURL=conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../../src/services/chat/conversation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAE3D,cAAM,YAAY;;IAGhB,IAAI,CAAC,8DAEJ;IACD,UAAU,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAC;IAatE,gBAAgB;IAMhB,gBAAgB,CAAC,OAAO,EAAE,MAAM;IAehC,cAAc;IAOd,KAAK;IASL,MAAM;IAMN,SAAS;IAIH,YAAY;IAQlB,QAAQ;IAwBR,IAAI,WAAW,WAEd;IAED,SAAS;IAQT,WAAW;IAQL,UAAU;IAMhB,IAAI,gBAAgB,IAAI,cAAc,GAAG,IAAI,CAE5C;CACF;AACD,OAAO,EAAC,YAAY,EAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { ConversationMessage } from "@modochats/chat-client";
2
+ type MessageRelatedUtil<T extends Array<any> = [], R = void> = (message: ConversationMessage, ...args: T) => R;
3
+ declare const initMessageElement: MessageRelatedUtil;
4
+ declare const addMessageElementListeners: MessageRelatedUtil;
5
+ declare const addMessageFeedbackListeners: MessageRelatedUtil;
6
+ declare const sendMessageFeedBack: MessageRelatedUtil<[liked: boolean]>;
7
+ declare const disableMessageFeedbackButtons: MessageRelatedUtil;
8
+ declare const addMessageRepliedToListener: MessageRelatedUtil;
9
+ declare const getMessageElement: MessageRelatedUtil<[], HTMLDivElement | undefined | null>;
10
+ declare const showMessageTooltip: MessageRelatedUtil;
11
+ declare const enableMessageFeedbackButtons: MessageRelatedUtil;
12
+ export { initMessageElement, addMessageElementListeners, addMessageFeedbackListeners, sendMessageFeedBack, disableMessageFeedbackButtons, addMessageRepliedToListener, getMessageElement, showMessageTooltip, enableMessageFeedbackButtons };
13
+ //# sourceMappingURL=message-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-utils.d.ts","sourceRoot":"","sources":["../../../../../src/services/chat/message-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAG3D,KAAK,kBAAkB,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;AAE/G,QAAA,MAAM,kBAAkB,EAAE,kBAkFzB,CAAC;AAEF,QAAA,MAAM,0BAA0B,EAAE,kBAOjC,CAAC;AAEF,QAAA,MAAM,2BAA2B,EAAE,kBAgBlC,CAAC;AAEF,QAAA,MAAM,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAiB7D,CAAC;AAEF,QAAA,MAAM,6BAA6B,EAAE,kBAcpC,CAAC;AAEF,QAAA,MAAM,2BAA2B,EAAE,kBAiBlC,CAAC;AAEF,QAAA,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI,CAGhF,CAAC;AAEF,QAAA,MAAM,kBAAkB,EAAE,kBAiBzB,CAAC;AAEF,QAAA,MAAM,4BAA4B,EAAE,kBAcnC,CAAC;AAEF,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,6BAA6B,EAC7B,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,4BAA4B,EAC7B,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Conversation } from "#src/models/conversation.js";
2
+ import { ChatClient, ConversationMessage } from "@modochats/chat-client";
3
+ declare class Chat {
4
+ private instance?;
5
+ fileMaster: CFileMaster;
6
+ replyMaster: CReplyMaster;
7
+ conversation: Conversation;
8
+ constructor();
9
+ initInstance(): void;
10
+ get socket(): import("@modochats/chat-client").Socket | undefined;
11
+ get conversationD(): import("@modochats/chat-client").Conversation | undefined;
12
+ clear(): void;
13
+ sendMessage(...args: Parameters<ChatClient["sendMessage"]>): Promise<void> | undefined;
14
+ }
15
+ declare class CFileMaster {
16
+ file?: File;
17
+ clearFile(): void;
18
+ setFile(file: File): void;
19
+ toggleUiState(): void;
20
+ }
21
+ declare class CReplyMaster {
22
+ replyingTo?: ConversationMessage;
23
+ setReply(message: ConversationMessage): void;
24
+ clearReply(): void;
25
+ private updateReplyUI;
26
+ }
27
+ export { Chat };
28
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../../src/services/chat/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAC,UAAU,EAAE,mBAAmB,EAAY,MAAM,wBAAwB,CAAC;AAGlF,cAAM,IAAI;IACR,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,YAAY,CAAC;IAC1B,YAAY,EAAE,YAAY,CAAC;;IAM3B,YAAY;IA+BZ,IAAI,MAAM,wDAET;IAED,IAAI,aAAa,8DAEhB;IACD,KAAK;IAKL,WAAW,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;CAG3D;AACD,cAAM,WAAW;IACf,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,SAAS;IAIT,OAAO,CAAC,IAAI,EAAE,IAAI;IAIlB,aAAa;CAkBd;AAED,cAAM,YAAY;IAChB,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAEjC,QAAQ,CAAC,OAAO,EAAE,mBAAmB;IAKrC,UAAU;IAMV,OAAO,CAAC,aAAa;CA+BtB;AACD,OAAO,EAAC,IAAI,EAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ declare class Chatbot {
2
+ name: string;
3
+ image: string;
4
+ shortDescription: string;
5
+ starters: string[];
6
+ voiceChat: boolean;
7
+ createdAt: string;
8
+ updatedAt: string;
9
+ deletedAt: string | null;
10
+ uuid: string;
11
+ allowedHosts: string[];
12
+ id: number;
13
+ greetingMessage?: string;
14
+ uiConfig: {
15
+ primaryColor: string;
16
+ foregroundColor: string;
17
+ theme: "dark" | "light";
18
+ };
19
+ constructor(data: Record<string, any>);
20
+ showTooltip(): void;
21
+ hideTooltip(): void;
22
+ }
23
+ export { Chatbot };
24
+ //# sourceMappingURL=chatbot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../../../../../src/services/chatbot/chatbot.ts"],"names":[],"mappings":"AAAA,cAAM,OAAO;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAM;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE;QACR,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;KACzB,CAAC;gBACU,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAoBrC,WAAW;IAmBX,WAAW;CAOZ;AACD,OAAO,EAAC,OAAO,EAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Widget } from "#src/app.js";
2
+ declare const checkIfHostIsAllowed: (widget: Widget) => boolean | undefined;
3
+ export { checkIfHostIsAllowed };
4
+ //# sourceMappingURL=checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../../src/services/checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAGnC,QAAA,MAAM,oBAAoB,GAAI,QAAQ,MAAM,wBAI3C,CAAC;AAEF,OAAO,EAAC,oBAAoB,EAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare const registerListeners: (widgetContainer: HTMLDivElement) => void;
2
+ declare const registerNewConversationListener: (widgetContainer: HTMLDivElement) => void;
3
+ export { registerListeners, registerNewConversationListener };
4
+ //# sourceMappingURL=adders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adders.d.ts","sourceRoot":"","sources":["../../../../../src/services/listeners/adders.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,iBAAiB,GAAI,iBAAiB,cAAc,SAmCzD,CAAC;AAoDF,QAAA,MAAM,+BAA+B,GAAI,iBAAiB,cAAc,SASvE,CAAC;AA8EF,OAAO,EAAC,iBAAiB,EAAE,+BAA+B,EAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare const sendMessage: (message: string) => Promise<void>;
2
+ declare const submitPhoneNumberForm: (phoneNumber: string) => void;
3
+ export { sendMessage, submitPhoneNumberForm };
4
+ //# sourceMappingURL=fn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fn.d.ts","sourceRoot":"","sources":["../../../../../src/services/listeners/fn.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,WAAW,GAAU,SAAS,MAAM,kBAsBzC,CAAC;AAqBF,QAAA,MAAM,qBAAqB,GAAI,aAAa,MAAM,SA6BjD,CAAC;AAEF,OAAO,EAAC,WAAW,EAAE,qBAAqB,EAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const onSocketConnectionUpdate: (connected: boolean) => void;
2
+ export { onSocketConnectionUpdate };
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/services/socket/utils.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,wBAAwB,GAAI,WAAW,OAAO,SAOnD,CAAC;AACF,OAAO,EAAC,wBAAwB,EAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ConversationStatus } from "#src/types/conversation.js";
2
+ declare function switchToConversationLayout(): void;
3
+ declare function switchToStarterLayout(): void;
4
+ declare function setConversationType(type: keyof typeof ConversationStatus): void;
5
+ declare function loadStarters(): void;
6
+ declare function updateChatToggleImage(): void;
7
+ declare function updateChatTitle(): void;
8
+ declare function applyModoOptions(): void;
9
+ declare function applyPositionOption(container: HTMLDivElement, position: "left" | "right"): void;
10
+ declare function applyThemeOption(container: HTMLDivElement, theme: "dark" | "light"): void;
11
+ declare function applyPrimaryColorOption(container: HTMLDivElement, primaryColor: string): void;
12
+ declare function loadCss(): Promise<unknown>;
13
+ export { switchToConversationLayout, switchToStarterLayout, setConversationType, loadStarters, loadCss, updateChatToggleImage, updateChatTitle, applyModoOptions, applyPositionOption, applyThemeOption, applyPrimaryColorOption };
14
+ //# sourceMappingURL=fn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fn.d.ts","sourceRoot":"","sources":["../../../../../src/services/ui/fn.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAE9D,iBAAS,0BAA0B,SAIlC;AACD,iBAAS,qBAAqB,SAK7B;AAED,iBAAS,mBAAmB,CAAC,IAAI,EAAE,MAAM,OAAO,kBAAkB,QAgBjE;AAED,iBAAS,YAAY,SAsBpB;AAED,iBAAS,qBAAqB,SA0C7B;AAED,iBAAS,eAAe,SAiBvB;AAED,iBAAS,gBAAgB,SAkBxB;AAED,iBAAS,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,QA2BjF;AAED,iBAAS,gBAAgB,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,QAW3E;AAED,iBAAS,uBAAuB,CAAC,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,QAe/E;AAgCD,iBAAe,OAAO,qBAWrB;AACD,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,OAAO,EACP,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACxB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Widget } from "#src/app.js";
2
+ declare const createChatContainer: (widget: Widget) => void;
3
+ export { createChatContainer };
4
+ //# sourceMappingURL=html.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../../../../src/services/ui/html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAGnC,QAAA,MAAM,mBAAmB,GAAI,QAAQ,MAAM,SA2L1C,CAAC;AACF,OAAO,EAAC,mBAAmB,EAAC,CAAC"}