@fecommunity/reactpress 4.0.0-beta.1 → 4.0.0-beta.10

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 (955) hide show
  1. package/dist/utils/server-bundle.js +7 -0
  2. package/out/bin/reactpress-theme-client.js +64 -1
  3. package/out/bin/reactpress.js +94 -514
  4. package/out/core/services/config.js +4 -1
  5. package/out/core/services/database/index.js +18 -5
  6. package/out/core/services/database/sqlite.js +28 -5
  7. package/out/core/services/init.js +1 -53
  8. package/out/core/services/local-site.js +15 -10
  9. package/out/core/services/theme-bootstrap.js +50 -0
  10. package/out/core/utils/env-file.js +99 -0
  11. package/out/core/utils/paths.js +5 -4
  12. package/out/lib/api-dev.js +11 -1
  13. package/out/lib/bootstrap.js +13 -40
  14. package/out/lib/cli-events.js +54 -0
  15. package/out/lib/command-palette.js +53 -0
  16. package/out/lib/context-status.js +154 -0
  17. package/out/lib/create-site.js +187 -0
  18. package/out/lib/database-mode.js +45 -0
  19. package/out/lib/design-tokens.js +55 -0
  20. package/out/lib/dev-banner.js +10 -5
  21. package/out/lib/dev-session.js +9 -2
  22. package/out/lib/dev.js +68 -25
  23. package/out/lib/docker.js +12 -0
  24. package/out/lib/doctor.js +131 -10
  25. package/out/lib/http.js +20 -0
  26. package/out/lib/i18n/index.js +5 -1
  27. package/out/lib/i18n/strings.js +161 -81
  28. package/out/lib/lifecycle.js +21 -1
  29. package/out/lib/menu-actions.js +418 -0
  30. package/out/lib/nginx.js +5 -2
  31. package/out/lib/paths.js +11 -0
  32. package/out/lib/pm2.js +9 -2
  33. package/out/lib/ports.js +134 -13
  34. package/out/lib/publish.js +3 -0
  35. package/out/lib/remote-dev.js +5 -1
  36. package/out/lib/server-bundle.js +84 -0
  37. package/out/lib/shell-mode.js +23 -0
  38. package/out/lib/theme-warmup.js +1 -1
  39. package/out/shell/app.js +384 -0
  40. package/out/shell/components/brand-banner.js +93 -0
  41. package/out/shell/components/command-palette.js +77 -0
  42. package/out/shell/components/dev-stepper.js +54 -0
  43. package/out/shell/components/ink-theme.js +86 -0
  44. package/out/shell/components/menu-list.js +49 -0
  45. package/out/shell/components/pulse-bar.js +55 -0
  46. package/out/shell/components/status-rack.js +47 -0
  47. package/out/shell/hooks/use-terminal-size.js +27 -0
  48. package/out/shell/ink-shell.mjs +12056 -0
  49. package/out/shell/lib/shell-layout.js +60 -0
  50. package/out/shell/runtime/render-ink.js +89 -0
  51. package/out/ui/banner-startup.js +117 -0
  52. package/out/ui/banner.js +404 -277
  53. package/out/ui/interactive.js +149 -125
  54. package/out/ui/startup-splash.js +185 -0
  55. package/out/ui/theme.js +62 -10
  56. package/package.json +5 -3
  57. package/server/bin/reactpress-server.js +10 -2
  58. package/server/dist/app.module.js +13 -25
  59. package/server/dist/filters/http-exception.filter.js +1 -1
  60. package/server/dist/generate-swagger.js +12 -11
  61. package/server/dist/interceptors/transform.interceptor.js +10 -5
  62. package/server/dist/logger/index.js +5 -4
  63. package/server/dist/main.js +45 -23
  64. package/server/dist/modules/article/article.controller.js +103 -48
  65. package/server/dist/modules/article/article.entity.js +61 -41
  66. package/server/dist/modules/article/article.module.js +18 -3
  67. package/server/dist/modules/article/article.service.js +151 -29
  68. package/server/dist/modules/auth/auth.controller.js +11 -11
  69. package/server/dist/modules/auth/auth.module.js +4 -4
  70. package/server/dist/modules/auth/auth.service.js +8 -7
  71. package/server/dist/modules/auth/jwt-auth.guard.js +4 -3
  72. package/server/dist/modules/auth/jwt.strategy.js +4 -3
  73. package/server/dist/modules/auth/roles.guard.js +2 -2
  74. package/server/dist/modules/category/category.controller.js +21 -20
  75. package/server/dist/modules/category/category.entity.js +13 -13
  76. package/server/dist/modules/category/category.module.js +1 -1
  77. package/server/dist/modules/category/category.service.js +5 -4
  78. package/server/dist/modules/comment/comment.controller.js +24 -20
  79. package/server/dist/modules/comment/comment.entity.js +31 -31
  80. package/server/dist/modules/comment/comment.module.js +11 -2
  81. package/server/dist/modules/comment/comment.service.js +43 -16
  82. package/server/dist/modules/comment/html.js +3 -3
  83. package/server/dist/modules/file/file.controller.js +22 -20
  84. package/server/dist/modules/file/file.entity.js +20 -15
  85. package/server/dist/modules/file/file.module.js +16 -4
  86. package/server/dist/modules/file/file.service.js +70 -24
  87. package/server/dist/modules/install/install.controller.js +5 -5
  88. package/server/dist/modules/install/install.module.js +1 -1
  89. package/server/dist/modules/install/install.service.js +2 -2
  90. package/server/dist/modules/knowledge/knowledge.controller.js +35 -33
  91. package/server/dist/modules/knowledge/knowledge.entity.js +33 -33
  92. package/server/dist/modules/knowledge/knowledge.module.js +1 -1
  93. package/server/dist/modules/knowledge/knowledge.service.js +12 -11
  94. package/server/dist/modules/page/page.controller.js +24 -23
  95. package/server/dist/modules/page/page.entity.js +27 -27
  96. package/server/dist/modules/page/page.module.js +1 -1
  97. package/server/dist/modules/page/page.service.js +12 -12
  98. package/server/dist/modules/search/search.controller.js +12 -12
  99. package/server/dist/modules/search/search.entity.js +13 -13
  100. package/server/dist/modules/search/search.module.js +1 -1
  101. package/server/dist/modules/search/search.service.js +2 -2
  102. package/server/dist/modules/setting/setting.constant.js +3 -19
  103. package/server/dist/modules/setting/setting.controller.js +11 -11
  104. package/server/dist/modules/setting/setting.entity.js +64 -49
  105. package/server/dist/modules/setting/setting.module.js +2 -2
  106. package/server/dist/modules/setting/setting.service.js +169 -24
  107. package/server/dist/modules/smtp/mail.util.js +5 -9
  108. package/server/dist/modules/smtp/smtp.controller.js +27 -14
  109. package/server/dist/modules/smtp/smtp.entity.js +15 -15
  110. package/server/dist/modules/smtp/smtp.module.js +2 -2
  111. package/server/dist/modules/smtp/smtp.service.js +40 -12
  112. package/server/dist/modules/tag/tag.controller.js +24 -22
  113. package/server/dist/modules/tag/tag.entity.js +12 -12
  114. package/server/dist/modules/tag/tag.module.js +1 -1
  115. package/server/dist/modules/tag/tag.service.js +5 -4
  116. package/server/dist/modules/user/user.controller.js +39 -28
  117. package/server/dist/modules/user/user.entity.js +22 -22
  118. package/server/dist/modules/user/user.module.js +2 -2
  119. package/server/dist/modules/user/user.service.js +16 -12
  120. package/server/dist/modules/view/view.controller.js +20 -19
  121. package/server/dist/modules/view/view.entity.js +24 -24
  122. package/server/dist/modules/view/view.module.js +1 -1
  123. package/server/dist/modules/view/view.service.js +4 -4
  124. package/server/dist/starter.js +202 -14
  125. package/server/dist/utils/date.util.js +1 -1
  126. package/server/dist/utils/markdown.util.js +1 -1
  127. package/server/dist/utils/oss/aliyun-oss-client.js +5 -0
  128. package/server/dist/utils/oss.util.js +6 -1
  129. package/server/dist/utils/theme-placeholder-cover.js +94 -0
  130. package/server/dist/utils/uniqueid.util.js +1 -1
  131. package/server/dist/utils/upload.util.js +23 -8
  132. package/server/dist/utils/user.util.js +6 -2
  133. package/server/package-lock.json +21077 -0
  134. package/server/package.json +13 -10
  135. package/server/public/favicon.png +0 -0
  136. package/templates/config.local.json +1 -1
  137. package/templates/env.local.default +1 -1
  138. package/toolkit/dist/.source-fingerprint-toolkit +1 -0
  139. package/toolkit/dist/admin/index.js +18 -0
  140. package/toolkit/dist/admin/permissions.js +33 -0
  141. package/toolkit/dist/admin/registry.js +79 -0
  142. package/toolkit/dist/api/Article.js +188 -0
  143. package/toolkit/dist/api/Auth.js +58 -0
  144. package/toolkit/dist/api/Category.js +84 -0
  145. package/toolkit/dist/api/Comment.js +97 -0
  146. package/toolkit/dist/api/File.js +71 -0
  147. package/toolkit/dist/api/HttpClient.js +96 -0
  148. package/toolkit/dist/api/Knowledge.js +123 -0
  149. package/toolkit/dist/api/Page.js +97 -0
  150. package/toolkit/dist/api/Search.js +58 -0
  151. package/toolkit/dist/api/Setting.js +45 -0
  152. package/toolkit/dist/api/Smtp.js +73 -0
  153. package/toolkit/dist/api/Tag.js +97 -0
  154. package/toolkit/dist/api/User.js +72 -0
  155. package/toolkit/dist/api/View.js +84 -0
  156. package/toolkit/dist/api/index.js +30 -0
  157. package/toolkit/dist/api/instance.js +71 -0
  158. package/toolkit/dist/app/createReactPressApp.js +265 -0
  159. package/toolkit/dist/app/createThemeApp.js +51 -0
  160. package/toolkit/dist/app/devChunkRecovery.js +68 -0
  161. package/toolkit/dist/app/index.js +11 -0
  162. package/toolkit/dist/config/env.js +103 -0
  163. package/toolkit/dist/config/global.js +396 -0
  164. package/toolkit/dist/config/i18n.js +59 -0
  165. package/toolkit/dist/config/index.js +26 -0
  166. package/toolkit/dist/config/locales/en.json +125 -0
  167. package/toolkit/dist/config/locales/zh.json +125 -0
  168. package/toolkit/dist/dev/index.js +12 -0
  169. package/toolkit/dist/dev/portRedirect.js +93 -0
  170. package/toolkit/dist/dev/vitePortRedirectPlugin.js +40 -0
  171. package/toolkit/dist/extension/branding-mods.js +65 -0
  172. package/toolkit/dist/extension/configuration/defaults.js +32 -0
  173. package/toolkit/dist/extension/configuration/formily.js +170 -0
  174. package/toolkit/dist/extension/configuration/index.js +28 -0
  175. package/toolkit/dist/extension/configuration/paths.js +50 -0
  176. package/toolkit/dist/extension/configuration/presets/twentytwentyfive.js +94 -0
  177. package/toolkit/dist/extension/configuration/resolve.js +98 -0
  178. package/toolkit/dist/extension/configuration/types.js +3 -0
  179. package/toolkit/dist/extension/configuration/validate.js +21 -0
  180. package/toolkit/dist/extension/index.js +35 -0
  181. package/toolkit/dist/extension/manifest-normalize.js +75 -0
  182. package/toolkit/dist/extension/node.js +6 -0
  183. package/toolkit/dist/extension/presets/twentytwentyfive-appearance.js +193 -0
  184. package/toolkit/dist/extension/presets/twentytwentyfive-customizer.js +199 -0
  185. package/toolkit/dist/extension/preview.js +92 -0
  186. package/toolkit/dist/extension/site-notices.js +88 -0
  187. package/toolkit/dist/extension/site-settings.js +144 -0
  188. package/toolkit/dist/extension/theme-admin-locale.io.js +54 -0
  189. package/toolkit/dist/extension/theme-admin-locale.js +81 -0
  190. package/toolkit/dist/extension/theme.js +93 -0
  191. package/toolkit/dist/extension/twentytwentyfive-vars.js +100 -0
  192. package/toolkit/dist/index.js +60 -0
  193. package/toolkit/dist/plugin/admin/index.js +20 -0
  194. package/toolkit/dist/plugin/admin/permissions.js +33 -0
  195. package/toolkit/dist/plugin/admin/plugin-admin.js +41 -0
  196. package/toolkit/dist/plugin/admin/registry.js +79 -0
  197. package/toolkit/dist/plugin/admin/slots.js +16 -0
  198. package/toolkit/dist/plugin/client/client.js +95 -0
  199. package/toolkit/dist/plugin/client/index.js +11 -0
  200. package/toolkit/dist/plugin/client/runtime.js +30 -0
  201. package/toolkit/dist/plugin/dev/index.js +16 -0
  202. package/toolkit/dist/plugin/dev/portRedirect.js +111 -0
  203. package/toolkit/dist/plugin/dev/vitePortRedirectPlugin.js +40 -0
  204. package/toolkit/dist/plugin/extension/index.js +20 -0
  205. package/toolkit/dist/plugin/extension/plugin-admin-locale.io.js +54 -0
  206. package/toolkit/dist/plugin/extension/plugin-admin-locale.js +60 -0
  207. package/toolkit/dist/plugin/extension/plugin.js +146 -0
  208. package/toolkit/dist/plugin/extension/security.js +74 -0
  209. package/toolkit/dist/plugin/extension/validate.js +55 -0
  210. package/toolkit/dist/plugin/index.js +52 -0
  211. package/toolkit/dist/plugin/node.js +6 -0
  212. package/toolkit/dist/plugin/react/client.js +95 -0
  213. package/toolkit/dist/plugin/react/index.js +19 -0
  214. package/toolkit/dist/plugin/react/plugin-admin-ui.js +38 -0
  215. package/toolkit/dist/plugin/react/runtime.js +30 -0
  216. package/toolkit/dist/plugin/server/hook-reject.js +39 -0
  217. package/toolkit/dist/plugin/server/index.js +18 -0
  218. package/toolkit/dist/plugin/server/types.js +3 -0
  219. package/toolkit/dist/primitives/AntdStyleTransitionFix.js +16 -0
  220. package/toolkit/dist/primitives/Badge.js +9 -0
  221. package/toolkit/dist/primitives/Button.js +38 -0
  222. package/toolkit/dist/primitives/ColorModeToggle.js +13 -0
  223. package/toolkit/dist/primitives/IconButton.js +13 -0
  224. package/toolkit/dist/primitives/ScrollToTarget.js +48 -0
  225. package/toolkit/dist/primitives/Separator.js +9 -0
  226. package/toolkit/dist/primitives/Skeleton.js +9 -0
  227. package/toolkit/dist/primitives/Slot.js +25 -0
  228. package/toolkit/dist/primitives/Spinner.js +9 -0
  229. package/toolkit/dist/primitives/animation/ConditionTransition.js +13 -0
  230. package/toolkit/dist/primitives/animation/ListTrail.js +14 -0
  231. package/toolkit/dist/primitives/animation/Opacity.js +10 -0
  232. package/toolkit/dist/primitives/animation/Spring.js +29 -0
  233. package/toolkit/dist/primitives/animation/index.js +11 -0
  234. package/toolkit/dist/primitives/cn.js +7 -0
  235. package/toolkit/dist/primitives/icons.js +15 -0
  236. package/toolkit/dist/primitives/index.js +44 -0
  237. package/toolkit/dist/react/client.js +95 -0
  238. package/toolkit/dist/react/index.js +11 -0
  239. package/toolkit/dist/react/runtime.js +30 -0
  240. package/toolkit/dist/theme/antdDocument.js +59 -0
  241. package/toolkit/dist/theme/api/api-data.js +8 -0
  242. package/toolkit/dist/theme/api/api.js +27 -0
  243. package/toolkit/dist/theme/api/httpClient.js +83 -0
  244. package/toolkit/dist/theme/api/json.js +5 -0
  245. package/toolkit/dist/theme/api/jsonp.js +5 -0
  246. package/toolkit/dist/theme/api-data.js +22 -0
  247. package/toolkit/dist/theme/api.js +27 -0
  248. package/toolkit/dist/theme/appearance.js +16 -0
  249. package/toolkit/dist/theme/assets.js +27 -0
  250. package/toolkit/dist/theme/authSession.js +92 -0
  251. package/toolkit/dist/theme/build/antdDocument.js +70 -0
  252. package/toolkit/dist/theme/build/next-config.js +63 -0
  253. package/toolkit/dist/theme/build/node.js +6 -0
  254. package/toolkit/dist/theme/colorMode.js +45 -0
  255. package/toolkit/dist/theme/commentAuthor.js +48 -0
  256. package/toolkit/dist/theme/content/archiveSlim.js +38 -0
  257. package/toolkit/dist/theme/content/articleSlim.js +35 -0
  258. package/toolkit/dist/theme/content/assets.js +106 -0
  259. package/toolkit/dist/theme/content/carouselArticles.js +39 -0
  260. package/toolkit/dist/theme/content/excerpt.js +42 -0
  261. package/toolkit/dist/theme/content/nav.js +30 -0
  262. package/toolkit/dist/theme/content/seo.js +12 -0
  263. package/toolkit/dist/theme/createAntdApp.js +175 -0
  264. package/toolkit/dist/theme/createApp.js +141 -0
  265. package/toolkit/dist/theme/createCatalogApp.js +168 -0
  266. package/toolkit/dist/theme/customizer.js +5 -0
  267. package/toolkit/dist/theme/excerpt.js +31 -0
  268. package/toolkit/dist/theme/extension/branding-mods.js +65 -0
  269. package/toolkit/dist/theme/extension/configuration/defaults.js +32 -0
  270. package/toolkit/dist/theme/extension/configuration/formily.js +170 -0
  271. package/toolkit/dist/theme/extension/configuration/index.js +28 -0
  272. package/toolkit/dist/theme/extension/configuration/paths.js +7 -0
  273. package/toolkit/dist/theme/extension/configuration/presets/twentytwentyfive.js +94 -0
  274. package/toolkit/dist/theme/extension/configuration/resolve.js +98 -0
  275. package/toolkit/dist/theme/extension/configuration/types.js +3 -0
  276. package/toolkit/dist/theme/extension/configuration/validate.js +21 -0
  277. package/toolkit/dist/theme/extension/index.js +38 -0
  278. package/toolkit/dist/theme/extension/manifest-normalize.js +75 -0
  279. package/toolkit/dist/theme/extension/presets/twentytwentyfive-appearance.js +193 -0
  280. package/toolkit/dist/theme/extension/preview.js +92 -0
  281. package/toolkit/dist/theme/extension/site-notices.js +88 -0
  282. package/toolkit/dist/theme/extension/site-settings.js +144 -0
  283. package/toolkit/dist/theme/extension/siteNav.js +17 -0
  284. package/toolkit/dist/theme/extension/theme-admin-locale.io.js +54 -0
  285. package/toolkit/dist/theme/extension/theme-admin-locale.js +68 -0
  286. package/toolkit/dist/theme/extension/theme.js +93 -0
  287. package/toolkit/dist/theme/extension/twentytwentyfive-vars.js +103 -0
  288. package/toolkit/dist/theme/fetch.js +241 -0
  289. package/toolkit/dist/theme/format.js +48 -0
  290. package/toolkit/dist/theme/httpClient.js +89 -0
  291. package/toolkit/dist/theme/index.js +226 -0
  292. package/toolkit/dist/theme/json.js +17 -0
  293. package/toolkit/dist/theme/jsonp.js +27 -0
  294. package/toolkit/dist/theme/locale.js +55 -0
  295. package/toolkit/dist/theme/nav.js +30 -0
  296. package/toolkit/dist/theme/next-config.js +18 -0
  297. package/toolkit/dist/theme/node.js +18 -0
  298. package/toolkit/dist/theme/preview/preview-config.js +65 -0
  299. package/toolkit/dist/theme/preview/preview-draft.js +51 -0
  300. package/toolkit/dist/theme/preview/preview-mods.js +78 -0
  301. package/toolkit/dist/theme/preview-config.js +65 -0
  302. package/toolkit/dist/theme/preview-draft.js +51 -0
  303. package/toolkit/dist/theme/preview-mods.js +78 -0
  304. package/toolkit/dist/theme/providers/index.js +251 -0
  305. package/toolkit/dist/theme/providers/setup.js +29 -0
  306. package/toolkit/dist/theme/runtime.js +19 -0
  307. package/toolkit/dist/theme/seo.js +12 -0
  308. package/toolkit/dist/theme/server.js +177 -0
  309. package/toolkit/dist/theme/setting.js +42 -0
  310. package/toolkit/dist/theme/ssr/bootstrap.js +112 -0
  311. package/toolkit/dist/theme/ssr/fetch.js +264 -0
  312. package/toolkit/dist/theme/ssr/format.js +8 -0
  313. package/toolkit/dist/theme/ssr/pageProps.js +155 -0
  314. package/toolkit/dist/theme/ssr/setting.js +45 -0
  315. package/toolkit/dist/theme/ssr/slimBootstrap.js +75 -0
  316. package/toolkit/dist/theme/ssr/static.js +17 -0
  317. package/toolkit/dist/theme/ssr/templates.js +50 -0
  318. package/toolkit/dist/theme/static.js +17 -0
  319. package/toolkit/dist/theme/templates.js +38 -0
  320. package/toolkit/dist/theme/ui-optional.js +21 -0
  321. package/toolkit/dist/theme/visitor/appearance.js +16 -0
  322. package/toolkit/dist/theme/visitor/authSession.js +92 -0
  323. package/toolkit/dist/theme/visitor/colorMode.js +59 -0
  324. package/toolkit/dist/theme/visitor/commentAuthor.js +45 -0
  325. package/toolkit/dist/theme/visitor/i18n.js +28 -0
  326. package/toolkit/dist/theme/visitor/locale.js +72 -0
  327. package/toolkit/dist/theme/visitor/runtime.js +19 -0
  328. package/toolkit/dist/theme/visitor/visitorLocale.js +56 -0
  329. package/toolkit/dist/theme/visitorLocale.js +39 -0
  330. package/toolkit/dist/types/index.js +12 -0
  331. package/toolkit/dist/ui/AntdStyleTransitionFix.js +16 -0
  332. package/toolkit/dist/ui/ArchiveEmptyState.js +8 -0
  333. package/toolkit/dist/ui/ArchivePageLayout.js +8 -0
  334. package/toolkit/dist/ui/ArticleCard.js +16 -0
  335. package/toolkit/dist/ui/ArticleList.js +16 -0
  336. package/toolkit/dist/ui/BaseGlobalStyles.js +18 -0
  337. package/toolkit/dist/ui/LocaleSwitcher.js +15 -0
  338. package/toolkit/dist/ui/NavMenu.js +8 -0
  339. package/toolkit/dist/ui/NotFoundPanel.js +8 -0
  340. package/toolkit/dist/ui/PageHeader.js +8 -0
  341. package/toolkit/dist/ui/SiteBranding.js +14 -0
  342. package/toolkit/dist/ui/SiteDocument.js +13 -0
  343. package/toolkit/dist/ui/SiteDocumentFallback.js +9 -0
  344. package/toolkit/dist/ui/SiteLogo.js +16 -0
  345. package/toolkit/dist/ui/SiteTagline.js +15 -0
  346. package/toolkit/dist/ui/TaxonomyList.js +30 -0
  347. package/toolkit/dist/ui/ThemeCssVars.js +85 -0
  348. package/toolkit/dist/ui/ThemeLayout.js +11 -0
  349. package/toolkit/dist/ui/components/AntdStyleTransitionFix.js +16 -0
  350. package/toolkit/dist/ui/components/ArchiveEmptyState.js +8 -0
  351. package/toolkit/dist/ui/components/ArchivePageLayout.js +8 -0
  352. package/toolkit/dist/ui/components/ArticleCard.js +16 -0
  353. package/toolkit/dist/ui/components/ArticleList.js +16 -0
  354. package/toolkit/dist/ui/components/BaseGlobalStyles.js +18 -0
  355. package/toolkit/dist/ui/components/LocaleSwitcher.js +11 -0
  356. package/toolkit/dist/ui/components/NavMenu.js +8 -0
  357. package/toolkit/dist/ui/components/NotFoundPanel.js +8 -0
  358. package/toolkit/dist/ui/components/PageHeader.js +8 -0
  359. package/toolkit/dist/ui/components/RouteProgress.js +40 -0
  360. package/toolkit/dist/ui/components/SiteAnalytics.js +42 -0
  361. package/toolkit/dist/ui/components/SiteBranding.js +14 -0
  362. package/toolkit/dist/ui/components/SiteDocument.js +13 -0
  363. package/toolkit/dist/ui/components/SiteDocumentFallback.js +9 -0
  364. package/toolkit/dist/ui/components/SiteLogo.js +23 -0
  365. package/toolkit/dist/ui/components/SiteSeo.js +19 -0
  366. package/toolkit/dist/ui/components/SiteTagline.js +15 -0
  367. package/toolkit/dist/ui/components/TaxonomyList.js +30 -0
  368. package/toolkit/dist/ui/components/ThemeCssVars.js +85 -0
  369. package/toolkit/dist/ui/components/ThemeLayout.js +11 -0
  370. package/toolkit/dist/ui/components/content/ArticleReader.js +23 -0
  371. package/toolkit/dist/ui/components/content/ArticleToc.js +75 -0
  372. package/toolkit/dist/ui/components/content/HtmlContent.js +237 -0
  373. package/toolkit/dist/ui/components/content/Image.js +13 -0
  374. package/toolkit/dist/ui/components/content/ImageViewer.js +33 -0
  375. package/toolkit/dist/ui/components/content/LocaleTime.js +63 -0
  376. package/toolkit/dist/ui/components/content/index.js +18 -0
  377. package/toolkit/dist/ui/components/toolbar/LocaleToggleButton.js +18 -0
  378. package/toolkit/dist/ui/components/toolbar/ThemeToggleButton.js +10 -0
  379. package/toolkit/dist/ui/components/toolbar/ToolbarIconButton.js +22 -0
  380. package/toolkit/dist/ui/components/toolbar/constants.js +8 -0
  381. package/toolkit/dist/ui/components/toolbar/icons.js +44 -0
  382. package/toolkit/dist/ui/components/toolbar/index.js +25 -0
  383. package/toolkit/dist/ui/components/toolbar/locale-label.js +19 -0
  384. package/toolkit/dist/ui/context/LocaleContext.js +59 -0
  385. package/toolkit/dist/ui/context/ReactPressProvider.js +10 -0
  386. package/toolkit/dist/ui/context/SiteCatalogContext.js +60 -0
  387. package/toolkit/dist/ui/context/ThemeRuntimeContext.js +59 -0
  388. package/toolkit/dist/ui/context/index.js +26 -0
  389. package/toolkit/dist/ui/context/siteCatalogTypes.js +20 -0
  390. package/toolkit/dist/ui/context/types.js +2 -0
  391. package/toolkit/dist/ui/hooks/index.js +29 -0
  392. package/toolkit/dist/ui/hooks/useAsyncLoading.js +31 -0
  393. package/toolkit/dist/ui/hooks/useForceUpdate.js +11 -0
  394. package/toolkit/dist/ui/hooks/useNavActive.js +11 -0
  395. package/toolkit/dist/ui/hooks/usePagination.js +55 -0
  396. package/toolkit/dist/ui/hooks/useReportArticleView.js +40 -0
  397. package/toolkit/dist/ui/hooks/useReportPageView.js +28 -0
  398. package/toolkit/dist/ui/hooks/useRouteParam.js +15 -0
  399. package/toolkit/dist/ui/hooks/useToggle.js +17 -0
  400. package/toolkit/dist/ui/hooks/useWarningOnExit.js +59 -0
  401. package/toolkit/dist/ui/index.js +87 -0
  402. package/toolkit/dist/utils/api-envelope.js +31 -0
  403. package/toolkit/dist/utils/clipboard.js +24 -0
  404. package/toolkit/dist/utils/cookie.js +15 -0
  405. package/toolkit/dist/utils/date.js +45 -0
  406. package/toolkit/dist/utils/email.js +9 -0
  407. package/toolkit/dist/utils/error.js +26 -0
  408. package/toolkit/dist/utils/image.js +34 -0
  409. package/toolkit/dist/utils/index.js +39 -0
  410. package/toolkit/dist/utils/json.js +18 -0
  411. package/toolkit/dist/utils/jsonp.js +27 -0
  412. package/toolkit/dist/utils/object.js +63 -0
  413. package/toolkit/dist/utils/setting.js +13 -0
  414. package/toolkit/dist/utils/string.js +15 -0
  415. package/toolkit/dist/utils/viewport.js +14 -0
  416. package/toolkit/package-lock.json +452 -0
  417. package/toolkit/package.json +96 -0
  418. package/dist/cli.d.ts +0 -4
  419. package/dist/cli.d.ts.map +0 -1
  420. package/dist/cli.js.map +0 -1
  421. package/dist/commands/config.d.ts +0 -8
  422. package/dist/commands/config.d.ts.map +0 -1
  423. package/dist/commands/config.js.map +0 -1
  424. package/dist/commands/init.d.ts +0 -6
  425. package/dist/commands/init.d.ts.map +0 -1
  426. package/dist/commands/init.js.map +0 -1
  427. package/dist/commands/restart.d.ts +0 -2
  428. package/dist/commands/restart.d.ts.map +0 -1
  429. package/dist/commands/restart.js.map +0 -1
  430. package/dist/commands/start.d.ts +0 -2
  431. package/dist/commands/start.d.ts.map +0 -1
  432. package/dist/commands/start.js.map +0 -1
  433. package/dist/commands/status.d.ts +0 -2
  434. package/dist/commands/status.d.ts.map +0 -1
  435. package/dist/commands/status.js.map +0 -1
  436. package/dist/commands/stop.d.ts +0 -5
  437. package/dist/commands/stop.d.ts.map +0 -1
  438. package/dist/commands/stop.js.map +0 -1
  439. package/dist/index.d.ts +0 -3
  440. package/dist/index.d.ts.map +0 -1
  441. package/dist/index.js.map +0 -1
  442. package/dist/services/config.d.ts +0 -11
  443. package/dist/services/config.d.ts.map +0 -1
  444. package/dist/services/config.js.map +0 -1
  445. package/dist/services/database.d.ts +0 -43
  446. package/dist/services/database.d.ts.map +0 -1
  447. package/dist/services/database.js.map +0 -1
  448. package/dist/services/exec.d.ts +0 -22
  449. package/dist/services/exec.d.ts.map +0 -1
  450. package/dist/services/exec.js.map +0 -1
  451. package/dist/services/init.d.ts +0 -10
  452. package/dist/services/init.d.ts.map +0 -1
  453. package/dist/services/init.js.map +0 -1
  454. package/dist/services/process.d.ts +0 -9
  455. package/dist/services/process.d.ts.map +0 -1
  456. package/dist/services/process.js.map +0 -1
  457. package/dist/services/server-health.d.ts +0 -4
  458. package/dist/services/server-health.d.ts.map +0 -1
  459. package/dist/services/server-health.js.map +0 -1
  460. package/dist/services/server.d.ts +0 -19
  461. package/dist/services/server.d.ts.map +0 -1
  462. package/dist/services/server.js.map +0 -1
  463. package/dist/types/config.d.ts +0 -30
  464. package/dist/types/config.d.ts.map +0 -1
  465. package/dist/types/config.js.map +0 -1
  466. package/dist/utils/cli-context.d.ts +0 -4
  467. package/dist/utils/cli-context.d.ts.map +0 -1
  468. package/dist/utils/cli-context.js.map +0 -1
  469. package/dist/utils/logger.d.ts +0 -10
  470. package/dist/utils/logger.d.ts.map +0 -1
  471. package/dist/utils/logger.js.map +0 -1
  472. package/dist/utils/paths.d.ts +0 -17
  473. package/dist/utils/paths.d.ts.map +0 -1
  474. package/dist/utils/paths.js.map +0 -1
  475. package/dist/utils/platform.d.ts +0 -8
  476. package/dist/utils/platform.d.ts.map +0 -1
  477. package/dist/utils/platform.js.map +0 -1
  478. package/dist/utils/port.d.ts +0 -5
  479. package/dist/utils/port.d.ts.map +0 -1
  480. package/dist/utils/port.js.map +0 -1
  481. package/dist/utils/server-bundle.d.ts +0 -11
  482. package/dist/utils/server-bundle.d.ts.map +0 -1
  483. package/dist/utils/server-bundle.js.map +0 -1
  484. package/out/bin/reactpress-cli-shim.d.ts +0 -3
  485. package/out/bin/reactpress-cli-shim.d.ts.map +0 -1
  486. package/out/bin/reactpress-cli-shim.js.map +0 -1
  487. package/out/bin/reactpress-theme-client.d.ts +0 -3
  488. package/out/bin/reactpress-theme-client.d.ts.map +0 -1
  489. package/out/bin/reactpress-theme-client.js.map +0 -1
  490. package/out/bin/reactpress.d.ts +0 -3
  491. package/out/bin/reactpress.d.ts.map +0 -1
  492. package/out/bin/reactpress.js.map +0 -1
  493. package/out/core/services/config.d.ts +0 -12
  494. package/out/core/services/config.d.ts.map +0 -1
  495. package/out/core/services/config.js.map +0 -1
  496. package/out/core/services/database/index.d.ts +0 -17
  497. package/out/core/services/database/index.d.ts.map +0 -1
  498. package/out/core/services/database/index.js.map +0 -1
  499. package/out/core/services/database/mysql.d.ts +0 -14
  500. package/out/core/services/database/mysql.d.ts.map +0 -1
  501. package/out/core/services/database/mysql.js.map +0 -1
  502. package/out/core/services/database/profile.d.ts +0 -6
  503. package/out/core/services/database/profile.d.ts.map +0 -1
  504. package/out/core/services/database/profile.js.map +0 -1
  505. package/out/core/services/database/sqlite.d.ts +0 -10
  506. package/out/core/services/database/sqlite.d.ts.map +0 -1
  507. package/out/core/services/database/sqlite.js.map +0 -1
  508. package/out/core/services/exec.d.ts +0 -21
  509. package/out/core/services/exec.d.ts.map +0 -1
  510. package/out/core/services/exec.js.map +0 -1
  511. package/out/core/services/init.d.ts +0 -11
  512. package/out/core/services/init.d.ts.map +0 -1
  513. package/out/core/services/init.js.map +0 -1
  514. package/out/core/services/local-site.d.ts +0 -24
  515. package/out/core/services/local-site.d.ts.map +0 -1
  516. package/out/core/services/local-site.js.map +0 -1
  517. package/out/core/utils/cli-context.d.ts +0 -3
  518. package/out/core/utils/cli-context.d.ts.map +0 -1
  519. package/out/core/utils/cli-context.js.map +0 -1
  520. package/out/core/utils/paths.d.ts +0 -20
  521. package/out/core/utils/paths.d.ts.map +0 -1
  522. package/out/core/utils/paths.js.map +0 -1
  523. package/out/core/utils/platform.d.ts +0 -7
  524. package/out/core/utils/platform.d.ts.map +0 -1
  525. package/out/core/utils/platform.js.map +0 -1
  526. package/out/core/utils/port.d.ts +0 -4
  527. package/out/core/utils/port.d.ts.map +0 -1
  528. package/out/core/utils/port.js.map +0 -1
  529. package/out/lib/api-dev-runner.d.ts +0 -3
  530. package/out/lib/api-dev-runner.d.ts.map +0 -1
  531. package/out/lib/api-dev-runner.js.map +0 -1
  532. package/out/lib/api-dev.d.ts +0 -2
  533. package/out/lib/api-dev.d.ts.map +0 -1
  534. package/out/lib/api-dev.js.map +0 -1
  535. package/out/lib/bootstrap.d.ts +0 -18
  536. package/out/lib/bootstrap.d.ts.map +0 -1
  537. package/out/lib/bootstrap.js.map +0 -1
  538. package/out/lib/build.d.ts +0 -2
  539. package/out/lib/build.d.ts.map +0 -1
  540. package/out/lib/build.js.map +0 -1
  541. package/out/lib/db-backup.d.ts +0 -2
  542. package/out/lib/db-backup.d.ts.map +0 -1
  543. package/out/lib/db-backup.js.map +0 -1
  544. package/out/lib/dev-banner.d.ts +0 -2
  545. package/out/lib/dev-banner.d.ts.map +0 -1
  546. package/out/lib/dev-banner.js.map +0 -1
  547. package/out/lib/dev-child-io.d.ts +0 -2
  548. package/out/lib/dev-child-io.d.ts.map +0 -1
  549. package/out/lib/dev-child-io.js.map +0 -1
  550. package/out/lib/dev-log.d.ts +0 -2
  551. package/out/lib/dev-log.d.ts.map +0 -1
  552. package/out/lib/dev-log.js.map +0 -1
  553. package/out/lib/dev-session.d.ts +0 -2
  554. package/out/lib/dev-session.d.ts.map +0 -1
  555. package/out/lib/dev-session.js.map +0 -1
  556. package/out/lib/dev.d.ts +0 -2
  557. package/out/lib/dev.d.ts.map +0 -1
  558. package/out/lib/dev.js.map +0 -1
  559. package/out/lib/docker.d.ts +0 -2
  560. package/out/lib/docker.d.ts.map +0 -1
  561. package/out/lib/docker.js.map +0 -1
  562. package/out/lib/doctor.d.ts +0 -2
  563. package/out/lib/doctor.d.ts.map +0 -1
  564. package/out/lib/doctor.js.map +0 -1
  565. package/out/lib/health-parse.d.ts +0 -5
  566. package/out/lib/health-parse.d.ts.map +0 -1
  567. package/out/lib/health-parse.js.map +0 -1
  568. package/out/lib/health-parse.test.d.ts +0 -2
  569. package/out/lib/health-parse.test.d.ts.map +0 -1
  570. package/out/lib/health-parse.test.js.map +0 -1
  571. package/out/lib/http.d.ts +0 -2
  572. package/out/lib/http.d.ts.map +0 -1
  573. package/out/lib/http.js.map +0 -1
  574. package/out/lib/i18n/index.d.ts +0 -2
  575. package/out/lib/i18n/index.d.ts.map +0 -1
  576. package/out/lib/i18n/index.js.map +0 -1
  577. package/out/lib/i18n/strings.d.ts +0 -2
  578. package/out/lib/i18n/strings.d.ts.map +0 -1
  579. package/out/lib/i18n/strings.js.map +0 -1
  580. package/out/lib/lifecycle.d.ts +0 -2
  581. package/out/lib/lifecycle.d.ts.map +0 -1
  582. package/out/lib/lifecycle.js.map +0 -1
  583. package/out/lib/nginx.d.ts +0 -2
  584. package/out/lib/nginx.d.ts.map +0 -1
  585. package/out/lib/nginx.js.map +0 -1
  586. package/out/lib/paths.d.ts +0 -2
  587. package/out/lib/paths.d.ts.map +0 -1
  588. package/out/lib/paths.js.map +0 -1
  589. package/out/lib/plugin-build.d.ts +0 -2
  590. package/out/lib/plugin-build.d.ts.map +0 -1
  591. package/out/lib/plugin-build.js.map +0 -1
  592. package/out/lib/plugin-cli.d.ts +0 -2
  593. package/out/lib/plugin-cli.d.ts.map +0 -1
  594. package/out/lib/plugin-cli.js.map +0 -1
  595. package/out/lib/pm2.d.ts +0 -2
  596. package/out/lib/pm2.d.ts.map +0 -1
  597. package/out/lib/pm2.js.map +0 -1
  598. package/out/lib/ports.d.ts +0 -2
  599. package/out/lib/ports.d.ts.map +0 -1
  600. package/out/lib/ports.js.map +0 -1
  601. package/out/lib/process.d.ts +0 -2
  602. package/out/lib/process.d.ts.map +0 -1
  603. package/out/lib/process.js.map +0 -1
  604. package/out/lib/prod-memory.d.ts +0 -6
  605. package/out/lib/prod-memory.d.ts.map +0 -1
  606. package/out/lib/prod-memory.js.map +0 -1
  607. package/out/lib/project-type.d.ts +0 -2
  608. package/out/lib/project-type.d.ts.map +0 -1
  609. package/out/lib/project-type.js.map +0 -1
  610. package/out/lib/publish.d.ts +0 -3
  611. package/out/lib/publish.d.ts.map +0 -1
  612. package/out/lib/publish.js.map +0 -1
  613. package/out/lib/remote-dev.d.ts +0 -2
  614. package/out/lib/remote-dev.d.ts.map +0 -1
  615. package/out/lib/remote-dev.js.map +0 -1
  616. package/out/lib/root.d.ts +0 -2
  617. package/out/lib/root.d.ts.map +0 -1
  618. package/out/lib/root.js.map +0 -1
  619. package/out/lib/spawn.d.ts +0 -2
  620. package/out/lib/spawn.d.ts.map +0 -1
  621. package/out/lib/spawn.js.map +0 -1
  622. package/out/lib/status.d.ts +0 -2
  623. package/out/lib/status.d.ts.map +0 -1
  624. package/out/lib/status.js.map +0 -1
  625. package/out/lib/theme-catalog.d.ts +0 -2
  626. package/out/lib/theme-catalog.d.ts.map +0 -1
  627. package/out/lib/theme-catalog.js.map +0 -1
  628. package/out/lib/theme-cli.d.ts +0 -2
  629. package/out/lib/theme-cli.d.ts.map +0 -1
  630. package/out/lib/theme-cli.js.map +0 -1
  631. package/out/lib/theme-dev.d.ts +0 -2
  632. package/out/lib/theme-dev.d.ts.map +0 -1
  633. package/out/lib/theme-dev.js.map +0 -1
  634. package/out/lib/theme-env.d.ts +0 -2
  635. package/out/lib/theme-env.d.ts.map +0 -1
  636. package/out/lib/theme-env.js.map +0 -1
  637. package/out/lib/theme-install.d.ts +0 -2
  638. package/out/lib/theme-install.d.ts.map +0 -1
  639. package/out/lib/theme-install.js.map +0 -1
  640. package/out/lib/theme-lock.d.ts +0 -2
  641. package/out/lib/theme-lock.d.ts.map +0 -1
  642. package/out/lib/theme-lock.js.map +0 -1
  643. package/out/lib/theme-paths.d.ts +0 -2
  644. package/out/lib/theme-paths.d.ts.map +0 -1
  645. package/out/lib/theme-paths.js.map +0 -1
  646. package/out/lib/theme-placeholder-cover.d.ts +0 -13
  647. package/out/lib/theme-placeholder-cover.d.ts.map +0 -1
  648. package/out/lib/theme-placeholder-cover.js.map +0 -1
  649. package/out/lib/theme-preview-frame.d.ts +0 -2
  650. package/out/lib/theme-preview-frame.d.ts.map +0 -1
  651. package/out/lib/theme-preview-frame.js.map +0 -1
  652. package/out/lib/theme-preview-pool.d.ts +0 -2
  653. package/out/lib/theme-preview-pool.d.ts.map +0 -1
  654. package/out/lib/theme-preview-pool.js.map +0 -1
  655. package/out/lib/theme-preview-proxy.d.ts +0 -2
  656. package/out/lib/theme-preview-proxy.d.ts.map +0 -1
  657. package/out/lib/theme-preview-proxy.js.map +0 -1
  658. package/out/lib/theme-prod.d.ts +0 -2
  659. package/out/lib/theme-prod.d.ts.map +0 -1
  660. package/out/lib/theme-prod.js.map +0 -1
  661. package/out/lib/theme-registry.d.ts +0 -2
  662. package/out/lib/theme-registry.d.ts.map +0 -1
  663. package/out/lib/theme-registry.js.map +0 -1
  664. package/out/lib/theme-runtime.d.ts +0 -2
  665. package/out/lib/theme-runtime.d.ts.map +0 -1
  666. package/out/lib/theme-runtime.js.map +0 -1
  667. package/out/lib/theme-sources.d.ts +0 -2
  668. package/out/lib/theme-sources.d.ts.map +0 -1
  669. package/out/lib/theme-sources.js.map +0 -1
  670. package/out/lib/theme-warmup.d.ts +0 -2
  671. package/out/lib/theme-warmup.d.ts.map +0 -1
  672. package/out/lib/theme-warmup.js.map +0 -1
  673. package/out/lib/toolkit-build.d.ts +0 -2
  674. package/out/lib/toolkit-build.d.ts.map +0 -1
  675. package/out/lib/toolkit-build.js.map +0 -1
  676. package/out/types/config.d.ts +0 -57
  677. package/out/types/config.d.ts.map +0 -1
  678. package/out/types/config.js.map +0 -1
  679. package/out/ui/banner.d.ts +0 -2
  680. package/out/ui/banner.d.ts.map +0 -1
  681. package/out/ui/banner.js.map +0 -1
  682. package/out/ui/interactive.d.ts +0 -2
  683. package/out/ui/interactive.d.ts.map +0 -1
  684. package/out/ui/interactive.js.map +0 -1
  685. package/out/ui/prompts.d.ts +0 -2
  686. package/out/ui/prompts.d.ts.map +0 -1
  687. package/out/ui/prompts.js.map +0 -1
  688. package/out/ui/theme.d.ts +0 -2
  689. package/out/ui/theme.d.ts.map +0 -1
  690. package/out/ui/theme.js.map +0 -1
  691. package/server/dist/app.module.d.ts +0 -2
  692. package/server/dist/app.module.js.map +0 -1
  693. package/server/dist/common/api-messages.d.ts +0 -41
  694. package/server/dist/common/api-messages.js.map +0 -1
  695. package/server/dist/database/typeorm-options.d.ts +0 -3
  696. package/server/dist/database/typeorm-options.js.map +0 -1
  697. package/server/dist/filters/http-exception.filter.d.ts +0 -4
  698. package/server/dist/filters/http-exception.filter.js.map +0 -1
  699. package/server/dist/generate-swagger.d.ts +0 -1
  700. package/server/dist/generate-swagger.js.map +0 -1
  701. package/server/dist/interceptors/transform.interceptor.d.ts +0 -9
  702. package/server/dist/interceptors/transform.interceptor.js.map +0 -1
  703. package/server/dist/logger/index.d.ts +0 -4
  704. package/server/dist/logger/index.js.map +0 -1
  705. package/server/dist/main.d.ts +0 -6
  706. package/server/dist/main.js.map +0 -1
  707. package/server/dist/modules/api-key/api-key.controller.d.ts +0 -14
  708. package/server/dist/modules/api-key/api-key.controller.js.map +0 -1
  709. package/server/dist/modules/api-key/api-key.entity.d.ts +0 -11
  710. package/server/dist/modules/api-key/api-key.entity.js.map +0 -1
  711. package/server/dist/modules/api-key/api-key.guard.d.ts +0 -7
  712. package/server/dist/modules/api-key/api-key.guard.js.map +0 -1
  713. package/server/dist/modules/api-key/api-key.module.d.ts +0 -2
  714. package/server/dist/modules/api-key/api-key.module.js.map +0 -1
  715. package/server/dist/modules/api-key/api-key.service.d.ts +0 -15
  716. package/server/dist/modules/api-key/api-key.service.js.map +0 -1
  717. package/server/dist/modules/article/article-revision.entity.d.ts +0 -11
  718. package/server/dist/modules/article/article-revision.entity.js.map +0 -1
  719. package/server/dist/modules/article/article-slug.util.d.ts +0 -2
  720. package/server/dist/modules/article/article-slug.util.js.map +0 -1
  721. package/server/dist/modules/article/article.controller.d.ts +0 -27
  722. package/server/dist/modules/article/article.controller.js.map +0 -1
  723. package/server/dist/modules/article/article.entity.d.ts +0 -23
  724. package/server/dist/modules/article/article.entity.js.map +0 -1
  725. package/server/dist/modules/article/article.module.d.ts +0 -2
  726. package/server/dist/modules/article/article.module.js.map +0 -1
  727. package/server/dist/modules/article/article.service.d.ts +0 -30
  728. package/server/dist/modules/article/article.service.js.map +0 -1
  729. package/server/dist/modules/article/article.util.d.ts +0 -1
  730. package/server/dist/modules/article/article.util.js.map +0 -1
  731. package/server/dist/modules/article/scheduled-publish.service.d.ts +0 -13
  732. package/server/dist/modules/article/scheduled-publish.service.js.map +0 -1
  733. package/server/dist/modules/auth/auth.controller.d.ts +0 -12
  734. package/server/dist/modules/auth/auth.controller.js.map +0 -1
  735. package/server/dist/modules/auth/auth.module.d.ts +0 -2
  736. package/server/dist/modules/auth/auth.module.js.map +0 -1
  737. package/server/dist/modules/auth/auth.service.d.ts +0 -26
  738. package/server/dist/modules/auth/auth.service.js.map +0 -1
  739. package/server/dist/modules/auth/jwt-auth.guard.d.ts +0 -7
  740. package/server/dist/modules/auth/jwt-auth.guard.js.map +0 -1
  741. package/server/dist/modules/auth/jwt.strategy.d.ts +0 -9
  742. package/server/dist/modules/auth/jwt.strategy.js.map +0 -1
  743. package/server/dist/modules/auth/roles.guard.d.ts +0 -10
  744. package/server/dist/modules/auth/roles.guard.js.map +0 -1
  745. package/server/dist/modules/bootstrap/bootstrap.constants.d.ts +0 -20
  746. package/server/dist/modules/bootstrap/bootstrap.constants.js.map +0 -1
  747. package/server/dist/modules/bootstrap/bootstrap.service.d.ts +0 -22
  748. package/server/dist/modules/bootstrap/bootstrap.service.js.map +0 -1
  749. package/server/dist/modules/bootstrap/install-locale.d.ts +0 -2
  750. package/server/dist/modules/bootstrap/install-locale.js.map +0 -1
  751. package/server/dist/modules/category/category.controller.d.ts +0 -11
  752. package/server/dist/modules/category/category.controller.js.map +0 -1
  753. package/server/dist/modules/category/category.entity.d.ts +0 -9
  754. package/server/dist/modules/category/category.entity.js.map +0 -1
  755. package/server/dist/modules/category/category.module.d.ts +0 -2
  756. package/server/dist/modules/category/category.module.js.map +0 -1
  757. package/server/dist/modules/category/category.service.d.ts +0 -12
  758. package/server/dist/modules/category/category.service.js.map +0 -1
  759. package/server/dist/modules/comment/comment.controller.d.ts +0 -12
  760. package/server/dist/modules/comment/comment.controller.js.map +0 -1
  761. package/server/dist/modules/comment/comment.entity.d.ts +0 -17
  762. package/server/dist/modules/comment/comment.entity.js.map +0 -1
  763. package/server/dist/modules/comment/comment.module.d.ts +0 -2
  764. package/server/dist/modules/comment/comment.module.js.map +0 -1
  765. package/server/dist/modules/comment/comment.service.d.ts +0 -24
  766. package/server/dist/modules/comment/comment.service.js.map +0 -1
  767. package/server/dist/modules/comment/html.d.ts +0 -15
  768. package/server/dist/modules/comment/html.js.map +0 -1
  769. package/server/dist/modules/extension/extension.module.d.ts +0 -9
  770. package/server/dist/modules/extension/extension.module.js.map +0 -1
  771. package/server/dist/modules/extension/plugin-loader.service.d.ts +0 -12
  772. package/server/dist/modules/extension/plugin-loader.service.js.map +0 -1
  773. package/server/dist/modules/extension/plugin-registry.bridge.d.ts +0 -3
  774. package/server/dist/modules/extension/plugin-registry.bridge.js.map +0 -1
  775. package/server/dist/modules/extension/plugin.controller.d.ts +0 -22
  776. package/server/dist/modules/extension/plugin.controller.js.map +0 -1
  777. package/server/dist/modules/extension/plugin.service.d.ts +0 -52
  778. package/server/dist/modules/extension/plugin.service.js.map +0 -1
  779. package/server/dist/modules/extension/preview-draft.store.d.ts +0 -13
  780. package/server/dist/modules/extension/preview-draft.store.js.map +0 -1
  781. package/server/dist/modules/extension/theme-registry.bridge.d.ts +0 -56
  782. package/server/dist/modules/extension/theme-registry.bridge.js.map +0 -1
  783. package/server/dist/modules/extension/theme.controller.d.ts +0 -66
  784. package/server/dist/modules/extension/theme.controller.js.map +0 -1
  785. package/server/dist/modules/extension/theme.service.d.ts +0 -140
  786. package/server/dist/modules/extension/theme.service.js.map +0 -1
  787. package/server/dist/modules/file/file-optimization.controller.d.ts +0 -12
  788. package/server/dist/modules/file/file-optimization.controller.js.map +0 -1
  789. package/server/dist/modules/file/file-optimization.service.d.ts +0 -36
  790. package/server/dist/modules/file/file-optimization.service.js.map +0 -1
  791. package/server/dist/modules/file/file-optimization.types.d.ts +0 -66
  792. package/server/dist/modules/file/file-optimization.types.js.map +0 -1
  793. package/server/dist/modules/file/file.controller.d.ts +0 -10
  794. package/server/dist/modules/file/file.controller.js.map +0 -1
  795. package/server/dist/modules/file/file.entity.d.ts +0 -9
  796. package/server/dist/modules/file/file.entity.js.map +0 -1
  797. package/server/dist/modules/file/file.module.d.ts +0 -2
  798. package/server/dist/modules/file/file.module.js.map +0 -1
  799. package/server/dist/modules/file/file.service.d.ts +0 -17
  800. package/server/dist/modules/file/file.service.js.map +0 -1
  801. package/server/dist/modules/file/image-optimizer-plugin.guard.d.ts +0 -7
  802. package/server/dist/modules/file/image-optimizer-plugin.guard.js.map +0 -1
  803. package/server/dist/modules/health/health.controller.d.ts +0 -11
  804. package/server/dist/modules/health/health.controller.js.map +0 -1
  805. package/server/dist/modules/health/health.module.d.ts +0 -2
  806. package/server/dist/modules/health/health.module.js.map +0 -1
  807. package/server/dist/modules/hook/hook.module.d.ts +0 -2
  808. package/server/dist/modules/hook/hook.module.js.map +0 -1
  809. package/server/dist/modules/hook/hook.service.d.ts +0 -26
  810. package/server/dist/modules/hook/hook.service.js.map +0 -1
  811. package/server/dist/modules/install/install.controller.d.ts +0 -11
  812. package/server/dist/modules/install/install.controller.js.map +0 -1
  813. package/server/dist/modules/install/install.module.d.ts +0 -2
  814. package/server/dist/modules/install/install.module.js.map +0 -1
  815. package/server/dist/modules/install/install.service.d.ts +0 -12
  816. package/server/dist/modules/install/install.service.js.map +0 -1
  817. package/server/dist/modules/knowledge/knowledge.controller.d.ts +0 -14
  818. package/server/dist/modules/knowledge/knowledge.controller.js.map +0 -1
  819. package/server/dist/modules/knowledge/knowledge.entity.d.ts +0 -18
  820. package/server/dist/modules/knowledge/knowledge.entity.js.map +0 -1
  821. package/server/dist/modules/knowledge/knowledge.module.d.ts +0 -2
  822. package/server/dist/modules/knowledge/knowledge.module.js.map +0 -1
  823. package/server/dist/modules/knowledge/knowledge.service.d.ts +0 -14
  824. package/server/dist/modules/knowledge/knowledge.service.js.map +0 -1
  825. package/server/dist/modules/page/page.controller.d.ts +0 -12
  826. package/server/dist/modules/page/page.controller.js.map +0 -1
  827. package/server/dist/modules/page/page.entity.d.ts +0 -15
  828. package/server/dist/modules/page/page.entity.js.map +0 -1
  829. package/server/dist/modules/page/page.module.d.ts +0 -2
  830. package/server/dist/modules/page/page.module.js.map +0 -1
  831. package/server/dist/modules/page/page.service.d.ts +0 -12
  832. package/server/dist/modules/page/page.service.js.map +0 -1
  833. package/server/dist/modules/search/search.controller.d.ts +0 -8
  834. package/server/dist/modules/search/search.controller.js.map +0 -1
  835. package/server/dist/modules/search/search.entity.d.ts +0 -8
  836. package/server/dist/modules/search/search.entity.js.map +0 -1
  837. package/server/dist/modules/search/search.module.d.ts +0 -2
  838. package/server/dist/modules/search/search.module.js.map +0 -1
  839. package/server/dist/modules/search/search.service.d.ts +0 -12
  840. package/server/dist/modules/search/search.service.js.map +0 -1
  841. package/server/dist/modules/setting/setting.constant.d.ts +0 -3
  842. package/server/dist/modules/setting/setting.constant.js.map +0 -1
  843. package/server/dist/modules/setting/setting.controller.d.ts +0 -12
  844. package/server/dist/modules/setting/setting.controller.js.map +0 -1
  845. package/server/dist/modules/setting/setting.entity.d.ts +0 -26
  846. package/server/dist/modules/setting/setting.entity.js.map +0 -1
  847. package/server/dist/modules/setting/setting.module.d.ts +0 -2
  848. package/server/dist/modules/setting/setting.module.js.map +0 -1
  849. package/server/dist/modules/setting/setting.service.d.ts +0 -10
  850. package/server/dist/modules/setting/setting.service.js.map +0 -1
  851. package/server/dist/modules/smtp/mail.util.d.ts +0 -6
  852. package/server/dist/modules/smtp/mail.util.js.map +0 -1
  853. package/server/dist/modules/smtp/smtp.controller.d.ts +0 -9
  854. package/server/dist/modules/smtp/smtp.controller.js.map +0 -1
  855. package/server/dist/modules/smtp/smtp.entity.d.ts +0 -9
  856. package/server/dist/modules/smtp/smtp.entity.js.map +0 -1
  857. package/server/dist/modules/smtp/smtp.module.d.ts +0 -2
  858. package/server/dist/modules/smtp/smtp.module.js.map +0 -1
  859. package/server/dist/modules/smtp/smtp.service.d.ts +0 -11
  860. package/server/dist/modules/smtp/smtp.service.js.map +0 -1
  861. package/server/dist/modules/tag/tag.controller.d.ts +0 -12
  862. package/server/dist/modules/tag/tag.controller.js.map +0 -1
  863. package/server/dist/modules/tag/tag.entity.d.ts +0 -9
  864. package/server/dist/modules/tag/tag.entity.js.map +0 -1
  865. package/server/dist/modules/tag/tag.module.d.ts +0 -2
  866. package/server/dist/modules/tag/tag.module.js.map +0 -1
  867. package/server/dist/modules/tag/tag.service.d.ts +0 -13
  868. package/server/dist/modules/tag/tag.service.js.map +0 -1
  869. package/server/dist/modules/user/user.controller.d.ts +0 -13
  870. package/server/dist/modules/user/user.controller.js.map +0 -1
  871. package/server/dist/modules/user/user.entity.d.ts +0 -15
  872. package/server/dist/modules/user/user.entity.js.map +0 -1
  873. package/server/dist/modules/user/user.module.d.ts +0 -2
  874. package/server/dist/modules/user/user.module.js.map +0 -1
  875. package/server/dist/modules/user/user.service.d.ts +0 -16
  876. package/server/dist/modules/user/user.service.js.map +0 -1
  877. package/server/dist/modules/view/view.controller.d.ts +0 -11
  878. package/server/dist/modules/view/view.controller.js.map +0 -1
  879. package/server/dist/modules/view/view.entity.d.ts +0 -14
  880. package/server/dist/modules/view/view.entity.js.map +0 -1
  881. package/server/dist/modules/view/view.module.d.ts +0 -2
  882. package/server/dist/modules/view/view.module.js.map +0 -1
  883. package/server/dist/modules/view/view.service.d.ts +0 -11
  884. package/server/dist/modules/view/view.service.js.map +0 -1
  885. package/server/dist/modules/webhook/webhook.controller.d.ts +0 -12
  886. package/server/dist/modules/webhook/webhook.controller.js.map +0 -1
  887. package/server/dist/modules/webhook/webhook.entity.d.ts +0 -9
  888. package/server/dist/modules/webhook/webhook.entity.js.map +0 -1
  889. package/server/dist/modules/webhook/webhook.module.d.ts +0 -2
  890. package/server/dist/modules/webhook/webhook.module.js.map +0 -1
  891. package/server/dist/modules/webhook/webhook.service.d.ts +0 -16
  892. package/server/dist/modules/webhook/webhook.service.js.map +0 -1
  893. package/server/dist/node-polyfills.d.ts +0 -18
  894. package/server/dist/node-polyfills.js.map +0 -1
  895. package/server/dist/public/apple-touch-icon.png +0 -0
  896. package/server/dist/public/favicon-16.png +0 -0
  897. package/server/dist/public/favicon-32.png +0 -0
  898. package/server/dist/public/favicon-48.png +0 -0
  899. package/server/dist/public/favicon.ico +0 -0
  900. package/server/dist/public/favicon.png +0 -0
  901. package/server/dist/public/icon-192.png +0 -0
  902. package/server/dist/public/icon-512.png +0 -0
  903. package/server/dist/public/index.html +0 -439
  904. package/server/dist/public/logo-200.png +0 -0
  905. package/server/dist/public/logo-400.png +0 -0
  906. package/server/dist/public/logo.png +0 -0
  907. package/server/dist/public/logo.svg +0 -7
  908. package/server/dist/public/swagger/custom.css +0 -11
  909. package/server/dist/public/uploads/2026-05-30/QR3X4UZQ93ZTUPGXCFA9II..png +0 -0
  910. package/server/dist/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8.webp +0 -0
  911. package/server/dist/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_medium.webp +0 -0
  912. package/server/dist/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_thumb.webp +0 -0
  913. package/server/dist/public/uploads/2026-05-31/I2SZC0ONA7CF31UM46MN56..jpg +0 -0
  914. package/server/dist/starter.d.ts +0 -1
  915. package/server/dist/starter.js.map +0 -1
  916. package/server/dist/tsconfig.build.tsbuildinfo +0 -16764
  917. package/server/dist/tsconfig.tsbuildinfo +0 -1
  918. package/server/dist/utils/date.util.d.ts +0 -1
  919. package/server/dist/utils/date.util.js.map +0 -1
  920. package/server/dist/utils/html-sanitize.util.d.ts +0 -1
  921. package/server/dist/utils/html-sanitize.util.js.map +0 -1
  922. package/server/dist/utils/image-processor.util.d.ts +0 -23
  923. package/server/dist/utils/image-processor.util.js.map +0 -1
  924. package/server/dist/utils/ip.util.d.ts +0 -2
  925. package/server/dist/utils/ip.util.js.map +0 -1
  926. package/server/dist/utils/local-api-quiet.util.d.ts +0 -1
  927. package/server/dist/utils/local-api-quiet.util.js.map +0 -1
  928. package/server/dist/utils/markdown.util.d.ts +0 -4
  929. package/server/dist/utils/markdown.util.js.map +0 -1
  930. package/server/dist/utils/oss/aliyun-oss-client.d.ts +0 -6
  931. package/server/dist/utils/oss/aliyun-oss-client.js.map +0 -1
  932. package/server/dist/utils/oss/oss-client.d.ts +0 -6
  933. package/server/dist/utils/oss/oss-client.js.map +0 -1
  934. package/server/dist/utils/oss.util.d.ts +0 -13
  935. package/server/dist/utils/oss.util.js.map +0 -1
  936. package/server/dist/utils/project-root.util.d.ts +0 -2
  937. package/server/dist/utils/project-root.util.js.map +0 -1
  938. package/server/dist/utils/query-whitelist.util.d.ts +0 -1
  939. package/server/dist/utils/query-whitelist.util.js.map +0 -1
  940. package/server/dist/utils/ua.util.d.ts +0 -9
  941. package/server/dist/utils/ua.util.js.map +0 -1
  942. package/server/dist/utils/uniqueid.util.d.ts +0 -1
  943. package/server/dist/utils/uniqueid.util.js.map +0 -1
  944. package/server/dist/utils/upload.util.d.ts +0 -5
  945. package/server/dist/utils/upload.util.js.map +0 -1
  946. package/server/dist/utils/user.util.d.ts +0 -1
  947. package/server/dist/utils/user.util.js.map +0 -1
  948. package/server/logs/error/error.log.-2026-05-19.log +0 -135
  949. package/server/logs/request/request.log.-2026-05-19.log +0 -0
  950. package/server/logs/response/response.log.-2026-05-19.log +0 -121
  951. package/server/public/uploads/2026-05-30/QR3X4UZQ93ZTUPGXCFA9II..png +0 -0
  952. package/server/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8.webp +0 -0
  953. package/server/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_medium.webp +0 -0
  954. package/server/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_thumb.webp +0 -0
  955. package/server/public/uploads/2026-05-31/I2SZC0ONA7CF31UM46MN56..jpg +0 -0
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  /** CLI user-facing strings — English first, Chinese via REACTPRESS_LANG=zh or zh LANG */
4
4
  const STRINGS = {
5
5
  en: {
6
- 'cli.description': 'ReactPress 4.0 CLI — init, dev, plugins, desktop, themes, build, and publish',
7
- 'cli.init.description': 'Initialize project (.reactpress/config.json + .env + Docker MySQL)',
6
+ 'cli.description': 'ReactPress 4 — zero-dependency publishing platform. Run `reactpress init` or `reactpress doctor`.',
7
+ 'cli.init.description': 'Initialize and start ReactPress (SQLite API + admin + theme)',
8
8
  'cli.init.directory': 'Project directory',
9
9
  'cli.init.force': 'Overwrite existing config',
10
10
  'cli.init.local': 'Initialize with embedded SQLite (no Docker)',
@@ -76,24 +76,11 @@ const STRINGS = {
76
76
  'cli.publish.description': 'Build and publish npm packages',
77
77
  'cli.publish.build': 'Build publish artifacts only',
78
78
  'cli.publish.publish': 'Publish core packages to npm',
79
- 'cli.start.description': 'Production: start API + frontend',
80
- 'cli.help.examples': 'Examples:',
81
- 'cli.help.interactive': ' reactpress Interactive menu',
82
- 'cli.help.dev': ' reactpress dev Zero-config full-stack dev',
83
- 'cli.help.init': ' reactpress init --force Re-initialize config',
84
- 'cli.help.server': ' reactpress server start Start API',
85
- 'cli.help.status': ' reactpress status Combined status',
86
- 'cli.help.doctor': ' reactpress doctor Environment diagnostics',
87
- 'cli.help.docker': ' reactpress docker start Docker + full stack',
88
- 'cli.help.build': ' reactpress build -t all Build (toolkit|plugins|server|web|theme|docs|all)',
89
- 'cli.help.publish': ' reactpress publish Publish npm packages (maintainers)',
90
- 'cli.help.theme': ' reactpress theme add <spec> Install theme from npm',
91
- 'cli.help.themeList': ' reactpress theme list List available themes',
92
- 'cli.help.initLocal': ' reactpress init --local Initialize with SQLite (no Docker)',
93
- 'cli.help.devLocal': ' reactpress dev --local SQLite dev (no Docker/nginx)',
94
- 'cli.help.desktop': ' reactpress desktop dev Desktop (Electron + SQLite)',
95
- 'cli.help.plugin': ' reactpress plugin install seo Install a plugin',
96
- 'cli.help.dbBackup': ' reactpress db backup Backup MySQL database',
79
+ 'cli.start.description': 'Start ReactPress (SQLite API + admin + theme)',
80
+ 'cli.help.examples': 'Usage:',
81
+ 'cli.help.init': ' reactpress init Initialize (default)',
82
+ 'cli.help.doctor': ' reactpress doctor Diagnose environment issues',
83
+ 'cli.help.zeroDep': ' Zero deps: Node.js 18+ only — no Docker, nginx, or MySQL',
97
84
  'cli.plugin.description': 'Manage ReactPress plugins',
98
85
  'cli.plugin.install.description': 'Install a local plugin into .reactpress/plugins',
99
86
  'cli.plugin.install.id': 'Plugin id from plugins/ registry',
@@ -112,7 +99,18 @@ const STRINGS = {
112
99
  'themeInstall.listEmpty': 'No theme packages found under themes/ or .reactpress/runtime/',
113
100
  'cli.build.target': 'Build target: toolkit | plugins | server | web | theme | docs | all',
114
101
  'cli.build.lowMem': 'Cap Node heap for builds and skip unchanged steps (2GB VPS)',
115
- 'banner.subtitle': ' · Full-stack publishing CLI ',
102
+ 'init.readyTitle': 'ReactPress is running',
103
+ 'init.label.path': 'Path',
104
+ 'init.label.db': 'Database',
105
+ 'init.label.site': 'Site',
106
+ 'init.label.admin': 'Admin',
107
+ 'init.label.api': 'API',
108
+ 'init.hint': 'Admin login: admin / admin · Press Ctrl+C to stop',
109
+ 'init.apiOnlyHint': 'API is running. Install a theme in Admin → Appearance to enable the public site.',
110
+ 'init.unknownCommand': 'Unknown command: {cmd}',
111
+ 'init.useInitOnly': 'ReactPress 4 supports: reactpress init · reactpress doctor',
112
+ 'banner.subtitle': '· Publishing platform · v4.0',
113
+ 'banner.tagline': 'Zero deps · SQLite · ship in ~60s',
116
114
  /** Left label for the decorative pulse bar (not a URL — the repo link
117
115
  * lives directly under the title bar at the top of the card). */
118
116
  'banner.pulseLabel': 'Setup',
@@ -120,22 +118,36 @@ const STRINGS = {
120
118
  'banner.pulsePending': 'INIT',
121
119
  'banner.label.mode': 'MODE',
122
120
  'banner.label.path': 'PATH',
121
+ 'banner.service.sqlite': 'SQLite',
122
+ 'banner.service.mysql': 'MySQL',
123
+ 'banner.service.server': 'Server',
124
+ 'banner.service.docker': 'Docker',
125
+ 'banner.service.nginx': 'Nginx',
126
+ 'banner.service.web': 'Web',
127
+ 'banner.nginxRunning': 'running',
128
+ 'banner.nginxStopped': 'stopped',
129
+ 'banner.feat.sqlite': 'SQLite',
130
+ 'banner.feat.plugins': 'Plugins',
131
+ 'banner.feat.desktop': 'Desktop',
132
+ 'banner.feat.themes': 'Themes',
123
133
  'banner.mode.standalone': 'STANDALONE',
124
134
  'banner.mode.monorepo': 'MONOREPO',
125
135
  'banner.mode.uninitialized': 'UNINITIALIZED',
126
136
  'banner.systemLabel': 'SYSTEM',
127
137
  'banner.systemOnline': 'ONLINE',
138
+ 'banner.systemPartial': 'PARTIAL',
139
+ 'banner.systemError': 'ERROR',
128
140
  'banner.systemPending': 'PENDING',
129
- 'menu.dev': 'Zero-config dev (env + DB + API + frontend)',
130
- 'menu.init': 'Initialize project (.reactpress + .env + database)',
141
+ 'menu.dev': 'Full-stack dev',
142
+ 'menu.init': 'Initialize project',
131
143
  'menu.status': 'View project status',
132
- 'menu.doctor': 'Environment diagnostics (doctor)',
133
- 'menu.devApi': 'API only (dev watch)',
144
+ 'menu.doctor': 'Environment check',
145
+ 'menu.devApi': 'API only (watch)',
134
146
  'menu.devClient': 'Frontend only',
135
- 'menu.serverStart': 'Start API (production background)',
147
+ 'menu.serverStart': 'Start API (production)',
136
148
  'menu.serverStop': 'Stop API',
137
149
  'menu.serverRestart': 'Restart API',
138
- 'menu.build': 'Build (toolkit → server → client)',
150
+ 'menu.build': 'Production build',
139
151
  'menu.buildTarget': 'What do you want to build?',
140
152
  'menu.buildAll': 'All (toolkit → server → client)',
141
153
  'menu.dockerStart': 'Docker dev (DB + nginx + full stack)',
@@ -145,6 +157,8 @@ const STRINGS = {
145
157
  'menu.publish': 'Publish npm packages (interactive)',
146
158
  'menu.exit': 'Exit',
147
159
  'menu.prompt': 'Choose an action',
160
+ 'menu.subPrompt': '{section}',
161
+ 'menu.backToMain': 'Back to main menu',
148
162
  'menu.back': 'Return to main menu?',
149
163
  'menu.retry': 'Return to main menu and retry?',
150
164
  'menu.startingDev': 'Starting full-stack dev…',
@@ -153,26 +167,36 @@ const STRINGS = {
153
167
  'menu.opening': 'Opening {url}',
154
168
  'menu.goodbye': ' Goodbye.',
155
169
  'menu.section.run': 'Run',
156
- 'menu.section.extend': '4.0 Extend',
157
- 'menu.section.lifecycle': 'Lifecycle',
158
- 'menu.section.build': 'Build & Deploy',
170
+ 'menu.section.quick': 'Quick start',
171
+ 'menu.section.explore': 'More',
172
+ 'menu.section.extend': 'Dev alternatives',
173
+ 'menu.section.lifecycle': 'Service control',
174
+ 'menu.section.build': 'Build & deploy',
159
175
  'menu.section.tools': 'Tools',
160
- 'menu.devDesktop': 'Desktop dev (SQLite + Electron)',
161
- 'menu.hint.devDesktop': 'no Docker',
162
- 'menu.devWeb': 'Admin SPA + API only',
163
- 'menu.hint.devWeb': 'web/ dev',
164
- 'menu.devLocalWeb': 'Local web (SQLite in browser)',
165
- 'menu.hint.devLocalWeb': 'no Docker/Electron',
166
- 'menu.initLocal': 'Initialize with SQLite (no Docker)',
167
- 'menu.hint.initLocal': 'init --local',
168
- 'menu.themeList': 'List available themes',
176
+ 'menu.group.extend': 'Dev alternatives',
177
+ 'menu.group.lifecycle': 'Service control',
178
+ 'menu.group.build': 'Build & deploy',
179
+ 'menu.group.tools': 'Tools & utilities',
180
+ 'menu.groupHint.extend': 'desktop · web · SQLite · themes',
181
+ 'menu.groupHint.lifecycle': 'API · frontend · start/stop',
182
+ 'menu.groupHint.build': 'build · Docker · publish',
183
+ 'menu.groupHint.tools': 'nginx · backup · admin',
184
+ 'menu.devDesktop': 'Desktop dev',
185
+ 'menu.hint.devDesktop': 'SQLite + Electron',
186
+ 'menu.devWeb': 'Admin SPA + API',
187
+ 'menu.hint.devWeb': 'web/ dev server',
188
+ 'menu.devLocalWeb': 'Local web',
189
+ 'menu.hint.devLocalWeb': 'SQLite in browser',
190
+ 'menu.initLocal': 'Initialize (SQLite)',
191
+ 'menu.hint.initLocal': 'no Docker',
192
+ 'menu.themeList': 'List themes',
169
193
  'menu.hint.themeList': 'theme list',
170
- 'menu.pluginList': 'List available plugins',
194
+ 'menu.pluginList': 'List plugins',
171
195
  'menu.hint.pluginList': 'plugin list',
172
196
  'menu.dbBackup': 'Backup database',
173
197
  'menu.hint.dbBackup': 'mysqldump',
174
198
  'menu.tip': 'Tip: arrow keys to navigate, Enter to select, Ctrl+C to quit.',
175
- 'menu.shortcuts': '↑/↓ navigate · enter select · esc back · ctrl+c quit',
199
+ 'menu.shortcuts': '↑/↓ navigate · 1-9 quick pick · enter select · ctrl+c quit',
176
200
  'menu.statusHeader': 'Status',
177
201
  'menu.contextStandalone': 'Project mode · standalone (using bundled API)',
178
202
  'menu.contextMonorepo': 'Project mode · monorepo (server/src + client/)',
@@ -298,6 +322,8 @@ const STRINGS = {
298
322
  'dev.desktopIntro': 'Desktop dev — local-first mode (SQLite embedded, no Docker/MySQL)',
299
323
  'dev.localWebIntro': 'Local web dev — SQLite API + admin SPA in browser (no Docker/Electron)',
300
324
  'dev.localFullIntro': 'Local full-stack dev — SQLite API + admin + theme (no Docker/MySQL)',
325
+ 'dev.autoLocalNoDocker': 'Docker unavailable — auto-switching to local SQLite mode (no MySQL required)',
326
+ 'dev.autoLocalNoMysql': 'MySQL unreachable — auto-switching to local SQLite mode',
301
327
  'dev.desktopLocalApiStarting': 'Starting embedded SQLite API…',
302
328
  'dev.desktopLocalApiReady': '✓ Local API ({db}) → {url}',
303
329
  'dev.desktopLocalApi': 'Local SQLite API → {url}',
@@ -334,6 +360,7 @@ const STRINGS = {
334
360
  'doctor.nodeFix': 'Install Node.js 18+: https://nodejs.org/',
335
361
  'doctor.dockerOk': 'Docker engine is available',
336
362
  'doctor.dockerBad': 'Docker is not running or unavailable',
363
+ 'doctor.dockerSkipped': 'Docker not required (SQLite local mode)',
337
364
  'doctor.dockerFix': 'Install and start Docker: https://docs.docker.com/get-docker/ , then run reactpress docker up; or use external MySQL in config.json',
338
365
  'doctor.portApiBusy': 'API port {port} is in use',
339
366
  'doctor.portClientBusy': 'Frontend port {port} is in use',
@@ -350,13 +377,23 @@ const STRINGS = {
350
377
  'doctor.apiOk': 'API health check passed ({url})',
351
378
  'doctor.apiBad': 'API health check failed ({url})',
352
379
  'doctor.apiFix': 'Run reactpress server start or reactpress dev',
380
+ 'doctor.apiFixInit': 'Run reactpress init to start the API',
353
381
  'doctor.pnpmBad': 'pnpm not found',
354
382
  'doctor.pnpmFix': 'npm i -g pnpm, or enable corepack at monorepo root',
383
+ 'doctor.pnpmSkipped': 'pnpm optional (standalone / bundled runtime)',
355
384
  'doctor.check.config': 'Config file',
356
385
  'doctor.check.env': 'Environment',
357
386
  'doctor.check.ports': 'Ports',
358
387
  'doctor.check.database': 'Database',
359
388
  'doctor.check.api': 'API health',
389
+ 'doctor.check.site': 'Public site',
390
+ 'doctor.check.admin': 'Admin console',
391
+ 'doctor.siteOk': 'Site reachable at {url}',
392
+ 'doctor.siteBad': 'Site not reachable at {url}',
393
+ 'doctor.siteFix': 'Run reactpress init to start the theme frontend',
394
+ 'doctor.adminOk': 'Admin reachable at {url}',
395
+ 'doctor.adminBad': 'Admin not reachable at {url}',
396
+ 'doctor.adminFix': 'Run reactpress init, then open {url}',
360
397
  'doctor.configOk': '.reactpress/config.json exists',
361
398
  'doctor.configBad': 'Missing .reactpress/config.json',
362
399
  'doctor.configFix': 'Run reactpress init',
@@ -429,6 +466,7 @@ const STRINGS = {
429
466
  'lifecycle.startingBundledApi': '[reactpress] Starting bundled API…',
430
467
  'lifecycle.apiStartedBg': '[reactpress] API started in background (pid {pid})',
431
468
  'lifecycle.apiTimeout120': '[reactpress] API not ready within 120s: {url}',
469
+ 'lifecycle.apiExitedEarly': '[reactpress] API process exited early (pid {pid})',
432
470
  'lifecycle.apiReady': '[reactpress] API ready: {url}',
433
471
  'lifecycle.apiStatusTitle': '[reactpress] API status',
434
472
  'lifecycle.source': ' Source: {source}',
@@ -591,13 +629,15 @@ const STRINGS = {
591
629
  'bundle.service.database.connectionTimeout': 'Database container started but connection timed out. Run: docker logs {container}',
592
630
  'bundle.service.database.cannotConnect': 'Cannot connect to database {host}:{port}. Check DB_* in .env.',
593
631
  'bundle.serverBundle.missing': 'Bundled server is missing. Reinstall reactpress-cli.',
632
+ 'bundle.serverBundle.installing': 'Installing bundled server runtime dependencies…',
594
633
  'bundle.serverBundle.installFailed': 'Bundled server dependency install failed. In the reactpress-cli install dir run: cd server && npm install --omit=dev --no-bin-links',
595
634
  'bundle.serverBundle.notBuilt': 'Bundled server is not built or dependencies are incomplete. Run npm run build:server (dev) or reinstall reactpress-cli.',
635
+ 'bundle.serverBundle.toolkitMissing': 'Bundled toolkit is missing. Reinstall @fecommunity/reactpress.',
596
636
  'bundle.port.notFound': 'No available port in range {start}-{end}',
597
637
  },
598
638
  zh: {
599
- 'cli.description': 'ReactPress 4.0 CLI — 初始化、开发、插件、桌面、主题、构建与发布',
600
- 'cli.init.description': '初始化项目 (.reactpress/config.json + .env + Docker MySQL)',
639
+ 'cli.description': 'ReactPress 4 — 零依赖发布平台。运行 reactpress init 或 reactpress doctor。',
640
+ 'cli.init.description': '初始化并启动 ReactPress(SQLite API + 管理后台 + 主题)',
601
641
  'cli.init.directory': '项目目录',
602
642
  'cli.init.force': '覆盖已有配置',
603
643
  'cli.init.local': '使用嵌入式 SQLite 初始化(无需 Docker)',
@@ -669,24 +709,11 @@ const STRINGS = {
669
709
  'cli.publish.description': '构建并发布 npm 包',
670
710
  'cli.publish.build': '仅构建发布产物',
671
711
  'cli.publish.publish': '发布核心 npm 包',
672
- 'cli.start.description': '生产模式: 启动 API + 前端',
673
- 'cli.help.examples': '示例:',
674
- 'cli.help.interactive': ' reactpress 交互式菜单',
675
- 'cli.help.dev': ' reactpress dev 零配置全栈开发',
676
- 'cli.help.init': ' reactpress init --force 重新初始化配置',
677
- 'cli.help.server': ' reactpress server start 启动 API',
678
- 'cli.help.status': ' reactpress status 综合状态',
679
- 'cli.help.doctor': ' reactpress doctor 环境诊断',
680
- 'cli.help.docker': ' reactpress docker start Docker + 全栈',
681
- 'cli.help.build': ' reactpress build -t all 构建 (toolkit|plugins|server|web|theme|docs|all)',
682
- 'cli.help.publish': ' reactpress publish 发布 npm 包(维护者)',
683
- 'cli.help.theme': ' reactpress theme add <spec> 从 npm 安装主题',
684
- 'cli.help.themeList': ' reactpress theme list 列出可用主题',
685
- 'cli.help.initLocal': ' reactpress init --local SQLite 初始化(无需 Docker)',
686
- 'cli.help.devLocal': ' reactpress dev --local SQLite 开发(无需 Docker/nginx)',
687
- 'cli.help.desktop': ' reactpress desktop dev 桌面客户端(Electron + SQLite)',
688
- 'cli.help.plugin': ' reactpress plugin install seo 安装插件',
689
- 'cli.help.dbBackup': ' reactpress db backup 备份 MySQL 数据库',
712
+ 'cli.start.description': '启动 ReactPress(SQLite API + 管理后台 + 主题)',
713
+ 'cli.help.examples': '用法:',
714
+ 'cli.help.init': ' reactpress init 初始化(默认命令)',
715
+ 'cli.help.doctor': ' reactpress doctor 诊断环境问题',
716
+ 'cli.help.zeroDep': ' 零依赖:仅需 Node.js 18+,无需 Docker、nginx 或 MySQL',
690
717
  'cli.plugin.description': '管理 ReactPress 插件',
691
718
  'cli.plugin.install.description': '安装本地插件到 .reactpress/plugins',
692
719
  'cli.plugin.install.id': 'plugins/ 注册表中的插件 id',
@@ -705,29 +732,54 @@ const STRINGS = {
705
732
  'themeInstall.listEmpty': '在 themes/ 或 .reactpress/runtime/ 下未找到主题包',
706
733
  'cli.build.target': '构建目标: toolkit | plugins | server | web | theme | docs | all',
707
734
  'cli.build.lowMem': '低内存模式:限制构建堆内存并跳过未变化步骤(2G 小机)',
708
- 'banner.subtitle': ' · 全栈发布平台 CLI ',
735
+ 'init.readyTitle': 'ReactPress 已启动',
736
+ 'init.label.path': '路径',
737
+ 'init.label.db': '数据库',
738
+ 'init.label.site': '站点',
739
+ 'init.label.admin': '后台',
740
+ 'init.label.api': 'API',
741
+ 'init.hint': '后台账号:admin / admin · 按 Ctrl+C 停止',
742
+ 'init.apiOnlyHint': 'API 已运行。请在管理后台「外观 → 主题」安装主题以启用访客站。',
743
+ 'init.unknownCommand': '未知命令:{cmd}',
744
+ 'init.useInitOnly': 'ReactPress 4 支持:reactpress init · reactpress doctor',
745
+ 'banner.subtitle': '· 发布平台 · v4.0',
746
+ 'banner.tagline': '零依赖 · SQLite · 约 60 秒上线',
709
747
  /** 左侧装饰性进度条标签(不是网址;仓库地址放在卡片顶部 Title 正下方)。 */
710
748
  'banner.pulseLabel': '准备',
711
749
  'banner.pulseReady': '就绪',
712
750
  'banner.pulsePending': '初始化',
713
751
  'banner.label.mode': '模式',
714
752
  'banner.label.path': '路径',
753
+ 'banner.service.sqlite': 'SQLite',
754
+ 'banner.service.mysql': 'MySQL',
755
+ 'banner.service.server': 'Server',
756
+ 'banner.service.docker': 'Docker',
757
+ 'banner.service.nginx': 'Nginx',
758
+ 'banner.service.web': 'Web',
759
+ 'banner.nginxRunning': '运行中',
760
+ 'banner.nginxStopped': '未运行',
761
+ 'banner.feat.sqlite': 'SQLite',
762
+ 'banner.feat.plugins': '插件',
763
+ 'banner.feat.desktop': 'Desktop',
764
+ 'banner.feat.themes': '主题',
715
765
  'banner.mode.standalone': '独立项目',
716
766
  'banner.mode.monorepo': 'MONOREPO',
717
767
  'banner.mode.uninitialized': '未初始化',
718
768
  'banner.systemLabel': '系统',
719
769
  'banner.systemOnline': '在线',
770
+ 'banner.systemPartial': '部分就绪',
771
+ 'banner.systemError': '异常',
720
772
  'banner.systemPending': '准备中',
721
- 'menu.dev': '零配置开发 (env + DB + API + 前端)',
722
- 'menu.init': '初始化项目 (.reactpress + .env + 数据库)',
773
+ 'menu.dev': '全栈开发',
774
+ 'menu.init': '初始化项目',
723
775
  'menu.status': '查看项目状态',
724
- 'menu.doctor': '环境诊断 (doctor)',
725
- 'menu.devApi': '仅启动 API (开发 watch)',
726
- 'menu.devClient': '仅启动前端',
727
- 'menu.serverStart': '启动 API (后台生产)',
776
+ 'menu.doctor': '环境检查',
777
+ 'menu.devApi': '仅 API (watch)',
778
+ 'menu.devClient': '仅前端',
779
+ 'menu.serverStart': '启动 API (生产)',
728
780
  'menu.serverStop': '停止 API',
729
781
  'menu.serverRestart': '重启 API',
730
- 'menu.build': '构建 (toolkit → server → client)',
782
+ 'menu.build': '生产构建',
731
783
  'menu.buildTarget': '选择要构建的目标',
732
784
  'menu.buildAll': '全部 (toolkit → server → client)',
733
785
  'menu.dockerStart': 'Docker 开发环境 (DB + nginx + 全栈)',
@@ -737,6 +789,8 @@ const STRINGS = {
737
789
  'menu.publish': '发布 npm 包 (交互式)',
738
790
  'menu.exit': '退出',
739
791
  'menu.prompt': '选择操作',
792
+ 'menu.subPrompt': '{section}',
793
+ 'menu.backToMain': '返回主菜单',
740
794
  'menu.back': '返回主菜单?',
741
795
  'menu.retry': '返回主菜单重试?',
742
796
  'menu.startingDev': '启动全栈开发…',
@@ -745,26 +799,36 @@ const STRINGS = {
745
799
  'menu.opening': '打开 {url}',
746
800
  'menu.goodbye': ' 再见。',
747
801
  'menu.section.run': '运行',
748
- 'menu.section.extend': '4.0 扩展',
749
- 'menu.section.lifecycle': '生命周期',
802
+ 'menu.section.quick': '快速开始',
803
+ 'menu.section.explore': '更多',
804
+ 'menu.section.extend': '开发替代方案',
805
+ 'menu.section.lifecycle': '服务控制',
750
806
  'menu.section.build': '构建与部署',
751
807
  'menu.section.tools': '工具',
752
- 'menu.devDesktop': '桌面开发(SQLite + Electron)',
753
- 'menu.hint.devDesktop': '无需 Docker',
754
- 'menu.devWeb': '仅管理后台 + API',
808
+ 'menu.group.extend': '开发替代方案',
809
+ 'menu.group.lifecycle': '服务控制',
810
+ 'menu.group.build': '构建与部署',
811
+ 'menu.group.tools': '工具与实用功能',
812
+ 'menu.groupHint.extend': '桌面 · Web · SQLite · 主题',
813
+ 'menu.groupHint.lifecycle': 'API · 前端 · 启停',
814
+ 'menu.groupHint.build': '构建 · Docker · 发布',
815
+ 'menu.groupHint.tools': 'nginx · 备份 · 后台',
816
+ 'menu.devDesktop': '桌面开发',
817
+ 'menu.hint.devDesktop': 'SQLite + Electron',
818
+ 'menu.devWeb': '管理后台 + API',
755
819
  'menu.hint.devWeb': 'web/ 开发',
756
- 'menu.devLocalWeb': '本地 Web(浏览器 + SQLite)',
757
- 'menu.hint.devLocalWeb': '无需 Docker/Electron',
758
- 'menu.initLocal': 'SQLite 初始化(无需 Docker)',
759
- 'menu.hint.initLocal': 'init --local',
760
- 'menu.themeList': '列出可用主题',
820
+ 'menu.devLocalWeb': '本地 Web',
821
+ 'menu.hint.devLocalWeb': '浏览器 + SQLite',
822
+ 'menu.initLocal': 'SQLite 初始化',
823
+ 'menu.hint.initLocal': '无需 Docker',
824
+ 'menu.themeList': '列出主题',
761
825
  'menu.hint.themeList': 'theme list',
762
- 'menu.pluginList': '列出可用插件',
826
+ 'menu.pluginList': '列出插件',
763
827
  'menu.hint.pluginList': 'plugin list',
764
828
  'menu.dbBackup': '备份数据库',
765
829
  'menu.hint.dbBackup': 'mysqldump',
766
830
  'menu.tip': '提示:上下方向键选择,回车确认,Ctrl+C 退出。',
767
- 'menu.shortcuts': '↑/↓ 选择 · 回车 确认 · esc 返回 · Ctrl+C 退出',
831
+ 'menu.shortcuts': '↑/↓ 选择 · 1-9 快捷 · 回车确认 · Ctrl+C 退出',
768
832
  'menu.statusHeader': '当前状态',
769
833
  'menu.contextStandalone': '项目类型 · 独立项目(使用内置 API)',
770
834
  'menu.contextMonorepo': '项目类型 · monorepo(server/src + client/)',
@@ -890,6 +954,8 @@ const STRINGS = {
890
954
  'dev.desktopIntro': '桌面开发 — 本地优先模式(内嵌 SQLite,无需 Docker/MySQL)',
891
955
  'dev.localWebIntro': '本地 Web 开发 — SQLite API + 浏览器管理后台(无需 Docker/Electron)',
892
956
  'dev.localFullIntro': '本地全栈开发 — SQLite API + 管理后台 + 访客主题(无需 Docker/MySQL)',
957
+ 'dev.autoLocalNoDocker': 'Docker 不可用,已自动切换为本地 SQLite 模式(无需 MySQL)',
958
+ 'dev.autoLocalNoMysql': 'MySQL 未就绪,已自动切换为本地 SQLite 模式',
893
959
  'dev.desktopLocalApiStarting': '正在启动内嵌 SQLite API…',
894
960
  'dev.desktopLocalApiReady': '✓ 本地 API({db})→ {url}',
895
961
  'dev.desktopLocalApi': '本地 SQLite API → {url}',
@@ -926,6 +992,7 @@ const STRINGS = {
926
992
  'doctor.nodeFix': '请安装 Node.js 18+:https://nodejs.org/',
927
993
  'doctor.dockerOk': 'Docker 引擎可用',
928
994
  'doctor.dockerBad': 'Docker 未运行或不可用',
995
+ 'doctor.dockerSkipped': '无需 Docker(SQLite 本地模式)',
929
996
  'doctor.dockerFix': '安装并启动 Docker:https://docs.docker.com/get-docker/ ,然后运行 reactpress docker up;或改 config.json 使用外部 MySQL',
930
997
  'doctor.portApiBusy': 'API 端口 {port} 已被占用',
931
998
  'doctor.portClientBusy': '前端端口 {port} 已被占用',
@@ -942,13 +1009,23 @@ const STRINGS = {
942
1009
  'doctor.apiOk': 'API 健康检查通过 ({url})',
943
1010
  'doctor.apiBad': 'API 未响应健康检查 ({url})',
944
1011
  'doctor.apiFix': '运行 reactpress server start 或 reactpress dev',
1012
+ 'doctor.apiFixInit': '运行 reactpress init 启动 API',
945
1013
  'doctor.pnpmBad': '未检测到 pnpm',
946
1014
  'doctor.pnpmFix': 'npm i -g pnpm,或在 monorepo 根目录使用 corepack enable',
1015
+ 'doctor.pnpmSkipped': 'pnpm 可选(独立项目 / 内置运行时)',
947
1016
  'doctor.check.config': '配置文件',
948
1017
  'doctor.check.env': '环境变量',
949
1018
  'doctor.check.ports': '端口',
950
1019
  'doctor.check.database': '数据库',
951
1020
  'doctor.check.api': 'API 健康',
1021
+ 'doctor.check.site': '访客站点',
1022
+ 'doctor.check.admin': '管理后台',
1023
+ 'doctor.siteOk': '站点可访问 {url}',
1024
+ 'doctor.siteBad': '站点不可访问 {url}',
1025
+ 'doctor.siteFix': '运行 reactpress init 启动主题前台',
1026
+ 'doctor.adminOk': '后台可访问 {url}',
1027
+ 'doctor.adminBad': '后台不可访问 {url}',
1028
+ 'doctor.adminFix': '运行 reactpress init 后访问 {url}',
952
1029
  'doctor.configOk': '.reactpress/config.json 存在',
953
1030
  'doctor.configBad': '缺少 .reactpress/config.json',
954
1031
  'doctor.configFix': '运行 reactpress init',
@@ -1021,6 +1098,7 @@ const STRINGS = {
1021
1098
  'lifecycle.startingBundledApi': '[reactpress] 正在启动内置 API…',
1022
1099
  'lifecycle.apiStartedBg': '[reactpress] API 已后台启动 (pid {pid})',
1023
1100
  'lifecycle.apiTimeout120': '[reactpress] API 在 120s 内未就绪: {url}',
1101
+ 'lifecycle.apiExitedEarly': '[reactpress] API 进程已提前退出 (pid {pid})',
1024
1102
  'lifecycle.apiReady': '[reactpress] API 已就绪: {url}',
1025
1103
  'lifecycle.apiStatusTitle': '[reactpress] API 状态',
1026
1104
  'lifecycle.source': ' 来源: {source}',
@@ -1183,8 +1261,10 @@ const STRINGS = {
1183
1261
  'bundle.service.database.connectionTimeout': '数据库容器已启动,但连接超时。请执行 docker logs {container} 查看详情。',
1184
1262
  'bundle.service.database.cannotConnect': '无法连接数据库 {host}:{port},请检查 .env 中的 DB_* 配置。',
1185
1263
  'bundle.serverBundle.missing': '内置服务端缺失,请重新安装 reactpress-cli。',
1264
+ 'bundle.serverBundle.installing': '正在安装内置服务端运行时依赖…',
1186
1265
  'bundle.serverBundle.installFailed': '内置服务端依赖安装失败。请在 reactpress-cli 安装目录下手动执行: cd server && npm install --omit=dev --no-bin-links',
1187
1266
  'bundle.serverBundle.notBuilt': '内置服务端未构建或依赖不完整。请运行 npm run build:server(开发)或重新安装 reactpress-cli。',
1267
+ 'bundle.serverBundle.toolkitMissing': '内置 toolkit 缺失,请重新安装 @fecommunity/reactpress。',
1188
1268
  'bundle.port.notFound': '在 {start}-{end} 范围内未找到可用端口',
1189
1269
  },
1190
1270
  };
@@ -10,6 +10,7 @@ const net = require('net');
10
10
  const { readPid, isProcessRunning, clearPidFile, writePid } = require('./process');
11
11
  const { ensureOriginalCwd } = require('./root');
12
12
  const { t } = require('./i18n');
13
+ const { ensureBundledServerDeps } = require('./server-bundle');
13
14
  function parseServerPort(projectRoot) {
14
15
  try {
15
16
  const url = new URL(loadServerSiteUrl(projectRoot));
@@ -78,6 +79,13 @@ async function startApi(projectRoot, { wait = true } = {}) {
78
79
  console.error(t('lifecycle.noServerAvailable'));
79
80
  return 1;
80
81
  }
82
+ if (!isUsingMonorepoServer(projectRoot)) {
83
+ const bundled = await ensureBundledServerDeps(projectRoot);
84
+ if (!bundled.ok) {
85
+ console.error(bundled.message || t('bundle.serverBundle.notBuilt'));
86
+ return 1;
87
+ }
88
+ }
81
89
  if (isUsingMonorepoServer(projectRoot)) {
82
90
  console.log(t('lifecycle.startingLocalApi'));
83
91
  }
@@ -105,7 +113,19 @@ async function startApi(projectRoot, { wait = true } = {}) {
105
113
  color: 'magenta',
106
114
  spinner: 'dots',
107
115
  }).start();
108
- const ready = await waitForHttp(serverUrl);
116
+ const deadline = Date.now() + 120_000;
117
+ let ready = false;
118
+ while (Date.now() < deadline) {
119
+ if (!isProcessRunning(child.pid)) {
120
+ spinner.fail(t('lifecycle.apiExitedEarly', { pid: child.pid }));
121
+ return 1;
122
+ }
123
+ if (await require('./http').isHttpResponding(serverUrl)) {
124
+ ready = true;
125
+ break;
126
+ }
127
+ await new Promise((r) => setTimeout(r, 500));
128
+ }
109
129
  if (!ready) {
110
130
  spinner.fail(t('lifecycle.apiTimeout120', { url: serverUrl }));
111
131
  return 1;