@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,328 @@
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 inquirer = require('inquirer');
7
+ const ora = require('ora');
8
+ const open = require('open');
9
+ const { printBanner } = require('./banner');
10
+ const { brand, icon, label, ok, fail, sectionHeader, statusPill, padRight, } = require('./theme');
11
+ const { ensureOriginalCwd } = require('../lib/root');
12
+ const { describeProject } = require('../lib/project-type');
13
+ const { hasResolvableActiveTheme } = require('../lib/theme-runtime');
14
+ const { ensureProjectEnvironment } = require('../lib/bootstrap');
15
+ const { runDev, runThemeDev } = require('../lib/dev');
16
+ const { runApiDev } = require('../lib/api-dev');
17
+ const { runLifecycleCommand } = require('../lib/lifecycle');
18
+ const { runDockerCommand } = require('../lib/docker');
19
+ const { runNginxCommand } = require('../lib/nginx');
20
+ const { printUnifiedStatus } = require('../lib/status');
21
+ const { runDoctor } = require('../lib/doctor');
22
+ const { runBuild, TARGETS } = require('../lib/build');
23
+ const { loadClientSiteUrl, loadServerSiteUrl, isHttpResponding } = require('../lib/http');
24
+ const { isDockerRunning } = require('../lib/docker');
25
+ const { t } = require('../lib/i18n');
26
+ function menuSection(title) {
27
+ return new inquirer.Separator(sectionHeader(title));
28
+ }
29
+ function formatChoice(key, text, hint) {
30
+ const keyCol = key ? brand.primary(padRight(key, 2)) : ' ';
31
+ const hintPart = hint ? brand.dim(` ${hint}`) : '';
32
+ return `${keyCol} ${text}${hintPart}`;
33
+ }
34
+ function assignShortcuts(items) {
35
+ let n = 0;
36
+ return items.map((item) => {
37
+ if (item instanceof inquirer.Separator || item.type === 'separator') {
38
+ return item;
39
+ }
40
+ n += 1;
41
+ const key = n <= 9 ? String(n) : '';
42
+ return {
43
+ ...item,
44
+ name: formatChoice(key, item._label || item.name, item._hint),
45
+ short: item.value,
46
+ };
47
+ });
48
+ }
49
+ function choice(labelKey, value, hintKey) {
50
+ return {
51
+ _label: t(labelKey),
52
+ _hint: hintKey ? t(hintKey) : '',
53
+ value,
54
+ };
55
+ }
56
+ function getMenuActions(project) {
57
+ const standalone = project.type === 'standalone';
58
+ const monorepo = project.type === 'monorepo';
59
+ const showTheme = hasResolvableActiveTheme(project.root);
60
+ const items = [
61
+ menuSection(t('menu.section.run')),
62
+ choice('menu.dev', 'dev', 'menu.hint.dev'),
63
+ choice('menu.init', 'init', 'menu.hint.init'),
64
+ choice('menu.status', 'status', 'menu.hint.status'),
65
+ choice('menu.doctor', 'doctor', 'menu.hint.doctor'),
66
+ menuSection(t('menu.section.lifecycle')),
67
+ choice('menu.devApi', 'dev:api', 'menu.hint.devApi'),
68
+ ];
69
+ if (showTheme) {
70
+ items.push(choice('menu.devClient', 'dev:client', 'menu.hint.devClient'));
71
+ }
72
+ items.push(choice('menu.serverStart', 'server:start', 'menu.hint.serverStart'), choice('menu.serverStop', 'server:stop', 'menu.hint.serverStop'), choice('menu.serverRestart', 'server:restart', 'menu.hint.serverRestart'), menuSection(t('menu.section.build')), choice('menu.build', 'build', 'menu.hint.build'));
73
+ if (monorepo) {
74
+ items.push(choice('menu.dockerStart', 'docker:start', 'menu.hint.dockerStart'), choice('menu.dockerUp', 'docker:up', 'menu.hint.dockerUp'), choice('menu.dockerStop', 'docker:stop', 'menu.hint.dockerStop'));
75
+ }
76
+ else if (standalone) {
77
+ items.push(choice('menu.dockerUp', 'docker:up', 'menu.hint.dockerUp'), choice('menu.dockerStop', 'docker:stop', 'menu.hint.dockerStop'));
78
+ }
79
+ items.push(menuSection(t('menu.section.tools')), choice('menu.nginxUp', 'nginx:up', 'menu.hint.nginxUp'), choice('menu.nginxOpen', 'nginx:open', 'menu.hint.nginxOpen'), choice('menu.nginxReload', 'nginx:reload', 'menu.hint.nginxReload'), choice('menu.openAdmin', 'open:admin', 'menu.hint.openAdmin'));
80
+ if (monorepo) {
81
+ items.push(choice('menu.publish', 'publish', 'menu.hint.publish'));
82
+ }
83
+ items.push(new inquirer.Separator(), choice('menu.exit', 'exit', 'menu.hint.exit'));
84
+ return assignShortcuts(items);
85
+ }
86
+ function parseEnvFile(projectRoot) {
87
+ const envPath = path.join(projectRoot, '.env');
88
+ const env = {};
89
+ try {
90
+ if (!fs.existsSync(envPath))
91
+ return env;
92
+ for (const line of fs.readFileSync(envPath, 'utf8').split('\n')) {
93
+ const m = line.match(/^([A-Z_]+)=(.*)$/);
94
+ if (m)
95
+ env[m[1]] = m[2].trim().replace(/^['"]|['"]$/g, '');
96
+ }
97
+ }
98
+ catch {
99
+ // ignore
100
+ }
101
+ return env;
102
+ }
103
+ async function probeDatabase(projectRoot) {
104
+ try {
105
+ const mysql = require('mysql2/promise');
106
+ const env = parseEnvFile(projectRoot);
107
+ const conn = await mysql.createConnection({
108
+ host: env.DB_HOST || '127.0.0.1',
109
+ port: Number(env.DB_PORT || 3306),
110
+ user: env.DB_USER || 'reactpress',
111
+ password: env.DB_PASSWD || env.DB_PASSWORD || 'reactpress',
112
+ database: env.DB_DATABASE || 'reactpress',
113
+ connectTimeout: 2000,
114
+ });
115
+ await conn.ping();
116
+ await conn.end();
117
+ return true;
118
+ }
119
+ catch {
120
+ return false;
121
+ }
122
+ }
123
+ async function fetchContextStatus(projectRoot) {
124
+ const apiUrl = loadServerSiteUrl(projectRoot);
125
+ const [apiOk, dockerOk, dbOk] = await Promise.all([
126
+ isHttpResponding(apiUrl, 1500),
127
+ Promise.resolve(isDockerRunning()),
128
+ probeDatabase(projectRoot),
129
+ ]);
130
+ return { apiOk, dbOk, dockerOk };
131
+ }
132
+ function printStatusPanel(status) {
133
+ const on = { on: t('menu.statusOn'), off: t('menu.statusOff') };
134
+ const db = {
135
+ on: t('menu.statusReady'),
136
+ off: t('menu.statusNotReady'),
137
+ pending: t('menu.statusChecking'),
138
+ };
139
+ const docker = { on: t('menu.statusYes'), off: t('menu.statusNo') };
140
+ console.log(sectionHeader(t('menu.statusHeader')));
141
+ const rows = [
142
+ [t('menu.statusLabelApi'), statusPill(status.apiOk, on)],
143
+ [t('menu.statusLabelDb'), statusPill(status.dbOk, db)],
144
+ [t('menu.statusLabelDocker'), statusPill(status.dockerOk, docker)],
145
+ ];
146
+ for (const [name, pill] of rows) {
147
+ console.log(` ${brand.muted(padRight(name, 10))} ${pill}`);
148
+ }
149
+ console.log('');
150
+ }
151
+ async function printContextStatus(projectRoot) {
152
+ const spinner = ora({
153
+ text: brand.dim(t('menu.statusChecking')),
154
+ color: 'magenta',
155
+ spinner: 'dots',
156
+ }).start();
157
+ const status = await fetchContextStatus(projectRoot);
158
+ spinner.stop();
159
+ printStatusPanel(status);
160
+ return status;
161
+ }
162
+ async function withSpinner(text, fn) {
163
+ const spinner = ora({ text, color: 'magenta', spinner: 'dots' }).start();
164
+ try {
165
+ const result = await fn();
166
+ spinner.succeed();
167
+ return result;
168
+ }
169
+ catch (err) {
170
+ spinner.fail();
171
+ throw err;
172
+ }
173
+ }
174
+ async function runMenuAction(action, projectRoot, project) {
175
+ switch (action) {
176
+ case 'dev':
177
+ console.log(label(t('menu.startingDev')));
178
+ await runDev(projectRoot);
179
+ return false;
180
+ case 'init': {
181
+ const result = await withSpinner(t('menu.initProject'), () => ensureProjectEnvironment(projectRoot));
182
+ console.log(ok(result.message || t('menu.done')));
183
+ return true;
184
+ }
185
+ case 'status':
186
+ await printUnifiedStatus(projectRoot);
187
+ return true;
188
+ case 'doctor': {
189
+ const code = await runDoctor(projectRoot);
190
+ if (code !== 0)
191
+ process.exit(code);
192
+ return true;
193
+ }
194
+ case 'dev:api':
195
+ await runApiDev(projectRoot);
196
+ return false;
197
+ case 'dev:client':
198
+ await runThemeDev(projectRoot);
199
+ return false;
200
+ case 'server:start': {
201
+ const code = await withSpinner(t('menu.startingApi'), () => runLifecycleCommand('start', projectRoot));
202
+ if (code !== 0)
203
+ process.exit(code);
204
+ return true;
205
+ }
206
+ case 'server:stop':
207
+ await withSpinner(t('menu.stoppingApi'), async () => {
208
+ await runLifecycleCommand('stop', projectRoot);
209
+ });
210
+ return true;
211
+ case 'server:restart': {
212
+ const code = await withSpinner(t('menu.restartingApi'), () => runLifecycleCommand('restart', projectRoot));
213
+ if (code !== 0)
214
+ process.exit(code);
215
+ return true;
216
+ }
217
+ case 'build': {
218
+ const buildChoices = TARGETS.map((target) => ({
219
+ name: target === 'all'
220
+ ? t('menu.buildAll')
221
+ : t(`build.label.${target}`),
222
+ value: target,
223
+ }));
224
+ const { target } = await inquirer.prompt([
225
+ {
226
+ type: 'list',
227
+ name: 'target',
228
+ message: t('menu.buildTarget'),
229
+ pageSize: 12,
230
+ choices: buildChoices,
231
+ },
232
+ ]);
233
+ await runBuild(target, projectRoot);
234
+ return true;
235
+ }
236
+ case 'docker:start':
237
+ await runDockerCommand('start', projectRoot);
238
+ return false;
239
+ case 'docker:up':
240
+ await withSpinner(t('docker.starting'), () => runDockerCommand('up', projectRoot));
241
+ return true;
242
+ case 'docker:stop':
243
+ await withSpinner(t('docker.stopping'), async () => {
244
+ await runDockerCommand('down', projectRoot);
245
+ });
246
+ return true;
247
+ case 'nginx:up':
248
+ await withSpinner(t('cli.nginx.up'), async () => {
249
+ await runNginxCommand('up', projectRoot);
250
+ });
251
+ return true;
252
+ case 'nginx:open':
253
+ await runNginxCommand('open', projectRoot);
254
+ return true;
255
+ case 'nginx:reload':
256
+ await runNginxCommand('reload', projectRoot);
257
+ return true;
258
+ case 'open:admin': {
259
+ const url = loadClientSiteUrl(projectRoot);
260
+ console.log(label(t('menu.opening', { url })));
261
+ await open(url);
262
+ return true;
263
+ }
264
+ case 'publish': {
265
+ const prev = process.argv.slice();
266
+ process.argv = [process.argv[0], process.argv[1], '--publish'];
267
+ await require('../lib/publish').main();
268
+ process.argv = prev;
269
+ return true;
270
+ }
271
+ case 'exit':
272
+ return false;
273
+ default:
274
+ return true;
275
+ }
276
+ }
277
+ async function runInteractiveLoop() {
278
+ const projectRoot = ensureOriginalCwd();
279
+ const project = describeProject(projectRoot);
280
+ printBanner({ projectRoot, project });
281
+ await printContextStatus(projectRoot);
282
+ console.log(` ${brand.dim(t('menu.shortcuts'))}`);
283
+ console.log('');
284
+ let loop = true;
285
+ while (loop) {
286
+ const { action } = await inquirer.prompt([
287
+ {
288
+ type: 'list',
289
+ name: 'action',
290
+ message: `${brand.primary(t('menu.actionPrefix'))} ${brand.dim('›')}`,
291
+ pageSize: 20,
292
+ loop: false,
293
+ choices: getMenuActions(project),
294
+ },
295
+ ]);
296
+ if (action === 'exit') {
297
+ console.log(brand.muted(t('menu.goodbye')));
298
+ break;
299
+ }
300
+ try {
301
+ const stay = await runMenuAction(action, projectRoot, project);
302
+ if (!stay)
303
+ break;
304
+ if (action !== 'status' && action !== 'doctor') {
305
+ console.log('');
306
+ await printContextStatus(projectRoot);
307
+ }
308
+ }
309
+ catch (err) {
310
+ console.error(fail(err.message || err));
311
+ const { retry } = await inquirer.prompt([
312
+ {
313
+ type: 'confirm',
314
+ name: 'retry',
315
+ message: t('menu.retry'),
316
+ default: true,
317
+ },
318
+ ]);
319
+ loop = retry;
320
+ if (loop) {
321
+ console.log('');
322
+ await printContextStatus(projectRoot);
323
+ }
324
+ }
325
+ }
326
+ }
327
+ module.exports = { runInteractiveLoop, runMenuAction, getMenuActions };
328
+ //# sourceMappingURL=interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/ui/interactive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":""}
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
4
+ const chalk = require('chalk');
5
+ /**
6
+ * ReactPress CLI visual identity — a single source of truth so banners,
7
+ * menus, status, doctor, build output all share the same colours and glyphs.
8
+ */
9
+ const palette = {
10
+ primary: '#7C5CFF',
11
+ accent: '#22D3EE',
12
+ pink: '#F472B6',
13
+ green: '#22C55E',
14
+ amber: '#F59E0B',
15
+ red: '#EF4444',
16
+ gray: '#6B7280',
17
+ dim: '#9CA3AF',
18
+ };
19
+ const brand = {
20
+ primary: chalk.hex(palette.primary),
21
+ accent: chalk.hex(palette.accent),
22
+ pink: chalk.hex(palette.pink),
23
+ success: chalk.hex(palette.green),
24
+ warn: chalk.hex(palette.amber),
25
+ error: chalk.hex(palette.red),
26
+ muted: chalk.hex(palette.gray),
27
+ dim: chalk.hex(palette.dim),
28
+ bold: chalk.bold,
29
+ };
30
+ const icon = {
31
+ ok: brand.success('✓'),
32
+ fail: brand.error('✗'),
33
+ warn: brand.warn('⚠'),
34
+ info: brand.accent('ℹ'),
35
+ arrow: brand.primary('›'),
36
+ pointer: brand.primary('▸'),
37
+ bullet: brand.muted('·'),
38
+ dotOn: brand.success('●'),
39
+ dotOff: brand.muted('○'),
40
+ dotPending: brand.warn('◐'),
41
+ dotInfo: brand.accent('●'),
42
+ spark: brand.primary('✱'),
43
+ link: brand.muted('↗'),
44
+ };
45
+ /**
46
+ * Whether a Unicode code point should occupy two terminal cells.
47
+ *
48
+ * Covers the common "East Asian Wide / Full-width" ranges that show up in
49
+ * Chinese / Japanese / Korean text plus full-width punctuation. We
50
+ * deliberately do not pull in a heavy dependency like `string-width` to keep
51
+ * the CLI's startup cheap.
52
+ */
53
+ function isWideCodePoint(cp) {
54
+ return ((cp >= 0x1100 && cp <= 0x115f) ||
55
+ (cp >= 0x2e80 && cp <= 0x303e) ||
56
+ (cp >= 0x3041 && cp <= 0x33ff) ||
57
+ (cp >= 0x3400 && cp <= 0x4dbf) ||
58
+ (cp >= 0x4e00 && cp <= 0x9fff) ||
59
+ (cp >= 0xa000 && cp <= 0xa4cf) ||
60
+ (cp >= 0xac00 && cp <= 0xd7a3) ||
61
+ (cp >= 0xf900 && cp <= 0xfaff) ||
62
+ (cp >= 0xfe30 && cp <= 0xfe4f) ||
63
+ (cp >= 0xff00 && cp <= 0xff60) ||
64
+ (cp >= 0xffe0 && cp <= 0xffe6) ||
65
+ (cp >= 0x1f300 && cp <= 0x1f64f) ||
66
+ (cp >= 0x1f900 && cp <= 0x1f9ff) ||
67
+ (cp >= 0x20000 && cp <= 0x2fffd) ||
68
+ (cp >= 0x30000 && cp <= 0x3fffd));
69
+ }
70
+ /**
71
+ * Visible terminal-cell width of a string, after stripping ANSI colour codes
72
+ * and accounting for East Asian wide characters (which occupy 2 cells).
73
+ */
74
+ function visibleLength(text) {
75
+ const stripped = String(text)
76
+ .replace(/\u001b\[[0-9;]*m/g, '')
77
+ .replace(/\u001b\]8;[^\u0007\u001b]*(?:\u0007|\u001b\\)/g, '');
78
+ let width = 0;
79
+ for (const ch of stripped) {
80
+ const cp = ch.codePointAt(0);
81
+ if (cp === undefined)
82
+ continue;
83
+ if (cp < 0x20 || (cp >= 0x7f && cp < 0xa0))
84
+ continue;
85
+ width += isWideCodePoint(cp) ? 2 : 1;
86
+ }
87
+ return width;
88
+ }
89
+ function padRight(text, width) {
90
+ const len = visibleLength(text);
91
+ if (len >= width)
92
+ return text;
93
+ return text + ' '.repeat(width - len);
94
+ }
95
+ function padLeft(text, width) {
96
+ const len = visibleLength(text);
97
+ if (len >= width)
98
+ return text;
99
+ return ' '.repeat(width - len) + text;
100
+ }
101
+ function terminalWidth(fallback = 80) {
102
+ const cols = Number(process.stdout.columns) || fallback;
103
+ return Math.max(48, Math.min(120, cols));
104
+ }
105
+ function divider(width = 44, char = '─', colorize = brand.muted) {
106
+ return colorize(char.repeat(width));
107
+ }
108
+ /**
109
+ * Cyberpunk-flavoured progress-bar style decoration.
110
+ * `filled` segments use the primary colour, the trailing track stays muted.
111
+ */
112
+ function pulseBar(width = 24, filled = Math.ceil(width * 0.7)) {
113
+ const f = Math.max(0, Math.min(width, filled));
114
+ const head = brand.primary('▰'.repeat(f));
115
+ const tail = brand.muted('▱'.repeat(Math.max(0, width - f)));
116
+ return `${head}${tail}`;
117
+ }
118
+ /**
119
+ * Three-light status indicator used in the top-right of the banner.
120
+ * Mimics the running-light cluster you'd see on a server rack.
121
+ */
122
+ function statusLights(state = 'online') {
123
+ if (state === 'offline') {
124
+ return `${brand.muted('●')} ${brand.muted('●')} ${brand.muted('●')}`;
125
+ }
126
+ if (state === 'degraded') {
127
+ return `${brand.warn('●')} ${brand.muted('●')} ${brand.muted('○')}`;
128
+ }
129
+ if (state === 'pending') {
130
+ return `${brand.warn('●')} ${brand.warn('●')} ${brand.muted('○')}`;
131
+ }
132
+ return `${brand.success('●')} ${brand.warn('●')} ${brand.muted('○')}`;
133
+ }
134
+ function hex2rgb(h) {
135
+ const s = h.replace('#', '');
136
+ return {
137
+ r: parseInt(s.substring(0, 2), 16),
138
+ g: parseInt(s.substring(2, 4), 16),
139
+ b: parseInt(s.substring(4, 6), 16),
140
+ };
141
+ }
142
+ function rgb2hex(r, g, b) {
143
+ const pad = (n) => n.toString(16).padStart(2, '0');
144
+ return `#${pad(r)}${pad(g)}${pad(b)}`;
145
+ }
146
+ function mixHex(a, b, t) {
147
+ const pa = hex2rgb(a);
148
+ const pb = hex2rgb(b);
149
+ const r = Math.round(pa.r + (pb.r - pa.r) * t);
150
+ const g = Math.round(pa.g + (pb.g - pa.g) * t);
151
+ const bl = Math.round(pa.b + (pb.b - pa.b) * t);
152
+ return rgb2hex(r, g, bl);
153
+ }
154
+ /**
155
+ * Paint a string with a left→right linear gradient across `colors` (hex).
156
+ * Falls back to plain text when stdout does not support truecolor.
157
+ */
158
+ function gradientText(text, colors = [palette.primary, palette.accent], { bold = false } = {}) {
159
+ if (!text)
160
+ return '';
161
+ const supports = chalk.supportsColor && chalk.supportsColor.has16m;
162
+ if (!supports || colors.length < 2) {
163
+ const c = chalk.hex(colors[0] || palette.primary);
164
+ return bold ? c.bold(text) : c(text);
165
+ }
166
+ const chars = [...String(text)];
167
+ const n = Math.max(chars.length - 1, 1);
168
+ return chars
169
+ .map((ch, i) => {
170
+ const ratio = i / n;
171
+ const idx = ratio * (colors.length - 1);
172
+ const lo = Math.floor(idx);
173
+ const hi = Math.min(colors.length - 1, lo + 1);
174
+ const local = idx - lo;
175
+ const c = chalk.hex(mixHex(colors[lo], colors[hi], local));
176
+ return bold ? c.bold(ch) : c(ch);
177
+ })
178
+ .join('');
179
+ }
180
+ function label(text) {
181
+ return `${icon.arrow} ${brand.primary(text)}`;
182
+ }
183
+ function ok(text) {
184
+ return `${icon.ok} ${brand.success(text)}`;
185
+ }
186
+ function fail(text) {
187
+ return `${icon.fail} ${brand.error(text)}`;
188
+ }
189
+ function warn(text) {
190
+ return `${icon.warn} ${brand.warn(text)}`;
191
+ }
192
+ function info(text) {
193
+ return `${icon.info} ${brand.accent(text)}`;
194
+ }
195
+ function chip(text, color = brand.primary) {
196
+ return color(`[ ${text} ]`);
197
+ }
198
+ function kv(key, value, { keyWidth = 10, valueColor = (s) => s } = {}) {
199
+ return `${brand.muted(padRight(key, keyWidth))} ${valueColor(value)}`;
200
+ }
201
+ /**
202
+ * Render a 3-state status pill, e.g. `● online` / `○ offline` / `◐ pending`.
203
+ *
204
+ * @param {boolean | 'pending'} state
205
+ * @param {{ on?: string, off?: string, pending?: string }} labels
206
+ */
207
+ function statusPill(state, labels = {}) {
208
+ if (state === 'pending') {
209
+ return `${icon.dotPending} ${brand.warn(labels.pending || 'pending')}`;
210
+ }
211
+ if (state === true) {
212
+ return `${icon.dotOn} ${brand.success(labels.on || 'online')}`;
213
+ }
214
+ return `${icon.dotOff} ${brand.dim(labels.off || 'offline')}`;
215
+ }
216
+ /**
217
+ * Render a single-line section header: ` ── Title ────────────`.
218
+ */
219
+ function sectionHeader(title, { width } = {}) {
220
+ const w = width ?? terminalWidth();
221
+ const prefix = brand.muted('── ');
222
+ const t = brand.bold(brand.primary(title));
223
+ const usedLen = visibleLength(prefix) + visibleLength(t) + 2;
224
+ const fillLen = Math.max(3, w - usedLen - 2);
225
+ const fill = brand.muted('─'.repeat(fillLen));
226
+ return ` ${prefix}${t} ${fill}`;
227
+ }
228
+ module.exports = {
229
+ palette,
230
+ brand,
231
+ icon,
232
+ label,
233
+ ok,
234
+ fail,
235
+ warn,
236
+ info,
237
+ chip,
238
+ kv,
239
+ statusPill,
240
+ sectionHeader,
241
+ visibleLength,
242
+ padRight,
243
+ padLeft,
244
+ terminalWidth,
245
+ divider,
246
+ gradientText,
247
+ pulseBar,
248
+ statusLights,
249
+ };
250
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":";;AAAA,cAAc;AACd,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/B;;;GAGG;AACH,MAAM,OAAO,GAAG;IACd,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,SAAS;CACf,CAAC;AAEF,MAAM,KAAK,GAAG;IACZ,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;IACnC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;IACjC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;IAC9B,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;IAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;CACjB,CAAC;AAEF,MAAM,IAAI,GAAG;IACX,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;IACtB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;IACtB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IACrB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;IACzB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;IAC3B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;IACxB,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;IACzB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;CACvB,CAAC;AAEF;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,EAAE;IACzB,OAAO,CACL,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,CAAC;QAChC,CAAC,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,CAAC;QAChC,CAAC,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,CAAC;QAChC,CAAC,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,CAAC,CACjC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,IAAI;IACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;SAC1B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,gDAAgD,EAAE,EAAE,CAAC,CAAC;IACjE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,EAAE,KAAK,SAAS;YAAE,SAAS;QAC/B,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC;YAAE,SAAS;QACrD,KAAK,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,IAAI,EAAE,KAAK;IAC3B,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,GAAG,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK;IAC1B,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,GAAG,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;AACxC,CAAC;AAED,SAAS,aAAa,CAAC,QAAQ,GAAG,EAAE;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC;IACxD,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,OAAO,CAAC,KAAK,GAAG,EAAE,EAAE,IAAI,GAAG,GAAG,EAAE,QAAQ,GAAG,KAAK,CAAC,KAAK;IAC7D,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;IAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,KAAK,GAAG,QAAQ;IACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IACvE,CAAC;IACD,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IACtE,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IACrE,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AACxE,CAAC;AAED,SAAS,OAAO,CAAC,CAAC;IAChB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7B,OAAO;QACL,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QAClC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QAClC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACtB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACrB,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,EAAE;IAC3F,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;IACnE,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,KAAK,CAAC,IAAI;IACjB,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,EAAE,CAAC,IAAI;IACd,OAAO,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,IAAI,CAAC,IAAI;IAChB,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,IAAI,CAAC,IAAI;IAChB,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,IAAI,CAAC,IAAI;IAChB,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC,OAAO;IACvC,OAAO,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE;IACnE,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;AACzE,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE;IACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,EAAE,CAAC;IACzE,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;IAC1C,MAAM,CAAC,GAAG,KAAK,IAAI,aAAa,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,OAAO,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IACf,OAAO;IACP,KAAK;IACL,IAAI;IACJ,KAAK;IACL,EAAE;IACF,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,EAAE;IACF,UAAU;IACV,aAAa;IACb,aAAa;IACb,QAAQ;IACR,OAAO;IACP,aAAa;IACb,OAAO;IACP,YAAY;IACZ,QAAQ;IACR,YAAY;CACb,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fecommunity/reactpress",
3
- "version": "3.7.0",
4
- "description": "ReactPress 3.0 — zero-config CMS: one package, one reactpress command",
3
+ "version": "4.0.0-beta.0",
4
+ "description": "ReactPress 4.0 — zero-config CMS: CLI, plugins, desktop, MySQL & SQLite",
5
5
  "author": "fecommunity",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -22,11 +22,10 @@
22
22
  "reactpress": "./bin/reactpress.js",
23
23
  "reactpress-cli": "./bin/reactpress-cli-shim.js"
24
24
  },
25
- "main": "./bin/reactpress.js",
25
+ "main": "./out/bin/reactpress.js",
26
26
  "files": [
27
27
  "bin",
28
- "lib",
29
- "ui",
28
+ "out",
30
29
  "dist",
31
30
  "server",
32
31
  "templates",
@@ -52,9 +51,16 @@
52
51
  "ora": "^5.4.1"
53
52
  },
54
53
  "devDependencies": {
55
- "@fecommunity/reactpress-cli-core": "npm:@fecommunity/reactpress-cli@0.1.0"
54
+ "@fecommunity/reactpress-cli-core": "npm:@fecommunity/reactpress-cli@0.1.0",
55
+ "@types/cross-spawn": "^6.0.6",
56
+ "@types/fs-extra": "^11.0.4",
57
+ "@types/inquirer": "^8.2.10",
58
+ "@types/node": "^24.5.2",
59
+ "typescript": "~5.9.3"
56
60
  },
57
61
  "scripts": {
58
- "test": "node --test tests"
62
+ "build": "tsc -p tsconfig.json",
63
+ "typecheck": "tsc -p tsconfig.json --noEmit",
64
+ "test": "pnpm run build && node --test tests"
59
65
  }
60
66
  }