@gientech/modual 2.2.3-fix.6 → 2.2.3-fix.8

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 (523) hide show
  1. package/README.md +761 -761
  2. package/{dist/assets/GientechStreamReader-Bae2-4f7.js → assets/GientechStreamReader-r5ZTSZk2.js} +1 -1
  3. package/{dist/assets/LeftOutlined-COk0w5nY.js → assets/LeftOutlined-DZMeGbKk.js} +1 -1
  4. package/{dist/assets/circle-plus-DOKqXUMk.js → assets/circle-plus-B73z_SUN.js} +1 -1
  5. package/{src/modules/database/assets → assets}/database.svg +11 -11
  6. package/{src/modules/database/assets → assets}/database_add.svg +53 -53
  7. package/{dist/assets → assets}/database_connect.svg +66 -66
  8. package/{dist/assets → assets}/database_upload.svg +29 -29
  9. package/{dist/assets → assets}/databse.svg +6 -6
  10. package/{dist/assets → assets}/defaultWeLogo.svg +14 -14
  11. package/{dist/assets → assets}/graph.svg +4 -4
  12. package/{src/assets/img → assets}/iconAi.svg +9 -9
  13. package/{dist/assets/index-BKbpfN9S.js → assets/index-97Oe7YBe.js} +1 -1
  14. package/{dist/assets/index-BXdyn2W3.js → assets/index-B4k3tK0f.js} +1 -1
  15. package/{dist/assets/index-Bin0NZwF.js → assets/index-BDc2zBbG.js} +7 -3
  16. package/assets/index-BIEKgWu0.js +27 -0
  17. package/assets/index-CzZQWA2P.js +1 -0
  18. package/{dist/assets/index-CpSzj-Sx.js → assets/index-DHK_n74G.js} +58 -73
  19. package/assets/index-DPA1HCWQ.js +1372 -0
  20. package/assets/index-DPyRygOA.js +745 -0
  21. package/assets/index-YHUI3QVz.js +943 -0
  22. package/{dist/assets/index-vfI1_Qg0.js → assets/index-iOuQJ8vu.js} +1 -1
  23. package/{dist/assets/index-Ct_k24Ar.js → assets/index-usBlUHOb.js} +1 -1
  24. package/{src/modules/assistantConfig/assets → assets}/knowledge.svg +4 -4
  25. package/{src/modules/database/assets → assets}/mysql.svg +14 -14
  26. package/assets/plus-BICgMvz9.js +6 -0
  27. package/assets/search-CD5YKija.js +6 -0
  28. package/{dist/assets → assets}/sensitive.svg +5 -5
  29. package/assets/style-Blt3Kyyt.js +196 -0
  30. package/assets/style2.css +1 -0
  31. package/{dist/assets/triangle-alert-CaJaaCaZ.js → assets/triangle-alert-C4Z1AkGW.js} +1 -1
  32. package/{dist/assets/x-B65AntWN.js → assets/x-DWGzNb9c.js} +1 -1
  33. package/{dist/assistantConfig.js → assistantConfig.js} +14 -9
  34. package/chat.js +1 -0
  35. package/chatCompare.js +1 -0
  36. package/database.js +20 -0
  37. package/{dist/databaseId.js → databaseId.js} +1 -1
  38. package/{dist/databaseTable.js → databaseTable.js} +1 -1
  39. package/index.js +1 -0
  40. package/modelManage.js +1 -0
  41. package/package.json +44 -125
  42. package/{dist/sensitive.js → sensitive.js} +6 -6
  43. package/streamFilesReader.js +1 -0
  44. package/{public/worker → worker}/pdf.worker.min.js +21 -21
  45. package/.editorconfig +0 -38
  46. package/.prettierignore +0 -16
  47. package/.prettierrc +0 -17
  48. package/CHANGELOG.md +0 -162
  49. package/Dockerfile +0 -15
  50. package/USAGE.md +0 -247
  51. package/bash.exe.stackdump +0 -40
  52. package/components.json +0 -21
  53. package/default.conf +0 -19
  54. package/dist/README.md +0 -761
  55. package/dist/assets/database.svg +0 -11
  56. package/dist/assets/database_add.svg +0 -53
  57. package/dist/assets/iconAi.svg +0 -9
  58. package/dist/assets/index-1PwCuRjv.js +0 -1061
  59. package/dist/assets/index-7QvYA6eT.js +0 -1
  60. package/dist/assets/index-BhUNGJOe.js +0 -27
  61. package/dist/assets/index-DT3qkjJ3.js +0 -750
  62. package/dist/assets/index-lFBFf_0k.js +0 -1890
  63. package/dist/assets/knowledge.svg +0 -4
  64. package/dist/assets/mysql.svg +0 -14
  65. package/dist/assets/style-CfNUqKAA.js +0 -196
  66. package/dist/assets/style2.css +0 -1
  67. package/dist/chat.js +0 -1
  68. package/dist/chatCompare.js +0 -1
  69. package/dist/database.js +0 -20
  70. package/dist/index.js +0 -1
  71. package/dist/modelManage.js +0 -1
  72. package/dist/package.json +0 -73
  73. package/dist/streamFilesReader.js +0 -1
  74. package/dist/worker/pdf.worker.min.js +0 -22
  75. package/doc_assets/images/1.png +0 -0
  76. package/doc_assets/images/3.png +0 -0
  77. package/doc_assets/images/component-screenshot.png +0 -1
  78. package/doc_assets//346/226/271/346/241/210/v2.0.7/345/217/230/346/233/264/346/200/273/347/273/223.md +0 -115
  79. package/doc_assets//346/226/271/346/241/210//344/274/230/345/214/226/346/226/271/346/241/210-/345/244/232/344/274/232/350/257/235SSE/350/277/236/346/216/245/347/256/241/347/220/206.md +0 -504
  80. package/doc_assets//346/226/271/346/241/210//346/215/242/350/241/214/346/240/274/345/274/217/344/277/235/346/214/201/344/274/230/345/214/226/346/226/271/346/241/210.md +0 -359
  81. package/eslint.config.js +0 -92
  82. package/index.html +0 -13
  83. package/package.json.demo-backup +0 -109
  84. package/postcss.config.cjs +0 -19
  85. package/public/icons/answerAwartar.png +0 -0
  86. package/public/icons/docx-file.png +0 -0
  87. package/public/icons/folder.png +0 -0
  88. package/public/icons/html.png +0 -0
  89. package/public/icons/image.png +0 -0
  90. package/public/icons/jpg-file.png +0 -0
  91. package/public/icons/json.png +0 -0
  92. package/public/icons/md.png +0 -0
  93. package/public/icons/pdf.png +0 -0
  94. package/public/icons/pptx.png +0 -0
  95. package/public/icons/questionAwartar.png +0 -0
  96. package/public/icons/sheets.png +0 -0
  97. package/public/icons/txt.png +0 -0
  98. package/public/icons/xlsx.png +0 -0
  99. package/public/vite.svg +0 -1
  100. package/rag/assets/index.Bd0tNzw0.js +0 -2797
  101. package/rag/assets/index.D6t67hlu.css +0 -1
  102. package/rag/assets/left.KBHV5h7q.jpg +0 -0
  103. package/rag/assets/worker-BbpylX7l.DptbXke_.js +0 -13
  104. package/release-it.json +0 -21
  105. package/scripts/README.md +0 -133
  106. package/scripts/build-demo.js +0 -88
  107. package/scripts/check-changelog.cjs +0 -124
  108. package/scripts/check-version.cjs +0 -49
  109. package/scripts/decrypt-api-key.js +0 -95
  110. package/scripts/demo-selector.js +0 -216
  111. package/scripts/dev-demo.js +0 -85
  112. package/scripts/open-file.cjs +0 -61
  113. package/scripts/preview-demo.js +0 -130
  114. package/scripts/run-demo.bat +0 -34
  115. package/src/assets/img/close.png +0 -0
  116. package/src/assets/img/database.png +0 -0
  117. package/src/assets/img/downArrow.png +0 -0
  118. package/src/assets/img/downLoad.png +0 -0
  119. package/src/assets/img/excel.png +0 -0
  120. package/src/assets/img/graphIcon.png +0 -0
  121. package/src/assets/img/img.png +0 -0
  122. package/src/assets/img/pdf.png +0 -0
  123. package/src/assets/img/ppt.png +0 -0
  124. package/src/assets/img/search.svg +0 -3
  125. package/src/assets/img/selected.svg +0 -4
  126. package/src/assets/img/singleQa.png +0 -0
  127. package/src/assets/img/txt.png +0 -0
  128. package/src/assets/img/webSearch.png +0 -0
  129. package/src/assets/img/word.png +0 -0
  130. package/src/assets/login/homeBg.png +0 -0
  131. package/src/assets/login/left.jpg +0 -0
  132. package/src/assets/login/logoImg.png +0 -0
  133. package/src/examples/ConversationAssistantPage/index.tsx +0 -42
  134. package/src/examples/LoginPage/index.tsx +0 -20
  135. package/src/examples/chat/components/DrawerGraphPreview.tsx +0 -78
  136. package/src/examples/chat/index.tsx +0 -171
  137. package/src/examples/chat/logo03.png +0 -0
  138. package/src/examples/chatCompare/icons/rag_think.svg +0 -8
  139. package/src/examples/chatCompare/icons/wenda_lianwangsousuo.svg +0 -9
  140. package/src/examples/chatCompare/index.tsx +0 -154
  141. package/src/examples/gientechStreamFilesReader/index.tsx +0 -979
  142. package/src/examples/headlessChat/assets/mind.svg +0 -6
  143. package/src/examples/headlessChat/assets/net.svg +0 -7
  144. package/src/examples/headlessChat/index.tsx +0 -298
  145. package/src/examples/knowledgebaseDetails/index.tsx +0 -119
  146. package/src/examples/ragDatabaseDataPage/index.tsx +0 -40
  147. package/src/examples/ragDatabaseIdPage/index.tsx +0 -126
  148. package/src/examples/ragDatabasePage/index.tsx +0 -36
  149. package/src/examples/ragModelManagePage/index.tsx +0 -107
  150. package/src/examples/ragModelManagePage/style.css +0 -7
  151. package/src/examples/ragSearchPage/index.tsx +0 -0
  152. package/src/examples/ragSensitiveWordsPage/index.tsx +0 -117
  153. package/src/examples/ragSensitiveWordsPage/style.css +0 -16
  154. package/src/examples/sensitiveId/index.tsx +0 -41
  155. package/src/examples/streamFiles/index.tsx +0 -417
  156. package/src/examples/utils/demo_setting_pannel.ts +0 -0
  157. package/src/lib_enter.ts +0 -44
  158. package/src/main.tsx +0 -5
  159. package/src/main.tsx.backup +0 -5
  160. package/src/modules/CHAT_UNIFICATION_PLAN.md +0 -324
  161. package/src/modules/assistantConfig/assets/databse.svg +0 -6
  162. package/src/modules/assistantConfig/assets/empty.png +0 -0
  163. package/src/modules/assistantConfig/assets/graph.svg +0 -4
  164. package/src/modules/assistantConfig/assets/sensitive.svg +0 -5
  165. package/src/modules/assistantConfig/components/Database.tsx +0 -171
  166. package/src/modules/assistantConfig/components/Graph.tsx +0 -177
  167. package/src/modules/assistantConfig/components/Knowledge.tsx +0 -276
  168. package/src/modules/assistantConfig/components/NotFoundContent.tsx +0 -21
  169. package/src/modules/assistantConfig/components/Paragraph.tsx +0 -51
  170. package/src/modules/assistantConfig/components/ParamsItem.tsx +0 -40
  171. package/src/modules/assistantConfig/components/ResourceBinderItem.tsx +0 -133
  172. package/src/modules/assistantConfig/components/SearchableSelector.tsx +0 -500
  173. package/src/modules/assistantConfig/components/Sensitive.tsx +0 -221
  174. package/src/modules/assistantConfig/components/SliderInput.tsx +0 -66
  175. package/src/modules/assistantConfig/constants.tsx +0 -75
  176. package/src/modules/assistantConfig/index.tsx +0 -785
  177. package/src/modules/assistantConfig/server.ts +0 -262
  178. package/src/modules/chat/AllFiles.tsx +0 -158
  179. package/src/modules/chat/Conversations/Item.tsx +0 -169
  180. package/src/modules/chat/Conversations/List.tsx +0 -210
  181. package/src/modules/chat/Conversations/groupByTime.ts +0 -39
  182. package/src/modules/chat/Conversations/index.tsx +0 -255
  183. package/src/modules/chat/ReferenceBar.tsx +0 -659
  184. package/src/modules/chat/constants.tsx +0 -66
  185. package/src/modules/chat/i18n.ts +0 -151
  186. package/src/modules/chat/i18n.tsx +0 -151
  187. package/src/modules/chat/icons/rag_think.svg +0 -8
  188. package/src/modules/chat/icons/wenda_lianwangsousuo.svg +0 -9
  189. package/src/modules/chat/index.tsx +0 -2400
  190. package/src/modules/chat/referenceCom/DeleteModal.tsx +0 -75
  191. package/src/modules/chat/referenceCom/DrawerContent.tsx +0 -136
  192. package/src/modules/chat/referenceCom/DrawerDatabase.tsx +0 -102
  193. package/src/modules/chat/referenceCom/DrawerGraphPreview.tsx +0 -86
  194. package/src/modules/chat/referenceCom/DrawerPreview.tsx +0 -73
  195. package/src/modules/chat/referenceCom/DrawerTitle.tsx +0 -26
  196. package/src/modules/chat/referenceCom/RenameModal.tsx +0 -86
  197. package/src/modules/chat/referenceCom/TagCom.tsx +0 -30
  198. package/src/modules/chat/style.css +0 -6
  199. package/src/modules/chat/style.less +0 -7
  200. package/src/modules/chat/types.ts +0 -17
  201. package/src/modules/chat/utils/index.ts +0 -348
  202. package/src/modules/chatCompare/UseChatCompareHooks.ts +0 -103
  203. package/src/modules/chatCompare/components/AichatCompareUseController.tsx +0 -754
  204. package/src/modules/chatCompare/components/AssistantSelector.tsx +0 -127
  205. package/src/modules/chatCompare/components/ChatInputer.tsx +0 -67
  206. package/src/modules/chatCompare/components/ChatInstance.tsx +0 -426
  207. package/src/modules/chatCompare/components/ChatItem.tsx +0 -556
  208. package/src/modules/chatCompare/components/Sender/FileCardCommon.tsx +0 -97
  209. package/src/modules/chatCompare/components/Sender/FileUpload.tsx +0 -89
  210. package/src/modules/chatCompare/components/Sender/FilesDisplay.tsx +0 -309
  211. package/src/modules/chatCompare/components/Sender/VoiceInput.tsx +0 -80
  212. package/src/modules/chatCompare/components/Sender/contexts/BadgeContext.tsx +0 -36
  213. package/src/modules/chatCompare/components/Sender/fileIcon.tsx +0 -100
  214. package/src/modules/chatCompare/components/Sender/index.tsx +0 -850
  215. package/src/modules/chatCompare/components/UseChatInstanceHooks.ts +0 -406
  216. package/src/modules/chatCompare/components/UseScrollHooks.ts +0 -36
  217. package/src/modules/chatCompare/components/components/AllFiles.tsx +0 -156
  218. package/src/modules/chatCompare/components/components/DeleteModal.tsx +0 -75
  219. package/src/modules/chatCompare/components/components/DrawerContent.tsx +0 -138
  220. package/src/modules/chatCompare/components/components/DrawerDatabase.tsx +0 -110
  221. package/src/modules/chatCompare/components/components/DrawerGraphPreview.tsx +0 -95
  222. package/src/modules/chatCompare/components/components/DrawerPreview.tsx +0 -75
  223. package/src/modules/chatCompare/components/components/DrawerTitle.tsx +0 -26
  224. package/src/modules/chatCompare/components/components/DrawerVideo.tsx +0 -85
  225. package/src/modules/chatCompare/components/components/ReferenceBar.tsx +0 -659
  226. package/src/modules/chatCompare/components/components/RenameModal.tsx +0 -86
  227. package/src/modules/chatCompare/components/components/TagCom.tsx +0 -30
  228. package/src/modules/chatCompare/components/defaultStyleSet.tsx +0 -148
  229. package/src/modules/chatCompare/components/server.ts +0 -208
  230. package/src/modules/chatCompare/components/serverFn.ts +0 -172
  231. package/src/modules/chatCompare/components/style.less +0 -97
  232. package/src/modules/chatCompare/components/useFileManager.ts +0 -173
  233. package/src/modules/chatCompare/components/utils.ts +0 -31
  234. package/src/modules/chatCompare/data.ts +0 -842
  235. package/src/modules/chatCompare/index.tsx +0 -537
  236. package/src/modules/chatCompare/utils/AiChat.types.tsx +0 -110
  237. package/src/modules/chatCompare/utils/constants.tsx +0 -70
  238. package/src/modules/chatCompare/utils/fileUploadValidator.ts +0 -183
  239. package/src/modules/chatCompare/utils/icons/rag_think.svg +0 -8
  240. package/src/modules/chatCompare/utils/icons/wenda_lianwangsousuo.svg +0 -9
  241. package/src/modules/chatCompare/utils/index.ts +0 -46
  242. package/src/modules/database/CreateModal.tsx +0 -402
  243. package/src/modules/database/assets/Doris.png +0 -0
  244. package/src/modules/database/assets/PostgreSQL.png +0 -0
  245. package/src/modules/database/assets/SQLServer.png +0 -0
  246. package/src/modules/database/assets/database_connect.svg +0 -66
  247. package/src/modules/database/assets/database_upload.svg +0 -29
  248. package/src/modules/database/assets/empty.png +0 -0
  249. package/src/modules/database/index.tsx +0 -477
  250. package/src/modules/database/server.ts +0 -196
  251. package/src/modules/databaseId/CustomCom.tsx +0 -156
  252. package/src/modules/databaseId/EditConfig.tsx +0 -280
  253. package/src/modules/databaseId/UploadDrawer.tsx +0 -535
  254. package/src/modules/databaseId/assets/aiOptimize.svg +0 -10
  255. package/src/modules/databaseId/assets/empty.png +0 -0
  256. package/src/modules/databaseId/assets/template.svg +0 -6
  257. package/src/modules/databaseId/assets/upload.svg +0 -9
  258. package/src/modules/databaseId/assets/useTemp.svg +0 -6
  259. package/src/modules/databaseId/i18n.ts +0 -360
  260. package/src/modules/databaseId/index.tsx +0 -855
  261. package/src/modules/databaseId/server.ts +0 -286
  262. package/src/modules/databaseId/style.css +0 -5
  263. package/src/modules/databaseTable/EditRowDrawer.tsx +0 -124
  264. package/src/modules/databaseTable/index.tsx +0 -359
  265. package/src/modules/databaseTable/server.ts +0 -180
  266. package/src/modules/headlessChat/ReferenceBar.tsx +0 -783
  267. package/src/modules/headlessChat/constants.tsx +0 -54
  268. package/src/modules/headlessChat/index.tsx +0 -1903
  269. package/src/modules/headlessChat/referenceCom/DeleteModal.tsx +0 -75
  270. package/src/modules/headlessChat/referenceCom/DrawerContent.tsx +0 -136
  271. package/src/modules/headlessChat/referenceCom/DrawerDatabase.tsx +0 -102
  272. package/src/modules/headlessChat/referenceCom/DrawerGraphPreview.tsx +0 -86
  273. package/src/modules/headlessChat/referenceCom/DrawerPreview.tsx +0 -73
  274. package/src/modules/headlessChat/referenceCom/DrawerTitle.tsx +0 -26
  275. package/src/modules/headlessChat/referenceCom/RenameModal.tsx +0 -86
  276. package/src/modules/headlessChat/referenceCom/TagCom.tsx +0 -30
  277. package/src/modules/headlessChat/style.less +0 -3
  278. package/src/modules/headlessChat/types.ts +0 -23
  279. package/src/modules/headlessChat/utils/index.ts +0 -348
  280. package/src/modules/knowledgeBase/index.tsx +0 -58
  281. package/src/modules/knowledgeBase/server.ts +0 -196
  282. package/src/modules/knowledgebaseDetails/KnowledgeBaseDetails.tsx +0 -169
  283. package/src/modules/knowledgebaseDetails/components/KnowledgeBaseSummaryCard.tsx +0 -193
  284. package/src/modules/knowledgebaseDetails/components/fileManagementParts.tsx +0 -534
  285. package/src/modules/knowledgebaseDetails/components/index.ts +0 -3
  286. package/src/modules/knowledgebaseDetails/index.ts +0 -3
  287. package/src/modules/knowledgebaseDetails/modules/ConfigModule.tsx +0 -49
  288. package/src/modules/knowledgebaseDetails/modules/FaqModule.tsx +0 -47
  289. package/src/modules/knowledgebaseDetails/modules/KnowledgeParseModule.tsx +0 -771
  290. package/src/modules/knowledgebaseDetails/modules/RetrievalTestModule.tsx +0 -49
  291. package/src/modules/knowledgebaseDetails/modules/UploadManagementModule.tsx +0 -49
  292. package/src/modules/knowledgebaseDetails/modules/types.ts +0 -44
  293. package/src/modules/knowledgebaseDetails/modules-shim.d.ts +0 -14
  294. package/src/modules/knowledgebaseDetails/servers/analysis.ts +0 -5
  295. package/src/modules/knowledgebaseDetails/servers/index.ts +0 -318
  296. package/src/modules/login/components/Login/LoginBox/index.tsx +0 -105
  297. package/src/modules/login/components/Login/RegisterBox/index.tsx +0 -181
  298. package/src/modules/login/components/Login/index.tsx +0 -100
  299. package/src/modules/login/i18n.ts +0 -217
  300. package/src/modules/login/index.tsx +0 -113
  301. package/src/modules/login/style.css +0 -3
  302. package/src/modules/login/useServices.ts +0 -53
  303. package/src/modules/login/utils.ts +0 -42
  304. package/src/modules/modelManage/ConfigDrawer.tsx +0 -267
  305. package/src/modules/modelManage/ReplaceModal.tsx +0 -113
  306. package/src/modules/modelManage/assets/empty.png +0 -0
  307. package/src/modules/modelManage/const.ts +0 -51
  308. package/src/modules/modelManage/i18n.ts +0 -407
  309. package/src/modules/modelManage/index.tsx +0 -668
  310. package/src/modules/modelManage/server.ts +0 -231
  311. package/src/modules/nodegraph/index.tsx +0 -1
  312. package/src/modules/search/assets/Icon-history.svg +0 -8
  313. package/src/modules/search/assets/answerAwartar.png +0 -0
  314. package/src/modules/search/assets/doc.png +0 -0
  315. package/src/modules/search/assets/genera.gif +0 -0
  316. package/src/modules/search/assets/icon-robot.svg +0 -9
  317. package/src/modules/search/assets/icon-search-bar.svg +0 -14
  318. package/src/modules/search/assets/icon-sub-title.svg +0 -3
  319. package/src/modules/search/assets/icon-title.svg +0 -9
  320. package/src/modules/search/assets/icon-zoomOut.svg +0 -9
  321. package/src/modules/search/assets/iconAi.svg +0 -9
  322. package/src/modules/search/assets/pdf.png +0 -0
  323. package/src/modules/search/assets/ppt.png +0 -0
  324. package/src/modules/search/assets/search.svg +0 -3
  325. package/src/modules/search/assets/selected.svg +0 -4
  326. package/src/modules/search/assets/txt.png +0 -0
  327. package/src/modules/search/assets/xls.png +0 -0
  328. package/src/modules/search/components/AssisSelect.tsx +0 -137
  329. package/src/modules/search/components/Editor/ChatViewEditor.tsx +0 -261
  330. package/src/modules/search/components/Editor/aichat.css +0 -1
  331. package/src/modules/search/components/Editor/constant.ts +0 -13
  332. package/src/modules/search/components/Editor/index.tsx +0 -113
  333. package/src/modules/search/components/Editor/plugins/autofomatRules.ts +0 -332
  334. package/src/modules/search/components/Editor/plugins/convertImgPlugins.tsx +0 -20
  335. package/src/modules/search/components/Editor/plugins/createIndexes.tsx +0 -38
  336. package/src/modules/search/components/Editor/plugins/displayer.ts +0 -298
  337. package/src/modules/search/components/Editor/plugins/imageClick.tsx +0 -32
  338. package/src/modules/search/components/Editor/plugins/myplugin.tsx +0 -98
  339. package/src/modules/search/components/Editor/ui/avatar.tsx +0 -19
  340. package/src/modules/search/components/Editor/ui/blockquote-element.tsx +0 -21
  341. package/src/modules/search/components/Editor/ui/button.tsx +0 -58
  342. package/src/modules/search/components/Editor/ui/calendar.tsx +0 -68
  343. package/src/modules/search/components/Editor/ui/caption.tsx +0 -46
  344. package/src/modules/search/components/Editor/ui/checkbox.tsx +0 -27
  345. package/src/modules/search/components/Editor/ui/code-block-combobox.tsx +0 -188
  346. package/src/modules/search/components/Editor/ui/code-block-element.css +0 -434
  347. package/src/modules/search/components/Editor/ui/code-block-element.tsx +0 -39
  348. package/src/modules/search/components/Editor/ui/code-leaf.tsx +0 -24
  349. package/src/modules/search/components/Editor/ui/code-line-element.tsx +0 -10
  350. package/src/modules/search/components/Editor/ui/code-syntax-leaf.tsx +0 -21
  351. package/src/modules/search/components/Editor/ui/column-element.tsx +0 -30
  352. package/src/modules/search/components/Editor/ui/column-group-element.tsx +0 -94
  353. package/src/modules/search/components/Editor/ui/command.tsx +0 -75
  354. package/src/modules/search/components/Editor/ui/comment-avatar.tsx +0 -22
  355. package/src/modules/search/components/Editor/ui/comment-create-form.tsx +0 -37
  356. package/src/modules/search/components/Editor/ui/comment-item.tsx +0 -74
  357. package/src/modules/search/components/Editor/ui/comment-leaf.tsx +0 -49
  358. package/src/modules/search/components/Editor/ui/comment-more-dropdown.tsx +0 -42
  359. package/src/modules/search/components/Editor/ui/comment-reply-items.tsx +0 -22
  360. package/src/modules/search/components/Editor/ui/comment-resolve-button.tsx +0 -32
  361. package/src/modules/search/components/Editor/ui/comment-value.tsx +0 -34
  362. package/src/modules/search/components/Editor/ui/comments-popover.tsx +0 -63
  363. package/src/modules/search/components/Editor/ui/date-element.tsx +0 -83
  364. package/src/modules/search/components/Editor/ui/dialog.tsx +0 -63
  365. package/src/modules/search/components/Editor/ui/draggable.tsx +0 -177
  366. package/src/modules/search/components/Editor/ui/dropdown-menu.tsx +0 -180
  367. package/src/modules/search/components/Editor/ui/emoji-input-element.tsx +0 -85
  368. package/src/modules/search/components/Editor/ui/excalidraw-element.tsx +0 -28
  369. package/src/modules/search/components/Editor/ui/fixed-toolbar-buttons.tsx +0 -76
  370. package/src/modules/search/components/Editor/ui/fixed-toolbar.tsx +0 -8
  371. package/src/modules/search/components/Editor/ui/floating-toolbar-buttons.tsx +0 -51
  372. package/src/modules/search/components/Editor/ui/floating-toolbar.tsx +0 -77
  373. package/src/modules/search/components/Editor/ui/heading-element.tsx +0 -48
  374. package/src/modules/search/components/Editor/ui/highlight-leaf.tsx +0 -17
  375. package/src/modules/search/components/Editor/ui/hr-element.tsx +0 -30
  376. package/src/modules/search/components/Editor/ui/icons.tsx +0 -267
  377. package/src/modules/search/components/Editor/ui/image-element.tsx +0 -74
  378. package/src/modules/search/components/Editor/ui/inline-combobox.tsx +0 -368
  379. package/src/modules/search/components/Editor/ui/input.tsx +0 -25
  380. package/src/modules/search/components/Editor/ui/insert-dropdown-menu.tsx +0 -218
  381. package/src/modules/search/components/Editor/ui/kbd-leaf.tsx +0 -20
  382. package/src/modules/search/components/Editor/ui/link-element.tsx +0 -29
  383. package/src/modules/search/components/Editor/ui/link-floating-toolbar.tsx +0 -161
  384. package/src/modules/search/components/Editor/ui/list-element.tsx +0 -30
  385. package/src/modules/search/components/Editor/ui/mark-toolbar-button.tsx +0 -24
  386. package/src/modules/search/components/Editor/ui/media-embed-element.tsx +0 -133
  387. package/src/modules/search/components/Editor/ui/media-popover.tsx +0 -97
  388. package/src/modules/search/components/Editor/ui/mention-element.tsx +0 -43
  389. package/src/modules/search/components/Editor/ui/mention-input-element.tsx +0 -141
  390. package/src/modules/search/components/Editor/ui/mode-dropdown-menu.tsx +0 -93
  391. package/src/modules/search/components/Editor/ui/more-dropdown-menu.tsx +0 -67
  392. package/src/modules/search/components/Editor/ui/paragraph-element.tsx +0 -4
  393. package/src/modules/search/components/Editor/ui/placeholder.tsx +0 -52
  394. package/src/modules/search/components/Editor/ui/popover.tsx +0 -32
  395. package/src/modules/search/components/Editor/ui/resizable.tsx +0 -66
  396. package/src/modules/search/components/Editor/ui/separator.tsx +0 -25
  397. package/src/modules/search/components/Editor/ui/style.less +0 -12
  398. package/src/modules/search/components/Editor/ui/table-cell-element.tsx +0 -143
  399. package/src/modules/search/components/Editor/ui/table-element.tsx +0 -243
  400. package/src/modules/search/components/Editor/ui/table-row-element.tsx +0 -22
  401. package/src/modules/search/components/Editor/ui/tableValue.tsx +0 -135
  402. package/src/modules/search/components/Editor/ui/todo-list-element.tsx +0 -43
  403. package/src/modules/search/components/Editor/ui/toggle-element.tsx +0 -31
  404. package/src/modules/search/components/Editor/ui/toolbar.tsx +0 -157
  405. package/src/modules/search/components/Editor/ui/tooltip.tsx +0 -65
  406. package/src/modules/search/components/Editor/ui/turn-into-dropdown-menu.tsx +0 -160
  407. package/src/modules/search/components/Editor/ui/with-draggables.tsx +0 -175
  408. package/src/modules/search/components/FileList.tsx +0 -287
  409. package/src/modules/search/components/ImageGroupView/index.tsx +0 -85
  410. package/src/modules/search/components/ResultContent.tsx +0 -232
  411. package/src/modules/search/components/SearchInput.tsx +0 -232
  412. package/src/modules/search/components/SearchLanding.tsx +0 -74
  413. package/src/modules/search/components/SearchView.tsx +0 -563
  414. package/src/modules/search/components/SimpleEditor.tsx +0 -158
  415. package/src/modules/search/components/SimpleFileList.tsx +0 -215
  416. package/src/modules/search/index.tsx +0 -10
  417. package/src/modules/search/reademe.md +0 -1
  418. package/src/modules/search/servers/apis.tsx +0 -19
  419. package/src/modules/search/servers/index.ts +0 -184
  420. package/src/modules/search/style.less +0 -503
  421. package/src/modules/search/type.ts +0 -22
  422. package/src/modules/search/utils.ts +0 -34
  423. package/src/modules/sensitive/i18n.ts +0 -391
  424. package/src/modules/sensitive/index.tsx +0 -604
  425. package/src/modules/sensitive/sensitiveEditor.tsx +0 -543
  426. package/src/modules/sensitive/server.ts +0 -197
  427. package/src/modules/sensitiveId/AutoTag.tsx +0 -311
  428. package/src/modules/sensitiveId/UploadModal.tsx +0 -181
  429. package/src/modules/sensitiveId/VirtualWrap.tsx +0 -125
  430. package/src/modules/sensitiveId/index.tsx +0 -253
  431. package/src/modules/sensitiveId/server.ts +0 -142
  432. package/src/modules/streamFilesReader/GientechStreamReader.tsx +0 -1658
  433. package/src/modules/streamFilesReader/components/Header/Toolbar.tsx +0 -0
  434. package/src/modules/streamFilesReader/components/Header/index.tsx +0 -297
  435. package/src/modules/streamFilesReader/index.tsx +0 -3
  436. package/src/style.css +0 -6
  437. package/src/type.d.ts +0 -0
  438. package/src/utils/commonFn.tsx +0 -153
  439. package/src/utils/decryptApiKey.ts +0 -40
  440. package/src/utils/gientechCommon/components/AppError.tsx +0 -32
  441. package/src/utils/gientechCommon/components/AppLoading.tsx +0 -75
  442. package/src/utils/gientechCommon/components/DeleteModal.tsx +0 -75
  443. package/src/utils/gientechCommon/components/DisplayError.tsx +0 -33
  444. package/src/utils/gientechCommon/components/DisplayLoading.tsx +0 -38
  445. package/src/utils/gientechCommon/components/FeedBackModal.tsx +0 -319
  446. package/src/utils/gientechCommon/components/FileCardCommon.tsx +0 -82
  447. package/src/utils/gientechCommon/components/FileManager/index.tsx +0 -418
  448. package/src/utils/gientechCommon/components/FileManager/style.css +0 -5
  449. package/src/utils/gientechCommon/components/Messages/GientechNewChatWelcome.tsx +0 -583
  450. package/src/utils/gientechCommon/components/Messages/ReferenceCard.tsx +0 -359
  451. package/src/utils/gientechCommon/components/Messages/RetriveItem.tsx +0 -245
  452. package/src/utils/gientechCommon/components/Messages/WebRetriveItem.tsx +0 -209
  453. package/src/utils/gientechCommon/components/Messages/defaultBot.png +0 -0
  454. package/src/utils/gientechCommon/components/Messages/defaultStyleSet.tsx +0 -148
  455. package/src/utils/gientechCommon/components/Messages/defaultWeLogo.svg +0 -14
  456. package/src/utils/gientechCommon/components/RenameModal.tsx +0 -86
  457. package/src/utils/gientechCommon/components/style.less +0 -11
  458. package/src/utils/gientechCommon/configs/commonConfig.ts +0 -2
  459. package/src/utils/gientechCommon/configs/senderConfig.ts +0 -0
  460. package/src/utils/gientechCommon/configs/stylesConfig.ts +0 -142
  461. package/src/utils/gientechCommon/hooks/AichatUseController.tsx +0 -761
  462. package/src/utils/gientechCommon/hooks/style.less +0 -8
  463. package/src/utils/gientechCommon/hooks/useFileDisplayTools.tsx +0 -352
  464. package/src/utils/gientechCommon/hooks/useFileManager.ts +0 -169
  465. package/src/utils/gientechCommon/slate/converters/deserializers.ts +0 -763
  466. package/src/utils/gientechCommon/slate/converters/mockData.ts +0 -232
  467. package/src/utils/gientechCommon/slate/converters/slateConverters.ts +0 -258
  468. package/src/utils/gientechCommon/slate/richElements/index.tsx +0 -499
  469. package/src/utils/gientechCommon/utils/fileUtils.ts +0 -86
  470. package/src/utils/gientechCommon/utils/index.ts +0 -386
  471. package/src/utils/gientechCommon/utils/request.ts +0 -37
  472. package/src/utils/gientechCommon/utils/serverFn.ts +0 -172
  473. package/src/utils/index.tsx +0 -186
  474. package/src/utils/testconfigs/demologin/index.tsx +0 -32
  475. package/src/utils/testconfigs/index.ts +0 -66
  476. package/src/vite-env.d.ts +0 -49
  477. package/stats.html +0 -4949
  478. package/tailwind.config.js +0 -170
  479. package/tsconfig.app.json +0 -31
  480. package/tsconfig.app.tsbuildinfo +0 -11
  481. package/tsconfig.json +0 -17
  482. package/tsconfig.node.json +0 -23
  483. package/tsconfig.node.tsbuildinfo +0 -1
  484. package/vite.config.app.ts +0 -91
  485. package/vite.config.ts +0 -238
  486. /package/{dist/assets → assets}/Doris.png +0 -0
  487. /package/{dist/assets → assets}/PostgreSQL.png +0 -0
  488. /package/{dist/assets → assets}/SQLServer.png +0 -0
  489. /package/{dist/assets → assets}/empty.png +0 -0
  490. /package/{dist/assets → assets}/homeBg.png +0 -0
  491. /package/{dist/assets → assets}/index-CpW6Dhpp.js +0 -0
  492. /package/{dist/assets → assets}/left.jpg +0 -0
  493. /package/{dist/assets → assets}/logoImg.png +0 -0
  494. /package/{dist/assets → assets}/style.css +0 -0
  495. /package/{dist/assets → assets}/style3.css +0 -0
  496. /package/{dist/assets → assets}/style4.css +0 -0
  497. /package/{dist/assets → assets}/style5.css +0 -0
  498. /package/{dist/assets → assets}/worker-BbpylX7l.js +0 -0
  499. /package/{dist/assistantConfig.d.ts → assistantConfig.d.ts} +0 -0
  500. /package/{dist/chat.d.ts → chat.d.ts} +0 -0
  501. /package/{dist/chatCompare.d.ts → chatCompare.d.ts} +0 -0
  502. /package/{dist/database.d.ts → database.d.ts} +0 -0
  503. /package/{dist/databaseId.d.ts → databaseId.d.ts} +0 -0
  504. /package/{dist/databaseTable.d.ts → databaseTable.d.ts} +0 -0
  505. /package/{dist/icons → icons}/answerAwartar.png +0 -0
  506. /package/{dist/icons → icons}/docx-file.png +0 -0
  507. /package/{dist/icons → icons}/folder.png +0 -0
  508. /package/{dist/icons → icons}/html.png +0 -0
  509. /package/{dist/icons → icons}/image.png +0 -0
  510. /package/{dist/icons → icons}/jpg-file.png +0 -0
  511. /package/{dist/icons → icons}/json.png +0 -0
  512. /package/{dist/icons → icons}/md.png +0 -0
  513. /package/{dist/icons → icons}/pdf.png +0 -0
  514. /package/{dist/icons → icons}/pptx.png +0 -0
  515. /package/{dist/icons → icons}/questionAwartar.png +0 -0
  516. /package/{dist/icons → icons}/sheets.png +0 -0
  517. /package/{dist/icons → icons}/txt.png +0 -0
  518. /package/{dist/icons → icons}/xlsx.png +0 -0
  519. /package/{dist/index.d.ts → index.d.ts} +0 -0
  520. /package/{dist/modelManage.d.ts → modelManage.d.ts} +0 -0
  521. /package/{dist/sensitive.d.ts → sensitive.d.ts} +0 -0
  522. /package/{dist/streamFilesReader.d.ts → streamFilesReader.d.ts} +0 -0
  523. /package/{dist/vite.svg → vite.svg} +0 -0
package/README.md CHANGED
@@ -1,761 +1,761 @@
1
- # @gientech/modual
2
-
3
- Gientech 多模块集成包,提供聊天、数据库、文件预览等业务模块。
4
-
5
- ## 📦 安装
6
-
7
- ```bash
8
- npm install @gientech/modual
9
- ```
10
-
11
- **⚠️ 安装问题?** 如果使用 Yarn 安装时遇到 hoisting 错误,请查看 [安装故障排除指南](./INSTALL_TROUBLESHOOTING.md)。
12
-
13
- ## 🏗️ 打包逻辑
14
-
15
- ### 多入口打包架构
16
-
17
- 本包采用**多入口打包**策略,每个业务模块独立打包,支持按需引入:
18
-
19
- ```text
20
- dist/
21
- ├── index.js # 主入口(导出所有模块)
22
- ├── chat.js # 聊天模块
23
- ├── database.js # 数据库模块
24
- ├── databaseId.js # 数据库ID模块
25
- ├── databaseTable.js # 数据库表模块
26
- ├── modelManage.js # 模型管理模块
27
- ├── sensitive.js # 敏感词模块
28
- ├── streamFilesReader.js # 流式文件读取器模块
29
- ├── assets/
30
- │ └── style.css # 统一样式文件
31
- └── *.d.ts # TypeScript 类型定义文件
32
- ```
33
-
34
- ### 打包配置说明
35
-
36
- 1. **入口文件**(`vite.config.ts`):
37
- - `index`: `src/lib_enter.ts` - 主入口,导出所有模块
38
- - `chat`: `src/modules/chat/index.tsx` - 聊天模块
39
- - `database`: `src/modules/database/index.tsx` - 数据库模块
40
- - 其他模块类似...
41
-
42
- 2. **外部依赖**(不打包进 bundle):
43
- - `react`, `react-dom`
44
- - `antd`, `axios`
45
- - `@mxmweb/*` 系列包
46
-
47
- 3. **样式处理**:
48
- - 所有 CSS/LESS 文件合并到 `dist/assets/style.css`
49
- - 支持通过 `@gientech/modual/style.css` 引入
50
-
51
- 4. **打包模式**:
52
- - `build`: 内联依赖模式(`VITE_INLINE_DEPS=true`)
53
- - `build:external`: 外部依赖模式(推荐用于 npm 发布)
54
-
55
- ## 🚀 快速开始
56
-
57
- ### 1. 注册 PDF Worker(必需)
58
-
59
- **⚠️ 重要:必须在应用入口文件(main.tsx)中注册,不能在组件内部注册!**
60
-
61
- ```javascript
62
- // main.tsx(应用入口文件)
63
- import React from 'react';
64
- import ReactDOM from 'react-dom/client';
65
-
66
- // 方式一:从主入口引入(推荐)
67
- import { registerPDFWorker } from '@gientech/modual';
68
-
69
- // 方式二:从 chat 模块引入
70
- // import { registerPDFWorker } from '@gientech/modual/chat';
71
-
72
- // 方式三:直接从 @mxmweb/fviewer 引入
73
- // import { registerPDFWorker } from '@mxmweb/fviewer';
74
-
75
- // ⚠️ 必须在组件渲染之前注册 Worker!
76
- registerPDFWorker('/worker/pdf.worker.min.js');
77
-
78
- // 验证注册是否成功(可选)
79
- import { isPDFWorkerRegistered } from '@mxmweb/fviewer';
80
- if (isPDFWorkerRegistered()) {
81
- console.log('PDF Worker 注册成功');
82
- } else {
83
- console.error('PDF Worker 注册失败,请检查路径是否正确');
84
- }
85
-
86
- import App from './App';
87
-
88
- ReactDOM.createRoot(document.getElementById('root')!).render(
89
- <React.StrictMode>
90
- <App />
91
- </React.StrictMode>
92
- );
93
- ```
94
-
95
- **❌ 错误示例(不要在组件内部注册):**
96
-
97
- ```javascript
98
- // ❌ 错误:在组件内部注册
99
- function App() {
100
- registerPDFWorker('/worker/pdf.worker.min.js'); // 错误!
101
- return <YourComponent />;
102
- }
103
- ```
104
-
105
- **✅ 正确示例(在入口文件注册):**
106
-
107
- ```javascript
108
- // ✅ 正确:在入口文件注册
109
- // main.tsx
110
- import { registerPDFWorker } from '@gientech/modual';
111
- registerPDFWorker('/worker/pdf.worker.min.js'); // 在组件渲染前注册
112
-
113
- import App from './App';
114
- ReactDOM.createRoot(document.getElementById('root')!).render(<App />);
115
- ```
116
-
117
- **Worker 文件部署**:
118
-
119
- 1. 从 `node_modules/pdfjs-dist/build/pdf.worker.min.js` 复制到 `public/worker/`
120
- 2. 或使用 CDN 提供 Worker 文件
121
- 3. 确保路径与注册时使用的路径一致
122
-
123
- ### 2. 引入样式
124
-
125
- **⚠️ 重要:必须引入所有相关样式文件,否则组件样式会丢失!**
126
-
127
- ```javascript
128
- // 在入口文件引入(推荐)
129
- // 1. 引入 gientech 包样式
130
- import '@gientech/modual/style.css';
131
-
132
- // 2. 引入依赖包的样式(必需)
133
- import '@mxmweb/rtext/style.css';
134
- import '@mxmweb/aichat/style.css';
135
- import '@mxmweb/zui/style.css';
136
-
137
- // 3. 引入 Antd 样式(如果使用 Antd 组件)
138
- import 'antd/dist/reset.css';
139
- // 或者使用 Antd 5.x 的样式
140
- // import 'antd/dist/reset.css';
141
- ```
142
-
143
- **样式引入顺序**(建议按以下顺序):
144
-
145
- ```javascript
146
- // main.tsx 或 App.tsx
147
- // 1. 先引入依赖包样式
148
- import '@mxmweb/rtext/style.css';
149
- import '@mxmweb/aichat/style.css';
150
- import '@mxmweb/zui/style.css';
151
- import 'antd/dist/reset.css';
152
-
153
- // 2. 再引入 gientech 包样式
154
- import '@gientech/modual/style.css';
155
- ```
156
-
157
- #### 方式二:在 HTML 中引入
158
-
159
- ```html
160
- <link rel="stylesheet" href="./node_modules/@mxmweb/rtext/dist/style.css">
161
- <link rel="stylesheet" href="./node_modules/@mxmweb/aichat/dist/style.css">
162
- <link rel="stylesheet" href="./node_modules/@mxmweb/zui/dist/style.css">
163
- <link rel="stylesheet" href="./node_modules/antd/dist/reset.css">
164
- <link rel="stylesheet" href="./node_modules/@gientech/modual/dist/assets/style.css">
165
- ```
166
-
167
- ### 3. 使用组件
168
-
169
- #### 方式一:按需引入(推荐)
170
-
171
- ```javascript
172
- // 只引入需要的模块,减少 bundle 大小
173
- import withGientechChatAdopter from '@gientech/modual/chat';
174
-
175
- // 引入样式(必需)
176
- import '@mxmweb/rtext/style.css';
177
- import '@mxmweb/aichat/style.css';
178
- import '@mxmweb/zui/style.css';
179
- import 'antd/dist/reset.css';
180
- import '@gientech/modual/style.css';
181
-
182
- // 使用高阶组件
183
- const GientechChat = withGientechChatAdopter();
184
-
185
- function App() {
186
- return (
187
- <GientechChat
188
- token="your-token"
189
- url="https://your-api.com"
190
- // 其他配置...
191
- />
192
- );
193
- }
194
- ```
195
-
196
- #### 方式二:从主入口引入
197
-
198
- ```javascript
199
- // 引入所有模块(会增加 bundle 大小)
200
- import {
201
- withGientechChatAdopter,
202
- GientechStreamReader,
203
- registerPDFWorker
204
- } from '@gientech/modual';
205
-
206
- // 引入样式(必需)
207
- import '@mxmweb/rtext/style.css';
208
- import '@mxmweb/aichat/style.css';
209
- import '@mxmweb/zui/style.css';
210
- import 'antd/dist/reset.css';
211
- import '@gientech/modual/style.css';
212
- ```
213
-
214
- ## 📚 模块说明
215
-
216
- ### Chat 聊天模块
217
-
218
- ```javascript
219
- import withGientechChatAdopter from '@gientech/modual/chat';
220
-
221
- // 引入样式(必需)
222
- import '@mxmweb/rtext/style.css';
223
- import '@mxmweb/aichat/style.css';
224
- import '@mxmweb/zui/style.css';
225
- import 'antd/dist/reset.css';
226
- import '@gientech/modual/style.css';
227
-
228
- const GientechChat = withGientechChatAdopter();
229
-
230
- function App() {
231
- return (
232
- <GientechChat
233
- token="your-token"
234
- url="https://your-api.com"
235
- styles={{
236
- theme: {
237
- colors: {
238
- primary: '#4E6EF2',
239
- // ... 其他主题配置
240
- }
241
- }
242
- }}
243
- eventsEmit={(eventName, data) => {
244
- console.log('事件:', eventName, data);
245
- }}
246
- />
247
- );
248
- }
249
- ```
250
-
251
- ### StreamFilesReader 流式文件读取器
252
-
253
- ```javascript
254
- import { GientechStreamReader } from '@gientech/modual/streamFilesReader';
255
-
256
- function FileViewer() {
257
- return (
258
- <GientechStreamReader
259
- convertedFilePath="https://example.com/file.pdf"
260
- fileName="example.pdf"
261
- fileType="pdf"
262
- totalPages={10}
263
- authorization="your-token"
264
- streamApiUrl="/api/file/stream"
265
- />
266
- );
267
- }
268
- ```
269
-
270
- ### Database 数据库模块
271
-
272
- ```javascript
273
- import DatabaseViewAdopter from '@gientech/modual/database';
274
-
275
- function DatabasePage() {
276
- return (
277
- <DatabaseViewAdopter
278
- token="your-token"
279
- url="https://your-api.com"
280
- />
281
- );
282
- }
283
- ```
284
-
285
- ### 其他模块
286
-
287
- - `@gientech/modual/databaseId` - 数据库ID模块
288
- - `@gientech/modual/databaseTable` - 数据库表模块
289
- - `@gientech/modual/modelManage` - 模型管理模块
290
- - `@gientech/modual/sensitive` - 敏感词模块
291
-
292
- ## 📦 依赖要求
293
-
294
- ### Peer Dependencies(需要用户自行安装)
295
-
296
- ```json
297
- {
298
- "react": ">=18 <20",
299
- "react-dom": ">=18 <20",
300
- "@mxmweb/fviewer": "^1",
301
- "@mxmweb/rtext": "^1.2.*",
302
- "@mxmweb/zui": "^1.3.x",
303
- "@mxmweb/aichat": "^1.8.0",
304
- "@mxmweb/xviewer": "^1.2.x",
305
- "antd": "^5.18.0",
306
- "axios": "^1.7.2",
307
- "pdfjs-dist": "2.16.105",
308
- "styled-components": "^6.1.19"
309
- }
310
- ```
311
-
312
- ### 安装依赖
313
-
314
- ```bash
315
- npm install react react-dom @mxmweb/fviewer @mxmweb/rtext @mxmweb/zui @mxmweb/aichat @mxmweb/xviewer antd axios pdfjs-dist@2.16.105 styled-components@^6.1.19
316
- ```
317
-
318
- **⚠️ 重要**:`pdfjs-dist` 和 `styled-components` 是 `@mxmweb/fviewer` 的必需依赖,必须安装。
319
-
320
- ## 🔧 打包模式说明
321
-
322
- ### 内联依赖模式(`build`)
323
-
324
- ```bash
325
- npm run build
326
- # 或
327
- cross-env VITE_INLINE_DEPS=true vite build --mode production
328
- ```
329
-
330
- - 将部分依赖打包进 bundle
331
- - 适合独立部署的场景
332
- - Bundle 体积较大
333
-
334
- ### 外部依赖模式(`build:external`,推荐)
335
-
336
- ```bash
337
- npm run build:external
338
- # 或
339
- vite build --mode production
340
- ```
341
-
342
- - 依赖作为 peerDependencies
343
- - 适合 npm 发布
344
- - Bundle 体积较小
345
- - 用户需要安装 peerDependencies
346
-
347
- ## 📝 完整使用示例
348
-
349
- ```javascript
350
- // main.tsx
351
- import React from 'react';
352
- import ReactDOM from 'react-dom/client';
353
- import { registerPDFWorker } from '@gientech/modual';
354
-
355
- // 1. 引入依赖包样式(必需,顺序很重要)
356
- import '@mxmweb/rtext/style.css';
357
- import '@mxmweb/aichat/style.css';
358
- import '@mxmweb/zui/style.css';
359
- import 'antd/dist/reset.css';
360
-
361
- // 2. 引入 gientech 包样式
362
- import '@gientech/modual/style.css';
363
-
364
- import App from './App';
365
-
366
- // 3. 注册 PDF Worker(必须在组件使用前)
367
- registerPDFWorker('/worker/pdf.worker.min.js');
368
-
369
- ReactDOM.createRoot(document.getElementById('root')!).render(
370
- <React.StrictMode>
371
- <App />
372
- </React.StrictMode>
373
- );
374
-
375
- // App.tsx
376
- import React from 'react';
377
- import withGientechChatAdopter from '@gientech/modual/chat';
378
-
379
- const GientechChat = withGientechChatAdopter();
380
-
381
- function App() {
382
- return (
383
- <div style={{ width: '100vw', height: '100vh' }}>
384
- <GientechChat
385
- token="your-token"
386
- url="https://your-api.com"
387
- styles={{
388
- theme: {
389
- colors: {
390
- primary: '#4E6EF2',
391
- background: '#ffffff',
392
- text: '#000000',
393
- }
394
- }
395
- }}
396
- eventsEmit={(eventName, data) => {
397
- console.log('事件:', eventName, data);
398
- }}
399
- />
400
- </div>
401
- );
402
- }
403
-
404
- export default App;
405
- ```
406
-
407
- ## ⚠️ 注意事项
408
-
409
- 1. **PDF Worker 注册**:
410
- - 必须在应用入口处注册
411
- - 只注册一次即可
412
- - Worker 文件路径需要根据实际部署情况调整
413
-
414
- 2. **样式引入**:
415
- - **必须引入所有相关样式文件**,否则组件样式会丢失
416
- - 依赖包样式(必需):
417
- - `@mxmweb/rtext/style.css`
418
- - `@mxmweb/aichat/style.css`
419
- - `@mxmweb/zui/style.css`
420
- - `antd/dist/reset.css`(如果使用 Antd 组件)
421
- - gientech 包样式:`@gientech/modual/style.css`
422
- - **引入顺序**:先引入依赖包样式,再引入 gientech 包样式
423
-
424
- 3. **按需引入**:
425
- - 推荐使用按需引入,减少 bundle 大小
426
- - 例如:`import withGientechChatAdopter from '@gientech/modual/chat'`
427
-
428
- 4. **依赖安装**:
429
- - 确保所有 peerDependencies 已安装
430
- - 版本需要满足 package.json 中的要求
431
-
432
- 5. **TypeScript 支持**:
433
- - 包包含完整的 TypeScript 类型定义
434
- - 类型文件位于 `dist/*.d.ts`
435
-
436
- ## 🐛 常见问题
437
-
438
- ### Q: PDF 预览报错 "PDF Worker 未注册"
439
-
440
- **A**: 需要**在应用入口文件(main.tsx)中**注册 Worker,不能在组件内部注册:
441
-
442
- ```javascript
443
- // main.tsx(应用入口文件)
444
- import { registerPDFWorker } from '@gientech/modual';
445
-
446
- // ⚠️ 必须在组件渲染之前调用!
447
- registerPDFWorker('/worker/pdf.worker.min.js');
448
-
449
- import App from './App';
450
- ReactDOM.createRoot(document.getElementById('root')!).render(<App />);
451
- ```
452
-
453
- **常见错误**:
454
-
455
- 1. **在组件内部注册**(错误):
456
-
457
- ```javascript
458
- function App() {
459
- registerPDFWorker('/worker/pdf.worker.min.js'); // ❌ 错误!
460
- return <YourComponent />;
461
- }
462
- ```
463
-
464
- 2. **在 useEffect 中注册**(错误):
465
-
466
- ```javascript
467
- useEffect(() => {
468
- registerPDFWorker('/worker/pdf.worker.min.js'); // ❌ 错误!可能太晚了
469
- }, []);
470
- ```
471
-
472
- 3. **Worker 文件路径不正确**:
473
- - 确保 `pdf.worker.min.js` 文件存在于 `public/worker/` 目录
474
- - 确保路径与注册时使用的路径一致
475
-
476
- **验证注册是否成功**:
477
-
478
- ```javascript
479
- // 方式一:使用 @mxmweb/fviewer 的检查函数
480
- import { isPDFWorkerRegistered } from '@mxmweb/fviewer';
481
-
482
- if (isPDFWorkerRegistered()) {
483
- console.log('✅ PDF Worker 已注册');
484
- } else {
485
- console.error('❌ PDF Worker 未注册');
486
- }
487
-
488
- // 方式二:直接检查 pdfjs-dist(推荐,更可靠)
489
- import * as pdfjsLib from 'pdfjs-dist';
490
-
491
- if (pdfjsLib.GlobalWorkerOptions.workerSrc) {
492
- console.log('✅ PDF Worker 已注册:', pdfjsLib.GlobalWorkerOptions.workerSrc);
493
- } else {
494
- console.error('❌ PDF Worker 未注册');
495
- }
496
- ```
497
-
498
- **⚠️ 重要提示**:
499
-
500
- 如果 `registerPDFWorker` 显示成功但 `isPDFWorkerRegistered()` 返回 false,可能是因为:
501
-
502
- 1. **多个 pdfjs-dist 实例**:确保项目中只有一个 `pdfjs-dist` 实例
503
-
504
- ```bash
505
- # 检查是否有多个版本
506
- npm ls pdfjs-dist
507
-
508
- # 如果有多版本,统一版本
509
- npm install pdfjs-dist@2.16.105 --save
510
- ```
511
-
512
- 2. **Vite 配置问题**:确保 `pdfjs-dist` 被正确 externalize(见下方配置)
513
-
514
- 3. **模块解析问题**:在 `vite.config.ts` 中添加 `dedupe` 配置:
515
-
516
- ```typescript
517
- resolve: {
518
- dedupe: ['pdfjs-dist', 'styled-components'],
519
- }
520
- ```
521
-
522
- ### Q: 找不到 registerPDFWorker
523
-
524
- **A**: `registerPDFWorker` 可以从以下位置引入:
525
-
526
- ```javascript
527
- // 方式一:从主入口引入(推荐)
528
- import { registerPDFWorker } from '@gientech/modual';
529
-
530
- // 方式二:从 chat 模块引入
531
- import { registerPDFWorker } from '@gientech/modual/chat';
532
-
533
- // 方式三:直接从依赖包引入
534
- import { registerPDFWorker } from '@mxmweb/fviewer';
535
- ```
536
-
537
- **注意**:
538
-
539
- - 如果使用 TypeScript,确保已安装 `@mxmweb/fviewer` 作为 peerDependency
540
- - **必须安装 `pdfjs-dist@2.16.105`**,这是 `@mxmweb/fviewer` 的必需依赖
541
- - 如果使用 Vite,可能需要在 `vite.config.ts` 中将 `pdfjs-dist` 标记为外部依赖(见下方配置示例)
542
-
543
- ### Q: 组件样式丢失或样式差距很大
544
-
545
- **A**: 需要引入**所有相关样式文件**,包括依赖包的样式:
546
-
547
- ```javascript
548
- // 1. 引入依赖包样式(必需)
549
- import '@mxmweb/rtext/style.css';
550
- import '@mxmweb/aichat/style.css';
551
- import '@mxmweb/zui/style.css';
552
- import 'antd/dist/reset.css';
553
-
554
- // 2. 引入 gientech 包样式
555
- import '@gientech/modual/style.css';
556
- ```
557
-
558
- **注意**:
559
-
560
- - 样式引入顺序很重要,建议先引入依赖包样式,再引入 gientech 包样式
561
- - 如果只引入 `@gientech/modual/style.css`,依赖包的样式会丢失,导致组件样式不完整
562
-
563
- ### Q: 打包后 Worker 文件找不到
564
-
565
- **A**: Worker 文件不应被打包,应作为静态资源部署:
566
-
567
- - 将 `pdf.worker.min.js` 放在 `public/worker/` 目录
568
- - 或使用 CDN 提供 Worker 文件
569
-
570
- ### Q: 报错 "Could not resolve pdfjs-dist"
571
-
572
- **A**: 需要安装 `pdfjs-dist` 依赖:
573
-
574
- ```bash
575
- npm install pdfjs-dist@2.16.105
576
- ```
577
-
578
- 如果使用 Vite,可能还需要在 `vite.config.ts` 中配置:
579
-
580
- ```typescript
581
- // vite.config.ts
582
- import { defineConfig } from 'vite';
583
-
584
- export default defineConfig({
585
- // ... 其他配置
586
- build: {
587
- rollupOptions: {
588
- external: ['pdfjs-dist'], // 将 pdfjs-dist 标记为外部依赖
589
- },
590
- },
591
- optimizeDeps: {
592
- include: ['pdfjs-dist'], // 预构建 pdfjs-dist
593
- },
594
- });
595
- ```
596
-
597
- **注意**:`pdfjs-dist` 是 `@mxmweb/fviewer` 的 peerDependency,必须安装。
598
-
599
- ### Q: 报错 "PDF Worker 自动注册失败" 或 "xe3 is not a function"
600
-
601
- **A**: 这是 `@mxmweb/fviewer` 内部自动注册逻辑的问题,可以忽略。**请确保在应用入口处手动注册 Worker**:
602
-
603
- ```javascript
604
- // main.tsx
605
- import { registerPDFWorker } from '@gientech/modual';
606
- registerPDFWorker('/worker/pdf.worker.min.js');
607
- ```
608
-
609
- **原因**:`@mxmweb/fviewer` 内部有自动注册逻辑,但打包后可能因为函数引用问题导致失败。手动注册可以避免这个问题。
610
-
611
- ### Q: 警告 "several instances of 'styled-components'"
612
-
613
- **A**: 这是因为 `styled-components` 被打包进了多个 bundle。解决方案:
614
-
615
- 1. **确保 `styled-components` 被正确 externalize**(在 `gientech` 包中已配置)
616
-
617
- 2. **在用户项目的 `vite.config.ts` 中配置**:
618
-
619
- ```typescript
620
- // vite.config.ts
621
- import { defineConfig } from 'vite';
622
-
623
- export default defineConfig({
624
- resolve: {
625
- dedupe: ['styled-components', 'pdfjs-dist'],
626
- },
627
- optimizeDeps: {
628
- include: ['styled-components'],
629
- },
630
- });
631
- ```
632
-
633
- 3. **检查是否有多个版本**:
634
-
635
- ```bash
636
- npm ls styled-components
637
- # 如果有多版本,统一版本
638
- npm install styled-components@^6.1.19 --save
639
- ```
640
-
641
- **注意**:这个警告通常不会影响功能,但会增加 bundle 大小。建议修复。
642
-
643
- ### Q: Yarn 安装时报错 "Invariant Violation: expected hoisted manifest"
644
-
645
- **错误信息**:
646
- ```
647
- error Invariant Violation: expected hoisted manifest for "@gientech/modual#@mxmweb/zui-components#@mxmweb/zui-elements"
648
- ```
649
-
650
- **原因**:这是因为 `@mxmweb/zui-components` 和 `@mxmweb/zui-elements` 同时出现在 `dependencies` 和 `peerDependencies` 中,导致 Yarn 的 hoisting 算法无法正确解析依赖关系。
651
-
652
- **解决方案**(用户端,无需修改包配置):
653
-
654
- #### 方案一:使用 `resolutions` 强制版本(推荐,适用于 Yarn)
655
-
656
- 在用户项目的 `package.json` 中添加 `resolutions` 字段:
657
-
658
- ```json
659
- {
660
- "resolutions": {
661
- "@mxmweb/zui-components": "1.2.5",
662
- "@mxmweb/zui-elements": "1.1.5",
663
- "@mxmweb/zui-icons": "1.2.2",
664
- "@mxmweb/zui-layouts": "1.3.1",
665
- "@mxmweb/zui-theme": "2.1.5"
666
- }
667
- }
668
- ```
669
-
670
- 然后重新安装:
671
-
672
- ```bash
673
- yarn install
674
- ```
675
-
676
- #### 方案二:使用 `.yarnrc.yml` 配置(适用于 Yarn 2+ / Berry)
677
-
678
- 在项目根目录创建或修改 `.yarnrc.yml` 文件:
679
-
680
- ```yaml
681
- nodeLinker: node-modules
682
-
683
- packageExtensions:
684
- "@gientech/modual@*":
685
- peerDependencies:
686
- "@mxmweb/zui-components": "*"
687
- "@mxmweb/zui-elements": "*"
688
- ```
689
-
690
- 然后重新安装:
691
-
692
- ```bash
693
- yarn install
694
- ```
695
-
696
- #### 方案三:使用 npm 或 pnpm(推荐)
697
-
698
- 如果使用 Yarn 遇到问题,可以切换到 npm 或 pnpm:
699
-
700
- ```bash
701
- # 使用 npm
702
- npm install @gientech/modual
703
-
704
- # 或使用 pnpm
705
- pnpm install @gientech/modual
706
- ```
707
-
708
- #### 方案四:手动安装 peerDependencies
709
-
710
- 先安装 `@gientech/modual` 的 peerDependencies,然后再安装包本身:
711
-
712
- ```bash
713
- # 先安装 peerDependencies
714
- yarn add @mxmweb/zui-components@1.2.5 \
715
- @mxmweb/zui-elements@1.1.5 \
716
- @mxmweb/zui-icons@1.2.2 \
717
- @mxmweb/zui-layouts@1.3.1 \
718
- @mxmweb/zui-theme@2.1.5
719
-
720
- # 再安装 @gientech/modual
721
- yarn add @gientech/modual
722
- ```
723
-
724
- #### 方案五:使用 `--ignore-scripts` 和手动安装
725
-
726
- ```bash
727
- # 先清理
728
- rm -rf node_modules yarn.lock
729
-
730
- # 使用 --ignore-scripts 安装
731
- yarn install --ignore-scripts
732
-
733
- # 手动安装缺失的依赖
734
- yarn add @mxmweb/zui-components@1.2.5 \
735
- @mxmweb/zui-elements@1.1.5 \
736
- @mxmweb/zui-icons@1.2.2 \
737
- @mxmweb/zui-layouts@1.3.1 \
738
- @mxmweb/zui-theme@2.1.5
739
- ```
740
-
741
- **推荐方案**:
742
-
743
- - **Yarn 1.x**:使用方案一(`resolutions`)
744
- - **Yarn 2+ / Berry**:使用方案二(`.yarnrc.yml`)
745
- - **新项目**:使用方案三(npm 或 pnpm)
746
-
747
- **验证安装**:
748
-
749
- 安装完成后,验证依赖是否正确:
750
-
751
- ```bash
752
- # 检查依赖树
753
- yarn list --pattern "@mxmweb/zui-*"
754
-
755
- # 或使用 npm
756
- npm ls @mxmweb/zui-components @mxmweb/zui-elements
757
- ```
758
-
759
- ## 📄 许可证
760
-
761
- MIT
1
+ # @gientech/modual
2
+
3
+ Gientech 多模块集成包,提供聊天、数据库、文件预览等业务模块。
4
+
5
+ ## 📦 安装
6
+
7
+ ```bash
8
+ npm install @gientech/modual
9
+ ```
10
+
11
+ **⚠️ 安装问题?** 如果使用 Yarn 安装时遇到 hoisting 错误,请查看 [安装故障排除指南](./INSTALL_TROUBLESHOOTING.md)。
12
+
13
+ ## 🏗️ 打包逻辑
14
+
15
+ ### 多入口打包架构
16
+
17
+ 本包采用**多入口打包**策略,每个业务模块独立打包,支持按需引入:
18
+
19
+ ```text
20
+ dist/
21
+ ├── index.js # 主入口(导出所有模块)
22
+ ├── chat.js # 聊天模块
23
+ ├── database.js # 数据库模块
24
+ ├── databaseId.js # 数据库ID模块
25
+ ├── databaseTable.js # 数据库表模块
26
+ ├── modelManage.js # 模型管理模块
27
+ ├── sensitive.js # 敏感词模块
28
+ ├── streamFilesReader.js # 流式文件读取器模块
29
+ ├── assets/
30
+ │ └── style.css # 统一样式文件
31
+ └── *.d.ts # TypeScript 类型定义文件
32
+ ```
33
+
34
+ ### 打包配置说明
35
+
36
+ 1. **入口文件**(`vite.config.ts`):
37
+ - `index`: `src/lib_enter.ts` - 主入口,导出所有模块
38
+ - `chat`: `src/modules/chat/index.tsx` - 聊天模块
39
+ - `database`: `src/modules/database/index.tsx` - 数据库模块
40
+ - 其他模块类似...
41
+
42
+ 2. **外部依赖**(不打包进 bundle):
43
+ - `react`, `react-dom`
44
+ - `antd`, `axios`
45
+ - `@mxmweb/*` 系列包
46
+
47
+ 3. **样式处理**:
48
+ - 所有 CSS/LESS 文件合并到 `dist/assets/style.css`
49
+ - 支持通过 `@gientech/modual/style.css` 引入
50
+
51
+ 4. **打包模式**:
52
+ - `build`: 内联依赖模式(`VITE_INLINE_DEPS=true`)
53
+ - `build:external`: 外部依赖模式(推荐用于 npm 发布)
54
+
55
+ ## 🚀 快速开始
56
+
57
+ ### 1. 注册 PDF Worker(必需)
58
+
59
+ **⚠️ 重要:必须在应用入口文件(main.tsx)中注册,不能在组件内部注册!**
60
+
61
+ ```javascript
62
+ // main.tsx(应用入口文件)
63
+ import React from 'react';
64
+ import ReactDOM from 'react-dom/client';
65
+
66
+ // 方式一:从主入口引入(推荐)
67
+ import { registerPDFWorker } from '@gientech/modual';
68
+
69
+ // 方式二:从 chat 模块引入
70
+ // import { registerPDFWorker } from '@gientech/modual/chat';
71
+
72
+ // 方式三:直接从 @mxmweb/fviewer 引入
73
+ // import { registerPDFWorker } from '@mxmweb/fviewer';
74
+
75
+ // ⚠️ 必须在组件渲染之前注册 Worker!
76
+ registerPDFWorker('/worker/pdf.worker.min.js');
77
+
78
+ // 验证注册是否成功(可选)
79
+ import { isPDFWorkerRegistered } from '@mxmweb/fviewer';
80
+ if (isPDFWorkerRegistered()) {
81
+ console.log('PDF Worker 注册成功');
82
+ } else {
83
+ console.error('PDF Worker 注册失败,请检查路径是否正确');
84
+ }
85
+
86
+ import App from './App';
87
+
88
+ ReactDOM.createRoot(document.getElementById('root')!).render(
89
+ <React.StrictMode>
90
+ <App />
91
+ </React.StrictMode>
92
+ );
93
+ ```
94
+
95
+ **❌ 错误示例(不要在组件内部注册):**
96
+
97
+ ```javascript
98
+ // ❌ 错误:在组件内部注册
99
+ function App() {
100
+ registerPDFWorker('/worker/pdf.worker.min.js'); // 错误!
101
+ return <YourComponent />;
102
+ }
103
+ ```
104
+
105
+ **✅ 正确示例(在入口文件注册):**
106
+
107
+ ```javascript
108
+ // ✅ 正确:在入口文件注册
109
+ // main.tsx
110
+ import { registerPDFWorker } from '@gientech/modual';
111
+ registerPDFWorker('/worker/pdf.worker.min.js'); // 在组件渲染前注册
112
+
113
+ import App from './App';
114
+ ReactDOM.createRoot(document.getElementById('root')!).render(<App />);
115
+ ```
116
+
117
+ **Worker 文件部署**:
118
+
119
+ 1. 从 `node_modules/pdfjs-dist/build/pdf.worker.min.js` 复制到 `public/worker/`
120
+ 2. 或使用 CDN 提供 Worker 文件
121
+ 3. 确保路径与注册时使用的路径一致
122
+
123
+ ### 2. 引入样式
124
+
125
+ **⚠️ 重要:必须引入所有相关样式文件,否则组件样式会丢失!**
126
+
127
+ ```javascript
128
+ // 在入口文件引入(推荐)
129
+ // 1. 引入 gientech 包样式
130
+ import '@gientech/modual/style.css';
131
+
132
+ // 2. 引入依赖包的样式(必需)
133
+ import '@mxmweb/rtext/style.css';
134
+ import '@mxmweb/aichat/style.css';
135
+ import '@mxmweb/zui/style.css';
136
+
137
+ // 3. 引入 Antd 样式(如果使用 Antd 组件)
138
+ import 'antd/dist/reset.css';
139
+ // 或者使用 Antd 5.x 的样式
140
+ // import 'antd/dist/reset.css';
141
+ ```
142
+
143
+ **样式引入顺序**(建议按以下顺序):
144
+
145
+ ```javascript
146
+ // main.tsx 或 App.tsx
147
+ // 1. 先引入依赖包样式
148
+ import '@mxmweb/rtext/style.css';
149
+ import '@mxmweb/aichat/style.css';
150
+ import '@mxmweb/zui/style.css';
151
+ import 'antd/dist/reset.css';
152
+
153
+ // 2. 再引入 gientech 包样式
154
+ import '@gientech/modual/style.css';
155
+ ```
156
+
157
+ #### 方式二:在 HTML 中引入
158
+
159
+ ```html
160
+ <link rel="stylesheet" href="./node_modules/@mxmweb/rtext/dist/style.css">
161
+ <link rel="stylesheet" href="./node_modules/@mxmweb/aichat/dist/style.css">
162
+ <link rel="stylesheet" href="./node_modules/@mxmweb/zui/dist/style.css">
163
+ <link rel="stylesheet" href="./node_modules/antd/dist/reset.css">
164
+ <link rel="stylesheet" href="./node_modules/@gientech/modual/dist/assets/style.css">
165
+ ```
166
+
167
+ ### 3. 使用组件
168
+
169
+ #### 方式一:按需引入(推荐)
170
+
171
+ ```javascript
172
+ // 只引入需要的模块,减少 bundle 大小
173
+ import withGientechChatAdopter from '@gientech/modual/chat';
174
+
175
+ // 引入样式(必需)
176
+ import '@mxmweb/rtext/style.css';
177
+ import '@mxmweb/aichat/style.css';
178
+ import '@mxmweb/zui/style.css';
179
+ import 'antd/dist/reset.css';
180
+ import '@gientech/modual/style.css';
181
+
182
+ // 使用高阶组件
183
+ const GientechChat = withGientechChatAdopter();
184
+
185
+ function App() {
186
+ return (
187
+ <GientechChat
188
+ token="your-token"
189
+ url="https://your-api.com"
190
+ // 其他配置...
191
+ />
192
+ );
193
+ }
194
+ ```
195
+
196
+ #### 方式二:从主入口引入
197
+
198
+ ```javascript
199
+ // 引入所有模块(会增加 bundle 大小)
200
+ import {
201
+ withGientechChatAdopter,
202
+ GientechStreamReader,
203
+ registerPDFWorker
204
+ } from '@gientech/modual';
205
+
206
+ // 引入样式(必需)
207
+ import '@mxmweb/rtext/style.css';
208
+ import '@mxmweb/aichat/style.css';
209
+ import '@mxmweb/zui/style.css';
210
+ import 'antd/dist/reset.css';
211
+ import '@gientech/modual/style.css';
212
+ ```
213
+
214
+ ## 📚 模块说明
215
+
216
+ ### Chat 聊天模块
217
+
218
+ ```javascript
219
+ import withGientechChatAdopter from '@gientech/modual/chat';
220
+
221
+ // 引入样式(必需)
222
+ import '@mxmweb/rtext/style.css';
223
+ import '@mxmweb/aichat/style.css';
224
+ import '@mxmweb/zui/style.css';
225
+ import 'antd/dist/reset.css';
226
+ import '@gientech/modual/style.css';
227
+
228
+ const GientechChat = withGientechChatAdopter();
229
+
230
+ function App() {
231
+ return (
232
+ <GientechChat
233
+ token="your-token"
234
+ url="https://your-api.com"
235
+ styles={{
236
+ theme: {
237
+ colors: {
238
+ primary: '#4E6EF2',
239
+ // ... 其他主题配置
240
+ }
241
+ }
242
+ }}
243
+ eventsEmit={(eventName, data) => {
244
+ console.log('事件:', eventName, data);
245
+ }}
246
+ />
247
+ );
248
+ }
249
+ ```
250
+
251
+ ### StreamFilesReader 流式文件读取器
252
+
253
+ ```javascript
254
+ import { GientechStreamReader } from '@gientech/modual/streamFilesReader';
255
+
256
+ function FileViewer() {
257
+ return (
258
+ <GientechStreamReader
259
+ convertedFilePath="https://example.com/file.pdf"
260
+ fileName="example.pdf"
261
+ fileType="pdf"
262
+ totalPages={10}
263
+ authorization="your-token"
264
+ streamApiUrl="/api/file/stream"
265
+ />
266
+ );
267
+ }
268
+ ```
269
+
270
+ ### Database 数据库模块
271
+
272
+ ```javascript
273
+ import DatabaseViewAdopter from '@gientech/modual/database';
274
+
275
+ function DatabasePage() {
276
+ return (
277
+ <DatabaseViewAdopter
278
+ token="your-token"
279
+ url="https://your-api.com"
280
+ />
281
+ );
282
+ }
283
+ ```
284
+
285
+ ### 其他模块
286
+
287
+ - `@gientech/modual/databaseId` - 数据库ID模块
288
+ - `@gientech/modual/databaseTable` - 数据库表模块
289
+ - `@gientech/modual/modelManage` - 模型管理模块
290
+ - `@gientech/modual/sensitive` - 敏感词模块
291
+
292
+ ## 📦 依赖要求
293
+
294
+ ### Peer Dependencies(需要用户自行安装)
295
+
296
+ ```json
297
+ {
298
+ "react": ">=18 <20",
299
+ "react-dom": ">=18 <20",
300
+ "@mxmweb/fviewer": "^1",
301
+ "@mxmweb/rtext": "^1.2.*",
302
+ "@mxmweb/zui": "^1.3.x",
303
+ "@mxmweb/aichat": "^1.8.0",
304
+ "@mxmweb/xviewer": "^1.2.x",
305
+ "antd": "^5.18.0",
306
+ "axios": "^1.7.2",
307
+ "pdfjs-dist": "2.16.105",
308
+ "styled-components": "^6.1.19"
309
+ }
310
+ ```
311
+
312
+ ### 安装依赖
313
+
314
+ ```bash
315
+ npm install react react-dom @mxmweb/fviewer @mxmweb/rtext @mxmweb/zui @mxmweb/aichat @mxmweb/xviewer antd axios pdfjs-dist@2.16.105 styled-components@^6.1.19
316
+ ```
317
+
318
+ **⚠️ 重要**:`pdfjs-dist` 和 `styled-components` 是 `@mxmweb/fviewer` 的必需依赖,必须安装。
319
+
320
+ ## 🔧 打包模式说明
321
+
322
+ ### 内联依赖模式(`build`)
323
+
324
+ ```bash
325
+ npm run build
326
+ # 或
327
+ cross-env VITE_INLINE_DEPS=true vite build --mode production
328
+ ```
329
+
330
+ - 将部分依赖打包进 bundle
331
+ - 适合独立部署的场景
332
+ - Bundle 体积较大
333
+
334
+ ### 外部依赖模式(`build:external`,推荐)
335
+
336
+ ```bash
337
+ npm run build:external
338
+ # 或
339
+ vite build --mode production
340
+ ```
341
+
342
+ - 依赖作为 peerDependencies
343
+ - 适合 npm 发布
344
+ - Bundle 体积较小
345
+ - 用户需要安装 peerDependencies
346
+
347
+ ## 📝 完整使用示例
348
+
349
+ ```javascript
350
+ // main.tsx
351
+ import React from 'react';
352
+ import ReactDOM from 'react-dom/client';
353
+ import { registerPDFWorker } from '@gientech/modual';
354
+
355
+ // 1. 引入依赖包样式(必需,顺序很重要)
356
+ import '@mxmweb/rtext/style.css';
357
+ import '@mxmweb/aichat/style.css';
358
+ import '@mxmweb/zui/style.css';
359
+ import 'antd/dist/reset.css';
360
+
361
+ // 2. 引入 gientech 包样式
362
+ import '@gientech/modual/style.css';
363
+
364
+ import App from './App';
365
+
366
+ // 3. 注册 PDF Worker(必须在组件使用前)
367
+ registerPDFWorker('/worker/pdf.worker.min.js');
368
+
369
+ ReactDOM.createRoot(document.getElementById('root')!).render(
370
+ <React.StrictMode>
371
+ <App />
372
+ </React.StrictMode>
373
+ );
374
+
375
+ // App.tsx
376
+ import React from 'react';
377
+ import withGientechChatAdopter from '@gientech/modual/chat';
378
+
379
+ const GientechChat = withGientechChatAdopter();
380
+
381
+ function App() {
382
+ return (
383
+ <div style={{ width: '100vw', height: '100vh' }}>
384
+ <GientechChat
385
+ token="your-token"
386
+ url="https://your-api.com"
387
+ styles={{
388
+ theme: {
389
+ colors: {
390
+ primary: '#4E6EF2',
391
+ background: '#ffffff',
392
+ text: '#000000',
393
+ }
394
+ }
395
+ }}
396
+ eventsEmit={(eventName, data) => {
397
+ console.log('事件:', eventName, data);
398
+ }}
399
+ />
400
+ </div>
401
+ );
402
+ }
403
+
404
+ export default App;
405
+ ```
406
+
407
+ ## ⚠️ 注意事项
408
+
409
+ 1. **PDF Worker 注册**:
410
+ - 必须在应用入口处注册
411
+ - 只注册一次即可
412
+ - Worker 文件路径需要根据实际部署情况调整
413
+
414
+ 2. **样式引入**:
415
+ - **必须引入所有相关样式文件**,否则组件样式会丢失
416
+ - 依赖包样式(必需):
417
+ - `@mxmweb/rtext/style.css`
418
+ - `@mxmweb/aichat/style.css`
419
+ - `@mxmweb/zui/style.css`
420
+ - `antd/dist/reset.css`(如果使用 Antd 组件)
421
+ - gientech 包样式:`@gientech/modual/style.css`
422
+ - **引入顺序**:先引入依赖包样式,再引入 gientech 包样式
423
+
424
+ 3. **按需引入**:
425
+ - 推荐使用按需引入,减少 bundle 大小
426
+ - 例如:`import withGientechChatAdopter from '@gientech/modual/chat'`
427
+
428
+ 4. **依赖安装**:
429
+ - 确保所有 peerDependencies 已安装
430
+ - 版本需要满足 package.json 中的要求
431
+
432
+ 5. **TypeScript 支持**:
433
+ - 包包含完整的 TypeScript 类型定义
434
+ - 类型文件位于 `dist/*.d.ts`
435
+
436
+ ## 🐛 常见问题
437
+
438
+ ### Q: PDF 预览报错 "PDF Worker 未注册"
439
+
440
+ **A**: 需要**在应用入口文件(main.tsx)中**注册 Worker,不能在组件内部注册:
441
+
442
+ ```javascript
443
+ // main.tsx(应用入口文件)
444
+ import { registerPDFWorker } from '@gientech/modual';
445
+
446
+ // ⚠️ 必须在组件渲染之前调用!
447
+ registerPDFWorker('/worker/pdf.worker.min.js');
448
+
449
+ import App from './App';
450
+ ReactDOM.createRoot(document.getElementById('root')!).render(<App />);
451
+ ```
452
+
453
+ **常见错误**:
454
+
455
+ 1. **在组件内部注册**(错误):
456
+
457
+ ```javascript
458
+ function App() {
459
+ registerPDFWorker('/worker/pdf.worker.min.js'); // ❌ 错误!
460
+ return <YourComponent />;
461
+ }
462
+ ```
463
+
464
+ 2. **在 useEffect 中注册**(错误):
465
+
466
+ ```javascript
467
+ useEffect(() => {
468
+ registerPDFWorker('/worker/pdf.worker.min.js'); // ❌ 错误!可能太晚了
469
+ }, []);
470
+ ```
471
+
472
+ 3. **Worker 文件路径不正确**:
473
+ - 确保 `pdf.worker.min.js` 文件存在于 `public/worker/` 目录
474
+ - 确保路径与注册时使用的路径一致
475
+
476
+ **验证注册是否成功**:
477
+
478
+ ```javascript
479
+ // 方式一:使用 @mxmweb/fviewer 的检查函数
480
+ import { isPDFWorkerRegistered } from '@mxmweb/fviewer';
481
+
482
+ if (isPDFWorkerRegistered()) {
483
+ console.log('✅ PDF Worker 已注册');
484
+ } else {
485
+ console.error('❌ PDF Worker 未注册');
486
+ }
487
+
488
+ // 方式二:直接检查 pdfjs-dist(推荐,更可靠)
489
+ import * as pdfjsLib from 'pdfjs-dist';
490
+
491
+ if (pdfjsLib.GlobalWorkerOptions.workerSrc) {
492
+ console.log('✅ PDF Worker 已注册:', pdfjsLib.GlobalWorkerOptions.workerSrc);
493
+ } else {
494
+ console.error('❌ PDF Worker 未注册');
495
+ }
496
+ ```
497
+
498
+ **⚠️ 重要提示**:
499
+
500
+ 如果 `registerPDFWorker` 显示成功但 `isPDFWorkerRegistered()` 返回 false,可能是因为:
501
+
502
+ 1. **多个 pdfjs-dist 实例**:确保项目中只有一个 `pdfjs-dist` 实例
503
+
504
+ ```bash
505
+ # 检查是否有多个版本
506
+ npm ls pdfjs-dist
507
+
508
+ # 如果有多版本,统一版本
509
+ npm install pdfjs-dist@2.16.105 --save
510
+ ```
511
+
512
+ 2. **Vite 配置问题**:确保 `pdfjs-dist` 被正确 externalize(见下方配置)
513
+
514
+ 3. **模块解析问题**:在 `vite.config.ts` 中添加 `dedupe` 配置:
515
+
516
+ ```typescript
517
+ resolve: {
518
+ dedupe: ['pdfjs-dist', 'styled-components'],
519
+ }
520
+ ```
521
+
522
+ ### Q: 找不到 registerPDFWorker
523
+
524
+ **A**: `registerPDFWorker` 可以从以下位置引入:
525
+
526
+ ```javascript
527
+ // 方式一:从主入口引入(推荐)
528
+ import { registerPDFWorker } from '@gientech/modual';
529
+
530
+ // 方式二:从 chat 模块引入
531
+ import { registerPDFWorker } from '@gientech/modual/chat';
532
+
533
+ // 方式三:直接从依赖包引入
534
+ import { registerPDFWorker } from '@mxmweb/fviewer';
535
+ ```
536
+
537
+ **注意**:
538
+
539
+ - 如果使用 TypeScript,确保已安装 `@mxmweb/fviewer` 作为 peerDependency
540
+ - **必须安装 `pdfjs-dist@2.16.105`**,这是 `@mxmweb/fviewer` 的必需依赖
541
+ - 如果使用 Vite,可能需要在 `vite.config.ts` 中将 `pdfjs-dist` 标记为外部依赖(见下方配置示例)
542
+
543
+ ### Q: 组件样式丢失或样式差距很大
544
+
545
+ **A**: 需要引入**所有相关样式文件**,包括依赖包的样式:
546
+
547
+ ```javascript
548
+ // 1. 引入依赖包样式(必需)
549
+ import '@mxmweb/rtext/style.css';
550
+ import '@mxmweb/aichat/style.css';
551
+ import '@mxmweb/zui/style.css';
552
+ import 'antd/dist/reset.css';
553
+
554
+ // 2. 引入 gientech 包样式
555
+ import '@gientech/modual/style.css';
556
+ ```
557
+
558
+ **注意**:
559
+
560
+ - 样式引入顺序很重要,建议先引入依赖包样式,再引入 gientech 包样式
561
+ - 如果只引入 `@gientech/modual/style.css`,依赖包的样式会丢失,导致组件样式不完整
562
+
563
+ ### Q: 打包后 Worker 文件找不到
564
+
565
+ **A**: Worker 文件不应被打包,应作为静态资源部署:
566
+
567
+ - 将 `pdf.worker.min.js` 放在 `public/worker/` 目录
568
+ - 或使用 CDN 提供 Worker 文件
569
+
570
+ ### Q: 报错 "Could not resolve pdfjs-dist"
571
+
572
+ **A**: 需要安装 `pdfjs-dist` 依赖:
573
+
574
+ ```bash
575
+ npm install pdfjs-dist@2.16.105
576
+ ```
577
+
578
+ 如果使用 Vite,可能还需要在 `vite.config.ts` 中配置:
579
+
580
+ ```typescript
581
+ // vite.config.ts
582
+ import { defineConfig } from 'vite';
583
+
584
+ export default defineConfig({
585
+ // ... 其他配置
586
+ build: {
587
+ rollupOptions: {
588
+ external: ['pdfjs-dist'], // 将 pdfjs-dist 标记为外部依赖
589
+ },
590
+ },
591
+ optimizeDeps: {
592
+ include: ['pdfjs-dist'], // 预构建 pdfjs-dist
593
+ },
594
+ });
595
+ ```
596
+
597
+ **注意**:`pdfjs-dist` 是 `@mxmweb/fviewer` 的 peerDependency,必须安装。
598
+
599
+ ### Q: 报错 "PDF Worker 自动注册失败" 或 "xe3 is not a function"
600
+
601
+ **A**: 这是 `@mxmweb/fviewer` 内部自动注册逻辑的问题,可以忽略。**请确保在应用入口处手动注册 Worker**:
602
+
603
+ ```javascript
604
+ // main.tsx
605
+ import { registerPDFWorker } from '@gientech/modual';
606
+ registerPDFWorker('/worker/pdf.worker.min.js');
607
+ ```
608
+
609
+ **原因**:`@mxmweb/fviewer` 内部有自动注册逻辑,但打包后可能因为函数引用问题导致失败。手动注册可以避免这个问题。
610
+
611
+ ### Q: 警告 "several instances of 'styled-components'"
612
+
613
+ **A**: 这是因为 `styled-components` 被打包进了多个 bundle。解决方案:
614
+
615
+ 1. **确保 `styled-components` 被正确 externalize**(在 `gientech` 包中已配置)
616
+
617
+ 2. **在用户项目的 `vite.config.ts` 中配置**:
618
+
619
+ ```typescript
620
+ // vite.config.ts
621
+ import { defineConfig } from 'vite';
622
+
623
+ export default defineConfig({
624
+ resolve: {
625
+ dedupe: ['styled-components', 'pdfjs-dist'],
626
+ },
627
+ optimizeDeps: {
628
+ include: ['styled-components'],
629
+ },
630
+ });
631
+ ```
632
+
633
+ 3. **检查是否有多个版本**:
634
+
635
+ ```bash
636
+ npm ls styled-components
637
+ # 如果有多版本,统一版本
638
+ npm install styled-components@^6.1.19 --save
639
+ ```
640
+
641
+ **注意**:这个警告通常不会影响功能,但会增加 bundle 大小。建议修复。
642
+
643
+ ### Q: Yarn 安装时报错 "Invariant Violation: expected hoisted manifest"
644
+
645
+ **错误信息**:
646
+ ```
647
+ error Invariant Violation: expected hoisted manifest for "@gientech/modual#@mxmweb/zui-components#@mxmweb/zui-elements"
648
+ ```
649
+
650
+ **原因**:这是因为 `@mxmweb/zui-components` 和 `@mxmweb/zui-elements` 同时出现在 `dependencies` 和 `peerDependencies` 中,导致 Yarn 的 hoisting 算法无法正确解析依赖关系。
651
+
652
+ **解决方案**(用户端,无需修改包配置):
653
+
654
+ #### 方案一:使用 `resolutions` 强制版本(推荐,适用于 Yarn)
655
+
656
+ 在用户项目的 `package.json` 中添加 `resolutions` 字段:
657
+
658
+ ```json
659
+ {
660
+ "resolutions": {
661
+ "@mxmweb/zui-components": "1.2.5",
662
+ "@mxmweb/zui-elements": "1.1.5",
663
+ "@mxmweb/zui-icons": "1.2.2",
664
+ "@mxmweb/zui-layouts": "1.3.1",
665
+ "@mxmweb/zui-theme": "2.1.5"
666
+ }
667
+ }
668
+ ```
669
+
670
+ 然后重新安装:
671
+
672
+ ```bash
673
+ yarn install
674
+ ```
675
+
676
+ #### 方案二:使用 `.yarnrc.yml` 配置(适用于 Yarn 2+ / Berry)
677
+
678
+ 在项目根目录创建或修改 `.yarnrc.yml` 文件:
679
+
680
+ ```yaml
681
+ nodeLinker: node-modules
682
+
683
+ packageExtensions:
684
+ "@gientech/modual@*":
685
+ peerDependencies:
686
+ "@mxmweb/zui-components": "*"
687
+ "@mxmweb/zui-elements": "*"
688
+ ```
689
+
690
+ 然后重新安装:
691
+
692
+ ```bash
693
+ yarn install
694
+ ```
695
+
696
+ #### 方案三:使用 npm 或 pnpm(推荐)
697
+
698
+ 如果使用 Yarn 遇到问题,可以切换到 npm 或 pnpm:
699
+
700
+ ```bash
701
+ # 使用 npm
702
+ npm install @gientech/modual
703
+
704
+ # 或使用 pnpm
705
+ pnpm install @gientech/modual
706
+ ```
707
+
708
+ #### 方案四:手动安装 peerDependencies
709
+
710
+ 先安装 `@gientech/modual` 的 peerDependencies,然后再安装包本身:
711
+
712
+ ```bash
713
+ # 先安装 peerDependencies
714
+ yarn add @mxmweb/zui-components@1.2.5 \
715
+ @mxmweb/zui-elements@1.1.5 \
716
+ @mxmweb/zui-icons@1.2.2 \
717
+ @mxmweb/zui-layouts@1.3.1 \
718
+ @mxmweb/zui-theme@2.1.5
719
+
720
+ # 再安装 @gientech/modual
721
+ yarn add @gientech/modual
722
+ ```
723
+
724
+ #### 方案五:使用 `--ignore-scripts` 和手动安装
725
+
726
+ ```bash
727
+ # 先清理
728
+ rm -rf node_modules yarn.lock
729
+
730
+ # 使用 --ignore-scripts 安装
731
+ yarn install --ignore-scripts
732
+
733
+ # 手动安装缺失的依赖
734
+ yarn add @mxmweb/zui-components@1.2.5 \
735
+ @mxmweb/zui-elements@1.1.5 \
736
+ @mxmweb/zui-icons@1.2.2 \
737
+ @mxmweb/zui-layouts@1.3.1 \
738
+ @mxmweb/zui-theme@2.1.5
739
+ ```
740
+
741
+ **推荐方案**:
742
+
743
+ - **Yarn 1.x**:使用方案一(`resolutions`)
744
+ - **Yarn 2+ / Berry**:使用方案二(`.yarnrc.yml`)
745
+ - **新项目**:使用方案三(npm 或 pnpm)
746
+
747
+ **验证安装**:
748
+
749
+ 安装完成后,验证依赖是否正确:
750
+
751
+ ```bash
752
+ # 检查依赖树
753
+ yarn list --pattern "@mxmweb/zui-*"
754
+
755
+ # 或使用 npm
756
+ npm ls @mxmweb/zui-components @mxmweb/zui-elements
757
+ ```
758
+
759
+ ## 📄 许可证
760
+
761
+ MIT