@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,400 @@
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 { spawnSync } = require('child_process');
7
+ const { runSync, runNodeScript, resolveCliScript } = require('./spawn');
8
+ const { getThemeBin, resolveProjectRoot } = require('./paths');
9
+ const { readActiveThemeManifest, resolveThemeDirectory, listAvailableThemeIds, } = require('./theme-runtime');
10
+ const { t } = require('./i18n');
11
+ const { resolveBuildNodeEnv } = require('./prod-memory');
12
+ const { shouldHonorThemePreviewFrame } = require('./theme-preview-frame');
13
+ function resolveProductionThemeEnv(projectRoot, themeDir) {
14
+ const nginxEntry = (process.env.REACTPRESS_NGINX_ENTRY_URL ||
15
+ process.env.NGINX_ENTRY_URL ||
16
+ 'http://localhost').replace(/\/$/, '');
17
+ const visitorPort = process.env.CLIENT_PORT || process.env.PORT || '3001';
18
+ const serverApiUrl = process.env.REACTPRESS_THEME_API_URL ||
19
+ process.env.SERVER_API_URL ||
20
+ process.env.REACTPRESS_API_URL ||
21
+ `${nginxEntry}/api`;
22
+ const publicApiUrl = process.env.REACTPRESS_THEME_PUBLIC_API_URL ||
23
+ process.env.NEXT_PUBLIC_REACTPRESS_API_URL ||
24
+ `${nginxEntry}/api`;
25
+ const clientSiteUrl = process.env.CLIENT_SITE_URL?.trim() || `http://127.0.0.1:${visitorPort}`;
26
+ return {
27
+ ...process.env,
28
+ NODE_ENV: 'production',
29
+ REACTPRESS_ORIGINAL_CWD: projectRoot,
30
+ REACTPRESS_THEME_DIR: themeDir,
31
+ PORT: String(visitorPort),
32
+ CLIENT_PORT: String(visitorPort),
33
+ CLIENT_SITE_URL: clientSiteUrl,
34
+ NGINX_ENTRY_URL: nginxEntry,
35
+ REACTPRESS_NGINX_ENTRY_URL: nginxEntry,
36
+ REACTPRESS_API_URL: serverApiUrl,
37
+ SERVER_API_URL: serverApiUrl,
38
+ NEXT_PUBLIC_REACTPRESS_API_URL: publicApiUrl,
39
+ NEXT_PUBLIC_REACTPRESS_ADMIN_URL: process.env.NEXT_PUBLIC_REACTPRESS_ADMIN_URL || `${nginxEntry}/admin`,
40
+ };
41
+ }
42
+ function resolveThemeClientBin(projectRoot, themeDir) {
43
+ const themeBin = path.join(themeDir, 'bin', 'reactpress-client.js');
44
+ if (fs.existsSync(themeBin))
45
+ return themeBin;
46
+ const generic = resolveCliScript('bin/reactpress-theme-client.js');
47
+ if (fs.existsSync(generic))
48
+ return generic;
49
+ throw new Error(`Theme entry not found under ${themeDir}`);
50
+ }
51
+ const LAUNCH_FILE_REL_PATHS = ['server.js'];
52
+ function syncThemeLaunchFilesFromTemplate(projectRoot, themeId, themeDir) {
53
+ const templateDir = path.join(resolveProjectRoot(projectRoot), 'themes', themeId);
54
+ if (!templateDir || !fs.existsSync(templateDir))
55
+ return;
56
+ if (path.resolve(templateDir) === path.resolve(themeDir))
57
+ return;
58
+ for (const rel of LAUNCH_FILE_REL_PATHS) {
59
+ const src = path.join(templateDir, rel);
60
+ const dest = path.join(themeDir, rel);
61
+ if (!fs.existsSync(src))
62
+ continue;
63
+ fs.mkdirSync(path.dirname(dest), { recursive: true });
64
+ fs.copyFileSync(src, dest);
65
+ }
66
+ const templatePkg = path.join(templateDir, 'package.json');
67
+ const destPkg = path.join(themeDir, 'package.json');
68
+ if (fs.existsSync(templatePkg) && fs.existsSync(destPkg)) {
69
+ try {
70
+ const srcScripts = JSON.parse(fs.readFileSync(templatePkg, 'utf8')).scripts || {};
71
+ const destPkgJson = JSON.parse(fs.readFileSync(destPkg, 'utf8'));
72
+ destPkgJson.scripts = { ...destPkgJson.scripts, start: srcScripts.start, dev: srcScripts.dev };
73
+ fs.writeFileSync(destPkg, `${JSON.stringify(destPkgJson, null, 2)}\n`, 'utf8');
74
+ }
75
+ catch {
76
+ // ignore corrupt package.json
77
+ }
78
+ }
79
+ }
80
+ const PREVIEW_DIST_DIR = '.next-preview';
81
+ const BUILD_STAMP_REL = path.join('.next', '.reactpress-theme-id');
82
+ function resolveBuildDistDir(options = {}) {
83
+ return options.distDir || '.next';
84
+ }
85
+ function buildStampRel(distDir) {
86
+ return path.join(distDir, '.reactpress-theme-id');
87
+ }
88
+ function writeThemeBuildStamp(themeDir, themeId, options = {}) {
89
+ const distDir = resolveBuildDistDir(options);
90
+ const stampPath = path.join(themeDir, buildStampRel(distDir));
91
+ fs.mkdirSync(path.dirname(stampPath), { recursive: true });
92
+ fs.writeFileSync(stampPath, themeId, 'utf8');
93
+ }
94
+ function newestSourceMtime(rootDir, depth = 0) {
95
+ if (!fs.existsSync(rootDir))
96
+ return 0;
97
+ let max = 0;
98
+ for (const entry of fs.readdirSync(rootDir, { withFileTypes: true })) {
99
+ if (entry.name === 'node_modules' || entry.name === '.next' || entry.name === PREVIEW_DIST_DIR) {
100
+ continue;
101
+ }
102
+ const full = path.join(rootDir, entry.name);
103
+ if (entry.isDirectory()) {
104
+ if (depth < 10)
105
+ max = Math.max(max, newestSourceMtime(full, depth + 1));
106
+ continue;
107
+ }
108
+ if (entry.isFile())
109
+ max = Math.max(max, fs.statSync(full).mtimeMs);
110
+ }
111
+ return max;
112
+ }
113
+ /** Post-build artifacts — not source changes; ignored when comparing freshness. */
114
+ const GENERATED_PUBLIC_FILES = new Set([
115
+ 'robots.txt',
116
+ 'sitemap.xml',
117
+ 'sitemap-0.xml',
118
+ 'sitemap-1.xml',
119
+ ]);
120
+ function themeSourcesNewerThanBuild(themeDir, distDir = '.next') {
121
+ const stampPath = path.join(themeDir, buildStampRel(distDir));
122
+ if (!fs.existsSync(stampPath))
123
+ return true;
124
+ const buildMtime = fs.statSync(stampPath).mtimeMs;
125
+ for (const rel of [
126
+ 'app',
127
+ 'pages',
128
+ 'src',
129
+ 'public',
130
+ 'theme.json',
131
+ 'package.json',
132
+ 'next.config.js',
133
+ ]) {
134
+ const target = path.join(themeDir, rel);
135
+ if (!fs.existsSync(target))
136
+ continue;
137
+ const stat = fs.statSync(target);
138
+ if (stat.isDirectory()) {
139
+ if (rel === 'public') {
140
+ for (const entry of fs.readdirSync(target, { withFileTypes: true })) {
141
+ if (!entry.isFile() || GENERATED_PUBLIC_FILES.has(entry.name))
142
+ continue;
143
+ if (fs.statSync(path.join(target, entry.name)).mtimeMs > buildMtime)
144
+ return true;
145
+ }
146
+ continue;
147
+ }
148
+ if (newestSourceMtime(target) > buildMtime)
149
+ return true;
150
+ continue;
151
+ }
152
+ if (stat.mtimeMs > buildMtime)
153
+ return true;
154
+ }
155
+ return false;
156
+ }
157
+ function hasProductionBuildArtifacts(nextDir) {
158
+ if (fs.existsSync(path.join(nextDir, 'BUILD_ID')))
159
+ return true;
160
+ // Next 12 Pages Router — no BUILD_ID at dist root
161
+ return fs.existsSync(path.join(nextDir, 'server', 'pages-manifest.json'));
162
+ }
163
+ function hasUsableProductionBuild(themeDir, themeId, options = {}) {
164
+ if (process.env.REACTPRESS_FORCE_THEME_BUILD === '1')
165
+ return false;
166
+ const distDir = resolveBuildDistDir(options);
167
+ const nextDir = path.join(themeDir, distDir);
168
+ if (!hasProductionBuildArtifacts(nextDir))
169
+ return false;
170
+ if (!fs.existsSync(path.join(nextDir, 'server')))
171
+ return false;
172
+ const stampPath = path.join(themeDir, buildStampRel(distDir));
173
+ if (!fs.existsSync(stampPath))
174
+ return false;
175
+ try {
176
+ if (fs.readFileSync(stampPath, 'utf8').trim() !== themeId)
177
+ return false;
178
+ }
179
+ catch {
180
+ return false;
181
+ }
182
+ if (themeSourcesNewerThanBuild(themeDir, distDir))
183
+ return false;
184
+ return true;
185
+ }
186
+ function resolvePreviewThemeEnv(projectRoot, themeDir, port, options = {}) {
187
+ const distDir = options.distDir || PREVIEW_DIST_DIR;
188
+ const base = resolveProductionThemeEnv(projectRoot, themeDir);
189
+ let clientSiteUrl = base.CLIENT_SITE_URL;
190
+ try {
191
+ const url = new URL(clientSiteUrl || 'http://127.0.0.1:3001');
192
+ url.port = String(port);
193
+ clientSiteUrl = url.origin;
194
+ }
195
+ catch {
196
+ clientSiteUrl = `http://127.0.0.1:${port}`;
197
+ }
198
+ return {
199
+ ...base,
200
+ NODE_ENV: options.mode === 'dev' ? 'development' : 'production',
201
+ INIT_CWD: themeDir,
202
+ NEXT_DIST_DIR: distDir,
203
+ PORT: String(port),
204
+ CLIENT_PORT: String(port),
205
+ CLIENT_SITE_URL: clientSiteUrl,
206
+ REACTPRESS_THEME_DIR: themeDir,
207
+ NEXT_TELEMETRY_DISABLED: '1',
208
+ NEXT_IGNORE_INCORRECT_LOCKFILE: '1',
209
+ };
210
+ }
211
+ function canResolveSharedNext(themeDir) {
212
+ const searchPaths = [themeDir];
213
+ const nodePath = String(process.env.NODE_PATH || '').trim();
214
+ if (nodePath) {
215
+ searchPaths.push(...nodePath.split(path.delimiter).filter(Boolean));
216
+ }
217
+ try {
218
+ require.resolve('next/package.json', { paths: searchPaths });
219
+ return true;
220
+ }
221
+ catch {
222
+ return false;
223
+ }
224
+ }
225
+ function ensureThemeDependenciesInstalled(projectRoot, themeDir, themeId, logPrefix = 'themePreview') {
226
+ if (process.env.REACTPRESS_SKIP_THEME_INSTALL === '1' || canResolveSharedNext(themeDir)) {
227
+ return;
228
+ }
229
+ const nextModule = path.join(themeDir, 'node_modules', 'next');
230
+ if (fs.existsSync(nextModule))
231
+ return;
232
+ const { installThemeDependencies } = require('./theme-install');
233
+ const installingKey = logPrefix === 'themePreview' ? 'themePreview.installingDeps' : 'themeProd.installingDeps';
234
+ console.log(`[reactpress] ${t(installingKey, { id: themeId })}`);
235
+ installThemeDependencies(themeDir, projectRoot);
236
+ }
237
+ function resolveThemeBuildState(projectRoot, themeId) {
238
+ const themeDir = resolveThemeDirectory(projectRoot, themeId);
239
+ if (!themeDir || !fs.existsSync(path.join(themeDir, 'package.json'))) {
240
+ return null;
241
+ }
242
+ return { themeId, themeDir };
243
+ }
244
+ function readActiveThemeBuildState(projectRoot) {
245
+ const { activeTheme } = readActiveThemeManifest(projectRoot);
246
+ const state = resolveThemeBuildState(projectRoot, activeTheme);
247
+ if (!state)
248
+ return null;
249
+ return { activeTheme, themeDir: state.themeDir };
250
+ }
251
+ /** @type {Promise<unknown>} */
252
+ let themeBuildChain = Promise.resolve();
253
+ function doBuildThemeSync(projectRoot, themeId, { force = false, logPrefix = 'themeProd', distDir } = {}) {
254
+ const state = resolveThemeBuildState(projectRoot, themeId);
255
+ if (!state) {
256
+ const err = new Error(`Theme not found: ${themeId}`);
257
+ err.code = 'REACTPRESS_THEME_NOT_FOUND';
258
+ throw err;
259
+ }
260
+ const { themeDir } = state;
261
+ const buildDistDir = distDir || (logPrefix === 'themePreview' ? PREVIEW_DIST_DIR : '.next');
262
+ if (!force && hasUsableProductionBuild(themeDir, themeId, { distDir: buildDistDir })) {
263
+ if (logPrefix === 'themePreview') {
264
+ console.log(`[reactpress] ${t('themePreview.reusingBuild', { id: themeId })}`);
265
+ }
266
+ else {
267
+ console.log(`[reactpress] ${t('themeProd.reusingBuild', { id: themeId })}`);
268
+ }
269
+ return { themeId, themeDir, skippedBuild: true };
270
+ }
271
+ syncThemeLaunchFilesFromTemplate(projectRoot, themeId, themeDir);
272
+ ensureThemeDependenciesInstalled(projectRoot, themeDir, themeId, logPrefix);
273
+ const buildingKey = logPrefix === 'themePreview' ? 'themePreview.building' : 'themeProd.building';
274
+ console.log(`[reactpress] ${t(buildingKey, { id: themeId })}`);
275
+ runSync('pnpm', ['run', 'build'], {
276
+ cwd: themeDir,
277
+ stdio: ['ignore', 'inherit', 'inherit'],
278
+ env: resolveBuildNodeEnv({
279
+ ...resolveProductionThemeEnv(projectRoot, themeDir),
280
+ NEXT_DIST_DIR: buildDistDir,
281
+ CI: '1',
282
+ ...(logPrefix === 'themeProd' ? { REACTPRESS_BUILD_ACTIVE: '1' } : {}),
283
+ ...(shouldHonorThemePreviewFrame() || logPrefix === 'themePreview'
284
+ ? { REACTPRESS_HONOR_PREVIEW: '1' }
285
+ : {}),
286
+ }),
287
+ });
288
+ if (shouldHonorThemePreviewFrame() || logPrefix === 'themePreview') {
289
+ const { stripBakedFrameOptionsFromBuild } = require('./theme-preview-frame');
290
+ stripBakedFrameOptionsFromBuild(themeDir, buildDistDir);
291
+ }
292
+ writeThemeBuildStamp(themeDir, themeId, { distDir: buildDistDir });
293
+ return { themeId, themeDir, skippedBuild: false };
294
+ }
295
+ function enqueueThemeBuild(projectRoot, themeId, options = {}) {
296
+ const task = themeBuildChain.then(() => doBuildThemeSync(projectRoot, themeId, options));
297
+ themeBuildChain = task.catch(() => { });
298
+ return task;
299
+ }
300
+ function buildTheme(projectRoot, themeId, options = {}) {
301
+ return doBuildThemeSync(projectRoot, themeId, options);
302
+ }
303
+ function buildActiveTheme(projectRoot, { force = false } = {}) {
304
+ const { activeTheme } = readActiveThemeManifest(projectRoot);
305
+ const result = doBuildThemeSync(projectRoot, activeTheme, { force, logPrefix: 'themeProd' });
306
+ return { activeTheme, themeDir: result.themeDir, skippedBuild: result.skippedBuild };
307
+ }
308
+ function scheduleBackgroundThemeBuilds(projectRoot, { excludeThemeId } = {}) {
309
+ if (process.env.REACTPRESS_SKIP_PREVIEW_BUILD === '1')
310
+ return;
311
+ const activeTheme = excludeThemeId || readActiveThemeManifest(projectRoot).activeTheme;
312
+ const themeIds = listAvailableThemeIds(projectRoot).filter((id) => id !== activeTheme);
313
+ if (themeIds.length === 0)
314
+ return;
315
+ console.log(`[reactpress] ${t('themePreview.backgroundBuildScheduled', { count: themeIds.length })}`);
316
+ setImmediate(() => {
317
+ void warmupAllPreviewThemeBuilds(projectRoot, { themeIds }).catch(() => { });
318
+ });
319
+ }
320
+ /**
321
+ * Pre-build `.next-preview` for catalog themes so admin preview switches stay under ~10s.
322
+ * Runs builds in parallel (local/desktop dev only — awaited before the ready banner).
323
+ */
324
+ async function warmupAllPreviewThemeBuilds(projectRoot, { themeIds, concurrency = 2, excludeThemeId } = {}) {
325
+ if (process.env.REACTPRESS_SKIP_PREVIEW_BUILD === '1')
326
+ return { built: 0, skipped: 0 };
327
+ const activeTheme = excludeThemeId || readActiveThemeManifest(projectRoot).activeTheme;
328
+ const ids = (themeIds || listAvailableThemeIds(projectRoot)).filter((id) => id !== activeTheme);
329
+ if (ids.length === 0)
330
+ return { built: 0, skipped: 0 };
331
+ const { mapWithConcurrency } = require('./theme-warmup');
332
+ const limit = Math.max(1, parseInt(process.env.REACTPRESS_PREVIEW_BUILD_CONCURRENCY || String(concurrency), 10) ||
333
+ concurrency);
334
+ console.log(`[reactpress] ${t('themePreview.warmingAll', { count: ids.length })}`);
335
+ let built = 0;
336
+ let skipped = 0;
337
+ await mapWithConcurrency(ids, limit, async (themeId) => {
338
+ const state = resolveThemeBuildState(projectRoot, themeId);
339
+ if (!state)
340
+ return;
341
+ if (hasUsableProductionBuild(state.themeDir, themeId, { distDir: PREVIEW_DIST_DIR })) {
342
+ skipped += 1;
343
+ return;
344
+ }
345
+ try {
346
+ const result = await enqueueThemeBuild(projectRoot, themeId, {
347
+ logPrefix: 'themePreview',
348
+ distDir: PREVIEW_DIST_DIR,
349
+ });
350
+ if (result.skippedBuild)
351
+ skipped += 1;
352
+ else {
353
+ built += 1;
354
+ console.log(`[reactpress] ${t('themePreview.buildDone', { id: themeId })}`);
355
+ }
356
+ }
357
+ catch (err) {
358
+ console.warn(`[reactpress] ${t('themePreview.buildFailed', {
359
+ id: themeId,
360
+ message: err.message || err,
361
+ })}`);
362
+ }
363
+ });
364
+ if (skipped > 0) {
365
+ console.log(`[reactpress] ${t('themePreview.warmingAllSkipped', { count: skipped })}`);
366
+ }
367
+ return { built, skipped };
368
+ }
369
+ /**
370
+ * Rebuild active theme and restart PM2 visitor process (production deploy).
371
+ */
372
+ async function restartProductionVisitorClient(projectRoot = resolveProjectRoot()) {
373
+ const { activeTheme, themeDir } = buildActiveTheme(projectRoot);
374
+ const bin = resolveThemeClientBin(projectRoot, themeDir);
375
+ const env = resolveProductionThemeEnv(projectRoot, themeDir);
376
+ spawnSync('pm2', ['delete', 'reactpress-client'], { stdio: 'ignore' });
377
+ spawnSync('pm2', ['delete', '@fecommunity/reactpress-template-hello-world'], {
378
+ stdio: 'ignore',
379
+ });
380
+ console.log(`[reactpress] ${t('themeProd.restarting', { id: activeTheme })}`);
381
+ await runNodeScript(bin, ['--pm2'], { cwd: projectRoot, env });
382
+ console.log(`[reactpress] ${t('themeProd.restarted', { id: activeTheme })}`);
383
+ }
384
+ module.exports = {
385
+ PREVIEW_DIST_DIR,
386
+ buildActiveTheme,
387
+ buildTheme,
388
+ enqueueThemeBuild,
389
+ scheduleBackgroundThemeBuilds,
390
+ warmupAllPreviewThemeBuilds,
391
+ restartProductionVisitorClient,
392
+ resolveProductionThemeEnv,
393
+ resolvePreviewThemeEnv,
394
+ ensureThemeDependenciesInstalled,
395
+ hasUsableProductionBuild,
396
+ readActiveThemeBuildState,
397
+ resolveThemeBuildState,
398
+ writeThemeBuildStamp,
399
+ };
400
+ //# sourceMappingURL=theme-prod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-prod.js","sourceRoot":"","sources":["../../src/lib/theme-prod.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=theme-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-registry.d.ts","sourceRoot":"","sources":["../../src/lib/theme-registry.ts"],"names":[],"mappings":""}
@@ -0,0 +1,135 @@
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 { getCliPackageRoot } = require('./paths');
7
+ const { THEMES_PACKAGE_REL, themesRoot, } = require('./theme-paths');
8
+ const { readThemesRegistryMeta, readThemesPackageMeta, readNpmThemeSources, readThemeSources, readNpmEntryFromPackageDir, normalizeNpmCatalogEntry, isValidNpmCatalogEntry, validateLocalThemes, validateNpmThemes, validateBundledThemes, validateCatalogThemes, } = require('./theme-sources');
9
+ /** Official npm spec for the theme-starter package. */
10
+ const OFFICIAL_THEME_STARTER_SPEC = '@fecommunity/reactpress-theme-starter@1.0.0-beta.0';
11
+ const OFFICIAL_THEME_STARTER_ID = 'reactpress-theme-starter';
12
+ /** Catalog anchor directory under themes/ (metadata in package.json). */
13
+ const OFFICIAL_THEME_STARTER_DIR = 'theme-starter';
14
+ function readJsonFile(filePath) {
15
+ try {
16
+ return JSON.parse(fs.readFileSync(filePath, 'utf8'));
17
+ }
18
+ catch {
19
+ return null;
20
+ }
21
+ }
22
+ function readLegacyCatalogFile(projectRoot, filePath) {
23
+ if (!fs.existsSync(filePath))
24
+ return null;
25
+ const raw = readJsonFile(filePath);
26
+ if (!raw)
27
+ return null;
28
+ const themes = (Array.isArray(raw.themes) ? raw.themes : [])
29
+ .map(normalizeNpmCatalogEntry)
30
+ .filter(Boolean);
31
+ if (!themes.length)
32
+ return null;
33
+ return {
34
+ version: typeof raw.version === 'number' ? raw.version : 1,
35
+ themes,
36
+ source: path.relative(path.resolve(projectRoot), filePath) || filePath,
37
+ };
38
+ }
39
+ function readCatalogFromRegistry(projectRoot) {
40
+ const npmSources = readNpmThemeSources(projectRoot);
41
+ if (npmSources.length) {
42
+ return {
43
+ version: 1,
44
+ themes: npmSources.map(({ kind, ...entry }) => entry),
45
+ source: THEMES_PACKAGE_REL,
46
+ };
47
+ }
48
+ return null;
49
+ }
50
+ /** Aggregate npm catalog from themes/package.json, then CLI template fallback. */
51
+ function readThemeCatalog(projectRoot) {
52
+ const fromRegistry = readCatalogFromRegistry(projectRoot);
53
+ if (fromRegistry)
54
+ return fromRegistry;
55
+ const legacyCatalog = path.join(themesRoot(projectRoot), 'catalog.json');
56
+ const legacy = readLegacyCatalogFile(projectRoot, legacyCatalog);
57
+ if (legacy)
58
+ return legacy;
59
+ const templatePath = path.join(getCliPackageRoot(), 'templates', 'theme-catalog.json');
60
+ const fromTemplate = readLegacyCatalogFile(projectRoot, templatePath);
61
+ if (fromTemplate)
62
+ return fromTemplate;
63
+ return { version: 1, themes: [], source: null };
64
+ }
65
+ function findCatalogTheme(projectRoot, idOrSpec) {
66
+ const needle = String(idOrSpec || '').trim();
67
+ if (!needle)
68
+ return null;
69
+ const { themes } = readThemeCatalog(projectRoot);
70
+ return (themes.find((entry) => entry.id === needle || entry.npm === needle) ??
71
+ themes.find((entry) => entry.npm.startsWith(needle) || needle.startsWith(entry.id)) ??
72
+ null);
73
+ }
74
+ function resolveCatalogInstallSpec(projectRoot, input) {
75
+ const trimmed = String(input || '').trim();
76
+ if (!trimmed)
77
+ return null;
78
+ if (trimmed === 'reactpress-theme-starter' || trimmed === OFFICIAL_THEME_STARTER_ID) {
79
+ const fromCatalog = findCatalogTheme(projectRoot, OFFICIAL_THEME_STARTER_ID);
80
+ if (fromCatalog?.npm)
81
+ return fromCatalog.npm;
82
+ return OFFICIAL_THEME_STARTER_SPEC;
83
+ }
84
+ const fromCatalog = findCatalogTheme(projectRoot, trimmed);
85
+ if (fromCatalog?.npm)
86
+ return fromCatalog.npm;
87
+ return trimmed;
88
+ }
89
+ /** Map npm catalog metadata to a minimal ThemeManifest-shaped object. */
90
+ function catalogEntryToManifest(entry) {
91
+ if (!entry)
92
+ return null;
93
+ return {
94
+ id: entry.id,
95
+ name: entry.name,
96
+ version: entry.version,
97
+ description: entry.description,
98
+ author: entry.author,
99
+ themeUri: entry.themeUri,
100
+ previewUrl: entry.previewUrl,
101
+ cover: entry.cover,
102
+ tags: entry.tags,
103
+ requires: entry.requires,
104
+ };
105
+ }
106
+ /** Build aggregated catalog JSON for CLI template sync. */
107
+ function buildAggregatedCatalog(projectRoot) {
108
+ const { themes } = readCatalogFromRegistry(projectRoot) ?? { themes: [] };
109
+ return {
110
+ version: 1,
111
+ themes: themes.map(({ dir, ...entry }) => entry),
112
+ };
113
+ }
114
+ module.exports = {
115
+ OFFICIAL_THEME_STARTER_SPEC,
116
+ OFFICIAL_THEME_STARTER_ID,
117
+ OFFICIAL_THEME_STARTER_DIR,
118
+ isValidNpmCatalogEntry,
119
+ isValidCatalogEntry: isValidNpmCatalogEntry,
120
+ normalizeCatalogEntry: normalizeNpmCatalogEntry,
121
+ readThemesRegistryMeta,
122
+ readThemesPackageMeta,
123
+ readPackageCatalogEntry: readNpmEntryFromPackageDir,
124
+ readThemeSources,
125
+ readThemeCatalog,
126
+ findCatalogTheme,
127
+ resolveCatalogInstallSpec,
128
+ catalogEntryToManifest,
129
+ validateLocalThemes,
130
+ validateNpmThemes,
131
+ validateBundledThemes,
132
+ validateCatalogThemes,
133
+ buildAggregatedCatalog,
134
+ };
135
+ //# sourceMappingURL=theme-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-registry.js","sourceRoot":"","sources":["../../src/lib/theme-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=theme-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-runtime.d.ts","sourceRoot":"","sources":["../../src/lib/theme-runtime.ts"],"names":[],"mappings":""}