@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,802 +0,0 @@
1
- # Project Architecture Design
2
-
3
- > **📖 This document is the entry point of the project, providing an architecture overview, core concepts, and complete documentation navigation.**
4
-
5
- ## 📋 Table of Contents
6
-
7
- - [Quick Start](#-quick-start)
8
- - [Architecture Overview](#-architecture-overview)
9
- - [Layered Architecture](#-layered-architecture)
10
- - [Complete Workflow](#-complete-workflow)
11
- - [Core Concepts](#-core-concepts)
12
- - [Quick Example](#-quick-example)
13
- - [Detailed Documentation Navigation](#-detailed-documentation-navigation)
14
-
15
- ---
16
-
17
- ## 🚀 Quick Start
18
-
19
- ### New Developers
20
-
21
- If this is your first time with this project, we recommend the following order:
22
-
23
- 1. **Read this document** - Understand overall architecture and core philosophy (10-15 minutes)
24
- 2. **[IOC Container](./ioc.md)** - Understand UI and logic separation (10-15 minutes)
25
- 3. **[Store State Management](./store.md)** - Understand how application layer notifies UI layer (10-15 minutes)
26
- 4. **[Development Guide](./development-guide.md)** - Follow complete example to develop a page (20-30 minutes)
27
-
28
- ### Experienced Developers
29
-
30
- If you already have relevant experience, you can directly:
31
-
32
- 1. Quickly browse this document to understand architecture features
33
- 2. Check [Development Guide](./development-guide.md) to understand development workflow
34
- 3. Refer to specialized documentation as needed
35
-
36
- ### Environment Setup
37
-
38
- ```bash
39
- # Install dependencies
40
- pnpm install
41
-
42
- # Start development server
43
- pnpm dev
44
-
45
- # Start staging environment
46
- pnpm dev:staging
47
-
48
- # Build production version
49
- pnpm build
50
-
51
- # Run tests
52
- pnpm test
53
- ```
54
-
55
- ---
56
-
57
- ## 🎯 Architecture Overview
58
-
59
- This project adopts **Layered Architecture + Dependency Injection + Interface-Oriented Programming** design pattern.
60
-
61
- ### Architecture Panorama
62
-
63
- ```
64
- ┌─────────────────────────────────────────────────────┐
65
- │ Config Layer │
66
- │ • Unified management of all configurations │
67
- │ (routes, themes, i18n, IOC, etc.) │
68
- │ • Environment variable injection target │
69
- │ (AppConfig.ts) │
70
- │ 📄 See: env.md │
71
- └─────────────────────────────────────────────────────┘
72
-
73
- ┌─────────────────────────────────────────────────────┐
74
- │ Entry Layer │
75
- │ • main.tsx: Application startup │
76
- │ • Inject global dependencies (window, document) │
77
- │ • Initialize IOC container │
78
- │ • Execute Bootstrap startup process │
79
- │ 📄 See: bootstrap.md │
80
- └─────────────────────────────────────────────────────┘
81
-
82
- ┌─────────────────────────────────────────────────────┐
83
- │ Core Layer │
84
- │ • globals.ts: Encapsulate browser APIs │
85
- │ • clientIoc/: IOC container management │
86
- │ • bootstraps/: Bootstrap startup process │
87
- │ 📄 See: why-no-globals.md │
88
- └─────────────────────────────────────────────────────┘
89
-
90
- ┌─────────────────────────────────────────────────────┐
91
- │ Business Layer │
92
- │ • port/: Interface definitions │
93
- │ • services/: Service implementations │
94
- │ • cases/: Business use cases │
95
- │ • apis/: External API adapters │
96
- │ 📄 See: ioc.md │
97
- └─────────────────────────────────────────────────────┘
98
-
99
- ┌─────────────────────────────────────────────────────┐
100
- │ UI Layer │
101
- │ • pages/: Page components │
102
- │ • components/: UI components │
103
- │ • hooks/: React Hooks (useIOC, useStore, etc.) │
104
- │ • bridges/: Page bridges │
105
- │ 📄 See: store.md │
106
- └─────────────────────────────────────────────────────┘
107
- ```
108
-
109
- ### Core Principles
110
-
111
- 1. **Unidirectional Dependency** ↓ - Can only depend from top to bottom, not reverse
112
- 2. **Depend on Interfaces, Not Implementations** 🔌 - All dependencies defined through interfaces
113
- 3. **UI and Logic Separation** 🎨 - UI is UI, logic is logic
114
- 4. **Single Responsibility** 📦 - Each module does one thing
115
- 5. **Configuration-Driven** ⚙️ - Business logic driven by configuration
116
-
117
- ---
118
-
119
- ## 🏗️ Layered Architecture
120
-
121
- ### 1. Config Layer
122
-
123
- **Location:** `config/`, `src/base/cases/AppConfig.ts`
124
-
125
- **Responsibilities:**
126
-
127
- - Unified management of all configurations (routes, themes, i18n, IOC identifiers, etc.)
128
- - Serve as injection target for environment variables
129
-
130
- **File Structure:**
131
-
132
- ```
133
- config/
134
- ├── common.ts # Common configuration
135
- ├── theme.ts # Theme configuration
136
- ├── app.router.ts # Route configuration
137
- ├── IOCIdentifier.ts # IOC identifiers
138
- ├── i18n/ # Internationalization config
139
- └── Identifier/ # Business identifiers
140
- ```
141
-
142
- **👉 See:** [Environment Variable Management](./env.md)
143
-
144
- ### 2. Entry Layer
145
-
146
- **Location:** `src/main.tsx`, `src/core/bootstraps/`
147
-
148
- **Responsibilities:**
149
-
150
- - Application startup
151
- - Inject global dependencies (browser APIs)
152
- - Create IOC container
153
- - Execute Bootstrap startup process
154
-
155
- **Key Characteristics:**
156
-
157
- - 🔴 **Only place allowed to directly access global variables**
158
- - 🔴 **Bootstrap executes all initialization before app renders**
159
-
160
- **👉 See:** [Bootstrap Initializer](./bootstrap.md)
161
-
162
- ### 3. Core Layer
163
-
164
- **Location:** `src/core/`
165
-
166
- **Responsibilities:**
167
-
168
- - Encapsulate browser APIs (localStorage, cookie, etc.)
169
- - Manage global instances (logger, dialog, etc.)
170
- - IOC container initialization and service registration
171
- - Bootstrap flow control
172
-
173
- **File Structure:**
174
-
175
- ```
176
- core/
177
- ├── globals.ts # Global variable encapsulation
178
- ├── IOC.ts # IOC utilities
179
- ├── bootstraps/ # Startup process
180
- │ ├── BootstrapClient.ts
181
- │ └── BootstrapsRegistry.ts
182
- └── clientIoc/ # IOC container
183
- ├── ClientIOC.ts
184
- └── ClientIOCRegister.ts
185
- ```
186
-
187
- **👉 See:** [Why Disable Global Variables](./why-no-globals.md)
188
-
189
- ### 4. Business Layer
190
-
191
- **Location:** `src/base/`
192
-
193
- **Responsibilities:**
194
-
195
- - Define business interfaces (Port)
196
- - Implement business services (Services)
197
- - Handle business logic (Cases)
198
- - Adapt external APIs (APIs)
199
-
200
- **File Structure:**
201
-
202
- ```
203
- base/
204
- ├── port/ # Interface definitions
205
- │ ├── UserServiceInterface.ts
206
- │ └── I18nServiceInterface.ts
207
- ├── services/ # Service implementations
208
- │ ├── UserService.ts
209
- │ └── I18nService.ts
210
- ├── cases/ # Business use cases
211
- │ ├── AppConfig.ts
212
- │ └── AppError.ts
213
- └── apis/ # API adapters
214
- └── userApi/
215
- ├── UserApi.ts
216
- └── UserApiType.ts
217
- ```
218
-
219
- **Key Characteristics:**
220
-
221
- - 🔵 **Interface-Oriented** - All dependencies injected through interfaces
222
- - 🔵 **Single Responsibility** - Each service responsible for one domain
223
- - 🔵 **Testability** - Easy to mock and test
224
-
225
- **👉 See:** [IOC Container](./ioc.md)
226
-
227
- ### 5. UI Layer
228
-
229
- **Location:** `src/pages/`, `src/uikit/`
230
-
231
- **Responsibilities:**
232
-
233
- - Render pages and components
234
- - Handle user interactions
235
- - Get services through `useIOC`
236
- - Subscribe to state through `useStore`
237
-
238
- **File Structure:**
239
-
240
- ```
241
- ├── pages/ # Page components
242
- │ ├── base/
243
- │ └── auth/
244
- └── uikit/ # UI utilities
245
- ├── components/ # Common components
246
- ├── hooks/ # React Hooks
247
- │ ├── useIOC.ts # IOC Hook
248
- │ └── useStore.ts # Store Hook
249
- ├── contexts/ # React Context
250
- └── bridges/ # Page bridges
251
- ```
252
-
253
- **Key Characteristics:**
254
-
255
- - 🟢 **Don't depend on implementations directly** - Get services through IOC
256
- - 🟢 **UI and logic separated** - Only handle rendering and interaction
257
- - 🟢 **Reactive updates** - Automatic updates through Store
258
-
259
- **👉 See:** [Store State Management](./store.md)
260
-
261
- ---
262
-
263
- ## 🔄 Complete Workflow
264
-
265
- ### Data Flow Diagram
266
-
267
- ```
268
- ┌─────────────────────────────────────────────┐
269
- │ 1. User Interaction (UI Layer) │
270
- │ const userService = useIOC('UserService') │
271
- │ userService.login(username, password) │
272
- └──────────────────┬──────────────────────────┘
273
- ↓ (Call service through IOC)
274
- ┌─────────────────────────────────────────────┐
275
- │ 2. Service Layer Processing (Business) │
276
- │ async login(username, password) { │
277
- │ const response = await this.api.login() │
278
- │ this.storage.setItem('token', ...) │
279
- │ this.emit({ user: ... }) // Notify UI │
280
- │ } │
281
- └──────────────┬─────────────┬────────────────┘
282
- ↓ ↓ (Call API)
283
- (Use Storage) ┌─────────────────────┐
284
- ↓ │ 3. API Layer │
285
- ┌──────────────┐ │ POST /api/login │
286
- │ Core/Globals │ └─────────────────────┘
287
- │ localStorage │ ↓
288
- └──────────────┘ (HTTP request)
289
- ↓ ↓
290
- (Data persistence) (Backend server)
291
- ↓ ↓
292
- └────←── Return data ←┘
293
-
294
- (emit publishes new state)
295
-
296
- ┌─────────────────────────┐
297
- │ 4. Store notifies │
298
- │ subscribers │
299
- │ listeners.forEach(...) │
300
- └─────────────────────────┘
301
-
302
- ┌─────────────────────────┐
303
- │ 5. UI auto-updates │
304
- │ useStore receives │
305
- │ notification │
306
- │ Component re-renders │
307
- └─────────────────────────┘
308
- ```
309
-
310
- ### Application Startup Flow
311
-
312
- ```
313
- 1️⃣ main.tsx
314
-
315
- 2️⃣ BootstrapClient.main()
316
- ├── Create IOC container
317
- ├── Register all services
318
- ├── Execute Bootstrap plugins
319
- │ ├── InjectEnv (Inject env vars to AppConfig)
320
- │ ├── I18nService.onBefore() (Initialize i18n)
321
- │ ├── UserService.onBefore() (Check user login)
322
- │ └── ProcesserExecutor.startup() (Start processors)
323
- └── Bootstrap complete
324
-
325
- 3️⃣ React application renders
326
- ├── App.tsx
327
- ├── IOCContext.Provider (Provide IOC container)
328
- └── AppRouterProvider (Routing)
329
-
330
- 4️⃣ Page components render
331
- ├── useIOC() get services
332
- ├── useStore() subscribe to state
333
- └── UI renders
334
- ```
335
-
336
- ---
337
-
338
- ## 💡 Core Concepts
339
-
340
- ### 1. IOC Container (Dependency Injection) ⭐
341
-
342
- **Core Philosophy:** UI is UI, logic is logic, they must be separated
343
-
344
- ```typescript
345
- // ❌ Traditional approach: UI and logic mixed together
346
- function UserProfile() {
347
- const [user, setUser] = useState(null);
348
- useEffect(() => {
349
- fetch('/api/user').then(res => res.json()).then(setUser);
350
- }, []);
351
- return <div>{user?.name}</div>;
352
- }
353
-
354
- // ✅ IOC approach: UI and logic completely separated
355
- function UserProfile() {
356
- const userService = useIOC('UserServiceInterface'); // Get service
357
- const { user } = useStore(userService); // Subscribe to state
358
- return <div>{user?.name}</div>;
359
- }
360
- ```
361
-
362
- **Key Questions:**
363
-
364
- 1. **Why does an implementation class also need an interface?** → For testability
365
- 2. **Why separate even simple components?** → Simple now doesn't mean simple later
366
-
367
- **👉 See:** [IOC Container Detailed Documentation](./ioc.md)
368
-
369
- ### 2. Store State Management (Application Layer Notifies UI Layer) ⭐
370
-
371
- **Core Philosophy:** Service publishes state through Store, UI subscribes to state through useStore
372
-
373
- ```typescript
374
- // Service (Application Layer)
375
- @injectable()
376
- export class UserService extends StoreInterface<UserState> {
377
- async login(username: string, password: string) {
378
- this.emit({ loading: true }); // Publish: start loading
379
- const response = await this.api.login({ username, password });
380
- this.emit({ user: response.user, loading: false }); // Publish: complete
381
- }
382
- }
383
-
384
- // UI (UI Layer)
385
- function LoginPage() {
386
- const userService = useIOC('UserServiceInterface');
387
- const { loading } = useStore(userService); // Subscribe: auto-update
388
-
389
- return (
390
- <button onClick={() => userService.login('user', 'pass')} disabled={loading}>
391
- {loading ? 'Logging in...' : 'Login'}
392
- </button>
393
- );
394
- }
395
- ```
396
-
397
- **👉 See:** [Store State Management Detailed Documentation](./store.md)
398
-
399
- ### 3. Bootstrap Initializer (Application Initialization) ⭐
400
-
401
- **Core Philosophy:** Execute all initialization logic before app renders
402
-
403
- ```typescript
404
- // Bootstrap plugin
405
- export class I18nService implements BootstrapPlugin {
406
- onBefore() {
407
- // Initialize i18n before app starts
408
- i18n.init({
409
- /* ... */
410
- });
411
- }
412
- }
413
-
414
- // Bootstrap execution
415
- const bootstrap = new Bootstrap({
416
- root: window,
417
- ioc: clientIOC
418
- });
419
-
420
- await bootstrap.initialize(); // Execute all plugins' onBefore
421
- await bootstrap.start(); // Start application
422
- ```
423
-
424
- **👉 See:** [Bootstrap Initializer Detailed Documentation](./bootstrap.md)
425
-
426
- ### 4. Environment Variable Management (Multi-Environment Configuration) ⭐
427
-
428
- **Core Philosophy:** Use `vite --mode` to switch environments, inject to AppConfig through Bootstrap
429
-
430
- ```bash
431
- # Different environments
432
- npm run dev # Development environment (.env.localhost)
433
- npm run dev:staging # Staging environment (.env.staging)
434
- npm run build # Production environment (.env.production)
435
- ```
436
-
437
- ```typescript
438
- // AppConfig automatically injects environment variables
439
- export class AppConfig {
440
- readonly env: string;
441
- readonly apiBaseUrl = ''; // Auto-injected from VITE_API_BASE_URL
442
- readonly appName = ''; // Auto-injected from VITE_APP_NAME
443
- }
444
-
445
- // Usage
446
- const config = useIOC(IOCIdentifier.AppConfig);
447
- console.log(config.apiBaseUrl); // Automatically switches based on environment
448
- ```
449
-
450
- **👉 See:** [Environment Variable Management Detailed Documentation](./env.md)
451
-
452
- ### 5. Internationalization (i18n Key) ⭐
453
-
454
- **Core Philosophy:** All text uses i18n Keys, never hard-code
455
-
456
- ```typescript
457
- // ❌ Wrong: Hard-coded text
458
- <button>Login</button>
459
-
460
- // ✅ Correct: Use i18n Key
461
- import { BUTTON_LOGIN } from '@config/Identifier';
462
- <button>{t(BUTTON_LOGIN)}</button>
463
- ```
464
-
465
- **Core Advantage:** Developers don't need to remember `'common:button.login'` string, just need to know `BUTTON_LOGIN` variable, IDE will auto-complete
466
-
467
- **👉 See:** [Internationalization Detailed Documentation](./i18n.md)
468
-
469
- ---
470
-
471
- ## 📝 Quick Example
472
-
473
- ### Example: Create a Theme Switching Feature
474
-
475
- ```typescript
476
- // 1️⃣ Define interface (base/port/ThemeServiceInterface.ts)
477
- export interface ThemeServiceInterface {
478
- setTheme(theme: 'light' | 'dark'): void;
479
- getTheme(): 'light' | 'dark';
480
- }
481
-
482
- // 2️⃣ Implement service (base/services/ThemeService.ts)
483
- @injectable()
484
- export class ThemeService extends StoreInterface<ThemeState> {
485
- constructor(
486
- @inject(IOCIdentifier.LocalStorage) private storage: Storage
487
- ) {
488
- super(() => ({ theme: 'light' }));
489
- }
490
-
491
- setTheme(theme: 'light' | 'dark') {
492
- this.storage.setItem('theme', theme);
493
- this.emit({ theme }); // Notify UI to update
494
- }
495
-
496
- getTheme() {
497
- return this.state.theme;
498
- }
499
- }
500
-
501
- // 3️⃣ Register to IOC (core/clientIoc/ClientIOCRegister.ts)
502
- register(ioc: IOCContainer) {
503
- ioc.bind(IOCIdentifier.ThemeServiceInterface, ThemeService);
504
- }
505
-
506
- // 4️⃣ UI usage (components/ThemeSwitcher.tsx)
507
- function ThemeSwitcher() {
508
- const themeService = useIOC('ThemeServiceInterface');
509
- const { theme } = useStore(themeService);
510
-
511
- return (
512
- <button onClick={() => themeService.setTheme(theme === 'light' ? 'dark' : 'light')}>
513
- {theme === 'light' ? '🌙 Dark' : '☀️ Light'}
514
- </button>
515
- );
516
- }
517
- ```
518
-
519
- **For complete development workflow see:** [Development Guide](./development-guide.md)
520
-
521
- ---
522
-
523
- ## 📚 Detailed Documentation Navigation
524
-
525
- ### Core Documentation ⭐
526
-
527
- #### 1. [Development Guide](./development-guide.md)
528
-
529
- **Target Audience:** Developers preparing to develop new features
530
- **Reading Time:** 20-30 minutes
531
-
532
- **Content Overview:**
533
-
534
- - What's needed to develop a page (8-item checklist)
535
- - Complete 10-step development process
536
- - Practical example: User list page (complete code)
537
- - Common scenarios (add button, dialog, search, etc.)
538
- - Code standards and development tools
539
-
540
- **Core Value:** Step-by-step guide to develop a complete page
541
-
542
- #### 2. [IOC Container](./ioc.md)
543
-
544
- **Core Questions:** How to separate UI and logic? Why need interfaces?
545
-
546
- **Key Content:**
547
-
548
- - Why need IOC (UI and logic separation)
549
- - Two key questions:
550
- 1. Why does an implementation class also need an interface? (Testability)
551
- 2. Why separate even simple components? (Future extensibility)
552
- - How to test logic and UI independently
553
- - How to test in combination
554
- - Complete practical examples
555
-
556
- **Applicable Scenarios:**
557
-
558
- - Need to create new services
559
- - Need to understand dependency injection
560
- - Need to write testable code
561
-
562
- #### 3. [Store State Management](./store.md)
563
-
564
- **Core Question:** How does application layer (Service) notify UI layer to update?
565
-
566
- **Key Content:**
567
-
568
- - Why need Store (solve communication problem)
569
- - Service publishes state through `emit`
570
- - UI subscribes to state through `useStore`
571
- - Selectors and performance optimization
572
- - Independent testing and combination testing
573
-
574
- **Applicable Scenarios:**
575
-
576
- - Service needs to notify UI to update
577
- - Need to implement reactive UI
578
- - Need to optimize rendering performance
579
-
580
- #### 4. [Bootstrap Initializer](./bootstrap.md)
581
-
582
- **Core Question:** How does application initialize? Why need Bootstrap?
583
-
584
- **Key Content:**
585
-
586
- - What is Bootstrap (plugin system)
587
- - Why need Bootstrap (problem-driven)
588
- - Core advantages of Bootstrap (especially testing)
589
- - Complete project implementation and examples
590
- - Vitest testing guide
591
-
592
- **Applicable Scenarios:**
593
-
594
- - Need to execute initialization logic before app starts
595
- - Need to understand application startup flow
596
- - Need to add new startup plugins
597
-
598
- #### 5. [Environment Variable Management](./env.md)
599
-
600
- **Core Question:** How to manage multi-environment configuration?
601
-
602
- **Key Content:**
603
-
604
- - Use `vite --mode` to switch environments
605
- - `.env` file management and priority
606
- - AppConfig automatic injection mechanism
607
- - Bootstrap's InjectEnv plugin
608
- - Multi-environment configuration examples
609
-
610
- **Applicable Scenarios:**
611
-
612
- - Need to add new environment variables
613
- - Need to switch between dev/staging/production environments
614
- - Need to understand configuration injection mechanism
615
-
616
- #### 6. [Internationalization (i18n)](./i18n.md)
617
-
618
- **Core Question:** How to manage multi-language text?
619
-
620
- **Key Content:**
621
-
622
- - **Core Principle:** All text uses i18n Keys, never hard-code
623
- - **Core Advantage:** Reduce developer thinking (don't need to remember strings, just variable names)
624
- - Auto-generate translation files (ts2Locales)
625
- - I18nService Bootstrap plugin
626
- - Complete usage examples
627
-
628
- **Applicable Scenarios:**
629
-
630
- - Need to add new text
631
- - Need to support new languages
632
- - Need to understand i18n Key concept
633
-
634
- ### Supporting Documentation
635
-
636
- #### [Why Disable Global Variables](./why-no-globals.md)
637
-
638
- **Core Question:** Why can't we directly use `window`, `document`, etc.?
639
-
640
- **Key Content:**
641
-
642
- - Core philosophy: Global variables should be injected from entry point
643
- - Allowed locations: `main.tsx`, `core/globals.ts`
644
- - Why do this (testing, SSR, traceability)
645
- - Practical application scenarios (IOC container)
646
- - Test-friendliness comparison
647
-
648
- #### [Route Management](./router.md)
649
-
650
- **Core Content:**
651
-
652
- - Route configuration file (`config/app.router.ts`)
653
- - Route metadata (title, requiresAuth, etc.)
654
- - Dynamic route loading
655
- - RouteService usage
656
-
657
- #### [Theme System](./theme.md)
658
-
659
- **Core Content:**
660
-
661
- - Tailwind CSS configuration
662
- - CSS variable management
663
- - Theme switching implementation
664
- - ThemeService usage
665
-
666
- #### [Request Handling](./request.md)
667
-
668
- **Core Content:**
669
-
670
- - API adapter pattern
671
- - Request plugin system
672
- - Error handling
673
- - Mock data
674
-
675
- #### [Testing Guide](./test-guide.md)
676
-
677
- **Core Content:**
678
-
679
- - Vitest testing framework
680
- - Service testing (logic layer)
681
- - UI testing (component layer)
682
- - Integration testing (workflow)
683
- - Testing best practices
684
-
685
- #### [Playwright E2E Testing](./playwright/) 🎭
686
-
687
- **Core Content:**
688
-
689
- - Complete E2E testing documentation
690
- - Multi-browser testing (Chromium, Firefox, WebKit, Mobile)
691
- - Page Object Model architecture
692
- - Test writing guide and best practices
693
- - Debugging techniques and CI/CD integration
694
- - See [Playwright Documentation Hub](./playwright/)
695
- - Quick reference: [Playwright Overview](./playwright/overview.md)
696
-
697
- #### [TypeScript Guide](./typescript-guide.md)
698
-
699
- **Core Content:**
700
-
701
- - TypeScript type standards
702
- - Generic usage
703
- - Type inference
704
- - Common issues
705
-
706
- ---
707
-
708
- ## 🎯 Quick Lookup
709
-
710
- ### I want to...
711
-
712
- **Develop a new page** → [Development Guide](./development-guide.md)
713
-
714
- **Understand UI and logic separation** → [IOC Container](./ioc.md)
715
-
716
- **Let Service notify UI to update** → [Store State Management](./store.md)
717
-
718
- **Add environment variables** → [Environment Variable Management](./env.md)
719
-
720
- **Add multi-language text** → [Internationalization](./i18n.md)
721
-
722
- **Execute initialization before app starts** → [Bootstrap Initializer](./bootstrap.md)
723
-
724
- **Encapsulate browser APIs** → [Why Disable Global Variables](./why-no-globals.md)
725
-
726
- **Add routes** → [Route Management](./router.md)
727
-
728
- **Switch themes** → [Theme System](./theme.md)
729
-
730
- **Call APIs** → [Request Handling](./request.md)
731
-
732
- **Write unit tests** → [Testing Guide](./test-guide.md)
733
-
734
- **Write E2E tests** → [Playwright E2E Testing](./playwright/README.md)
735
-
736
- **Solve TypeScript issues** → [TypeScript Guide](./typescript-guide.md)
737
-
738
- ---
739
-
740
- ## 🎯 Core Philosophy Summary
741
-
742
- | Philosophy | Description | Benefits |
743
- | ----------------------------- | ----------------------------------------- | -------------------------------- |
744
- | **Layered Architecture** | Clear responsibility division | Easy to understand and maintain |
745
- | **Unidirectional Dependency** | Can only depend from top to bottom | Avoid circular dependencies |
746
- | **Interface-Oriented** | Depend on interfaces, not implementations | Easy to test and replace |
747
- | **Dependency Injection** | IOC container manages dependencies | Decoupling, testable |
748
- | **UI Separation** | UI is UI, logic is logic | Independent testing, reusable |
749
- | **State Management** | Service emits, UI uses useStore | Auto-update, maintain separation |
750
- | **Single Responsibility** | Each module does one thing | Easy to reuse and maintain |
751
- | **Configuration-Driven** | Business driven by configuration | Flexible, easy to extend |
752
-
753
- ---
754
-
755
- ## 🚦 Development Workflow
756
-
757
- ```
758
- 1. Define i18n Key (config/Identifier/)
759
-
760
- 2. Define interface (base/port/)
761
-
762
- 3. Implement service (base/services/)
763
-
764
- 4. Implement API (if needed) (base/apis/)
765
-
766
- 5. Configure routes (config/app.router.ts)
767
-
768
- 6. Implement page (pages/)
769
- ├── useIOC() get services
770
- └── useStore() subscribe to state
771
-
772
- 7. Register IOC (if new service) (core/clientIoc/)
773
-
774
- 8. Write tests (__tests__/)
775
- ├── Service tests (logic)
776
- ├── UI tests (rendering)
777
- └── Integration tests (workflow)
778
- ```
779
-
780
- ---
781
-
782
- ## 💡 Development Recommendations
783
-
784
- ### New Developers
785
-
786
- 1. Understand architecture first - Read this document
787
- 2. Learn IOC - Read [IOC Container Documentation](./ioc.md)
788
- 3. Learn Store - Read [Store Documentation](./store.md)
789
- 4. See example code - Refer to existing `UserService`, `I18nService`, etc.
790
- 5. Hands-on practice - Create a simple feature
791
-
792
- ### Experienced Developers
793
-
794
- - **Bootstrap mechanism** → [Bootstrap Documentation](./bootstrap.md)
795
- - **Environment variable management** → [Environment Variable Documentation](./env.md)
796
- - **Internationalization implementation** → [i18n Documentation](./i18n.md)
797
- - **Global variable standards** → [why-no-globals Documentation](./why-no-globals.md)
798
-
799
- ---
800
-
801
- **Feedback:**
802
- If you have any questions or suggestions about the architecture design, please discuss in the team channel or submit an Issue.