@fecommunity/reactpress 3.0.3 → 3.0.4

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 (541) hide show
  1. package/bin/reactpress.js +127 -20
  2. package/dist/index.js +0 -0
  3. package/lib/build.js +25 -9
  4. package/lib/db-backup.js +21 -0
  5. package/lib/dev-banner.js +42 -10
  6. package/lib/dev.js +48 -29
  7. package/lib/docker.js +162 -44
  8. package/lib/doctor.js +71 -15
  9. package/lib/http.js +39 -4
  10. package/lib/i18n/strings.js +297 -40
  11. package/lib/lifecycle.js +43 -2
  12. package/lib/nginx.js +342 -0
  13. package/lib/project-type.js +72 -0
  14. package/lib/publish.js +46 -30
  15. package/lib/status.js +69 -45
  16. package/package.json +5 -6
  17. package/server/dist/dist/app.module.d.ts +2 -0
  18. package/server/dist/dist/app.module.js +105 -0
  19. package/server/dist/dist/app.module.js.map +1 -0
  20. package/server/dist/dist/common/api-messages.d.ts +32 -0
  21. package/server/dist/dist/common/api-messages.js +36 -0
  22. package/server/dist/dist/common/api-messages.js.map +1 -0
  23. package/server/dist/dist/filters/http-exception.filter.d.ts +4 -0
  24. package/server/dist/dist/filters/http-exception.filter.js +36 -0
  25. package/server/dist/dist/filters/http-exception.filter.js.map +1 -0
  26. package/server/dist/dist/generate-swagger.d.ts +1 -0
  27. package/server/dist/dist/generate-swagger.js +73 -0
  28. package/server/dist/dist/generate-swagger.js.map +1 -0
  29. package/server/dist/dist/interceptors/transform.interceptor.d.ts +9 -0
  30. package/server/dist/dist/interceptors/transform.interceptor.js +36 -0
  31. package/server/dist/dist/interceptors/transform.interceptor.js.map +1 -0
  32. package/server/dist/dist/logger/index.d.ts +4 -0
  33. package/server/dist/dist/logger/index.js +33 -0
  34. package/server/dist/dist/logger/index.js.map +1 -0
  35. package/server/dist/dist/main.d.ts +6 -0
  36. package/server/dist/dist/main.js +263 -0
  37. package/server/dist/dist/main.js.map +1 -0
  38. package/server/dist/dist/modules/api-key/api-key.controller.d.ts +14 -0
  39. package/server/dist/dist/modules/api-key/api-key.controller.js +63 -0
  40. package/server/dist/dist/modules/api-key/api-key.controller.js.map +1 -0
  41. package/server/dist/dist/modules/api-key/api-key.entity.d.ts +11 -0
  42. package/server/dist/dist/modules/api-key/api-key.entity.js +63 -0
  43. package/server/dist/dist/modules/api-key/api-key.entity.js.map +1 -0
  44. package/server/dist/dist/modules/api-key/api-key.guard.d.ts +7 -0
  45. package/server/dist/dist/modules/api-key/api-key.guard.js +40 -0
  46. package/server/dist/dist/modules/api-key/api-key.guard.js.map +1 -0
  47. package/server/dist/dist/modules/api-key/api-key.module.d.ts +2 -0
  48. package/server/dist/dist/modules/api-key/api-key.module.js +28 -0
  49. package/server/dist/dist/modules/api-key/api-key.module.js.map +1 -0
  50. package/server/dist/dist/modules/api-key/api-key.service.d.ts +15 -0
  51. package/server/dist/dist/modules/api-key/api-key.service.js +81 -0
  52. package/server/dist/dist/modules/api-key/api-key.service.js.map +1 -0
  53. package/server/dist/dist/modules/article/article-revision.entity.d.ts +11 -0
  54. package/server/dist/dist/modules/article/article-revision.entity.js +53 -0
  55. package/server/dist/dist/modules/article/article-revision.entity.js.map +1 -0
  56. package/server/dist/dist/modules/article/article.controller.d.ts +32 -0
  57. package/server/dist/dist/modules/article/article.controller.js +242 -0
  58. package/server/dist/dist/modules/article/article.controller.js.map +1 -0
  59. package/server/dist/dist/modules/article/article.entity.d.ts +24 -0
  60. package/server/dist/dist/modules/article/article.entity.js +133 -0
  61. package/server/dist/dist/modules/article/article.entity.js.map +1 -0
  62. package/server/dist/dist/modules/article/article.module.d.ts +2 -0
  63. package/server/dist/dist/modules/article/article.module.js +42 -0
  64. package/server/dist/dist/modules/article/article.module.js.map +1 -0
  65. package/server/dist/dist/modules/article/article.service.d.ts +38 -0
  66. package/server/dist/dist/modules/article/article.service.js +357 -0
  67. package/server/dist/dist/modules/article/article.service.js.map +1 -0
  68. package/server/dist/dist/modules/article/article.util.d.ts +1 -0
  69. package/server/dist/dist/modules/article/article.util.js +9 -0
  70. package/server/dist/dist/modules/article/article.util.js.map +1 -0
  71. package/server/dist/dist/modules/article/scheduled-publish.service.d.ts +13 -0
  72. package/server/dist/dist/modules/article/scheduled-publish.service.js +65 -0
  73. package/server/dist/dist/modules/article/scheduled-publish.service.js.map +1 -0
  74. package/server/dist/dist/modules/auth/auth.controller.d.ts +12 -0
  75. package/server/dist/dist/modules/auth/auth.controller.js +66 -0
  76. package/server/dist/dist/modules/auth/auth.controller.js.map +1 -0
  77. package/server/dist/dist/modules/auth/auth.module.d.ts +2 -0
  78. package/server/dist/dist/modules/auth/auth.module.js +41 -0
  79. package/server/dist/dist/modules/auth/auth.module.js.map +1 -0
  80. package/server/dist/dist/modules/auth/auth.service.d.ts +26 -0
  81. package/server/dist/dist/modules/auth/auth.service.js +128 -0
  82. package/server/dist/dist/modules/auth/auth.service.js.map +1 -0
  83. package/server/dist/dist/modules/auth/jwt-auth.guard.d.ts +7 -0
  84. package/server/dist/dist/modules/auth/jwt-auth.guard.js +30 -0
  85. package/server/dist/dist/modules/auth/jwt-auth.guard.js.map +1 -0
  86. package/server/dist/dist/modules/auth/jwt.strategy.d.ts +9 -0
  87. package/server/dist/dist/modules/auth/jwt.strategy.js +39 -0
  88. package/server/dist/dist/modules/auth/jwt.strategy.js.map +1 -0
  89. package/server/dist/dist/modules/auth/roles.guard.d.ts +10 -0
  90. package/server/dist/dist/modules/auth/roles.guard.js +46 -0
  91. package/server/dist/dist/modules/auth/roles.guard.js.map +1 -0
  92. package/server/dist/dist/modules/category/category.controller.d.ts +11 -0
  93. package/server/dist/dist/modules/category/category.controller.js +91 -0
  94. package/server/dist/dist/modules/category/category.controller.js.map +1 -0
  95. package/server/dist/dist/modules/category/category.entity.d.ts +9 -0
  96. package/server/dist/dist/modules/category/category.entity.js +60 -0
  97. package/server/dist/dist/modules/category/category.entity.js.map +1 -0
  98. package/server/dist/dist/modules/category/category.module.d.ts +2 -0
  99. package/server/dist/dist/modules/category/category.module.js +27 -0
  100. package/server/dist/dist/modules/category/category.module.js.map +1 -0
  101. package/server/dist/dist/modules/category/category.service.d.ts +12 -0
  102. package/server/dist/dist/modules/category/category.service.js +90 -0
  103. package/server/dist/dist/modules/category/category.service.js.map +1 -0
  104. package/server/dist/dist/modules/comment/comment.controller.d.ts +12 -0
  105. package/server/dist/dist/modules/comment/comment.controller.js +100 -0
  106. package/server/dist/dist/modules/comment/comment.controller.js.map +1 -0
  107. package/server/dist/dist/modules/comment/comment.entity.d.ts +17 -0
  108. package/server/dist/dist/modules/comment/comment.entity.js +104 -0
  109. package/server/dist/dist/modules/comment/comment.entity.js.map +1 -0
  110. package/server/dist/dist/modules/comment/comment.module.d.ts +2 -0
  111. package/server/dist/dist/modules/comment/comment.module.js +39 -0
  112. package/server/dist/dist/modules/comment/comment.module.js.map +1 -0
  113. package/server/dist/dist/modules/comment/comment.service.d.ts +26 -0
  114. package/server/dist/dist/modules/comment/comment.service.js +182 -0
  115. package/server/dist/dist/modules/comment/comment.service.js.map +1 -0
  116. package/server/dist/dist/modules/comment/html.d.ts +15 -0
  117. package/server/dist/dist/modules/comment/html.js +632 -0
  118. package/server/dist/dist/modules/comment/html.js.map +1 -0
  119. package/server/dist/dist/modules/file/file.controller.d.ts +10 -0
  120. package/server/dist/dist/modules/file/file.controller.js +84 -0
  121. package/server/dist/dist/modules/file/file.controller.js.map +1 -0
  122. package/server/dist/dist/modules/file/file.entity.d.ts +9 -0
  123. package/server/dist/dist/modules/file/file.entity.js +60 -0
  124. package/server/dist/dist/modules/file/file.entity.js.map +1 -0
  125. package/server/dist/dist/modules/file/file.module.d.ts +2 -0
  126. package/server/dist/dist/modules/file/file.module.js +27 -0
  127. package/server/dist/dist/modules/file/file.module.js.map +1 -0
  128. package/server/dist/dist/modules/file/file.service.d.ts +17 -0
  129. package/server/dist/dist/modules/file/file.service.js +111 -0
  130. package/server/dist/dist/modules/file/file.service.js.map +1 -0
  131. package/server/dist/dist/modules/health/health.controller.d.ts +11 -0
  132. package/server/dist/dist/modules/health/health.controller.js +57 -0
  133. package/server/dist/dist/modules/health/health.controller.js.map +1 -0
  134. package/server/dist/dist/modules/health/health.module.d.ts +2 -0
  135. package/server/dist/dist/modules/health/health.module.js +20 -0
  136. package/server/dist/dist/modules/health/health.module.js.map +1 -0
  137. package/server/dist/dist/modules/install/install.controller.d.ts +11 -0
  138. package/server/dist/dist/modules/install/install.controller.js +49 -0
  139. package/server/dist/dist/modules/install/install.controller.js.map +1 -0
  140. package/server/dist/dist/modules/install/install.module.d.ts +2 -0
  141. package/server/dist/dist/modules/install/install.module.js +26 -0
  142. package/server/dist/dist/modules/install/install.module.js.map +1 -0
  143. package/server/dist/dist/modules/install/install.service.d.ts +12 -0
  144. package/server/dist/dist/modules/install/install.service.js +63 -0
  145. package/server/dist/dist/modules/install/install.service.js.map +1 -0
  146. package/server/dist/dist/modules/knowledge/knowledge.controller.d.ts +14 -0
  147. package/server/dist/dist/modules/knowledge/knowledge.controller.js +128 -0
  148. package/server/dist/dist/modules/knowledge/knowledge.controller.js.map +1 -0
  149. package/server/dist/dist/modules/knowledge/knowledge.entity.d.ts +18 -0
  150. package/server/dist/dist/modules/knowledge/knowledge.entity.js +109 -0
  151. package/server/dist/dist/modules/knowledge/knowledge.entity.js.map +1 -0
  152. package/server/dist/dist/modules/knowledge/knowledge.module.d.ts +2 -0
  153. package/server/dist/dist/modules/knowledge/knowledge.module.js +27 -0
  154. package/server/dist/dist/modules/knowledge/knowledge.module.js.map +1 -0
  155. package/server/dist/dist/modules/knowledge/knowledge.service.d.ts +14 -0
  156. package/server/dist/dist/modules/knowledge/knowledge.service.js +144 -0
  157. package/server/dist/dist/modules/knowledge/knowledge.service.js.map +1 -0
  158. package/server/dist/dist/modules/page/page.controller.d.ts +12 -0
  159. package/server/dist/dist/modules/page/page.controller.js +102 -0
  160. package/server/dist/dist/modules/page/page.controller.js.map +1 -0
  161. package/server/dist/dist/modules/page/page.entity.d.ts +15 -0
  162. package/server/dist/dist/modules/page/page.entity.js +94 -0
  163. package/server/dist/dist/modules/page/page.entity.js.map +1 -0
  164. package/server/dist/dist/modules/page/page.module.d.ts +2 -0
  165. package/server/dist/dist/modules/page/page.module.js +27 -0
  166. package/server/dist/dist/modules/page/page.module.js.map +1 -0
  167. package/server/dist/dist/modules/page/page.service.d.ts +12 -0
  168. package/server/dist/dist/modules/page/page.service.js +98 -0
  169. package/server/dist/dist/modules/page/page.service.js.map +1 -0
  170. package/server/dist/dist/modules/search/search.controller.d.ts +8 -0
  171. package/server/dist/dist/modules/search/search.controller.js +67 -0
  172. package/server/dist/dist/modules/search/search.controller.js.map +1 -0
  173. package/server/dist/dist/modules/search/search.entity.d.ts +8 -0
  174. package/server/dist/dist/modules/search/search.entity.js +59 -0
  175. package/server/dist/dist/modules/search/search.entity.js.map +1 -0
  176. package/server/dist/dist/modules/search/search.module.d.ts +2 -0
  177. package/server/dist/dist/modules/search/search.module.js +27 -0
  178. package/server/dist/dist/modules/search/search.module.js.map +1 -0
  179. package/server/dist/dist/modules/search/search.service.d.ts +12 -0
  180. package/server/dist/dist/modules/search/search.service.js +84 -0
  181. package/server/dist/dist/modules/search/search.service.js.map +1 -0
  182. package/server/dist/dist/modules/setting/setting.constant.d.ts +3 -0
  183. package/server/dist/dist/modules/setting/setting.constant.js +25 -0
  184. package/server/dist/dist/modules/setting/setting.constant.js.map +1 -0
  185. package/server/dist/dist/modules/setting/setting.controller.d.ts +12 -0
  186. package/server/dist/dist/modules/setting/setting.controller.js +77 -0
  187. package/server/dist/dist/modules/setting/setting.controller.js.map +1 -0
  188. package/server/dist/dist/modules/setting/setting.entity.d.ts +26 -0
  189. package/server/dist/dist/modules/setting/setting.entity.js +149 -0
  190. package/server/dist/dist/modules/setting/setting.entity.js.map +1 -0
  191. package/server/dist/dist/modules/setting/setting.module.d.ts +2 -0
  192. package/server/dist/dist/modules/setting/setting.module.js +28 -0
  193. package/server/dist/dist/modules/setting/setting.module.js.map +1 -0
  194. package/server/dist/dist/modules/setting/setting.service.d.ts +10 -0
  195. package/server/dist/dist/modules/setting/setting.service.js +106 -0
  196. package/server/dist/dist/modules/setting/setting.service.js.map +1 -0
  197. package/server/dist/dist/modules/smtp/mail.util.d.ts +6 -0
  198. package/server/dist/dist/modules/smtp/mail.util.js +33 -0
  199. package/server/dist/dist/modules/smtp/mail.util.js.map +1 -0
  200. package/server/dist/dist/modules/smtp/smtp.controller.d.ts +9 -0
  201. package/server/dist/dist/modules/smtp/smtp.controller.js +69 -0
  202. package/server/dist/dist/modules/smtp/smtp.controller.js.map +1 -0
  203. package/server/dist/dist/modules/smtp/smtp.entity.d.ts +9 -0
  204. package/server/dist/dist/modules/smtp/smtp.entity.js +60 -0
  205. package/server/dist/dist/modules/smtp/smtp.entity.js.map +1 -0
  206. package/server/dist/dist/modules/smtp/smtp.module.d.ts +2 -0
  207. package/server/dist/dist/modules/smtp/smtp.module.js +28 -0
  208. package/server/dist/dist/modules/smtp/smtp.module.js.map +1 -0
  209. package/server/dist/dist/modules/smtp/smtp.service.d.ts +11 -0
  210. package/server/dist/dist/modules/smtp/smtp.service.js +83 -0
  211. package/server/dist/dist/modules/smtp/smtp.service.js.map +1 -0
  212. package/server/dist/dist/modules/tag/tag.controller.d.ts +12 -0
  213. package/server/dist/dist/modules/tag/tag.controller.js +101 -0
  214. package/server/dist/dist/modules/tag/tag.controller.js.map +1 -0
  215. package/server/dist/dist/modules/tag/tag.entity.d.ts +9 -0
  216. package/server/dist/dist/modules/tag/tag.entity.js +59 -0
  217. package/server/dist/dist/modules/tag/tag.entity.js.map +1 -0
  218. package/server/dist/dist/modules/tag/tag.module.d.ts +2 -0
  219. package/server/dist/dist/modules/tag/tag.module.js +27 -0
  220. package/server/dist/dist/modules/tag/tag.module.js.map +1 -0
  221. package/server/dist/dist/modules/tag/tag.service.d.ts +13 -0
  222. package/server/dist/dist/modules/tag/tag.service.js +104 -0
  223. package/server/dist/dist/modules/tag/tag.service.js.map +1 -0
  224. package/server/dist/dist/modules/user/user.controller.d.ts +13 -0
  225. package/server/dist/dist/modules/user/user.controller.js +115 -0
  226. package/server/dist/dist/modules/user/user.controller.js.map +1 -0
  227. package/server/dist/dist/modules/user/user.entity.d.ts +15 -0
  228. package/server/dist/dist/modules/user/user.entity.js +96 -0
  229. package/server/dist/dist/modules/user/user.entity.js.map +1 -0
  230. package/server/dist/dist/modules/user/user.module.d.ts +2 -0
  231. package/server/dist/dist/modules/user/user.module.js +28 -0
  232. package/server/dist/dist/modules/user/user.module.js.map +1 -0
  233. package/server/dist/dist/modules/user/user.service.d.ts +16 -0
  234. package/server/dist/dist/modules/user/user.service.js +152 -0
  235. package/server/dist/dist/modules/user/user.service.js.map +1 -0
  236. package/server/dist/dist/modules/view/view.controller.d.ts +11 -0
  237. package/server/dist/dist/modules/view/view.controller.js +92 -0
  238. package/server/dist/dist/modules/view/view.controller.js.map +1 -0
  239. package/server/dist/dist/modules/view/view.entity.d.ts +14 -0
  240. package/server/dist/dist/modules/view/view.entity.js +88 -0
  241. package/server/dist/dist/modules/view/view.entity.js.map +1 -0
  242. package/server/dist/dist/modules/view/view.module.d.ts +2 -0
  243. package/server/dist/dist/modules/view/view.module.js +27 -0
  244. package/server/dist/dist/modules/view/view.module.js.map +1 -0
  245. package/server/dist/dist/modules/view/view.service.d.ts +11 -0
  246. package/server/dist/dist/modules/view/view.service.js +89 -0
  247. package/server/dist/dist/modules/view/view.service.js.map +1 -0
  248. package/server/dist/dist/modules/webhook/webhook.controller.d.ts +12 -0
  249. package/server/dist/dist/modules/webhook/webhook.controller.js +63 -0
  250. package/server/dist/dist/modules/webhook/webhook.controller.js.map +1 -0
  251. package/server/dist/dist/modules/webhook/webhook.entity.d.ts +9 -0
  252. package/server/dist/dist/modules/webhook/webhook.entity.js +54 -0
  253. package/server/dist/dist/modules/webhook/webhook.entity.js.map +1 -0
  254. package/server/dist/dist/modules/webhook/webhook.module.d.ts +2 -0
  255. package/server/dist/dist/modules/webhook/webhook.module.js +27 -0
  256. package/server/dist/dist/modules/webhook/webhook.module.js.map +1 -0
  257. package/server/dist/dist/modules/webhook/webhook.service.d.ts +16 -0
  258. package/server/dist/dist/modules/webhook/webhook.service.js +97 -0
  259. package/server/dist/dist/modules/webhook/webhook.service.js.map +1 -0
  260. package/server/dist/dist/public/favicon.png +0 -0
  261. package/server/dist/dist/public/index.html +439 -0
  262. package/server/dist/dist/public/swagger/custom.css +11 -0
  263. package/server/dist/dist/starter.d.ts +1 -0
  264. package/server/dist/dist/starter.js +84 -0
  265. package/server/dist/dist/starter.js.map +1 -0
  266. package/server/dist/dist/tsconfig.build.tsbuildinfo +16966 -0
  267. package/server/dist/dist/utils/date.util.d.ts +1 -0
  268. package/server/dist/dist/utils/date.util.js +13 -0
  269. package/server/dist/dist/utils/date.util.js.map +1 -0
  270. package/server/dist/dist/utils/ip.util.d.ts +2 -0
  271. package/server/dist/dist/utils/ip.util.js +27 -0
  272. package/server/dist/dist/utils/ip.util.js.map +1 -0
  273. package/server/dist/dist/utils/markdown.util.d.ts +4 -0
  274. package/server/dist/dist/utils/markdown.util.js +42 -0
  275. package/server/dist/dist/utils/markdown.util.js.map +1 -0
  276. package/server/dist/dist/utils/oss/aliyun-oss-client.d.ts +6 -0
  277. package/server/dist/dist/utils/oss/aliyun-oss-client.js +28 -0
  278. package/server/dist/dist/utils/oss/aliyun-oss-client.js.map +1 -0
  279. package/server/dist/dist/utils/oss/oss-client.d.ts +6 -0
  280. package/server/dist/dist/utils/oss/oss-client.js +10 -0
  281. package/server/dist/dist/utils/oss/oss-client.js.map +1 -0
  282. package/server/dist/dist/utils/oss.util.d.ts +13 -0
  283. package/server/dist/dist/utils/oss.util.js +49 -0
  284. package/server/dist/dist/utils/oss.util.js.map +1 -0
  285. package/server/dist/dist/utils/ua.util.d.ts +9 -0
  286. package/server/dist/dist/utils/ua.util.js +36 -0
  287. package/server/dist/dist/utils/ua.util.js.map +1 -0
  288. package/server/dist/dist/utils/uniqueid.util.d.ts +1 -0
  289. package/server/dist/dist/utils/uniqueid.util.js +9 -0
  290. package/server/dist/dist/utils/uniqueid.util.js.map +1 -0
  291. package/server/dist/dist/utils/upload.util.d.ts +5 -0
  292. package/server/dist/dist/utils/upload.util.js +34 -0
  293. package/server/dist/dist/utils/upload.util.js.map +1 -0
  294. package/server/dist/dist/utils/user.util.d.ts +1 -0
  295. package/server/dist/dist/utils/user.util.js +18 -0
  296. package/server/dist/dist/utils/user.util.js.map +1 -0
  297. package/server/logs/error/error.log.-2026-05-19.log +123 -0
  298. package/server/node_modules/@nestjs/cli/node_modules/rimraf/bin.js +0 -0
  299. package/server/node_modules/@nestjs/cli/node_modules/typescript/bin/tsc +0 -0
  300. package/server/node_modules/@nestjs/cli/node_modules/typescript/bin/tsserver +0 -0
  301. package/server/node_modules/@nestjs/common/node_modules/axios/README.md +0 -0
  302. package/server/node_modules/@nestjs/common/node_modules/axios/lib/adapters/http.js +0 -0
  303. package/server/node_modules/@nestjs/config/node_modules/uuid/dist/bin/uuid +0 -0
  304. package/server/node_modules/@nestjs/platform-express/node_modules/mime/cli.js +0 -0
  305. package/server/node_modules/@nestjs/platform-express/node_modules/mime/src/build.js +0 -0
  306. package/server/node_modules/@nestjs/typeorm/node_modules/uuid/dist/bin/uuid +0 -0
  307. package/server/node_modules/@nuxtjs/opencollective/bin/opencollective.js +0 -0
  308. package/server/node_modules/@pm2/agent/node_modules/dayjs/plugin/objectSupport.d.ts +0 -0
  309. package/server/node_modules/@pm2/agent/node_modules/semver/bin/semver.js +0 -0
  310. package/server/node_modules/@pm2/io/node_modules/semver/bin/semver.js +0 -0
  311. package/server/node_modules/@types/node/LICENSE +0 -0
  312. package/server/node_modules/@types/node/README.md +0 -0
  313. package/server/node_modules/@types/node/assert.d.ts +0 -0
  314. package/server/node_modules/@types/node/async_hooks.d.ts +0 -0
  315. package/server/node_modules/@types/node/buffer.d.ts +0 -0
  316. package/server/node_modules/@types/node/child_process.d.ts +0 -0
  317. package/server/node_modules/@types/node/cluster.d.ts +0 -0
  318. package/server/node_modules/@types/node/console.d.ts +0 -0
  319. package/server/node_modules/@types/node/constants.d.ts +0 -0
  320. package/server/node_modules/@types/node/crypto.d.ts +0 -0
  321. package/server/node_modules/@types/node/dgram.d.ts +0 -0
  322. package/server/node_modules/@types/node/dns.d.ts +0 -0
  323. package/server/node_modules/@types/node/domain.d.ts +0 -0
  324. package/server/node_modules/@types/node/events.d.ts +0 -0
  325. package/server/node_modules/@types/node/fs.d.ts +0 -0
  326. package/server/node_modules/@types/node/globals.d.ts +0 -0
  327. package/server/node_modules/@types/node/globals.global.d.ts +0 -0
  328. package/server/node_modules/@types/node/http.d.ts +0 -0
  329. package/server/node_modules/@types/node/http2.d.ts +0 -0
  330. package/server/node_modules/@types/node/https.d.ts +0 -0
  331. package/server/node_modules/@types/node/index.d.ts +0 -0
  332. package/server/node_modules/@types/node/inspector.d.ts +0 -0
  333. package/server/node_modules/@types/node/module.d.ts +0 -0
  334. package/server/node_modules/@types/node/net.d.ts +0 -0
  335. package/server/node_modules/@types/node/os.d.ts +0 -0
  336. package/server/node_modules/@types/node/package.json +0 -0
  337. package/server/node_modules/@types/node/path.d.ts +0 -0
  338. package/server/node_modules/@types/node/perf_hooks.d.ts +0 -0
  339. package/server/node_modules/@types/node/process.d.ts +0 -0
  340. package/server/node_modules/@types/node/punycode.d.ts +0 -0
  341. package/server/node_modules/@types/node/querystring.d.ts +0 -0
  342. package/server/node_modules/@types/node/readline.d.ts +0 -0
  343. package/server/node_modules/@types/node/repl.d.ts +0 -0
  344. package/server/node_modules/@types/node/stream.d.ts +0 -0
  345. package/server/node_modules/@types/node/string_decoder.d.ts +0 -0
  346. package/server/node_modules/@types/node/timers.d.ts +0 -0
  347. package/server/node_modules/@types/node/tls.d.ts +0 -0
  348. package/server/node_modules/@types/node/trace_events.d.ts +0 -0
  349. package/server/node_modules/@types/node/tty.d.ts +0 -0
  350. package/server/node_modules/@types/node/url.d.ts +0 -0
  351. package/server/node_modules/@types/node/util.d.ts +0 -0
  352. package/server/node_modules/@types/node/v8.d.ts +0 -0
  353. package/server/node_modules/@types/node/vm.d.ts +0 -0
  354. package/server/node_modules/@types/node/wasi.d.ts +0 -0
  355. package/server/node_modules/@types/node/worker_threads.d.ts +0 -0
  356. package/server/node_modules/@types/node/zlib.d.ts +0 -0
  357. package/server/node_modules/@types/zen-observable/LICENSE +0 -0
  358. package/server/node_modules/@types/zen-observable/README.md +0 -0
  359. package/server/node_modules/@types/zen-observable/esm.d.ts +0 -0
  360. package/server/node_modules/@types/zen-observable/extras.d.ts +0 -0
  361. package/server/node_modules/@types/zen-observable/index.d.ts +0 -0
  362. package/server/node_modules/@types/zen-observable/package.json +0 -0
  363. package/server/node_modules/ajv/scripts/info +0 -0
  364. package/server/node_modules/ajv/scripts/prepare-tests +0 -0
  365. package/server/node_modules/ajv/scripts/publish-built-version +0 -0
  366. package/server/node_modules/ajv/scripts/travis-gh-pages +0 -0
  367. package/server/node_modules/arr-diff/LICENSE +0 -0
  368. package/server/node_modules/arr-flatten/LICENSE +0 -0
  369. package/server/node_modules/arr-flatten/README.md +0 -0
  370. package/server/node_modules/array-unique/LICENSE +0 -0
  371. package/server/node_modules/array-unique/README.md +0 -0
  372. package/server/node_modules/aws-ssl-profiles/package.json +0 -0
  373. package/server/node_modules/axios/README.md +0 -0
  374. package/server/node_modules/axios/lib/adapters/http.js +0 -0
  375. package/server/node_modules/blessed/bin/tput.js +0 -0
  376. package/server/node_modules/blessed/example/blessed-telnet.js +0 -0
  377. package/server/node_modules/blessed/example/multiplex.js +0 -0
  378. package/server/node_modules/blessed/example/ping +0 -0
  379. package/server/node_modules/blessed/example/time.js +0 -0
  380. package/server/node_modules/cacache/node_modules/rimraf/bin.js +0 -0
  381. package/server/node_modules/cli-color/bin/generate-color-images +0 -0
  382. package/server/node_modules/cli-color/test/__playground/throbber.formatted.js +0 -0
  383. package/server/node_modules/cli-color/test/__playground/throbber.js +0 -0
  384. package/server/node_modules/cli-highlight/node_modules/wrap-ansi/index.js +0 -0
  385. package/server/node_modules/cliui/node_modules/wrap-ansi/index.js +0 -0
  386. package/server/node_modules/constants-browserify/build.sh +0 -0
  387. package/server/node_modules/copy-concurrently/node_modules/rimraf/bin.js +0 -0
  388. package/server/node_modules/copyfiles/copyfiles +0 -0
  389. package/server/node_modules/copyfiles/index.js +0 -0
  390. package/server/node_modules/cross-env/README.md +0 -0
  391. package/server/node_modules/date-fns/esm/index.js +0 -0
  392. package/server/node_modules/date-fns/esm/previousDay/index.js +0 -0
  393. package/server/node_modules/date-fns/esm/previousFriday/index.js +0 -0
  394. package/server/node_modules/date-fns/esm/previousMonday/index.js +0 -0
  395. package/server/node_modules/date-fns/esm/previousSaturday/index.js +0 -0
  396. package/server/node_modules/date-fns/esm/previousSunday/index.js +0 -0
  397. package/server/node_modules/date-fns/esm/previousThursday/index.js +0 -0
  398. package/server/node_modules/date-fns/esm/previousTuesday/index.js +0 -0
  399. package/server/node_modules/date-fns/esm/previousWednesday/index.js +0 -0
  400. package/server/node_modules/date-fns/index.js +0 -0
  401. package/server/node_modules/date-fns/previousDay/index.js +0 -0
  402. package/server/node_modules/date-fns/previousFriday/index.js +0 -0
  403. package/server/node_modules/date-fns/previousMonday/index.js +0 -0
  404. package/server/node_modules/date-fns/previousSaturday/index.js +0 -0
  405. package/server/node_modules/date-fns/previousSunday/index.js +0 -0
  406. package/server/node_modules/date-fns/previousThursday/index.js +0 -0
  407. package/server/node_modules/date-fns/previousTuesday/index.js +0 -0
  408. package/server/node_modules/date-fns/previousWednesday/index.js +0 -0
  409. package/server/node_modules/dayjs/plugin/arraySupport.d.ts +0 -0
  410. package/server/node_modules/dayjs/plugin/objectSupport.d.ts +0 -0
  411. package/server/node_modules/default-user-agent/node_modules/os-name/cli.js +0 -0
  412. package/server/node_modules/degenerator/node_modules/escodegen/bin/escodegen.js +0 -0
  413. package/server/node_modules/degenerator/node_modules/escodegen/bin/esgenerate.js +0 -0
  414. package/server/node_modules/emojis-list/LICENSE.md +0 -0
  415. package/server/node_modules/emojis-list/README.md +0 -0
  416. package/server/node_modules/errno/build.js +0 -0
  417. package/server/node_modules/errno/cli.js +0 -0
  418. package/server/node_modules/es5-ext/_postinstall.js +0 -0
  419. package/server/node_modules/esprima/bin/esparse.js +0 -0
  420. package/server/node_modules/esprima/bin/esvalidate.js +0 -0
  421. package/server/node_modules/esrecurse/package.json +0 -0
  422. package/server/node_modules/execa/node_modules/semver/bin/semver +0 -0
  423. package/server/node_modules/execa/node_modules/which/bin/which +0 -0
  424. package/server/node_modules/extrareqp2/README.md +0 -0
  425. package/server/node_modules/extrareqp2/lib/adapters/http.js +0 -0
  426. package/server/node_modules/fork-ts-checker-webpack-plugin/node_modules/semver/bin/semver +0 -0
  427. package/server/node_modules/is-class-hotfix/.editorconfig +0 -0
  428. package/server/node_modules/is-class-hotfix/.gitattributes +0 -0
  429. package/server/node_modules/is-class-hotfix/CHANGELOG.md +0 -0
  430. package/server/node_modules/is-class-hotfix/LICENSE.md +0 -0
  431. package/server/node_modules/is-class-hotfix/README.md +0 -0
  432. package/server/node_modules/is-class-hotfix/bower.json +0 -0
  433. package/server/node_modules/is-class-hotfix/is-class.js +0 -0
  434. package/server/node_modules/is-class-hotfix/package.json +0 -0
  435. package/server/node_modules/is-class-hotfix/test/is-class.js +0 -0
  436. package/server/node_modules/is-docker/cli.js +0 -0
  437. package/server/node_modules/js-yaml/bin/js-yaml.js +0 -0
  438. package/server/node_modules/jsonwebtoken/node_modules/semver/bin/semver +0 -0
  439. package/server/node_modules/jstoxml/dist.sh +0 -0
  440. package/server/node_modules/log4js/lib/appenders/fileSync.js +0 -0
  441. package/server/node_modules/log4js/lib/connect-logger.js +0 -0
  442. package/server/node_modules/make-dir/node_modules/semver/bin/semver +0 -0
  443. package/server/node_modules/micromatch/LICENSE +0 -0
  444. package/server/node_modules/miller-rabin/bin/miller-rabin +0 -0
  445. package/server/node_modules/mime/cli.js +0 -0
  446. package/server/node_modules/mkdirp/bin/cmd.js +0 -0
  447. package/server/node_modules/move-concurrently/node_modules/rimraf/bin.js +0 -0
  448. package/server/node_modules/nan/tools/1to2.js +0 -0
  449. package/server/node_modules/needle/bin/needle +0 -0
  450. package/server/node_modules/node-libs-browser/node_modules/buffer/bin/download-node-tests.js +0 -0
  451. package/server/node_modules/node-libs-browser/node_modules/buffer/bin/update-authors.sh +0 -0
  452. package/server/node_modules/open/xdg-open +0 -0
  453. package/server/node_modules/osx-release/cli.js +0 -0
  454. package/server/node_modules/pm2/bin/pm2 +0 -0
  455. package/server/node_modules/pm2/bin/pm2-dev +0 -0
  456. package/server/node_modules/pm2/bin/pm2-docker +0 -0
  457. package/server/node_modules/pm2/bin/pm2-runtime +0 -0
  458. package/server/node_modules/pm2/lib/templates/init-scripts/openrc.tpl +0 -0
  459. package/server/node_modules/pm2/lib/tools/xdg-open +0 -0
  460. package/server/node_modules/pm2/node_modules/mkdirp/bin/cmd.js +0 -0
  461. package/server/node_modules/pm2/pm2 +0 -0
  462. package/server/node_modules/pm2-deploy/deploy +0 -0
  463. package/server/node_modules/require-in-the-middle/node_modules/resolve/bin/resolve +0 -0
  464. package/server/node_modules/rimraf/bin.js +0 -0
  465. package/server/node_modules/segment/repl +0 -0
  466. package/server/node_modules/semver/bin/semver.js +0 -0
  467. package/server/node_modules/send/node_modules/mime/cli.js +0 -0
  468. package/server/node_modules/send/node_modules/mime/src/build.js +0 -0
  469. package/server/node_modules/sha.js/bin.js +0 -0
  470. package/server/node_modules/systeminformation/lib/cli.js +0 -0
  471. package/server/node_modules/terser/bin/terser +0 -0
  472. package/server/node_modules/terser/bin/uglifyjs +0 -0
  473. package/server/node_modules/tree-kill/cli.js +0 -0
  474. package/server/node_modules/tree-kill/index.js +0 -0
  475. package/server/node_modules/typeorm/cli.js +0 -0
  476. package/server/node_modules/typeorm/node_modules/mkdirp/bin/cmd.js +0 -0
  477. package/server/node_modules/typeorm/node_modules/uuid/dist/bin/uuid +0 -0
  478. package/server/node_modules/typeorm/node_modules/wrap-ansi/index.js +0 -0
  479. package/server/node_modules/ua-parser-js/script/cli.js +0 -0
  480. package/server/node_modules/ua-parser-js/src/ua-parser.js +0 -0
  481. package/server/node_modules/upath/LICENSE +0 -0
  482. package/server/node_modules/uri-js/LICENSE +0 -0
  483. package/server/node_modules/uri-js/README.md +0 -0
  484. package/server/node_modules/uri-js/dist/es5/uri.all.d.ts +0 -0
  485. package/server/node_modules/uri-js/dist/es5/uri.all.js +0 -0
  486. package/server/node_modules/uri-js/dist/es5/uri.all.js.map +0 -0
  487. package/server/node_modules/uri-js/dist/es5/uri.all.min.d.ts +0 -0
  488. package/server/node_modules/uri-js/dist/es5/uri.all.min.js +0 -0
  489. package/server/node_modules/uri-js/dist/es5/uri.all.min.js.map +0 -0
  490. package/server/node_modules/uri-js/dist/esnext/index.d.ts +0 -0
  491. package/server/node_modules/uri-js/dist/esnext/index.js +0 -0
  492. package/server/node_modules/uri-js/dist/esnext/index.js.map +0 -0
  493. package/server/node_modules/uri-js/dist/esnext/regexps-iri.d.ts +0 -0
  494. package/server/node_modules/uri-js/dist/esnext/regexps-iri.js +0 -0
  495. package/server/node_modules/uri-js/dist/esnext/regexps-iri.js.map +0 -0
  496. package/server/node_modules/uri-js/dist/esnext/regexps-uri.d.ts +0 -0
  497. package/server/node_modules/uri-js/dist/esnext/regexps-uri.js +0 -0
  498. package/server/node_modules/uri-js/dist/esnext/regexps-uri.js.map +0 -0
  499. package/server/node_modules/uri-js/dist/esnext/schemes/http.d.ts +0 -0
  500. package/server/node_modules/uri-js/dist/esnext/schemes/http.js +0 -0
  501. package/server/node_modules/uri-js/dist/esnext/schemes/http.js.map +0 -0
  502. package/server/node_modules/uri-js/dist/esnext/schemes/https.d.ts +0 -0
  503. package/server/node_modules/uri-js/dist/esnext/schemes/https.js +0 -0
  504. package/server/node_modules/uri-js/dist/esnext/schemes/https.js.map +0 -0
  505. package/server/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts +0 -0
  506. package/server/node_modules/uri-js/dist/esnext/schemes/mailto.js +0 -0
  507. package/server/node_modules/uri-js/dist/esnext/schemes/mailto.js.map +0 -0
  508. package/server/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts +0 -0
  509. package/server/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js +0 -0
  510. package/server/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map +0 -0
  511. package/server/node_modules/uri-js/dist/esnext/schemes/urn.d.ts +0 -0
  512. package/server/node_modules/uri-js/dist/esnext/schemes/urn.js +0 -0
  513. package/server/node_modules/uri-js/dist/esnext/schemes/urn.js.map +0 -0
  514. package/server/node_modules/uri-js/dist/esnext/schemes/ws.d.ts +0 -0
  515. package/server/node_modules/uri-js/dist/esnext/schemes/ws.js +0 -0
  516. package/server/node_modules/uri-js/dist/esnext/schemes/ws.js.map +0 -0
  517. package/server/node_modules/uri-js/dist/esnext/schemes/wss.d.ts +0 -0
  518. package/server/node_modules/uri-js/dist/esnext/schemes/wss.js +0 -0
  519. package/server/node_modules/uri-js/dist/esnext/schemes/wss.js.map +0 -0
  520. package/server/node_modules/uri-js/dist/esnext/uri.d.ts +0 -0
  521. package/server/node_modules/uri-js/dist/esnext/uri.js +0 -0
  522. package/server/node_modules/uri-js/dist/esnext/uri.js.map +0 -0
  523. package/server/node_modules/uri-js/dist/esnext/util.d.ts +0 -0
  524. package/server/node_modules/uri-js/dist/esnext/util.js +0 -0
  525. package/server/node_modules/uri-js/dist/esnext/util.js.map +0 -0
  526. package/server/node_modules/uri-js/package.json +0 -0
  527. package/server/node_modules/uri-js/yarn.lock +0 -0
  528. package/server/node_modules/uuid/dist/bin/uuid +0 -0
  529. package/server/node_modules/webpack/node_modules/acorn/bin/acorn +0 -0
  530. package/server/node_modules/webpack/node_modules/ajv/scripts/info +0 -0
  531. package/server/node_modules/webpack/node_modules/ajv/scripts/prepare-tests +0 -0
  532. package/server/node_modules/webpack/node_modules/ajv/scripts/publish-built-version +0 -0
  533. package/server/node_modules/webpack/node_modules/ajv/scripts/travis-gh-pages +0 -0
  534. package/server/node_modules/which/bin/node-which +0 -0
  535. package/server/node_modules/win-release/node_modules/semver/bin/semver +0 -0
  536. package/server/node_modules/wrap-ansi/index.js +0 -0
  537. package/templates/nginx.dev.conf +57 -0
  538. package/templates/nginx.prod.conf +75 -0
  539. package/ui/banner.js +432 -13
  540. package/ui/interactive.js +248 -52
  541. package/ui/theme.js +250 -10
@@ -0,0 +1,439 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>ReactPress › Installation</title>
7
+ <style>
8
+ /* 保持原有样式不变 */
9
+ * { margin: 0; padding: 0; box-sizing: border-box; }
10
+ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: #f1f1f1; color: #444; line-height: 1.4; }
11
+ .wp-container { max-width: 600px; margin: 40px auto; background: #fff; border: 1px solid #ccd0d4; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
12
+ .wp-header { background: #0073aa; color: #fff; padding: 24px; text-align: center; border-bottom: 1px solid #005a87; }
13
+ .wp-header h1 { font-size: 24px; font-weight: 400; margin-bottom: 8px; }
14
+ .wp-header p { font-size: 16px; opacity: 0.9; }
15
+ .wp-content { padding: 24px; }
16
+ .wp-step { display: none; }
17
+ .wp-step.active { display: block; }
18
+ .wp-step h2 { font-size: 22px; font-weight: 600; margin-bottom: 20px; color: #1d2327; }
19
+ .wp-description { background: #f0f6fc; border: 1px solid #c3e4f0; border-left: 4px solid #0073aa; padding: 12px 16px; margin-bottom: 20px; font-size: 14px; color: #0c4a6e; }
20
+ .wp-form-table { width: 100%; margin-bottom: 20px; }
21
+ .wp-form-table th { text-align: left; padding: 10px 0; width: 140px; vertical-align: top; font-weight: 600; color: #1d2327; }
22
+ .wp-form-table td { padding: 10px 0; }
23
+ .wp-form-table input[type="text"], .wp-form-table input[type="password"], .wp-form-table input[type="number"], .wp-form-table input[type="url"] { width: 100%; max-width: 320px; padding: 8px 12px; border: 1px solid #8c8f94; border-radius: 4px; font-size: 14px; line-height: 1.4; transition: border-color 0.15s ease-in-out; }
24
+ .wp-form-table input:focus { border-color: #0073aa; outline: 0; box-shadow: 0 0 0 1px #0073aa; }
25
+ .wp-form-table .description { font-size: 13px; color: #646970; margin-top: 4px; }
26
+ .wp-button { background: #0073aa; color: #fff; border: 1px solid #0073aa; padding: 8px 16px; font-size: 14px; font-weight: 600; border-radius: 3px; cursor: pointer; transition: all 0.15s ease-in-out; text-decoration: none; display: inline-block; }
27
+ .wp-button:hover { background: #005a87; border-color: #005a87; }
28
+ .wp-button:disabled { background: #f0f0f1; border-color: #dcdcde; color: #a7aaad; cursor: not-allowed; }
29
+ .wp-button.button-large { padding: 12px 24px; font-size: 16px; }
30
+ .wp-notice { border: 1px solid #c3c4c7; border-left-width: 4px; padding: 12px; margin: 16px 0; background: #fff; }
31
+ .wp-notice.notice-success { border-left-color: #00a32a; background: #f7fcf7; }
32
+ .wp-notice.notice-error { border-left-color: #d63638; background: #fcf2f2; }
33
+ .wp-notice p { margin: 0; font-size: 14px; }
34
+ .wp-progress { background: #f0f0f1; height: 4px; margin-bottom: 20px; }
35
+ .wp-progress-bar { background: #0073aa; height: 100%; transition: width 0.3s ease; }
36
+ .wp-loader { display: inline-block; width: 16px; height: 16px; border: 2px solid #f3f3f3; border-top: 2px solid #0073aa; border-radius: 50%; animation: wp-spin 1s linear infinite; margin-right: 8px; }
37
+ @keyframes wp-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
38
+ .wp-footer { background: #f6f7f7; border-top: 1px solid #c3c4c7; padding: 16px 24px; text-align: center; font-size: 13px; color: #646970; }
39
+ .text-center { text-align: center; }
40
+ .countdown-container { display: none; text-align: center; margin: 20px 0; }
41
+ .countdown-timer { font-weight: bold; color: #0073aa; }
42
+
43
+ /* 新增重试按钮样式 */
44
+ .retry-button {
45
+ background: #d63638;
46
+ color: white;
47
+ border: none;
48
+ padding: 8px 16px;
49
+ border-radius: 3px;
50
+ cursor: pointer;
51
+ margin-top: 10px;
52
+ }
53
+ .retry-button:hover {
54
+ background: #b32d2e;
55
+ }
56
+ </style>
57
+ </head>
58
+ <body>
59
+ <div class="wp-container">
60
+ <div class="wp-header">
61
+ <h1>ReactPress</h1>
62
+ <p>5-Minute Installation</p>
63
+ </div>
64
+
65
+ <div class="wp-progress">
66
+ <div class="wp-progress-bar" id="progressBar" style="width: 33%;"></div>
67
+ </div>
68
+
69
+ <div class="wp-content">
70
+ <!-- Step 1: Database Configuration -->
71
+ <div class="wp-step active" id="step1">
72
+ <h2>Database Connection Information</h2>
73
+
74
+ <div class="wp-description">
75
+ You should have this information available from your web hosting provider. If you don't have it, contact them before continuing.
76
+ </div>
77
+
78
+ <table class="wp-form-table">
79
+ <tr>
80
+ <th><label for="dbHost">Database Host</label></th>
81
+ <td>
82
+ <input type="text" id="dbHost" value="127.0.0.1" />
83
+ <p class="description">Usually "localhost" or "127.0.0.1"</p>
84
+ </td>
85
+ </tr>
86
+ <tr>
87
+ <th><label for="dbPort">Database Port</label></th>
88
+ <td>
89
+ <input type="number" id="dbPort" value="3306" />
90
+ <p class="description">Default MySQL port is 3306</p>
91
+ </td>
92
+ </tr>
93
+ <tr>
94
+ <th><label for="dbUser">Username</label></th>
95
+ <td>
96
+ <input type="text" id="dbUser" value="" placeholder="Database username" />
97
+ <p class="description">Your MySQL username</p>
98
+ </td>
99
+ </tr>
100
+ <tr>
101
+ <th><label for="dbPassword">Password</label></th>
102
+ <td>
103
+ <input type="password" id="dbPassword" value="" placeholder="Database password" />
104
+ <p class="description">Your MySQL password</p>
105
+ </td>
106
+ </tr>
107
+ <tr>
108
+ <th><label for="dbName">Database Name</label></th>
109
+ <td>
110
+ <input type="text" id="dbName" value="reactpress" />
111
+ <p class="description">The name of the database you want to use with ReactPress</p>
112
+ </td>
113
+ </tr>
114
+ </table>
115
+
116
+ <div id="dbResult"></div>
117
+
118
+ <p class="text-center">
119
+ <button class="wp-button button-large" onclick="testDatabase()" id="testBtn">
120
+ Test Database Connection
121
+ </button>
122
+ </p>
123
+ </div>
124
+
125
+ <!-- Step 2: Site Configuration -->
126
+ <div class="wp-step" id="step2">
127
+ <h2>Site Information</h2>
128
+
129
+ <div class="wp-description">
130
+ Please provide the following information. Don't worry, you can always change these settings later.
131
+ </div>
132
+
133
+ <table class="wp-form-table">
134
+ <tr>
135
+ <th><label for="clientUrl">Client Site URL</label></th>
136
+ <td>
137
+ <input type="url" id="clientUrl" value="http://localhost:3001" />
138
+ <p class="description">The URL where your ReactPress frontend will be accessible</p>
139
+ </td>
140
+ </tr>
141
+ <tr>
142
+ <th><label for="serverUrl">API Server URL</label></th>
143
+ <td>
144
+ <input type="url" id="serverUrl" value="http://localhost:3002" />
145
+ <p class="description">The URL where your ReactPress API server will run</p>
146
+ </td>
147
+ </tr>
148
+ </table>
149
+
150
+ <div id="installResult"></div>
151
+
152
+ <p class="text-center">
153
+ <button class="wp-button button-large" onclick="installReactPress()" id="installBtn">
154
+ Install & Start ReactPress
155
+ </button>
156
+ </p>
157
+ </div>
158
+
159
+ <!-- Step 3: Success -->
160
+ <div class="wp-step" id="step3">
161
+ <h2>🎉 Installation Complete!</h2>
162
+
163
+ <div class="wp-notice notice-success">
164
+ <p><strong>ReactPress has been installed successfully!</strong></p>
165
+ </div>
166
+
167
+ <p>Your ReactPress server configuration has been saved. You can:</p>
168
+
169
+ <ul style="margin: 16px 0 16px 20px;">
170
+ <li>Close this browser window</li>
171
+ <li>Restart the server by running <code>npx @fecommunity/reactpress-server</code> in your terminal</li>
172
+ <li>Access your admin panel at <strong id="adminUrl">http://localhost:3001/admin</strong> (when client is running)</li>
173
+ </ul>
174
+
175
+ <!-- 重定向状态显示 -->
176
+ <div class="wp-notice" id="redirectStatus">
177
+ <p>Waiting for server to start...</p>
178
+ </div>
179
+
180
+ <div class="text-center">
181
+ <button class="wp-button" onclick="checkServerStatus()" id="checkStatusBtn">
182
+ Check Server Status
183
+ </button>
184
+ <button class="retry-button" onclick="retryRedirect()" id="retryBtn" style="display: none;">
185
+ Retry Connection
186
+ </button>
187
+ </div>
188
+
189
+ <div class="wp-description">
190
+ <strong>Note:</strong> To start the server with your new configuration, run <code>npx @fecommunity/reactpress-server</code> in your terminal.
191
+ </div>
192
+ </div>
193
+ </div>
194
+
195
+ <div class="wp-footer">
196
+ <p>Need help? <a href="https://github.com/fecommunity/reactpress/issues" target="_blank">ReactPress Documentation</a></p>
197
+ </div>
198
+ </div>
199
+
200
+ <script>
201
+ // State management
202
+ let currentStep = 1;
203
+ const totalSteps = 3;
204
+ let isTestingConnection = false;
205
+ let countdownInterval = null;
206
+ let serverUrl = 'http://localhost:3002';
207
+ let redirectAttempts = 0;
208
+ const maxRedirectAttempts = 30; // 30秒超时
209
+
210
+ // Update progress bar
211
+ function updateProgress() {
212
+ const progress = (currentStep / totalSteps) * 100;
213
+ document.getElementById('progressBar').style.width = progress + '%';
214
+ }
215
+
216
+ // Show a specific step
217
+ function showStep(step) {
218
+ document.querySelectorAll('.wp-step').forEach(s => s.classList.remove('active'));
219
+ document.getElementById('step' + step).classList.add('active');
220
+ currentStep = step;
221
+ updateProgress();
222
+ }
223
+
224
+ // Show a notice message
225
+ function showNotice(message, type = 'error', containerId = 'dbResult') {
226
+ const container = document.getElementById(containerId);
227
+ container.innerHTML = `
228
+ <div class="wp-notice notice-${type}">
229
+ <p>${message}</p>
230
+ </div>
231
+ `;
232
+ }
233
+
234
+ // 检查服务器状态
235
+ async function checkServerStatus() {
236
+ const statusElement = document.getElementById('redirectStatus');
237
+ const checkBtn = document.getElementById('checkStatusBtn');
238
+ const retryBtn = document.getElementById('retryBtn');
239
+
240
+ statusElement.innerHTML = '<p>Checking server status...</p>';
241
+ statusElement.className = 'wp-notice';
242
+ checkBtn.disabled = true;
243
+
244
+ try {
245
+ const response = await fetch(`${serverUrl}/api`, {
246
+ method: 'GET',
247
+ headers: { 'Content-Type': 'application/json' },
248
+ // 添加超时处理
249
+ signal: AbortSignal.timeout(5000)
250
+ });
251
+
252
+ if (response.ok) {
253
+ statusElement.innerHTML = '<p>Server is running! Redirecting to API documentation...</p>';
254
+ statusElement.className = 'wp-notice notice-success';
255
+
256
+ // 服务器已启动,重定向到API页面
257
+ setTimeout(() => {
258
+ window.location.href = `${serverUrl}/api`;
259
+ }, 1000);
260
+ } else {
261
+ statusElement.innerHTML = '<p>Server responded but with an error. Please try again later.</p>';
262
+ statusElement.className = 'wp-notice notice-error';
263
+ retryBtn.style.display = 'inline-block';
264
+ }
265
+ } catch (error) {
266
+ statusElement.innerHTML = `<p>Cannot connect to server: ${error.message}. The server may still be starting up.</p>`;
267
+ statusElement.className = 'wp-notice notice-error';
268
+ retryBtn.style.display = 'inline-block';
269
+ } finally {
270
+ checkBtn.disabled = false;
271
+ }
272
+ }
273
+
274
+ // 重试重定向
275
+ function retryRedirect() {
276
+ const retryBtn = document.getElementById('retryBtn');
277
+ retryBtn.style.display = 'none';
278
+ checkServerStatus();
279
+ }
280
+
281
+ // 启动服务器状态检查
282
+ function startServerStatusCheck() {
283
+ // 每2秒检查一次服务器状态,最多尝试30次(60秒)
284
+ const checkInterval = setInterval(() => {
285
+ if (redirectAttempts >= maxRedirectAttempts) {
286
+ clearInterval(checkInterval);
287
+ const statusElement = document.getElementById('redirectStatus');
288
+ statusElement.innerHTML = '<p>Server did not start in time. Please check your terminal for errors and try restarting the server manually.</p>';
289
+ statusElement.className = 'wp-notice notice-error';
290
+ document.getElementById('retryBtn').style.display = 'inline-block';
291
+ return;
292
+ }
293
+
294
+ fetch(`${serverUrl}/api`, {
295
+ method: 'HEAD',
296
+ // 添加超时处理
297
+ signal: AbortSignal.timeout(3000)
298
+ })
299
+ .then(response => {
300
+ if (response.ok) {
301
+ clearInterval(checkInterval);
302
+ const statusElement = document.getElementById('redirectStatus');
303
+ statusElement.innerHTML = '<p>Server is running! Redirecting to API documentation...</p>';
304
+ statusElement.className = 'wp-notice notice-success';
305
+
306
+ // 服务器已启动,重定向到API页面
307
+ setTimeout(() => {
308
+ window.location.href = `${serverUrl}/api`;
309
+ }, 1000);
310
+ }
311
+ })
312
+ .catch(() => {
313
+ // 忽略错误,继续尝试
314
+ redirectAttempts++;
315
+ const statusElement = document.getElementById('redirectStatus');
316
+ statusElement.innerHTML = `<p>Waiting for server to start... (${redirectAttempts}/${maxRedirectAttempts})</p>`;
317
+ });
318
+ }, 2000);
319
+ }
320
+
321
+ // Validate database input fields
322
+ function validateDatabaseInputs() {
323
+ const host = document.getElementById('dbHost').value.trim();
324
+ const port = document.getElementById('dbPort').value.trim();
325
+ const user = document.getElementById('dbUser').value.trim();
326
+ const password = document.getElementById('dbPassword').value;
327
+ const database = document.getElementById('dbName').value.trim();
328
+
329
+ if (!host || !port || !user || !database) {
330
+ showNotice('Please fill in all required fields.', 'error');
331
+ return false;
332
+ }
333
+
334
+ if (isNaN(port) || port < 1 || port > 65535) {
335
+ showNotice('Please enter a valid port number (1-65535).', 'error');
336
+ return false;
337
+ }
338
+
339
+ return { host, port, user, password, database };
340
+ }
341
+
342
+ // Test database connection
343
+ async function testDatabase() {
344
+ if (isTestingConnection) return;
345
+
346
+ const dbData = validateDatabaseInputs();
347
+ if (!dbData) return;
348
+
349
+ isTestingConnection = true;
350
+ const testBtn = document.getElementById('testBtn');
351
+ const originalText = testBtn.innerHTML;
352
+
353
+ testBtn.disabled = true;
354
+ testBtn.innerHTML = '<span class="wp-loader"></span>Testing connection...';
355
+
356
+ try {
357
+ const response = await fetch('/test-db', {
358
+ method: 'POST',
359
+ headers: { 'Content-Type': 'application/json' },
360
+ body: JSON.stringify(dbData)
361
+ });
362
+
363
+ const result = await response.json();
364
+
365
+ if (result.success) {
366
+ showNotice(result.message, 'success');
367
+ setTimeout(() => {
368
+ showStep(2);
369
+ }, 1500);
370
+ } else {
371
+ showNotice(result.message, 'error');
372
+ }
373
+ } catch (error) {
374
+ showNotice('Failed to connect to server. Please try again.', 'error');
375
+ } finally {
376
+ isTestingConnection = false;
377
+ testBtn.disabled = false;
378
+ testBtn.innerHTML = originalText;
379
+ }
380
+ }
381
+
382
+ // Install ReactPress
383
+ async function installReactPress() {
384
+ const dbData = validateDatabaseInputs();
385
+ if (!dbData) {
386
+ showStep(1);
387
+ return;
388
+ }
389
+
390
+ const clientUrl = document.getElementById('clientUrl').value.trim();
391
+ serverUrl = document.getElementById('serverUrl').value.trim();
392
+
393
+ if (!clientUrl || !serverUrl) {
394
+ showNotice('Please fill in all site URLs.', 'error', 'installResult');
395
+ return;
396
+ }
397
+
398
+ // 更新管理URL显示
399
+ document.getElementById('adminUrl').textContent = `${clientUrl}/admin`;
400
+
401
+ const installBtn = document.getElementById('installBtn');
402
+ const originalText = installBtn.innerHTML;
403
+
404
+ installBtn.disabled = true;
405
+ installBtn.innerHTML = '<span class="wp-loader"></span>Installing & Starting...';
406
+
407
+ try {
408
+ const response = await fetch('/install', {
409
+ method: 'POST',
410
+ headers: { 'Content-Type': 'application/json' },
411
+ body: JSON.stringify({
412
+ db: dbData,
413
+ site: { clientUrl, serverUrl }
414
+ })
415
+ });
416
+
417
+ const result = await response.json();
418
+
419
+ if (result.success) {
420
+ showStep(3);
421
+ // 启动服务器状态检查
422
+ startServerStatusCheck();
423
+ } else {
424
+ showNotice(result.message, 'error', 'installResult');
425
+ }
426
+ } catch (error) {
427
+ showNotice('Installation failed. Please try again.', 'error', 'installResult');
428
+ } finally {
429
+ installBtn.disabled = false;
430
+ installBtn.innerHTML = originalText;
431
+ }
432
+ }
433
+
434
+ // Initialize the wizard
435
+ updateProgress();
436
+ document.getElementById('dbHost').focus();
437
+ </script>
438
+ </body>
439
+ </html>
@@ -0,0 +1,11 @@
1
+ .swagger-ui div.topbar {
2
+ display: none !important;
3
+ padding: 0 !important;
4
+ }
5
+
6
+
7
+ .swagger-ui .scheme-container {
8
+ display: none !important;
9
+ margin: 0 !important;
10
+ padding: 0 !important;
11
+ }
@@ -0,0 +1 @@
1
+ export declare function bootstrap(): Promise<import("@nestjs/common").INestApplication>;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bootstrap = void 0;
4
+ const core_1 = require("@nestjs/core");
5
+ const swagger_1 = require("@nestjs/swagger");
6
+ const bodyParser = require("body-parser");
7
+ const compression = require("compression");
8
+ const express = require("express");
9
+ const rateLimit = require("express-rate-limit");
10
+ const helmet = require("helmet");
11
+ const path_1 = require("path");
12
+ const swagger_themes_1 = require("swagger-themes");
13
+ const app_module_1 = require("./app.module");
14
+ const http_exception_filter_1 = require("./filters/http-exception.filter");
15
+ const transform_interceptor_1 = require("./interceptors/transform.interceptor");
16
+ async function bootstrap() {
17
+ try {
18
+ const app = await core_1.NestFactory.create(app_module_1.AppModule);
19
+ const configService = app.get('ConfigService');
20
+ app.enableCors();
21
+ app.setGlobalPrefix(configService.get('SERVER_API_PREFIX', '/api'));
22
+ app.use(rateLimit({
23
+ windowMs: 60 * 1000,
24
+ max: 10000,
25
+ }));
26
+ const rootDir = path_1.join(__dirname, '../public');
27
+ app.use('/public', express.static(rootDir));
28
+ app.use(compression());
29
+ app.use(helmet());
30
+ app.useGlobalInterceptors(new transform_interceptor_1.TransformInterceptor());
31
+ app.useGlobalFilters(new http_exception_filter_1.HttpExceptionFilter());
32
+ app.use(bodyParser.json({ limit: '10mb' }));
33
+ app.use(bodyParser.urlencoded({ limit: '10mb', extended: true }));
34
+ const swaggerConfig = new swagger_1.DocumentBuilder()
35
+ .setTitle('ReactPress API Documentation')
36
+ .setDescription('Comprehensive API documentation for ReactPress - A modern content management system built with NestJS')
37
+ .setVersion('3.0')
38
+ .setContact('ReactPress Team', 'https://github.com/fecommunity/reactpress', 'admin@gaoredu.com')
39
+ .setLicense('MIT', 'https://github.com/fecommunity/reactpress/blob/main/LICENSE')
40
+ .addServer(configService.get('SERVER_SITE_URL', 'http://localhost:3002'), 'API Server')
41
+ .build();
42
+ const document = swagger_1.SwaggerModule.createDocument(app, swaggerConfig);
43
+ const theme = new swagger_themes_1.SwaggerTheme();
44
+ const options = {
45
+ customCss: theme.getBuffer(swagger_themes_1.SwaggerThemeNameEnum.MATERIAL),
46
+ customSiteTitle: 'ReactPress API Documentation',
47
+ customfavIcon: '/public/favicon.png',
48
+ swaggerOptions: {
49
+ docExpansion: 'list',
50
+ filter: true,
51
+ showRequestDuration: true,
52
+ persistAuthorization: true,
53
+ displayOperationId: true,
54
+ operationsSorter: 'method',
55
+ tagsSorter: 'alpha',
56
+ },
57
+ customCssUrl: '/public/swagger/custom.css',
58
+ };
59
+ swagger_1.SwaggerModule.setup('api', app, document, options);
60
+ const configuredPort = configService.get('SERVER_PORT', 3002);
61
+ await app.listen(configuredPort);
62
+ console.log(`[ReactPress] Application started on http://localhost:${configuredPort}`);
63
+ console.log(`[ReactPress] API Documentation available at http://localhost:${configuredPort}/api`);
64
+ return app;
65
+ }
66
+ catch (error) {
67
+ console.error('[ReactPress] Failed to start application:', error);
68
+ if (error.code === 'EADDRINUSE') {
69
+ console.error('[ReactPress] Port is already in use. Please check for other running instances.');
70
+ console.error('[ReactPress] You can change the port in your .env file or terminate the conflicting process.');
71
+ }
72
+ throw error;
73
+ }
74
+ }
75
+ exports.bootstrap = bootstrap;
76
+ process.on('SIGINT', () => {
77
+ console.log('\n[ReactPress] Application shutting down gracefully...');
78
+ process.exit(0);
79
+ });
80
+ process.on('SIGTERM', () => {
81
+ console.log('\n[ReactPress] Application shutting down gracefully...');
82
+ process.exit(0);
83
+ });
84
+ //# sourceMappingURL=starter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starter.js","sourceRoot":"","sources":["../src/starter.ts"],"names":[],"mappings":"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"}