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

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 (522) 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-BlAyZ4S3.js +943 -0
  18. package/assets/index-CzZQWA2P.js +1 -0
  19. package/{dist/assets/index-CpSzj-Sx.js → assets/index-DHK_n74G.js} +58 -73
  20. package/assets/index-DPA1HCWQ.js +1372 -0
  21. package/assets/index-DPyRygOA.js +745 -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/{dist/assets/style-CfNUqKAA.js → assets/style-D8ou48dh.js} +7 -7
  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/style2.css +0 -1
  66. package/dist/chat.js +0 -1
  67. package/dist/chatCompare.js +0 -1
  68. package/dist/database.js +0 -20
  69. package/dist/index.js +0 -1
  70. package/dist/modelManage.js +0 -1
  71. package/dist/package.json +0 -73
  72. package/dist/streamFilesReader.js +0 -1
  73. package/dist/worker/pdf.worker.min.js +0 -22
  74. package/doc_assets/images/1.png +0 -0
  75. package/doc_assets/images/3.png +0 -0
  76. package/doc_assets/images/component-screenshot.png +0 -1
  77. 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
  78. 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
  79. 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
  80. package/eslint.config.js +0 -92
  81. package/index.html +0 -13
  82. package/package.json.demo-backup +0 -109
  83. package/postcss.config.cjs +0 -19
  84. package/public/icons/answerAwartar.png +0 -0
  85. package/public/icons/docx-file.png +0 -0
  86. package/public/icons/folder.png +0 -0
  87. package/public/icons/html.png +0 -0
  88. package/public/icons/image.png +0 -0
  89. package/public/icons/jpg-file.png +0 -0
  90. package/public/icons/json.png +0 -0
  91. package/public/icons/md.png +0 -0
  92. package/public/icons/pdf.png +0 -0
  93. package/public/icons/pptx.png +0 -0
  94. package/public/icons/questionAwartar.png +0 -0
  95. package/public/icons/sheets.png +0 -0
  96. package/public/icons/txt.png +0 -0
  97. package/public/icons/xlsx.png +0 -0
  98. package/public/vite.svg +0 -1
  99. package/rag/assets/index.Bd0tNzw0.js +0 -2797
  100. package/rag/assets/index.D6t67hlu.css +0 -1
  101. package/rag/assets/left.KBHV5h7q.jpg +0 -0
  102. package/rag/assets/worker-BbpylX7l.DptbXke_.js +0 -13
  103. package/release-it.json +0 -21
  104. package/scripts/README.md +0 -133
  105. package/scripts/build-demo.js +0 -88
  106. package/scripts/check-changelog.cjs +0 -124
  107. package/scripts/check-version.cjs +0 -49
  108. package/scripts/decrypt-api-key.js +0 -95
  109. package/scripts/demo-selector.js +0 -216
  110. package/scripts/dev-demo.js +0 -85
  111. package/scripts/open-file.cjs +0 -61
  112. package/scripts/preview-demo.js +0 -130
  113. package/scripts/run-demo.bat +0 -34
  114. package/src/assets/img/close.png +0 -0
  115. package/src/assets/img/database.png +0 -0
  116. package/src/assets/img/downArrow.png +0 -0
  117. package/src/assets/img/downLoad.png +0 -0
  118. package/src/assets/img/excel.png +0 -0
  119. package/src/assets/img/graphIcon.png +0 -0
  120. package/src/assets/img/img.png +0 -0
  121. package/src/assets/img/pdf.png +0 -0
  122. package/src/assets/img/ppt.png +0 -0
  123. package/src/assets/img/search.svg +0 -3
  124. package/src/assets/img/selected.svg +0 -4
  125. package/src/assets/img/singleQa.png +0 -0
  126. package/src/assets/img/txt.png +0 -0
  127. package/src/assets/img/webSearch.png +0 -0
  128. package/src/assets/img/word.png +0 -0
  129. package/src/assets/login/homeBg.png +0 -0
  130. package/src/assets/login/left.jpg +0 -0
  131. package/src/assets/login/logoImg.png +0 -0
  132. package/src/examples/ConversationAssistantPage/index.tsx +0 -42
  133. package/src/examples/LoginPage/index.tsx +0 -20
  134. package/src/examples/chat/components/DrawerGraphPreview.tsx +0 -78
  135. package/src/examples/chat/index.tsx +0 -171
  136. package/src/examples/chat/logo03.png +0 -0
  137. package/src/examples/chatCompare/icons/rag_think.svg +0 -8
  138. package/src/examples/chatCompare/icons/wenda_lianwangsousuo.svg +0 -9
  139. package/src/examples/chatCompare/index.tsx +0 -154
  140. package/src/examples/gientechStreamFilesReader/index.tsx +0 -979
  141. package/src/examples/headlessChat/assets/mind.svg +0 -6
  142. package/src/examples/headlessChat/assets/net.svg +0 -7
  143. package/src/examples/headlessChat/index.tsx +0 -298
  144. package/src/examples/knowledgebaseDetails/index.tsx +0 -119
  145. package/src/examples/ragDatabaseDataPage/index.tsx +0 -40
  146. package/src/examples/ragDatabaseIdPage/index.tsx +0 -126
  147. package/src/examples/ragDatabasePage/index.tsx +0 -36
  148. package/src/examples/ragModelManagePage/index.tsx +0 -107
  149. package/src/examples/ragModelManagePage/style.css +0 -7
  150. package/src/examples/ragSearchPage/index.tsx +0 -0
  151. package/src/examples/ragSensitiveWordsPage/index.tsx +0 -117
  152. package/src/examples/ragSensitiveWordsPage/style.css +0 -16
  153. package/src/examples/sensitiveId/index.tsx +0 -41
  154. package/src/examples/streamFiles/index.tsx +0 -417
  155. package/src/examples/utils/demo_setting_pannel.ts +0 -0
  156. package/src/lib_enter.ts +0 -44
  157. package/src/main.tsx +0 -5
  158. package/src/main.tsx.backup +0 -5
  159. package/src/modules/CHAT_UNIFICATION_PLAN.md +0 -324
  160. package/src/modules/assistantConfig/assets/databse.svg +0 -6
  161. package/src/modules/assistantConfig/assets/empty.png +0 -0
  162. package/src/modules/assistantConfig/assets/graph.svg +0 -4
  163. package/src/modules/assistantConfig/assets/sensitive.svg +0 -5
  164. package/src/modules/assistantConfig/components/Database.tsx +0 -171
  165. package/src/modules/assistantConfig/components/Graph.tsx +0 -177
  166. package/src/modules/assistantConfig/components/Knowledge.tsx +0 -276
  167. package/src/modules/assistantConfig/components/NotFoundContent.tsx +0 -21
  168. package/src/modules/assistantConfig/components/Paragraph.tsx +0 -51
  169. package/src/modules/assistantConfig/components/ParamsItem.tsx +0 -40
  170. package/src/modules/assistantConfig/components/ResourceBinderItem.tsx +0 -133
  171. package/src/modules/assistantConfig/components/SearchableSelector.tsx +0 -500
  172. package/src/modules/assistantConfig/components/Sensitive.tsx +0 -221
  173. package/src/modules/assistantConfig/components/SliderInput.tsx +0 -66
  174. package/src/modules/assistantConfig/constants.tsx +0 -75
  175. package/src/modules/assistantConfig/index.tsx +0 -785
  176. package/src/modules/assistantConfig/server.ts +0 -262
  177. package/src/modules/chat/AllFiles.tsx +0 -158
  178. package/src/modules/chat/Conversations/Item.tsx +0 -169
  179. package/src/modules/chat/Conversations/List.tsx +0 -210
  180. package/src/modules/chat/Conversations/groupByTime.ts +0 -39
  181. package/src/modules/chat/Conversations/index.tsx +0 -255
  182. package/src/modules/chat/ReferenceBar.tsx +0 -659
  183. package/src/modules/chat/constants.tsx +0 -66
  184. package/src/modules/chat/i18n.ts +0 -151
  185. package/src/modules/chat/i18n.tsx +0 -151
  186. package/src/modules/chat/icons/rag_think.svg +0 -8
  187. package/src/modules/chat/icons/wenda_lianwangsousuo.svg +0 -9
  188. package/src/modules/chat/index.tsx +0 -2400
  189. package/src/modules/chat/referenceCom/DeleteModal.tsx +0 -75
  190. package/src/modules/chat/referenceCom/DrawerContent.tsx +0 -136
  191. package/src/modules/chat/referenceCom/DrawerDatabase.tsx +0 -102
  192. package/src/modules/chat/referenceCom/DrawerGraphPreview.tsx +0 -86
  193. package/src/modules/chat/referenceCom/DrawerPreview.tsx +0 -73
  194. package/src/modules/chat/referenceCom/DrawerTitle.tsx +0 -26
  195. package/src/modules/chat/referenceCom/RenameModal.tsx +0 -86
  196. package/src/modules/chat/referenceCom/TagCom.tsx +0 -30
  197. package/src/modules/chat/style.css +0 -6
  198. package/src/modules/chat/style.less +0 -7
  199. package/src/modules/chat/types.ts +0 -17
  200. package/src/modules/chat/utils/index.ts +0 -348
  201. package/src/modules/chatCompare/UseChatCompareHooks.ts +0 -103
  202. package/src/modules/chatCompare/components/AichatCompareUseController.tsx +0 -754
  203. package/src/modules/chatCompare/components/AssistantSelector.tsx +0 -127
  204. package/src/modules/chatCompare/components/ChatInputer.tsx +0 -67
  205. package/src/modules/chatCompare/components/ChatInstance.tsx +0 -426
  206. package/src/modules/chatCompare/components/ChatItem.tsx +0 -556
  207. package/src/modules/chatCompare/components/Sender/FileCardCommon.tsx +0 -97
  208. package/src/modules/chatCompare/components/Sender/FileUpload.tsx +0 -89
  209. package/src/modules/chatCompare/components/Sender/FilesDisplay.tsx +0 -309
  210. package/src/modules/chatCompare/components/Sender/VoiceInput.tsx +0 -80
  211. package/src/modules/chatCompare/components/Sender/contexts/BadgeContext.tsx +0 -36
  212. package/src/modules/chatCompare/components/Sender/fileIcon.tsx +0 -100
  213. package/src/modules/chatCompare/components/Sender/index.tsx +0 -850
  214. package/src/modules/chatCompare/components/UseChatInstanceHooks.ts +0 -406
  215. package/src/modules/chatCompare/components/UseScrollHooks.ts +0 -36
  216. package/src/modules/chatCompare/components/components/AllFiles.tsx +0 -156
  217. package/src/modules/chatCompare/components/components/DeleteModal.tsx +0 -75
  218. package/src/modules/chatCompare/components/components/DrawerContent.tsx +0 -138
  219. package/src/modules/chatCompare/components/components/DrawerDatabase.tsx +0 -110
  220. package/src/modules/chatCompare/components/components/DrawerGraphPreview.tsx +0 -95
  221. package/src/modules/chatCompare/components/components/DrawerPreview.tsx +0 -75
  222. package/src/modules/chatCompare/components/components/DrawerTitle.tsx +0 -26
  223. package/src/modules/chatCompare/components/components/DrawerVideo.tsx +0 -85
  224. package/src/modules/chatCompare/components/components/ReferenceBar.tsx +0 -659
  225. package/src/modules/chatCompare/components/components/RenameModal.tsx +0 -86
  226. package/src/modules/chatCompare/components/components/TagCom.tsx +0 -30
  227. package/src/modules/chatCompare/components/defaultStyleSet.tsx +0 -148
  228. package/src/modules/chatCompare/components/server.ts +0 -208
  229. package/src/modules/chatCompare/components/serverFn.ts +0 -172
  230. package/src/modules/chatCompare/components/style.less +0 -97
  231. package/src/modules/chatCompare/components/useFileManager.ts +0 -173
  232. package/src/modules/chatCompare/components/utils.ts +0 -31
  233. package/src/modules/chatCompare/data.ts +0 -842
  234. package/src/modules/chatCompare/index.tsx +0 -537
  235. package/src/modules/chatCompare/utils/AiChat.types.tsx +0 -110
  236. package/src/modules/chatCompare/utils/constants.tsx +0 -70
  237. package/src/modules/chatCompare/utils/fileUploadValidator.ts +0 -183
  238. package/src/modules/chatCompare/utils/icons/rag_think.svg +0 -8
  239. package/src/modules/chatCompare/utils/icons/wenda_lianwangsousuo.svg +0 -9
  240. package/src/modules/chatCompare/utils/index.ts +0 -46
  241. package/src/modules/database/CreateModal.tsx +0 -402
  242. package/src/modules/database/assets/Doris.png +0 -0
  243. package/src/modules/database/assets/PostgreSQL.png +0 -0
  244. package/src/modules/database/assets/SQLServer.png +0 -0
  245. package/src/modules/database/assets/database_connect.svg +0 -66
  246. package/src/modules/database/assets/database_upload.svg +0 -29
  247. package/src/modules/database/assets/empty.png +0 -0
  248. package/src/modules/database/index.tsx +0 -477
  249. package/src/modules/database/server.ts +0 -196
  250. package/src/modules/databaseId/CustomCom.tsx +0 -156
  251. package/src/modules/databaseId/EditConfig.tsx +0 -280
  252. package/src/modules/databaseId/UploadDrawer.tsx +0 -535
  253. package/src/modules/databaseId/assets/aiOptimize.svg +0 -10
  254. package/src/modules/databaseId/assets/empty.png +0 -0
  255. package/src/modules/databaseId/assets/template.svg +0 -6
  256. package/src/modules/databaseId/assets/upload.svg +0 -9
  257. package/src/modules/databaseId/assets/useTemp.svg +0 -6
  258. package/src/modules/databaseId/i18n.ts +0 -360
  259. package/src/modules/databaseId/index.tsx +0 -855
  260. package/src/modules/databaseId/server.ts +0 -286
  261. package/src/modules/databaseId/style.css +0 -5
  262. package/src/modules/databaseTable/EditRowDrawer.tsx +0 -124
  263. package/src/modules/databaseTable/index.tsx +0 -359
  264. package/src/modules/databaseTable/server.ts +0 -180
  265. package/src/modules/headlessChat/ReferenceBar.tsx +0 -783
  266. package/src/modules/headlessChat/constants.tsx +0 -54
  267. package/src/modules/headlessChat/index.tsx +0 -1903
  268. package/src/modules/headlessChat/referenceCom/DeleteModal.tsx +0 -75
  269. package/src/modules/headlessChat/referenceCom/DrawerContent.tsx +0 -136
  270. package/src/modules/headlessChat/referenceCom/DrawerDatabase.tsx +0 -102
  271. package/src/modules/headlessChat/referenceCom/DrawerGraphPreview.tsx +0 -86
  272. package/src/modules/headlessChat/referenceCom/DrawerPreview.tsx +0 -73
  273. package/src/modules/headlessChat/referenceCom/DrawerTitle.tsx +0 -26
  274. package/src/modules/headlessChat/referenceCom/RenameModal.tsx +0 -86
  275. package/src/modules/headlessChat/referenceCom/TagCom.tsx +0 -30
  276. package/src/modules/headlessChat/style.less +0 -3
  277. package/src/modules/headlessChat/types.ts +0 -23
  278. package/src/modules/headlessChat/utils/index.ts +0 -348
  279. package/src/modules/knowledgeBase/index.tsx +0 -58
  280. package/src/modules/knowledgeBase/server.ts +0 -196
  281. package/src/modules/knowledgebaseDetails/KnowledgeBaseDetails.tsx +0 -169
  282. package/src/modules/knowledgebaseDetails/components/KnowledgeBaseSummaryCard.tsx +0 -193
  283. package/src/modules/knowledgebaseDetails/components/fileManagementParts.tsx +0 -534
  284. package/src/modules/knowledgebaseDetails/components/index.ts +0 -3
  285. package/src/modules/knowledgebaseDetails/index.ts +0 -3
  286. package/src/modules/knowledgebaseDetails/modules/ConfigModule.tsx +0 -49
  287. package/src/modules/knowledgebaseDetails/modules/FaqModule.tsx +0 -47
  288. package/src/modules/knowledgebaseDetails/modules/KnowledgeParseModule.tsx +0 -771
  289. package/src/modules/knowledgebaseDetails/modules/RetrievalTestModule.tsx +0 -49
  290. package/src/modules/knowledgebaseDetails/modules/UploadManagementModule.tsx +0 -49
  291. package/src/modules/knowledgebaseDetails/modules/types.ts +0 -44
  292. package/src/modules/knowledgebaseDetails/modules-shim.d.ts +0 -14
  293. package/src/modules/knowledgebaseDetails/servers/analysis.ts +0 -5
  294. package/src/modules/knowledgebaseDetails/servers/index.ts +0 -318
  295. package/src/modules/login/components/Login/LoginBox/index.tsx +0 -105
  296. package/src/modules/login/components/Login/RegisterBox/index.tsx +0 -181
  297. package/src/modules/login/components/Login/index.tsx +0 -100
  298. package/src/modules/login/i18n.ts +0 -217
  299. package/src/modules/login/index.tsx +0 -113
  300. package/src/modules/login/style.css +0 -3
  301. package/src/modules/login/useServices.ts +0 -53
  302. package/src/modules/login/utils.ts +0 -42
  303. package/src/modules/modelManage/ConfigDrawer.tsx +0 -267
  304. package/src/modules/modelManage/ReplaceModal.tsx +0 -113
  305. package/src/modules/modelManage/assets/empty.png +0 -0
  306. package/src/modules/modelManage/const.ts +0 -51
  307. package/src/modules/modelManage/i18n.ts +0 -407
  308. package/src/modules/modelManage/index.tsx +0 -668
  309. package/src/modules/modelManage/server.ts +0 -231
  310. package/src/modules/nodegraph/index.tsx +0 -1
  311. package/src/modules/search/assets/Icon-history.svg +0 -8
  312. package/src/modules/search/assets/answerAwartar.png +0 -0
  313. package/src/modules/search/assets/doc.png +0 -0
  314. package/src/modules/search/assets/genera.gif +0 -0
  315. package/src/modules/search/assets/icon-robot.svg +0 -9
  316. package/src/modules/search/assets/icon-search-bar.svg +0 -14
  317. package/src/modules/search/assets/icon-sub-title.svg +0 -3
  318. package/src/modules/search/assets/icon-title.svg +0 -9
  319. package/src/modules/search/assets/icon-zoomOut.svg +0 -9
  320. package/src/modules/search/assets/iconAi.svg +0 -9
  321. package/src/modules/search/assets/pdf.png +0 -0
  322. package/src/modules/search/assets/ppt.png +0 -0
  323. package/src/modules/search/assets/search.svg +0 -3
  324. package/src/modules/search/assets/selected.svg +0 -4
  325. package/src/modules/search/assets/txt.png +0 -0
  326. package/src/modules/search/assets/xls.png +0 -0
  327. package/src/modules/search/components/AssisSelect.tsx +0 -137
  328. package/src/modules/search/components/Editor/ChatViewEditor.tsx +0 -261
  329. package/src/modules/search/components/Editor/aichat.css +0 -1
  330. package/src/modules/search/components/Editor/constant.ts +0 -13
  331. package/src/modules/search/components/Editor/index.tsx +0 -113
  332. package/src/modules/search/components/Editor/plugins/autofomatRules.ts +0 -332
  333. package/src/modules/search/components/Editor/plugins/convertImgPlugins.tsx +0 -20
  334. package/src/modules/search/components/Editor/plugins/createIndexes.tsx +0 -38
  335. package/src/modules/search/components/Editor/plugins/displayer.ts +0 -298
  336. package/src/modules/search/components/Editor/plugins/imageClick.tsx +0 -32
  337. package/src/modules/search/components/Editor/plugins/myplugin.tsx +0 -98
  338. package/src/modules/search/components/Editor/ui/avatar.tsx +0 -19
  339. package/src/modules/search/components/Editor/ui/blockquote-element.tsx +0 -21
  340. package/src/modules/search/components/Editor/ui/button.tsx +0 -58
  341. package/src/modules/search/components/Editor/ui/calendar.tsx +0 -68
  342. package/src/modules/search/components/Editor/ui/caption.tsx +0 -46
  343. package/src/modules/search/components/Editor/ui/checkbox.tsx +0 -27
  344. package/src/modules/search/components/Editor/ui/code-block-combobox.tsx +0 -188
  345. package/src/modules/search/components/Editor/ui/code-block-element.css +0 -434
  346. package/src/modules/search/components/Editor/ui/code-block-element.tsx +0 -39
  347. package/src/modules/search/components/Editor/ui/code-leaf.tsx +0 -24
  348. package/src/modules/search/components/Editor/ui/code-line-element.tsx +0 -10
  349. package/src/modules/search/components/Editor/ui/code-syntax-leaf.tsx +0 -21
  350. package/src/modules/search/components/Editor/ui/column-element.tsx +0 -30
  351. package/src/modules/search/components/Editor/ui/column-group-element.tsx +0 -94
  352. package/src/modules/search/components/Editor/ui/command.tsx +0 -75
  353. package/src/modules/search/components/Editor/ui/comment-avatar.tsx +0 -22
  354. package/src/modules/search/components/Editor/ui/comment-create-form.tsx +0 -37
  355. package/src/modules/search/components/Editor/ui/comment-item.tsx +0 -74
  356. package/src/modules/search/components/Editor/ui/comment-leaf.tsx +0 -49
  357. package/src/modules/search/components/Editor/ui/comment-more-dropdown.tsx +0 -42
  358. package/src/modules/search/components/Editor/ui/comment-reply-items.tsx +0 -22
  359. package/src/modules/search/components/Editor/ui/comment-resolve-button.tsx +0 -32
  360. package/src/modules/search/components/Editor/ui/comment-value.tsx +0 -34
  361. package/src/modules/search/components/Editor/ui/comments-popover.tsx +0 -63
  362. package/src/modules/search/components/Editor/ui/date-element.tsx +0 -83
  363. package/src/modules/search/components/Editor/ui/dialog.tsx +0 -63
  364. package/src/modules/search/components/Editor/ui/draggable.tsx +0 -177
  365. package/src/modules/search/components/Editor/ui/dropdown-menu.tsx +0 -180
  366. package/src/modules/search/components/Editor/ui/emoji-input-element.tsx +0 -85
  367. package/src/modules/search/components/Editor/ui/excalidraw-element.tsx +0 -28
  368. package/src/modules/search/components/Editor/ui/fixed-toolbar-buttons.tsx +0 -76
  369. package/src/modules/search/components/Editor/ui/fixed-toolbar.tsx +0 -8
  370. package/src/modules/search/components/Editor/ui/floating-toolbar-buttons.tsx +0 -51
  371. package/src/modules/search/components/Editor/ui/floating-toolbar.tsx +0 -77
  372. package/src/modules/search/components/Editor/ui/heading-element.tsx +0 -48
  373. package/src/modules/search/components/Editor/ui/highlight-leaf.tsx +0 -17
  374. package/src/modules/search/components/Editor/ui/hr-element.tsx +0 -30
  375. package/src/modules/search/components/Editor/ui/icons.tsx +0 -267
  376. package/src/modules/search/components/Editor/ui/image-element.tsx +0 -74
  377. package/src/modules/search/components/Editor/ui/inline-combobox.tsx +0 -368
  378. package/src/modules/search/components/Editor/ui/input.tsx +0 -25
  379. package/src/modules/search/components/Editor/ui/insert-dropdown-menu.tsx +0 -218
  380. package/src/modules/search/components/Editor/ui/kbd-leaf.tsx +0 -20
  381. package/src/modules/search/components/Editor/ui/link-element.tsx +0 -29
  382. package/src/modules/search/components/Editor/ui/link-floating-toolbar.tsx +0 -161
  383. package/src/modules/search/components/Editor/ui/list-element.tsx +0 -30
  384. package/src/modules/search/components/Editor/ui/mark-toolbar-button.tsx +0 -24
  385. package/src/modules/search/components/Editor/ui/media-embed-element.tsx +0 -133
  386. package/src/modules/search/components/Editor/ui/media-popover.tsx +0 -97
  387. package/src/modules/search/components/Editor/ui/mention-element.tsx +0 -43
  388. package/src/modules/search/components/Editor/ui/mention-input-element.tsx +0 -141
  389. package/src/modules/search/components/Editor/ui/mode-dropdown-menu.tsx +0 -93
  390. package/src/modules/search/components/Editor/ui/more-dropdown-menu.tsx +0 -67
  391. package/src/modules/search/components/Editor/ui/paragraph-element.tsx +0 -4
  392. package/src/modules/search/components/Editor/ui/placeholder.tsx +0 -52
  393. package/src/modules/search/components/Editor/ui/popover.tsx +0 -32
  394. package/src/modules/search/components/Editor/ui/resizable.tsx +0 -66
  395. package/src/modules/search/components/Editor/ui/separator.tsx +0 -25
  396. package/src/modules/search/components/Editor/ui/style.less +0 -12
  397. package/src/modules/search/components/Editor/ui/table-cell-element.tsx +0 -143
  398. package/src/modules/search/components/Editor/ui/table-element.tsx +0 -243
  399. package/src/modules/search/components/Editor/ui/table-row-element.tsx +0 -22
  400. package/src/modules/search/components/Editor/ui/tableValue.tsx +0 -135
  401. package/src/modules/search/components/Editor/ui/todo-list-element.tsx +0 -43
  402. package/src/modules/search/components/Editor/ui/toggle-element.tsx +0 -31
  403. package/src/modules/search/components/Editor/ui/toolbar.tsx +0 -157
  404. package/src/modules/search/components/Editor/ui/tooltip.tsx +0 -65
  405. package/src/modules/search/components/Editor/ui/turn-into-dropdown-menu.tsx +0 -160
  406. package/src/modules/search/components/Editor/ui/with-draggables.tsx +0 -175
  407. package/src/modules/search/components/FileList.tsx +0 -287
  408. package/src/modules/search/components/ImageGroupView/index.tsx +0 -85
  409. package/src/modules/search/components/ResultContent.tsx +0 -232
  410. package/src/modules/search/components/SearchInput.tsx +0 -232
  411. package/src/modules/search/components/SearchLanding.tsx +0 -74
  412. package/src/modules/search/components/SearchView.tsx +0 -563
  413. package/src/modules/search/components/SimpleEditor.tsx +0 -158
  414. package/src/modules/search/components/SimpleFileList.tsx +0 -215
  415. package/src/modules/search/index.tsx +0 -10
  416. package/src/modules/search/reademe.md +0 -1
  417. package/src/modules/search/servers/apis.tsx +0 -19
  418. package/src/modules/search/servers/index.ts +0 -184
  419. package/src/modules/search/style.less +0 -503
  420. package/src/modules/search/type.ts +0 -22
  421. package/src/modules/search/utils.ts +0 -34
  422. package/src/modules/sensitive/i18n.ts +0 -391
  423. package/src/modules/sensitive/index.tsx +0 -604
  424. package/src/modules/sensitive/sensitiveEditor.tsx +0 -543
  425. package/src/modules/sensitive/server.ts +0 -197
  426. package/src/modules/sensitiveId/AutoTag.tsx +0 -311
  427. package/src/modules/sensitiveId/UploadModal.tsx +0 -181
  428. package/src/modules/sensitiveId/VirtualWrap.tsx +0 -125
  429. package/src/modules/sensitiveId/index.tsx +0 -253
  430. package/src/modules/sensitiveId/server.ts +0 -142
  431. package/src/modules/streamFilesReader/GientechStreamReader.tsx +0 -1658
  432. package/src/modules/streamFilesReader/components/Header/Toolbar.tsx +0 -0
  433. package/src/modules/streamFilesReader/components/Header/index.tsx +0 -297
  434. package/src/modules/streamFilesReader/index.tsx +0 -3
  435. package/src/style.css +0 -6
  436. package/src/type.d.ts +0 -0
  437. package/src/utils/commonFn.tsx +0 -153
  438. package/src/utils/decryptApiKey.ts +0 -40
  439. package/src/utils/gientechCommon/components/AppError.tsx +0 -32
  440. package/src/utils/gientechCommon/components/AppLoading.tsx +0 -75
  441. package/src/utils/gientechCommon/components/DeleteModal.tsx +0 -75
  442. package/src/utils/gientechCommon/components/DisplayError.tsx +0 -33
  443. package/src/utils/gientechCommon/components/DisplayLoading.tsx +0 -38
  444. package/src/utils/gientechCommon/components/FeedBackModal.tsx +0 -319
  445. package/src/utils/gientechCommon/components/FileCardCommon.tsx +0 -82
  446. package/src/utils/gientechCommon/components/FileManager/index.tsx +0 -418
  447. package/src/utils/gientechCommon/components/FileManager/style.css +0 -5
  448. package/src/utils/gientechCommon/components/Messages/GientechNewChatWelcome.tsx +0 -583
  449. package/src/utils/gientechCommon/components/Messages/ReferenceCard.tsx +0 -359
  450. package/src/utils/gientechCommon/components/Messages/RetriveItem.tsx +0 -245
  451. package/src/utils/gientechCommon/components/Messages/WebRetriveItem.tsx +0 -209
  452. package/src/utils/gientechCommon/components/Messages/defaultBot.png +0 -0
  453. package/src/utils/gientechCommon/components/Messages/defaultStyleSet.tsx +0 -148
  454. package/src/utils/gientechCommon/components/Messages/defaultWeLogo.svg +0 -14
  455. package/src/utils/gientechCommon/components/RenameModal.tsx +0 -86
  456. package/src/utils/gientechCommon/components/style.less +0 -11
  457. package/src/utils/gientechCommon/configs/commonConfig.ts +0 -2
  458. package/src/utils/gientechCommon/configs/senderConfig.ts +0 -0
  459. package/src/utils/gientechCommon/configs/stylesConfig.ts +0 -142
  460. package/src/utils/gientechCommon/hooks/AichatUseController.tsx +0 -761
  461. package/src/utils/gientechCommon/hooks/style.less +0 -8
  462. package/src/utils/gientechCommon/hooks/useFileDisplayTools.tsx +0 -352
  463. package/src/utils/gientechCommon/hooks/useFileManager.ts +0 -169
  464. package/src/utils/gientechCommon/slate/converters/deserializers.ts +0 -763
  465. package/src/utils/gientechCommon/slate/converters/mockData.ts +0 -232
  466. package/src/utils/gientechCommon/slate/converters/slateConverters.ts +0 -258
  467. package/src/utils/gientechCommon/slate/richElements/index.tsx +0 -499
  468. package/src/utils/gientechCommon/utils/fileUtils.ts +0 -86
  469. package/src/utils/gientechCommon/utils/index.ts +0 -386
  470. package/src/utils/gientechCommon/utils/request.ts +0 -37
  471. package/src/utils/gientechCommon/utils/serverFn.ts +0 -172
  472. package/src/utils/index.tsx +0 -186
  473. package/src/utils/testconfigs/demologin/index.tsx +0 -32
  474. package/src/utils/testconfigs/index.ts +0 -66
  475. package/src/vite-env.d.ts +0 -49
  476. package/stats.html +0 -4949
  477. package/tailwind.config.js +0 -170
  478. package/tsconfig.app.json +0 -31
  479. package/tsconfig.app.tsbuildinfo +0 -11
  480. package/tsconfig.json +0 -17
  481. package/tsconfig.node.json +0 -23
  482. package/tsconfig.node.tsbuildinfo +0 -1
  483. package/vite.config.app.ts +0 -91
  484. package/vite.config.ts +0 -238
  485. /package/{dist/assets → assets}/Doris.png +0 -0
  486. /package/{dist/assets → assets}/PostgreSQL.png +0 -0
  487. /package/{dist/assets → assets}/SQLServer.png +0 -0
  488. /package/{dist/assets → assets}/empty.png +0 -0
  489. /package/{dist/assets → assets}/homeBg.png +0 -0
  490. /package/{dist/assets → assets}/index-CpW6Dhpp.js +0 -0
  491. /package/{dist/assets → assets}/left.jpg +0 -0
  492. /package/{dist/assets → assets}/logoImg.png +0 -0
  493. /package/{dist/assets → assets}/style.css +0 -0
  494. /package/{dist/assets → assets}/style3.css +0 -0
  495. /package/{dist/assets → assets}/style4.css +0 -0
  496. /package/{dist/assets → assets}/style5.css +0 -0
  497. /package/{dist/assets → assets}/worker-BbpylX7l.js +0 -0
  498. /package/{dist/assistantConfig.d.ts → assistantConfig.d.ts} +0 -0
  499. /package/{dist/chat.d.ts → chat.d.ts} +0 -0
  500. /package/{dist/chatCompare.d.ts → chatCompare.d.ts} +0 -0
  501. /package/{dist/database.d.ts → database.d.ts} +0 -0
  502. /package/{dist/databaseId.d.ts → databaseId.d.ts} +0 -0
  503. /package/{dist/databaseTable.d.ts → databaseTable.d.ts} +0 -0
  504. /package/{dist/icons → icons}/answerAwartar.png +0 -0
  505. /package/{dist/icons → icons}/docx-file.png +0 -0
  506. /package/{dist/icons → icons}/folder.png +0 -0
  507. /package/{dist/icons → icons}/html.png +0 -0
  508. /package/{dist/icons → icons}/image.png +0 -0
  509. /package/{dist/icons → icons}/jpg-file.png +0 -0
  510. /package/{dist/icons → icons}/json.png +0 -0
  511. /package/{dist/icons → icons}/md.png +0 -0
  512. /package/{dist/icons → icons}/pdf.png +0 -0
  513. /package/{dist/icons → icons}/pptx.png +0 -0
  514. /package/{dist/icons → icons}/questionAwartar.png +0 -0
  515. /package/{dist/icons → icons}/sheets.png +0 -0
  516. /package/{dist/icons → icons}/txt.png +0 -0
  517. /package/{dist/icons → icons}/xlsx.png +0 -0
  518. /package/{dist/index.d.ts → index.d.ts} +0 -0
  519. /package/{dist/modelManage.d.ts → modelManage.d.ts} +0 -0
  520. /package/{dist/sensitive.d.ts → sensitive.d.ts} +0 -0
  521. /package/{dist/streamFilesReader.d.ts → streamFilesReader.d.ts} +0 -0
  522. /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