@fecommunity/reactpress 3.7.0 → 4.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (406) hide show
  1. package/bin/reactpress-cli-shim.js +2 -6
  2. package/bin/reactpress-theme-client.js +2 -0
  3. package/bin/reactpress.js +1 -380
  4. package/out/.source-fingerprint-cli +1 -0
  5. package/out/bin/reactpress-cli-shim.d.ts +3 -0
  6. package/out/bin/reactpress-cli-shim.d.ts.map +1 -0
  7. package/out/bin/reactpress-cli-shim.js +28 -0
  8. package/out/bin/reactpress-cli-shim.js.map +1 -0
  9. package/out/bin/reactpress-theme-client.d.ts +3 -0
  10. package/out/bin/reactpress-theme-client.d.ts.map +1 -0
  11. package/out/bin/reactpress-theme-client.js +113 -0
  12. package/out/bin/reactpress-theme-client.js.map +1 -0
  13. package/out/bin/reactpress.d.ts +3 -0
  14. package/out/bin/reactpress.d.ts.map +1 -0
  15. package/out/bin/reactpress.js +534 -0
  16. package/out/bin/reactpress.js.map +1 -0
  17. package/out/core/services/config.d.ts +12 -0
  18. package/out/core/services/config.d.ts.map +1 -0
  19. package/out/core/services/config.js +137 -0
  20. package/out/core/services/config.js.map +1 -0
  21. package/out/core/services/database/index.d.ts +17 -0
  22. package/out/core/services/database/index.d.ts.map +1 -0
  23. package/out/core/services/database/index.js +242 -0
  24. package/out/core/services/database/index.js.map +1 -0
  25. package/out/core/services/database/mysql.d.ts +14 -0
  26. package/out/core/services/database/mysql.d.ts.map +1 -0
  27. package/out/core/services/database/mysql.js +82 -0
  28. package/out/core/services/database/mysql.js.map +1 -0
  29. package/out/core/services/database/profile.d.ts +6 -0
  30. package/out/core/services/database/profile.d.ts.map +1 -0
  31. package/out/core/services/database/profile.js +60 -0
  32. package/out/core/services/database/profile.js.map +1 -0
  33. package/out/core/services/database/sqlite.d.ts +10 -0
  34. package/out/core/services/database/sqlite.d.ts.map +1 -0
  35. package/out/core/services/database/sqlite.js +73 -0
  36. package/out/core/services/database/sqlite.js.map +1 -0
  37. package/out/core/services/exec.d.ts +21 -0
  38. package/out/core/services/exec.d.ts.map +1 -0
  39. package/out/core/services/exec.js +56 -0
  40. package/out/core/services/exec.js.map +1 -0
  41. package/out/core/services/init.d.ts +11 -0
  42. package/out/core/services/init.d.ts.map +1 -0
  43. package/out/core/services/init.js +60 -0
  44. package/out/core/services/init.js.map +1 -0
  45. package/out/core/services/local-site.d.ts +24 -0
  46. package/out/core/services/local-site.d.ts.map +1 -0
  47. package/out/core/services/local-site.js +144 -0
  48. package/out/core/services/local-site.js.map +1 -0
  49. package/out/core/utils/cli-context.d.ts +3 -0
  50. package/out/core/utils/cli-context.d.ts.map +1 -0
  51. package/out/core/utils/cli-context.js +12 -0
  52. package/out/core/utils/cli-context.js.map +1 -0
  53. package/out/core/utils/paths.d.ts +20 -0
  54. package/out/core/utils/paths.d.ts.map +1 -0
  55. package/out/core/utils/paths.js +34 -0
  56. package/out/core/utils/paths.js.map +1 -0
  57. package/out/core/utils/platform.d.ts +7 -0
  58. package/out/core/utils/platform.d.ts.map +1 -0
  59. package/out/core/utils/platform.js +28 -0
  60. package/out/core/utils/platform.js.map +1 -0
  61. package/out/core/utils/port.d.ts +4 -0
  62. package/out/core/utils/port.d.ts.map +1 -0
  63. package/out/core/utils/port.js +32 -0
  64. package/out/core/utils/port.js.map +1 -0
  65. package/out/lib/api-dev-runner.d.ts +3 -0
  66. package/out/lib/api-dev-runner.d.ts.map +1 -0
  67. package/{lib → out/lib}/api-dev-runner.js +4 -1
  68. package/out/lib/api-dev-runner.js.map +1 -0
  69. package/out/lib/api-dev.d.ts +2 -0
  70. package/out/lib/api-dev.d.ts.map +1 -0
  71. package/out/lib/api-dev.js +101 -0
  72. package/out/lib/api-dev.js.map +1 -0
  73. package/out/lib/bootstrap.d.ts +18 -0
  74. package/out/lib/bootstrap.d.ts.map +1 -0
  75. package/out/lib/bootstrap.js +93 -0
  76. package/out/lib/bootstrap.js.map +1 -0
  77. package/out/lib/build.d.ts +2 -0
  78. package/out/lib/build.d.ts.map +1 -0
  79. package/out/lib/build.js +191 -0
  80. package/out/lib/build.js.map +1 -0
  81. package/out/lib/db-backup.d.ts +2 -0
  82. package/out/lib/db-backup.d.ts.map +1 -0
  83. package/out/lib/db-backup.js +68 -0
  84. package/out/lib/db-backup.js.map +1 -0
  85. package/out/lib/dev-banner.d.ts +2 -0
  86. package/out/lib/dev-banner.d.ts.map +1 -0
  87. package/out/lib/dev-banner.js +102 -0
  88. package/out/lib/dev-banner.js.map +1 -0
  89. package/out/lib/dev-child-io.d.ts +2 -0
  90. package/out/lib/dev-child-io.d.ts.map +1 -0
  91. package/out/lib/dev-child-io.js +80 -0
  92. package/out/lib/dev-child-io.js.map +1 -0
  93. package/out/lib/dev-log.d.ts +2 -0
  94. package/out/lib/dev-log.d.ts.map +1 -0
  95. package/out/lib/dev-log.js +64 -0
  96. package/out/lib/dev-log.js.map +1 -0
  97. package/out/lib/dev-session.d.ts +2 -0
  98. package/out/lib/dev-session.d.ts.map +1 -0
  99. package/out/lib/dev-session.js +95 -0
  100. package/out/lib/dev-session.js.map +1 -0
  101. package/out/lib/dev.d.ts +2 -0
  102. package/out/lib/dev.d.ts.map +1 -0
  103. package/out/lib/dev.js +906 -0
  104. package/out/lib/dev.js.map +1 -0
  105. package/out/lib/docker.d.ts +2 -0
  106. package/out/lib/docker.d.ts.map +1 -0
  107. package/out/lib/docker.js +398 -0
  108. package/out/lib/docker.js.map +1 -0
  109. package/out/lib/doctor.d.ts +2 -0
  110. package/out/lib/doctor.d.ts.map +1 -0
  111. package/out/lib/doctor.js +260 -0
  112. package/out/lib/doctor.js.map +1 -0
  113. package/out/lib/health-parse.d.ts +5 -0
  114. package/out/lib/health-parse.d.ts.map +1 -0
  115. package/out/lib/health-parse.js +36 -0
  116. package/out/lib/health-parse.js.map +1 -0
  117. package/out/lib/health-parse.test.d.ts +2 -0
  118. package/out/lib/health-parse.test.d.ts.map +1 -0
  119. package/out/lib/health-parse.test.js +19 -0
  120. package/out/lib/health-parse.test.js.map +1 -0
  121. package/out/lib/http.d.ts +2 -0
  122. package/out/lib/http.d.ts.map +1 -0
  123. package/out/lib/http.js +234 -0
  124. package/out/lib/http.js.map +1 -0
  125. package/out/lib/i18n/index.d.ts +2 -0
  126. package/out/lib/i18n/index.d.ts.map +1 -0
  127. package/out/lib/i18n/index.js +29 -0
  128. package/out/lib/i18n/index.js.map +1 -0
  129. package/out/lib/i18n/strings.d.ts +2 -0
  130. package/out/lib/i18n/strings.d.ts.map +1 -0
  131. package/out/lib/i18n/strings.js +1140 -0
  132. package/out/lib/i18n/strings.js.map +1 -0
  133. package/out/lib/lifecycle.d.ts +2 -0
  134. package/out/lib/lifecycle.d.ts.map +1 -0
  135. package/out/lib/lifecycle.js +169 -0
  136. package/out/lib/lifecycle.js.map +1 -0
  137. package/out/lib/nginx.d.ts +2 -0
  138. package/out/lib/nginx.d.ts.map +1 -0
  139. package/out/lib/nginx.js +618 -0
  140. package/out/lib/nginx.js.map +1 -0
  141. package/out/lib/paths.d.ts +2 -0
  142. package/out/lib/paths.d.ts.map +1 -0
  143. package/out/lib/paths.js +106 -0
  144. package/out/lib/paths.js.map +1 -0
  145. package/out/lib/plugin-build.d.ts +2 -0
  146. package/out/lib/plugin-build.d.ts.map +1 -0
  147. package/out/lib/plugin-build.js +104 -0
  148. package/out/lib/plugin-build.js.map +1 -0
  149. package/out/lib/plugin-cli.d.ts +2 -0
  150. package/out/lib/plugin-cli.d.ts.map +1 -0
  151. package/out/lib/plugin-cli.js +142 -0
  152. package/out/lib/plugin-cli.js.map +1 -0
  153. package/out/lib/pm2.d.ts +2 -0
  154. package/out/lib/pm2.d.ts.map +1 -0
  155. package/out/lib/pm2.js +32 -0
  156. package/out/lib/pm2.js.map +1 -0
  157. package/out/lib/ports.d.ts +2 -0
  158. package/out/lib/ports.d.ts.map +1 -0
  159. package/out/lib/ports.js +394 -0
  160. package/out/lib/ports.js.map +1 -0
  161. package/out/lib/process.d.ts +2 -0
  162. package/out/lib/process.d.ts.map +1 -0
  163. package/out/lib/process.js +47 -0
  164. package/out/lib/process.js.map +1 -0
  165. package/out/lib/prod-memory.d.ts +6 -0
  166. package/out/lib/prod-memory.d.ts.map +1 -0
  167. package/out/lib/prod-memory.js +57 -0
  168. package/out/lib/prod-memory.js.map +1 -0
  169. package/out/lib/project-type.d.ts +2 -0
  170. package/out/lib/project-type.d.ts.map +1 -0
  171. package/out/lib/project-type.js +77 -0
  172. package/out/lib/project-type.js.map +1 -0
  173. package/out/lib/publish.d.ts +3 -0
  174. package/out/lib/publish.d.ts.map +1 -0
  175. package/out/lib/publish.js +388 -0
  176. package/out/lib/publish.js.map +1 -0
  177. package/out/lib/remote-dev.d.ts +2 -0
  178. package/out/lib/remote-dev.d.ts.map +1 -0
  179. package/out/lib/remote-dev.js +158 -0
  180. package/out/lib/remote-dev.js.map +1 -0
  181. package/out/lib/root.d.ts +2 -0
  182. package/out/lib/root.d.ts.map +1 -0
  183. package/out/lib/root.js +85 -0
  184. package/out/lib/root.js.map +1 -0
  185. package/out/lib/spawn.d.ts +2 -0
  186. package/out/lib/spawn.d.ts.map +1 -0
  187. package/out/lib/spawn.js +96 -0
  188. package/out/lib/spawn.js.map +1 -0
  189. package/out/lib/status.d.ts +2 -0
  190. package/out/lib/status.d.ts.map +1 -0
  191. package/out/lib/status.js +78 -0
  192. package/out/lib/status.js.map +1 -0
  193. package/out/lib/theme-catalog.d.ts +2 -0
  194. package/out/lib/theme-catalog.d.ts.map +1 -0
  195. package/out/lib/theme-catalog.js +6 -0
  196. package/out/lib/theme-catalog.js.map +1 -0
  197. package/out/lib/theme-cli.d.ts +2 -0
  198. package/out/lib/theme-cli.d.ts.map +1 -0
  199. package/out/lib/theme-cli.js +50 -0
  200. package/out/lib/theme-cli.js.map +1 -0
  201. package/out/lib/theme-dev.d.ts +2 -0
  202. package/out/lib/theme-dev.d.ts.map +1 -0
  203. package/out/lib/theme-dev.js +759 -0
  204. package/out/lib/theme-dev.js.map +1 -0
  205. package/out/lib/theme-env.d.ts +2 -0
  206. package/out/lib/theme-env.d.ts.map +1 -0
  207. package/out/lib/theme-env.js +101 -0
  208. package/out/lib/theme-env.js.map +1 -0
  209. package/out/lib/theme-install.d.ts +2 -0
  210. package/out/lib/theme-install.d.ts.map +1 -0
  211. package/out/lib/theme-install.js +363 -0
  212. package/out/lib/theme-install.js.map +1 -0
  213. package/out/lib/theme-lock.d.ts +2 -0
  214. package/out/lib/theme-lock.d.ts.map +1 -0
  215. package/out/lib/theme-lock.js +70 -0
  216. package/out/lib/theme-lock.js.map +1 -0
  217. package/out/lib/theme-paths.d.ts +2 -0
  218. package/out/lib/theme-paths.d.ts.map +1 -0
  219. package/out/lib/theme-paths.js +73 -0
  220. package/out/lib/theme-paths.js.map +1 -0
  221. package/out/lib/theme-placeholder-cover.d.ts +13 -0
  222. package/out/lib/theme-placeholder-cover.d.ts.map +1 -0
  223. package/out/lib/theme-placeholder-cover.js +95 -0
  224. package/out/lib/theme-placeholder-cover.js.map +1 -0
  225. package/out/lib/theme-preview-frame.d.ts +2 -0
  226. package/out/lib/theme-preview-frame.d.ts.map +1 -0
  227. package/out/lib/theme-preview-frame.js +107 -0
  228. package/out/lib/theme-preview-frame.js.map +1 -0
  229. package/out/lib/theme-preview-pool.d.ts +2 -0
  230. package/out/lib/theme-preview-pool.d.ts.map +1 -0
  231. package/out/lib/theme-preview-pool.js +484 -0
  232. package/out/lib/theme-preview-pool.js.map +1 -0
  233. package/out/lib/theme-preview-proxy.d.ts +2 -0
  234. package/out/lib/theme-preview-proxy.d.ts.map +1 -0
  235. package/out/lib/theme-preview-proxy.js +101 -0
  236. package/out/lib/theme-preview-proxy.js.map +1 -0
  237. package/out/lib/theme-prod.d.ts +2 -0
  238. package/out/lib/theme-prod.d.ts.map +1 -0
  239. package/out/lib/theme-prod.js +400 -0
  240. package/out/lib/theme-prod.js.map +1 -0
  241. package/out/lib/theme-registry.d.ts +2 -0
  242. package/out/lib/theme-registry.d.ts.map +1 -0
  243. package/out/lib/theme-registry.js +135 -0
  244. package/out/lib/theme-registry.js.map +1 -0
  245. package/out/lib/theme-runtime.d.ts +2 -0
  246. package/out/lib/theme-runtime.d.ts.map +1 -0
  247. package/out/lib/theme-runtime.js +344 -0
  248. package/out/lib/theme-runtime.js.map +1 -0
  249. package/out/lib/theme-sources.d.ts +2 -0
  250. package/out/lib/theme-sources.d.ts.map +1 -0
  251. package/out/lib/theme-sources.js +347 -0
  252. package/out/lib/theme-sources.js.map +1 -0
  253. package/out/lib/theme-warmup.d.ts +2 -0
  254. package/out/lib/theme-warmup.d.ts.map +1 -0
  255. package/out/lib/theme-warmup.js +167 -0
  256. package/out/lib/theme-warmup.js.map +1 -0
  257. package/out/lib/toolkit-build.d.ts +2 -0
  258. package/out/lib/toolkit-build.d.ts.map +1 -0
  259. package/out/lib/toolkit-build.js +57 -0
  260. package/out/lib/toolkit-build.js.map +1 -0
  261. package/out/types/config.d.ts +57 -0
  262. package/out/types/config.d.ts.map +1 -0
  263. package/out/types/config.js +3 -0
  264. package/out/types/config.js.map +1 -0
  265. package/out/ui/banner.d.ts +2 -0
  266. package/out/ui/banner.d.ts.map +1 -0
  267. package/out/ui/banner.js +358 -0
  268. package/out/ui/banner.js.map +1 -0
  269. package/out/ui/interactive.d.ts +2 -0
  270. package/out/ui/interactive.d.ts.map +1 -0
  271. package/out/ui/interactive.js +328 -0
  272. package/out/ui/interactive.js.map +1 -0
  273. package/out/ui/theme.d.ts +2 -0
  274. package/out/ui/theme.d.ts.map +1 -0
  275. package/out/ui/theme.js +250 -0
  276. package/out/ui/theme.js.map +1 -0
  277. package/package.json +13 -7
  278. package/server/dist/common/api-messages.d.ts +9 -0
  279. package/server/dist/common/api-messages.js +9 -0
  280. package/server/dist/common/api-messages.js.map +1 -1
  281. package/server/dist/database/typeorm-options.d.ts +3 -0
  282. package/server/dist/database/typeorm-options.js +60 -0
  283. package/server/dist/database/typeorm-options.js.map +1 -0
  284. package/server/dist/modules/api-key/api-key.controller.js.map +1 -1
  285. package/server/dist/modules/api-key/api-key.entity.js.map +1 -1
  286. package/server/dist/modules/api-key/api-key.guard.js +2 -3
  287. package/server/dist/modules/api-key/api-key.guard.js.map +1 -1
  288. package/server/dist/modules/api-key/api-key.module.js.map +1 -1
  289. package/server/dist/modules/api-key/api-key.service.js +1 -1
  290. package/server/dist/modules/api-key/api-key.service.js.map +1 -1
  291. package/server/dist/modules/article/article-revision.entity.js +3 -3
  292. package/server/dist/modules/article/article-revision.entity.js.map +1 -1
  293. package/server/dist/modules/article/article-slug.util.d.ts +2 -0
  294. package/server/dist/modules/article/article-slug.util.js +19 -0
  295. package/server/dist/modules/article/article-slug.util.js.map +1 -0
  296. package/server/dist/modules/article/scheduled-publish.service.js.map +1 -1
  297. package/server/dist/modules/bootstrap/bootstrap.constants.d.ts +20 -0
  298. package/server/dist/modules/bootstrap/bootstrap.constants.js +171 -0
  299. package/server/dist/modules/bootstrap/bootstrap.constants.js.map +1 -0
  300. package/server/dist/modules/bootstrap/bootstrap.service.d.ts +22 -0
  301. package/server/dist/modules/bootstrap/bootstrap.service.js +183 -0
  302. package/server/dist/modules/bootstrap/bootstrap.service.js.map +1 -0
  303. package/server/dist/modules/bootstrap/install-locale.d.ts +2 -0
  304. package/server/dist/modules/bootstrap/install-locale.js +11 -0
  305. package/server/dist/modules/bootstrap/install-locale.js.map +1 -0
  306. package/server/dist/modules/extension/extension.module.d.ts +9 -0
  307. package/server/dist/modules/extension/extension.module.js +50 -0
  308. package/server/dist/modules/extension/extension.module.js.map +1 -0
  309. package/server/dist/modules/extension/plugin-loader.service.d.ts +12 -0
  310. package/server/dist/modules/extension/plugin-loader.service.js +96 -0
  311. package/server/dist/modules/extension/plugin-loader.service.js.map +1 -0
  312. package/server/dist/modules/extension/plugin-registry.bridge.d.ts +3 -0
  313. package/server/dist/modules/extension/plugin-registry.bridge.js +44 -0
  314. package/server/dist/modules/extension/plugin-registry.bridge.js.map +1 -0
  315. package/server/dist/modules/extension/plugin.controller.d.ts +22 -0
  316. package/server/dist/modules/extension/plugin.controller.js +155 -0
  317. package/server/dist/modules/extension/plugin.controller.js.map +1 -0
  318. package/server/dist/modules/extension/plugin.service.d.ts +52 -0
  319. package/server/dist/modules/extension/plugin.service.js +391 -0
  320. package/server/dist/modules/extension/plugin.service.js.map +1 -0
  321. package/server/dist/modules/extension/preview-draft.store.d.ts +13 -0
  322. package/server/dist/modules/extension/preview-draft.store.js +41 -0
  323. package/server/dist/modules/extension/preview-draft.store.js.map +1 -0
  324. package/server/dist/modules/extension/theme-registry.bridge.d.ts +56 -0
  325. package/server/dist/modules/extension/theme-registry.bridge.js +46 -0
  326. package/server/dist/modules/extension/theme-registry.bridge.js.map +1 -0
  327. package/server/dist/modules/extension/theme.controller.d.ts +66 -0
  328. package/server/dist/modules/extension/theme.controller.js +301 -0
  329. package/server/dist/modules/extension/theme.controller.js.map +1 -0
  330. package/server/dist/modules/extension/theme.service.d.ts +140 -0
  331. package/server/dist/modules/extension/theme.service.js +1039 -0
  332. package/server/dist/modules/extension/theme.service.js.map +1 -0
  333. package/server/dist/modules/file/file-optimization.controller.d.ts +12 -0
  334. package/server/dist/modules/file/file-optimization.controller.js +79 -0
  335. package/server/dist/modules/file/file-optimization.controller.js.map +1 -0
  336. package/server/dist/modules/file/file-optimization.service.d.ts +36 -0
  337. package/server/dist/modules/file/file-optimization.service.js +385 -0
  338. package/server/dist/modules/file/file-optimization.service.js.map +1 -0
  339. package/server/dist/modules/file/file-optimization.types.d.ts +66 -0
  340. package/server/dist/modules/file/file-optimization.types.js +5 -0
  341. package/server/dist/modules/file/file-optimization.types.js.map +1 -0
  342. package/server/dist/modules/file/image-optimizer-plugin.guard.d.ts +7 -0
  343. package/server/dist/modules/file/image-optimizer-plugin.guard.js +33 -0
  344. package/server/dist/modules/file/image-optimizer-plugin.guard.js.map +1 -0
  345. package/server/dist/modules/health/health.controller.js +2 -4
  346. package/server/dist/modules/health/health.controller.js.map +1 -1
  347. package/server/dist/modules/health/health.module.js.map +1 -1
  348. package/server/dist/modules/hook/hook.module.d.ts +2 -0
  349. package/server/dist/modules/hook/hook.module.js +22 -0
  350. package/server/dist/modules/hook/hook.module.js.map +1 -0
  351. package/server/dist/modules/hook/hook.service.d.ts +26 -0
  352. package/server/dist/modules/hook/hook.service.js +105 -0
  353. package/server/dist/modules/hook/hook.service.js.map +1 -0
  354. package/server/dist/modules/webhook/webhook.controller.js.map +1 -1
  355. package/server/dist/modules/webhook/webhook.entity.js.map +1 -1
  356. package/server/dist/modules/webhook/webhook.module.js.map +1 -1
  357. package/server/dist/modules/webhook/webhook.service.d.ts +1 -1
  358. package/server/dist/modules/webhook/webhook.service.js +5 -2
  359. package/server/dist/modules/webhook/webhook.service.js.map +1 -1
  360. package/server/dist/public/uploads/2026-05-30/QR3X4UZQ93ZTUPGXCFA9II..png +0 -0
  361. package/server/dist/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8.webp +0 -0
  362. package/server/dist/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_medium.webp +0 -0
  363. package/server/dist/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_thumb.webp +0 -0
  364. package/server/dist/public/uploads/2026-05-31/I2SZC0ONA7CF31UM46MN56..jpg +0 -0
  365. package/server/dist/tsconfig.tsbuildinfo +1 -0
  366. package/server/dist/utils/image-processor.util.d.ts +23 -0
  367. package/server/dist/utils/image-processor.util.js +88 -0
  368. package/server/dist/utils/image-processor.util.js.map +1 -0
  369. package/server/dist/utils/local-api-quiet.util.d.ts +1 -0
  370. package/server/dist/utils/local-api-quiet.util.js +8 -0
  371. package/server/dist/utils/local-api-quiet.util.js.map +1 -0
  372. package/server/dist/utils/project-root.util.d.ts +2 -0
  373. package/server/dist/utils/project-root.util.js +42 -0
  374. package/server/dist/utils/project-root.util.js.map +1 -0
  375. package/server/public/uploads/2026-05-30/QR3X4UZQ93ZTUPGXCFA9II..png +0 -0
  376. package/server/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8.webp +0 -0
  377. package/server/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_medium.webp +0 -0
  378. package/server/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_thumb.webp +0 -0
  379. package/server/public/uploads/2026-05-31/I2SZC0ONA7CF31UM46MN56..jpg +0 -0
  380. package/templates/config.local.json +13 -0
  381. package/templates/env.local.default +10 -0
  382. package/templates/theme-catalog.json +27 -0
  383. package/lib/api-dev.js +0 -89
  384. package/lib/bootstrap.js +0 -114
  385. package/lib/build.js +0 -162
  386. package/lib/db-backup.js +0 -67
  387. package/lib/dev-banner.js +0 -72
  388. package/lib/dev.js +0 -141
  389. package/lib/docker.js +0 -275
  390. package/lib/doctor.js +0 -266
  391. package/lib/http.js +0 -182
  392. package/lib/i18n/index.js +0 -32
  393. package/lib/i18n/strings.js +0 -846
  394. package/lib/lifecycle.js +0 -190
  395. package/lib/nginx.js +0 -342
  396. package/lib/paths.js +0 -108
  397. package/lib/pm2.js +0 -32
  398. package/lib/process.js +0 -45
  399. package/lib/project-type.js +0 -72
  400. package/lib/publish.js +0 -968
  401. package/lib/root.js +0 -88
  402. package/lib/spawn.js +0 -92
  403. package/lib/status.js +0 -132
  404. package/ui/banner.js +0 -441
  405. package/ui/interactive.js +0 -380
  406. package/ui/theme.js +0 -265
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ // @ts-nocheck
2
5
  const { runApiDev } = require('./api-dev');
3
6
  const { ensureOriginalCwd } = require('./root');
4
-
5
7
  ensureOriginalCwd();
6
8
  runApiDev();
9
+ //# sourceMappingURL=api-dev-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-dev-runner.js","sourceRoot":"","sources":["../../src/lib/api-dev-runner.ts"],"names":[],"mappings":";;;AACA,cAAc;AACd,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAC3C,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEhD,iBAAiB,EAAE,CAAC;AACpB,SAAS,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=api-dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-dev.d.ts","sourceRoot":"","sources":["../../src/lib/api-dev.ts"],"names":[],"mappings":""}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
4
+ const { spawn } = require('child_process');
5
+ const path = require('path');
6
+ const { ensureProjectEnvironment } = require('./bootstrap');
7
+ const { getServerBin, getServerDir, isUsingMonorepoServer, canStartLocalApi, } = require('./paths');
8
+ const { stopApi } = require('./lifecycle');
9
+ const { ensureOriginalCwd } = require('./root');
10
+ const { t } = require('./i18n');
11
+ const { ensureApiPortFree } = require('./ports');
12
+ const { ensureDevDatabase } = require('./docker');
13
+ let apiChild;
14
+ function stopApiDev(projectRoot) {
15
+ if (apiChild && !apiChild.killed) {
16
+ apiChild.kill('SIGTERM');
17
+ }
18
+ if (!isUsingMonorepoServer(projectRoot)) {
19
+ stopApi(projectRoot);
20
+ }
21
+ }
22
+ function startApiDev(projectRoot) {
23
+ if (isUsingMonorepoServer(projectRoot)) {
24
+ console.log(t('apiDev.modeServer'));
25
+ apiChild = spawn('pnpm', ['run', '--dir', './server', 'dev'], {
26
+ cwd: projectRoot,
27
+ stdio: 'inherit',
28
+ shell: true,
29
+ env: {
30
+ ...process.env,
31
+ REACTPRESS_ORIGINAL_CWD: projectRoot,
32
+ },
33
+ });
34
+ }
35
+ else if (canStartLocalApi(projectRoot)) {
36
+ console.log(t('apiDev.modeBundled'));
37
+ apiChild = spawn(process.execPath, [getServerBin(projectRoot)], {
38
+ cwd: getServerDir(projectRoot),
39
+ stdio: 'inherit',
40
+ env: {
41
+ ...process.env,
42
+ REACTPRESS_ORIGINAL_CWD: projectRoot,
43
+ },
44
+ });
45
+ }
46
+ else {
47
+ console.error(t('lifecycle.noServerAvailable'));
48
+ process.exit(1);
49
+ }
50
+ if (apiChild) {
51
+ apiChild.on('close', (code) => {
52
+ process.exit(code ?? 0);
53
+ });
54
+ console.log(t('apiDev.ctrlCHint'));
55
+ console.log(t('apiDev.stopHint'));
56
+ }
57
+ }
58
+ async function runApiDev(projectRoot = ensureOriginalCwd()) {
59
+ const skipEnvBootstrap = process.env.REACTPRESS_DEV_DB_READY === '1';
60
+ if (!skipEnvBootstrap) {
61
+ try {
62
+ await ensureProjectEnvironment(projectRoot);
63
+ }
64
+ catch (err) {
65
+ console.error(t('dev.envFailed'), err.message || err);
66
+ process.exit(1);
67
+ }
68
+ try {
69
+ await ensureDevDatabase(projectRoot);
70
+ }
71
+ catch (err) {
72
+ console.error(t('dev.dbEnsureFailed', { message: err.message || err }));
73
+ process.exit(1);
74
+ }
75
+ }
76
+ process.on('SIGINT', () => {
77
+ stopApiDev(projectRoot);
78
+ process.exit(0);
79
+ });
80
+ process.on('SIGTERM', () => {
81
+ stopApiDev(projectRoot);
82
+ process.exit(0);
83
+ });
84
+ if (process.env.REACTPRESS_DEV_PORTS_READY !== '1') {
85
+ const { reused, port: apiPort } = await ensureApiPortFree(projectRoot);
86
+ if (reused) {
87
+ console.log(t('dev.apiReusing', { port: apiPort }));
88
+ return;
89
+ }
90
+ }
91
+ startApiDev(projectRoot);
92
+ }
93
+ function getApiDevScriptPath() {
94
+ return path.join(__dirname, 'api-dev-runner.js');
95
+ }
96
+ module.exports = {
97
+ runApiDev,
98
+ stopApiDev,
99
+ getApiDevScriptPath,
100
+ };
101
+ //# sourceMappingURL=api-dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-dev.js","sourceRoot":"","sources":["../../src/lib/api-dev.ts"],"names":[],"mappings":";;AAAA,cAAc;AACd,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC5D,MAAM,EACJ,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,GACjB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACvB,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChD,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChC,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACjD,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAElD,IAAI,QAAQ,CAAC;AAEb,SAAS,UAAU,CAAC,WAAW;IAC7B,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,WAAW,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,WAAW;IAC9B,IAAI,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACpC,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;YAC5D,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;YACX,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,uBAAuB,EAAE,WAAW;aACrC;SACF,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACrC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,EAAE;YAC9D,GAAG,EAAE,YAAY,CAAC,WAAW,CAAC;YAC9B,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,uBAAuB,EAAE,WAAW;aACrC;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAC5B,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,WAAW,GAAG,iBAAiB,EAAE;IACxD,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,GAAG,CAAC;IAErE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,UAAU,CAAC,WAAW,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,UAAU,CAAC,WAAW,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,GAAG,EAAE,CAAC;QACnD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;IACH,CAAC;IAED,WAAW,CAAC,WAAW,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IACf,SAAS;IACT,UAAU;IACV,mBAAmB;CACpB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { isMonorepoCheckout } from './root';
2
+ export declare function initMonorepoProject(projectRoot: string, { force, local }?: {
3
+ force?: boolean;
4
+ local?: boolean;
5
+ }): Promise<{
6
+ ok: boolean;
7
+ projectRoot: string;
8
+ message: string;
9
+ }>;
10
+ export declare function ensureProjectEnvironment(projectRoot?: any, options?: {
11
+ skipDatabase?: boolean;
12
+ }): Promise<{
13
+ ok: boolean;
14
+ projectRoot: string;
15
+ message: string | null;
16
+ }>;
17
+ export { isMonorepoCheckout };
18
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/lib/bootstrap.ts"],"names":[],"mappings":"AASA,OAAO,EAAqB,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAQ/D,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,EAAE,KAAa,EAAE,KAAa,EAAE,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1E,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAmDhE;AAED,wBAAsB,wBAAwB,CAC5C,WAAW,MAAsB,EACjC,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GACvC,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAoCvE;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isMonorepoCheckout = void 0;
7
+ exports.initMonorepoProject = initMonorepoProject;
8
+ exports.ensureProjectEnvironment = ensureProjectEnvironment;
9
+ // @ts-nocheck
10
+ const node_fs_1 = __importDefault(require("node:fs"));
11
+ const node_path_1 = __importDefault(require("node:path"));
12
+ const cli_context_1 = require("../core/utils/cli-context");
13
+ const config_1 = require("../core/services/config");
14
+ const database_1 = require("../core/services/database");
15
+ const init_1 = require("../core/services/init");
16
+ const paths_1 = require("../core/utils/paths");
17
+ const root_1 = require("./root");
18
+ Object.defineProperty(exports, "isMonorepoCheckout", { enumerable: true, get: function () { return root_1.isMonorepoCheckout; } });
19
+ const i18n_1 = require("./i18n");
20
+ async function copyTemplateFile(src, dest) {
21
+ await node_fs_1.default.promises.mkdir(node_path_1.default.dirname(dest), { recursive: true });
22
+ await node_fs_1.default.promises.copyFile(src, dest);
23
+ }
24
+ async function initMonorepoProject(projectRoot, { force = false, local = false } = {}) {
25
+ if (local) {
26
+ return (0, init_1.initProject)({ directory: projectRoot, force, local: true });
27
+ }
28
+ const paths = (0, paths_1.getProjectPaths)(projectRoot);
29
+ const templatesDir = (0, paths_1.getTemplatesDir)();
30
+ if (node_fs_1.default.existsSync(paths.configPath) && !force) {
31
+ const config = await (0, config_1.loadConfig)(projectRoot);
32
+ await (0, database_1.ensureDatabaseHostPort)(projectRoot, undefined, config);
33
+ const dbResult = await (0, database_1.ensureDatabase)(projectRoot, config);
34
+ if (!dbResult.ok) {
35
+ return { ok: false, projectRoot, message: dbResult.message ?? (0, i18n_1.t)('bootstrap.dbPendingShort') };
36
+ }
37
+ return { ok: true, projectRoot, message: (0, i18n_1.t)('bootstrap.configReady') };
38
+ }
39
+ await node_fs_1.default.promises.mkdir(paths.reactpressDir, { recursive: true });
40
+ await copyTemplateFile(node_path_1.default.join(templatesDir, 'docker-compose.yml'), paths.dockerComposePath);
41
+ const config = JSON.parse(await node_fs_1.default.promises.readFile(node_path_1.default.join(templatesDir, 'config.default.json'), 'utf8'));
42
+ await (0, config_1.saveConfig)(projectRoot, config);
43
+ await (0, config_1.syncEnvFromConfig)(projectRoot, config);
44
+ if (!node_fs_1.default.existsSync(paths.envPath) || force) {
45
+ await copyTemplateFile(node_path_1.default.join(templatesDir, 'env.default'), paths.envPath);
46
+ await (0, config_1.syncEnvFromConfig)(projectRoot, config);
47
+ }
48
+ await (0, database_1.ensureDatabaseHostPort)(projectRoot, undefined, config);
49
+ const dbResult = await (0, database_1.ensureDatabase)(projectRoot, config);
50
+ if (!dbResult.ok) {
51
+ return {
52
+ ok: true,
53
+ projectRoot,
54
+ message: (0, i18n_1.t)('bootstrap.projectDbPending', { message: dbResult.message ?? '' }),
55
+ };
56
+ }
57
+ return {
58
+ ok: true,
59
+ projectRoot,
60
+ message: (0, i18n_1.t)('bootstrap.ready'),
61
+ };
62
+ }
63
+ async function ensureProjectEnvironment(projectRoot = (0, root_1.ensureOriginalCwd)(), options = {}) {
64
+ const root = node_path_1.default.resolve(projectRoot);
65
+ (0, cli_context_1.setProjectCwd)(root);
66
+ if (!(await (0, config_1.isReactPressProject)(root))) {
67
+ if ((0, root_1.isMonorepoCheckout)(root)) {
68
+ const result = await initMonorepoProject(root);
69
+ if (!result.ok) {
70
+ throw new Error(result.message || (0, i18n_1.t)('bootstrap.initFailed'));
71
+ }
72
+ return result;
73
+ }
74
+ const result = await (0, init_1.initProject)({ directory: root, force: false });
75
+ if (!result.ok) {
76
+ throw new Error(result.message || (0, i18n_1.t)('bootstrap.cliInitFailed'));
77
+ }
78
+ return result;
79
+ }
80
+ const config = await (0, config_1.loadConfig)(root);
81
+ if (options.skipDatabase) {
82
+ return { ok: true, projectRoot: root, message: null };
83
+ }
84
+ await (0, database_1.ensureDatabaseHostPort)(root, undefined, config);
85
+ const dbResult = await (0, database_1.ensureDatabase)(root, config);
86
+ if (!dbResult.ok) {
87
+ throw new Error((0, i18n_1.t)('bootstrap.dbNotReady', {
88
+ message: dbResult.message || (0, i18n_1.t)('bootstrap.dbPendingShort'),
89
+ }));
90
+ }
91
+ return { ok: true, projectRoot: root, message: (0, i18n_1.t)('bootstrap.dbReady') };
92
+ }
93
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/lib/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/lib/build.ts"],"names":[],"mappings":""}
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+ const ora = require('ora');
7
+ const { brand, icon, ok, warn, label, chip } = require('../ui/theme');
8
+ const { runSync } = require('./spawn');
9
+ const { ensureOriginalCwd } = require('./root');
10
+ const { hasWeb } = require('./project-type');
11
+ const { t } = require('./i18n');
12
+ const { shouldBuildToolkit } = require('./toolkit-build');
13
+ const { hasUsableProductionBuild, readActiveThemeBuildState } = require('./theme-prod');
14
+ const { resolveBuildNodeEnv } = require('./prod-memory');
15
+ const FORBIDDEN_SCRIPTS = new Set(['build']);
16
+ /** @type {Record<string, { script: string, labelKey: string }[]>} */
17
+ const BUILD_STEPS = {
18
+ toolkit: [{ script: 'build:toolkit', labelKey: 'build.label.toolkit' }],
19
+ plugins: [{ script: 'build:plugins', labelKey: 'build.label.plugins' }],
20
+ server: [{ script: 'build:server', labelKey: 'build.label.server' }],
21
+ web: [{ script: 'build:web', labelKey: 'build.label.web' }],
22
+ theme: [{ script: 'build:theme', labelKey: 'build.label.theme' }],
23
+ docs: [{ script: 'build:docs', labelKey: 'build.label.docs' }],
24
+ };
25
+ const TARGETS = [...Object.keys(BUILD_STEPS), 'all'];
26
+ function getBuildSteps(target, projectRoot) {
27
+ if (target !== 'all') {
28
+ return BUILD_STEPS[target];
29
+ }
30
+ const steps = [
31
+ { script: 'build:toolkit', labelKey: 'build.label.toolkit' },
32
+ { script: 'build:plugins', labelKey: 'build.label.plugins' },
33
+ { script: 'build:server', labelKey: 'build.label.server' },
34
+ ];
35
+ if (hasWeb(projectRoot)) {
36
+ steps.push({ script: 'build:web', labelKey: 'build.label.web' });
37
+ }
38
+ steps.push({ script: 'build:theme', labelKey: 'build.label.theme' });
39
+ return steps;
40
+ }
41
+ const buildChildEnv = resolveBuildNodeEnv({ REACTPRESS_BUILD_ACTIVE: '1' });
42
+ function readPackageScripts(packageJsonPath) {
43
+ try {
44
+ const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
45
+ return pkg.scripts || {};
46
+ }
47
+ catch {
48
+ return {};
49
+ }
50
+ }
51
+ /** Prefer workspace package scripts over root package.json aliases. */
52
+ function resolveBuildInvocation(script, projectRoot) {
53
+ const root = path.resolve(projectRoot);
54
+ if (script === 'build:toolkit') {
55
+ const toolkitDir = path.join(root, 'toolkit');
56
+ if (fs.existsSync(path.join(toolkitDir, 'package.json'))) {
57
+ return { command: 'pnpm', args: ['run', 'build'], cwd: toolkitDir };
58
+ }
59
+ const rootScripts = readPackageScripts(path.join(root, 'package.json'));
60
+ if (rootScripts['build:toolkit']) {
61
+ return { command: 'pnpm', args: ['run', 'build:toolkit'], cwd: root };
62
+ }
63
+ return null;
64
+ }
65
+ if (script === 'build:server') {
66
+ const serverDir = path.join(root, 'server');
67
+ if (fs.existsSync(path.join(serverDir, 'package.json'))) {
68
+ return { command: 'pnpm', args: ['run', 'build'], cwd: serverDir };
69
+ }
70
+ }
71
+ if (script === 'build:plugins') {
72
+ const pluginsDir = path.join(root, 'plugins');
73
+ if (fs.existsSync(path.join(pluginsDir, 'package.json'))) {
74
+ return { command: 'pnpm', args: ['run', 'build'], cwd: pluginsDir };
75
+ }
76
+ const rootScripts = readPackageScripts(path.join(root, 'package.json'));
77
+ if (rootScripts['build:plugins']) {
78
+ return { command: 'pnpm', args: ['run', 'build:plugins'], cwd: root };
79
+ }
80
+ }
81
+ if (script === 'build:web') {
82
+ const webDir = path.join(root, 'web');
83
+ if (fs.existsSync(path.join(webDir, 'package.json'))) {
84
+ return { command: 'pnpm', args: ['run', 'build'], cwd: webDir };
85
+ }
86
+ const rootScripts = readPackageScripts(path.join(root, 'package.json'));
87
+ if (rootScripts['build:web']) {
88
+ return { command: 'pnpm', args: ['run', 'build:web'], cwd: root };
89
+ }
90
+ return null;
91
+ }
92
+ if (script === 'build:theme') {
93
+ const { readActiveThemeManifest, resolveThemeDirectory } = require('./theme-runtime');
94
+ const { activeTheme } = readActiveThemeManifest(root);
95
+ const themeDir = resolveThemeDirectory(root, activeTheme);
96
+ if (themeDir && fs.existsSync(path.join(themeDir, 'package.json'))) {
97
+ return { command: 'pnpm', args: ['run', 'build'], cwd: themeDir };
98
+ }
99
+ }
100
+ if (script === 'build:docs') {
101
+ const docsDir = path.join(root, 'docs');
102
+ if (fs.existsSync(path.join(docsDir, 'package.json'))) {
103
+ return { command: 'pnpm', args: ['run', 'build'], cwd: docsDir };
104
+ }
105
+ }
106
+ const rootScripts = readPackageScripts(path.join(root, 'package.json'));
107
+ if (rootScripts[script]) {
108
+ return { command: 'pnpm', args: ['run', script], cwd: root };
109
+ }
110
+ return null;
111
+ }
112
+ function stepBadge(current, total) {
113
+ return chip(`${current}/${total}`, brand.primary);
114
+ }
115
+ async function runBuild(target = 'all', projectRoot = ensureOriginalCwd()) {
116
+ if (process.env.REACTPRESS_BUILD_ACTIVE === '1') {
117
+ throw new Error(t('build.recursive'));
118
+ }
119
+ const steps = getBuildSteps(target, projectRoot);
120
+ if (!steps) {
121
+ throw new Error(t('build.unknownTarget', {
122
+ target,
123
+ available: TARGETS.join(', '),
124
+ }));
125
+ }
126
+ const total = steps.length;
127
+ const buildStarted = Date.now();
128
+ console.log('');
129
+ if (total > 1) {
130
+ console.log(label(t('build.plan', { total })));
131
+ console.log('');
132
+ }
133
+ for (let i = 0; i < steps.length; i++) {
134
+ const { script, labelKey } = steps[i];
135
+ if (FORBIDDEN_SCRIPTS.has(script)) {
136
+ throw new Error(t('build.forbiddenScript', { script }));
137
+ }
138
+ const current = i + 1;
139
+ const stepLabel = t(labelKey);
140
+ const stepStarted = Date.now();
141
+ const badge = stepBadge(current, total);
142
+ if (script === 'build:toolkit' && !shouldBuildToolkit(projectRoot)) {
143
+ console.log(` ${badge} ${ok(t('build.stepSkippedFresh', { label: stepLabel }))}`);
144
+ continue;
145
+ }
146
+ if (script === 'build:theme') {
147
+ const themeState = readActiveThemeBuildState(projectRoot);
148
+ if (themeState &&
149
+ hasUsableProductionBuild(themeState.themeDir, themeState.activeTheme)) {
150
+ console.log(` ${badge} ${ok(t('build.stepSkippedReuse', { label: stepLabel, id: themeState.activeTheme }))}`);
151
+ continue;
152
+ }
153
+ }
154
+ const invocation = resolveBuildInvocation(script, projectRoot);
155
+ if (!invocation) {
156
+ console.log(` ${badge} ${warn(t('build.stepSkipped', { label: stepLabel }))}`);
157
+ continue;
158
+ }
159
+ const spinner = ora({
160
+ text: `${badge} ${t('build.step', { current, total, label: stepLabel })}`,
161
+ color: 'magenta',
162
+ spinner: 'dots',
163
+ }).start();
164
+ try {
165
+ runSync(invocation.command, invocation.args, {
166
+ cwd: invocation.cwd,
167
+ env: buildChildEnv,
168
+ });
169
+ }
170
+ catch (err) {
171
+ spinner.fail(`${badge} ${t('build.stepFailed', { current, total, label: stepLabel })}`);
172
+ throw err;
173
+ }
174
+ const seconds = ((Date.now() - stepStarted) / 1000).toFixed(1);
175
+ spinner.succeed(`${badge} ${ok(t('build.stepDone', { current, total, label: stepLabel, seconds }))}`);
176
+ }
177
+ if (total > 1) {
178
+ const totalSeconds = ((Date.now() - buildStarted) / 1000).toFixed(1);
179
+ console.log('');
180
+ console.log(` ${icon.spark} ${ok(t('build.done', { seconds: totalSeconds }))}`);
181
+ }
182
+ console.log('');
183
+ }
184
+ module.exports = {
185
+ runBuild,
186
+ TARGETS,
187
+ BUILD_STEPS,
188
+ getBuildSteps,
189
+ resolveBuildInvocation,
190
+ };
191
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/lib/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=db-backup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-backup.d.ts","sourceRoot":"","sources":["../../src/lib/db-backup.ts"],"names":[],"mappings":""}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+ const { execSync } = require('child_process');
7
+ const chalk = require('chalk');
8
+ const { t } = require('./i18n');
9
+ const { mysqldumpFromDbContainer } = require('./docker');
10
+ function isLocalDbHost(host) {
11
+ const h = String(host || '').toLowerCase();
12
+ return h === '127.0.0.1' || h === 'localhost' || h === '::1' || h === '';
13
+ }
14
+ function isMysqldumpNotFoundError(err) {
15
+ const msg = `${err && err.message ? err.message : ''}\n${err && err.stderr ? err.stderr : ''}`;
16
+ if (err && err.status === 127)
17
+ return true;
18
+ return /command not found|not recognized as an internal or external command/i.test(msg);
19
+ }
20
+ function parseEnv(projectRoot) {
21
+ const envPath = path.join(projectRoot, '.env');
22
+ const out = {};
23
+ try {
24
+ const content = fs.readFileSync(envPath, 'utf8');
25
+ for (const line of content.split('\n')) {
26
+ const m = line.match(/^([A-Z_]+)=(.*)$/);
27
+ if (m)
28
+ out[m[1]] = m[2].trim().replace(/^['"]|['"]$/g, '');
29
+ }
30
+ }
31
+ catch {
32
+ // ignore
33
+ }
34
+ return out;
35
+ }
36
+ async function runDbBackup(projectRoot, outputPath) {
37
+ const env = parseEnv(projectRoot);
38
+ const host = env.DB_HOST || '127.0.0.1';
39
+ const port = env.DB_PORT || '3306';
40
+ const user = env.DB_USER || 'root';
41
+ const password = env.DB_PASSWD || env.DB_PASSWORD || 'root';
42
+ const database = env.DB_DATABASE || 'reactpress';
43
+ const out = outputPath ||
44
+ path.join(projectRoot, `reactpress-backup-${new Date().toISOString().replace(/[:.]/g, '-')}.sql`);
45
+ const cmd = `mysqldump -h ${host} -P ${port} -u ${user} -p${password} ${database}`;
46
+ console.log(chalk.cyan('[reactpress]'), t('db.backup.to', { path: out }));
47
+ try {
48
+ const dump = execSync(cmd, { encoding: 'utf8', maxBuffer: 50 * 1024 * 1024 });
49
+ fs.writeFileSync(out, dump, 'utf8');
50
+ console.log(chalk.green('[reactpress]'), t('db.backup.done'));
51
+ return out;
52
+ }
53
+ catch (err) {
54
+ if (isMysqldumpNotFoundError(err) && isLocalDbHost(host)) {
55
+ const via = mysqldumpFromDbContainer(projectRoot, { user, password, database });
56
+ if (via.ok) {
57
+ console.log(chalk.cyan('[reactpress]'), t('db.backup.viaDocker'));
58
+ fs.writeFileSync(out, via.stdout, 'utf8');
59
+ console.log(chalk.green('[reactpress]'), t('db.backup.done'));
60
+ return out;
61
+ }
62
+ }
63
+ console.error(chalk.red('[reactpress]'), t('db.backup.fail'));
64
+ throw err;
65
+ }
66
+ }
67
+ module.exports = { runDbBackup };
68
+ //# sourceMappingURL=db-backup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-backup.js","sourceRoot":"","sources":["../../src/lib/db-backup.ts"],"names":[],"mappings":";;AAAA,cAAc;AACd,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/B,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChC,MAAM,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEzD,SAAS,aAAa,CAAC,IAAI;IACzB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAG;IACnC,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC/F,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,sEAAsE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,QAAQ,CAAC,WAAW;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACzC,IAAI,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,WAAW,EAAE,UAAU;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,IAAI,WAAW,CAAC;IACxC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC;IACnC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC;IACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC;IAC5D,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,IAAI,YAAY,CAAC;IACjD,MAAM,GAAG,GACP,UAAU;QACV,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEpG,MAAM,GAAG,GAAG,gBAAgB,IAAI,OAAO,IAAI,OAAO,IAAI,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;QAC9E,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC9D,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,wBAAwB,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,MAAM,GAAG,GAAG,wBAAwB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChF,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAClE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC9D,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC9D,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,OAAO,GAAG,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dev-banner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-banner.d.ts","sourceRoot":"","sources":["../../src/lib/dev-banner.ts"],"names":[],"mappings":""}