@modochats/widget 0.1.1 → 0.1.3

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/dist/types/src/app.d.ts +30 -0
  2. package/dist/types/src/app.d.ts.map +1 -0
  3. package/dist/types/src/constants/index.d.ts +10 -0
  4. package/dist/types/src/constants/index.d.ts.map +1 -0
  5. package/dist/types/src/constants/regex.d.ts +3 -0
  6. package/dist/types/src/constants/regex.d.ts.map +1 -0
  7. package/dist/types/src/index.d.ts +10 -0
  8. package/dist/types/src/index.d.ts.map +1 -0
  9. package/dist/types/src/models/chatbot.d.ts +24 -0
  10. package/dist/types/src/models/chatbot.d.ts.map +1 -0
  11. package/dist/types/src/models/conversation.d.ts +23 -0
  12. package/dist/types/src/models/conversation.d.ts.map +1 -0
  13. package/dist/types/src/models/customer-data.d.ts +32 -0
  14. package/dist/types/src/models/customer-data.d.ts.map +1 -0
  15. package/dist/types/src/models/message-utils.d.ts +13 -0
  16. package/dist/types/src/models/message-utils.d.ts.map +1 -0
  17. package/dist/types/src/services/chat/conversation.d.ts +23 -0
  18. package/dist/types/src/services/chat/conversation.d.ts.map +1 -0
  19. package/dist/types/src/services/chat/message-utils.d.ts +13 -0
  20. package/dist/types/src/services/chat/message-utils.d.ts.map +1 -0
  21. package/dist/types/src/services/chat/model.d.ts +28 -0
  22. package/dist/types/src/services/chat/model.d.ts.map +1 -0
  23. package/dist/types/src/services/chatbot/chatbot.d.ts +24 -0
  24. package/dist/types/src/services/chatbot/chatbot.d.ts.map +1 -0
  25. package/dist/types/src/services/checker.d.ts +4 -0
  26. package/dist/types/src/services/checker.d.ts.map +1 -0
  27. package/dist/types/src/services/listeners/adders.d.ts +4 -0
  28. package/dist/types/src/services/listeners/adders.d.ts.map +1 -0
  29. package/dist/types/src/services/listeners/fn.d.ts +4 -0
  30. package/dist/types/src/services/listeners/fn.d.ts.map +1 -0
  31. package/dist/types/src/services/socket/utils.d.ts +3 -0
  32. package/dist/types/src/services/socket/utils.d.ts.map +1 -0
  33. package/dist/types/src/services/ui/fn.d.ts +14 -0
  34. package/dist/types/src/services/ui/fn.d.ts.map +1 -0
  35. package/dist/types/src/services/ui/html.d.ts +4 -0
  36. package/dist/types/src/services/ui/html.d.ts.map +1 -0
  37. package/dist/types/src/services/user/customer-data.d.ts +32 -0
  38. package/dist/types/src/services/user/customer-data.d.ts.map +1 -0
  39. package/dist/types/src/services/voice-chat/model.d.ts +13 -0
  40. package/dist/types/src/services/voice-chat/model.d.ts.map +1 -0
  41. package/dist/types/src/services/voice-chat/utils.d.ts +10 -0
  42. package/dist/types/src/services/voice-chat/utils.d.ts.map +1 -0
  43. package/dist/types/src/tools/fetch.d.ts +3 -0
  44. package/dist/types/src/tools/fetch.d.ts.map +1 -0
  45. package/dist/types/src/types/app.d.ts +18 -0
  46. package/dist/types/src/types/app.d.ts.map +1 -0
  47. package/dist/types/src/types/conversation.d.ts +15 -0
  48. package/dist/types/src/types/conversation.d.ts.map +1 -0
  49. package/dist/types/src/types/socket.d.ts +7 -0
  50. package/dist/types/src/types/socket.d.ts.map +1 -0
  51. package/dist/types/src/types/window.d.ts +10 -0
  52. package/dist/types/src/types/window.d.ts.map +1 -0
  53. package/dist/types/src/utils/audio.d.ts +4 -0
  54. package/dist/types/src/utils/audio.d.ts.map +1 -0
  55. package/dist/types/src/utils/browser.d.ts +3 -0
  56. package/dist/types/src/utils/browser.d.ts.map +1 -0
  57. package/dist/types/src/utils/fetch.d.ts +19 -0
  58. package/dist/types/src/utils/fetch.d.ts.map +1 -0
  59. package/dist/types/src/utils/uuid.d.ts +7 -0
  60. package/dist/types/src/utils/uuid.d.ts.map +1 -0
  61. package/package.json +1 -1
  62. package/src/app.ts +117 -0
  63. package/src/constants/index.ts +21 -0
  64. package/src/constants/regex.ts +2 -0
  65. package/src/index.ts +16 -0
  66. package/src/services/chat/conversation.ts +135 -0
  67. package/src/services/chat/message-utils.ts +221 -0
  68. package/src/services/chat/model.ts +139 -0
  69. package/src/services/chatbot/chatbot.ts +66 -0
  70. package/src/services/checker.ts +10 -0
  71. package/src/services/listeners/adders.ts +178 -0
  72. package/src/services/listeners/fn.ts +77 -0
  73. package/src/services/socket/utils.ts +9 -0
  74. package/src/services/ui/fn.ts +254 -0
  75. package/src/services/ui/html.ts +192 -0
  76. package/src/services/user/customer-data.ts +78 -0
  77. package/src/services/voice-chat/model.ts +79 -0
  78. package/src/services/voice-chat/utils.ts +137 -0
  79. package/src/tools/fetch.ts +7 -0
  80. package/src/types/app.ts +17 -0
  81. package/src/types/conversation.ts +14 -0
  82. package/src/types/socket.ts +7 -0
  83. package/src/types/window.ts +12 -0
  84. package/src/utils/audio.ts +67 -0
  85. package/src/utils/browser.ts +4 -0
  86. package/src/utils/fetch.ts +98 -0
  87. package/src/utils/uuid.ts +13 -0
  88. package/.yarn/install-state.gz +0 -0
  89. package/cdn-dist/README.md +0 -42
  90. package/cdn-dist/modo-web-component.js +0 -1344
  91. package/cdn-dist/modo-web-component.min.js +0 -1
  92. package/cdn-dist/package.json +0 -27
  93. package/rollup.config.js +0 -18
  94. package/rollup.dev.config.js +0 -22
  95. package/scripts/create-umd-bundle.js +0 -213
  96. package/scripts/terser-minify.js +0 -112
  97. package/temp/app.dev.js +0 -5101
  98. package/temp/app.dev.js.map +0 -1
  99. package/temp/app.js +0 -3570
  100. package/temp/audio/new-message.mp3 +0 -0
  101. package/temp/audio/on-hold.mp3 +0 -0
  102. package/temp/audio-processor.js +0 -261
  103. package/temp/css/index.css +0 -2283
  104. package/temp/dev.html +0 -87
  105. package/temp/index.html +0 -16
@@ -0,0 +1,98 @@
1
+ import {$fetch} from "#src/tools/fetch.js";
2
+ import {FetchPaginationRes} from "#src/types/app.js";
3
+
4
+ const fetchChatbot = async (publicKey: string) => {
5
+ return await $fetch<Record<string, any>>(`/v1/chatbot/public/${publicKey}`);
6
+ };
7
+
8
+ const fetchSendMessage = async (
9
+ chatbotId: number,
10
+ content: string,
11
+ uniqueId: string,
12
+ conversationUuid?: string,
13
+ phoneNumber?: string,
14
+ options?: {
15
+ file?: File;
16
+ replyTo?: number;
17
+ }
18
+ ) => {
19
+ const formData = new FormData();
20
+ formData.append("chatbot_id", chatbotId.toString());
21
+ formData.append("content", content);
22
+ formData.append("message_type", "0");
23
+ formData.append("unique_id", uniqueId);
24
+ if (conversationUuid) formData.append("conversation_id", conversationUuid);
25
+ formData.append("url", window?.location?.href || "");
26
+ formData.append("title", document?.title || "");
27
+ if (phoneNumber && phoneNumber !== "no phone number") formData.append("phone_number", phoneNumber);
28
+ if (options?.file) formData.append("file", options.file);
29
+ if (options?.replyTo) formData.append("response_to", options.replyTo.toString());
30
+
31
+ return await $fetch("/v2/conversations/website/send-message/", {
32
+ method: "POST",
33
+ body: formData
34
+ });
35
+ };
36
+ const fetchGetAccessTokenForSocket = async (chatbotId: string, conversationUuid: string, uniqueId: string) => {
37
+ return await $fetch<{access_token: string; conversation_uuid: string; expires_in: number}>("/v2/conversations/websocket/auth/", {
38
+ method: "POST",
39
+ body: {
40
+ chatbot_id: chatbotId,
41
+ conversation_uuid: conversationUuid,
42
+ unique_id: uniqueId
43
+ }
44
+ });
45
+ };
46
+ const fetchConversationMessages = async (conversationUuid: string, chatbotUuid: string) => {
47
+ return await $fetch<Record<string, any>>(`/v2/conversations/website/conversations/${conversationUuid}/chatbot/${chatbotUuid}/messages/`);
48
+ };
49
+ const fetchUpdateUserData = async (chatbotUuid: string, uniqueId: string, userData: Record<string, any>) => {
50
+ return await $fetch("/v1/chatbot/customners/set-user-data", {
51
+ method: "POST",
52
+ body: {
53
+ chatbot_uuid: chatbotUuid,
54
+ unique_id: uniqueId,
55
+ user_data: userData
56
+ }
57
+ });
58
+ };
59
+ const fetchReadMessage = async (id: number) => {
60
+ return await $fetch(`/v2/conversations/messages/${id}/`, {
61
+ method: "POST"
62
+ });
63
+ };
64
+ const fetchMarkConversationAsRead = async (conversationUuid: string, uniqueId: string) => {
65
+ return await $fetch(`/v2/conversations/website/conversations/${conversationUuid}/messages/seen`, {
66
+ method: "POST",
67
+ body: {
68
+ unique_id: uniqueId
69
+ }
70
+ });
71
+ };
72
+
73
+ const fetchMessageFeedback = async (id: number, uniqueId: string, conversationUuid: string, liked: boolean) => {
74
+ return await $fetch(`/v2/conversations/website/conversations/messages/feedback`, {
75
+ method: "POST",
76
+ body: {
77
+ unique_id: uniqueId,
78
+ feedback: liked ? 1 : 0,
79
+ message_id: id,
80
+ conversation_uuid: conversationUuid
81
+ }
82
+ });
83
+ };
84
+
85
+ const fetchConversations = async (conversationUuid: string, uniqueId: string) => {
86
+ return await $fetch<FetchPaginationRes>(`/v2/conversations/website/conversations/${conversationUuid}/customer/${uniqueId}`);
87
+ };
88
+ export {
89
+ fetchChatbot,
90
+ fetchSendMessage,
91
+ fetchGetAccessTokenForSocket,
92
+ fetchConversationMessages,
93
+ fetchUpdateUserData,
94
+ fetchReadMessage,
95
+ fetchMarkConversationAsRead,
96
+ fetchMessageFeedback,
97
+ fetchConversations
98
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Generates a random UUID v4
3
+ * @returns A random UUID string
4
+ */
5
+ const generateUUID = (): string => {
6
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
7
+ const r = (Math.random() * 16) | 0;
8
+ const v = c === "x" ? r : (r & 0x3) | 0x8;
9
+ return v.toString(16);
10
+ });
11
+ };
12
+
13
+ export {generateUUID};
Binary file
@@ -1,42 +0,0 @@
1
- # Modo Web Component
2
-
3
- A lightweight web component library.
4
-
5
- ## CDN Usage
6
-
7
- ### jsDelivr
8
- ```html
9
- <script src="https://cdn.jsdelivr.net/gh/your-username/modo-web-component@main/cdn-dist/modo-web-component.min.js"></script>
10
- ```
11
-
12
- ### GitHub Raw
13
- ```html
14
- <script src="https://raw.githubusercontent.com/your-username/modo-web-component/main/cdn-dist/modo-web-component.min.js"></script>
15
- ```
16
-
17
- ## Usage
18
-
19
- ```javascript
20
- // Initialize the chat widget
21
- const chat = new ModoChat('your-public-key', {
22
- position: 'right', // 'left' or 'right'
23
- theme: 'dark', // 'dark' or 'light'
24
- primaryColor: '#667eea',
25
- title: 'پشتیبانی چت'
26
- });
27
- ```
28
-
29
- ## Features
30
-
31
- - 🌙 Dark/Light theme support
32
- - 🌐 RTL (Persian/Farsi) language support
33
- - 📱 Mobile responsive design
34
- - 💬 Real-time chat functionality
35
- - 🔗 WebSocket connection status
36
- - 📝 Markdown message support
37
-
38
- ## Files
39
-
40
- - `modo-web-component.js` - Development version
41
- - `modo-web-component.min.js` - Production version (minified)
42
- - `dist/` - Full distribution files