@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
@@ -6,17 +6,24 @@ export declare const ApiMsg: {
6
6
  readonly API_KEY_MISSING_READ: "API Key missing read permission";
7
7
  readonly MISSING_PARAMS: "Missing required parameters";
8
8
  readonly EMAIL_SEND_FAILED: "Failed to send email";
9
+ readonly EMAIL_CONFIG_INCOMPLETE: "SMTP configuration is incomplete";
10
+ readonly EMAIL_TEST_SENT: "Test email sent successfully";
9
11
  readonly OSS_CONFIG_INCOMPLETE: "OSS configuration is incomplete";
10
12
  readonly WEBHOOK_NOT_FOUND: "Webhook not found";
11
13
  readonly USERNAME_PASSWORD_REQUIRED: "Username and password are required";
14
+ readonly EMAIL_REQUIRED: "Email is required";
15
+ readonly EMAIL_INVALID: "Please enter a valid email address";
16
+ readonly ADMIN_CONSOLE_ACCESS_REQUIRED: "Please contact an administrator for access authorization";
12
17
  readonly USERNAME_INVALID: "Username cannot contain spaces or invalid characters";
13
18
  readonly USER_EXISTS: "User already exists";
14
19
  readonly INVALID_CREDENTIALS: "Invalid username or password";
15
20
  readonly USER_LOCKED: "User is locked and cannot sign in";
21
+ readonly TOO_MANY_LOGIN_ATTEMPTS: "Too many login attempts, please try again later";
16
22
  readonly FORBIDDEN: "You do not have permission for this action";
17
23
  readonly UNAUTHORIZED: "Unauthorized";
18
24
  readonly FORBIDDEN_ACTION: "Forbidden";
19
25
  readonly ARTICLE_TITLE_EXISTS: "Article title already exists";
26
+ readonly ARTICLE_SLUG_EXISTS: "Article slug already exists";
20
27
  readonly REVISION_NOT_FOUND: "Revision not found";
21
28
  readonly TAG_EXISTS: "Tag already exists";
22
29
  readonly CATEGORY_EXISTS: "Category already exists";
@@ -29,4 +36,6 @@ export declare const ApiMsg: {
29
36
  readonly EMAIL_NEW_COMMENT: "New comment notification";
30
37
  readonly EMAIL_COMMENT_REPLY: "Comment reply notification";
31
38
  readonly EMAIL_GITHUB_LOGIN: "GitHub sign-in notification";
39
+ readonly EMAIL_TEST_SUBJECT: "ReactPress SMTP test email";
40
+ readonly EMAIL_TEST_HTML: "This is a test email from your ReactPress site. If you received this message, SMTP is configured correctly.";
32
41
  };
@@ -9,17 +9,24 @@ exports.ApiMsg = {
9
9
  API_KEY_MISSING_READ: 'API Key missing read permission',
10
10
  MISSING_PARAMS: 'Missing required parameters',
11
11
  EMAIL_SEND_FAILED: 'Failed to send email',
12
+ EMAIL_CONFIG_INCOMPLETE: 'SMTP configuration is incomplete',
13
+ EMAIL_TEST_SENT: 'Test email sent successfully',
12
14
  OSS_CONFIG_INCOMPLETE: 'OSS configuration is incomplete',
13
15
  WEBHOOK_NOT_FOUND: 'Webhook not found',
14
16
  USERNAME_PASSWORD_REQUIRED: 'Username and password are required',
17
+ EMAIL_REQUIRED: 'Email is required',
18
+ EMAIL_INVALID: 'Please enter a valid email address',
19
+ ADMIN_CONSOLE_ACCESS_REQUIRED: 'Please contact an administrator for access authorization',
15
20
  USERNAME_INVALID: 'Username cannot contain spaces or invalid characters',
16
21
  USER_EXISTS: 'User already exists',
17
22
  INVALID_CREDENTIALS: 'Invalid username or password',
18
23
  USER_LOCKED: 'User is locked and cannot sign in',
24
+ TOO_MANY_LOGIN_ATTEMPTS: 'Too many login attempts, please try again later',
19
25
  FORBIDDEN: 'You do not have permission for this action',
20
26
  UNAUTHORIZED: 'Unauthorized',
21
27
  FORBIDDEN_ACTION: 'Forbidden',
22
28
  ARTICLE_TITLE_EXISTS: 'Article title already exists',
29
+ ARTICLE_SLUG_EXISTS: 'Article slug already exists',
23
30
  REVISION_NOT_FOUND: 'Revision not found',
24
31
  TAG_EXISTS: 'Tag already exists',
25
32
  CATEGORY_EXISTS: 'Category already exists',
@@ -32,5 +39,7 @@ exports.ApiMsg = {
32
39
  EMAIL_NEW_COMMENT: 'New comment notification',
33
40
  EMAIL_COMMENT_REPLY: 'Comment reply notification',
34
41
  EMAIL_GITHUB_LOGIN: 'GitHub sign-in notification',
42
+ EMAIL_TEST_SUBJECT: 'ReactPress SMTP test email',
43
+ EMAIL_TEST_HTML: 'This is a test email from your ReactPress site. If you received this message, SMTP is configured correctly.',
35
44
  };
36
45
  //# sourceMappingURL=api-messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-messages.js","sourceRoot":"","sources":["../../src/common/api-messages.ts"],"names":[],"mappings":";;;AACa,QAAA,MAAM,GAAG;IACpB,WAAW,EAAE,uBAAuB;IACpC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IACtC,oBAAoB,EAAE,iCAAiC;IACvD,cAAc,EAAE,6BAA6B;IAC7C,iBAAiB,EAAE,sBAAsB;IACzC,qBAAqB,EAAE,iCAAiC;IACxD,iBAAiB,EAAE,mBAAmB;IAEtC,0BAA0B,EAAE,oCAAoC;IAChE,gBAAgB,EAAE,sDAAsD;IACxE,WAAW,EAAE,qBAAqB;IAClC,mBAAmB,EAAE,8BAA8B;IACnD,WAAW,EAAE,mCAAmC;IAChD,SAAS,EAAE,4CAA4C;IACvD,YAAY,EAAE,cAAc;IAC5B,gBAAgB,EAAE,WAAW;IAE7B,oBAAoB,EAAE,8BAA8B;IACpD,kBAAkB,EAAE,oBAAoB;IAExC,UAAU,EAAE,oBAAoB;IAChC,eAAe,EAAE,yBAAyB;IAC1C,WAAW,EAAE,qBAAqB;IAClC,gBAAgB,EAAE,+BAA+B;IACjD,yBAAyB,EAAE,2BAA2B;IACtD,mBAAmB,EAAE,2CAA2C;IAEhE,oBAAoB,EAAE,uCAAuC;IAC7D,qBAAqB,EAAE,6CAA6C;IAEpE,iBAAiB,EAAE,0BAA0B;IAC7C,mBAAmB,EAAE,4BAA4B;IACjD,kBAAkB,EAAE,6BAA6B;CACzC,CAAC"}
1
+ {"version":3,"file":"api-messages.js","sourceRoot":"","sources":["../../src/common/api-messages.ts"],"names":[],"mappings":";;;AACa,QAAA,MAAM,GAAG;IACpB,WAAW,EAAE,uBAAuB;IACpC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IACtC,oBAAoB,EAAE,iCAAiC;IACvD,cAAc,EAAE,6BAA6B;IAC7C,iBAAiB,EAAE,sBAAsB;IACzC,uBAAuB,EAAE,kCAAkC;IAC3D,eAAe,EAAE,8BAA8B;IAC/C,qBAAqB,EAAE,iCAAiC;IACxD,iBAAiB,EAAE,mBAAmB;IAEtC,0BAA0B,EAAE,oCAAoC;IAChE,cAAc,EAAE,mBAAmB;IACnC,aAAa,EAAE,oCAAoC;IACnD,6BAA6B,EAAE,0DAA0D;IACzF,gBAAgB,EAAE,sDAAsD;IACxE,WAAW,EAAE,qBAAqB;IAClC,mBAAmB,EAAE,8BAA8B;IACnD,WAAW,EAAE,mCAAmC;IAChD,uBAAuB,EAAE,iDAAiD;IAC1E,SAAS,EAAE,4CAA4C;IACvD,YAAY,EAAE,cAAc;IAC5B,gBAAgB,EAAE,WAAW;IAE7B,oBAAoB,EAAE,8BAA8B;IACpD,mBAAmB,EAAE,6BAA6B;IAClD,kBAAkB,EAAE,oBAAoB;IAExC,UAAU,EAAE,oBAAoB;IAChC,eAAe,EAAE,yBAAyB;IAC1C,WAAW,EAAE,qBAAqB;IAClC,gBAAgB,EAAE,+BAA+B;IACjD,yBAAyB,EAAE,2BAA2B;IACtD,mBAAmB,EAAE,2CAA2C;IAEhE,oBAAoB,EAAE,uCAAuC;IAC7D,qBAAqB,EAAE,6CAA6C;IAEpE,iBAAiB,EAAE,0BAA0B;IAC7C,mBAAmB,EAAE,4BAA4B;IACjD,kBAAkB,EAAE,6BAA6B;IACjD,kBAAkB,EAAE,4BAA4B;IAChD,eAAe,EACb,6GAA6G;CACvG,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { TypeOrmModuleOptions } from '@nestjs/typeorm';
3
+ export declare function createTypeOrmOptions(configService: ConfigService): TypeOrmModuleOptions;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTypeOrmOptions = void 0;
4
+ const api_key_entity_1 = require("../modules/api-key/api-key.entity");
5
+ const article_entity_1 = require("../modules/article/article.entity");
6
+ const article_revision_entity_1 = require("../modules/article/article-revision.entity");
7
+ const category_entity_1 = require("../modules/category/category.entity");
8
+ const comment_entity_1 = require("../modules/comment/comment.entity");
9
+ const file_entity_1 = require("../modules/file/file.entity");
10
+ const knowledge_entity_1 = require("../modules/knowledge/knowledge.entity");
11
+ const page_entity_1 = require("../modules/page/page.entity");
12
+ const search_entity_1 = require("../modules/search/search.entity");
13
+ const setting_entity_1 = require("../modules/setting/setting.entity");
14
+ const smtp_entity_1 = require("../modules/smtp/smtp.entity");
15
+ const tag_entity_1 = require("../modules/tag/tag.entity");
16
+ const user_entity_1 = require("../modules/user/user.entity");
17
+ const view_entity_1 = require("../modules/view/view.entity");
18
+ const webhook_entity_1 = require("../modules/webhook/webhook.entity");
19
+ const ENTITIES = [
20
+ user_entity_1.User,
21
+ file_entity_1.File,
22
+ knowledge_entity_1.Knowledge,
23
+ article_entity_1.Article,
24
+ article_revision_entity_1.ArticleRevision,
25
+ category_entity_1.Category,
26
+ tag_entity_1.Tag,
27
+ comment_entity_1.Comment,
28
+ setting_entity_1.Setting,
29
+ smtp_entity_1.SMTP,
30
+ page_entity_1.Page,
31
+ view_entity_1.View,
32
+ search_entity_1.Search,
33
+ api_key_entity_1.ApiKey,
34
+ webhook_entity_1.Webhook,
35
+ ];
36
+ function createTypeOrmOptions(configService) {
37
+ const dbType = String(configService.get('DB_TYPE') || 'mysql').toLowerCase();
38
+ if (dbType === 'sqlite') {
39
+ return {
40
+ type: 'sqlite',
41
+ database: configService.get('DB_DATABASE') || 'reactpress.db',
42
+ entities: ENTITIES,
43
+ synchronize: true,
44
+ };
45
+ }
46
+ return {
47
+ type: 'mysql',
48
+ entities: ENTITIES,
49
+ host: configService.get('DB_HOST', '0.0.0.0'),
50
+ port: configService.get('DB_PORT', 3306),
51
+ username: configService.get('DB_USER', 'root'),
52
+ password: configService.get('DB_PASSWD', 'root'),
53
+ database: configService.get('DB_DATABASE', 'reactpress'),
54
+ charset: 'utf8mb4',
55
+ timezone: '+08:00',
56
+ synchronize: true,
57
+ };
58
+ }
59
+ exports.createTypeOrmOptions = createTypeOrmOptions;
60
+ //# sourceMappingURL=typeorm-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeorm-options.js","sourceRoot":"","sources":["../../src/database/typeorm-options.ts"],"names":[],"mappings":";;;AAGA,sEAA2D;AAC3D,sEAA4D;AAC5D,wFAA6E;AAC7E,yEAA+D;AAC/D,sEAA4D;AAC5D,6DAAmD;AACnD,4EAAkE;AAClE,6DAAmD;AACnD,mEAAyD;AACzD,sEAA4D;AAC5D,6DAAmD;AACnD,0DAAgD;AAChD,6DAAmD;AACnD,6DAAmD;AACnD,sEAA4D;AAE5D,MAAM,QAAQ,GAAG;IACf,kBAAI;IACJ,kBAAI;IACJ,4BAAS;IACT,wBAAO;IACP,yCAAe;IACf,0BAAQ;IACR,gBAAG;IACH,wBAAO;IACP,wBAAO;IACP,kBAAI;IACJ,kBAAI;IACJ,kBAAI;IACJ,sBAAM;IACN,uBAAM;IACN,wBAAO;CACR,CAAC;AAEF,SAAgB,oBAAoB,CAAC,aAA4B;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAE7E,IAAI,MAAM,KAAK,QAAQ,EAAE;QACvB,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,eAAe;YAC7D,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,IAAI;SAClB,CAAC;KACH;IAED,OAAO;QACL,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC;QAC7C,IAAI,EAAE,aAAa,CAAC,GAAG,CAAS,SAAS,EAAE,IAAI,CAAC;QAChD,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;QAC9C,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;QAChD,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC;QACxD,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,IAAI;KAClB,CAAC;AACJ,CAAC;AAxBD,oDAwBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"api-key.controller.js","sourceRoot":"","sources":["../../../src/modules/api-key/api-key.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAuF;AACvF,6CAA0C;AAE1C,2DAAsD;AACtD,qDAAwD;AACxD,uDAAkD;AAMlD,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAC3B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAG7D,IAAI;QACF,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAGD,MAAM,CAAS,IAAuC;QACpD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;IACrE,CAAC;IAGD,MAAM,CAAc,EAAU;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;CACF,CAAA;AAbC;IADC,IAAA,YAAG,GAAE;;;;4CAGL;AAGD;IADC,IAAA,aAAI,GAAE;IACC,WAAA,IAAA,aAAI,GAAE,CAAA;;;;8CAEb;AAGD;IADC,IAAA,eAAM,EAAC,KAAK,CAAC;IACN,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;8CAElB;AAhBU,gBAAgB;IAJ5B,IAAA,iBAAO,EAAC,QAAQ,CAAC;IACjB,IAAA,mBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,kBAAS,EAAC,wBAAU,EAAE,6BAAY,CAAC;IACnC,IAAA,mBAAK,EAAC,OAAO,CAAC;qCAE+B,+BAAa;GAD9C,gBAAgB,CAiB5B;AAjBY,4CAAgB"}
1
+ {"version":3,"file":"api-key.controller.js","sourceRoot":"","sources":["../../../src/modules/api-key/api-key.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAuF;AACvF,6CAA0C;AAE1C,2DAAsD;AACtD,qDAAwD;AACxD,uDAAkD;AAM3C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAG7D,IAAI;QACF,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAGD,MAAM,CAAS,IAAuC;QACpD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;IACrE,CAAC;IAGD,MAAM,CAAc,EAAU;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;CACF,CAAA;AAdC;IAAC,IAAA,YAAG,GAAE;;;;4CAGL;AAED;IAAC,IAAA,aAAI,GAAE;IACC,WAAA,IAAA,aAAI,GAAE,CAAA;;;;8CAEb;AAED;IAAC,IAAA,eAAM,EAAC,KAAK,CAAC;IACN,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;8CAElB;AAhBU,gBAAgB;IAJ5B,IAAA,iBAAO,EAAC,QAAQ,CAAC;IACjB,IAAA,mBAAU,EAAC,SAAS,CAAC;IACrB,IAAA,kBAAS,EAAC,wBAAU,EAAE,6BAAY,CAAC;IACnC,IAAA,mBAAK,EAAC,OAAO,CAAC;qCAE+B,+BAAa;GAD9C,gBAAgB,CAiB5B;AAjBY,4CAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"api-key.entity.js","sourceRoot":"","sources":["../../../src/modules/api-key/api-key.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qCAAqG;AAGrG,IAAa,MAAM,GAAnB,MAAa,MAAM;CAiClB,CAAA;AA9BC;IAFC,IAAA,qBAAW,GAAE;IACb,IAAA,gCAAsB,EAAC,MAAM,CAAC;;kCACpB;AAIX;IAFC,IAAA,qBAAW,GAAE;IACb,IAAA,gBAAM,GAAE;;oCACI;AAIb;IAFC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;IAC1D,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;;uCACV;AAIhB;IAFC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,qCAAqC,EAAE,CAAC;IACnE,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;;sCACb;AAIf;IAFC,IAAA,qBAAW,GAAE;IACb,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACrC;AAIlB;IAFC,IAAA,qBAAW,GAAE;IACb,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;uCACT;AAGjB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;8BAC9B,IAAI;wCAAC;AAGf;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;8BAC9B,IAAI;wCAAC;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACjC,IAAI;0CAAC;AAhCN,MAAM;IADlB,IAAA,gBAAM,EAAC,UAAU,CAAC;GACN,MAAM,CAiClB;AAjCY,wBAAM"}
1
+ {"version":3,"file":"api-key.entity.js","sourceRoot":"","sources":["../../../src/modules/api-key/api-key.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qCAAqG;AAG9F,IAAM,MAAM,GAAZ,MAAM,MAAM;CAiClB,CAAA;AAhCC;IAAC,IAAA,qBAAW,GAAE;IACb,IAAA,gCAAsB,EAAC,MAAM,CAAC;;kCACpB;AAEX;IAAC,IAAA,qBAAW,GAAE;IACb,IAAA,gBAAM,GAAE;;oCACI;AAEb;IAAC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;IAC1D,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;;uCACV;AAEhB;IAAC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,qCAAqC,EAAE,CAAC;IACnE,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;;sCACb;AAEf;IAAC,IAAA,qBAAW,GAAE;IACb,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACrC;AAElB;IAAC,IAAA,qBAAW,GAAE;IACb,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;uCACT;AAEjB;IAAC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;8BAC9B,IAAI;wCAAC;AAEf;IAAC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;8BAC9B,IAAI;wCAAC;AAEf;IAAC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACjC,IAAI;0CAAC;AAhCN,MAAM;IADlB,IAAA,gBAAM,EAAC,UAAU,CAAC;GACN,MAAM,CAiClB;AAjCY,wBAAM"}
@@ -10,8 +10,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ApiKeyGuard = void 0;
13
- const api_messages_1 = require("../../common/api-messages");
14
13
  const common_1 = require("@nestjs/common");
14
+ const api_messages_1 = require("../../common/api-messages");
15
15
  const api_key_service_1 = require("./api-key.service");
16
16
  let ApiKeyGuard = class ApiKeyGuard {
17
17
  constructor(apiKeyService) {
@@ -19,8 +19,7 @@ let ApiKeyGuard = class ApiKeyGuard {
19
19
  }
20
20
  async canActivate(context) {
21
21
  const request = context.switchToHttp().getRequest();
22
- const rawKey = request.headers['x-api-key'] ||
23
- (request.headers.authorization || '').replace(/^Bearer\s+/i, '').trim();
22
+ const rawKey = request.headers['x-api-key'] || (request.headers.authorization || '').replace(/^Bearer\s+/i, '').trim();
24
23
  if (!rawKey) {
25
24
  throw new common_1.UnauthorizedException(api_messages_1.ApiMsg.MISSING_API_KEY);
26
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api-key.guard.js","sourceRoot":"","sources":["../../../src/modules/api-key/api-key.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4DAAmD;AACnD,2CAAkG;AAElG,uDAAkD;AAGlD,IAAa,WAAW,GAAxB,MAAa,WAAW;IACtB,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,MAAM,GACV,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;YAC5B,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE1E,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,8BAAqB,CAAC,qBAAM,CAAC,eAAe,CAAC,CAAC;SACzD;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,8BAAqB,CAAC,qBAAM,CAAC,eAAe,CAAC,CAAC;SACzD;QAED,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AArBY,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAEiC,+BAAa;GAD9C,WAAW,CAqBvB;AArBY,kCAAW"}
1
+ {"version":3,"file":"api-key.guard.js","sourceRoot":"","sources":["../../../src/modules/api-key/api-key.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAkG;AAElG,4DAAmD;AACnD,uDAAkD;AAG3C,IAAM,WAAW,GAAjB,MAAM,WAAW;IACtB,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,MAAM,GACV,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE1G,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,8BAAqB,CAAC,qBAAM,CAAC,eAAe,CAAC,CAAC;SACzD;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,8BAAqB,CAAC,qBAAM,CAAC,eAAe,CAAC,CAAC;SACzD;QAED,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AApBY,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAEiC,+BAAa;GAD9C,WAAW,CAoBvB;AApBY,kCAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"api-key.module.js","sourceRoot":"","sources":["../../../src/modules/api-key/api-key.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAEhD,qDAAiD;AACjD,6DAAwD;AACxD,qDAA0C;AAC1C,mDAA8C;AAC9C,uDAAkD;AAQlD,IAAa,YAAY,GAAzB,MAAa,YAAY;CAAG,CAAA;AAAf,YAAY;IANxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,uBAAM,CAAC,CAAC,EAAE,wBAAU,CAAC;QACzD,WAAW,EAAE,CAAC,qCAAgB,CAAC;QAC/B,SAAS,EAAE,CAAC,+BAAa,EAAE,2BAAW,CAAC;QACvC,OAAO,EAAE,CAAC,+BAAa,EAAE,2BAAW,CAAC;KACtC,CAAC;GACW,YAAY,CAAG;AAAf,oCAAY"}
1
+ {"version":3,"file":"api-key.module.js","sourceRoot":"","sources":["../../../src/modules/api-key/api-key.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAEhD,qDAAiD;AACjD,6DAAwD;AACxD,qDAA0C;AAC1C,mDAA8C;AAC9C,uDAAkD;AAQ3C,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,YAAY;IANxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,uBAAM,CAAC,CAAC,EAAE,wBAAU,CAAC;QACzD,WAAW,EAAE,CAAC,qCAAgB,CAAC;QAC/B,SAAS,EAAE,CAAC,+BAAa,EAAE,2BAAW,CAAC;QACvC,OAAO,EAAE,CAAC,+BAAa,EAAE,2BAAW,CAAC;KACtC,CAAC;GACW,YAAY,CAAG;AAAf,oCAAY"}
@@ -13,12 +13,12 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.ApiKeyService = void 0;
16
- const api_messages_1 = require("../../common/api-messages");
17
16
  const common_1 = require("@nestjs/common");
18
17
  const typeorm_1 = require("@nestjs/typeorm");
19
18
  const bcrypt = require("bcryptjs");
20
19
  const crypto = require("crypto");
21
20
  const typeorm_2 = require("typeorm");
21
+ const api_messages_1 = require("../../common/api-messages");
22
22
  const api_key_entity_1 = require("./api-key.entity");
23
23
  let ApiKeyService = class ApiKeyService {
24
24
  constructor(apiKeyRepository) {
@@ -1 +1 @@
1
- {"version":3,"file":"api-key.service.js","sourceRoot":"","sources":["../../../src/modules/api-key/api-key.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-key.service.js","sourceRoot":"","sources":["../../../src/modules/api-key/api-key.service.ts"],"names":[],"mappings":"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"}
@@ -31,15 +31,15 @@ __decorate([
31
31
  __metadata("design:type", String)
32
32
  ], ArticleRevision.prototype, "title", void 0);
33
33
  __decorate([
34
- (0, typeorm_1.Column)({ type: 'mediumtext', nullable: true }),
34
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
35
35
  __metadata("design:type", String)
36
36
  ], ArticleRevision.prototype, "content", void 0);
37
37
  __decorate([
38
- (0, typeorm_1.Column)({ type: 'mediumtext', nullable: true }),
38
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
39
39
  __metadata("design:type", String)
40
40
  ], ArticleRevision.prototype, "html", void 0);
41
41
  __decorate([
42
- (0, typeorm_1.Column)('simple-enum', { enum: ['draft', 'publish'] }),
42
+ (0, typeorm_1.Column)({ type: 'varchar', enum: ['draft', 'publish'] }),
43
43
  __metadata("design:type", String)
44
44
  ], ArticleRevision.prototype, "status", void 0);
45
45
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"article-revision.entity.js","sourceRoot":"","sources":["../../../src/modules/article/article-revision.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAA8F;AAE9F,qDAA2C;AAG3C,IAAa,eAAe,GAA5B,MAAa,eAAe;CAwB3B,CAAA;AAtBC;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;2CACpB;AAGX;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,wBAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;8BACzC,wBAAO;gDAAC;AAGjB;IADC,IAAA,gBAAM,GAAE;;kDACS;AAGlB;IADC,IAAA,gBAAM,GAAE;;8CACK;AAGd;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC/B;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAClC;AAGb;IADC,IAAA,gBAAM,EAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;;+CACvC;AAGf;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;8BAC9B,IAAI;iDAAC;AAvBJ,eAAe;IAD3B,IAAA,gBAAM,EAAC,mBAAmB,CAAC;GACf,eAAe,CAwB3B;AAxBY,0CAAe"}
1
+ {"version":3,"file":"article-revision.entity.js","sourceRoot":"","sources":["../../../src/modules/article/article-revision.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAA8F;AAE9F,qDAA2C;AAGpC,IAAM,eAAe,GAArB,MAAM,eAAe;CAwB3B,CAAA;AAvBC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;2CACpB;AAEX;IAAC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,wBAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;8BACzC,wBAAO;gDAAC;AAEjB;IAAC,IAAA,gBAAM,GAAE;;kDACS;AAElB;IAAC,IAAA,gBAAM,GAAE;;8CACK;AAEd;IAAC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACzB;AAEhB;IAAC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC5B;AAEb;IAAC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;;+CACzC;AAEf;IAAC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;8BAC9B,IAAI;iDAAC;AAvBJ,eAAe;IAD3B,IAAA,gBAAM,EAAC,mBAAmB,CAAC;GACf,eAAe,CAwB3B;AAxBY,0CAAe"}
@@ -0,0 +1,2 @@
1
+ export declare function slugifyArticle(value: string): string;
2
+ export declare function normalizeArticleSlug(value: unknown): string | null;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeArticleSlug = exports.slugifyArticle = void 0;
4
+ function slugifyArticle(value) {
5
+ return String(value || '')
6
+ .trim()
7
+ .toLowerCase()
8
+ .replace(/\s+/g, '-')
9
+ .replace(/[^\w\u4e00-\u9fff-]/g, '')
10
+ .replace(/-+/g, '-')
11
+ .replace(/^-|-$/g, '');
12
+ }
13
+ exports.slugifyArticle = slugifyArticle;
14
+ function normalizeArticleSlug(value) {
15
+ const slug = slugifyArticle(String(value !== null && value !== void 0 ? value : ''));
16
+ return slug || null;
17
+ }
18
+ exports.normalizeArticleSlug = normalizeArticleSlug;
19
+ //# sourceMappingURL=article-slug.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"article-slug.util.js","sourceRoot":"","sources":["../../../src/modules/article/article-slug.util.ts"],"names":[],"mappings":";;;AACA,SAAgB,cAAc,CAAC,KAAa;IAC1C,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;SACvB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;SACnC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AARD,wCAQC;AAED,SAAgB,oBAAoB,CAAC,KAAc;IACjD,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC,CAAC,CAAC;IACjD,OAAO,IAAI,IAAI,IAAI,CAAC;AACtB,CAAC;AAHD,oDAGC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scheduled-publish.service.js","sourceRoot":"","sources":["../../../src/modules/article/scheduled-publish.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA2E;AAC3E,6CAAmD;AACnD,qCAAsD;AAEtD,gEAA4D;AAC5D,qDAA2C;AAG3C,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;IAGlC,YAEmB,iBAAsC,EACtC,cAA8B;QAD9B,sBAAiB,GAAjB,iBAAiB,CAAqB;QACtC,mBAAc,GAAd,cAAc,CAAgB;QALzC,UAAK,GAA0B,IAAI,CAAC;IAMzC,CAAC;IAEJ,YAAY;QACV,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,KAAM,CAAC,CAAC;QACzG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,KAAK;YAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC5C,KAAK,EAAE;gBACL,MAAM,EAAE,OAAO;gBACf,kBAAkB,EAAE,IAAA,yBAAe,EAAC,GAAG,CAAC;aACzC;SACF,CAAC,CAAC;QAEH,KAAK,MAAM,OAAO,IAAI,GAAG,EAAE;YACzB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAC3B,OAAO,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;YAC/B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,EAAE;gBACtD,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;SACJ;IACH,CAAC;CACF,CAAA;AAzCY,uBAAuB;IADnC,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,0BAAgB,EAAC,wBAAO,CAAC,CAAA;qCACU,oBAAU;QACb,gCAAc;GANtC,uBAAuB,CAyCnC;AAzCY,0DAAuB"}
1
+ {"version":3,"file":"scheduled-publish.service.js","sourceRoot":"","sources":["../../../src/modules/article/scheduled-publish.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA2E;AAC3E,6CAAmD;AACnD,qCAAsD;AAEtD,gEAA4D;AAC5D,qDAA2C;AAGpC,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAGlC,YAEmB,iBAAsC,EACtC,cAA8B;QAD9B,sBAAiB,GAAjB,iBAAiB,CAAqB;QACtC,mBAAc,GAAd,cAAc,CAAgB;QALzC,UAAK,GAA0B,IAAI,CAAC;IAMzC,CAAC;IAEJ,YAAY;QACV,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,KAAM,CAAC,CAAC;QACzG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,KAAK;YAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC5C,KAAK,EAAE;gBACL,MAAM,EAAE,OAAO;gBACf,kBAAkB,EAAE,IAAA,yBAAe,EAAC,GAAG,CAAC;aACzC;SACF,CAAC,CAAC;QAEH,KAAK,MAAM,OAAO,IAAI,GAAG,EAAE;YACzB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAC3B,OAAO,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;YAC/B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,EAAE;gBACtD,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;SACJ;IACH,CAAC;CACF,CAAA;AAzCY,uBAAuB;IADnC,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,0BAAgB,EAAC,wBAAO,CAAC,CAAA;qCACU,oBAAU;QACb,gCAAc;GANtC,uBAAuB,CAyCnC;AAzCY,0DAAuB"}
@@ -0,0 +1,20 @@
1
+ import type { InstallLocale } from './install-locale';
2
+ export declare const HELLO_WORLD_SEED_MARKER = "reactpress-seed:v4";
3
+ export declare const HELLO_WORLD_LEGACY_TITLES: readonly ["Hello World", "世界,您好!"];
4
+ export declare function getHelloWorldSeed(locale: InstallLocale): {
5
+ markdown: string;
6
+ systemTitle: string;
7
+ systemSubTitle: string;
8
+ seoKeyword: string;
9
+ seoDesc: string;
10
+ articleTitle: string;
11
+ category: {
12
+ label: string;
13
+ value: string;
14
+ };
15
+ tags: readonly {
16
+ label: string;
17
+ value: string;
18
+ }[];
19
+ };
20
+ export declare function getSystemSettingSeedDefaults(locale: InstallLocale): Record<string, string>;
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSystemSettingSeedDefaults = exports.getHelloWorldSeed = exports.HELLO_WORLD_LEGACY_TITLES = exports.HELLO_WORLD_SEED_MARKER = void 0;
4
+ exports.HELLO_WORLD_SEED_MARKER = 'reactpress-seed:v4';
5
+ exports.HELLO_WORLD_LEGACY_TITLES = ['Hello World', '世界,您好!'];
6
+ const SHARED_QUICK_START = `\`\`\`bash
7
+ npm i -g @fecommunity/reactpress@3
8
+ mkdir my-blog && cd my-blog
9
+ reactpress init
10
+ reactpress dev
11
+ \`\`\``;
12
+ const SEED_BY_LOCALE = {
13
+ zh: {
14
+ systemTitle: 'ReactPress',
15
+ systemSubTitle: '又一个 ReactPress 站点',
16
+ seoKeyword: 'React,博客,CMS,ReactPress',
17
+ seoDesc: '又一个 ReactPress 站点。',
18
+ articleTitle: '世界,您好!',
19
+ category: { label: '未分类', value: 'uncategorized' },
20
+ tags: [
21
+ { label: 'ReactPress', value: 'reactpress' },
22
+ { label: '入门', value: 'getting-started' },
23
+ { label: 'CMS', value: 'cms' },
24
+ ],
25
+ markdown: `# 世界,您好!
26
+
27
+ 欢迎光临 ReactPress。这是您的第一篇示例文章,同时演示 Markdown 常用写法。编辑或删掉它,然后开始写作吧!
28
+
29
+ 这是一个普通段落。段落之间用**空行**分隔,行内可以写 **粗体**、*斜体*、~~删除线~~ 和 \`行内代码\`。
30
+
31
+ ## 什么是 ReactPress?
32
+
33
+ **ReactPress 3.0** 是基于 React、Next.js 与 NestJS 的现代化全栈发布平台。安装 CLI 后执行 \`init\` 与 \`dev\`,即可获得前台站点、管理后台与 API,无需手写复杂配置或手动接数据库。
34
+
35
+ > **一个内容中心,多种呈现方式。** 在同一后台发布内容,通过 Web、管理端或 Headless API 展示。
36
+
37
+ ### 列表示例
38
+
39
+ 无序列表:
40
+
41
+ - 编辑或删除本篇示例文章
42
+ - 在「外观」中切换主题
43
+ - 在「设置」中配置站点信息
44
+
45
+ 有序列表:
46
+
47
+ 1. 安装 CLI 并初始化项目
48
+ 2. 运行 \`reactpress dev\` 启动开发环境
49
+ 3. 运行 \`reactpress doctor\` 做环境诊断
50
+
51
+ #### 图片与链接
52
+
53
+ 站点 Logo 示例(可将 \`/logo.png\` 换成媒体库中的地址):
54
+
55
+ ![ReactPress 示例图片](/logo.png)
56
+
57
+ 项目链接:[ReactPress 项目主页](https://github.com/fecommunity/reactpress)
58
+
59
+ ---
60
+
61
+ ## 快速开始
62
+
63
+ ${SHARED_QUICK_START}
64
+
65
+ | 服务 | 说明 |
66
+ | :--- | :--- |
67
+ | 前台站点 | \`http://localhost:3001\` |
68
+ | 管理后台 | \`http://localhost:3001/admin\` |
69
+ | API | \`http://localhost:3002/api\` |
70
+
71
+ 代码块示例:
72
+
73
+ \`\`\`js
74
+ console.log('Hello ReactPress');
75
+ \`\`\`
76
+
77
+ > 提示:使用后台编辑器工具栏可快速插入标题、图片、表格与代码块;右侧栏可设置分类、标签与发布选项。
78
+
79
+ 祝您使用愉快!`,
80
+ },
81
+ en: {
82
+ systemTitle: 'ReactPress',
83
+ systemSubTitle: 'Just another ReactPress site',
84
+ seoKeyword: 'React,blog,CMS,ReactPress',
85
+ seoDesc: 'Just another ReactPress site.',
86
+ articleTitle: 'Hello World',
87
+ category: { label: 'Uncategorized', value: 'uncategorized' },
88
+ tags: [
89
+ { label: 'ReactPress', value: 'reactpress' },
90
+ { label: 'Getting Started', value: 'getting-started' },
91
+ { label: 'CMS', value: 'cms' },
92
+ ],
93
+ markdown: `# Hello World
94
+
95
+ Welcome to ReactPress. This is your first sample post and a quick tour of common Markdown syntax. Edit or delete it, then start writing!
96
+
97
+ This is a normal paragraph. Separate paragraphs with a **blank line**. Inline styles: **bold**, *italic*, ~~strikethrough~~, and \`inline code\`.
98
+
99
+ ## What is ReactPress?
100
+
101
+ **ReactPress** is a modern publishing platform built with React, Next.js, and NestJS. Run \`init\` and \`dev\` after installing the CLI to get a public site, admin console, and API — without hand-writing config or wiring a database yourself.
102
+
103
+ > **One backend, many fronts.** Publish in one place; show content on the web, in admin, or through your own apps via the API.
104
+
105
+ ### Lists
106
+
107
+ Bullet list:
108
+
109
+ - Edit or delete this sample post
110
+ - Switch themes under Appearance
111
+ - Configure your site under Settings
112
+
113
+ Numbered list:
114
+
115
+ 1. Install the CLI and initialize a project
116
+ 2. Run \`reactpress dev\` to start developing
117
+ 3. Run \`reactpress doctor\` for environment diagnostics
118
+
119
+ #### Images and links
120
+
121
+ Site logo example (replace \`/logo.png\` with a URL from the media library):
122
+
123
+ ![ReactPress sample image](/logo.png)
124
+
125
+ Project link: [ReactPress on GitHub](https://github.com/fecommunity/reactpress)
126
+
127
+ ---
128
+
129
+ ## Quick start
130
+
131
+ ${SHARED_QUICK_START}
132
+
133
+ | Service | URL |
134
+ | :------ | :-- |
135
+ | Public site | \`http://localhost:3001\` |
136
+ | Admin | \`http://localhost:3001/admin\` |
137
+ | API | \`http://localhost:3002/api\` |
138
+
139
+ Code block example:
140
+
141
+ \`\`\`js
142
+ console.log('Hello ReactPress');
143
+ \`\`\`
144
+
145
+ > Tip: Use the admin editor toolbar for headings, images, tables, and code blocks. Set category, tags, and publish options in the sidebar.
146
+
147
+ Happy publishing!`,
148
+ },
149
+ };
150
+ function getHelloWorldSeed(locale) {
151
+ const seed = SEED_BY_LOCALE[locale];
152
+ const marker = `<!-- ${exports.HELLO_WORLD_SEED_MARKER}:${locale} -->`;
153
+ return Object.assign(Object.assign({}, seed), { markdown: `${marker}\n${seed.markdown}` });
154
+ }
155
+ exports.getHelloWorldSeed = getHelloWorldSeed;
156
+ function getSystemSettingSeedDefaults(locale) {
157
+ const seed = SEED_BY_LOCALE[locale];
158
+ return {
159
+ systemTitle: seed.systemTitle,
160
+ systemSubTitle: seed.systemSubTitle,
161
+ systemLogo: '/logo.png',
162
+ systemFavicon: '/favicon.png',
163
+ systemNoticeInfo: '[]',
164
+ seoKeyword: seed.seoKeyword,
165
+ seoDesc: seed.seoDesc,
166
+ baiduAnalyticsId: '',
167
+ googleAnalyticsId: '',
168
+ };
169
+ }
170
+ exports.getSystemSettingSeedDefaults = getSystemSettingSeedDefaults;
171
+ //# sourceMappingURL=bootstrap.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.constants.js","sourceRoot":"","sources":["../../../src/modules/bootstrap/bootstrap.constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,uBAAuB,GAAG,oBAAoB,CAAC;AAE/C,QAAA,yBAAyB,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAU,CAAC;AAE5E,MAAM,kBAAkB,GAAG;;;;;OAKpB,CAAC;AAER,MAAM,cAAc,GAYhB;IACF,EAAE,EAAE;QACF,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE,mBAAmB;QACnC,UAAU,EAAE,yBAAyB;QACrC,OAAO,EAAE,oBAAoB;QAC7B,YAAY,EAAE,QAAQ;QACtB,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE;QAClD,IAAI,EAAE;YACJ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;YAC5C,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE;YACzC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;SAC/B;QACD,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCZ,kBAAkB;;;;;;;;;;;;;;;;QAgBZ;KACL;IACD,EAAE,EAAE;QACF,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE,8BAA8B;QAC9C,UAAU,EAAE,2BAA2B;QACvC,OAAO,EAAE,+BAA+B;QACxC,YAAY,EAAE,aAAa;QAC3B,QAAQ,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;QAC5D,IAAI,EAAE;YACJ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;YAC5C,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE;YACtD,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;SAC/B;QACD,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCZ,kBAAkB;;;;;;;;;;;;;;;;kBAgBF;KACf;CACF,CAAC;AAEF,SAAgB,iBAAiB,CAAC,MAAqB;IACrD,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,QAAQ,+BAAuB,IAAI,MAAM,MAAM,CAAC;IAC/D,uCACK,IAAI,KACP,QAAQ,EAAE,GAAG,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,IACvC;AACJ,CAAC;AAPD,8CAOC;AAED,SAAgB,4BAA4B,CAAC,MAAqB;IAChE,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,cAAc;QAC7B,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,gBAAgB,EAAE,EAAE;QACpB,iBAAiB,EAAE,EAAE;KACtB,CAAC;AACJ,CAAC;AAbD,oEAaC"}
@@ -0,0 +1,22 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { ConfigService } from '@nestjs/config';
3
+ import { Repository } from 'typeorm';
4
+ import { ArticleService } from '../article/article.service';
5
+ import { Article } from '../article/article.entity';
6
+ import { Category } from '../category/category.entity';
7
+ import { Tag } from '../tag/tag.entity';
8
+ export declare class BootstrapService implements OnModuleInit {
9
+ private readonly articleRepository;
10
+ private readonly categoryRepository;
11
+ private readonly tagRepository;
12
+ private readonly articleService;
13
+ private readonly configService;
14
+ private readonly logger;
15
+ constructor(articleRepository: Repository<Article>, categoryRepository: Repository<Category>, tagRepository: Repository<Tag>, articleService: ArticleService, configService: ConfigService);
16
+ onModuleInit(): void;
17
+ private resolveLocale;
18
+ private runFirstRunBootstrap;
19
+ seedHelloWorldArticle(): Promise<void>;
20
+ private findOrCreateCategory;
21
+ private findOrCreateTag;
22
+ }