@qlover/create-app 1.1.0 → 2.0.0

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 (556) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/index.cjs +9 -9
  3. package/dist/index.js +9 -9
  4. package/package.json +3 -2
  5. package/dist/configs/_common/.editorconfig +0 -23
  6. package/dist/configs/_common/.env.template +0 -13
  7. package/dist/configs/_common/.gitattributes +0 -2
  8. package/dist/configs/_common/.github/workflows/general-check.yml +0 -41
  9. package/dist/configs/_common/.github/workflows/release.yml +0 -81
  10. package/dist/configs/_common/.gitignore.template +0 -64
  11. package/dist/configs/_common/.husky/commit-msg +0 -3
  12. package/dist/configs/_common/.husky/pre-commit +0 -3
  13. package/dist/configs/_common/.prettierignore +0 -17
  14. package/dist/configs/_common/.prettierrc.js +0 -7
  15. package/dist/configs/_common/.vscode/extensions.json +0 -9
  16. package/dist/configs/_common/.vscode/react.code-snippets +0 -19
  17. package/dist/configs/_common/.vscode/settings.json +0 -16
  18. package/dist/configs/_common/commitlint.config.js +0 -10
  19. package/dist/configs/_common/package.json.template +0 -75
  20. package/dist/configs/node-lib/eslint.config.js +0 -50
  21. package/dist/templates/next-app/.env.template +0 -25
  22. package/dist/templates/next-app/.prettierignore +0 -58
  23. package/dist/templates/next-app/README.en.md +0 -130
  24. package/dist/templates/next-app/README.md +0 -130
  25. package/dist/templates/next-app/config/IOCIdentifier.ts +0 -74
  26. package/dist/templates/next-app/config/Identifier/api.ts +0 -41
  27. package/dist/templates/next-app/config/Identifier/common/admint.table.ts +0 -69
  28. package/dist/templates/next-app/config/Identifier/common/common.ts +0 -90
  29. package/dist/templates/next-app/config/Identifier/common/index.ts +0 -3
  30. package/dist/templates/next-app/config/Identifier/common/validators.ts +0 -34
  31. package/dist/templates/next-app/config/Identifier/index.ts +0 -3
  32. package/dist/templates/next-app/config/Identifier/pages/index.ts +0 -7
  33. package/dist/templates/next-app/config/Identifier/pages/page.about.ts +0 -20
  34. package/dist/templates/next-app/config/Identifier/pages/page.admin.home.ts +0 -27
  35. package/dist/templates/next-app/config/Identifier/pages/page.admin.locales.ts +0 -266
  36. package/dist/templates/next-app/config/Identifier/pages/page.admin.user.ts +0 -293
  37. package/dist/templates/next-app/config/Identifier/pages/page.home.ts +0 -56
  38. package/dist/templates/next-app/config/Identifier/pages/page.login.ts +0 -159
  39. package/dist/templates/next-app/config/Identifier/pages/page.register.ts +0 -177
  40. package/dist/templates/next-app/config/adminNavs.ts +0 -19
  41. package/dist/templates/next-app/config/common.ts +0 -43
  42. package/dist/templates/next-app/config/cookies.ts +0 -23
  43. package/dist/templates/next-app/config/i18n/AboutI18n.ts +0 -14
  44. package/dist/templates/next-app/config/i18n/HomeI18n.ts +0 -24
  45. package/dist/templates/next-app/config/i18n/PageI18nInterface.ts +0 -51
  46. package/dist/templates/next-app/config/i18n/admin18n.ts +0 -75
  47. package/dist/templates/next-app/config/i18n/i18nConfig.ts +0 -16
  48. package/dist/templates/next-app/config/i18n/i18nKeyScheam.ts +0 -36
  49. package/dist/templates/next-app/config/i18n/index.ts +0 -7
  50. package/dist/templates/next-app/config/i18n/loginI18n.ts +0 -50
  51. package/dist/templates/next-app/config/i18n/register18n.ts +0 -44
  52. package/dist/templates/next-app/config/route.ts +0 -9
  53. package/dist/templates/next-app/config/theme.ts +0 -28
  54. package/dist/templates/next-app/docs/en/api.md +0 -387
  55. package/dist/templates/next-app/docs/en/component.md +0 -544
  56. package/dist/templates/next-app/docs/en/database.md +0 -496
  57. package/dist/templates/next-app/docs/en/development-guide.md +0 -727
  58. package/dist/templates/next-app/docs/en/env.md +0 -563
  59. package/dist/templates/next-app/docs/en/i18n.md +0 -287
  60. package/dist/templates/next-app/docs/en/index.md +0 -165
  61. package/dist/templates/next-app/docs/en/page.md +0 -457
  62. package/dist/templates/next-app/docs/en/project-structure.md +0 -176
  63. package/dist/templates/next-app/docs/en/router.md +0 -427
  64. package/dist/templates/next-app/docs/en/theme.md +0 -532
  65. package/dist/templates/next-app/docs/en/validator.md +0 -478
  66. package/dist/templates/next-app/docs/zh/api.md +0 -387
  67. package/dist/templates/next-app/docs/zh/component.md +0 -544
  68. package/dist/templates/next-app/docs/zh/database.md +0 -496
  69. package/dist/templates/next-app/docs/zh/development-guide.md +0 -727
  70. package/dist/templates/next-app/docs/zh/env.md +0 -563
  71. package/dist/templates/next-app/docs/zh/i18n.md +0 -287
  72. package/dist/templates/next-app/docs/zh/index.md +0 -165
  73. package/dist/templates/next-app/docs/zh/page.md +0 -457
  74. package/dist/templates/next-app/docs/zh/project-structure.md +0 -176
  75. package/dist/templates/next-app/docs/zh/router.md +0 -427
  76. package/dist/templates/next-app/docs/zh/theme.md +0 -532
  77. package/dist/templates/next-app/docs/zh/validator.md +0 -476
  78. package/dist/templates/next-app/eslint.config.mjs +0 -285
  79. package/dist/templates/next-app/make/generateLocales.ts +0 -32
  80. package/dist/templates/next-app/migrations/schema/LocalesSchema.ts +0 -15
  81. package/dist/templates/next-app/migrations/schema/UserSchema.ts +0 -38
  82. package/dist/templates/next-app/migrations/sql/1694244000000.sql +0 -21
  83. package/dist/templates/next-app/next.config.ts +0 -25
  84. package/dist/templates/next-app/package.json +0 -87
  85. package/dist/templates/next-app/postcss.config.mjs +0 -5
  86. package/dist/templates/next-app/public/favicon.ico +0 -0
  87. package/dist/templates/next-app/public/file.svg +0 -1
  88. package/dist/templates/next-app/public/globe.svg +0 -1
  89. package/dist/templates/next-app/public/locales/en.json +0 -182
  90. package/dist/templates/next-app/public/locales/zh.json +0 -182
  91. package/dist/templates/next-app/public/next.svg +0 -1
  92. package/dist/templates/next-app/public/vercel.svg +0 -1
  93. package/dist/templates/next-app/public/window.svg +0 -1
  94. package/dist/templates/next-app/src/app/[locale]/admin/AdminI18nProvider.tsx +0 -37
  95. package/dist/templates/next-app/src/app/[locale]/admin/layout.tsx +0 -42
  96. package/dist/templates/next-app/src/app/[locale]/admin/locales/page.tsx +0 -153
  97. package/dist/templates/next-app/src/app/[locale]/admin/page.tsx +0 -20
  98. package/dist/templates/next-app/src/app/[locale]/admin/users/page.tsx +0 -67
  99. package/dist/templates/next-app/src/app/[locale]/auth/layout.tsx +0 -18
  100. package/dist/templates/next-app/src/app/[locale]/auth/login/LoginForm.tsx +0 -126
  101. package/dist/templates/next-app/src/app/[locale]/auth/login/page.tsx +0 -90
  102. package/dist/templates/next-app/src/app/[locale]/auth/page.tsx +0 -8
  103. package/dist/templates/next-app/src/app/[locale]/auth/register/RegisterForm.tsx +0 -197
  104. package/dist/templates/next-app/src/app/[locale]/auth/register/page.tsx +0 -90
  105. package/dist/templates/next-app/src/app/[locale]/layout.tsx +0 -63
  106. package/dist/templates/next-app/src/app/[locale]/not-found.tsx +0 -24
  107. package/dist/templates/next-app/src/app/[locale]/page.tsx +0 -98
  108. package/dist/templates/next-app/src/app/api/admin/locales/create/route.ts +0 -13
  109. package/dist/templates/next-app/src/app/api/admin/locales/import/route.ts +0 -13
  110. package/dist/templates/next-app/src/app/api/admin/locales/route.ts +0 -20
  111. package/dist/templates/next-app/src/app/api/admin/locales/update/route.ts +0 -13
  112. package/dist/templates/next-app/src/app/api/admin/users/route.ts +0 -20
  113. package/dist/templates/next-app/src/app/api/ai/completions/route.ts +0 -32
  114. package/dist/templates/next-app/src/app/api/auth/callback/route.ts +0 -11
  115. package/dist/templates/next-app/src/app/api/callback/route.ts +0 -49
  116. package/dist/templates/next-app/src/app/api/locales/json/route.ts +0 -33
  117. package/dist/templates/next-app/src/app/api/user/login/route.ts +0 -10
  118. package/dist/templates/next-app/src/app/api/user/logout/route.ts +0 -8
  119. package/dist/templates/next-app/src/app/api/user/register/route.ts +0 -11
  120. package/dist/templates/next-app/src/app/manifest.ts +0 -16
  121. package/dist/templates/next-app/src/app/robots.txt +0 -2
  122. package/dist/templates/next-app/src/base/cases/AdminPageManager.ts +0 -28
  123. package/dist/templates/next-app/src/base/cases/AppConfig.ts +0 -40
  124. package/dist/templates/next-app/src/base/cases/Datetime.ts +0 -18
  125. package/dist/templates/next-app/src/base/cases/DialogErrorPlugin.ts +0 -57
  126. package/dist/templates/next-app/src/base/cases/DialogHandler.ts +0 -116
  127. package/dist/templates/next-app/src/base/cases/InversifyContainer.ts +0 -45
  128. package/dist/templates/next-app/src/base/cases/NavigateBridge.ts +0 -32
  129. package/dist/templates/next-app/src/base/cases/RequestEncryptPlugin.ts +0 -77
  130. package/dist/templates/next-app/src/base/cases/ResourceState.ts +0 -17
  131. package/dist/templates/next-app/src/base/cases/RouterService.ts +0 -52
  132. package/dist/templates/next-app/src/base/cases/StringEncryptor.ts +0 -73
  133. package/dist/templates/next-app/src/base/cases/TranslateI18nUtil.ts +0 -53
  134. package/dist/templates/next-app/src/base/cases/ZodColumnBuilder.ts +0 -212
  135. package/dist/templates/next-app/src/base/port/AdminLayoutInterface.ts +0 -26
  136. package/dist/templates/next-app/src/base/port/AppApiInterface.ts +0 -36
  137. package/dist/templates/next-app/src/base/port/AppUserApiInterface.ts +0 -27
  138. package/dist/templates/next-app/src/base/port/I18nServiceInterface.ts +0 -25
  139. package/dist/templates/next-app/src/base/port/IOCInterface.ts +0 -33
  140. package/dist/templates/next-app/src/base/port/RouterInterface.ts +0 -11
  141. package/dist/templates/next-app/src/base/port/UserServiceInterface.ts +0 -25
  142. package/dist/templates/next-app/src/base/port/ZodBuilderInterface.ts +0 -8
  143. package/dist/templates/next-app/src/base/services/AdminPageEvent.ts +0 -26
  144. package/dist/templates/next-app/src/base/services/AdminPageScheduler.ts +0 -42
  145. package/dist/templates/next-app/src/base/services/AppApiRequester.ts +0 -67
  146. package/dist/templates/next-app/src/base/services/AppUserGateway.ts +0 -110
  147. package/dist/templates/next-app/src/base/services/I18nService.ts +0 -87
  148. package/dist/templates/next-app/src/base/services/ResourceService.ts +0 -139
  149. package/dist/templates/next-app/src/base/services/UserService.ts +0 -68
  150. package/dist/templates/next-app/src/base/services/adminApi/AdminLocalesApi.ts +0 -106
  151. package/dist/templates/next-app/src/base/services/adminApi/AdminUserApi.ts +0 -87
  152. package/dist/templates/next-app/src/base/services/appApi/AppApiPlugin.ts +0 -110
  153. package/dist/templates/next-app/src/base/services/appApi/AppUserApiBootstrap.ts +0 -52
  154. package/dist/templates/next-app/src/base/types/AppPageRouter.ts +0 -12
  155. package/dist/templates/next-app/src/base/types/PagesRouter.ts +0 -9
  156. package/dist/templates/next-app/src/core/bootstraps/BootstrapClient.ts +0 -76
  157. package/dist/templates/next-app/src/core/bootstraps/BootstrapServer.ts +0 -125
  158. package/dist/templates/next-app/src/core/bootstraps/BootstrapsRegistry.ts +0 -50
  159. package/dist/templates/next-app/src/core/bootstraps/IocIdentifierTest.ts +0 -26
  160. package/dist/templates/next-app/src/core/bootstraps/PrintBootstrap.ts +0 -18
  161. package/dist/templates/next-app/src/core/clientIoc/ClientIOC.ts +0 -68
  162. package/dist/templates/next-app/src/core/clientIoc/ClientIOCRegister.ts +0 -100
  163. package/dist/templates/next-app/src/core/globals.ts +0 -28
  164. package/dist/templates/next-app/src/core/serverIoc/ServerIOC.ts +0 -80
  165. package/dist/templates/next-app/src/core/serverIoc/ServerIOCRegister.ts +0 -66
  166. package/dist/templates/next-app/src/i18n/loadMessages.ts +0 -103
  167. package/dist/templates/next-app/src/i18n/request.ts +0 -31
  168. package/dist/templates/next-app/src/i18n/routing.ts +0 -35
  169. package/dist/templates/next-app/src/lib/supabase/client.ts +0 -8
  170. package/dist/templates/next-app/src/lib/supabase/conts.ts +0 -2
  171. package/dist/templates/next-app/src/lib/supabase/proxy.ts +0 -84
  172. package/dist/templates/next-app/src/lib/supabase/server.ts +0 -38
  173. package/dist/templates/next-app/src/pages/[locale]/about.tsx +0 -61
  174. package/dist/templates/next-app/src/pages/_app.tsx +0 -50
  175. package/dist/templates/next-app/src/pages/_document.tsx +0 -13
  176. package/dist/templates/next-app/src/proxy.ts +0 -33
  177. package/dist/templates/next-app/src/server/AppErrorApi.ts +0 -10
  178. package/dist/templates/next-app/src/server/AppPageRouteParams.ts +0 -110
  179. package/dist/templates/next-app/src/server/AppSuccessApi.ts +0 -7
  180. package/dist/templates/next-app/src/server/NextApiServer.ts +0 -61
  181. package/dist/templates/next-app/src/server/PagesRouteParams.ts +0 -145
  182. package/dist/templates/next-app/src/server/PasswordEncrypt.ts +0 -18
  183. package/dist/templates/next-app/src/server/ServerAuth.ts +0 -81
  184. package/dist/templates/next-app/src/server/SupabaseBridge.ts +0 -262
  185. package/dist/templates/next-app/src/server/UserCredentialToken.ts +0 -53
  186. package/dist/templates/next-app/src/server/controllers/AdminLocalesController.ts +0 -86
  187. package/dist/templates/next-app/src/server/controllers/AdminUserController.ts +0 -42
  188. package/dist/templates/next-app/src/server/controllers/LocalesController.ts +0 -36
  189. package/dist/templates/next-app/src/server/controllers/UserController.ts +0 -91
  190. package/dist/templates/next-app/src/server/port/AIControllerInterface.ts +0 -8
  191. package/dist/templates/next-app/src/server/port/AdminLocalesControllerInterface.ts +0 -21
  192. package/dist/templates/next-app/src/server/port/AdminUserControllerInterface.ts +0 -11
  193. package/dist/templates/next-app/src/server/port/CrentialTokenInterface.ts +0 -5
  194. package/dist/templates/next-app/src/server/port/DBBridgeInterface.ts +0 -36
  195. package/dist/templates/next-app/src/server/port/DBTableInterface.ts +0 -12
  196. package/dist/templates/next-app/src/server/port/LocalesControllerInterface.ts +0 -10
  197. package/dist/templates/next-app/src/server/port/LocalesRepositoryInterface.ts +0 -43
  198. package/dist/templates/next-app/src/server/port/PaginationInterface.ts +0 -6
  199. package/dist/templates/next-app/src/server/port/RouteParamsnHandlerInterface.ts +0 -18
  200. package/dist/templates/next-app/src/server/port/ServerAuthInterface.ts +0 -15
  201. package/dist/templates/next-app/src/server/port/ServerInterface.ts +0 -23
  202. package/dist/templates/next-app/src/server/port/UserRepositoryInterface.ts +0 -15
  203. package/dist/templates/next-app/src/server/port/UserServiceInterface.ts +0 -14
  204. package/dist/templates/next-app/src/server/port/ValidatorInterface.ts +0 -23
  205. package/dist/templates/next-app/src/server/repositorys/LocalesRepository.ts +0 -216
  206. package/dist/templates/next-app/src/server/repositorys/UserRepository.ts +0 -102
  207. package/dist/templates/next-app/src/server/services/AIService.ts +0 -45
  208. package/dist/templates/next-app/src/server/services/AdminAuthPlugin.ts +0 -21
  209. package/dist/templates/next-app/src/server/services/AdminLocalesService.ts +0 -20
  210. package/dist/templates/next-app/src/server/services/ApiLocaleService.ts +0 -137
  211. package/dist/templates/next-app/src/server/services/ApiUserService.ts +0 -29
  212. package/dist/templates/next-app/src/server/services/UserService.ts +0 -134
  213. package/dist/templates/next-app/src/server/validators/ExtendedExecutorError.ts +0 -6
  214. package/dist/templates/next-app/src/server/validators/LocalesValidator.ts +0 -145
  215. package/dist/templates/next-app/src/server/validators/LoginValidator.ts +0 -82
  216. package/dist/templates/next-app/src/server/validators/PaginationValidator.ts +0 -70
  217. package/dist/templates/next-app/src/server/validators/SignupVerifyValidator.ts +0 -68
  218. package/dist/templates/next-app/src/styles/css/antd-themes/_common/_default.css +0 -280
  219. package/dist/templates/next-app/src/styles/css/antd-themes/_common/dark.css +0 -233
  220. package/dist/templates/next-app/src/styles/css/antd-themes/_common/index.css +0 -3
  221. package/dist/templates/next-app/src/styles/css/antd-themes/_common/pink.css +0 -246
  222. package/dist/templates/next-app/src/styles/css/antd-themes/index.css +0 -4
  223. package/dist/templates/next-app/src/styles/css/antd-themes/menu/_default.css +0 -108
  224. package/dist/templates/next-app/src/styles/css/antd-themes/menu/dark.css +0 -67
  225. package/dist/templates/next-app/src/styles/css/antd-themes/menu/index.css +0 -3
  226. package/dist/templates/next-app/src/styles/css/antd-themes/menu/pink.css +0 -67
  227. package/dist/templates/next-app/src/styles/css/antd-themes/no-context.css +0 -34
  228. package/dist/templates/next-app/src/styles/css/antd-themes/pagination/_default.css +0 -34
  229. package/dist/templates/next-app/src/styles/css/antd-themes/pagination/dark.css +0 -31
  230. package/dist/templates/next-app/src/styles/css/antd-themes/pagination/index.css +0 -3
  231. package/dist/templates/next-app/src/styles/css/antd-themes/pagination/pink.css +0 -36
  232. package/dist/templates/next-app/src/styles/css/antd-themes/table/_default.css +0 -44
  233. package/dist/templates/next-app/src/styles/css/antd-themes/table/dark.css +0 -43
  234. package/dist/templates/next-app/src/styles/css/antd-themes/table/index.css +0 -3
  235. package/dist/templates/next-app/src/styles/css/antd-themes/table/pink.css +0 -43
  236. package/dist/templates/next-app/src/styles/css/index.css +0 -6
  237. package/dist/templates/next-app/src/styles/css/page.css +0 -20
  238. package/dist/templates/next-app/src/styles/css/scrollbar.css +0 -34
  239. package/dist/templates/next-app/src/styles/css/tailwind.css +0 -5
  240. package/dist/templates/next-app/src/styles/css/themes/_default.css +0 -30
  241. package/dist/templates/next-app/src/styles/css/themes/dark.css +0 -30
  242. package/dist/templates/next-app/src/styles/css/themes/index.css +0 -3
  243. package/dist/templates/next-app/src/styles/css/themes/pink.css +0 -30
  244. package/dist/templates/next-app/src/styles/css/zIndex.css +0 -9
  245. package/dist/templates/next-app/src/uikit/components/AdminLayout.tsx +0 -150
  246. package/dist/templates/next-app/src/uikit/components/BootstrapsProvider.tsx +0 -39
  247. package/dist/templates/next-app/src/uikit/components/ClientRootProvider.tsx +0 -64
  248. package/dist/templates/next-app/src/uikit/components/ClientSeo.tsx +0 -36
  249. package/dist/templates/next-app/src/uikit/components/ClinetRenderProvider.tsx +0 -42
  250. package/dist/templates/next-app/src/uikit/components/EditableCell.tsx +0 -118
  251. package/dist/templates/next-app/src/uikit/components/FeatureItem.tsx +0 -13
  252. package/dist/templates/next-app/src/uikit/components/IOCProvider.tsx +0 -34
  253. package/dist/templates/next-app/src/uikit/components/LocaleLink.tsx +0 -50
  254. package/dist/templates/next-app/src/uikit/components/With.tsx +0 -17
  255. package/dist/templates/next-app/src/uikit/components/localesImportButton/LocalesImportButton.tsx +0 -62
  256. package/dist/templates/next-app/src/uikit/components/localesImportButton/LocalesImportEvent.ts +0 -28
  257. package/dist/templates/next-app/src/uikit/components/localesImportButton/import.module.css +0 -6
  258. package/dist/templates/next-app/src/uikit/components-app/AdminButton.tsx +0 -29
  259. package/dist/templates/next-app/src/uikit/components-app/AppBridge.tsx +0 -17
  260. package/dist/templates/next-app/src/uikit/components-app/AppRoutePage.tsx +0 -105
  261. package/dist/templates/next-app/src/uikit/components-app/AuthButton.tsx +0 -20
  262. package/dist/templates/next-app/src/uikit/components-app/LanguageSwitcher.tsx +0 -75
  263. package/dist/templates/next-app/src/uikit/components-app/LogoutButton.tsx +0 -45
  264. package/dist/templates/next-app/src/uikit/components-app/ThemeSwitcher.tsx +0 -144
  265. package/dist/templates/next-app/src/uikit/components-pages/LanguageSwitcher.tsx +0 -98
  266. package/dist/templates/next-app/src/uikit/components-pages/PagesRoutePage.tsx +0 -93
  267. package/dist/templates/next-app/src/uikit/context/IOCContext.ts +0 -25
  268. package/dist/templates/next-app/src/uikit/hook/useI18nInterface.ts +0 -22
  269. package/dist/templates/next-app/src/uikit/hook/useIOC.ts +0 -37
  270. package/dist/templates/next-app/src/uikit/hook/useStrictEffect.ts +0 -32
  271. package/dist/templates/next-app/src/uikit/hook/useWarnTranslations.ts +0 -11
  272. package/dist/templates/next-app/src/uikit/utils/getHashParams.ts +0 -8
  273. package/dist/templates/next-app/src/uikit/utils/getHashVerifyEmailParams.ts +0 -42
  274. package/dist/templates/next-app/tailwind.config.ts +0 -8
  275. package/dist/templates/next-app/tsconfig.json +0 -39
  276. package/dist/templates/node-lib/__tests__/readJson.test.ts +0 -26
  277. package/dist/templates/node-lib/bin/test.js +0 -30
  278. package/dist/templates/node-lib/package.json +0 -66
  279. package/dist/templates/node-lib/rollup.config.js +0 -79
  280. package/dist/templates/node-lib/src/index.ts +0 -7
  281. package/dist/templates/node-lib/src/readJson.ts +0 -12
  282. package/dist/templates/node-lib/tsconfig.json +0 -23
  283. package/dist/templates/pack-app/README.md +0 -108
  284. package/dist/templates/pack-app/eslint.config.js +0 -97
  285. package/dist/templates/pack-app/fe-config.json +0 -35
  286. package/dist/templates/pack-app/package.json +0 -86
  287. package/dist/templates/pack-app/pnpm-workspace.yaml +0 -2
  288. package/dist/templates/pack-app/tsconfig.json +0 -9
  289. package/dist/templates/pack-app/tsconfig.test.json +0 -10
  290. package/dist/templates/pack-app/vite.config.ts +0 -14
  291. package/dist/templates/react-app/.env.template +0 -22
  292. package/dist/templates/react-app/.prettierignore +0 -17
  293. package/dist/templates/react-app/README.en.md +0 -274
  294. package/dist/templates/react-app/README.md +0 -273
  295. package/dist/templates/react-app/__tests__/__mocks__/BootstrapTest.ts +0 -16
  296. package/dist/templates/react-app/__tests__/__mocks__/MockAppConfig.ts +0 -48
  297. package/dist/templates/react-app/__tests__/__mocks__/MockDialogHandler.ts +0 -17
  298. package/dist/templates/react-app/__tests__/__mocks__/MockLogger.ts +0 -14
  299. package/dist/templates/react-app/__tests__/__mocks__/components/TestApp.tsx +0 -38
  300. package/dist/templates/react-app/__tests__/__mocks__/components/TestBootstrapsProvider.tsx +0 -53
  301. package/dist/templates/react-app/__tests__/__mocks__/components/TestRouter.tsx +0 -46
  302. package/dist/templates/react-app/__tests__/__mocks__/components/index.ts +0 -12
  303. package/dist/templates/react-app/__tests__/__mocks__/createMockGlobals.ts +0 -96
  304. package/dist/templates/react-app/__tests__/__mocks__/i18nextHttpBackend.ts +0 -110
  305. package/dist/templates/react-app/__tests__/__mocks__/testIOC/TestIOC.ts +0 -55
  306. package/dist/templates/react-app/__tests__/__mocks__/testIOC/TestIOCRegister.ts +0 -74
  307. package/dist/templates/react-app/__tests__/setup/index.ts +0 -1
  308. package/dist/templates/react-app/__tests__/setup/setupGlobal.ts +0 -64
  309. package/dist/templates/react-app/__tests__/src/App.structure.test.tsx +0 -115
  310. package/dist/templates/react-app/__tests__/src/base/cases/AppConfig.test.ts +0 -288
  311. package/dist/templates/react-app/__tests__/src/base/cases/DialogHandler.test.ts +0 -226
  312. package/dist/templates/react-app/__tests__/src/base/cases/I18nKeyErrorPlugin.test.ts +0 -178
  313. package/dist/templates/react-app/__tests__/src/base/cases/InversifyContainer.test.ts +0 -181
  314. package/dist/templates/react-app/__tests__/src/base/cases/PublicAssetsPath.test.ts +0 -61
  315. package/dist/templates/react-app/__tests__/src/base/cases/RequestLogger.test.ts +0 -177
  316. package/dist/templates/react-app/__tests__/src/base/cases/RequestStatusCatcher.test.ts +0 -191
  317. package/dist/templates/react-app/__tests__/src/base/cases/RouterLoader.test.ts +0 -245
  318. package/dist/templates/react-app/__tests__/src/base/services/I18nService.test.ts +0 -240
  319. package/dist/templates/react-app/__tests__/src/core/IOC.test.ts +0 -242
  320. package/dist/templates/react-app/__tests__/src/core/bootstraps/BootstrapClient.test.ts +0 -135
  321. package/dist/templates/react-app/__tests__/src/core/bootstraps/BootstrapsApp.test.ts +0 -74
  322. package/dist/templates/react-app/__tests__/src/main.test.tsx +0 -46
  323. package/dist/templates/react-app/__tests__/src/uikit/components/BaseHeader.test.tsx +0 -97
  324. package/dist/templates/react-app/__tests__/src/uikit/components/chatMessage/ChatRoot.test.tsx +0 -274
  325. package/dist/templates/react-app/config/IOCIdentifier.ts +0 -91
  326. package/dist/templates/react-app/config/Identifier/common/common.error.ts +0 -34
  327. package/dist/templates/react-app/config/Identifier/common/common.ts +0 -62
  328. package/dist/templates/react-app/config/Identifier/common/index.ts +0 -2
  329. package/dist/templates/react-app/config/Identifier/components/component.chatMessage.ts +0 -56
  330. package/dist/templates/react-app/config/Identifier/components/component.messageBaseList.ts +0 -103
  331. package/dist/templates/react-app/config/Identifier/index.ts +0 -2
  332. package/dist/templates/react-app/config/Identifier/pages/index.ts +0 -9
  333. package/dist/templates/react-app/config/Identifier/pages/page.about.ts +0 -189
  334. package/dist/templates/react-app/config/Identifier/pages/page.executor.ts +0 -275
  335. package/dist/templates/react-app/config/Identifier/pages/page.home.ts +0 -71
  336. package/dist/templates/react-app/config/Identifier/pages/page.identifiter.ts +0 -102
  337. package/dist/templates/react-app/config/Identifier/pages/page.jsonStorage.ts +0 -77
  338. package/dist/templates/react-app/config/Identifier/pages/page.login.ts +0 -162
  339. package/dist/templates/react-app/config/Identifier/pages/page.message.ts +0 -20
  340. package/dist/templates/react-app/config/Identifier/pages/page.register.ts +0 -159
  341. package/dist/templates/react-app/config/Identifier/pages/page.request.ts +0 -169
  342. package/dist/templates/react-app/config/app.router.ts +0 -338
  343. package/dist/templates/react-app/config/common.ts +0 -85
  344. package/dist/templates/react-app/config/feapi.mock.json +0 -34
  345. package/dist/templates/react-app/config/i18n/PageI18nInterface.ts +0 -53
  346. package/dist/templates/react-app/config/i18n/aboutI18n.ts +0 -42
  347. package/dist/templates/react-app/config/i18n/chatMessageI18n.ts +0 -17
  348. package/dist/templates/react-app/config/i18n/executorI18n.ts +0 -51
  349. package/dist/templates/react-app/config/i18n/homeI18n.ts +0 -24
  350. package/dist/templates/react-app/config/i18n/i18nConfig.ts +0 -30
  351. package/dist/templates/react-app/config/i18n/identifiter18n.ts +0 -30
  352. package/dist/templates/react-app/config/i18n/jsonStorage18n.ts +0 -27
  353. package/dist/templates/react-app/config/i18n/login18n.ts +0 -42
  354. package/dist/templates/react-app/config/i18n/messageBaseListI18n.ts +0 -22
  355. package/dist/templates/react-app/config/i18n/messageI18n.ts +0 -14
  356. package/dist/templates/react-app/config/i18n/notFoundI18n.ts +0 -34
  357. package/dist/templates/react-app/config/i18n/register18n.ts +0 -40
  358. package/dist/templates/react-app/config/i18n/request18n.ts +0 -41
  359. package/dist/templates/react-app/config/theme.ts +0 -21
  360. package/dist/templates/react-app/docs/en/bootstrap.md +0 -1891
  361. package/dist/templates/react-app/docs/en/components/chat-message-component.md +0 -320
  362. package/dist/templates/react-app/docs/en/components/chat-message-refactor.md +0 -283
  363. package/dist/templates/react-app/docs/en/components/message-base-list-component.md +0 -171
  364. package/dist/templates/react-app/docs/en/development-guide.md +0 -1199
  365. package/dist/templates/react-app/docs/en/env.md +0 -1336
  366. package/dist/templates/react-app/docs/en/global.md +0 -509
  367. package/dist/templates/react-app/docs/en/i18n.md +0 -979
  368. package/dist/templates/react-app/docs/en/index.md +0 -802
  369. package/dist/templates/react-app/docs/en/ioc.md +0 -1365
  370. package/dist/templates/react-app/docs/en/playwright/e2e-tests.md +0 -321
  371. package/dist/templates/react-app/docs/en/playwright/index.md +0 -19
  372. package/dist/templates/react-app/docs/en/playwright/installation-summary.md +0 -332
  373. package/dist/templates/react-app/docs/en/playwright/overview.md +0 -222
  374. package/dist/templates/react-app/docs/en/playwright/quickstart.md +0 -325
  375. package/dist/templates/react-app/docs/en/playwright/reorganization-notes.md +0 -340
  376. package/dist/templates/react-app/docs/en/playwright/setup-complete.md +0 -290
  377. package/dist/templates/react-app/docs/en/playwright/testing-guide.md +0 -565
  378. package/dist/templates/react-app/docs/en/request.md +0 -423
  379. package/dist/templates/react-app/docs/en/router.md +0 -404
  380. package/dist/templates/react-app/docs/en/store.md +0 -1331
  381. package/dist/templates/react-app/docs/en/test-guide.md +0 -976
  382. package/dist/templates/react-app/docs/en/theme.md +0 -424
  383. package/dist/templates/react-app/docs/en/typescript-guide.md +0 -473
  384. package/dist/templates/react-app/docs/en/why-no-globals.md +0 -797
  385. package/dist/templates/react-app/docs/zh/bootstrap.md +0 -1891
  386. package/dist/templates/react-app/docs/zh/components/chat-message-component.md +0 -320
  387. package/dist/templates/react-app/docs/zh/components/chat-message-refactor.md +0 -283
  388. package/dist/templates/react-app/docs/zh/components/message-base-list-component.md +0 -171
  389. package/dist/templates/react-app/docs/zh/development-guide.md +0 -1199
  390. package/dist/templates/react-app/docs/zh/env.md +0 -1336
  391. package/dist/templates/react-app/docs/zh/global.md +0 -511
  392. package/dist/templates/react-app/docs/zh/i18n.md +0 -979
  393. package/dist/templates/react-app/docs/zh/index.md +0 -786
  394. package/dist/templates/react-app/docs/zh/ioc.md +0 -1364
  395. package/dist/templates/react-app/docs/zh/playwright/e2e-tests.md +0 -321
  396. package/dist/templates/react-app/docs/zh/playwright/index.md +0 -19
  397. package/dist/templates/react-app/docs/zh/playwright/installation-summary.md +0 -332
  398. package/dist/templates/react-app/docs/zh/playwright/overview.md +0 -222
  399. package/dist/templates/react-app/docs/zh/playwright/quickstart.md +0 -325
  400. package/dist/templates/react-app/docs/zh/playwright/reorganization-notes.md +0 -340
  401. package/dist/templates/react-app/docs/zh/playwright/setup-complete.md +0 -290
  402. package/dist/templates/react-app/docs/zh/playwright/testing-guide.md +0 -565
  403. package/dist/templates/react-app/docs/zh/request.md +0 -427
  404. package/dist/templates/react-app/docs/zh/router.md +0 -408
  405. package/dist/templates/react-app/docs/zh/store.md +0 -1329
  406. package/dist/templates/react-app/docs/zh/test-guide.md +0 -976
  407. package/dist/templates/react-app/docs/zh/theme.md +0 -424
  408. package/dist/templates/react-app/docs/zh/typescript-guide.md +0 -473
  409. package/dist/templates/react-app/docs/zh/why-no-globals.md +0 -797
  410. package/dist/templates/react-app/e2e/App.spec.ts +0 -319
  411. package/dist/templates/react-app/e2e/fixtures/base.fixture.ts +0 -40
  412. package/dist/templates/react-app/e2e/main.spec.ts +0 -20
  413. package/dist/templates/react-app/e2e/utils/test-helpers.ts +0 -19
  414. package/dist/templates/react-app/eslint.config.mjs +0 -325
  415. package/dist/templates/react-app/index.html +0 -13
  416. package/dist/templates/react-app/makes/generateTs2LocalesOptions.ts +0 -26
  417. package/dist/templates/react-app/package.json +0 -125
  418. package/dist/templates/react-app/playwright.config.ts +0 -79
  419. package/dist/templates/react-app/postcss.config.js +0 -5
  420. package/dist/templates/react-app/public/locales/en/common.json +0 -235
  421. package/dist/templates/react-app/public/locales/zh/common.json +0 -235
  422. package/dist/templates/react-app/public/logo.svg +0 -1
  423. package/dist/templates/react-app/public/router-root/logo.svg +0 -1
  424. package/dist/templates/react-app/src/App.tsx +0 -35
  425. package/dist/templates/react-app/src/assets/react.svg +0 -1
  426. package/dist/templates/react-app/src/base/apis/AiApi.ts +0 -68
  427. package/dist/templates/react-app/src/base/apis/feApi/FeApi.ts +0 -29
  428. package/dist/templates/react-app/src/base/apis/feApi/FeApiAdapter.ts +0 -14
  429. package/dist/templates/react-app/src/base/apis/feApi/FeApiBootstarp.ts +0 -86
  430. package/dist/templates/react-app/src/base/apis/feApi/FeApiType.ts +0 -21
  431. package/dist/templates/react-app/src/base/apis/userApi/UserApi.ts +0 -142
  432. package/dist/templates/react-app/src/base/apis/userApi/UserApiAdapter.ts +0 -14
  433. package/dist/templates/react-app/src/base/apis/userApi/UserApiBootstarp.ts +0 -86
  434. package/dist/templates/react-app/src/base/apis/userApi/UserApiType.ts +0 -70
  435. package/dist/templates/react-app/src/base/cases/AppConfig.ts +0 -123
  436. package/dist/templates/react-app/src/base/cases/DialogHandler.ts +0 -115
  437. package/dist/templates/react-app/src/base/cases/I18nKeyErrorPlugin.ts +0 -64
  438. package/dist/templates/react-app/src/base/cases/InversifyContainer.ts +0 -45
  439. package/dist/templates/react-app/src/base/cases/PublicAssetsPath.ts +0 -23
  440. package/dist/templates/react-app/src/base/cases/RequestLanguages.ts +0 -55
  441. package/dist/templates/react-app/src/base/cases/RequestLogger.ts +0 -80
  442. package/dist/templates/react-app/src/base/cases/RequestStatusCatcher.ts +0 -40
  443. package/dist/templates/react-app/src/base/cases/ResourceState.ts +0 -23
  444. package/dist/templates/react-app/src/base/cases/RouterLoader.ts +0 -173
  445. package/dist/templates/react-app/src/base/cases/TranslateI18nInterface.ts +0 -26
  446. package/dist/templates/react-app/src/base/port/ExecutorPageBridgeInterface.ts +0 -23
  447. package/dist/templates/react-app/src/base/port/I18nServiceInterface.ts +0 -10
  448. package/dist/templates/react-app/src/base/port/IOCInterface.ts +0 -38
  449. package/dist/templates/react-app/src/base/port/JSONStoragePageBridgeInterface.ts +0 -21
  450. package/dist/templates/react-app/src/base/port/RequestPageBridgeInterface.ts +0 -23
  451. package/dist/templates/react-app/src/base/port/RequestStatusInterface.ts +0 -5
  452. package/dist/templates/react-app/src/base/port/RouteServiceInterface.ts +0 -29
  453. package/dist/templates/react-app/src/base/port/UserServiceInterface.ts +0 -20
  454. package/dist/templates/react-app/src/base/services/BaseLayoutService.ts +0 -61
  455. package/dist/templates/react-app/src/base/services/I18nService.ts +0 -146
  456. package/dist/templates/react-app/src/base/services/IdentifierService.ts +0 -162
  457. package/dist/templates/react-app/src/base/services/RouteService.ts +0 -115
  458. package/dist/templates/react-app/src/base/services/UserBootstrap.ts +0 -45
  459. package/dist/templates/react-app/src/base/services/UserService.ts +0 -88
  460. package/dist/templates/react-app/src/base/types/Page.ts +0 -47
  461. package/dist/templates/react-app/src/base/types/deprecated-antd.d.ts +0 -60
  462. package/dist/templates/react-app/src/base/types/global.d.ts +0 -8
  463. package/dist/templates/react-app/src/core/IOC.ts +0 -28
  464. package/dist/templates/react-app/src/core/bootstraps/BootstrapClient.ts +0 -108
  465. package/dist/templates/react-app/src/core/bootstraps/BootstrapsRegistry.ts +0 -54
  466. package/dist/templates/react-app/src/core/bootstraps/IocIdentifierTest.ts +0 -26
  467. package/dist/templates/react-app/src/core/bootstraps/PrintBootstrap.ts +0 -14
  468. package/dist/templates/react-app/src/core/bootstraps/SaveAppInfo.ts +0 -28
  469. package/dist/templates/react-app/src/core/clientIoc/ClientIOC.ts +0 -47
  470. package/dist/templates/react-app/src/core/clientIoc/ClientIOCRegister.ts +0 -142
  471. package/dist/templates/react-app/src/core/globals.ts +0 -47
  472. package/dist/templates/react-app/src/main.tsx +0 -19
  473. package/dist/templates/react-app/src/pages/404.tsx +0 -19
  474. package/dist/templates/react-app/src/pages/500.tsx +0 -18
  475. package/dist/templates/react-app/src/pages/NoRouteFound.tsx +0 -5
  476. package/dist/templates/react-app/src/pages/auth/Layout.tsx +0 -27
  477. package/dist/templates/react-app/src/pages/auth/LoginPage.tsx +0 -166
  478. package/dist/templates/react-app/src/pages/auth/RegisterPage.tsx +0 -226
  479. package/dist/templates/react-app/src/pages/base/AboutPage.tsx +0 -123
  480. package/dist/templates/react-app/src/pages/base/ExecutorPage.tsx +0 -467
  481. package/dist/templates/react-app/src/pages/base/HomePage.tsx +0 -81
  482. package/dist/templates/react-app/src/pages/base/IdentifierPage.tsx +0 -117
  483. package/dist/templates/react-app/src/pages/base/JSONStoragePage.tsx +0 -132
  484. package/dist/templates/react-app/src/pages/base/Layout.tsx +0 -20
  485. package/dist/templates/react-app/src/pages/base/MessagePage.tsx +0 -71
  486. package/dist/templates/react-app/src/pages/base/RedirectPathname.tsx +0 -18
  487. package/dist/templates/react-app/src/pages/base/RequestPage.tsx +0 -193
  488. package/dist/templates/react-app/src/styles/css/antd-themes/_common/_default.css +0 -280
  489. package/dist/templates/react-app/src/styles/css/antd-themes/_common/dark.css +0 -233
  490. package/dist/templates/react-app/src/styles/css/antd-themes/_common/index.css +0 -3
  491. package/dist/templates/react-app/src/styles/css/antd-themes/_common/pink.css +0 -246
  492. package/dist/templates/react-app/src/styles/css/antd-themes/index.css +0 -4
  493. package/dist/templates/react-app/src/styles/css/antd-themes/menu/_default.css +0 -108
  494. package/dist/templates/react-app/src/styles/css/antd-themes/menu/dark.css +0 -67
  495. package/dist/templates/react-app/src/styles/css/antd-themes/menu/index.css +0 -3
  496. package/dist/templates/react-app/src/styles/css/antd-themes/menu/pink.css +0 -67
  497. package/dist/templates/react-app/src/styles/css/antd-themes/no-context.css +0 -34
  498. package/dist/templates/react-app/src/styles/css/antd-themes/pagination/_default.css +0 -34
  499. package/dist/templates/react-app/src/styles/css/antd-themes/pagination/dark.css +0 -31
  500. package/dist/templates/react-app/src/styles/css/antd-themes/pagination/index.css +0 -3
  501. package/dist/templates/react-app/src/styles/css/antd-themes/pagination/pink.css +0 -36
  502. package/dist/templates/react-app/src/styles/css/antd-themes/table/_default.css +0 -44
  503. package/dist/templates/react-app/src/styles/css/antd-themes/table/dark.css +0 -43
  504. package/dist/templates/react-app/src/styles/css/antd-themes/table/index.css +0 -3
  505. package/dist/templates/react-app/src/styles/css/antd-themes/table/pink.css +0 -43
  506. package/dist/templates/react-app/src/styles/css/index.css +0 -6
  507. package/dist/templates/react-app/src/styles/css/page.css +0 -20
  508. package/dist/templates/react-app/src/styles/css/scrollbar.css +0 -34
  509. package/dist/templates/react-app/src/styles/css/tailwind.css +0 -5
  510. package/dist/templates/react-app/src/styles/css/themes/_default.css +0 -30
  511. package/dist/templates/react-app/src/styles/css/themes/dark.css +0 -30
  512. package/dist/templates/react-app/src/styles/css/themes/index.css +0 -3
  513. package/dist/templates/react-app/src/styles/css/themes/pink.css +0 -30
  514. package/dist/templates/react-app/src/styles/css/zIndex.css +0 -9
  515. package/dist/templates/react-app/src/uikit/bridges/ExecutorPageBridge.ts +0 -72
  516. package/dist/templates/react-app/src/uikit/bridges/JSONStoragePageBridge.ts +0 -41
  517. package/dist/templates/react-app/src/uikit/bridges/NavigateBridge.ts +0 -22
  518. package/dist/templates/react-app/src/uikit/bridges/RequestPageBridge.ts +0 -136
  519. package/dist/templates/react-app/src/uikit/components/AppRouterProvider.tsx +0 -35
  520. package/dist/templates/react-app/src/uikit/components/BaseHeader.tsx +0 -51
  521. package/dist/templates/react-app/src/uikit/components/BaseLayoutProvider.tsx +0 -44
  522. package/dist/templates/react-app/src/uikit/components/BaseRouteProvider.tsx +0 -21
  523. package/dist/templates/react-app/src/uikit/components/BaseRouteSeo.tsx +0 -18
  524. package/dist/templates/react-app/src/uikit/components/BootstrapsProvider.tsx +0 -11
  525. package/dist/templates/react-app/src/uikit/components/ClientSeo.tsx +0 -62
  526. package/dist/templates/react-app/src/uikit/components/ComboProvider.tsx +0 -38
  527. package/dist/templates/react-app/src/uikit/components/LanguageSwitcher.tsx +0 -78
  528. package/dist/templates/react-app/src/uikit/components/Loading.tsx +0 -49
  529. package/dist/templates/react-app/src/uikit/components/LocaleLink.tsx +0 -43
  530. package/dist/templates/react-app/src/uikit/components/LogoutButton.tsx +0 -58
  531. package/dist/templates/react-app/src/uikit/components/MessageBaseList.tsx +0 -258
  532. package/dist/templates/react-app/src/uikit/components/RouterRenderComponent.tsx +0 -19
  533. package/dist/templates/react-app/src/uikit/components/ThemeSwitcher.tsx +0 -137
  534. package/dist/templates/react-app/src/uikit/components/With.tsx +0 -17
  535. package/dist/templates/react-app/src/uikit/components/chatMessage/ChatMessageBridge.ts +0 -205
  536. package/dist/templates/react-app/src/uikit/components/chatMessage/ChatRoot.tsx +0 -21
  537. package/dist/templates/react-app/src/uikit/components/chatMessage/FocusBar.tsx +0 -108
  538. package/dist/templates/react-app/src/uikit/components/chatMessage/MessageApi.ts +0 -282
  539. package/dist/templates/react-app/src/uikit/components/chatMessage/MessageItem.tsx +0 -102
  540. package/dist/templates/react-app/src/uikit/components/chatMessage/MessagesList.tsx +0 -86
  541. package/dist/templates/react-app/src/uikit/contexts/BaseRouteContext.ts +0 -42
  542. package/dist/templates/react-app/src/uikit/contexts/IOCContext.ts +0 -13
  543. package/dist/templates/react-app/src/uikit/hooks/useAppTranslation.ts +0 -26
  544. package/dist/templates/react-app/src/uikit/hooks/useI18nInterface.ts +0 -25
  545. package/dist/templates/react-app/src/uikit/hooks/useIOC.ts +0 -35
  546. package/dist/templates/react-app/src/uikit/hooks/useNavigateBridge.ts +0 -21
  547. package/dist/templates/react-app/src/uikit/hooks/useRouterI18nGuard.ts +0 -25
  548. package/dist/templates/react-app/src/uikit/hooks/useStrictEffect.ts +0 -31
  549. package/dist/templates/react-app/src/vite-env.d.ts +0 -1
  550. package/dist/templates/react-app/tailwind.config.js +0 -4
  551. package/dist/templates/react-app/tsconfig.app.json +0 -36
  552. package/dist/templates/react-app/tsconfig.e2e.json +0 -24
  553. package/dist/templates/react-app/tsconfig.json +0 -22
  554. package/dist/templates/react-app/tsconfig.node.json +0 -27
  555. package/dist/templates/react-app/tsconfig.test.json +0 -18
  556. package/dist/templates/react-app/vite.config.ts +0 -144
@@ -1,282 +0,0 @@
1
- import {
2
- ThreadUtil,
3
- MessageStatus,
4
- ChatMessageRole
5
- } from '@qlover/corekit-bridge';
6
- import { random } from 'lodash';
7
- import type {
8
- MessageStoreMsg,
9
- ChatMessageStore,
10
- MessageGetwayInterface,
11
- GatewayOptions,
12
- MessageInterface
13
- } from '@qlover/corekit-bridge';
14
-
15
- export class MessageApi implements MessageGetwayInterface {
16
- constructor(protected messagesStore: ChatMessageStore<unknown>) {
17
- this.messagesStore = messagesStore;
18
- }
19
-
20
- /**
21
- * Send message (supports both normal and streaming modes)
22
- * - If options.stream === true, use streaming mode (progressive output)
23
- * - If options provided but stream !== true, use interruptible normal mode
24
- * - If no options, use fast normal mode (non-interruptible)
25
-
26
- * @override
27
- */
28
- public async sendMessage<M extends MessageInterface<unknown>>(
29
- message: M,
30
- options?: GatewayOptions<M>
31
- ): Promise<unknown | M> {
32
- // Type assertion: we expect MessageStoreMsg<string> in this implementation
33
- const storeMessage = message as unknown as MessageStoreMsg<string>;
34
- const messageContent = storeMessage.content ?? '';
35
-
36
- // Check if error simulation is needed
37
- if (messageContent.includes('Failed') || messageContent.includes('error')) {
38
- const error = new Error('Failed to send message');
39
- await options?.onError?.(error);
40
- throw error;
41
- }
42
-
43
- // Determine which mode to use
44
- if (options?.stream === true) {
45
- // Streaming mode: progressive output
46
- return this.sendStreamMode(
47
- storeMessage,
48
- options as GatewayOptions<MessageStoreMsg<string>>
49
- ) as Promise<unknown | M>;
50
- } else if (options) {
51
- // Interruptible normal mode: one-time return, but supports stop
52
- return this.sendInterruptibleMode(
53
- storeMessage,
54
- options as GatewayOptions<MessageStoreMsg<string>>
55
- ) as Promise<unknown | M>;
56
- } else {
57
- // Fast normal mode: non-interruptible
58
- return this.sendNormalMode(storeMessage) as Promise<unknown | M>;
59
- }
60
- }
61
-
62
- /**
63
- * Streaming send mode
64
- * - Simulates character-by-character output
65
- */
66
- private async sendStreamMode<M extends MessageStoreMsg<string>>(
67
- message: M,
68
- options: GatewayOptions<M>
69
- ): Promise<M> {
70
- const messageContent = message.content ?? '';
71
-
72
- // Simulate generated reply content
73
- const responseText = `Hello! You sent: ${messageContent}. This is a streaming response that will be sent word by word to simulate real streaming behavior.`;
74
- const words = responseText.split(' ');
75
-
76
- // Create initial assistant message
77
- const assistantMessageId =
78
- ChatMessageRole.ASSISTANT + message.id + Date.now();
79
- let accumulatedContent = '';
80
-
81
- try {
82
- // Simulate connection establishment - call onConnected
83
- await ThreadUtil.sleep(random(200, 500));
84
-
85
- // Note: Framework will automatically intercept this call, trigger plugin system, then call user's original callback
86
- await options.onConnected?.();
87
-
88
- // Send word by word
89
- for (let i = 0; i < words.length; i++) {
90
- // Check if cancelled
91
- if (options.signal?.aborted) {
92
- throw new DOMException('Request aborted', 'AbortError');
93
- }
94
-
95
- // Accumulate content
96
- accumulatedContent += (i > 0 ? ' ' : '') + words[i];
97
-
98
- // Create message object for current chunk
99
- const chunkMessage = this.messagesStore.createMessage({
100
- ...message,
101
- id: assistantMessageId,
102
- role: ChatMessageRole.ASSISTANT,
103
- content: accumulatedContent,
104
- error: null,
105
- loading: true,
106
- status: MessageStatus.SENDING,
107
- startTime: message.startTime,
108
- endTime: 0,
109
- result: null
110
- }) as unknown as M;
111
-
112
- // Call onChunk callback
113
- await options.onChunk?.(chunkMessage);
114
-
115
- // Calculate progress
116
- const progress = ((i + 1) / words.length) * 100;
117
- await options.onProgress?.(progress);
118
-
119
- // Simulate network delay (random delay)
120
- await ThreadUtil.sleep(random(100, 300));
121
- }
122
-
123
- // Create final completed message
124
- const finalMessage = this.messagesStore.createMessage({
125
- ...message,
126
- id: assistantMessageId,
127
- role: ChatMessageRole.ASSISTANT,
128
- content: accumulatedContent,
129
- error: null,
130
- loading: false,
131
- status: MessageStatus.SENT,
132
- startTime: message.startTime,
133
- endTime: Date.now(),
134
- result: null
135
- }) as unknown as M;
136
-
137
- // Call completion callback
138
- await options.onComplete?.(finalMessage);
139
-
140
- return finalMessage;
141
- } catch (error) {
142
- // Check if it's a stop error
143
- if (
144
- error instanceof DOMException &&
145
- error.name === 'AbortError' &&
146
- typeof options.onAborted === 'function'
147
- ) {
148
- // Call onAborted callback
149
- // Note: The message here contains accumulated content
150
- const abortedMessage = this.messagesStore.createMessage({
151
- ...message,
152
- id: assistantMessageId,
153
- role: ChatMessageRole.ASSISTANT,
154
- content: accumulatedContent,
155
- error: null,
156
- loading: false,
157
- status: MessageStatus.STOPPED,
158
- startTime: message.startTime,
159
- endTime: Date.now(),
160
- result: null
161
- }) as unknown as M;
162
-
163
- await options.onAborted(abortedMessage);
164
- } else {
165
- // Other errors, call onError callback
166
- await options.onError?.(error);
167
- }
168
-
169
- throw error;
170
- }
171
- }
172
-
173
- /**
174
- * Interruptible normal mode
175
- * - Returns complete message at once (no character-by-character output)
176
- * - Supports stop control (via signal)
177
- * - Supports event callbacks (onComplete, onAborted, onError)
178
- */
179
- private async sendInterruptibleMode<M extends MessageStoreMsg<string>>(
180
- message: M,
181
- options: GatewayOptions<M>
182
- ): Promise<M> {
183
- const messageContent = message.content ?? '';
184
-
185
- // Simulate connection establishment - call onConnected
186
- await options.onConnected?.();
187
-
188
- // Simulate random delay
189
- const times = random(200, 1000);
190
-
191
- // Check if cancelled during delay
192
- const startTime = Date.now();
193
- while (Date.now() - startTime < times) {
194
- if (options.signal?.aborted) {
195
- // Cancelled, create stopped message
196
- const abortedMessage = this.messagesStore.createMessage({
197
- ...message,
198
- id: ChatMessageRole.ASSISTANT + message.id,
199
- role: ChatMessageRole.ASSISTANT,
200
- content: '', // Content not generated yet
201
- error: null,
202
- loading: false,
203
- status: MessageStatus.STOPPED,
204
- endTime: Date.now(),
205
- result: null
206
- }) as unknown as M;
207
-
208
- // Call onAborted
209
- await options.onAborted?.(abortedMessage);
210
- throw new DOMException('Request aborted', 'AbortError');
211
- }
212
-
213
- // Check every 50ms
214
- await ThreadUtil.sleep(50);
215
- }
216
-
217
- // Check if error simulation is needed
218
- if (messageContent.includes('Failed') || messageContent.includes('error')) {
219
- const error = new Error('Failed to send message');
220
- await options.onError?.(error);
221
- throw error;
222
- }
223
-
224
- if (times % 5 === 0) {
225
- const error = new Error(`Network error(${times})`);
226
- await options.onError?.(error);
227
- throw error;
228
- }
229
-
230
- const endTime = Date.now();
231
- const finalMessage = this.messagesStore.createMessage({
232
- ...message,
233
- id: ChatMessageRole.ASSISTANT + message.id,
234
- role: ChatMessageRole.ASSISTANT,
235
- content: `(${endTime - message.startTime}ms) Hello! You sent: ${message.content}`,
236
- error: null,
237
- loading: false,
238
- status: MessageStatus.SENT,
239
- endTime: endTime,
240
- result: null
241
- }) as unknown as M;
242
-
243
- // Call onComplete
244
- await options.onComplete?.(finalMessage);
245
-
246
- return finalMessage;
247
- }
248
-
249
- /**
250
- * Fast normal mode
251
- * - Returns complete message at once
252
- * - Non-interruptible (doesn't check signal)
253
- */
254
- private async sendNormalMode<M extends MessageStoreMsg<string>>(
255
- message: M
256
- ): Promise<M> {
257
- const times = random(200, 1000);
258
- await ThreadUtil.sleep(times);
259
-
260
- const messageContent = message.content ?? '';
261
- if (messageContent.includes('Failed') || messageContent.includes('error')) {
262
- throw new Error('Failed to send message');
263
- }
264
-
265
- if (times % 5 === 0) {
266
- throw new Error(`Network error(${times})`);
267
- }
268
-
269
- const endTime = Date.now();
270
- return this.messagesStore.createMessage({
271
- ...message,
272
- id: ChatMessageRole.ASSISTANT + message.id,
273
- role: ChatMessageRole.ASSISTANT,
274
- content: `(${endTime - message.startTime}ms) Hello! You sent: ${message.content}`,
275
- error: null,
276
- loading: false,
277
- status: MessageStatus.SENT,
278
- endTime: endTime,
279
- result: null
280
- }) as unknown as M;
281
- }
282
- }
@@ -1,102 +0,0 @@
1
- import { ReloadOutlined } from '@ant-design/icons';
2
- import { ChatMessageRole } from '@qlover/corekit-bridge';
3
- import { Spin, Button } from 'antd';
4
- import { clsx } from 'clsx';
5
- import { useMemo } from 'react';
6
- import type { ChatMessageI18nInterface } from '@config/i18n/chatMessageI18n';
7
- import type {
8
- ChatMessage,
9
- ChatMessageBridgeInterface
10
- } from '@qlover/corekit-bridge';
11
-
12
- export interface MessageItemProps<T, MessageType extends ChatMessage<T>> {
13
- message: MessageType;
14
- index: number;
15
- bridge?: ChatMessageBridgeInterface<T>;
16
- tt: ChatMessageI18nInterface;
17
- }
18
-
19
- export function MessageItem<T, MessageType extends ChatMessage<T>>({
20
- message,
21
- bridge,
22
- index,
23
- tt
24
- }: MessageItemProps<T, MessageType>) {
25
- const messageText = useMemo(() => {
26
- return message.content as string;
27
- }, [message.content]);
28
-
29
- const duration = useMemo(() => {
30
- return message.endTime ? message.endTime - message.startTime : 0;
31
- }, [message.endTime, message.startTime]);
32
-
33
- const errorMessage = useMemo(() => {
34
- return message.error instanceof Error ? message.error.message : null;
35
- }, [message.error]);
36
-
37
- const isUserMessage = message.role === ChatMessageRole.USER;
38
- const isAssistant = message.role === ChatMessageRole.ASSISTANT;
39
-
40
- return (
41
- <div
42
- data-testid="MessageItem"
43
- data-message-id={message.id}
44
- data-message-role={message.role}
45
- data-message-index={index}
46
- className={clsx('w-full flex mb-3', {
47
- 'justify-end': isUserMessage,
48
- 'justify-start': !isUserMessage
49
- })}
50
- >
51
- <div
52
- className={clsx('flex flex-col px-4 py-3 rounded-xl shadow-sm', {
53
- 'max-w-[80%] bg-blue-500 text-white': isUserMessage,
54
- 'max-w-[85%] bg-secondary border border-primary': isAssistant
55
- })}
56
- >
57
- {/* Message content */}
58
- <div className="flex items-start gap-2">
59
- {isUserMessage && !message.loading && (
60
- <Button
61
- type="text"
62
- size="small"
63
- icon={<ReloadOutlined className="text-white" />}
64
- disabled={message.loading}
65
- onClick={() => bridge?.send(message)}
66
- className="flex-shrink-0 hover:bg-blue-600"
67
- title={tt.retry}
68
- />
69
- )}
70
-
71
- <div
72
- data-testid="MessageContent"
73
- className={clsx('flex-1 whitespace-pre-wrap break-words', {
74
- 'text-white': isUserMessage,
75
- 'text-text': isAssistant
76
- })}
77
- >
78
- {message.loading && <Spin size="small" className="mr-2" />}
79
- {messageText}
80
- </div>
81
- </div>
82
-
83
- {/* Duration for user messages */}
84
- {isUserMessage && duration > 0 && (
85
- <div className="text-right text-xs mt-1 opacity-80">
86
- {tt.duration}: {duration}ms
87
- </div>
88
- )}
89
-
90
- {/* Error message */}
91
- {errorMessage && (
92
- <div
93
- data-testid="MessageError"
94
- className="mt-2 text-sm p-2 bg-red-100 text-red-700 rounded border border-red-200"
95
- >
96
- ❌ {errorMessage}
97
- </div>
98
- )}
99
- </div>
100
- </div>
101
- );
102
- }
@@ -1,86 +0,0 @@
1
- import { useStore } from '@brain-toolkit/react-kit';
2
- import { useCallback, type ComponentType } from 'react';
3
- import type { ChatMessageI18nInterface } from '@config/i18n/chatMessageI18n';
4
- import { MessageItem, type MessageItemProps } from './MessageItem';
5
- import type {
6
- ChatMessage,
7
- ChatMessageBridgeInterface
8
- } from '@qlover/corekit-bridge';
9
-
10
- export type MessageComponentType<
11
- T,
12
- MessageType extends ChatMessage<T>
13
- > = ComponentType<MessageItemProps<T, MessageType>>;
14
-
15
- export type GetMessageComponent<T, MessageType extends ChatMessage<T>> = (
16
- props: MessageItemProps<T, MessageType>
17
- ) => MessageComponentType<T, MessageType>;
18
-
19
- export interface MessagesListProps<T, MessageType extends ChatMessage<T>> {
20
- bridge: ChatMessageBridgeInterface<T>;
21
- tt: ChatMessageI18nInterface;
22
-
23
- /**
24
- * Get message component
25
- *
26
- * @default `MessageItem`
27
- *
28
- * @type `ComponentType<MessageItemProps<MessageType>>`
29
- */
30
- getMessageComponent?: GetMessageComponent<T, MessageType>;
31
-
32
- /**
33
- * Get message unique identifier
34
- *
35
- * @default `(message.id ?? '') + (message.startTime ?? 0) + index`
36
- *
37
- * @param message Message
38
- * @param index Message index
39
- * @returns Message unique identifier
40
- */
41
- getMessageKey?(message: MessageType, index: number): string;
42
- }
43
-
44
- export function MessagesList<T = string>({
45
- bridge,
46
- tt,
47
- getMessageComponent,
48
- getMessageKey
49
- }: MessagesListProps<T, ChatMessage<T>>) {
50
- const messagesStore = bridge.getMessageStore();
51
- const messages = useStore(messagesStore, (state) => state.messages);
52
-
53
- const _getMessageKey = useCallback(
54
- (message: ChatMessage<T>, index: number): string => {
55
- return (
56
- getMessageKey?.(message, index) ||
57
- String((message.id ?? '') + (message.startTime ?? 0) + index)
58
- );
59
- },
60
- [getMessageKey]
61
- );
62
-
63
- return (
64
- <div
65
- data-testid="MessagesList"
66
- className="flex-1 overflow-y-auto p-4 space-y-2"
67
- >
68
- {messages.length === 0 ? (
69
- <div className="flex items-center justify-center h-full">
70
- <div className="text-center text-text-secondary">
71
- <p className="text-base mb-1">{tt.empty}</p>
72
- <p className="text-sm">{tt.start}</p>
73
- </div>
74
- </div>
75
- ) : (
76
- messages.map((message, index) => {
77
- const key = _getMessageKey(message, index);
78
- const props = { message, index, bridge, tt };
79
- const Component = getMessageComponent?.(props) || MessageItem;
80
-
81
- return <Component data-testid="MessageItem" key={key} {...props} />;
82
- })
83
- )}
84
- </div>
85
- );
86
- }
@@ -1,42 +0,0 @@
1
- import { i18nConfig } from '@config/i18n/i18nConfig';
2
- import { WITHIN_PAGE_PROVIDER } from '@config/Identifier/common/common.error';
3
- import merge from 'lodash/merge';
4
- import { useContext, useMemo, createContext } from 'react';
5
- import type { BasePageProvider, RouteMeta } from '@/base/types/Page';
6
- import { useAppTranslation } from '../hooks/useAppTranslation';
7
- import { useI18nInterface } from '../hooks/useI18nInterface';
8
-
9
- const { defaultNS } = i18nConfig;
10
-
11
- const defaultBaseRoutemeta = {
12
- localNamespace: defaultNS,
13
- title: '',
14
- icon: '',
15
- i18nInterface: {}
16
- };
17
-
18
- export const BaseRoutePageContext = createContext<RouteMeta>({});
19
-
20
- export function useBaseRoutePage<
21
- T extends Record<string, string>
22
- >(): BasePageProvider<T> {
23
- const meta = useContext(BaseRoutePageContext);
24
-
25
- if (!meta) {
26
- throw new Error(WITHIN_PAGE_PROVIDER);
27
- }
28
-
29
- const _meta = useMemo(() => merge({}, defaultBaseRoutemeta, meta), [meta]);
30
-
31
- const i18n = useAppTranslation(_meta.localNamespace);
32
-
33
- const i18nInterface = useI18nInterface(_meta.i18nInterface as T);
34
-
35
- return {
36
- meta: _meta as Omit<RouteMeta, 'i18nInterface'> & { i18nInterface?: T },
37
- i18nInterface: i18nInterface as T,
38
- tt: i18nInterface as T,
39
- i18n,
40
- t: i18n.t
41
- };
42
- }
@@ -1,13 +0,0 @@
1
- 'use client';
2
-
3
- import { createContext } from 'react';
4
- import type { IOCIdentifierMap } from '@config/IOCIdentifier';
5
- import type {
6
- IOCContainerInterface,
7
- IOCFunctionInterface
8
- } from '@qlover/corekit-bridge';
9
-
10
- export const IOCContext = createContext<IOCFunctionInterface<
11
- IOCIdentifierMap,
12
- IOCContainerInterface
13
- > | null>(null);
@@ -1,26 +0,0 @@
1
- import { useCallback, useMemo } from 'react';
2
- import { useTranslation } from 'react-i18next';
3
- import type { TOptions } from 'i18next';
4
- import type { UseTranslationResponse } from 'react-i18next';
5
-
6
- export function useAppTranslation(
7
- ns?: string
8
- ): UseTranslationResponse<string, undefined> {
9
- const i18n = useTranslation(ns);
10
-
11
- const overrideT = useCallback(
12
- (key: string, options?: TOptions) => {
13
- return i18n.t(key, { nsSeparator: false, ...options });
14
- },
15
- [i18n.t]
16
- );
17
-
18
- const result = useMemo(() => {
19
- return {
20
- ...i18n,
21
- t: overrideT
22
- };
23
- }, [i18n, overrideT]);
24
-
25
- return result as UseTranslationResponse<string, undefined>;
26
- }
@@ -1,25 +0,0 @@
1
- import { useMemo } from 'react';
2
- import { TranslateI18nInterface } from '@/base/cases/TranslateI18nInterface';
3
- import { useAppTranslation } from './useAppTranslation';
4
-
5
- /**
6
- * Hook to get the i18n interface
7
- *
8
- * @param i18nInterface - The i18n interface to get
9
- * @returns The i18n interface
10
- */
11
- export function useI18nInterface<T extends Record<string, string>>(
12
- i18nInterface: T
13
- ): T {
14
- const { t } = useAppTranslation('common');
15
-
16
- const i18n = useMemo(() => {
17
- if (Object.keys(i18nInterface).length > 0) {
18
- return TranslateI18nInterface.translate(i18nInterface, t);
19
- }
20
-
21
- return {} as T;
22
- }, [i18nInterface, t]);
23
-
24
- return i18n;
25
- }
@@ -1,35 +0,0 @@
1
- import { useContext } from 'react';
2
- import type { IOCIdentifierMap } from '@config/IOCIdentifier';
3
- import { IOCContext } from './../contexts/IOCContext';
4
- import type {
5
- IOCContainerInterface,
6
- IOCFunctionInterface
7
- } from '@qlover/corekit-bridge';
8
-
9
- type IOCIdentifier = keyof IOCIdentifierMap | (new (...args: any[]) => any);
10
-
11
- export function useIOC(): IOCFunctionInterface<
12
- IOCIdentifierMap,
13
- IOCContainerInterface
14
- >;
15
- export function useIOC<T extends IOCIdentifier>(
16
- identifier: T
17
- ): T extends keyof IOCIdentifierMap
18
- ? IOCIdentifierMap[T]
19
- : T extends new (...args: any[]) => any
20
- ? InstanceType<T>
21
- : never;
22
-
23
- export function useIOC<T extends IOCIdentifier>(identifier?: T) {
24
- const IOC = useContext(IOCContext);
25
-
26
- if (!IOC) {
27
- throw new Error('IOC is not found');
28
- }
29
-
30
- if (identifier === undefined) {
31
- return IOC;
32
- }
33
-
34
- return IOC(identifier);
35
- }
@@ -1,21 +0,0 @@
1
- import { useEffect } from 'react';
2
- import { useNavigate } from 'react-router-dom';
3
- import { useIOC } from './useIOC';
4
- import { NavigateBridge } from '../bridges/NavigateBridge';
5
-
6
- /**
7
- * 使用 navigate 桥接
8
- *
9
- * 将 navigate 桥接到 NavigateBridge 中
10
- *
11
- * 这样就可以在服务层使用 navigate 了, 比如在某个service中需要跳转页面,就可以使用 navigateBridge.getUIBridge() 来跳转
12
- *
13
- * **但是它需要在 RouterProvider 中使用**
14
- */
15
- export function useNavigateBridge() {
16
- const navigate = useNavigate();
17
- const navigateBridge = useIOC(NavigateBridge);
18
- useEffect(() => {
19
- navigateBridge.setUIBridge(navigate);
20
- }, [navigate]);
21
- }
@@ -1,25 +0,0 @@
1
- import { IOCIdentifier } from '@config/IOCIdentifier';
2
- import { useEffect } from 'react';
3
- import { useLocation, useNavigate, useParams } from 'react-router-dom';
4
- import type { LocaleType } from '@config/i18n/i18nConfig';
5
- import { useIOC } from './useIOC';
6
-
7
- /**
8
- * 国际化路由国际化守卫
9
- *
10
- * 比如: 开启了 `@config/common 中useLocaleRoutes` 为 `true` 时,
11
- *
12
- * 访问 `/login` 则会自动重定向到 `/en/login`, 其中 en 为默认语言可配置
13
- *
14
- * 或者访问一个不支持的语言,则会自动重定向到 `/en/404`
15
- *
16
- */
17
- export function useRouterI18nGuard() {
18
- const { lng } = useParams<{ lng: LocaleType }>();
19
- const { pathname } = useLocation();
20
- const navigate = useNavigate();
21
- const routeService = useIOC(IOCIdentifier.RouteServiceInterface);
22
- useEffect(() => {
23
- routeService.i18nGuard(pathname, lng as LocaleType, navigate);
24
- }, [lng, navigate, pathname]);
25
- }
@@ -1,31 +0,0 @@
1
- import { useEffect, useRef } from 'react';
2
-
3
- /**
4
- * In React Strict Mode, ensure that the effect is executed only once when each dependency changes
5
- * @param effect The effect function to execute
6
- * @param deps The dependency array
7
- */
8
- export const useStrictEffect = (
9
- effect: () => void | (() => void),
10
- deps?: React.DependencyList
11
- ) => {
12
- const mountedRef = useRef(false);
13
- const depsRef = useRef(deps);
14
-
15
- useEffect(() => {
16
- // Check if the dependencies have changed
17
- const depsChanged =
18
- !deps ||
19
- !depsRef.current ||
20
- deps.some((dep, i) => dep !== depsRef.current![i]);
21
-
22
- // Update the dependency reference
23
- depsRef.current = deps;
24
-
25
- // If it's the first mount or the dependencies have changed, execute the effect
26
- if (!mountedRef.current || depsChanged) {
27
- mountedRef.current = true;
28
- return effect();
29
- }
30
- }, deps);
31
- };