@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
@@ -0,0 +1,260 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
4
+ const fs = require('fs');
5
+ const net = require('net');
6
+ const path = require('path');
7
+ const { execSync } = require('child_process');
8
+ const ora = require('ora');
9
+ const { brand, icon, ok, warn, divider, sectionHeader, terminalWidth, gradientText, palette, } = require('../ui/theme');
10
+ const { getHealthUrl, checkHealth } = require('./http');
11
+ const { isDockerRunning } = require('./docker');
12
+ const { checkNginx } = require('./nginx');
13
+ const { envFileStatus } = require('./status');
14
+ const { t } = require('./i18n');
15
+ function checkNodeVersion() {
16
+ const major = parseInt(process.versions.node.split('.')[0], 10);
17
+ if (major >= 18) {
18
+ return { ok: true, message: `Node.js ${process.version}` };
19
+ }
20
+ return {
21
+ ok: false,
22
+ message: t('doctor.nodeBad', { version: process.version }),
23
+ fix: t('doctor.nodeFix'),
24
+ };
25
+ }
26
+ function checkDocker() {
27
+ if (isDockerRunning()) {
28
+ return { ok: true, message: t('doctor.dockerOk') };
29
+ }
30
+ return {
31
+ ok: false,
32
+ message: t('doctor.dockerBad'),
33
+ fix: t('doctor.dockerFix'),
34
+ };
35
+ }
36
+ function parseEnv(projectRoot) {
37
+ const envPath = path.join(projectRoot, '.env');
38
+ const out = {};
39
+ try {
40
+ const content = fs.readFileSync(envPath, 'utf8');
41
+ for (const line of content.split('\n')) {
42
+ const m = line.match(/^([A-Z_]+)=(.*)$/);
43
+ if (m)
44
+ out[m[1]] = m[2].trim().replace(/^['"]|['"]$/g, '');
45
+ }
46
+ }
47
+ catch {
48
+ // ignore
49
+ }
50
+ return out;
51
+ }
52
+ function checkPort(port, host = '127.0.0.1') {
53
+ return new Promise((resolve) => {
54
+ const socket = net.createConnection({ port, host }, () => {
55
+ socket.destroy();
56
+ resolve(true);
57
+ });
58
+ socket.on('error', () => resolve(false));
59
+ socket.setTimeout(1000, () => {
60
+ socket.destroy();
61
+ resolve(false);
62
+ });
63
+ });
64
+ }
65
+ async function checkPorts(projectRoot) {
66
+ const env = parseEnv(projectRoot);
67
+ const apiPort = parseInt(env.SERVER_PORT || '3002', 10);
68
+ const clientPort = parseInt(env.CLIENT_PORT || '3001', 10);
69
+ const healthUrl = getHealthUrl(projectRoot);
70
+ const apiHealth = await checkHealth(healthUrl);
71
+ if (apiHealth.ok) {
72
+ return {
73
+ ok: true,
74
+ message: t('doctor.portOk', { apiPort, clientPort }),
75
+ };
76
+ }
77
+ const [apiBusy, clientBusy] = await Promise.all([checkPort(apiPort), checkPort(clientPort)]);
78
+ const issues = [];
79
+ if (apiBusy)
80
+ issues.push(t('doctor.portApiBusy', { port: apiPort }));
81
+ if (clientBusy)
82
+ issues.push(t('doctor.portClientBusy', { port: clientPort }));
83
+ if (issues.length) {
84
+ return {
85
+ ok: false,
86
+ message: issues.join('; '),
87
+ fix: t('doctor.portFix'),
88
+ };
89
+ }
90
+ return {
91
+ ok: true,
92
+ message: t('doctor.portOk', { apiPort, clientPort }),
93
+ };
94
+ }
95
+ async function checkDatabase(projectRoot) {
96
+ const env = parseEnv(projectRoot);
97
+ const dbType = String(env.DB_TYPE || 'mysql').toLowerCase();
98
+ if (dbType === 'sqlite') {
99
+ const { probeSqliteDatabase } = require('../core/services/database/sqlite');
100
+ const result = await probeSqliteDatabase(projectRoot);
101
+ return {
102
+ ok: result.ok,
103
+ message: result.ok
104
+ ? t('doctor.dbSqliteOk', { detail: result.message ?? '' })
105
+ : t('doctor.dbSqliteBad', { error: result.message ?? '' }),
106
+ fix: result.ok ? undefined : t('doctor.dbSqliteFix'),
107
+ };
108
+ }
109
+ const host = env.DB_HOST || '127.0.0.1';
110
+ const port = parseInt(env.DB_PORT || '3306', 10);
111
+ const user = env.DB_USER || 'root';
112
+ const password = env.DB_PASSWD || env.DB_PASSWORD || 'root';
113
+ const database = env.DB_DATABASE || 'reactpress';
114
+ return new Promise((resolve) => {
115
+ let mysql;
116
+ try {
117
+ mysql = require('mysql2/promise');
118
+ }
119
+ catch {
120
+ try {
121
+ mysql = require(path.join(projectRoot, 'server/node_modules/mysql2/promise'));
122
+ }
123
+ catch {
124
+ resolve({
125
+ ok: false,
126
+ message: t('doctor.dbNoMysql2'),
127
+ fix: t('doctor.dbMysql2Fix'),
128
+ });
129
+ return;
130
+ }
131
+ }
132
+ mysql
133
+ .createConnection({ host, port, user, password, database, connectTimeout: 5000 })
134
+ .then(async (conn) => {
135
+ await conn.ping();
136
+ await conn.end();
137
+ resolve({
138
+ ok: true,
139
+ message: t('doctor.dbOk', { host, port, database }),
140
+ });
141
+ })
142
+ .catch((err) => {
143
+ resolve({
144
+ ok: false,
145
+ message: t('doctor.dbBad', { error: err.message }),
146
+ fix: t('doctor.dbFix'),
147
+ });
148
+ });
149
+ });
150
+ }
151
+ async function checkApiHealth(projectRoot) {
152
+ const healthUrl = getHealthUrl(projectRoot);
153
+ const result = await checkHealth(healthUrl);
154
+ if (result.ok) {
155
+ return { ok: true, message: t('doctor.apiOk', { url: healthUrl }) };
156
+ }
157
+ return {
158
+ ok: false,
159
+ message: t('doctor.apiBad', { url: healthUrl }),
160
+ fix: t('doctor.apiFix'),
161
+ };
162
+ }
163
+ function checkPnpm() {
164
+ try {
165
+ const v = execSync('pnpm -v', { encoding: 'utf8' }).trim();
166
+ return { ok: true, message: `pnpm ${v}` };
167
+ }
168
+ catch {
169
+ return {
170
+ ok: false,
171
+ message: t('doctor.pnpmBad'),
172
+ fix: t('doctor.pnpmFix'),
173
+ };
174
+ }
175
+ }
176
+ async function runCheckWithSpinner(name, run) {
177
+ const spinner = ora({
178
+ text: t('doctor.checking', { name }),
179
+ color: 'magenta',
180
+ spinner: 'dots',
181
+ }).start();
182
+ const result = await run();
183
+ if (result.ok) {
184
+ spinner.stop();
185
+ }
186
+ else {
187
+ spinner.stop();
188
+ }
189
+ return result;
190
+ }
191
+ async function runDoctor(projectRoot) {
192
+ const env = envFileStatus(projectRoot);
193
+ const checks = [
194
+ { name: 'Node.js', run: () => checkNodeVersion() },
195
+ { name: 'pnpm', run: () => checkPnpm() },
196
+ {
197
+ name: t('doctor.check.config'),
198
+ run: () => ({
199
+ ok: env.config,
200
+ message: env.config ? t('doctor.configOk') : t('doctor.configBad'),
201
+ fix: t('doctor.configFix'),
202
+ }),
203
+ },
204
+ {
205
+ name: t('doctor.check.env'),
206
+ run: () => ({
207
+ ok: env.env,
208
+ message: env.env ? t('doctor.envOk') : t('doctor.envBad'),
209
+ fix: t('doctor.envFix'),
210
+ }),
211
+ },
212
+ { name: 'Docker', run: () => checkDocker() },
213
+ { name: t('doctor.check.nginx'), run: () => checkNginx(projectRoot) },
214
+ { name: t('doctor.check.ports'), run: () => checkPorts(projectRoot) },
215
+ { name: t('doctor.check.database'), run: () => checkDatabase(projectRoot) },
216
+ { name: t('doctor.check.api'), run: () => checkApiHealth(projectRoot) },
217
+ ];
218
+ const w = Math.min(terminalWidth() - 4, 52);
219
+ const results = [];
220
+ const fixes = [];
221
+ console.log('');
222
+ console.log(` ${gradientText(t('doctor.title'), [palette.primary, palette.accent], { bold: true })} ${brand.dim(t('doctor.subtitle'))}`);
223
+ console.log(` ${brand.dim(t('doctor.project', { path: projectRoot }))}`);
224
+ console.log(` ${divider(w)}`);
225
+ for (const { name, run } of checks) {
226
+ const result = await runCheckWithSpinner(name, run);
227
+ results.push({ name, ...result });
228
+ const mark = result.ok ? icon.ok : icon.fail;
229
+ const msgColor = result.ok ? brand.dim : brand.warn;
230
+ console.log(` ${mark} ${brand.bold(name)} ${msgColor(result.message)}`);
231
+ if (!result.ok && result.fix) {
232
+ fixes.push({ name, fix: result.fix });
233
+ }
234
+ }
235
+ const passed = results.filter((r) => r.ok).length;
236
+ const failed = results.length - passed;
237
+ console.log(` ${divider(w)}`);
238
+ console.log(` ${brand.dim(t('doctor.summary', { passed, failed, total: results.length }))}`);
239
+ if (failed === 0) {
240
+ console.log(` ${ok(t('doctor.allPass'))}`);
241
+ }
242
+ else {
243
+ console.log(` ${warn(t('doctor.failed', { count: failed }))}`);
244
+ if (fixes.length) {
245
+ console.log('');
246
+ console.log(sectionHeader(t('doctor.fixesHeader')));
247
+ for (const { name, fix } of fixes) {
248
+ console.log(` ${brand.primary('→')} ${brand.dim(name)} ${brand.warn(fix)}`);
249
+ }
250
+ }
251
+ }
252
+ console.log('');
253
+ return failed === 0 ? 0 : 1;
254
+ }
255
+ module.exports = {
256
+ runDoctor,
257
+ checkNodeVersion,
258
+ checkDocker,
259
+ };
260
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/lib/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Parse `/api/health` JSON — supports raw Nest payload and TransformInterceptor wrapper.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=health-parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-parse.d.ts","sourceRoot":"","sources":["../../src/lib/health-parse.ts"],"names":[],"mappings":"AACA;;GAEG"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ // @ts-nocheck
3
+ /**
4
+ * Parse `/api/health` JSON — supports raw Nest payload and TransformInterceptor wrapper.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ function normalizeHealthPayload(body) {
8
+ if (!body || typeof body !== 'object')
9
+ return null;
10
+ if (body.data &&
11
+ typeof body.data === 'object' &&
12
+ (Object.prototype.hasOwnProperty.call(body.data, 'status') ||
13
+ Object.prototype.hasOwnProperty.call(body.data, 'database'))) {
14
+ return body.data;
15
+ }
16
+ return body;
17
+ }
18
+ function isHealthPayloadReady(payload) {
19
+ if (!payload || typeof payload !== 'object')
20
+ return false;
21
+ if (Object.prototype.hasOwnProperty.call(payload, 'database')) {
22
+ return payload.status === 'ok' && payload.database === 'up';
23
+ }
24
+ return payload.status === 'ok' || payload.status === 'OK';
25
+ }
26
+ function isHealthHttpReady(statusCode, body) {
27
+ if (statusCode !== 200)
28
+ return false;
29
+ return isHealthPayloadReady(normalizeHealthPayload(body));
30
+ }
31
+ module.exports = {
32
+ normalizeHealthPayload,
33
+ isHealthPayloadReady,
34
+ isHealthHttpReady,
35
+ };
36
+ //# sourceMappingURL=health-parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-parse.js","sourceRoot":"","sources":["../../src/lib/health-parse.ts"],"names":[],"mappings":";AAAA,cAAc;AACd;;GAEG;;AAEH,SAAS,sBAAsB,CAAC,IAAI;IAClC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,IACE,IAAI,CAAC,IAAI;QACT,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAC7B,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;YACxD,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAC9D,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAO;IACnC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1D,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QAC9D,OAAO,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC9D,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;AAC5D,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAU,EAAE,IAAI;IACzC,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,oBAAoB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IACf,sBAAsB;IACtB,oBAAoB;IACpB,iBAAiB;CAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=health-parse.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-parse.test.d.ts","sourceRoot":"","sources":["../../src/lib/health-parse.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
4
+ const assert = require('assert');
5
+ const { normalizeHealthPayload, isHealthPayloadReady, isHealthHttpReady, } = require('./health-parse');
6
+ assert.strictEqual(isHealthHttpReady(200, {
7
+ statusCode: 200,
8
+ success: true,
9
+ data: { status: 'ok', database: 'up', version: '3.0.0' },
10
+ }), true);
11
+ assert.strictEqual(isHealthHttpReady(200, { status: 'ok', database: 'up' }), true);
12
+ assert.strictEqual(isHealthHttpReady(200, {
13
+ statusCode: 200,
14
+ success: true,
15
+ data: { status: 'degraded', database: 'down' },
16
+ }), false);
17
+ assert.strictEqual(isHealthPayloadReady(normalizeHealthPayload({ status: 'ok', database: 'up' })), true);
18
+ console.log('health-parse.test.js: ok');
19
+ //# sourceMappingURL=health-parse.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-parse.test.js","sourceRoot":"","sources":["../../src/lib/health-parse.test.ts"],"names":[],"mappings":";;AAAA,cAAc;AACd,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,MAAM,EACJ,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,GAClB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE9B,MAAM,CAAC,WAAW,CAChB,iBAAiB,CAAC,GAAG,EAAE;IACrB,UAAU,EAAE,GAAG;IACf,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;CACzD,CAAC,EACF,IAAI,CACL,CAAC;AAEF,MAAM,CAAC,WAAW,CAChB,iBAAiB,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EACxD,IAAI,CACL,CAAC;AAEF,MAAM,CAAC,WAAW,CAChB,iBAAiB,CAAC,GAAG,EAAE;IACrB,UAAU,EAAE,GAAG;IACf,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE;CAC/C,CAAC,EACF,KAAK,CACN,CAAC;AAEF,MAAM,CAAC,WAAW,CAChB,oBAAoB,CAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAC9E,IAAI,CACL,CAAC;AAEF,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":""}
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
4
+ const fs = require('fs');
5
+ const http = require('http');
6
+ const path = require('path');
7
+ const { DEV_PORTS } = require('./ports');
8
+ const { normalizeHealthPayload, isHealthPayloadReady, isHealthHttpReady, } = require('./health-parse');
9
+ function loadServerSiteUrl(projectRoot) {
10
+ const envPath = path.join(projectRoot, '.env');
11
+ try {
12
+ const content = fs.readFileSync(envPath, 'utf8');
13
+ const match = content.match(/^SERVER_SITE_URL=(.+)$/m);
14
+ if (match) {
15
+ return match[1].trim().replace(/^['"]|['"]$/g, '');
16
+ }
17
+ }
18
+ catch {
19
+ // ignore
20
+ }
21
+ return 'http://localhost:3002';
22
+ }
23
+ function loadWebAdminUrl(projectRoot) {
24
+ const envPath = path.join(projectRoot, '.env');
25
+ try {
26
+ const content = fs.readFileSync(envPath, 'utf8');
27
+ const urlMatch = content.match(/^WEB_ADMIN_URL=(.+)$/m);
28
+ if (urlMatch) {
29
+ return urlMatch[1].trim().replace(/^['"]|['"]$/g, '');
30
+ }
31
+ const portMatch = content.match(/^WEB_ADMIN_PORT=(.+)$/m);
32
+ if (portMatch) {
33
+ const port = parseInt(portMatch[1].trim(), 10);
34
+ if (Number.isInteger(port) && port > 0) {
35
+ return `http://localhost:${port}`;
36
+ }
37
+ }
38
+ }
39
+ catch {
40
+ // ignore
41
+ }
42
+ return `http://localhost:${DEV_PORTS.ADMIN_WEB}`;
43
+ }
44
+ function loadClientSiteUrl(projectRoot) {
45
+ const envPath = path.join(projectRoot, '.env');
46
+ try {
47
+ const content = fs.readFileSync(envPath, 'utf8');
48
+ const match = content.match(/^CLIENT_SITE_URL=(.+)$/m);
49
+ if (match) {
50
+ return match[1].trim().replace(/^['"]|['"]$/g, '');
51
+ }
52
+ }
53
+ catch {
54
+ // ignore
55
+ }
56
+ return 'http://localhost:3001';
57
+ }
58
+ function getApiPrefix(projectRoot) {
59
+ const envPath = path.join(projectRoot, '.env');
60
+ try {
61
+ const content = fs.readFileSync(envPath, 'utf8');
62
+ const match = content.match(/^SERVER_API_PREFIX=(.+)$/m);
63
+ if (match) {
64
+ return match[1].trim().replace(/^['"]|['"]$/g, '');
65
+ }
66
+ }
67
+ catch {
68
+ // ignore
69
+ }
70
+ return '/api';
71
+ }
72
+ function getHealthUrl(projectRoot) {
73
+ const base = loadServerSiteUrl(projectRoot).replace(/\/$/, '');
74
+ const prefix = getApiPrefix(projectRoot).replace(/\/$/, '');
75
+ return `${base}${prefix}/health`;
76
+ }
77
+ /** Use IPv4 loopback for probes — `localhost` often resolves to `::1` while Nest binds IPv4. */
78
+ function parseProbeTarget(urlString) {
79
+ const parsed = new URL(urlString);
80
+ const host = parsed.hostname;
81
+ if (host === 'localhost' || host === '::1' || host === '[::1]') {
82
+ parsed.hostname = '127.0.0.1';
83
+ }
84
+ return parsed;
85
+ }
86
+ function normalizeProbeUrl(urlString) {
87
+ return parseProbeTarget(urlString).toString();
88
+ }
89
+ function probeHttp(url, timeoutMs = 3000) {
90
+ return new Promise((resolve) => {
91
+ let parsed;
92
+ try {
93
+ parsed = parseProbeTarget(url);
94
+ }
95
+ catch {
96
+ resolve({ ok: false, statusCode: 0, data: null });
97
+ return;
98
+ }
99
+ const port = parsed.port || (parsed.protocol === 'https:' ? 443 : 80);
100
+ const req = http.request({
101
+ hostname: parsed.hostname,
102
+ port,
103
+ family: 4,
104
+ path: parsed.pathname + (parsed.search || ''),
105
+ method: 'GET',
106
+ timeout: timeoutMs,
107
+ }, (res) => {
108
+ let body = '';
109
+ res.on('data', (chunk) => {
110
+ body += chunk;
111
+ });
112
+ res.on('end', () => {
113
+ const ok = res.statusCode === 200;
114
+ let data = null;
115
+ try {
116
+ data = JSON.parse(body);
117
+ }
118
+ catch {
119
+ // ignore
120
+ }
121
+ resolve({ ok, statusCode: res.statusCode, data });
122
+ });
123
+ });
124
+ req.on('timeout', () => {
125
+ req.destroy();
126
+ resolve({ ok: false, statusCode: 0, data: null });
127
+ });
128
+ req.on('error', () => resolve({ ok: false, statusCode: 0, data: null }));
129
+ req.end();
130
+ });
131
+ }
132
+ /**
133
+ * Health probe: prefers `/api/health` JSON; falls back to API prefix (e.g. Swagger)
134
+ * for older bundled servers that omit the health route.
135
+ */
136
+ async function checkHealth(url, timeoutMs = 3000) {
137
+ const primary = await probeHttp(normalizeProbeUrl(url), timeoutMs);
138
+ const payload = normalizeHealthPayload(primary.data);
139
+ if (isHealthHttpReady(primary.statusCode, primary.data)) {
140
+ return { ok: true, statusCode: primary.statusCode, data: payload };
141
+ }
142
+ if (primary.ok) {
143
+ return { ok: false, statusCode: primary.statusCode, data: payload ?? primary.data };
144
+ }
145
+ if (primary.statusCode === 404 || primary.statusCode === 0) {
146
+ try {
147
+ const parsed = parseProbeTarget(url);
148
+ const prefix = parsed.pathname.replace(/\/health\/?$/, '') || '/api';
149
+ const candidates = [
150
+ `${parsed.origin}${prefix}/`,
151
+ `${parsed.origin}${prefix}`,
152
+ parsed.origin,
153
+ ];
154
+ for (const fallback of candidates) {
155
+ const alt = await probeHttp(fallback, timeoutMs);
156
+ if (alt.statusCode === 200) {
157
+ return {
158
+ ok: false,
159
+ statusCode: 200,
160
+ data: { status: 'degraded', database: 'unknown' },
161
+ };
162
+ }
163
+ }
164
+ }
165
+ catch {
166
+ // ignore
167
+ }
168
+ }
169
+ return primary;
170
+ }
171
+ function isHttpResponding(url, timeoutMs = 2000) {
172
+ return new Promise((resolve) => {
173
+ let parsed;
174
+ try {
175
+ parsed = parseProbeTarget(url);
176
+ }
177
+ catch {
178
+ resolve(false);
179
+ return;
180
+ }
181
+ const port = parsed.port || (parsed.protocol === 'https:' ? 443 : 80);
182
+ const req = http.request({
183
+ hostname: parsed.hostname,
184
+ port,
185
+ family: 4,
186
+ path: parsed.pathname || '/',
187
+ method: 'GET',
188
+ timeout: timeoutMs,
189
+ }, (res) => resolve(res.statusCode > 0));
190
+ req.on('timeout', () => {
191
+ req.destroy();
192
+ resolve(false);
193
+ });
194
+ req.on('error', () => resolve(false));
195
+ req.end();
196
+ });
197
+ }
198
+ async function waitForHttp(url, timeoutMs = 120_000, intervalMs = 500) {
199
+ const deadline = Date.now() + timeoutMs;
200
+ while (Date.now() < deadline) {
201
+ if (await isHttpResponding(url)) {
202
+ return true;
203
+ }
204
+ await new Promise((r) => setTimeout(r, intervalMs));
205
+ }
206
+ return false;
207
+ }
208
+ /** Poll until HTTP 200 — used for theme dev homepage compile readiness. */
209
+ async function waitForHttpOk(url, timeoutMs = 120_000, intervalMs = 500) {
210
+ const deadline = Date.now() + timeoutMs;
211
+ while (Date.now() < deadline) {
212
+ const result = await probeHttp(normalizeProbeUrl(url), Math.min(intervalMs + 500, 3000));
213
+ if (result.ok)
214
+ return true;
215
+ await new Promise((r) => setTimeout(r, intervalMs));
216
+ }
217
+ return false;
218
+ }
219
+ module.exports = {
220
+ isHealthPayloadReady,
221
+ loadServerSiteUrl,
222
+ loadWebAdminUrl,
223
+ loadClientSiteUrl,
224
+ getApiPrefix,
225
+ getHealthUrl,
226
+ normalizeProbeUrl,
227
+ checkHealth,
228
+ isHttpResponding,
229
+ waitForHttp,
230
+ waitForHttpOk,
231
+ probeHttp,
232
+ normalizeProbeUrl,
233
+ };
234
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/i18n/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const { STRINGS } = require('./strings');
4
+ function resolveLocale() {
5
+ const raw = process.env.REACTPRESS_LANG || process.env.LANG || 'en';
6
+ const code = String(raw).split(/[._-]/)[0].toLowerCase();
7
+ return code === 'zh' ? 'zh' : 'en';
8
+ }
9
+ let locale = resolveLocale();
10
+ /**
11
+ * @param {string} key
12
+ * @param {Record<string, string | number>} [vars]
13
+ */
14
+ function t(key, vars = {}) {
15
+ const table = STRINGS[locale] || STRINGS.en;
16
+ let text = table[key] ?? STRINGS.en[key] ?? key;
17
+ for (const [name, value] of Object.entries(vars)) {
18
+ text = text.replace(new RegExp(`\\{${name}\\}`, 'g'), String(value));
19
+ }
20
+ return text;
21
+ }
22
+ function getLocale() {
23
+ return locale;
24
+ }
25
+ function setLocale(next) {
26
+ locale = next === 'zh' ? 'zh' : 'en';
27
+ }
28
+ module.exports = { t, getLocale, setLocale, resolveLocale };
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/i18n/index.ts"],"names":[],"mappings":";;AAAA,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEzC,SAAS,aAAa;IACpB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;IACpE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAED,IAAI,MAAM,GAAG,aAAa,EAAE,CAAC;AAE7B;;;GAGG;AACH,SAAS,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE;IACvB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC;IAC5C,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,IAAI;IACrB,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC"}