@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,262 +0,0 @@
1
- import { ExecutorError } from '@qlover/fe-corekit';
2
- import { AuthError } from '@supabase/supabase-js';
3
- import { injectable, inject } from 'inversify';
4
- import { createClient } from '@/lib/supabase/server';
5
- import type {
6
- BridgeEvent,
7
- DBBridgeInterface,
8
- DBBridgeResponse,
9
- BridgeOrderBy,
10
- Where
11
- } from '@/server/port/DBBridgeInterface';
12
- import { UserRole, UserSchema } from '@migrations/schema/UserSchema';
13
- import { I } from '@config/IOCIdentifier';
14
- import type { LoggerInterface } from '@qlover/logger';
15
- import type { PostgrestResponseFailure } from '@supabase/postgrest-js';
16
- import type {
17
- PostgrestSingleResponse,
18
- SupabaseClient,
19
- PostgrestResponse,
20
- User,
21
- AuthResponse,
22
- UserResponse
23
- } from '@supabase/supabase-js';
24
-
25
- const whereHandlerMaps = {
26
- '=': 'eq',
27
- '!=': 'neq',
28
- '>': 'gt',
29
- '<': 'lt',
30
- '>=': 'gte',
31
- '<=': 'lte'
32
- };
33
-
34
- export type SupabaseBridgeResponse<T> = DBBridgeResponse<T> &
35
- PostgrestResponse<T>;
36
-
37
- @injectable()
38
- export class SupabaseBridge implements DBBridgeInterface {
39
- constructor(@inject(I.Logger) protected logger: LoggerInterface) {}
40
-
41
- public async getSupabase(): Promise<SupabaseClient> {
42
- return await createClient();
43
- }
44
-
45
- public async execSql(sql: string): Promise<SupabaseBridgeResponse<unknown>> {
46
- const supabase = await this.getSupabase();
47
- const res = await supabase.rpc('exec_sql', { sql });
48
- return this.catch(res);
49
- }
50
-
51
- protected async catch(
52
- result: PostgrestSingleResponse<unknown>
53
- ): Promise<SupabaseBridgeResponse<unknown>> {
54
- if (result.error) {
55
- this.logger.error('', result);
56
-
57
- if (this.hasPausedProject(result)) {
58
- throw new Error(
59
- 'Project is paused, Please Restore project: https://supabase.com/dashboard'
60
- );
61
- }
62
-
63
- throw new Error(result.error.details + ' ' + result.error.message);
64
- }
65
-
66
- return result as SupabaseBridgeResponse<unknown>;
67
- }
68
-
69
- protected hasPausedProject(error: PostgrestResponseFailure): boolean {
70
- return (
71
- error.status === 0 && error.error.message === 'TypeError: fetch failed'
72
- );
73
- }
74
-
75
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
76
- protected handleWhere(handler: any, wheres: Where[]): void {
77
- for (const where of wheres) {
78
- const [key, operator, value] = where;
79
- const opr = whereHandlerMaps[operator];
80
- if (!opr) {
81
- throw new Error(`Unsupported where operation: ${value}`);
82
- }
83
-
84
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
85
- if (typeof (handler as any)[opr] !== 'function') {
86
- throw new Error(`Unsupported where operation: ${value}`);
87
- }
88
-
89
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
90
- (handler as any)[opr](key, value);
91
- }
92
- }
93
-
94
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
- protected handleOrderBy(handler: any, orderBy?: BridgeOrderBy): void {
96
- if (orderBy) {
97
- handler.order(orderBy[0], { ascending: orderBy[1] === 0 });
98
- }
99
- }
100
-
101
- public toUserSchema(user: User): UserSchema {
102
- return {
103
- id: user.id,
104
- email: user.email!,
105
- created_at: user.created_at,
106
- updated_at: user.updated_at,
107
- role: user.role === 'admin' ? UserRole.ADMIN : UserRole.USER,
108
- // 始终为空
109
- password: '',
110
- credential_token: ''
111
- };
112
- }
113
-
114
- public throwIfError(
115
- response: AuthResponse | UserResponse | { error: unknown }
116
- ): void {
117
- const { error } = response;
118
- if (error) {
119
- this.logger.info('SupabaseBridge throw error:', error);
120
-
121
- if (error instanceof AuthError) {
122
- throw new ExecutorError('SupabaseAuthError', error);
123
- }
124
-
125
- throw new Error(error as string);
126
- }
127
- }
128
-
129
- /**
130
- * @override
131
- */
132
- public async add(event: BridgeEvent): Promise<DBBridgeResponse<unknown>> {
133
- const { table, data } = event;
134
- if (!data) {
135
- throw new Error('Data is required for add operation');
136
- }
137
- const supabase = await this.getSupabase();
138
- const res = await supabase
139
- .from(table)
140
- .insert(Array.isArray(data) ? data : [data]);
141
- return this.catch(res);
142
- }
143
-
144
- /**
145
- * @override
146
- */
147
- public async upsert(event: BridgeEvent): Promise<DBBridgeResponse<unknown>> {
148
- const { table, data, fields = '*' } = event;
149
- if (!data) {
150
- throw new Error('Data is required for upsert operation');
151
- }
152
- const selectFields = Array.isArray(fields) ? fields.join(',') : fields;
153
- const supabase = await this.getSupabase();
154
-
155
- const res = await supabase
156
- .from(table)
157
- .upsert(Array.isArray(data) ? data : [data], {
158
- onConflict: 'value'
159
- })
160
- .select(selectFields); // Request to return the upserted data
161
- return this.catch(res);
162
- }
163
-
164
- /**
165
- * @override
166
- */
167
- public async update(event: BridgeEvent): Promise<DBBridgeResponse<unknown>> {
168
- const { table, data, where } = event;
169
- if (!data) {
170
- throw new Error('Data is required for update operation');
171
- }
172
- const supabase = await this.getSupabase();
173
-
174
- const handler = supabase.from(table).update(data);
175
-
176
- this.handleWhere(handler, where ?? []);
177
-
178
- return this.catch(await handler);
179
- }
180
-
181
- /**
182
- * @override
183
- */
184
- public async delete(event: BridgeEvent): Promise<DBBridgeResponse<unknown>> {
185
- const { table, where } = event;
186
- const supabase = await this.getSupabase();
187
-
188
- const handler = supabase.from(table).delete();
189
-
190
- this.handleWhere(handler, where ?? []);
191
-
192
- return this.catch(await handler);
193
- }
194
-
195
- /**
196
- * @override
197
- */
198
- public async get(
199
- event: BridgeEvent
200
- ): Promise<SupabaseBridgeResponse<unknown>> {
201
- const { table, fields = '*', where, orderBy } = event;
202
- const selectFields = Array.isArray(fields) ? fields.join(',') : fields;
203
- const supabase = await this.getSupabase();
204
-
205
- const handler = supabase.from(table).select(selectFields);
206
-
207
- this.handleWhere(handler, where ?? []);
208
-
209
- this.handleOrderBy(handler, orderBy);
210
-
211
- return this.catch(await handler);
212
- }
213
-
214
- /**
215
- * @override
216
- */
217
- public async pagination(
218
- event: BridgeEvent
219
- ): Promise<DBBridgeResponse<unknown[]>> {
220
- const {
221
- table,
222
- fields = '*',
223
- where,
224
- page = 1,
225
- pageSize = 10,
226
- orderBy
227
- } = event;
228
- const selectFields = Array.isArray(fields) ? fields.join(',') : fields;
229
-
230
- const supabase = await this.getSupabase();
231
-
232
- // 获取总数
233
- const countHandler = supabase
234
- .from(table)
235
- .select('*', { count: 'exact', head: true });
236
-
237
- this.handleWhere(countHandler, where ?? []);
238
- const countResult = await this.catch(await countHandler);
239
-
240
- // 获取分页数据
241
- const handler = supabase.from(table).select(selectFields);
242
-
243
- this.handleOrderBy(handler, orderBy);
244
-
245
- handler.range((page - 1) * pageSize, page * pageSize - 1);
246
-
247
- this.handleWhere(handler, where ?? []);
248
- const result = await this.catch(await handler);
249
-
250
- if (result.error) {
251
- return result as DBBridgeResponse<unknown[]>;
252
- }
253
-
254
- return {
255
- data: Array.isArray(result.data) ? result.data : [],
256
- error: null,
257
- count: countResult.count,
258
- status: result.status,
259
- statusText: result.statusText
260
- } as DBBridgeResponse<unknown[]>;
261
- }
262
- }
@@ -1,53 +0,0 @@
1
- import { inject, injectable } from 'inversify';
2
- import jwt from 'jsonwebtoken';
3
- import { AppConfig } from '@/base/cases/AppConfig';
4
- import type { UserSchema } from '@migrations/schema/UserSchema';
5
- import type { CrentialTokenInterface } from './port/CrentialTokenInterface';
6
-
7
- export type UserCredentialTokenValue = Pick<UserSchema, 'id' | 'email'>;
8
-
9
- @injectable()
10
- export class UserCredentialToken implements CrentialTokenInterface<UserCredentialTokenValue> {
11
- protected jwtSecret: string;
12
- protected jwtExpiresIn: string;
13
-
14
- constructor(@inject(AppConfig) protected config: AppConfig) {
15
- this.jwtSecret = config.jwtSecret;
16
- this.jwtExpiresIn = config.jwtExpiresIn;
17
- }
18
-
19
- /**
20
- * @override
21
- */
22
- public async generateToken(
23
- data: UserCredentialTokenValue,
24
- options: { expiresIn?: string } = {}
25
- ): Promise<string> {
26
- const { expiresIn = '30 days' } = options;
27
-
28
- return jwt.sign({ i: data.id, e: data.email }, this.jwtSecret, {
29
- expiresIn: expiresIn as jwt.SignOptions['expiresIn'],
30
- algorithm: 'HS256',
31
- noTimestamp: true
32
- });
33
- }
34
-
35
- /**
36
- * @override
37
- */
38
- public async parseToken(token: string): Promise<UserCredentialTokenValue> {
39
- try {
40
- const decoded = jwt.verify(token, this.jwtSecret) as {
41
- i: UserSchema['id'];
42
- e: string;
43
- };
44
-
45
- return {
46
- id: decoded.i,
47
- email: decoded.e
48
- };
49
- } catch {
50
- throw new Error('Invalid token');
51
- }
52
- }
53
- }
@@ -1,86 +0,0 @@
1
- import { inject, injectable } from 'inversify';
2
- import { AdminLocalesService } from '@/server/services/AdminLocalesService';
3
- import type { LocalesSchema } from '@migrations/schema/LocalesSchema';
4
- import {
5
- ApiLocaleService,
6
- type ImportLocalesData
7
- } from '../services/ApiLocaleService';
8
- import {
9
- LocalesImportValidator,
10
- LocalesValidator
11
- } from '../validators/LocalesValidator';
12
- import { PaginationValidator } from '../validators/PaginationValidator';
13
- import type { AdminLocalesControllerInterface } from '../port/AdminLocalesControllerInterface';
14
- import type { BridgeOrderBy } from '../port/DBBridgeInterface';
15
- import type { UpsertResult } from '../port/LocalesRepositoryInterface';
16
- import type { PaginationInterface } from '../port/PaginationInterface';
17
- import type { ValidatorInterface } from '../port/ValidatorInterface';
18
- import type { PaginationParams } from '../validators/PaginationValidator';
19
-
20
- @injectable()
21
- export class AdminLocalesController implements AdminLocalesControllerInterface {
22
- constructor(
23
- @inject(AdminLocalesService)
24
- protected adminLocalesService: AdminLocalesService,
25
- @inject(PaginationValidator)
26
- protected paginationValidator: ValidatorInterface<PaginationParams>,
27
- @inject(ApiLocaleService)
28
- protected apiLocaleService: ApiLocaleService,
29
- @inject(LocalesValidator)
30
- protected localesValidator: ValidatorInterface<Partial<LocalesSchema>>,
31
- @inject(LocalesImportValidator)
32
- protected localesImportValidator: ValidatorInterface<ImportLocalesData>
33
- ) {}
34
-
35
- /**
36
- * @override
37
- */
38
- public async getLocales(query: {
39
- page: number;
40
- pageSize: number;
41
- orders?: BridgeOrderBy;
42
- }): Promise<PaginationInterface<LocalesSchema>> {
43
- const paginationParams = await this.paginationValidator.getThrow(query);
44
-
45
- const result = await this.apiLocaleService.getLocales({
46
- page: paginationParams.page,
47
- pageSize: paginationParams.pageSize,
48
- orderBy: paginationParams?.orders
49
- });
50
-
51
- return result;
52
- }
53
-
54
- /**
55
- * @override
56
- */
57
- public async createLocale(
58
- body: Omit<LocalesSchema, 'id' | 'created_at' | 'updated_at'>
59
- ): Promise<{ success: boolean }> {
60
- const localesParams = await this.localesValidator.getThrow(body);
61
-
62
- await this.apiLocaleService.create(localesParams);
63
-
64
- return {
65
- success: true
66
- };
67
- }
68
- /**
69
- * @override
70
- */
71
- public async updateLocale(body: Partial<LocalesSchema>): Promise<void> {
72
- await this.apiLocaleService.update(body);
73
- }
74
- /**
75
- * @override
76
- */
77
- public async importLocales(formData: unknown): Promise<UpsertResult> {
78
- const localesParams = await this.localesImportValidator.getThrow({
79
- values: formData
80
- });
81
-
82
- const result = await this.apiLocaleService.importLocales(localesParams);
83
-
84
- return result;
85
- }
86
- }
@@ -1,42 +0,0 @@
1
- import { inject, injectable } from 'inversify';
2
-
3
- import type { UserSchema } from '@migrations/schema/UserSchema';
4
- import { UserRepository } from '../repositorys/UserRepository';
5
- import { ApiUserService } from '../services/ApiUserService';
6
- import { PaginationValidator } from '../validators/PaginationValidator';
7
- import type { AdminUserControllerInterface } from '../port/AdminUserControllerInterface';
8
- import type { BridgeOrderBy } from '../port/DBBridgeInterface';
9
- import type { PaginationInterface } from '../port/PaginationInterface';
10
- import type { UserRepositoryInterface } from '../port/UserRepositoryInterface';
11
- import type { ValidatorInterface } from '../port/ValidatorInterface';
12
- import type { PaginationParams } from '../validators/PaginationValidator';
13
-
14
- @injectable()
15
- export class AdminUserController implements AdminUserControllerInterface {
16
- constructor(
17
- @inject(UserRepository)
18
- protected userRepository: UserRepositoryInterface,
19
- @inject(PaginationValidator)
20
- protected paginationValidator: ValidatorInterface<PaginationParams>,
21
- @inject(ApiUserService)
22
- protected apiUserService: ApiUserService
23
- ) {}
24
-
25
- /**
26
- * @override
27
- */
28
- public async getUsers(query: {
29
- page: number;
30
- pageSize: number;
31
- orderBy?: BridgeOrderBy;
32
- }): Promise<PaginationInterface<UserSchema>> {
33
- const paginationParams = await this.paginationValidator.getThrow(query);
34
-
35
- const result = await this.apiUserService.getUsers({
36
- page: paginationParams.page,
37
- pageSize: paginationParams.pageSize
38
- });
39
-
40
- return result;
41
- }
42
- }
@@ -1,36 +0,0 @@
1
- import { inject, injectable } from 'inversify';
2
- import { i18nConfig } from '@config/i18n';
3
- import type { LocaleType } from '@config/i18n';
4
- import { ApiLocaleService } from '../services/ApiLocaleService';
5
- import type {
6
- LocalesControllerInterface,
7
- LocalesControllerJsonQuery
8
- } from '../port/LocalesControllerInterface';
9
-
10
- @injectable()
11
- export class LocalesController implements LocalesControllerInterface {
12
- constructor(
13
- @inject(ApiLocaleService)
14
- protected apiLocaleService: ApiLocaleService
15
- ) {}
16
-
17
- /**
18
- * @override
19
- */
20
- public async json(
21
- query: LocalesControllerJsonQuery
22
- ): Promise<Record<string, string>> {
23
- const locale = query.locale as LocaleType;
24
-
25
- if (!locale || !i18nConfig.supportedLngs.includes(locale)) {
26
- return {};
27
- }
28
-
29
- const result = await this.apiLocaleService.getLocalesJson(
30
- locale,
31
- query.orderBy
32
- );
33
-
34
- return result;
35
- }
36
- }
@@ -1,91 +0,0 @@
1
- import { ExecutorError } from '@qlover/fe-corekit';
2
- import { inject, injectable } from 'inversify';
3
- import { StringEncryptor } from '@/base/cases/StringEncryptor';
4
- import type { UserSchema } from '@migrations/schema/UserSchema';
5
- import { ServerAuth } from '../ServerAuth';
6
- import { UserService } from '../services/UserService';
7
- import {
8
- LoginValidator,
9
- type LoginValidatorData
10
- } from '../validators/LoginValidator';
11
- import {
12
- SignupVerifyParamType,
13
- SignupVerifyValidator
14
- } from '../validators/SignupVerifyValidator';
15
- import type { ServerAuthInterface } from '../port/ServerAuthInterface';
16
- import type { UserServiceInterface } from '../port/UserServiceInterface';
17
- import type { ValidatorInterface } from '../port/ValidatorInterface';
18
- import type { EncryptorInterface } from '@qlover/fe-corekit';
19
-
20
- @injectable()
21
- export class UserController implements UserServiceInterface {
22
- constructor(
23
- @inject(ServerAuth) protected serverAuth: ServerAuthInterface,
24
- @inject(StringEncryptor)
25
- protected stringEncryptor: EncryptorInterface<string, string>,
26
- @inject(LoginValidator)
27
- protected loginValidator: ValidatorInterface<LoginValidatorData>,
28
- @inject(SignupVerifyValidator)
29
- protected verifyValidator: ValidatorInterface<SignupVerifyParamType>,
30
- @inject(UserService) protected userService: UserServiceInterface
31
- ) {}
32
-
33
- /**
34
- * @override
35
- */
36
- public async login(requestBody: LoginValidatorData): Promise<UserSchema> {
37
- try {
38
- if (requestBody.password) {
39
- requestBody.password = this.stringEncryptor.decrypt(
40
- requestBody.password
41
- );
42
- }
43
- } catch {
44
- throw new ExecutorError(
45
- 'encrypt_password_failed',
46
- 'Encrypt password failed'
47
- );
48
- }
49
- const body = await this.loginValidator.getThrow(requestBody);
50
-
51
- const user = await this.userService.login(body);
52
-
53
- await this.serverAuth.setAuth(user.credential_token);
54
-
55
- return user;
56
- }
57
-
58
- /**
59
- * @override
60
- */
61
- public async register(requestBody: LoginValidatorData): Promise<UserSchema> {
62
- try {
63
- if (requestBody.password) {
64
- requestBody.password = this.stringEncryptor.decrypt(
65
- requestBody.password
66
- );
67
- }
68
- } catch {
69
- throw new ExecutorError(
70
- 'encrypt_password_failed',
71
- 'Encrypt password failed'
72
- );
73
- }
74
-
75
- const body = await this.loginValidator.getThrow(requestBody);
76
-
77
- const user = await this.userService.register({
78
- email: body.email,
79
- password: body.password
80
- });
81
-
82
- return user;
83
- }
84
-
85
- /**
86
- * @override
87
- */
88
- public async logout(): Promise<void> {
89
- return await this.userService.logout();
90
- }
91
- }
@@ -1,8 +0,0 @@
1
- import type { AppApiResult } from '@/base/port/AppApiInterface';
2
- import type { ChatCompletionMessageParam } from 'openai/resources/chat/completions';
3
-
4
- export interface AIControllerInterface {
5
- completions(body: {
6
- messages: ChatCompletionMessageParam[];
7
- }): Promise<AppApiResult<unknown>>;
8
- }
@@ -1,21 +0,0 @@
1
- import type { LocalesSchema } from '@migrations/schema/LocalesSchema';
2
- import type { BridgeOrderBy } from './DBBridgeInterface';
3
- import type { UpsertResult } from './LocalesRepositoryInterface';
4
- import type { PaginationInterface } from './PaginationInterface';
5
- import type { ImportLocalesData } from '../services/ApiLocaleService';
6
-
7
- export interface AdminLocalesControllerInterface {
8
- getLocales(query: {
9
- page: number;
10
- pageSize: number;
11
- orderBy?: BridgeOrderBy;
12
- }): Promise<PaginationInterface<LocalesSchema>>;
13
-
14
- createLocale(
15
- body: Omit<LocalesSchema, 'id' | 'created_at' | 'updated_at'>
16
- ): Promise<{ success: boolean }>;
17
-
18
- updateLocale(body: Partial<LocalesSchema>): Promise<void>;
19
-
20
- importLocales(formData: ImportLocalesData): Promise<UpsertResult>;
21
- }
@@ -1,11 +0,0 @@
1
- import type { UserSchema } from '@migrations/schema/UserSchema';
2
- import type { BridgeOrderBy } from './DBBridgeInterface';
3
- import type { PaginationInterface } from './PaginationInterface';
4
-
5
- export interface AdminUserControllerInterface {
6
- getUsers(query: {
7
- page: number;
8
- pageSize: number;
9
- orderBy?: BridgeOrderBy;
10
- }): Promise<PaginationInterface<UserSchema>>;
11
- }
@@ -1,5 +0,0 @@
1
- export interface CrentialTokenInterface<T> {
2
- generateToken(data: T, options?: { expiresIn?: string }): Promise<string>;
3
-
4
- parseToken(token: string): Promise<T>;
5
- }
@@ -1,36 +0,0 @@
1
- export type WhereOperation = '=' | '!=' | '>' | '<' | '>=' | '<=';
2
- export type Where = [string, WhereOperation, string | number];
3
-
4
- export interface BridgeEvent {
5
- table: string;
6
- fields?: string | string[];
7
- orderBy?: BridgeOrderBy;
8
- where?: Where[];
9
- data?: unknown;
10
- page?: number;
11
- pageSize?: number;
12
- }
13
-
14
- export type BridgeOrderBy = [string, 0 | 1]; // 0: asc, 1: desc
15
-
16
- export interface PaginationInfo {
17
- total: number;
18
- page: number;
19
- pageSize: number;
20
- }
21
-
22
- export interface DBBridgeResponse<T> {
23
- error?: unknown;
24
- data: T;
25
- count?: number;
26
- pagination?: PaginationInfo;
27
- }
28
-
29
- export interface DBBridgeInterface {
30
- add(event: BridgeEvent): Promise<DBBridgeResponse<unknown>>;
31
- update(event: BridgeEvent): Promise<DBBridgeResponse<unknown>>;
32
- upsert(event: BridgeEvent): Promise<DBBridgeResponse<unknown>>;
33
- delete(event: BridgeEvent): Promise<DBBridgeResponse<unknown>>;
34
- get(event: BridgeEvent): Promise<DBBridgeResponse<unknown>>;
35
- pagination(event: BridgeEvent): Promise<DBBridgeResponse<unknown[]>>;
36
- }
@@ -1,12 +0,0 @@
1
- import type { PaginationInterface } from '@/server/port/PaginationInterface';
2
- import type { BridgeOrderBy } from './DBBridgeInterface';
3
-
4
- export interface DBTableInterface {
5
- readonly name: string;
6
-
7
- pagination<T = unknown>(params: {
8
- page: number;
9
- pageSize: number;
10
- orderBy?: BridgeOrderBy;
11
- }): Promise<PaginationInterface<T>>;
12
- }
@@ -1,10 +0,0 @@
1
- import type { BridgeOrderBy } from './DBBridgeInterface';
2
-
3
- export interface LocalesControllerJsonQuery {
4
- locale: string;
5
- orderBy?: BridgeOrderBy;
6
- }
7
-
8
- export interface LocalesControllerInterface {
9
- json(query: LocalesControllerJsonQuery): Promise<Record<string, string>>;
10
- }