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