cmcts-c-agent-embedding 1.0.21 → 1.0.22-vpcp

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 (99) hide show
  1. package/.env +2 -36
  2. package/.env.example +12 -6
  3. package/AGENTS.md +166 -0
  4. package/README.md +349 -349
  5. package/dist/components/Badge.d.ts.map +1 -1
  6. package/dist/components/Bot.d.ts +6 -16
  7. package/dist/components/Bot.d.ts.map +1 -1
  8. package/dist/components/Toast.d.ts +10 -0
  9. package/dist/components/Toast.d.ts.map +1 -0
  10. package/dist/components/avatars/DefaultAvatar.d.ts.map +1 -1
  11. package/dist/components/bubbles/AgentReasoningBubble.d.ts +0 -2
  12. package/dist/components/bubbles/AgentReasoningBubble.d.ts.map +1 -1
  13. package/dist/components/bubbles/BotBubble.d.ts +6 -0
  14. package/dist/components/bubbles/BotBubble.d.ts.map +1 -1
  15. package/dist/components/bubbles/GuestBubble.d.ts.map +1 -1
  16. package/dist/components/bubbles/LeadCaptureBubble.d.ts.map +1 -1
  17. package/dist/components/bubbles/LoadingBubble.d.ts.map +1 -1
  18. package/dist/components/bubbles/SourceBubble.d.ts.map +1 -1
  19. package/dist/components/buttons/SendButton.d.ts.map +1 -1
  20. package/dist/components/icons/CmcIcon.d.ts +3 -0
  21. package/dist/components/icons/CmcIcon.d.ts.map +1 -0
  22. package/dist/components/icons/ResetBtn.d.ts +3 -0
  23. package/dist/components/icons/ResetBtn.d.ts.map +1 -0
  24. package/dist/components/icons/SendIconOff.d.ts +3 -0
  25. package/dist/components/icons/SendIconOff.d.ts.map +1 -0
  26. package/dist/components/icons/SendIconOn.d.ts +3 -0
  27. package/dist/components/icons/SendIconOn.d.ts.map +1 -0
  28. package/dist/components/icons/index.d.ts +1 -1
  29. package/dist/components/icons/index.d.ts.map +1 -1
  30. package/dist/components/image/PreviewImage.d.ts +5 -0
  31. package/dist/components/image/PreviewImage.d.ts.map +1 -0
  32. package/dist/components/inputs/textInput/components/ShortTextInput.d.ts +3 -0
  33. package/dist/components/inputs/textInput/components/ShortTextInput.d.ts.map +1 -1
  34. package/dist/components/inputs/textInput/components/TextInput.d.ts +5 -5
  35. package/dist/components/inputs/textInput/components/TextInput.d.ts.map +1 -1
  36. package/dist/constants.d.ts.map +1 -1
  37. package/dist/features/bubble/components/Bubble.d.ts.map +1 -1
  38. package/dist/features/bubble/components/BubbleButton.d.ts.map +1 -1
  39. package/dist/features/bubble/types.d.ts +1 -0
  40. package/dist/features/bubble/types.d.ts.map +1 -1
  41. package/dist/features/full/components/Full.d.ts.map +1 -1
  42. package/dist/features/popup/components/DisclaimerPopup.d.ts.map +1 -1
  43. package/dist/features/popup/components/Popup.d.ts.map +1 -1
  44. package/dist/queries/sendMessageQuery.d.ts +10 -15
  45. package/dist/queries/sendMessageQuery.d.ts.map +1 -1
  46. package/dist/utils/isMobileSignal.d.ts +3 -1
  47. package/dist/utils/isMobileSignal.d.ts.map +1 -1
  48. package/dist/utils/security.d.ts +50 -0
  49. package/dist/utils/security.d.ts.map +1 -0
  50. package/dist/utils/transcriptApi.d.ts +8 -0
  51. package/dist/utils/transcriptApi.d.ts.map +1 -0
  52. package/dist/utils/ultimateJsonParser.d.ts +2 -0
  53. package/dist/utils/ultimateJsonParser.d.ts.map +1 -0
  54. package/dist/web.d.ts +2 -0
  55. package/dist/web.d.ts.map +1 -1
  56. package/dist/web.js +1 -1
  57. package/dist/window.d.ts +1 -0
  58. package/dist/window.d.ts.map +1 -1
  59. package/package.json +20 -14
  60. package/public/Chat_Mobile_Header_BG.png +0 -0
  61. package/public/HuyHieuBoCongAn.png +0 -0
  62. package/public/Logo_VNeID.png +0 -0
  63. package/public/People_TroLy.png +0 -0
  64. package/public/People_TroLy_Icon.png +0 -0
  65. package/public/TroLyAI_Icon.png +0 -0
  66. package/public/icon_bot.png +0 -0
  67. package/public/index.html +27 -138
  68. package/public/logo.png +0 -0
  69. package/public/robots.txt +16 -0
  70. package/public/sitemap.xml +9 -0
  71. package/server.js +523 -401
  72. package/.husky/pre-commit +0 -18
  73. package/.idea/Flowise-share-chatbox.iml +0 -13
  74. package/.idea/codeStyles/Project.xml +0 -60
  75. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  76. package/.idea/inspectionProfiles/Project_Default.xml +0 -16
  77. package/.idea/modules.xml +0 -9
  78. package/.idea/prettier.xml +0 -6
  79. package/.idea/vcs.xml +0 -7
  80. package/a.json +0 -57
  81. package/bun.lockb +0 -0
  82. package/dist/BubbleChat.d.ts +0 -13
  83. package/dist/BubbleChat.d.ts.map +0 -1
  84. package/dist/FullPageChat.d.ts +0 -18
  85. package/dist/FullPageChat.d.ts.map +0 -1
  86. package/dist/components/ImageUploadButton.d.ts +0 -11
  87. package/dist/components/ImageUploadButton.d.ts.map +0 -1
  88. package/dist/components/RecordAudioButton.d.ts +0 -11
  89. package/dist/components/RecordAudioButton.d.ts.map +0 -1
  90. package/dist/components/SendButton.d.ts +0 -12
  91. package/dist/components/SendButton.d.ts.map +0 -1
  92. package/dist/components/buttons/AttachmentUploadButton.d.ts +0 -11
  93. package/dist/components/buttons/AttachmentUploadButton.d.ts.map +0 -1
  94. package/dist/components/buttons/ImageUploadButton.d.ts +0 -11
  95. package/dist/components/buttons/ImageUploadButton.d.ts.map +0 -1
  96. package/dist/components/icons/SendIcon.d.ts +0 -3
  97. package/dist/components/icons/SendIcon.d.ts.map +0 -1
  98. package/dist/index.js +0 -1
  99. package/test.html +0 -17
package/dist/window.d.ts CHANGED
@@ -9,6 +9,7 @@ type BotProps = {
9
9
  theme?: BubbleTheme;
10
10
  chatwootUrl?: string;
11
11
  roomIds?: Record<string, string>;
12
+ isUseFAQ?: undefined;
12
13
  };
13
14
  export declare const initFull: (props: BotProps & {
14
15
  id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../src/window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,KAAK,QAAQ,GAAG;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAIF,eAAO,MAAM,QAAQ,UAAW,QAAQ,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,SAMzD,CAAC;AAEF,eAAO,MAAM,IAAI,UAAW,QAAQ,SAMnC,CAAC;AAEF,eAAO,MAAM,OAAO,YAEnB,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,OAAO,EAAE,OAAO,OAAO,CAAC;CACzB,CAAC;AAQF,eAAO,MAAM,YAAY;sBAhCO,QAAQ,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE;kBAQ9B,QAAQ;;CA4BlC,CAAC;AAEH,eAAO,MAAM,qBAAqB,QAAS,OAAO,SAGjD,CAAC"}
1
+ {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../src/window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,KAAK,QAAQ,GAAG;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;CAEtB,CAAC;AAIF,eAAO,MAAM,QAAQ,UAAW,QAAQ,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,SAgCzD,CAAC;AAEF,eAAO,MAAM,IAAI,UAAW,QAAQ,SAgCnC,CAAC;AAEF,eAAO,MAAM,OAAO,YAEnB,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,OAAO,EAAE,OAAO,OAAO,CAAC;CACzB,CAAC;AAQF,eAAO,MAAM,YAAY;sBApFO,QAAQ,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE;kBAkC9B,QAAQ;;CAsDlC,CAAC;AAEH,eAAO,MAAM,qBAAqB,QAAS,OAAO,SAGjD,CAAC"}
package/package.json CHANGED
@@ -1,43 +1,45 @@
1
1
  {
2
2
  "name": "cmcts-c-agent-embedding",
3
- "version": "1.0.21",
4
- "description": "Javascript library to display flowise chatbot on your website",
3
+ "version": "1.0.22-vpcp",
4
+ "description": "CAgent embedding Popup UI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "scripts": {
9
9
  "dev": "cross-env NODE_ENV=development rollup --watch --config rollup.config.js",
10
10
  "build": "cross-env NODE_ENV=production rollup --config rollup.config.js",
11
- "lint": "eslint \"src/**/*.ts*\"",
12
- "lint-fix": "eslint --fix \"src/**/*.ts*\"",
11
+ "type-check": "tsc --noEmit",
12
+ "lint": "eslint --quiet \"src/**/*.ts*\"",
13
+ "lint-fix": "eslint --quiet --fix \"src/**/*.ts*\"",
13
14
  "format": "prettier --write \"**/*.{js,jsx,ts,tsx,md,mdx}\"",
14
15
  "format:check": "prettier --check \"**/*.{js,jsx,ts,tsx,md,mdx}\"",
15
16
  "prepare": "husky install",
16
17
  "start": "node server.js",
17
- "build-and-publish": "yarn build && npm publish"
18
+ "build-and-publish": "yarn build && npm publish",
19
+ "test:security": "node test-security-headers.js",
20
+ "security:headers": "node test-security-headers.js",
21
+ "security:audit": "npm audit && node test-security-headers.js",
22
+ "prepublishOnly": "yarn build"
18
23
  },
19
24
  "license": "MIT",
20
25
  "dependencies": {
21
26
  "@babel/core": "^7.22.1",
22
27
  "@microsoft/fetch-event-source": "^2.0.1",
23
28
  "@ts-stack/markdown": "^1.4.0",
24
- "@types/pdfjs-dist": "^2.10.378",
29
+ "@types/dompurify": "^3.0.5",
25
30
  "axios": "^1.7.7",
26
- "c-agent-embedding": "^1.0.4",
27
- "c-agent-embedding-react": "^1.0.1",
28
31
  "cors": "^2.8.5",
29
32
  "cross-env": "^7.0.3",
30
33
  "device-detector-js": "^3.0.3",
34
+ "dompurify": "^3.2.6",
31
35
  "dotenv": "^16.4.5",
32
36
  "express": "^4.21.1",
33
- "form-data": "^4.0.1",
34
37
  "lodash": "^4.17.21",
35
- "multer": "^1.4.5-lts.1",
38
+ "marked": "^17.0.1",
36
39
  "node-fetch": "^3.3.2",
37
- "pdfjs-dist": "3.11.174",
38
40
  "prettier": "^3.4.2",
39
41
  "solid-element": "1.7.0",
40
- "solid-js": "1.7.1",
42
+ "solid-js": "^1.9.9",
41
43
  "zod": "^3.22.4"
42
44
  },
43
45
  "devDependencies": {
@@ -64,9 +66,9 @@
64
66
  "eslint-plugin-react": "^7.26.1",
65
67
  "eslint-plugin-solid": "0.12.0",
66
68
  "husky": "^8.0.0",
67
- "postcss": "8.4.21",
69
+ "postcss": "^8.5.6",
68
70
  "react": "18.2.0",
69
- "rollup": "3.23.0",
71
+ "rollup": "^4.49.0",
70
72
  "rollup-plugin-livereload": "2.0.5",
71
73
  "rollup-plugin-postcss": "4.0.2",
72
74
  "rollup-plugin-serve": "2.0.2",
@@ -76,5 +78,9 @@
76
78
  "typescript": "5.0.3",
77
79
  "uuid": "^9.0.1"
78
80
  },
81
+ "resolutions": {
82
+ "postcss": "^8.4.31",
83
+ "serialize-javascript": "^3.1.0"
84
+ },
79
85
  "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
80
86
  }
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/public/index.html CHANGED
@@ -8,144 +8,33 @@
8
8
 
9
9
  <!doctype html>
10
10
  <html lang="en">
11
- <head>
12
- <meta charset="UTF-8" />
13
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
14
- <title>Flowise Chatbot Widget</title>
15
- </head>
16
11
 
17
- <body>
18
- <div id="root">
19
- <flowise-fullchatbot></flowise-fullchatbot>
20
- </div>
21
- <script type="module">
22
- import Chatbot from './web.js';
12
+ <head>
13
+ <meta charset="UTF-8" />
14
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
15
+ <title>CAgent Chatbot Widget</title>
23
16
 
24
- const customStringify = (obj) => {
25
- let stringified = JSON.stringify(obj, null, 4)
26
- .replace(/"([^"]+)":/g, '$1:')
27
- .replace(/: "([^"]+)"/g, (match, value) => (value.includes('<') ? `: "${value}"` : `: '${value}'`))
28
- .replace(/: "(true|false|\d+)"/g, ': $1')
29
- .replace(/customCSS: ""/g, 'customCSS: ``');
30
- return stringified
31
- .split('\n')
32
- .map((line, index) => {
33
- if (index === 0) return line;
34
- return ' '.repeat(8) + line;
35
- })
36
- .join('\n');
37
- };
17
+ </head>
38
18
 
39
- // Example initialization:
40
- // If your .env contains:
41
- // agent1=xyz789-uvw456,https://example.com
42
- // support=abc123-def456,https://example.com
43
- // salesbot=ghi123-jkl456,https://example.com
44
- //
45
- // Then use the environment variable name as chatflowid:
46
- Chatbot.initFull({
47
- // chatflowid: '6a63bb88-88f7-4c4d-805e-9c027c85707b', // or 'support', 'salesbot', etc.
48
- // chatflowid: 'b573e66d-0e28-4798-8e4f-fbbaff8e236f', // or 'support', 'salesbot', etc.
49
- // chatflowid: '7ee803b4-e3f8-4f33-bf85-ef9ab9d6f693', // or 'support', 'salesbot', etc.
50
- chatflowid: '217bfde9-d4cb-4b2a-b637-89890a9990ee', // or 'support', 'salesbot', etc.
51
- apiHost: 'https://vib.cagent.cmcts.ai',
52
- // apiHost: 'https://c-agent.cmcts.studio.ai.vn',
53
- chatwootUrl: 'https://livechat.cagent.cmcts.ai',
54
- roomIds: {
55
- '0123456789': 'Xa6HmhfbU5K73ZhHnspzKhqs',
56
- },
57
- theme: customStringify({
58
- button: {
59
- backgroundColor: '#3B81F6',
60
- right: 20,
61
- bottom: 20,
62
- size: 48,
63
- dragAndDrop: true,
64
- iconColor: 'white',
65
- customIconSrc: 'https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/svg/google-messages.svg',
66
- autoWindowOpen: {
67
- autoOpen: true,
68
- openDelay: 2,
69
- autoOpenOnMobile: false,
70
- },
71
- },
72
- tooltip: {
73
- showTooltip: true,
74
- tooltipMessage: 'Hi There 👋!',
75
- tooltipBackgroundColor: 'black',
76
- tooltipTextColor: 'white',
77
- tooltipFontSize: 16,
78
- },
79
- disclaimer: {
80
- title: 'Disclaimer',
81
- message: 'By using this chatbot, you agree to the <a target="_blank" href="https://flowiseai.com/terms">Terms & Condition</a>',
82
- textColor: 'black',
83
- buttonColor: '#3b82f6',
84
- buttonText: 'Start Chatting',
85
- buttonTextColor: 'white',
86
- blurredBackgroundColor: 'rgba(0, 0, 0, 0.4)',
87
- backgroundColor: 'white',
88
- },
89
- customCSS: ``,
90
- chatWindow: {
91
- showTitle: true,
92
- showAgentMessages: true,
93
- title: 'Agent Studio Bot',
94
- titleAvatarSrc: 'https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/svg/google-messages.svg',
95
- welcomeMessage: 'Hello! This is custom welcome message',
96
- errorMessage: 'This is a custom error message',
97
- backgroundColor: '#ffffff',
98
- backgroundImage: 'enter image path or link',
99
- height: 700,
100
- width: 400,
101
- fontSize: 16,
102
- starterPrompts: ['What is a bot?', 'Who are you?'],
103
- starterPromptFontSize: 15,
104
- clearChatOnReload: false,
105
- sourceDocsTitle: 'Sources:',
106
- renderHTML: true,
107
- botMessage: {
108
- backgroundColor: '#f7f8ff',
109
- textColor: '#303235',
110
- showAvatar: true,
111
- avatarSrc: 'https://raw.githubusercontent.com/zahidkhawaja/langchain-chat-nextjs/main/public/parroticon.png',
112
- },
113
- userMessage: {
114
- backgroundColor: '#3B81F6',
115
- textColor: '#ffffff',
116
- showAvatar: true,
117
- avatarSrc: 'https://raw.githubusercontent.com/zahidkhawaja/langchain-chat-nextjs/main/public/usericon.png',
118
- },
119
- textInput: {
120
- placeholder: 'Type your question',
121
- backgroundColor: '#ffffff',
122
- textColor: '#303235',
123
- sendButtonColor: '#3B81F6',
124
- maxChars: 50,
125
- maxCharsWarningMessage: 'You exceeded the characters limit. Please input less than 50 characters.',
126
- autoFocus: true,
127
- sendMessageSound: true,
128
- sendSoundLocation: 'send_message.mp3',
129
- receiveMessageSound: true,
130
- receiveSoundLocation: 'receive_message.mp3',
131
- },
132
- feedback: {
133
- color: '#303235',
134
- },
135
- dateTimeToggle: {
136
- date: true,
137
- time: true,
138
- },
139
- footer: {
140
- textColor: '#303235',
141
- text: 'Powered by',
142
- company: 'Agent Studio',
143
- // companyLink: 'https://flowiseai.com'
144
- companyLink: '#',
145
- },
146
- },
147
- }),
148
- });
149
- </script>
150
- </body>
151
- </html>
19
+ <body>
20
+ <div id="root">
21
+ <cagent-fullchatbot></cagent-fullchatbot>
22
+ </div>
23
+ <script type="module">
24
+ import Chatbot from './web.js';
25
+
26
+ // Example initialization:
27
+ // If your .env contains:
28
+ // agent1=xyz789-uvw456,https://example.com
29
+ // support=abc123-def456,https://example.com
30
+ // salesbot=ghi123-jkl456,https://example.com
31
+ //
32
+ // Then use the environment variable name as chatflowid:
33
+ Chatbot.initFull({
34
+ chatflowid: 'cf9ad1b2-4470-481f-98ba-56d7313a8887', // or 'support', 'salesbot', etc.
35
+ apiHost: 'https://dvc.cmcts.vn',
36
+ });
37
+ </script>
38
+ </body>
39
+
40
+ </html>
Binary file
@@ -0,0 +1,16 @@
1
+ # Robots.txt for CAgent Chatbot
2
+ # Following OWASP and Mozilla security guidelines
3
+
4
+ User-agent: *
5
+ Disallow: /api/
6
+ Disallow: /web.js
7
+ Disallow: /*.json$
8
+
9
+ # Allow crawling of main pages
10
+ Allow: /
11
+
12
+ # Sitemap location
13
+ Sitemap: https://dvc.cmcts.vn/sitemap.xml
14
+
15
+ # Crawl-delay to prevent server overload
16
+ Crawl-delay: 1
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
+ <url>
4
+ <loc>https://dvc.cmcts.vn/</loc>
5
+ <lastmod>2024-01-15</lastmod>
6
+ <changefreq>monthly</changefreq>
7
+ <priority>1.0</priority>
8
+ </url>
9
+ </urlset>