@qlover/create-app 0.7.14 → 0.8.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 (361) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/configs/_common/.gitignore.template +6 -0
  3. package/dist/configs/_common/.prettierignore +17 -5
  4. package/dist/configs/_common/.vscode/settings.json +6 -1
  5. package/dist/index.cjs +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/templates/next-app/.env.template +1 -1
  8. package/dist/templates/next-app/README.en.md +130 -0
  9. package/dist/templates/next-app/README.md +114 -20
  10. package/dist/templates/next-app/config/Identifier/api.ts +5 -5
  11. package/dist/templates/next-app/config/Identifier/common/admint.table.ts +69 -0
  12. package/dist/templates/next-app/config/Identifier/common/common.ts +76 -0
  13. package/dist/templates/next-app/config/Identifier/common/index.ts +3 -0
  14. package/dist/templates/next-app/config/Identifier/{validator.ts → common/validators.ts} +5 -5
  15. package/dist/templates/next-app/config/Identifier/index.ts +2 -12
  16. package/dist/templates/next-app/config/Identifier/pages/index.ts +6 -0
  17. package/dist/templates/next-app/config/Identifier/pages/page.admin.home.ts +27 -0
  18. package/dist/templates/next-app/config/Identifier/pages/page.admin.locales.ts +266 -0
  19. package/dist/templates/next-app/config/Identifier/pages/page.admin.user.ts +293 -0
  20. package/dist/templates/{react-app/config/Identifier → next-app/config/Identifier/pages}/page.home.ts +15 -22
  21. package/dist/templates/next-app/config/Identifier/{page.login.ts → pages/page.login.ts} +28 -34
  22. package/dist/templates/next-app/config/Identifier/{page.register.ts → pages/page.register.ts} +30 -29
  23. package/dist/templates/next-app/config/adminNavs.ts +19 -0
  24. package/dist/templates/next-app/config/common.ts +22 -13
  25. package/dist/templates/next-app/config/i18n/HomeI18n.ts +5 -5
  26. package/dist/templates/next-app/config/i18n/admin18n.ts +61 -19
  27. package/dist/templates/next-app/config/i18n/i18nConfig.ts +2 -0
  28. package/dist/templates/next-app/config/i18n/i18nKeyScheam.ts +36 -0
  29. package/dist/templates/next-app/config/i18n/loginI18n.ts +22 -22
  30. package/dist/templates/next-app/config/i18n/register18n.ts +23 -24
  31. package/dist/templates/next-app/docs/en/api.md +387 -0
  32. package/dist/templates/next-app/docs/en/component.md +544 -0
  33. package/dist/templates/next-app/docs/en/database.md +496 -0
  34. package/dist/templates/next-app/docs/en/development-guide.md +727 -0
  35. package/dist/templates/next-app/docs/en/env.md +563 -0
  36. package/dist/templates/next-app/docs/en/i18n.md +287 -0
  37. package/dist/templates/next-app/docs/en/index.md +165 -0
  38. package/dist/templates/next-app/docs/en/page.md +457 -0
  39. package/dist/templates/next-app/docs/en/project-structure.md +176 -0
  40. package/dist/templates/next-app/docs/en/router.md +427 -0
  41. package/dist/templates/next-app/docs/en/theme.md +532 -0
  42. package/dist/templates/next-app/docs/en/validator.md +478 -0
  43. package/dist/templates/next-app/docs/zh/api.md +387 -0
  44. package/dist/templates/next-app/docs/zh/component.md +544 -0
  45. package/dist/templates/next-app/docs/zh/database.md +496 -0
  46. package/dist/templates/next-app/docs/zh/development-guide.md +727 -0
  47. package/dist/templates/next-app/docs/zh/env.md +563 -0
  48. package/dist/templates/next-app/docs/zh/i18n.md +287 -0
  49. package/dist/templates/next-app/docs/zh/index.md +165 -0
  50. package/dist/templates/next-app/docs/zh/page.md +457 -0
  51. package/dist/templates/next-app/docs/zh/project-structure.md +176 -0
  52. package/dist/templates/next-app/docs/zh/router.md +427 -0
  53. package/dist/templates/next-app/docs/zh/theme.md +532 -0
  54. package/dist/templates/next-app/docs/zh/validator.md +476 -0
  55. package/dist/templates/next-app/make/generateLocales.ts +19 -12
  56. package/dist/templates/next-app/migrations/schema/LocalesSchema.ts +15 -0
  57. package/dist/templates/next-app/migrations/sql/1694244000000.sql +11 -0
  58. package/dist/templates/next-app/package.json +7 -3
  59. package/dist/templates/next-app/public/locales/en.json +172 -207
  60. package/dist/templates/next-app/public/locales/zh.json +172 -207
  61. package/dist/templates/next-app/src/app/[locale]/admin/locales/page.tsx +153 -0
  62. package/dist/templates/next-app/src/app/[locale]/admin/users/page.tsx +48 -50
  63. package/dist/templates/next-app/src/app/[locale]/login/LoginForm.tsx +2 -2
  64. package/dist/templates/next-app/src/app/api/admin/locales/create/route.ts +34 -0
  65. package/dist/templates/next-app/src/app/api/admin/locales/import/route.ts +40 -0
  66. package/dist/templates/next-app/src/app/api/admin/locales/route.ts +42 -0
  67. package/dist/templates/next-app/src/app/api/admin/locales/update/route.ts +32 -0
  68. package/dist/templates/next-app/src/app/api/locales/json/route.ts +44 -0
  69. package/dist/templates/next-app/src/base/cases/AdminPageManager.ts +1 -13
  70. package/dist/templates/next-app/src/base/cases/Datetime.ts +18 -0
  71. package/dist/templates/next-app/src/base/cases/DialogErrorPlugin.ts +12 -6
  72. package/dist/templates/next-app/src/base/cases/ResourceState.ts +17 -0
  73. package/dist/templates/next-app/src/base/cases/TranslateI18nInterface.ts +25 -0
  74. package/dist/templates/next-app/src/base/cases/ZodColumnBuilder.ts +200 -0
  75. package/dist/templates/next-app/src/base/port/ZodBuilderInterface.ts +8 -0
  76. package/dist/templates/next-app/src/base/services/AdminLocalesService.ts +20 -0
  77. package/dist/templates/next-app/src/base/services/AdminPageEvent.ts +26 -0
  78. package/dist/templates/next-app/src/base/services/AdminPageScheduler.ts +42 -0
  79. package/dist/templates/next-app/src/base/services/ResourceService.ts +122 -0
  80. package/dist/templates/next-app/src/base/services/adminApi/AdminLocalesApi.ts +104 -0
  81. package/dist/templates/next-app/src/base/services/adminApi/AdminUserApi.ts +38 -5
  82. package/dist/templates/next-app/src/base/services/appApi/AppApiPlugin.ts +1 -1
  83. package/dist/templates/next-app/src/i18n/request.ts +30 -1
  84. package/dist/templates/next-app/src/server/PageParams.ts +2 -10
  85. package/dist/templates/next-app/src/server/port/DBBridgeInterface.ts +5 -0
  86. package/dist/templates/next-app/src/server/port/DBTableInterface.ts +2 -0
  87. package/dist/templates/next-app/src/server/port/LocalesRepositoryInterface.ts +43 -0
  88. package/dist/templates/next-app/src/server/repositorys/LocalesRepository.ts +197 -0
  89. package/dist/templates/next-app/src/server/services/ApiLocaleService.ts +122 -0
  90. package/dist/templates/next-app/src/server/sqlBridges/SupabaseBridge.ts +60 -11
  91. package/dist/templates/next-app/src/server/validators/ExtendedExecutorError.ts +6 -0
  92. package/dist/templates/next-app/src/server/validators/LocalesValidator.ts +131 -0
  93. package/dist/templates/next-app/src/server/validators/LoginValidator.ts +2 -5
  94. package/dist/templates/next-app/src/server/validators/PaginationValidator.ts +32 -16
  95. package/dist/templates/next-app/src/styles/css/antd-themes/pagination/_default.css +2 -1
  96. package/dist/templates/next-app/src/styles/css/antd-themes/pagination/dark.css +28 -29
  97. package/dist/templates/next-app/src/styles/css/antd-themes/pagination/pink.css +2 -1
  98. package/dist/templates/next-app/src/uikit/components/AdminLayout.tsx +17 -3
  99. package/dist/templates/next-app/src/uikit/components/BaseHeader.tsx +5 -4
  100. package/dist/templates/next-app/src/uikit/components/BaseLayout.tsx +5 -4
  101. package/dist/templates/next-app/src/uikit/components/BootstrapsProvider.tsx +3 -2
  102. package/dist/templates/next-app/src/uikit/components/ComboProvider.tsx +1 -1
  103. package/dist/templates/next-app/src/uikit/components/EditableCell.tsx +118 -0
  104. package/dist/templates/next-app/src/uikit/components/LogoutButton.tsx +5 -6
  105. package/dist/templates/next-app/src/uikit/components/ThemeSwitcher.tsx +1 -1
  106. package/dist/templates/next-app/src/uikit/components/With.tsx +2 -2
  107. package/dist/templates/next-app/src/uikit/components/localesImportButton/LocalesImportButton.tsx +62 -0
  108. package/dist/templates/next-app/src/uikit/components/localesImportButton/LocalesImportEvent.ts +28 -0
  109. package/dist/templates/next-app/src/uikit/components/localesImportButton/import.module.css +6 -0
  110. package/dist/templates/next-app/src/uikit/hook/useI18nInterface.ts +8 -14
  111. package/dist/templates/next-app/src/uikit/hook/useWarnTranslations.ts +25 -0
  112. package/dist/templates/react-app/.prettierignore +17 -0
  113. package/dist/templates/react-app/README.en.md +71 -54
  114. package/dist/templates/react-app/README.md +35 -18
  115. package/dist/templates/react-app/__tests__/__mocks__/BootstrapTest.ts +14 -0
  116. package/dist/templates/react-app/__tests__/__mocks__/MockAppConfit.ts +1 -1
  117. package/dist/templates/react-app/__tests__/__mocks__/MockDialogHandler.ts +2 -2
  118. package/dist/templates/react-app/__tests__/__mocks__/MockLogger.ts +1 -1
  119. package/dist/templates/react-app/__tests__/__mocks__/components/TestApp.tsx +45 -0
  120. package/dist/templates/react-app/__tests__/__mocks__/components/TestBootstrapsProvider.tsx +34 -0
  121. package/dist/templates/react-app/__tests__/__mocks__/components/TestRouter.tsx +46 -0
  122. package/dist/templates/react-app/__tests__/__mocks__/components/index.ts +12 -0
  123. package/dist/templates/react-app/__tests__/__mocks__/createMockGlobals.ts +1 -2
  124. package/dist/templates/react-app/__tests__/__mocks__/testIOC/TestIOC.ts +51 -0
  125. package/dist/templates/react-app/__tests__/__mocks__/testIOC/TestIOCRegister.ts +69 -0
  126. package/dist/templates/react-app/__tests__/setup/index.ts +1 -51
  127. package/dist/templates/react-app/__tests__/setup/setupGlobal.ts +51 -0
  128. package/dist/templates/react-app/__tests__/src/App.structure.test.tsx +115 -0
  129. package/dist/templates/react-app/__tests__/src/base/cases/AppConfig.test.ts +2 -2
  130. package/dist/templates/react-app/__tests__/src/base/cases/AppError.test.ts +1 -1
  131. package/dist/templates/react-app/__tests__/src/base/cases/DialogHandler.test.ts +3 -5
  132. package/dist/templates/react-app/__tests__/src/base/cases/I18nKeyErrorPlugin.test.ts +13 -2
  133. package/dist/templates/react-app/__tests__/src/base/cases/InversifyContainer.test.ts +1 -1
  134. package/dist/templates/react-app/__tests__/src/base/cases/PublicAssetsPath.test.ts +1 -1
  135. package/dist/templates/react-app/__tests__/src/base/cases/RequestLogger.test.ts +5 -5
  136. package/dist/templates/react-app/__tests__/src/base/cases/RequestStatusCatcher.test.ts +1 -2
  137. package/dist/templates/react-app/__tests__/src/base/cases/RouterLoader.test.ts +25 -15
  138. package/dist/templates/react-app/__tests__/src/base/services/I18nService.test.ts +29 -15
  139. package/dist/templates/react-app/__tests__/src/core/IOC.test.ts +19 -9
  140. package/dist/templates/react-app/__tests__/src/core/bootstraps/BootstrapClient.test.ts +153 -0
  141. package/dist/templates/react-app/__tests__/src/core/bootstraps/BootstrapsApp.test.ts +9 -7
  142. package/dist/templates/react-app/__tests__/src/main.integration.test.tsx +4 -5
  143. package/dist/templates/react-app/__tests__/src/main.test.tsx +4 -4
  144. package/dist/templates/react-app/__tests__/src/uikit/components/BaseHeader.test.tsx +68 -59
  145. package/dist/templates/react-app/config/IOCIdentifier.ts +8 -8
  146. package/dist/templates/react-app/config/Identifier/{common.error.ts → common/common.error.ts} +5 -5
  147. package/dist/templates/react-app/config/Identifier/{common.ts → common/common.ts} +9 -9
  148. package/dist/templates/react-app/config/Identifier/common/index.ts +2 -0
  149. package/dist/templates/react-app/config/Identifier/index.ts +1 -9
  150. package/dist/templates/react-app/config/Identifier/pages/index.ts +8 -0
  151. package/dist/templates/react-app/config/Identifier/{page.about.ts → pages/page.about.ts} +34 -26
  152. package/dist/templates/react-app/config/Identifier/{page.executor.ts → pages/page.executor.ts} +47 -39
  153. package/dist/templates/{next-app/config/Identifier → react-app/config/Identifier/pages}/page.home.ts +24 -23
  154. package/dist/templates/react-app/config/Identifier/pages/page.identifiter.ts +102 -0
  155. package/dist/templates/react-app/config/Identifier/{page.jsonStorage.ts → pages/page.jsonStorage.ts} +18 -11
  156. package/dist/templates/react-app/config/Identifier/{page.login.ts → pages/page.login.ts} +37 -27
  157. package/dist/templates/react-app/config/Identifier/{page.register.ts → pages/page.register.ts} +37 -25
  158. package/dist/templates/react-app/config/Identifier/{page.request.ts → pages/page.request.ts} +34 -44
  159. package/dist/templates/react-app/config/app.router.ts +66 -69
  160. package/dist/templates/react-app/config/i18n/PageI18nInterface.ts +51 -0
  161. package/dist/templates/react-app/config/i18n/aboutI18n.ts +42 -0
  162. package/dist/templates/react-app/config/i18n/executorI18n.ts +51 -0
  163. package/dist/templates/react-app/config/i18n/homeI18n.ts +24 -0
  164. package/dist/templates/react-app/config/i18n/i18nConfig.ts +30 -0
  165. package/dist/templates/react-app/config/i18n/identifiter18n.ts +30 -0
  166. package/dist/templates/react-app/config/i18n/jsonStorage18n.ts +27 -0
  167. package/dist/templates/react-app/config/i18n/login18n.ts +42 -0
  168. package/dist/templates/react-app/config/i18n/notFoundI18n.ts +34 -0
  169. package/dist/templates/react-app/config/i18n/register18n.ts +40 -0
  170. package/dist/templates/react-app/config/i18n/request18n.ts +41 -0
  171. package/dist/templates/react-app/config/theme.ts +14 -4
  172. package/dist/templates/react-app/docs/en/bootstrap.md +1670 -341
  173. package/dist/templates/react-app/docs/en/development-guide.md +1021 -345
  174. package/dist/templates/react-app/docs/en/env.md +1132 -278
  175. package/dist/templates/react-app/docs/en/i18n.md +858 -147
  176. package/dist/templates/react-app/docs/en/index.md +733 -104
  177. package/dist/templates/react-app/docs/en/ioc.md +1228 -287
  178. package/dist/templates/react-app/docs/en/playwright/e2e-tests.md +321 -0
  179. package/dist/templates/react-app/docs/en/playwright/index.md +19 -0
  180. package/dist/templates/react-app/docs/en/playwright/installation-summary.md +332 -0
  181. package/dist/templates/react-app/docs/en/playwright/overview.md +222 -0
  182. package/dist/templates/react-app/docs/en/playwright/quickstart.md +325 -0
  183. package/dist/templates/react-app/docs/en/playwright/reorganization-notes.md +340 -0
  184. package/dist/templates/react-app/docs/en/playwright/setup-complete.md +290 -0
  185. package/dist/templates/react-app/docs/en/playwright/testing-guide.md +565 -0
  186. package/dist/templates/react-app/docs/en/store.md +1194 -184
  187. package/dist/templates/react-app/docs/en/why-no-globals.md +797 -0
  188. package/dist/templates/react-app/docs/zh/bootstrap.md +1670 -341
  189. package/dist/templates/react-app/docs/zh/development-guide.md +1021 -345
  190. package/dist/templates/react-app/docs/zh/env.md +1132 -275
  191. package/dist/templates/react-app/docs/zh/i18n.md +858 -147
  192. package/dist/templates/react-app/docs/zh/index.md +717 -104
  193. package/dist/templates/react-app/docs/zh/ioc.md +1229 -287
  194. package/dist/templates/react-app/docs/zh/playwright/e2e-tests.md +321 -0
  195. package/dist/templates/react-app/docs/zh/playwright/index.md +19 -0
  196. package/dist/templates/react-app/docs/zh/playwright/installation-summary.md +332 -0
  197. package/dist/templates/react-app/docs/zh/playwright/overview.md +222 -0
  198. package/dist/templates/react-app/docs/zh/playwright/quickstart.md +325 -0
  199. package/dist/templates/react-app/docs/zh/playwright/reorganization-notes.md +340 -0
  200. package/dist/templates/react-app/docs/zh/playwright/setup-complete.md +290 -0
  201. package/dist/templates/react-app/docs/zh/playwright/testing-guide.md +565 -0
  202. package/dist/templates/react-app/docs/zh/store.md +1192 -184
  203. package/dist/templates/react-app/docs/zh/why-no-globals.md +797 -0
  204. package/dist/templates/react-app/e2e/App.spec.ts +319 -0
  205. package/dist/templates/react-app/e2e/fixtures/base.fixture.ts +40 -0
  206. package/dist/templates/react-app/e2e/main.spec.ts +20 -0
  207. package/dist/templates/react-app/e2e/utils/test-helpers.ts +19 -0
  208. package/dist/templates/react-app/eslint.config.mjs +247 -0
  209. package/dist/templates/react-app/makes/eslint-utils.mjs +195 -0
  210. package/dist/templates/react-app/makes/generateTs2LocalesOptions.ts +26 -0
  211. package/dist/templates/react-app/package.json +31 -3
  212. package/dist/templates/react-app/playwright.config.ts +79 -0
  213. package/dist/templates/react-app/public/locales/en/common.json +190 -179
  214. package/dist/templates/react-app/public/locales/zh/common.json +190 -179
  215. package/dist/templates/react-app/src/App.tsx +15 -42
  216. package/dist/templates/react-app/src/base/apis/AiApi.ts +5 -5
  217. package/dist/templates/react-app/src/base/apis/feApi/FeApi.ts +1 -1
  218. package/dist/templates/react-app/src/base/apis/feApi/FeApiAdapter.ts +1 -1
  219. package/dist/templates/react-app/src/base/apis/feApi/FeApiBootstarp.ts +8 -8
  220. package/dist/templates/react-app/src/base/apis/feApi/FeApiType.ts +1 -1
  221. package/dist/templates/react-app/src/base/apis/userApi/UserApi.ts +6 -6
  222. package/dist/templates/react-app/src/base/apis/userApi/UserApiAdapter.ts +1 -1
  223. package/dist/templates/react-app/src/base/apis/userApi/UserApiBootstarp.ts +12 -14
  224. package/dist/templates/react-app/src/base/apis/userApi/UserApiType.ts +1 -1
  225. package/dist/templates/react-app/src/base/cases/DialogHandler.ts +5 -2
  226. package/dist/templates/react-app/src/base/cases/I18nKeyErrorPlugin.ts +3 -3
  227. package/dist/templates/react-app/src/base/cases/InversifyContainer.ts +3 -3
  228. package/dist/templates/react-app/src/base/cases/RequestLanguages.ts +2 -2
  229. package/dist/templates/react-app/src/base/cases/RequestLogger.ts +4 -4
  230. package/dist/templates/react-app/src/base/cases/RequestStatusCatcher.ts +1 -1
  231. package/dist/templates/react-app/src/base/cases/ResourceState.ts +23 -0
  232. package/dist/templates/react-app/src/base/cases/RouterLoader.ts +4 -4
  233. package/dist/templates/react-app/src/base/cases/TranslateI18nInterface.ts +26 -0
  234. package/dist/templates/react-app/src/base/port/ExecutorPageBridgeInterface.ts +2 -3
  235. package/dist/templates/react-app/src/base/port/I18nServiceInterface.ts +1 -1
  236. package/dist/templates/react-app/src/base/port/IOCInterface.ts +36 -0
  237. package/dist/templates/react-app/src/base/port/JSONStoragePageBridgeInterface.ts +2 -1
  238. package/dist/templates/react-app/src/base/port/ProcesserExecutorInterface.ts +1 -1
  239. package/dist/templates/react-app/src/base/port/RequestPageBridgeInterface.ts +2 -2
  240. package/dist/templates/react-app/src/base/port/RouteServiceInterface.ts +9 -5
  241. package/dist/templates/react-app/src/base/port/UserServiceInterface.ts +1 -1
  242. package/dist/templates/react-app/src/base/services/I18nService.ts +29 -29
  243. package/dist/templates/react-app/src/base/services/IdentifierService.ts +143 -0
  244. package/dist/templates/react-app/src/base/services/ProcesserExecutor.ts +3 -3
  245. package/dist/templates/react-app/src/base/services/RouteService.ts +27 -8
  246. package/dist/templates/react-app/src/base/services/UserService.ts +8 -8
  247. package/dist/templates/react-app/src/base/types/Page.ts +14 -2
  248. package/dist/templates/react-app/src/base/types/global.d.ts +1 -1
  249. package/dist/templates/react-app/src/core/IOC.ts +5 -46
  250. package/dist/templates/react-app/src/core/bootstraps/{BootstrapApp.ts → BootstrapClient.ts} +44 -17
  251. package/dist/templates/react-app/src/core/bootstraps/BootstrapsRegistry.ts +14 -7
  252. package/dist/templates/react-app/src/core/bootstraps/IocIdentifierTest.ts +1 -1
  253. package/dist/templates/react-app/src/core/bootstraps/PrintBootstrap.ts +1 -1
  254. package/dist/templates/react-app/src/core/clientIoc/ClientIOC.ts +40 -0
  255. package/dist/templates/react-app/src/core/{IocRegisterImpl.ts → clientIoc/ClientIOCRegister.ts} +35 -24
  256. package/dist/templates/react-app/src/core/globals.ts +9 -9
  257. package/dist/templates/react-app/src/main.tsx +4 -4
  258. package/dist/templates/react-app/src/pages/404.tsx +6 -3
  259. package/dist/templates/react-app/src/pages/500.tsx +5 -2
  260. package/dist/templates/react-app/src/pages/NoRouteFound.tsx +5 -0
  261. package/dist/templates/react-app/src/pages/auth/Layout.tsx +9 -6
  262. package/dist/templates/react-app/src/pages/auth/LoginPage.tsx +46 -56
  263. package/dist/templates/react-app/src/pages/auth/RegisterPage.tsx +46 -58
  264. package/dist/templates/react-app/src/pages/base/AboutPage.tsx +35 -40
  265. package/dist/templates/react-app/src/pages/base/ExecutorPage.tsx +51 -51
  266. package/dist/templates/react-app/src/pages/base/HomePage.tsx +14 -15
  267. package/dist/templates/react-app/src/pages/base/IdentifierPage.tsx +70 -11
  268. package/dist/templates/react-app/src/pages/base/JSONStoragePage.tsx +24 -25
  269. package/dist/templates/react-app/src/pages/base/Layout.tsx +2 -2
  270. package/dist/templates/react-app/src/pages/base/RedirectPathname.tsx +3 -2
  271. package/dist/templates/react-app/src/pages/base/RequestPage.tsx +41 -59
  272. package/dist/templates/react-app/src/styles/css/antd-themes/{_default.css → _common/_default.css} +85 -0
  273. package/dist/templates/react-app/src/styles/css/antd-themes/{dark.css → _common/dark.css} +99 -0
  274. package/dist/templates/react-app/src/styles/css/antd-themes/_common/index.css +3 -0
  275. package/dist/templates/react-app/src/styles/css/antd-themes/{pink.css → _common/pink.css} +86 -0
  276. package/dist/templates/react-app/src/styles/css/antd-themes/index.css +4 -3
  277. package/dist/templates/react-app/src/styles/css/antd-themes/menu/_default.css +108 -0
  278. package/dist/templates/react-app/src/styles/css/antd-themes/menu/dark.css +67 -0
  279. package/dist/templates/react-app/src/styles/css/antd-themes/menu/index.css +3 -0
  280. package/dist/templates/react-app/src/styles/css/antd-themes/menu/pink.css +67 -0
  281. package/dist/templates/react-app/src/styles/css/antd-themes/pagination/_default.css +34 -0
  282. package/dist/templates/react-app/src/styles/css/antd-themes/pagination/dark.css +31 -0
  283. package/dist/templates/react-app/src/styles/css/antd-themes/pagination/index.css +3 -0
  284. package/dist/templates/react-app/src/styles/css/antd-themes/pagination/pink.css +36 -0
  285. package/dist/templates/react-app/src/styles/css/antd-themes/table/_default.css +44 -0
  286. package/dist/templates/react-app/src/styles/css/antd-themes/table/dark.css +43 -0
  287. package/dist/templates/react-app/src/styles/css/antd-themes/table/index.css +3 -0
  288. package/dist/templates/react-app/src/styles/css/antd-themes/table/pink.css +43 -0
  289. package/dist/templates/react-app/src/styles/css/page.css +4 -3
  290. package/dist/templates/react-app/src/styles/css/themes/_default.css +1 -0
  291. package/dist/templates/react-app/src/styles/css/themes/dark.css +1 -0
  292. package/dist/templates/react-app/src/styles/css/themes/pink.css +1 -0
  293. package/dist/templates/react-app/src/styles/css/zIndex.css +1 -1
  294. package/dist/templates/react-app/src/uikit/bridges/ExecutorPageBridge.ts +3 -3
  295. package/dist/templates/react-app/src/uikit/bridges/JSONStoragePageBridge.ts +2 -2
  296. package/dist/templates/react-app/src/uikit/bridges/NavigateBridge.ts +1 -1
  297. package/dist/templates/react-app/src/uikit/bridges/RequestPageBridge.ts +3 -3
  298. package/dist/templates/react-app/src/uikit/components/AppRouterProvider.tsx +35 -0
  299. package/dist/templates/react-app/src/uikit/components/BaseHeader.tsx +15 -11
  300. package/dist/templates/react-app/src/uikit/components/BaseRouteProvider.tsx +14 -11
  301. package/dist/templates/react-app/src/uikit/components/BaseRouteSeo.tsx +18 -0
  302. package/dist/templates/react-app/src/uikit/components/BootstrapsProvider.tsx +13 -0
  303. package/dist/templates/react-app/src/uikit/components/ClientSeo.tsx +62 -0
  304. package/dist/templates/react-app/src/uikit/components/ComboProvider.tsx +38 -0
  305. package/dist/templates/react-app/src/uikit/components/LanguageSwitcher.tsx +48 -27
  306. package/dist/templates/react-app/src/uikit/components/Loading.tsx +4 -2
  307. package/dist/templates/react-app/src/uikit/components/LocaleLink.tsx +4 -5
  308. package/dist/templates/react-app/src/uikit/components/LogoutButton.tsx +34 -11
  309. package/dist/templates/react-app/src/uikit/components/ProcessExecutorProvider.tsx +9 -5
  310. package/dist/templates/react-app/src/uikit/components/RouterRenderComponent.tsx +6 -3
  311. package/dist/templates/react-app/src/uikit/components/ThemeSwitcher.tsx +97 -40
  312. package/dist/templates/react-app/src/uikit/components/UserAuthProvider.tsx +5 -5
  313. package/dist/templates/react-app/src/uikit/components/With.tsx +17 -0
  314. package/dist/templates/react-app/src/uikit/contexts/BaseRouteContext.ts +17 -11
  315. package/dist/templates/react-app/src/uikit/contexts/IOCContext.ts +13 -0
  316. package/dist/templates/react-app/src/uikit/hooks/useAppTranslation.ts +26 -0
  317. package/dist/templates/react-app/src/uikit/hooks/useI18nGuard.ts +8 -11
  318. package/dist/templates/react-app/src/uikit/hooks/useI18nInterface.ts +25 -0
  319. package/dist/templates/react-app/src/uikit/hooks/useIOC.ts +35 -0
  320. package/dist/templates/react-app/src/uikit/hooks/useNavigateBridge.ts +3 -3
  321. package/dist/templates/react-app/src/uikit/hooks/useStrictEffect.ts +0 -1
  322. package/dist/templates/react-app/tsconfig.e2e.json +21 -0
  323. package/dist/templates/react-app/tsconfig.json +8 -1
  324. package/dist/templates/react-app/tsconfig.node.json +1 -1
  325. package/dist/templates/react-app/tsconfig.test.json +3 -1
  326. package/dist/templates/react-app/vite.config.ts +50 -34
  327. package/package.json +2 -1
  328. package/dist/configs/react-app/eslint.config.js +0 -94
  329. package/dist/templates/next-app/config/Identifier/common.error.ts +0 -41
  330. package/dist/templates/next-app/config/Identifier/common.ts +0 -69
  331. package/dist/templates/next-app/config/Identifier/page.about.ts +0 -181
  332. package/dist/templates/next-app/config/Identifier/page.admin.ts +0 -48
  333. package/dist/templates/next-app/config/Identifier/page.executor.ts +0 -272
  334. package/dist/templates/next-app/config/Identifier/page.identifiter.ts +0 -39
  335. package/dist/templates/next-app/config/Identifier/page.jsonStorage.ts +0 -72
  336. package/dist/templates/next-app/config/Identifier/page.request.ts +0 -182
  337. package/dist/templates/next-app/docs/env.md +0 -94
  338. package/dist/templates/next-app/src/base/cases/ChatAction.ts +0 -21
  339. package/dist/templates/next-app/src/base/cases/FocusBarAction.ts +0 -36
  340. package/dist/templates/next-app/src/base/cases/RequestState.ts +0 -20
  341. package/dist/templates/next-app/src/base/port/AdminPageInterface.ts +0 -85
  342. package/dist/templates/next-app/src/base/port/AsyncStateInterface.ts +0 -7
  343. package/dist/templates/next-app/src/base/services/AdminUserService.ts +0 -45
  344. package/dist/templates/next-app/src/uikit/components/ChatRoot.tsx +0 -17
  345. package/dist/templates/next-app/src/uikit/components/chat/ChatActionInterface.ts +0 -30
  346. package/dist/templates/next-app/src/uikit/components/chat/ChatFocusBar.tsx +0 -65
  347. package/dist/templates/next-app/src/uikit/components/chat/ChatMessages.tsx +0 -59
  348. package/dist/templates/next-app/src/uikit/components/chat/ChatWrap.tsx +0 -28
  349. package/dist/templates/next-app/src/uikit/components/chat/FocusBarActionInterface.ts +0 -19
  350. package/dist/templates/next-app/src/uikit/hook/useMountedClient.ts +0 -17
  351. package/dist/templates/next-app/src/uikit/hook/useStore.ts +0 -15
  352. package/dist/templates/react-app/__tests__/__mocks__/I18nService.ts +0 -13
  353. package/dist/templates/react-app/__tests__/src/App.test.tsx +0 -139
  354. package/dist/templates/react-app/config/Identifier/page.identifiter.ts +0 -39
  355. package/dist/templates/react-app/config/i18n.ts +0 -15
  356. package/dist/templates/react-app/docs/en/project-structure.md +0 -434
  357. package/dist/templates/react-app/docs/zh/project-structure.md +0 -434
  358. package/dist/templates/react-app/src/base/cases/RequestState.ts +0 -20
  359. package/dist/templates/react-app/src/base/port/AsyncStateInterface.ts +0 -7
  360. package/dist/templates/react-app/src/uikit/hooks/useDocumentTitle.ts +0 -15
  361. package/dist/templates/react-app/src/uikit/hooks/useStore.ts +0 -15
@@ -0,0 +1,153 @@
1
+ /**
2
+ * BootstrapClient test-suite
3
+ *
4
+ * Coverage:
5
+ * 1. main method – Bootstrap client main flow tests
6
+ * 2. parameter validation – Input parameter validation tests
7
+ * 3. error handling – Error handling tests
8
+ * 4. integration – Bootstrap flow integration tests
9
+ */
10
+
11
+ import { testIOC } from '@__tests__/__mocks__/testIOC/TestIOC';
12
+ import { I, type IOCIdentifierMap } from '@config/IOCIdentifier';
13
+ import type { BootstrapClientArgs } from '@/core/bootstraps/BootstrapClient';
14
+ import { BootstrapClient } from '@/core/bootstraps/BootstrapClient';
15
+ import type { BootstrapsRegistryInterface } from '@/core/bootstraps/BootstrapsRegistry';
16
+ import * as globals from '@/core/globals';
17
+ import type {
18
+ BootstrapExecutorPlugin,
19
+ IOCContainerInterface,
20
+ IOCFunctionInterface
21
+ } from '@qlover/corekit-bridge';
22
+ import type { ExecutorPlugin } from '@qlover/fe-corekit';
23
+
24
+ describe('BootstrapClient', () => {
25
+ describe('bootstrap start flow', () => {
26
+ const mockRoot = {
27
+ location: { href: 'http://localhost:3000/en' }
28
+ };
29
+
30
+ const testBootstrapPlugin: BootstrapExecutorPlugin = {
31
+ pluginName: 'test-bootstrap-1',
32
+ onExec: vi.fn().mockResolvedValue(undefined)
33
+ };
34
+
35
+ it('should bootstrap real strapup flow', async () => {
36
+ // 将 mock 函数提取出来,以便验证是否被调用
37
+ const mockRegister = vi.fn().mockReturnValue([testBootstrapPlugin]);
38
+
39
+ class TestBootstrapsRegistry implements BootstrapsRegistryInterface {
40
+ register = mockRegister;
41
+ }
42
+
43
+ const args: BootstrapClientArgs = {
44
+ root: mockRoot,
45
+ bootHref: mockRoot.location.href,
46
+ ioc: testIOC,
47
+ RegistryClass: TestBootstrapsRegistry
48
+ };
49
+
50
+ const result = await BootstrapClient.main(args);
51
+
52
+ expect(result).toEqual(args);
53
+ expect(globals.logger.info).toHaveBeenCalledWith('bootstrap start...');
54
+ expect(testBootstrapPlugin.onExec).toHaveBeenCalled();
55
+ // 验证 register 方法是否被调用
56
+ expect(mockRegister).toHaveBeenCalled();
57
+ });
58
+
59
+ it('should handle bootstrap I18nService', async () => {
60
+ // 将 mock 函数提取出来,以便验证是否被调用
61
+ const mockRegister = vi
62
+ .fn()
63
+ .mockImplementationOnce(
64
+ (
65
+ ioc: IOCFunctionInterface<IOCIdentifierMap, IOCContainerInterface>
66
+ ) => {
67
+ // TestIocRegister 中已经注册了,无法bind
68
+ return [ioc.get(I.I18nServiceInterface)];
69
+ }
70
+ );
71
+
72
+ class TestBootstrapsRegistry implements BootstrapsRegistryInterface {
73
+ register = mockRegister;
74
+ }
75
+
76
+ const args: BootstrapClientArgs = {
77
+ root: mockRoot,
78
+ bootHref: mockRoot.location.href,
79
+ ioc: testIOC,
80
+ RegistryClass: TestBootstrapsRegistry
81
+ };
82
+
83
+ await BootstrapClient.main(args);
84
+
85
+ const ioc = testIOC.getIoc();
86
+ expect(mockRegister).toBeCalled();
87
+ expect(ioc).toBeDefined();
88
+
89
+ const i18nService = ioc!.get(I.I18nServiceInterface);
90
+ expect(i18nService).toBeDefined();
91
+ // @ts-ignore
92
+ expect(i18nService.pathname).toBe(args.bootHref);
93
+
94
+ // mock i18n set language to en
95
+ i18nService.emit({ ...i18nService.state, language: 'en' });
96
+
97
+ expect(i18nService.state.language).toBe('en');
98
+ });
99
+
100
+ it('should handle bootstrap UserApiBootstarp', async () => {
101
+ const mockUserService: ExecutorPlugin = {
102
+ pluginName: 'TestUserService',
103
+ onBefore: vi.fn().mockResolvedValue(undefined)
104
+ };
105
+ // 将 mock 函数提取出来,以便验证是否被调用
106
+ const mockRegister = vi
107
+ .fn()
108
+ .mockImplementationOnce(
109
+ (
110
+ ioc: IOCFunctionInterface<IOCIdentifierMap, IOCContainerInterface>
111
+ ) => {
112
+ return [ioc.get(I.UserServiceInterface)];
113
+ }
114
+ );
115
+
116
+ class TestBootstrapsRegistry implements BootstrapsRegistryInterface {
117
+ register = mockRegister;
118
+ }
119
+
120
+ const args: BootstrapClientArgs = {
121
+ root: mockRoot,
122
+ bootHref: mockRoot.location.href,
123
+ ioc: testIOC,
124
+ iocRegister: {
125
+ register: vi
126
+ .fn()
127
+ .mockImplementationOnce(
128
+ (
129
+ ioc: IOCFunctionInterface<
130
+ IOCIdentifierMap,
131
+ IOCContainerInterface
132
+ >
133
+ ) => {
134
+ ioc.bind(I.UserServiceInterface, mockUserService as any);
135
+ }
136
+ )
137
+ },
138
+ RegistryClass: TestBootstrapsRegistry
139
+ };
140
+
141
+ await BootstrapClient.main(args);
142
+ const ioc = testIOC.getIoc();
143
+ expect(ioc).toBeDefined();
144
+
145
+ const userService = ioc!.get(I.UserServiceInterface);
146
+
147
+ expect(userService).toBeDefined();
148
+ expect(userService).toEqual(mockUserService);
149
+ expect(userService.pluginName).toBe('TestUserService');
150
+ expect(userService.onBefore).toBeCalled();
151
+ });
152
+ });
153
+ });
@@ -1,10 +1,10 @@
1
- import { InversifyContainer } from '@/base/cases/InversifyContainer';
2
- import { BootstrapApp } from '@/core/bootstraps/BootstrapApp';
3
- import type { BootstrapAppArgs } from '@/core/bootstraps/BootstrapApp';
1
+ import { browserGlobalsName } from '@config/common';
4
2
  import { createIOCFunction } from '@qlover/corekit-bridge';
3
+ import { InversifyContainer } from '@/base/cases/InversifyContainer';
4
+ import { BootstrapClient } from '@/core/bootstraps/BootstrapClient';
5
+ import type { BootstrapClientArgs } from '@/core/bootstraps/BootstrapClient';
5
6
  import type { IOCIdentifierMap } from '@config/IOCIdentifier';
6
7
  import { name, version } from '../../../../package.json';
7
- import { browserGlobalsName } from '@config/common';
8
8
 
9
9
  // Mock IocRegisterImpl to properly handle registration
10
10
  vi.mock('@/core/registers/IocRegisterImpl', () => ({
@@ -25,7 +25,7 @@ vi.mock('@/core/bootstraps/BootstrapsRegistry', () => ({
25
25
  }));
26
26
 
27
27
  describe('BootstrapApp', () => {
28
- let mockArgs: BootstrapAppArgs;
28
+ let mockArgs: BootstrapClientArgs;
29
29
  let mockIOC: ReturnType<typeof createIOCFunction<IOCIdentifierMap>>;
30
30
 
31
31
  beforeEach(() => {
@@ -40,13 +40,15 @@ describe('BootstrapApp', () => {
40
40
  mockArgs = {
41
41
  root: {},
42
42
  bootHref: 'http://localhost:3000',
43
- IOC: mockIOC
43
+ ioc: {
44
+ create: vi.fn().mockReturnValue(mockIOC)
45
+ }
44
46
  };
45
47
  });
46
48
 
47
49
  describe('main', () => {
48
50
  it('should initialize bootstrap successfully', async () => {
49
- const result = await BootstrapApp.main(mockArgs);
51
+ const result = await BootstrapClient.main(mockArgs);
50
52
 
51
53
  expect(result.bootHref).toBe('http://localhost:3000');
52
54
  // default inject env,globals var, ioc
@@ -1,4 +1,3 @@
1
- import { describe, it, expect, beforeAll, afterAll, beforeEach } from 'vitest';
2
1
  import { readFileSync, existsSync } from 'fs';
3
2
  import { join } from 'path';
4
3
 
@@ -41,7 +40,7 @@ describe('main.tsx Integration Tests', () => {
41
40
 
42
41
  // Check if it contains necessary imports
43
42
  expect(content).toContain('import');
44
- expect(content).toContain('BootstrapApp');
43
+ expect(content).toContain('BootstrapClient');
45
44
  expect(content).toContain('createRoot');
46
45
  });
47
46
 
@@ -51,11 +50,11 @@ describe('main.tsx Integration Tests', () => {
51
50
  expect(existsSync(appPath)).toBe(true);
52
51
  });
53
52
 
54
- it('should have BootstrapApp.ts file', () => {
55
- // Test if BootstrapApp.ts file exists
53
+ it('should have BootstrapClient.ts file', () => {
54
+ // Test if BootstrapClient.ts file exists
56
55
  const bootstrapPath = join(
57
56
  process.cwd(),
58
- 'src/core/bootstraps/BootstrapApp.ts'
57
+ 'src/core/bootstraps/BootstrapClient.ts'
59
58
  );
60
59
  expect(existsSync(bootstrapPath)).toBe(true);
61
60
  });
@@ -1,8 +1,8 @@
1
- import { BootstrapApp } from '@/core/bootstraps/BootstrapApp';
1
+ import { BootstrapClient } from '@/core/bootstraps/BootstrapClient';
2
2
 
3
3
  // Mock BootstrapApp
4
- vi.mock('@/core/bootstraps/BootstrapApp', () => ({
5
- BootstrapApp: {
4
+ vi.mock('@/core/bootstraps/BootstrapClient', () => ({
5
+ BootstrapClient: {
6
6
  main: vi.fn()
7
7
  }
8
8
  }));
@@ -33,7 +33,7 @@ describe('main.tsx', () => {
33
33
  describe('BootstrapApp initialization', () => {
34
34
  it('should call BootstrapApp.main()', async () => {
35
35
  await import('@/main');
36
- expect(BootstrapApp.main).toHaveBeenCalledTimes(1);
36
+ expect(BootstrapClient.main).toHaveBeenCalledTimes(1);
37
37
  });
38
38
  });
39
39
 
@@ -1,86 +1,95 @@
1
+ import { BootstrapTest } from '@__mocks__/BootstrapTest';
2
+ import { TestApp } from '@__mocks__/components';
3
+ import { I } from '@config/IOCIdentifier';
1
4
  import { render, screen } from '@testing-library/react';
2
- import { vi, expect } from 'vitest';
3
- import BaseHeader from '@/uikit/components/BaseHeader';
4
- import { PublicAssetsPath } from '@/base/cases/PublicAssetsPath';
5
+ import type { IOCRegister } from '@/base/port/IOCInterface';
6
+ import { UserService } from '@/base/services/UserService';
7
+ import { BaseHeader } from '@/uikit/components/BaseHeader';
5
8
 
6
- // Mock dependencies
7
- const mockPublicAssetsPath = new PublicAssetsPath('');
8
-
9
- vi.mock('@/core/IOC', () => ({
10
- IOC: vi.fn((key) => {
11
- if (key === 'AppConfig') {
12
- return { appName: 'Test App' };
13
- }
14
- if (key === PublicAssetsPath) {
15
- return mockPublicAssetsPath;
16
- }
17
- return {};
18
- })
19
- }));
20
-
21
- // Mock child components
22
- vi.mock('@/uikit/components/ThemeSwitcher', () => ({
23
- default: () => <div data-testid="theme-switcher">Theme Switcher</div>
24
- }));
25
-
26
- interface LocaleLinkProps {
27
- children: React.ReactNode;
28
- href: string;
29
- className?: string;
30
- }
31
-
32
- vi.mock('@/uikit/components/LocaleLink', () => ({
33
- default: ({ children, href, className }: LocaleLinkProps) => (
34
- <a href={href} className={className} data-testid="locale-link">
35
- {children}
36
- </a>
37
- )
38
- }));
39
-
40
- vi.mock('@/uikit/components/LanguageSwitcher', () => ({
41
- default: () => <div data-testid="language-switcher">Language Switcher</div>
42
- }));
43
-
44
- vi.mock('@/uikit/components/LogoutButton', () => ({
45
- default: () => <div data-testid="logout-button">Logout</div>
46
- }));
9
+ const BaseHeaderRegister: IOCRegister = {
10
+ register(ioc): void {
11
+ ioc.bind(I.UserServiceInterface, ioc.get(UserService));
12
+ }
13
+ };
47
14
 
48
15
  describe('BaseHeader', () => {
16
+ beforeAll(async () => {
17
+ await BootstrapTest.main({
18
+ root: globalThis,
19
+ bootHref: 'http://localhost:3000/en/test',
20
+ iocRegister: BaseHeaderRegister
21
+ });
22
+ });
23
+
49
24
  it('renders header with correct structure', () => {
50
- render(<BaseHeader />);
51
- expect(screen.getByTestId('base-header')).toBeDefined();
25
+ render(
26
+ <TestApp>
27
+ <BaseHeader />
28
+ </TestApp>
29
+ );
30
+
31
+ const header = screen.getByTestId('BaseHeader');
32
+ expect(header).toBeDefined();
52
33
  });
53
34
 
54
35
  it('renders logo and app name correctly', () => {
55
- render(<BaseHeader />);
56
- const logo = screen.getByTestId('base-header-logo');
57
- const appName = screen.getByTestId('base-header-app-name');
36
+ render(
37
+ <TestApp>
38
+ <BaseHeader />
39
+ </TestApp>
40
+ );
41
+
42
+ const logo = screen.getByTestId('BaseHeader-logo');
43
+ const appName = screen.getByTestId('BaseHeader-app-name');
58
44
 
59
45
  expect(logo).toBeDefined();
60
- expect(logo.getAttribute('src')).toBe('/logo.svg');
61
46
  expect(logo.getAttribute('alt')).toBe('logo');
62
47
  expect(appName).toBeDefined();
63
- expect(appName.textContent).toBe('Test App');
48
+ expect(appName.textContent).toBeTruthy();
64
49
  });
65
50
 
66
51
  it('renders theme and language switchers', () => {
67
- render(<BaseHeader />);
68
- expect(screen.getByTestId('theme-switcher')).toBeDefined();
69
- expect(screen.getByTestId('language-switcher')).toBeDefined();
52
+ render(
53
+ <TestApp>
54
+ <BaseHeader />
55
+ </TestApp>
56
+ );
57
+
58
+ // Note: These components render as Ant Design Select components
59
+ // We can verify they exist by checking for their parent containers
60
+ const header = screen.getByTestId('BaseHeader');
61
+ expect(header).toBeDefined();
62
+ // The actual Select components might not have data-testid in production code
70
63
  });
71
64
 
72
65
  it('renders logout button when showLogoutButton is true', () => {
73
- render(<BaseHeader showLogoutButton />);
74
- expect(screen.getByTestId('logout-button')).toBeDefined();
66
+ render(
67
+ <TestApp>
68
+ <BaseHeader showLogoutButton />
69
+ </TestApp>
70
+ );
71
+
72
+ const logoutButton = screen.getByTestId('LogoutButton');
73
+ expect(logoutButton).toBeDefined();
75
74
  });
76
75
 
77
76
  it('does not render logout button when showLogoutButton is false', () => {
78
- render(<BaseHeader showLogoutButton={false} />);
79
- expect(screen.queryByTestId('logout-button')).toBeNull();
77
+ render(
78
+ <TestApp>
79
+ <BaseHeader showLogoutButton={false} />
80
+ </TestApp>
81
+ );
82
+
83
+ expect(screen.queryByTestId('LogoutButton')).toBeNull();
80
84
  });
81
85
 
82
86
  it('renders home link correctly', () => {
83
- render(<BaseHeader />);
87
+ render(
88
+ <TestApp>
89
+ <BaseHeader />
90
+ </TestApp>
91
+ );
92
+
84
93
  const link = screen.getByTestId('locale-link');
85
94
  expect(link).toBeDefined();
86
95
  expect(link.getAttribute('href')).toBe('/');
@@ -1,17 +1,17 @@
1
- import type * as CorekitBridge from '@qlover/corekit-bridge';
2
- import type * as FeCorekit from '@qlover/fe-corekit';
3
- import type * as Logger from '@qlover/logger';
4
- import type { DialogHandler } from '@/base/cases/DialogHandler';
5
1
  import type { AppConfig } from '@/base/cases/AppConfig';
2
+ import type { DialogHandler } from '@/base/cases/DialogHandler';
3
+ import type { I18nKeyErrorPlugin } from '@/base/cases/I18nKeyErrorPlugin';
6
4
  import type { RequestStatusCatcher } from '@/base/cases/RequestStatusCatcher';
5
+ import type { ExecutorPageBridgeInterface } from '@/base/port/ExecutorPageBridgeInterface';
6
+ import type { JSONStoragePageBridgeInterface } from '@/base/port/JSONStoragePageBridgeInterface';
7
+ import type { RequestPageBridgeInterface } from '@/base/port/RequestPageBridgeInterface';
7
8
  import type { I18nService } from '@/base/services/I18nService';
8
9
  import type { ProcesserExecutor } from '@/base/services/ProcesserExecutor';
9
10
  import type { RouteService } from '@/base/services/RouteService';
10
11
  import type { UserService } from '@/base/services/UserService';
11
- import type { I18nKeyErrorPlugin } from '@/base/cases/I18nKeyErrorPlugin';
12
- import type { ExecutorPageBridgeInterface } from '@/base/port/ExecutorPageBridgeInterface';
13
- import type { JSONStoragePageBridgeInterface } from '@/base/port/JSONStoragePageBridgeInterface';
14
- import type { RequestPageBridgeInterface } from '@/base/port/RequestPageBridgeInterface';
12
+ import type * as CorekitBridge from '@qlover/corekit-bridge';
13
+ import type * as FeCorekit from '@qlover/fe-corekit';
14
+ import type * as Logger from '@qlover/logger';
15
15
 
16
16
  /**
17
17
  * IOC identifier
@@ -3,32 +3,32 @@
3
3
  * @localZh 本地未找到 user token
4
4
  * @localEn Local no user token
5
5
  */
6
- export const LOCAL_NO_USER_TOKEN = 'err.local.no.user.token';
6
+ export const LOCAL_NO_USER_TOKEN = 'common:no.user.token';
7
7
 
8
8
  /**
9
9
  * @description 全局未找到 window
10
10
  * @localZh 全局未找到 window
11
11
  * @localEn Global no window
12
12
  */
13
- export const GLOBAL_NO_WINDOW = 'err.global.no.window';
13
+ export const GLOBAL_NO_WINDOW = 'common:global.no.window';
14
14
 
15
15
  /**
16
16
  * @description 必须在 PageProvider 中使用
17
17
  * @localZh 必须在 PageProvider 中使用
18
18
  * @localEn Must be used in PageProvider
19
19
  */
20
- export const WITHIN_PAGE_PROVIDER = 'err.within.page.provider';
20
+ export const WITHIN_PAGE_PROVIDER = 'common:within.page.provider';
21
21
 
22
22
  /**
23
23
  * @description 响应内容没有 token 值
24
24
  * @localZh 响应内容没有 token 值
25
25
  * @localEn Response not token value
26
26
  */
27
- export const RES_NO_TOKEN = 'err.response.no.token';
27
+ export const RES_NO_TOKEN = 'common:response.no.token';
28
28
 
29
29
  /**
30
30
  * @description 未找到组件
31
31
  * @localZh 未找到组件
32
32
  * @localEn Not found component
33
33
  */
34
- export const NOT_FOUND_COMPONENT = 'err.not.found.component';
34
+ export const NOT_FOUND_COMPONENT = 'common:not.found.component';
@@ -3,60 +3,60 @@
3
3
  * @localZh 默认主题
4
4
  * @localEn Default Theme
5
5
  */
6
- export const HEADER_THEME_DEFAULT = 'header.theme.default';
6
+ export const HEADER_THEME_DEFAULT = 'common:theme.default';
7
7
 
8
8
  /**
9
9
  * @description Theme switcher dark theme label
10
10
  * @localZh 暗色主题
11
11
  * @localEn Dark Theme
12
12
  */
13
- export const HEADER_THEME_DARK = 'header.theme.dark';
13
+ export const HEADER_THEME_DARK = 'common:theme.dark';
14
14
 
15
15
  /**
16
16
  * @description Theme switcher pink theme label
17
17
  * @localZh 粉色主题
18
18
  * @localEn Pink Theme
19
19
  */
20
- export const HEADER_THEME_PINK = 'header.theme.pink';
20
+ export const HEADER_THEME_PINK = 'common:theme.pink';
21
21
 
22
22
  /**
23
23
  * @description logout dialog title
24
24
  * @localZh 登出
25
25
  * @localEn Logout
26
26
  */
27
- export const AUTH_LOGOUT_DIALOG_TITLE = 'auth.logout.dialog.title';
27
+ export const AUTH_LOGOUT_DIALOG_TITLE = 'common:logout.dialog.title';
28
28
 
29
29
  /**
30
30
  * @description logout dialog content
31
31
  * @localZh 确定要登出吗?
32
32
  * @localEn Are you sure you want to logout?
33
33
  */
34
- export const AUTH_LOGOUT_DIALOG_CONTENT = 'auth.logout.dialog.content';
34
+ export const AUTH_LOGOUT_DIALOG_CONTENT = 'common:logout.dialog.content';
35
35
 
36
36
  /**
37
37
  * @description 404 page title
38
38
  * @localZh 404 页面未找到
39
39
  * @localEn 404 Page Not Found
40
40
  */
41
- export const PAGE_404_TITLE = 'page.404.title';
41
+ export const PAGE_404_TITLE = 'common:404.title';
42
42
 
43
43
  /**
44
44
  * @description 404 page description
45
45
  * @localZh 404 页面描述
46
46
  * @localEn 404 Page Description
47
47
  */
48
- export const PAGE_404_DESCRIPTION = 'page.404.description';
48
+ export const PAGE_404_DESCRIPTION = 'common:404.description';
49
49
 
50
50
  /**
51
51
  * @description 500 page title
52
52
  * @localZh 500 页面错误
53
53
  * @localEn 500 Page Error
54
54
  */
55
- export const PAGE_500_TITLE = 'page.500.title';
55
+ export const PAGE_500_TITLE = 'common:500.title';
56
56
 
57
57
  /**
58
58
  * @description 500 page description
59
59
  * @localZh 500 页面描述
60
60
  * @localEn 500 Page Description
61
61
  */
62
- export const PAGE_500_DESCRIPTION = 'page.500.description';
62
+ export const PAGE_500_DESCRIPTION = 'common:500.description';
@@ -0,0 +1,2 @@
1
+ export * from './common.error';
2
+ export * from './common';
@@ -1,10 +1,2 @@
1
1
  export * from './common';
2
- export * from './common.error';
3
- export * from './page.about';
4
- export * from './page.executor';
5
- export * from './page.home';
6
- export * from './page.identifiter';
7
- export * from './page.jsonStorage';
8
- export * from './page.login';
9
- export * from './page.register';
10
- export * from './page.request';
2
+ export * from './pages';
@@ -0,0 +1,8 @@
1
+ export * from './page.about';
2
+ export * from './page.executor';
3
+ export * from './page.home';
4
+ export * from './page.identifiter';
5
+ export * from './page.jsonStorage';
6
+ export * from './page.login';
7
+ export * from './page.register';
8
+ export * from './page.request';