@gientech/modual 1.2.7 → 1.2.9-fix

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 (377) hide show
  1. package/.editorconfig +38 -0
  2. package/.prettierignore +16 -0
  3. package/.prettierrc +17 -0
  4. package/README.md +643 -129
  5. package/USAGE.md +247 -0
  6. package/bash.exe.stackdump +40 -0
  7. package/components.json +21 -0
  8. package/dist/README.md +643 -0
  9. package/dist/assets/GientechStreamReader-C21-q_Qv.js +449 -0
  10. package/dist/assets/chevron-down-DjLtKwcs.js +280 -0
  11. package/{assets → dist/assets}/database.svg +11 -11
  12. package/{assets → dist/assets}/database_add.svg +53 -53
  13. package/{assets → dist/assets}/database_connect.svg +66 -66
  14. package/{assets → dist/assets}/database_upload.svg +29 -29
  15. package/dist/assets/databse.svg +6 -0
  16. package/{assets → dist/assets}/defaultWeLogo.svg +14 -14
  17. package/dist/assets/graph.svg +4 -0
  18. package/dist/assets/homeBg.png +0 -0
  19. package/dist/assets/index-BMz4lcjQ.js +1 -0
  20. package/dist/assets/index-C3Viu8Oj.js +1 -0
  21. package/dist/assets/index-C9GlPyHu.js +13 -0
  22. package/dist/assets/index-CRbX3ZA1.js +1 -0
  23. package/dist/assets/index-CTwzi_v2.js +21 -0
  24. package/dist/assets/index-DQlLDleQ.js +11 -0
  25. package/dist/assets/index-DRU1P9R0.js +1150 -0
  26. package/dist/assets/index-Dqej68NT.js +585 -0
  27. package/dist/assets/index-ECprhahs.js +157 -0
  28. package/dist/assets/index-i7qcZOwY.js +1088 -0
  29. package/dist/assets/knowledge.svg +4 -0
  30. package/dist/assets/left.jpg +0 -0
  31. package/dist/assets/logoImg.png +0 -0
  32. package/{assets/MySQL.svg → dist/assets/mysql.svg} +14 -14
  33. package/{assets/plus-fNg4vmeA.js → dist/assets/plus-CvJRSbOe.js} +1 -1
  34. package/dist/assets/sensitive.svg +5 -0
  35. package/dist/assets/style.css +1 -0
  36. package/dist/assets/style3.css +1 -0
  37. package/dist/assets/worker-BbpylX7l.js +13 -0
  38. package/{assets/x-tMUaBf0a.js → dist/assets/x-DKPeLdlu.js} +1 -1
  39. package/dist/assistantConfig.d.ts +31 -0
  40. package/dist/assistantConfig.js +1 -0
  41. package/{chat.d.ts → dist/chat.d.ts} +25 -1
  42. package/dist/chat.js +842 -0
  43. package/dist/database.js +20 -0
  44. package/dist/databaseId.js +1 -0
  45. package/dist/databaseTable.js +6 -0
  46. package/dist/index.d.ts +85 -0
  47. package/dist/index.js +1 -0
  48. package/dist/modelManage.js +1 -0
  49. package/dist/package.json +68 -0
  50. package/dist/sensitive.js +1 -0
  51. package/{streamFilesReader.d.ts → dist/streamFilesReader.d.ts} +3 -0
  52. package/dist/streamFilesReader.js +1 -0
  53. package/{worker → dist/worker}/pdf.worker.min.js +21 -21
  54. package/doc_assets/2.png +0 -0
  55. package/doc_assets/demo.md +27 -0
  56. package/doc_assets/demos/dist-app/assets/index.Dh-ZAS9Z.css +2 -0
  57. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js +23699 -0
  58. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js.map +1 -0
  59. package/doc_assets/demos/dist-app/index.html +14 -0
  60. package/doc_assets/demos/dist-app/vite.svg +1 -0
  61. package/doc_assets/images/1.png +0 -0
  62. package/doc_assets/images/3.png +0 -0
  63. package/doc_assets/images/component-screenshot.png +1 -0
  64. package/doc_assets/install.md +5 -0
  65. 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 +504 -0
  66. package/eslint.config.js +92 -0
  67. package/index.html +13 -0
  68. package/package.json +109 -40
  69. package/package.json.demo-backup +109 -0
  70. package/postcss.config.cjs +19 -0
  71. package/public/vite.svg +1 -0
  72. package/public/worker/pdf.worker.min.js +22 -0
  73. package/scripts/README.md +133 -0
  74. package/scripts/build-demo.js +88 -0
  75. package/scripts/demo-selector.js +216 -0
  76. package/scripts/dev-demo.js +76 -0
  77. package/scripts/preview-demo.js +130 -0
  78. package/scripts/run-demo.bat +34 -0
  79. package/src/assets/img/close.png +0 -0
  80. package/src/assets/img/database.png +0 -0
  81. package/src/assets/img/downArrow.png +0 -0
  82. package/src/assets/img/downLoad.png +0 -0
  83. package/src/assets/img/excel.png +0 -0
  84. package/src/assets/img/graphIcon.png +0 -0
  85. package/src/assets/img/img.png +0 -0
  86. package/src/assets/img/pdf.png +0 -0
  87. package/src/assets/img/ppt.png +0 -0
  88. package/src/assets/img/singleQa.png +0 -0
  89. package/src/assets/img/txt.png +0 -0
  90. package/src/assets/img/webSearch.png +0 -0
  91. package/src/assets/img/word.png +0 -0
  92. package/src/assets/login/homeBg.png +0 -0
  93. package/src/assets/login/left.jpg +0 -0
  94. package/src/assets/login/logoImg.png +0 -0
  95. package/src/examples/ConversationAssistantPage/index.tsx +37 -0
  96. package/src/examples/Demo/index.tsx +12 -0
  97. package/src/examples/LoginPage/index.tsx +18 -0
  98. package/src/examples/chat/components/DrawerGraphPreview.tsx +78 -0
  99. package/src/examples/chat/index.tsx +153 -0
  100. package/src/examples/chat/logo03.png +0 -0
  101. package/src/examples/gientechStreamFilesReader/index.tsx +951 -0
  102. package/src/examples/ragDatabaseDataPage/index.tsx +36 -0
  103. package/src/examples/ragDatabaseIdPage/index.tsx +44 -0
  104. package/src/examples/ragDatabasePage/index.tsx +36 -0
  105. package/src/examples/ragModelManagePage/index.tsx +37 -0
  106. package/src/examples/ragSearchPage/index.tsx +0 -0
  107. package/src/examples/ragSensitiveWordsPage/index.tsx +32 -0
  108. package/src/examples/streamFiles/index.tsx +384 -0
  109. package/src/lib_enter.ts +43 -0
  110. package/src/main.tsx +5 -0
  111. package/src/main.tsx.backup +5 -0
  112. package/src/modules/assistantConfig/assets/databse.svg +6 -0
  113. package/src/modules/assistantConfig/assets/empty.png +0 -0
  114. package/src/modules/assistantConfig/assets/graph.svg +4 -0
  115. package/src/modules/assistantConfig/assets/knowledge.svg +4 -0
  116. package/src/modules/assistantConfig/assets/sensitive.svg +5 -0
  117. package/src/modules/assistantConfig/components/Database.tsx +144 -0
  118. package/src/modules/assistantConfig/components/Graph.tsx +156 -0
  119. package/src/modules/assistantConfig/components/Knowledge.tsx +266 -0
  120. package/src/modules/assistantConfig/components/NotFoundContent.tsx +21 -0
  121. package/src/modules/assistantConfig/components/Paragraph.tsx +51 -0
  122. package/src/modules/assistantConfig/components/ParamsItem.tsx +39 -0
  123. package/src/modules/assistantConfig/components/ResourceBinderItem.tsx +132 -0
  124. package/src/modules/assistantConfig/components/SearchableSelector.tsx +500 -0
  125. package/src/modules/assistantConfig/components/Sensitive.tsx +179 -0
  126. package/src/modules/assistantConfig/components/SliderInput.tsx +65 -0
  127. package/src/modules/assistantConfig/constants.tsx +74 -0
  128. package/src/modules/assistantConfig/index.tsx +700 -0
  129. package/src/modules/assistantConfig/server.ts +262 -0
  130. package/src/modules/chat/Conversations/Item.tsx +167 -0
  131. package/src/modules/chat/Conversations/List.tsx +210 -0
  132. package/src/modules/chat/Conversations/groupByTime.ts +39 -0
  133. package/src/modules/chat/Conversations/index.tsx +230 -0
  134. package/src/modules/chat/ReferenceBar.tsx +592 -0
  135. package/src/modules/chat/constants.tsx +56 -0
  136. package/src/modules/chat/data.txt +82 -0
  137. package/src/modules/chat/index.tsx +2081 -0
  138. package/src/modules/chat/referenceCom/DeleteModal.tsx +75 -0
  139. package/src/modules/chat/referenceCom/DrawerContent.tsx +136 -0
  140. package/src/modules/chat/referenceCom/DrawerDatabase.tsx +110 -0
  141. package/src/modules/chat/referenceCom/DrawerGraphPreview.tsx +86 -0
  142. package/src/modules/chat/referenceCom/DrawerPreview.tsx +73 -0
  143. package/src/modules/chat/referenceCom/DrawerTitle.tsx +26 -0
  144. package/src/modules/chat/referenceCom/RenameModal.tsx +86 -0
  145. package/src/modules/chat/referenceCom/TagCom.tsx +30 -0
  146. package/src/modules/chat/style.less +3 -0
  147. package/src/modules/chat/types.ts +17 -0
  148. package/src/modules/chat/utils/index.ts +326 -0
  149. package/src/modules/database/CreateModal.tsx +398 -0
  150. package/src/modules/database/assets/Doris.png +0 -0
  151. package/src/modules/database/assets/PostgreSQL.png +0 -0
  152. package/src/modules/database/assets/SQLServer.png +0 -0
  153. package/src/modules/database/assets/database.svg +11 -0
  154. package/src/modules/database/assets/database_add.svg +53 -0
  155. package/src/modules/database/assets/database_connect.svg +66 -0
  156. package/src/modules/database/assets/database_upload.svg +29 -0
  157. package/src/modules/database/assets/empty.png +0 -0
  158. package/src/modules/database/assets/mysql.svg +14 -0
  159. package/src/modules/database/index.tsx +466 -0
  160. package/src/modules/database/server.ts +196 -0
  161. package/src/modules/databaseId/CustomCom.tsx +156 -0
  162. package/src/modules/databaseId/EditConfig.tsx +268 -0
  163. package/src/modules/databaseId/UploadDrawer.tsx +520 -0
  164. package/src/modules/databaseId/assets/aiOptimize.svg +10 -0
  165. package/src/modules/databaseId/assets/empty.png +0 -0
  166. package/src/modules/databaseId/assets/template.svg +6 -0
  167. package/src/modules/databaseId/assets/upload.svg +9 -0
  168. package/src/modules/databaseId/assets/useTemp.svg +6 -0
  169. package/src/modules/databaseId/index.tsx +734 -0
  170. package/src/modules/databaseId/server.ts +286 -0
  171. package/src/modules/databaseId/style.css +5 -0
  172. package/src/modules/databaseTable/EditRowDrawer.tsx +119 -0
  173. package/src/modules/databaseTable/index.tsx +357 -0
  174. package/src/modules/databaseTable/server.ts +180 -0
  175. package/src/modules/headlessChat/constants.tsx +32 -0
  176. package/src/modules/headlessChat/index.tsx +1063 -0
  177. package/src/modules/headlessChat/types.ts +23 -0
  178. package/src/modules/login/components/Login/LoginBox/index.tsx +102 -0
  179. package/src/modules/login/components/Login/RegisterBox/index.tsx +180 -0
  180. package/src/modules/login/components/Login/index.tsx +100 -0
  181. package/src/modules/login/index.tsx +106 -0
  182. package/src/modules/login/style.css +3 -0
  183. package/src/modules/login/useServices.ts +53 -0
  184. package/src/modules/login/utils.ts +42 -0
  185. package/src/modules/modelManage/ConfigDrawer.tsx +249 -0
  186. package/src/modules/modelManage/assets/empty.png +0 -0
  187. package/src/modules/modelManage/const.ts +50 -0
  188. package/src/modules/modelManage/index.tsx +439 -0
  189. package/src/modules/modelManage/server.ts +185 -0
  190. package/src/modules/nodegraph/index.tsx +1 -0
  191. package/src/modules/search/assets/Icon-history.svg +8 -0
  192. package/src/modules/search/assets/answerAwartar.png +0 -0
  193. package/src/modules/search/assets/doc.png +0 -0
  194. package/src/modules/search/assets/genera.gif +0 -0
  195. package/src/modules/search/assets/icon-robot.svg +9 -0
  196. package/src/modules/search/assets/icon-search-bar.svg +14 -0
  197. package/src/modules/search/assets/icon-sub-title.svg +3 -0
  198. package/src/modules/search/assets/icon-title.svg +9 -0
  199. package/src/modules/search/assets/icon-zoomOut.svg +9 -0
  200. package/src/modules/search/assets/iconAi.svg +9 -0
  201. package/src/modules/search/assets/pdf.png +0 -0
  202. package/src/modules/search/assets/ppt.png +0 -0
  203. package/src/modules/search/assets/search.svg +3 -0
  204. package/src/modules/search/assets/selected.svg +4 -0
  205. package/src/modules/search/assets/txt.png +0 -0
  206. package/src/modules/search/assets/xls.png +0 -0
  207. package/src/modules/search/components/AssisSelect.tsx +137 -0
  208. package/src/modules/search/components/Editor/ChatViewEditor.tsx +261 -0
  209. package/src/modules/search/components/Editor/aichat.css +1 -0
  210. package/src/modules/search/components/Editor/constant.ts +13 -0
  211. package/src/modules/search/components/Editor/index.tsx +113 -0
  212. package/src/modules/search/components/Editor/plugins/autofomatRules.ts +332 -0
  213. package/src/modules/search/components/Editor/plugins/convertImgPlugins.tsx +20 -0
  214. package/src/modules/search/components/Editor/plugins/createIndexes.tsx +38 -0
  215. package/src/modules/search/components/Editor/plugins/displayer.ts +298 -0
  216. package/src/modules/search/components/Editor/plugins/imageClick.tsx +32 -0
  217. package/src/modules/search/components/Editor/plugins/myplugin.tsx +98 -0
  218. package/src/modules/search/components/Editor/ui/avatar.tsx +19 -0
  219. package/src/modules/search/components/Editor/ui/blockquote-element.tsx +21 -0
  220. package/src/modules/search/components/Editor/ui/button.tsx +58 -0
  221. package/src/modules/search/components/Editor/ui/calendar.tsx +68 -0
  222. package/src/modules/search/components/Editor/ui/caption.tsx +46 -0
  223. package/src/modules/search/components/Editor/ui/checkbox.tsx +27 -0
  224. package/src/modules/search/components/Editor/ui/code-block-combobox.tsx +188 -0
  225. package/src/modules/search/components/Editor/ui/code-block-element.css +434 -0
  226. package/src/modules/search/components/Editor/ui/code-block-element.tsx +39 -0
  227. package/src/modules/search/components/Editor/ui/code-leaf.tsx +24 -0
  228. package/src/modules/search/components/Editor/ui/code-line-element.tsx +10 -0
  229. package/src/modules/search/components/Editor/ui/code-syntax-leaf.tsx +21 -0
  230. package/src/modules/search/components/Editor/ui/column-element.tsx +30 -0
  231. package/src/modules/search/components/Editor/ui/column-group-element.tsx +94 -0
  232. package/src/modules/search/components/Editor/ui/command.tsx +75 -0
  233. package/src/modules/search/components/Editor/ui/comment-avatar.tsx +22 -0
  234. package/src/modules/search/components/Editor/ui/comment-create-form.tsx +37 -0
  235. package/src/modules/search/components/Editor/ui/comment-item.tsx +74 -0
  236. package/src/modules/search/components/Editor/ui/comment-leaf.tsx +49 -0
  237. package/src/modules/search/components/Editor/ui/comment-more-dropdown.tsx +42 -0
  238. package/src/modules/search/components/Editor/ui/comment-reply-items.tsx +22 -0
  239. package/src/modules/search/components/Editor/ui/comment-resolve-button.tsx +32 -0
  240. package/src/modules/search/components/Editor/ui/comment-value.tsx +34 -0
  241. package/src/modules/search/components/Editor/ui/comments-popover.tsx +63 -0
  242. package/src/modules/search/components/Editor/ui/date-element.tsx +83 -0
  243. package/src/modules/search/components/Editor/ui/dialog.tsx +63 -0
  244. package/src/modules/search/components/Editor/ui/draggable.tsx +177 -0
  245. package/src/modules/search/components/Editor/ui/dropdown-menu.tsx +180 -0
  246. package/src/modules/search/components/Editor/ui/emoji-input-element.tsx +85 -0
  247. package/src/modules/search/components/Editor/ui/excalidraw-element.tsx +28 -0
  248. package/src/modules/search/components/Editor/ui/fixed-toolbar-buttons.tsx +76 -0
  249. package/src/modules/search/components/Editor/ui/fixed-toolbar.tsx +8 -0
  250. package/src/modules/search/components/Editor/ui/floating-toolbar-buttons.tsx +51 -0
  251. package/src/modules/search/components/Editor/ui/floating-toolbar.tsx +77 -0
  252. package/src/modules/search/components/Editor/ui/heading-element.tsx +48 -0
  253. package/src/modules/search/components/Editor/ui/highlight-leaf.tsx +17 -0
  254. package/src/modules/search/components/Editor/ui/hr-element.tsx +30 -0
  255. package/src/modules/search/components/Editor/ui/icons.tsx +267 -0
  256. package/src/modules/search/components/Editor/ui/image-element.tsx +74 -0
  257. package/src/modules/search/components/Editor/ui/inline-combobox.tsx +368 -0
  258. package/src/modules/search/components/Editor/ui/input.tsx +25 -0
  259. package/src/modules/search/components/Editor/ui/insert-dropdown-menu.tsx +218 -0
  260. package/src/modules/search/components/Editor/ui/kbd-leaf.tsx +20 -0
  261. package/src/modules/search/components/Editor/ui/link-element.tsx +29 -0
  262. package/src/modules/search/components/Editor/ui/link-floating-toolbar.tsx +161 -0
  263. package/src/modules/search/components/Editor/ui/list-element.tsx +30 -0
  264. package/src/modules/search/components/Editor/ui/mark-toolbar-button.tsx +24 -0
  265. package/src/modules/search/components/Editor/ui/media-embed-element.tsx +133 -0
  266. package/src/modules/search/components/Editor/ui/media-popover.tsx +97 -0
  267. package/src/modules/search/components/Editor/ui/mention-element.tsx +43 -0
  268. package/src/modules/search/components/Editor/ui/mention-input-element.tsx +141 -0
  269. package/src/modules/search/components/Editor/ui/mode-dropdown-menu.tsx +93 -0
  270. package/src/modules/search/components/Editor/ui/more-dropdown-menu.tsx +67 -0
  271. package/src/modules/search/components/Editor/ui/paragraph-element.tsx +4 -0
  272. package/src/modules/search/components/Editor/ui/placeholder.tsx +52 -0
  273. package/src/modules/search/components/Editor/ui/popover.tsx +32 -0
  274. package/src/modules/search/components/Editor/ui/resizable.tsx +66 -0
  275. package/src/modules/search/components/Editor/ui/separator.tsx +25 -0
  276. package/src/modules/search/components/Editor/ui/style.less +12 -0
  277. package/src/modules/search/components/Editor/ui/table-cell-element.tsx +143 -0
  278. package/src/modules/search/components/Editor/ui/table-element.tsx +243 -0
  279. package/src/modules/search/components/Editor/ui/table-row-element.tsx +22 -0
  280. package/src/modules/search/components/Editor/ui/tableValue.tsx +135 -0
  281. package/src/modules/search/components/Editor/ui/todo-list-element.tsx +43 -0
  282. package/src/modules/search/components/Editor/ui/toggle-element.tsx +31 -0
  283. package/src/modules/search/components/Editor/ui/toolbar.tsx +157 -0
  284. package/src/modules/search/components/Editor/ui/tooltip.tsx +65 -0
  285. package/src/modules/search/components/Editor/ui/turn-into-dropdown-menu.tsx +160 -0
  286. package/src/modules/search/components/Editor/ui/with-draggables.tsx +175 -0
  287. package/src/modules/search/components/FileList.tsx +287 -0
  288. package/src/modules/search/components/ImageGroupView/index.tsx +85 -0
  289. package/src/modules/search/components/ResultContent.tsx +232 -0
  290. package/src/modules/search/components/SearchInput.tsx +232 -0
  291. package/src/modules/search/components/SearchLanding.tsx +74 -0
  292. package/src/modules/search/components/SearchView.tsx +563 -0
  293. package/src/modules/search/components/SimpleEditor.tsx +158 -0
  294. package/src/modules/search/components/SimpleFileList.tsx +215 -0
  295. package/src/modules/search/index.tsx +10 -0
  296. package/src/modules/search/reademe.md +1 -0
  297. package/src/modules/search/servers/apis.tsx +19 -0
  298. package/src/modules/search/servers/index.ts +184 -0
  299. package/src/modules/search/style.less +503 -0
  300. package/src/modules/search/type.ts +22 -0
  301. package/src/modules/search/utils.ts +34 -0
  302. package/src/modules/sensitive/index.tsx +313 -0
  303. package/src/modules/sensitive/server.ts +122 -0
  304. package/src/modules/streamFilesReader/GientechStreamReader.tsx +1624 -0
  305. package/src/modules/streamFilesReader/components/Header/Toolbar.tsx +0 -0
  306. package/src/modules/streamFilesReader/components/Header/index.tsx +297 -0
  307. package/src/modules/streamFilesReader/index.tsx +3 -0
  308. package/src/style.css +6 -0
  309. package/src/type.d.ts +0 -0
  310. package/src/utils/commonFn.tsx +111 -0
  311. package/src/utils/gientechCommon/components/AppError.tsx +32 -0
  312. package/src/utils/gientechCommon/components/AppLoading.tsx +75 -0
  313. package/src/utils/gientechCommon/components/DeleteModal.tsx +75 -0
  314. package/src/utils/gientechCommon/components/DisplayError.tsx +33 -0
  315. package/src/utils/gientechCommon/components/DisplayLoading.tsx +38 -0
  316. package/src/utils/gientechCommon/components/FeedBackModal.tsx +310 -0
  317. package/src/utils/gientechCommon/components/FileCardCommon.tsx +82 -0
  318. package/src/utils/gientechCommon/components/FileManager/index.tsx +390 -0
  319. package/src/utils/gientechCommon/components/FileManager/style.css +5 -0
  320. package/src/utils/gientechCommon/components/Messages/GientechNewChatWelcome.tsx +581 -0
  321. package/src/utils/gientechCommon/components/Messages/ReferenceCard.tsx +339 -0
  322. package/src/utils/gientechCommon/components/Messages/RetriveItem.tsx +245 -0
  323. package/src/utils/gientechCommon/components/Messages/WebRetriveItem.tsx +209 -0
  324. package/src/utils/gientechCommon/components/Messages/defaultBot.png +0 -0
  325. package/src/utils/gientechCommon/components/Messages/defaultStyleSet.tsx +148 -0
  326. package/src/utils/gientechCommon/components/Messages/defaultWeLogo.svg +14 -0
  327. package/src/utils/gientechCommon/components/RenameModal.tsx +86 -0
  328. package/src/utils/gientechCommon/components/style.less +11 -0
  329. package/src/utils/gientechCommon/configs/commonConfig.ts +2 -0
  330. package/src/utils/gientechCommon/configs/senderConfig.ts +0 -0
  331. package/src/utils/gientechCommon/configs/stylesConfig.ts +142 -0
  332. package/src/utils/gientechCommon/hooks/AichatUseController.tsx +417 -0
  333. package/src/utils/gientechCommon/slate/converters/deserializers.ts +763 -0
  334. package/src/utils/gientechCommon/slate/converters/mockData.ts +232 -0
  335. package/src/utils/gientechCommon/slate/converters/slateConverters.ts +258 -0
  336. package/src/utils/gientechCommon/slate/richElements/index.tsx +499 -0
  337. package/src/utils/gientechCommon/utils/request.ts +37 -0
  338. package/src/utils/gientechCommon/utils/serverFn.ts +172 -0
  339. package/src/utils/index.tsx +126 -0
  340. package/src/utils/testconfigs/demologin/index.tsx +32 -0
  341. package/src/utils/testconfigs/index.ts +59 -0
  342. package/src/vite-env.d.ts +11 -0
  343. package/stats.html +4949 -0
  344. package/tailwind.config.js +170 -0
  345. package/tsconfig.app.json +30 -0
  346. package/tsconfig.app.tsbuildinfo +11 -0
  347. package/tsconfig.json +13 -0
  348. package/tsconfig.node.json +22 -0
  349. package/tsconfig.node.tsbuildinfo +1 -0
  350. package/vite.config.ts +227 -0
  351. package/workflows/release.yml +60 -0
  352. package/assets/_commonjsHelpers-gnU0ypJ3.js +0 -1
  353. package/assets/index--DG-fVvc.js +0 -26
  354. package/assets/index-BfureYPx.js +0 -1505
  355. package/assets/index-CXwV5fAx.js +0 -1230
  356. package/assets/style.css +0 -1
  357. package/assets/style3.css +0 -1
  358. package/assets/styled-components.browser.esm-DPkS13KC.js +0 -2
  359. package/chat.js +0 -893
  360. package/database.js +0 -20
  361. package/databaseId.js +0 -21
  362. package/databaseTable.js +0 -6
  363. package/modelManage.js +0 -1
  364. package/sensitive.js +0 -1
  365. package/streamFilesReader.js +0 -442
  366. /package/{assets → dist/assets}/Doris.png +0 -0
  367. /package/{assets → dist/assets}/PostgreSQL.png +0 -0
  368. /package/{assets → dist/assets}/SQLServer.png +0 -0
  369. /package/{assets → dist/assets}/empty.png +0 -0
  370. /package/{assets → dist/assets}/index-CpW6Dhpp.js +0 -0
  371. /package/{assets → dist/assets}/style2.css +0 -0
  372. /package/{database.d.ts → dist/database.d.ts} +0 -0
  373. /package/{databaseId.d.ts → dist/databaseId.d.ts} +0 -0
  374. /package/{databaseTable.d.ts → dist/databaseTable.d.ts} +0 -0
  375. /package/{modelManage.d.ts → dist/modelManage.d.ts} +0 -0
  376. /package/{sensitive.d.ts → dist/sensitive.d.ts} +0 -0
  377. /package/{vite.svg → dist/vite.svg} +0 -0
@@ -0,0 +1,133 @@
1
+ # XViewer 演示脚本使用说明
2
+
3
+ ## 概述
4
+
5
+ 这套脚本用于运行 XViewer 组件的演示示例,支持跨平台运行(Windows、macOS、Linux)。
6
+
7
+ ## 脚本文件
8
+
9
+ - `demo-selector.js` - 示例选择器,扫描并选择要运行的示例
10
+ - `dev-demo.js` - 开发模式演示
11
+ - `build-demo.js` - 打包模式演示
12
+ - `preview-demo.js` - 预览模式演示
13
+ - `run-demo.bat` - Windows 批处理文件(备用方案)
14
+
15
+ ## 使用方法
16
+
17
+ ### 方法一:使用 npm 脚本(推荐)
18
+
19
+ ```bash
20
+ # 开发模式
21
+ pnpm run dev:demo
22
+
23
+ # 打包模式
24
+ pnpm run build:demo
25
+
26
+ # 预览模式
27
+ pnpm run preview:demo
28
+ ```
29
+
30
+ ### 方法二:直接运行 Node.js 脚本
31
+
32
+ ```bash
33
+ # 开发模式
34
+ node scripts/dev-demo.js
35
+
36
+ # 打包模式
37
+ node scripts/build-demo.js
38
+
39
+ # 预览模式
40
+ node scripts/preview-demo.js
41
+ ```
42
+
43
+ ### 方法三:Windows 批处理文件
44
+
45
+ ```cmd
46
+ # 开发模式
47
+ scripts\run-demo.bat dev-demo
48
+
49
+ # 打包模式
50
+ scripts\run-demo.bat build-demo
51
+
52
+ # 预览模式
53
+ scripts\run-demo.bat preview-demo
54
+ ```
55
+
56
+ ## 示例文件格式
57
+
58
+ 脚本支持两种示例文件格式:
59
+
60
+ 1. **单文件模式**: `src/Example_XXXX.tsx`
61
+ 2. **文件夹模式**:
62
+ - `src/examples/XXXX/index.tsx`
63
+ - `src/examples/XXXX/XXXX.tsx`
64
+
65
+ ## Windows 兼容性
66
+
67
+ ### 已解决的问题
68
+
69
+ 1. ✅ **依赖包缺失** - 已添加 `inquirer` 和 `fs-extra` 依赖
70
+ 2. ✅ **Shell 执行** - Windows 下使用 `shell: true` 选项
71
+ 3. ✅ **环境变量** - 自动设置 `NODE_OPTIONS` 环境变量
72
+ 4. ✅ **路径处理** - 使用 `path.join()` 确保跨平台兼容
73
+ 5. ✅ **调试信息** - 添加详细的调试输出
74
+
75
+ ### 调试信息
76
+
77
+ 脚本运行时会显示以下调试信息:
78
+ - Node.js 版本
79
+ - 操作系统类型
80
+ - 当前工作目录
81
+ - 脚本目录
82
+ - Windows 模式标识
83
+
84
+ ## 故障排除
85
+
86
+ ### 问题 1:脚本执行没有反应
87
+
88
+ **解决方案**:
89
+ 1. 确保已安装依赖:`pnpm install`
90
+ 2. 检查 Node.js 版本:`node --version`(需要 >= 22)
91
+ 3. 使用调试模式查看详细信息
92
+
93
+ ### 问题 2:Windows 下 pnpm 命令无法识别
94
+
95
+ **解决方案**:
96
+ 1. 确保 pnpm 已全局安装:`npm install -g pnpm`
97
+ 2. 检查 PATH 环境变量
98
+ 3. 使用批处理文件:`scripts\run-demo.bat`
99
+
100
+ ### 问题 3:内存不足错误
101
+
102
+ **解决方案**:
103
+ 1. 脚本已自动设置 `NODE_OPTIONS=--max-old-space-size=16384`
104
+ 2. 如需调整,修改脚本中的环境变量设置
105
+
106
+ ### 问题 4:示例文件扫描失败
107
+
108
+ **解决方案**:
109
+ 1. 确保示例文件格式正确
110
+ 2. 检查文件路径和权限
111
+ 3. 查看调试信息中的路径信息
112
+
113
+ ## 开发说明
114
+
115
+ ### 添加新示例
116
+
117
+ 1. 在 `src/examples/` 下创建新文件夹
118
+ 2. 添加 `index.tsx` 或 `[文件夹名].tsx` 文件
119
+ 3. 脚本会自动扫描并显示
120
+
121
+ ### 修改脚本
122
+
123
+ 1. 所有脚本都支持跨平台运行
124
+ 2. 使用 `process.platform === 'win32'` 检测 Windows
125
+ 3. 使用 `path.join()` 处理路径
126
+ 4. 使用 `shell: isWindows` 设置 spawn 选项
127
+
128
+ ## 技术细节
129
+
130
+ - **Node.js 版本要求**: >= 22
131
+ - **依赖包**: inquirer, fs-extra
132
+ - **支持平台**: Windows, macOS, Linux
133
+ - **脚本类型**: ES Modules
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { spawn } from 'child_process';
4
+ import { main, restoreMainFile } from './demo-selector.js';
5
+ import path from 'path';
6
+ import { fileURLToPath } from 'url';
7
+
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = path.dirname(__filename);
10
+
11
+ // 检测操作系统
12
+ const isWindows = process.platform === 'win32';
13
+
14
+ /**
15
+ * 执行打包
16
+ */
17
+ function runBuild() {
18
+ console.log('\n🔨 正在执行打包...\n');
19
+ console.log('🔧 调试信息:');
20
+ console.log(' 操作系统:', process.platform);
21
+ console.log(' Windows 模式:', isWindows);
22
+ console.log(' 工作目录:', path.resolve(__dirname, '..'));
23
+ console.log('');
24
+
25
+ const buildProcess = spawn('pnpm', ['run', 'build:app'], {
26
+ stdio: 'inherit',
27
+ shell: isWindows, // Windows 下需要 shell: true
28
+ cwd: path.resolve(__dirname, '..'),
29
+ env: {
30
+ ...process.env,
31
+ NODE_OPTIONS: '--max-old-space-size=16384'
32
+ }
33
+ });
34
+
35
+ buildProcess.on('close', (code) => {
36
+ if (code === 0) {
37
+ console.log('\n✅ 打包完成!');
38
+ console.log('📁 输出目录: dist-app/');
39
+ } else {
40
+ console.error(`\n❌ 打包失败 (退出码: ${code})`);
41
+ }
42
+
43
+ // 恢复原始 main.tsx 文件
44
+ restoreMainFile();
45
+ process.exit(code);
46
+ });
47
+
48
+ buildProcess.on('error', (error) => {
49
+ console.error('❌ 执行打包失败:', error);
50
+ restoreMainFile();
51
+ process.exit(1);
52
+ });
53
+
54
+ // 处理进程退出信号
55
+ process.on('SIGINT', () => {
56
+ console.log('\n🔄 正在取消打包...');
57
+ buildProcess.kill('SIGINT');
58
+ });
59
+
60
+ process.on('SIGTERM', () => {
61
+ console.log('\n🔄 正在取消打包...');
62
+ buildProcess.kill('SIGTERM');
63
+ });
64
+ }
65
+
66
+ /**
67
+ * 主函数
68
+ */
69
+ async function runBuildDemo() {
70
+ try {
71
+ // 先选择示例
72
+ await main();
73
+
74
+ // 执行打包
75
+ runBuild();
76
+ } catch (error) {
77
+ console.error('❌ 打包模式启动失败:', error);
78
+ restoreMainFile();
79
+ process.exit(1);
80
+ }
81
+ }
82
+
83
+ // 如果直接运行此脚本
84
+ if (import.meta.url === `file://${process.argv[1]}`) {
85
+ runBuildDemo();
86
+ }
87
+
88
+ export { runBuildDemo };
@@ -0,0 +1,216 @@
1
+ #!/usr/bin/env node
2
+
3
+ import inquirer from 'inquirer';
4
+ import fs from 'fs-extra';
5
+ import path from 'path';
6
+ import { fileURLToPath } from 'url';
7
+
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = path.dirname(__filename);
10
+
11
+ // 检测操作系统
12
+ const isWindows = process.platform === 'win32';
13
+
14
+ // 调试信息
15
+ console.log('🔧 调试信息:');
16
+ console.log(' Node.js 版本:', process.version);
17
+ console.log(' 操作系统:', process.platform);
18
+ console.log(' 当前工作目录:', process.cwd());
19
+ console.log(' 脚本目录:', __dirname);
20
+ console.log(' Windows 模式:', isWindows);
21
+ console.log('');
22
+
23
+ // 项目根目录
24
+ const PROJECT_ROOT = path.resolve(__dirname, '..');
25
+ const SRC_DIR = path.join(PROJECT_ROOT, 'src');
26
+ const MAIN_TEMPLATE = path.join(PROJECT_ROOT, 'src/main.template.tsx');
27
+ const MAIN_FILE = path.join(PROJECT_ROOT, 'src/main.tsx');
28
+
29
+ /**
30
+ * 扫描示例文件
31
+ * 支持两种模式:
32
+ * 1. src/Example_XXXX.tsx (单文件模式)
33
+ * 2. src/examples/XXXX/XXXX.tsx 或 src/examples/XXXX/index.tsx (文件夹模式)
34
+ */
35
+ function scanExampleFiles() {
36
+ const examples = [];
37
+
38
+ try {
39
+ // 扫描单文件模式: Example_XXXX.tsx
40
+ const files = fs.readdirSync(SRC_DIR);
41
+ files.forEach(file => {
42
+ if (file.startsWith('Example_') && file.endsWith('.tsx')) {
43
+ const name = file.replace('Example_', '').replace('.tsx', '');
44
+ examples.push({
45
+ name: `${name} (单文件)`,
46
+ value: file,
47
+ type: 'single',
48
+ path: path.join(SRC_DIR, file)
49
+ });
50
+ }
51
+ });
52
+
53
+ // 扫描文件夹模式: examples/XXXX/
54
+ const examplesDir = path.join(SRC_DIR, 'examples');
55
+ if (fs.existsSync(examplesDir)) {
56
+ const exampleDirs = fs.readdirSync(examplesDir);
57
+ exampleDirs.forEach(dir => {
58
+ const dirPath = path.join(examplesDir, dir);
59
+ if (fs.statSync(dirPath).isDirectory()) {
60
+ // 检查是否有 index.tsx 或 同名.tsx 文件
61
+ const indexFile = path.join(dirPath, 'index.tsx');
62
+ const namedFile = path.join(dirPath, `${dir}.tsx`);
63
+
64
+ if (fs.existsSync(indexFile)) {
65
+ examples.push({
66
+ name: `${dir} (文件夹 - index.tsx)`,
67
+ value: `examples/${dir}/index.tsx`,
68
+ type: 'folder',
69
+ path: indexFile
70
+ });
71
+ } else if (fs.existsSync(namedFile)) {
72
+ examples.push({
73
+ name: `${dir} (文件夹 - ${dir}.tsx)`,
74
+ value: `examples/${dir}/${dir}.tsx`,
75
+ type: 'folder',
76
+ path: namedFile
77
+ });
78
+ }
79
+ }
80
+ });
81
+ }
82
+ } catch (error) {
83
+ console.error('扫描示例文件时出错:', error);
84
+ }
85
+
86
+ return examples;
87
+ }
88
+
89
+ /**
90
+ * 生成临时的 main.tsx 文件
91
+ */
92
+ function generateMainFile(selectedExample) {
93
+ // 统一去掉扩展名,确保导入路径无后缀
94
+ const normalizedImportPath = selectedExample.replace(/\.(t|j)sx?$/, '');
95
+
96
+ // 智能解析组件名称,且确保不包含扩展名或非法标识符字符
97
+ let componentName;
98
+ if (selectedExample.includes('examples/')) {
99
+ // 文件夹模式:使用文件夹名称作为组件名
100
+ const folderName = selectedExample.split('/')[1]; // 获取 examples/Form/ 中的 Form
101
+ componentName = folderName.charAt(0).toUpperCase() + folderName.slice(1); // 首字母大写
102
+ } else {
103
+ // 单文件模式:使用文件名作为组件名
104
+ componentName = path.basename(normalizedImportPath);
105
+ }
106
+ // 清理可能的无效字符并确保首字符为字母/下划线
107
+ componentName = componentName.replace(/\.(t|j)sx?$/i, '').replace(/[^\w$]/g, '');
108
+ if (!/^[A-Za-z_$]/.test(componentName)) {
109
+ componentName = '_' + componentName;
110
+ }
111
+
112
+ const mainContent = `import React from 'react';
113
+ import ReactDOM from 'react-dom/client';
114
+ import ${componentName} from './${normalizedImportPath}';
115
+
116
+ ReactDOM.createRoot(document.getElementById('root')!).render(<${componentName} />);
117
+ `;
118
+
119
+ try {
120
+ // 备份原始 main.tsx 文件
121
+ if (fs.existsSync(MAIN_FILE)) {
122
+ fs.copyFileSync(MAIN_FILE, MAIN_FILE + '.backup');
123
+ }
124
+
125
+ // 写入新的 main.tsx
126
+ fs.writeFileSync(MAIN_FILE, mainContent);
127
+ console.log(`✅ 已生成临时 main.tsx,导入示例: ${selectedExample}`);
128
+
129
+ return true;
130
+ } catch (error) {
131
+ console.error('生成 main.tsx 文件时出错:', error);
132
+ return false;
133
+ }
134
+ }
135
+
136
+ /**
137
+ * 恢复原始的 main.tsx 文件
138
+ */
139
+ function restoreMainFile() {
140
+ try {
141
+ if (fs.existsSync(MAIN_FILE + '.backup')) {
142
+ fs.copyFileSync(MAIN_FILE + '.backup', MAIN_FILE);
143
+ fs.removeSync(MAIN_FILE + '.backup');
144
+ console.log('✅ 已恢复原始 main.tsx 文件');
145
+ }
146
+ } catch (error) {
147
+ console.error('恢复 main.tsx 文件时出错:', error);
148
+ }
149
+ }
150
+
151
+ /**
152
+ * 主函数
153
+ */
154
+ async function main() {
155
+ console.log('🔍 正在扫描示例文件...\n');
156
+
157
+ const examples = scanExampleFiles();
158
+
159
+ if (examples.length === 0) {
160
+ console.log('❌ 未找到任何示例文件');
161
+ console.log('请确保有以下格式的文件:');
162
+ console.log(' - src/Example_XXXX.tsx');
163
+ console.log(' - src/examples/XXXX/XXXX.tsx');
164
+ console.log(' - src/examples/XXXX/index.tsx');
165
+ process.exit(1);
166
+ }
167
+
168
+ console.log(`📁 找到 ${examples.length} 个示例文件:\n`);
169
+
170
+ const { selectedExample } = await inquirer.prompt([
171
+ {
172
+ type: 'list',
173
+ name: 'selectedExample',
174
+ message: '请选择要运行的示例:',
175
+ choices: examples,
176
+ pageSize: 10
177
+ }
178
+ ]);
179
+
180
+ console.log(`\n🎯 已选择: ${selectedExample}`);
181
+
182
+ // 生成临时 main.tsx
183
+ if (generateMainFile(selectedExample)) {
184
+ console.log('\n🚀 示例文件已准备就绪!');
185
+ console.log('现在可以运行以下命令:');
186
+ console.log(' - 开发模式: pnpm run dev:demo');
187
+ console.log(' - 打包模式: pnpm run build:demo');
188
+ console.log('\n💡 提示: 运行完成后会自动恢复原始 main.tsx 文件');
189
+ } else {
190
+ console.error('❌ 准备示例文件失败');
191
+ process.exit(1);
192
+ }
193
+ }
194
+
195
+ // 处理进程退出,确保恢复原始文件
196
+ process.on('SIGINT', () => {
197
+ console.log('\n\n🔄 正在清理...');
198
+ restoreMainFile();
199
+ process.exit(0);
200
+ });
201
+
202
+ process.on('SIGTERM', () => {
203
+ console.log('\n\n🔄 正在清理...');
204
+ restoreMainFile();
205
+ process.exit(0);
206
+ });
207
+
208
+ // 如果直接运行此脚本
209
+ if (import.meta.url === `file://${process.argv[1]}`) {
210
+ main().catch(error => {
211
+ console.error('❌ 脚本执行失败:', error);
212
+ process.exit(1);
213
+ });
214
+ }
215
+
216
+ export { main, generateMainFile, restoreMainFile, scanExampleFiles };
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { spawn } from 'child_process';
4
+ import { main, restoreMainFile } from './demo-selector.js';
5
+ import path from 'path';
6
+ import { fileURLToPath } from 'url';
7
+
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = path.dirname(__filename);
10
+
11
+ // 检测操作系统
12
+ const isWindows = process.platform === 'win32';
13
+
14
+ /**
15
+ * 启动开发服务器
16
+ */
17
+ function startDevServer() {
18
+ console.log('\n🚀 正在启动开发服务器...\n');
19
+ console.log('🔧 调试信息:');
20
+ console.log(' 操作系统:', process.platform);
21
+ console.log(' Windows 模式:', isWindows);
22
+ console.log(' 工作目录:', path.resolve(__dirname, '..'));
23
+ console.log('');
24
+
25
+ const viteProcess = spawn('pnpm', ['run', 'dev'], {
26
+ stdio: 'inherit',
27
+ shell: isWindows, // Windows 下需要 shell: true
28
+ cwd: path.resolve(__dirname, '..'),
29
+ });
30
+
31
+ viteProcess.on('close', code => {
32
+ console.log(`\n🔄 开发服务器已关闭 (退出码: ${code})`);
33
+ restoreMainFile();
34
+ });
35
+
36
+ viteProcess.on('error', error => {
37
+ console.error('❌ 启动开发服务器失败:', error);
38
+ restoreMainFile();
39
+ process.exit(1);
40
+ });
41
+
42
+ // 处理进程退出信号
43
+ process.on('SIGINT', () => {
44
+ console.log('\n🔄 正在关闭开发服务器...');
45
+ viteProcess.kill('SIGINT');
46
+ });
47
+
48
+ process.on('SIGTERM', () => {
49
+ console.log('\n🔄 正在关闭开发服务器...');
50
+ viteProcess.kill('SIGTERM');
51
+ });
52
+ }
53
+
54
+ /**
55
+ * 主函数
56
+ */
57
+ async function runDevDemo() {
58
+ try {
59
+ // 先选择示例
60
+ await main();
61
+
62
+ // 启动开发服务器
63
+ startDevServer();
64
+ } catch (error) {
65
+ console.error('❌ 开发模式启动失败:', error);
66
+ restoreMainFile();
67
+ process.exit(1);
68
+ }
69
+ }
70
+
71
+ // 如果直接运行此脚本
72
+ //if (import.meta.url === `file://${process.argv[1]}`) {
73
+ runDevDemo();
74
+ //}
75
+
76
+ export { runDevDemo };
@@ -0,0 +1,130 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { spawn } from 'child_process';
4
+ import { main, restoreMainFile } from './demo-selector.js';
5
+ import path from 'path';
6
+ import { fileURLToPath } from 'url';
7
+
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = path.dirname(__filename);
10
+
11
+ // 检测操作系统
12
+ const isWindows = process.platform === 'win32';
13
+
14
+ /**
15
+ * 执行打包
16
+ */
17
+ function runBuild() {
18
+ return new Promise((resolve, reject) => {
19
+ console.log('\n🔨 正在执行打包...\n');
20
+ console.log('🔧 调试信息:');
21
+ console.log(' 操作系统:', process.platform);
22
+ console.log(' Windows 模式:', isWindows);
23
+ console.log(' 工作目录:', path.resolve(__dirname, '..'));
24
+ console.log('');
25
+
26
+ const buildProcess = spawn('pnpm', ['run', 'build:app'], {
27
+ stdio: 'inherit',
28
+ shell: isWindows, // Windows 下需要 shell: true
29
+ cwd: path.resolve(__dirname, '..'),
30
+ env: {
31
+ ...process.env,
32
+ NODE_OPTIONS: '--max-old-space-size=16384'
33
+ }
34
+ });
35
+
36
+ buildProcess.on('close', (code) => {
37
+ if (code === 0) {
38
+ console.log('\n✅ 打包完成!');
39
+ console.log('📁 输出目录: dist-app/');
40
+ resolve();
41
+ } else {
42
+ console.error(`\n❌ 打包失败 (退出码: ${code})`);
43
+ reject(new Error(`打包失败,退出码: ${code}`));
44
+ }
45
+ });
46
+
47
+ buildProcess.on('error', (error) => {
48
+ console.error('❌ 执行打包失败:', error);
49
+ reject(error);
50
+ });
51
+
52
+ // 处理进程退出信号
53
+ process.on('SIGINT', () => {
54
+ console.log('\n🔄 正在取消打包...');
55
+ buildProcess.kill('SIGINT');
56
+ });
57
+
58
+ process.on('SIGTERM', () => {
59
+ console.log('\n🔄 正在取消打包...');
60
+ buildProcess.kill('SIGTERM');
61
+ });
62
+ });
63
+ }
64
+
65
+ /**
66
+ * 启动预览服务
67
+ */
68
+ function startPreviewServer() {
69
+ console.log('\n🚀 正在启动预览服务器...\n');
70
+ console.log('🔧 调试信息:');
71
+ console.log(' 操作系统:', process.platform);
72
+ console.log(' Windows 模式:', isWindows);
73
+ console.log(' 工作目录:', path.resolve(__dirname, '..'));
74
+ console.log('');
75
+
76
+ const previewProcess = spawn('pnpm', ['run', 'preview:app'], {
77
+ stdio: 'inherit',
78
+ shell: isWindows, // Windows 下需要 shell: true
79
+ cwd: path.resolve(__dirname, '..')
80
+ });
81
+
82
+ previewProcess.on('close', (code) => {
83
+ console.log(`\n🔄 预览服务器已关闭 (退出码: ${code})`);
84
+ restoreMainFile();
85
+ });
86
+
87
+ previewProcess.on('error', (error) => {
88
+ console.error('❌ 启动预览服务器失败:', error);
89
+ restoreMainFile();
90
+ process.exit(1);
91
+ });
92
+
93
+ // 处理进程退出信号
94
+ process.on('SIGINT', () => {
95
+ console.log('\n🔄 正在关闭预览服务器...');
96
+ previewProcess.kill('SIGINT');
97
+ });
98
+
99
+ process.on('SIGTERM', () => {
100
+ console.log('\n🔄 正在关闭预览服务器...');
101
+ previewProcess.kill('SIGTERM');
102
+ });
103
+ }
104
+
105
+ /**
106
+ * 主函数
107
+ */
108
+ async function runPreviewDemo() {
109
+ try {
110
+ // 先选择示例
111
+ await main();
112
+
113
+ // 执行打包
114
+ await runBuild();
115
+
116
+ // 启动预览服务
117
+ startPreviewServer();
118
+ } catch (error) {
119
+ console.error('❌ 预览模式启动失败:', error);
120
+ restoreMainFile();
121
+ process.exit(1);
122
+ }
123
+ }
124
+
125
+ // 如果直接运行此脚本
126
+ if (import.meta.url === `file://${process.argv[1]}`) {
127
+ runPreviewDemo();
128
+ }
129
+
130
+ export { runPreviewDemo };
@@ -0,0 +1,34 @@
1
+ @echo off
2
+ REM Windows 批处理文件用于运行演示脚本
3
+ REM 使用方法: run-demo.bat [dev-demo|build-demo|preview-demo]
4
+
5
+ set NODE_OPTIONS=--max-old-space-size=16384
6
+
7
+ if "%1"=="" (
8
+ echo 请指定要运行的脚本:
9
+ echo run-demo.bat dev-demo
10
+ echo run-demo.bat build-demo
11
+ echo run-demo.bat preview-demo
12
+ exit /b 1
13
+ )
14
+
15
+ echo 🔧 调试信息:
16
+ echo Node.js 版本:
17
+ node --version
18
+ echo 操作系统: Windows
19
+ echo 当前目录: %CD%
20
+ echo 脚本参数: %1
21
+ echo.
22
+
23
+ node scripts\%1.js
24
+
25
+ if %ERRORLEVEL% neq 0 (
26
+ echo.
27
+ echo ❌ 脚本执行失败,错误代码: %ERRORLEVEL%
28
+ pause
29
+ exit /b %ERRORLEVEL%
30
+ )
31
+
32
+ echo.
33
+ echo ✅ 脚本执行完成
34
+ pause
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file