@fecommunity/reactpress 2.0.0-beta.0 → 3.0.1
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.
- package/LICENSE +6 -6
- package/README.md +28 -176
- package/bin/reactpress-cli-shim.js +28 -0
- package/bin/reactpress.js +245 -61
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +102 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/config.d.ts +8 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +54 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +33 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/restart.d.ts +2 -0
- package/dist/commands/restart.d.ts.map +1 -0
- package/dist/commands/restart.js +29 -0
- package/dist/commands/restart.js.map +1 -0
- package/dist/commands/start.d.ts +2 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +31 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +20 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/stop.d.ts +5 -0
- package/dist/commands/stop.d.ts.map +1 -0
- package/dist/commands/stop.js +29 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/i18n.js +8 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/package.json +3 -0
- package/dist/services/config.d.ts +11 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +102 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/database.d.ts +43 -0
- package/dist/services/database.d.ts.map +1 -0
- package/dist/services/database.js +252 -0
- package/dist/services/database.js.map +1 -0
- package/dist/services/exec.d.ts +22 -0
- package/dist/services/exec.d.ts.map +1 -0
- package/dist/services/exec.js +46 -0
- package/dist/services/exec.js.map +1 -0
- package/dist/services/init.d.ts +10 -0
- package/dist/services/init.d.ts.map +1 -0
- package/dist/services/init.js +50 -0
- package/dist/services/init.js.map +1 -0
- package/dist/services/process.d.ts +9 -0
- package/dist/services/process.d.ts.map +1 -0
- package/dist/services/process.js +98 -0
- package/dist/services/process.js.map +1 -0
- package/dist/services/server-health.d.ts +4 -0
- package/dist/services/server-health.d.ts.map +1 -0
- package/dist/services/server-health.js +27 -0
- package/dist/services/server-health.js.map +1 -0
- package/dist/services/server.d.ts +19 -0
- package/dist/services/server.d.ts.map +1 -0
- package/dist/services/server.js +133 -0
- package/dist/services/server.js.map +1 -0
- package/dist/templates/config.default.json +12 -0
- package/dist/templates/docker-compose.yml +27 -0
- package/dist/templates/env.default +11 -0
- package/dist/templates/package.json +10 -0
- package/dist/types/config.d.ts +30 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/utils/cli-context.d.ts +4 -0
- package/dist/utils/cli-context.d.ts.map +1 -0
- package/dist/utils/cli-context.js +10 -0
- package/dist/utils/cli-context.js.map +1 -0
- package/dist/utils/logger.d.ts +10 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +32 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/paths.d.ts +17 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +27 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/platform.d.ts +8 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +21 -0
- package/dist/utils/platform.js.map +1 -0
- package/dist/utils/port.d.ts +5 -0
- package/dist/utils/port.d.ts.map +1 -0
- package/dist/utils/port.js +25 -0
- package/dist/utils/port.js.map +1 -0
- package/dist/utils/server-bundle.d.ts +11 -0
- package/dist/utils/server-bundle.d.ts.map +1 -0
- package/dist/utils/server-bundle.js +71 -0
- package/dist/utils/server-bundle.js.map +1 -0
- package/lib/api-dev-runner.js +6 -0
- package/lib/api-dev.js +85 -0
- package/lib/bootstrap.js +114 -0
- package/lib/build.js +75 -0
- package/lib/db-backup.js +46 -0
- package/lib/dev-banner.js +40 -0
- package/lib/dev.js +122 -0
- package/lib/docker.js +157 -0
- package/lib/doctor.js +210 -0
- package/lib/http.js +147 -0
- package/lib/i18n/index.js +32 -0
- package/lib/i18n/strings.js +587 -0
- package/lib/lifecycle.js +160 -0
- package/lib/paths.js +75 -0
- package/lib/pm2.js +32 -0
- package/lib/process.js +45 -0
- package/{scripts/publish-packages.js → lib/publish.js} +255 -58
- package/lib/root.js +39 -0
- package/lib/spawn.js +92 -0
- package/lib/status.js +108 -0
- package/package.json +38 -73
- package/scripts/install-bundled-runtime.mjs +46 -0
- package/server/bin/reactpress-server.js +4 -4
- package/server/dist/app.module.d.ts +2 -0
- package/server/dist/app.module.js +80 -0
- package/server/dist/app.module.js.map +1 -0
- package/server/dist/common/api-messages.d.ts +32 -0
- package/server/dist/common/api-messages.js +36 -0
- package/server/dist/common/api-messages.js.map +1 -0
- package/server/dist/filters/http-exception.filter.d.ts +4 -0
- package/server/dist/filters/http-exception.filter.js +36 -0
- package/server/dist/filters/http-exception.filter.js.map +1 -0
- package/server/dist/generate-swagger.d.ts +1 -0
- package/server/dist/generate-swagger.js +73 -0
- package/server/dist/generate-swagger.js.map +1 -0
- package/server/dist/interceptors/transform.interceptor.d.ts +9 -0
- package/server/dist/interceptors/transform.interceptor.js +36 -0
- package/server/dist/interceptors/transform.interceptor.js.map +1 -0
- package/server/dist/logger/index.d.ts +4 -0
- package/server/dist/logger/index.js +33 -0
- package/server/dist/logger/index.js.map +1 -0
- package/server/dist/main.d.ts +6 -0
- package/server/dist/main.js +263 -0
- package/server/dist/main.js.map +1 -0
- package/server/dist/modules/api-key/api-key.controller.d.ts +14 -0
- package/server/dist/modules/api-key/api-key.controller.js +63 -0
- package/server/dist/modules/api-key/api-key.controller.js.map +1 -0
- package/server/dist/modules/api-key/api-key.entity.d.ts +11 -0
- package/server/dist/modules/api-key/api-key.entity.js +63 -0
- package/server/dist/modules/api-key/api-key.entity.js.map +1 -0
- package/server/dist/modules/api-key/api-key.guard.d.ts +7 -0
- package/server/dist/modules/api-key/api-key.guard.js +40 -0
- package/server/dist/modules/api-key/api-key.guard.js.map +1 -0
- package/server/dist/modules/api-key/api-key.module.d.ts +2 -0
- package/server/dist/modules/api-key/api-key.module.js +28 -0
- package/server/dist/modules/api-key/api-key.module.js.map +1 -0
- package/server/dist/modules/api-key/api-key.service.d.ts +15 -0
- package/server/dist/modules/api-key/api-key.service.js +81 -0
- package/server/dist/modules/api-key/api-key.service.js.map +1 -0
- package/server/dist/modules/article/article-revision.entity.d.ts +11 -0
- package/server/dist/modules/article/article-revision.entity.js +53 -0
- package/server/dist/modules/article/article-revision.entity.js.map +1 -0
- package/server/dist/modules/article/article.controller.d.ts +27 -0
- package/server/dist/modules/article/article.controller.js +198 -0
- package/server/dist/modules/article/article.controller.js.map +1 -0
- package/server/dist/modules/article/article.entity.d.ts +23 -0
- package/server/dist/modules/article/article.entity.js +128 -0
- package/server/dist/modules/article/article.entity.js.map +1 -0
- package/server/dist/modules/article/article.module.d.ts +2 -0
- package/server/dist/modules/article/article.module.js +30 -0
- package/server/dist/modules/article/article.module.js.map +1 -0
- package/server/dist/modules/article/article.service.d.ts +30 -0
- package/server/dist/modules/article/article.service.js +303 -0
- package/server/dist/modules/article/article.service.js.map +1 -0
- package/server/dist/modules/article/article.util.d.ts +1 -0
- package/server/dist/modules/article/article.util.js +9 -0
- package/server/dist/modules/article/article.util.js.map +1 -0
- package/server/dist/modules/article/scheduled-publish.service.d.ts +13 -0
- package/server/dist/modules/article/scheduled-publish.service.js +65 -0
- package/server/dist/modules/article/scheduled-publish.service.js.map +1 -0
- package/server/dist/modules/auth/auth.controller.d.ts +12 -0
- package/server/dist/modules/auth/auth.controller.js +66 -0
- package/server/dist/modules/auth/auth.controller.js.map +1 -0
- package/server/dist/modules/auth/auth.module.d.ts +2 -0
- package/server/dist/modules/auth/auth.module.js +41 -0
- package/server/dist/modules/auth/auth.module.js.map +1 -0
- package/server/dist/modules/auth/auth.service.d.ts +26 -0
- package/server/dist/modules/auth/auth.service.js +127 -0
- package/server/dist/modules/auth/auth.service.js.map +1 -0
- package/server/dist/modules/auth/jwt-auth.guard.d.ts +7 -0
- package/server/dist/modules/auth/jwt-auth.guard.js +29 -0
- package/server/dist/modules/auth/jwt-auth.guard.js.map +1 -0
- package/server/dist/modules/auth/jwt.strategy.d.ts +9 -0
- package/server/dist/modules/auth/jwt.strategy.js +38 -0
- package/server/dist/modules/auth/jwt.strategy.js.map +1 -0
- package/server/dist/modules/auth/roles.guard.d.ts +10 -0
- package/server/dist/modules/auth/roles.guard.js +46 -0
- package/server/dist/modules/auth/roles.guard.js.map +1 -0
- package/server/dist/modules/category/category.controller.d.ts +11 -0
- package/server/dist/modules/category/category.controller.js +91 -0
- package/server/dist/modules/category/category.controller.js.map +1 -0
- package/server/dist/modules/category/category.entity.d.ts +9 -0
- package/server/dist/modules/category/category.entity.js +60 -0
- package/server/dist/modules/category/category.entity.js.map +1 -0
- package/server/dist/modules/category/category.module.d.ts +2 -0
- package/server/dist/modules/category/category.module.js +27 -0
- package/server/dist/modules/category/category.module.js.map +1 -0
- package/server/dist/modules/category/category.service.d.ts +12 -0
- package/server/dist/modules/category/category.service.js +89 -0
- package/server/dist/modules/category/category.service.js.map +1 -0
- package/server/dist/modules/comment/comment.controller.d.ts +12 -0
- package/server/dist/modules/comment/comment.controller.js +100 -0
- package/server/dist/modules/comment/comment.controller.js.map +1 -0
- package/server/dist/modules/comment/comment.entity.d.ts +17 -0
- package/server/dist/modules/comment/comment.entity.js +104 -0
- package/server/dist/modules/comment/comment.entity.js.map +1 -0
- package/server/dist/modules/comment/comment.module.d.ts +2 -0
- package/server/dist/modules/comment/comment.module.js +30 -0
- package/server/dist/modules/comment/comment.module.js.map +1 -0
- package/server/dist/modules/comment/comment.service.d.ts +24 -0
- package/server/dist/modules/comment/comment.service.js +172 -0
- package/server/dist/modules/comment/comment.service.js.map +1 -0
- package/server/dist/modules/comment/html.d.ts +15 -0
- package/server/dist/modules/comment/html.js +632 -0
- package/server/dist/modules/comment/html.js.map +1 -0
- package/server/dist/modules/file/file.controller.d.ts +10 -0
- package/server/dist/modules/file/file.controller.js +84 -0
- package/server/dist/modules/file/file.controller.js.map +1 -0
- package/server/dist/modules/file/file.entity.d.ts +9 -0
- package/server/dist/modules/file/file.entity.js +60 -0
- package/server/dist/modules/file/file.entity.js.map +1 -0
- package/server/dist/modules/file/file.module.d.ts +2 -0
- package/server/dist/modules/file/file.module.js +27 -0
- package/server/dist/modules/file/file.module.js.map +1 -0
- package/server/dist/modules/file/file.service.d.ts +17 -0
- package/server/dist/modules/file/file.service.js +111 -0
- package/server/dist/modules/file/file.service.js.map +1 -0
- package/server/dist/modules/health/health.controller.d.ts +11 -0
- package/server/dist/modules/health/health.controller.js +57 -0
- package/server/dist/modules/health/health.controller.js.map +1 -0
- package/server/dist/modules/health/health.module.d.ts +2 -0
- package/server/dist/modules/health/health.module.js +20 -0
- package/server/dist/modules/health/health.module.js.map +1 -0
- package/server/dist/modules/install/install.controller.d.ts +11 -0
- package/server/dist/modules/install/install.controller.js +49 -0
- package/server/dist/modules/install/install.controller.js.map +1 -0
- package/server/dist/modules/install/install.module.d.ts +2 -0
- package/server/dist/modules/install/install.module.js +26 -0
- package/server/dist/modules/install/install.module.js.map +1 -0
- package/server/dist/modules/install/install.service.d.ts +12 -0
- package/server/dist/modules/install/install.service.js +63 -0
- package/server/dist/modules/install/install.service.js.map +1 -0
- package/server/dist/modules/knowledge/knowledge.controller.d.ts +14 -0
- package/server/dist/modules/knowledge/knowledge.controller.js +128 -0
- package/server/dist/modules/knowledge/knowledge.controller.js.map +1 -0
- package/server/dist/modules/knowledge/knowledge.entity.d.ts +18 -0
- package/server/dist/modules/knowledge/knowledge.entity.js +109 -0
- package/server/dist/modules/knowledge/knowledge.entity.js.map +1 -0
- package/server/dist/modules/knowledge/knowledge.module.d.ts +2 -0
- package/server/dist/modules/knowledge/knowledge.module.js +27 -0
- package/server/dist/modules/knowledge/knowledge.module.js.map +1 -0
- package/server/dist/modules/knowledge/knowledge.service.d.ts +14 -0
- package/server/dist/modules/knowledge/knowledge.service.js +143 -0
- package/server/dist/modules/knowledge/knowledge.service.js.map +1 -0
- package/server/dist/modules/page/page.controller.d.ts +12 -0
- package/server/dist/modules/page/page.controller.js +102 -0
- package/server/dist/modules/page/page.controller.js.map +1 -0
- package/server/dist/modules/page/page.entity.d.ts +15 -0
- package/server/dist/modules/page/page.entity.js +94 -0
- package/server/dist/modules/page/page.entity.js.map +1 -0
- package/server/dist/modules/page/page.module.d.ts +2 -0
- package/server/dist/modules/page/page.module.js +27 -0
- package/server/dist/modules/page/page.module.js.map +1 -0
- package/server/dist/modules/page/page.service.d.ts +12 -0
- package/server/dist/modules/page/page.service.js +97 -0
- package/server/dist/modules/page/page.service.js.map +1 -0
- package/server/dist/modules/search/search.controller.d.ts +8 -0
- package/server/dist/modules/search/search.controller.js +67 -0
- package/server/dist/modules/search/search.controller.js.map +1 -0
- package/server/dist/modules/search/search.entity.d.ts +8 -0
- package/server/dist/modules/search/search.entity.js +59 -0
- package/server/dist/modules/search/search.entity.js.map +1 -0
- package/server/dist/modules/search/search.module.d.ts +2 -0
- package/server/dist/modules/search/search.module.js +27 -0
- package/server/dist/modules/search/search.module.js.map +1 -0
- package/server/dist/modules/search/search.service.d.ts +12 -0
- package/server/dist/modules/search/search.service.js +84 -0
- package/server/dist/modules/search/search.service.js.map +1 -0
- package/server/dist/modules/setting/setting.constant.d.ts +3 -0
- package/server/dist/modules/setting/setting.constant.js +25 -0
- package/server/dist/modules/setting/setting.constant.js.map +1 -0
- package/server/dist/modules/setting/setting.controller.d.ts +12 -0
- package/server/dist/modules/setting/setting.controller.js +77 -0
- package/server/dist/modules/setting/setting.controller.js.map +1 -0
- package/server/dist/modules/setting/setting.entity.d.ts +26 -0
- package/server/dist/modules/setting/setting.entity.js +149 -0
- package/server/dist/modules/setting/setting.entity.js.map +1 -0
- package/server/dist/modules/setting/setting.module.d.ts +2 -0
- package/server/dist/modules/setting/setting.module.js +28 -0
- package/server/dist/modules/setting/setting.module.js.map +1 -0
- package/server/dist/modules/setting/setting.service.d.ts +10 -0
- package/server/dist/modules/setting/setting.service.js +106 -0
- package/server/dist/modules/setting/setting.service.js.map +1 -0
- package/server/dist/modules/smtp/mail.util.d.ts +6 -0
- package/server/dist/modules/smtp/mail.util.js +33 -0
- package/server/dist/modules/smtp/mail.util.js.map +1 -0
- package/server/dist/modules/smtp/smtp.controller.d.ts +9 -0
- package/server/dist/modules/smtp/smtp.controller.js +69 -0
- package/server/dist/modules/smtp/smtp.controller.js.map +1 -0
- package/server/dist/modules/smtp/smtp.entity.d.ts +9 -0
- package/server/dist/modules/smtp/smtp.entity.js +60 -0
- package/server/dist/modules/smtp/smtp.entity.js.map +1 -0
- package/server/dist/modules/smtp/smtp.module.d.ts +2 -0
- package/server/dist/modules/smtp/smtp.module.js +28 -0
- package/server/dist/modules/smtp/smtp.module.js.map +1 -0
- package/server/dist/modules/smtp/smtp.service.d.ts +11 -0
- package/server/dist/modules/smtp/smtp.service.js +82 -0
- package/server/dist/modules/smtp/smtp.service.js.map +1 -0
- package/server/dist/modules/tag/tag.controller.d.ts +12 -0
- package/server/dist/modules/tag/tag.controller.js +101 -0
- package/server/dist/modules/tag/tag.controller.js.map +1 -0
- package/server/dist/modules/tag/tag.entity.d.ts +9 -0
- package/server/dist/modules/tag/tag.entity.js +59 -0
- package/server/dist/modules/tag/tag.entity.js.map +1 -0
- package/server/dist/modules/tag/tag.module.d.ts +2 -0
- package/server/dist/modules/tag/tag.module.js +27 -0
- package/server/dist/modules/tag/tag.module.js.map +1 -0
- package/server/dist/modules/tag/tag.service.d.ts +13 -0
- package/server/dist/modules/tag/tag.service.js +103 -0
- package/server/dist/modules/tag/tag.service.js.map +1 -0
- package/server/dist/modules/user/user.controller.d.ts +13 -0
- package/server/dist/modules/user/user.controller.js +114 -0
- package/server/dist/modules/user/user.controller.js.map +1 -0
- package/server/dist/modules/user/user.entity.d.ts +15 -0
- package/server/dist/modules/user/user.entity.js +96 -0
- package/server/dist/modules/user/user.entity.js.map +1 -0
- package/server/dist/modules/user/user.module.d.ts +2 -0
- package/server/dist/modules/user/user.module.js +28 -0
- package/server/dist/modules/user/user.module.js.map +1 -0
- package/server/dist/modules/user/user.service.d.ts +16 -0
- package/server/dist/modules/user/user.service.js +151 -0
- package/server/dist/modules/user/user.service.js.map +1 -0
- package/server/dist/modules/view/view.controller.d.ts +11 -0
- package/server/dist/modules/view/view.controller.js +92 -0
- package/server/dist/modules/view/view.controller.js.map +1 -0
- package/server/dist/modules/view/view.entity.d.ts +14 -0
- package/server/dist/modules/view/view.entity.js +88 -0
- package/server/dist/modules/view/view.entity.js.map +1 -0
- package/server/dist/modules/view/view.module.d.ts +2 -0
- package/server/dist/modules/view/view.module.js +27 -0
- package/server/dist/modules/view/view.module.js.map +1 -0
- package/server/dist/modules/view/view.service.d.ts +11 -0
- package/server/dist/modules/view/view.service.js +89 -0
- package/server/dist/modules/view/view.service.js.map +1 -0
- package/server/dist/modules/webhook/webhook.controller.d.ts +12 -0
- package/server/dist/modules/webhook/webhook.controller.js +63 -0
- package/server/dist/modules/webhook/webhook.controller.js.map +1 -0
- package/server/dist/modules/webhook/webhook.entity.d.ts +9 -0
- package/server/dist/modules/webhook/webhook.entity.js +54 -0
- package/server/dist/modules/webhook/webhook.entity.js.map +1 -0
- package/server/dist/modules/webhook/webhook.module.d.ts +2 -0
- package/server/dist/modules/webhook/webhook.module.js +27 -0
- package/server/dist/modules/webhook/webhook.module.js.map +1 -0
- package/server/dist/modules/webhook/webhook.service.d.ts +16 -0
- package/server/dist/modules/webhook/webhook.service.js +97 -0
- package/server/dist/modules/webhook/webhook.service.js.map +1 -0
- package/server/dist/public/favicon.png +0 -0
- package/server/dist/public/index.html +439 -0
- package/server/dist/public/swagger/custom.css +11 -0
- package/server/dist/starter.d.ts +1 -0
- package/server/dist/starter.js +84 -0
- package/server/dist/starter.js.map +1 -0
- package/server/dist/tsconfig.build.tsbuildinfo +16764 -0
- package/server/dist/utils/date.util.d.ts +1 -0
- package/server/dist/utils/date.util.js +13 -0
- package/server/dist/utils/date.util.js.map +1 -0
- package/server/dist/utils/ip.util.d.ts +2 -0
- package/server/dist/utils/ip.util.js +27 -0
- package/server/dist/utils/ip.util.js.map +1 -0
- package/server/dist/utils/markdown.util.d.ts +4 -0
- package/server/dist/utils/markdown.util.js +42 -0
- package/server/dist/utils/markdown.util.js.map +1 -0
- package/server/dist/utils/oss/aliyun-oss-client.d.ts +6 -0
- package/server/dist/utils/oss/aliyun-oss-client.js +28 -0
- package/server/dist/utils/oss/aliyun-oss-client.js.map +1 -0
- package/server/dist/utils/oss/oss-client.d.ts +6 -0
- package/server/dist/utils/oss/oss-client.js +10 -0
- package/server/dist/utils/oss/oss-client.js.map +1 -0
- package/server/dist/utils/oss.util.d.ts +13 -0
- package/server/dist/utils/oss.util.js +48 -0
- package/server/dist/utils/oss.util.js.map +1 -0
- package/server/dist/utils/ua.util.d.ts +9 -0
- package/server/dist/utils/ua.util.js +36 -0
- package/server/dist/utils/ua.util.js.map +1 -0
- package/server/dist/utils/uniqueid.util.d.ts +1 -0
- package/server/dist/utils/uniqueid.util.js +9 -0
- package/server/dist/utils/uniqueid.util.js.map +1 -0
- package/server/dist/utils/upload.util.d.ts +5 -0
- package/server/dist/utils/upload.util.js +34 -0
- package/server/dist/utils/upload.util.js.map +1 -0
- package/server/dist/utils/user.util.d.ts +1 -0
- package/server/dist/utils/user.util.js +18 -0
- package/server/dist/utils/user.util.js.map +1 -0
- package/server/ecosystem.config.js +18 -0
- package/server/package.json +146 -0
- package/server/public/favicon.png +0 -0
- package/server/public/index.html +439 -0
- package/server/public/swagger/custom.css +11 -0
- package/templates/config.default.json +12 -0
- package/templates/docker-compose.prod.yml +56 -0
- package/templates/docker-compose.yml +27 -0
- package/templates/env.default +11 -0
- package/templates/package.json +10 -0
- package/ui/banner.js +22 -0
- package/ui/interactive.js +184 -0
- package/ui/theme.js +25 -0
- package/CONTRIBUTING.md +0 -122
- package/client/bin/reactpress-client.js +0 -190
- package/scripts/build-packages.js +0 -271
- package/scripts/deploy.sh +0 -25
- package/scripts/dev.js +0 -39
- package/scripts/reactpress-server-old.js +0 -130
- package/scripts/reactpress-server.js +0 -666
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const { execSync } = require('child_process');
|
|
4
|
-
const fs = require('fs');
|
|
5
|
-
const path = require('path');
|
|
6
|
-
const chalk = require('chalk');
|
|
7
|
-
const crypto = require('crypto');
|
|
8
|
-
|
|
9
|
-
// Package build order (dependencies first)
|
|
10
|
-
const packages = [
|
|
11
|
-
{
|
|
12
|
-
name: '@fecommunity/reactpress-config',
|
|
13
|
-
path: 'config',
|
|
14
|
-
description: 'Configuration management package'
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
name: '@fecommunity/reactpress-server',
|
|
18
|
-
path: 'server',
|
|
19
|
-
description: 'Backend API server package'
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
name: '@fecommunity/reactpress-client',
|
|
23
|
-
path: 'client',
|
|
24
|
-
description: 'Frontend application package'
|
|
25
|
-
}
|
|
26
|
-
];
|
|
27
|
-
|
|
28
|
-
// Generate a hash for a file or directory
|
|
29
|
-
function generateHash(filePath) {
|
|
30
|
-
try {
|
|
31
|
-
if (fs.statSync(filePath).isDirectory()) {
|
|
32
|
-
const files = fs.readdirSync(filePath);
|
|
33
|
-
const hashes = files
|
|
34
|
-
.filter(file => !file.startsWith('.') && file !== 'node_modules' && file !== 'dist' && file !== '.next') // Ignore hidden files and build directories
|
|
35
|
-
.map(file => generateHash(path.join(filePath, file)))
|
|
36
|
-
.sort();
|
|
37
|
-
return crypto.createHash('md5').update(hashes.join('')).digest('hex');
|
|
38
|
-
} else {
|
|
39
|
-
const content = fs.readFileSync(filePath);
|
|
40
|
-
return crypto.createHash('md5').update(content).digest('hex');
|
|
41
|
-
}
|
|
42
|
-
} catch (error) {
|
|
43
|
-
return '';
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// Get package content hash
|
|
48
|
-
function getPackageHash(packagePath) {
|
|
49
|
-
const fullPath = path.join(process.cwd(), packagePath);
|
|
50
|
-
return generateHash(fullPath);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Check if package has meaningful changes
|
|
54
|
-
function hasMeaningfulChanges(packagePath, packageName) {
|
|
55
|
-
try {
|
|
56
|
-
// Create a hash file path to store previous hash in node_modules
|
|
57
|
-
const hashFilePath = path.join(process.cwd(), 'node_modules', '.build-cache', `${packageName.replace('/', '_')}.hash`);
|
|
58
|
-
|
|
59
|
-
// Generate current hash
|
|
60
|
-
const currentHash = getPackageHash(packagePath);
|
|
61
|
-
|
|
62
|
-
// Check if we have a previous hash
|
|
63
|
-
if (fs.existsSync(hashFilePath)) {
|
|
64
|
-
const previousHash = fs.readFileSync(hashFilePath, 'utf8').trim();
|
|
65
|
-
return currentHash !== previousHash;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// If no previous hash, consider it as having changes
|
|
69
|
-
return true;
|
|
70
|
-
} catch (error) {
|
|
71
|
-
console.log(chalk.yellow(`⚠️ Could not check changes for ${packageName}, assuming changes exist`));
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// Save package hash
|
|
77
|
-
function savePackageHash(packagePath, packageName) {
|
|
78
|
-
try {
|
|
79
|
-
const hashFilePath = path.join(process.cwd(), 'node_modules', '.build-cache', `${packageName.replace('/', '_')}.hash`);
|
|
80
|
-
|
|
81
|
-
// Ensure cache directory exists
|
|
82
|
-
const cacheDir = path.dirname(hashFilePath);
|
|
83
|
-
if (!fs.existsSync(cacheDir)) {
|
|
84
|
-
fs.mkdirSync(cacheDir, { recursive: true });
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// Generate and save current hash
|
|
88
|
-
const currentHash = getPackageHash(packagePath);
|
|
89
|
-
fs.writeFileSync(hashFilePath, currentHash);
|
|
90
|
-
} catch (error) {
|
|
91
|
-
console.log(chalk.yellow(`⚠️ Could not save hash for ${packageName}`));
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// Get current versions
|
|
96
|
-
function getCurrentVersion(packagePath) {
|
|
97
|
-
try {
|
|
98
|
-
const pkgPath = path.join(process.cwd(), packagePath, 'package.json');
|
|
99
|
-
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
|
|
100
|
-
return pkg.version;
|
|
101
|
-
} catch (error) {
|
|
102
|
-
return 'unknown';
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// Fix workspace dependencies for build
|
|
107
|
-
function fixWorkspaceDependenciesForBuild(packagePath) {
|
|
108
|
-
console.log(chalk.blue(`🔧 Fixing workspace dependencies for build: ${packagePath}...`));
|
|
109
|
-
|
|
110
|
-
const pkgPath = path.join(process.cwd(), packagePath, 'package.json');
|
|
111
|
-
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
|
|
112
|
-
|
|
113
|
-
// Fix dependencies
|
|
114
|
-
const depTypes = ['dependencies', 'devDependencies', 'peerDependencies'];
|
|
115
|
-
|
|
116
|
-
depTypes.forEach(depType => {
|
|
117
|
-
if (pkg[depType]) {
|
|
118
|
-
Object.keys(pkg[depType]).forEach(depName => {
|
|
119
|
-
// Check if it's a workspace dependency
|
|
120
|
-
if (pkg[depType][depName] === 'workspace:*' || pkg[depType][depName].startsWith('workspace:')) {
|
|
121
|
-
// For build purposes, we'll use the file: protocol to reference local packages
|
|
122
|
-
const depPackage = packages.find(p => p.name === depName);
|
|
123
|
-
if (depPackage) {
|
|
124
|
-
console.log(chalk.gray(` Replacing ${depName} workspace dependency with file reference`));
|
|
125
|
-
pkg[depType][depName] = `file:../${depPackage.path}`;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
// Write the updated package.json
|
|
133
|
-
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
|
|
134
|
-
console.log(chalk.green(`✅ Workspace dependencies fixed for build: ${packagePath}`));
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// Restore workspace dependencies after build
|
|
138
|
-
function restoreWorkspaceDependenciesAfterBuild(packagePath) {
|
|
139
|
-
console.log(chalk.blue(`🔄 Restoring workspace dependencies after build: ${packagePath}...`));
|
|
140
|
-
|
|
141
|
-
const pkgPath = path.join(process.cwd(), packagePath, 'package.json');
|
|
142
|
-
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
|
|
143
|
-
|
|
144
|
-
// Restore dependencies
|
|
145
|
-
const depTypes = ['dependencies', 'devDependencies', 'peerDependencies'];
|
|
146
|
-
|
|
147
|
-
depTypes.forEach(depType => {
|
|
148
|
-
if (pkg[depType]) {
|
|
149
|
-
Object.keys(pkg[depType]).forEach(depName => {
|
|
150
|
-
// Check if this is one of our internal packages referenced with file:
|
|
151
|
-
const depPackage = packages.find(p => p.name === depName);
|
|
152
|
-
if (depPackage && pkg[depType][depName].startsWith('file:')) {
|
|
153
|
-
console.log(chalk.gray(` Restoring ${depName} to workspace dependency`));
|
|
154
|
-
pkg[depType][depName] = 'workspace:*';
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
// Write the updated package.json
|
|
161
|
-
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
|
|
162
|
-
console.log(chalk.green(`✅ Workspace dependencies restored after build: ${packagePath}`));
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
// Build package
|
|
166
|
-
function buildPackage(pkg) {
|
|
167
|
-
console.log(chalk.blue(`\n🔨 Building ${pkg.name} (${pkg.description})...`));
|
|
168
|
-
|
|
169
|
-
try {
|
|
170
|
-
// Fix workspace dependencies for build
|
|
171
|
-
fixWorkspaceDependenciesForBuild(pkg.path);
|
|
172
|
-
|
|
173
|
-
try {
|
|
174
|
-
if (pkg.path === 'config') {
|
|
175
|
-
execSync('pnpm run build', { cwd: path.join(process.cwd(), pkg.path), stdio: 'inherit' });
|
|
176
|
-
} else if (pkg.path === 'server') {
|
|
177
|
-
execSync('pnpm run prebuild && pnpm run build', { cwd: path.join(process.cwd(), pkg.path), stdio: 'inherit' });
|
|
178
|
-
} else if (pkg.path === 'client') {
|
|
179
|
-
execSync('pnpm run prebuild && pnpm run build', { cwd: path.join(process.cwd(), pkg.path), stdio: 'inherit' });
|
|
180
|
-
}
|
|
181
|
-
console.log(chalk.green(`✅ ${pkg.name} built successfully`));
|
|
182
|
-
} finally {
|
|
183
|
-
// Always restore workspace dependencies
|
|
184
|
-
restoreWorkspaceDependenciesAfterBuild(pkg.path);
|
|
185
|
-
}
|
|
186
|
-
} catch (error) {
|
|
187
|
-
console.log(chalk.red(`❌ Failed to build ${pkg.name}`));
|
|
188
|
-
throw error;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
// Main function
|
|
193
|
-
async function main() {
|
|
194
|
-
console.log(chalk.blue('🏗️ ReactPress Package Builder\n'));
|
|
195
|
-
|
|
196
|
-
// Show current versions
|
|
197
|
-
console.log(chalk.cyan('📋 Current package versions:'));
|
|
198
|
-
packages.forEach(pkg => {
|
|
199
|
-
const version = getCurrentVersion(pkg.path);
|
|
200
|
-
console.log(chalk.gray(` ${pkg.name}: ${version}`));
|
|
201
|
-
});
|
|
202
|
-
console.log();
|
|
203
|
-
|
|
204
|
-
try {
|
|
205
|
-
// Track which packages actually need to be built
|
|
206
|
-
const packagesToBuild = [];
|
|
207
|
-
|
|
208
|
-
// Check for meaningful changes in each package
|
|
209
|
-
for (const pkg of packages) {
|
|
210
|
-
if (fs.existsSync(path.join(process.cwd(), pkg.path))) {
|
|
211
|
-
if (hasMeaningfulChanges(pkg.path, pkg.name)) {
|
|
212
|
-
packagesToBuild.push(pkg);
|
|
213
|
-
console.log(chalk.blue(`\n📦 ${pkg.name} has changes, will be built`));
|
|
214
|
-
} else {
|
|
215
|
-
console.log(chalk.gray(`\n⏭️ ${pkg.name} has no meaningful changes, skipping...`));
|
|
216
|
-
}
|
|
217
|
-
} else {
|
|
218
|
-
console.log(chalk.yellow(`⚠️ Package ${pkg.name} directory not found, skipping...`));
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
if (packagesToBuild.length === 0) {
|
|
223
|
-
console.log(chalk.green('\n✅ No packages have meaningful changes. Nothing to build!'));
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
// Build packages that have changes
|
|
228
|
-
for (const pkg of packagesToBuild) {
|
|
229
|
-
await buildPackage(pkg);
|
|
230
|
-
// Save the hash after successful build
|
|
231
|
-
savePackageHash(pkg.path, pkg.name);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
console.log(chalk.green(`\n🎉 ${packagesToBuild.length} package(s) built successfully!`));
|
|
235
|
-
} catch (error) {
|
|
236
|
-
console.error(chalk.red('❌ Build failed:'), error);
|
|
237
|
-
process.exit(1);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
// Check if called with --publish flag
|
|
242
|
-
if (process.argv.includes('--publish')) {
|
|
243
|
-
// When called with --publish, we only show the header and versions but don't build
|
|
244
|
-
// The publish script will handle building as needed
|
|
245
|
-
console.log(chalk.blue('🏗️ ReactPress Package Builder\n'));
|
|
246
|
-
|
|
247
|
-
// Show current versions
|
|
248
|
-
console.log(chalk.cyan('📋 Current package versions:'));
|
|
249
|
-
packages.forEach(pkg => {
|
|
250
|
-
const version = getCurrentVersion(pkg.path);
|
|
251
|
-
console.log(chalk.gray(` ${pkg.name}: ${version}`));
|
|
252
|
-
});
|
|
253
|
-
console.log();
|
|
254
|
-
|
|
255
|
-
// Don't build packages here, just start the publish process
|
|
256
|
-
console.log(chalk.blue('\n🚀 Starting publish process...'));
|
|
257
|
-
// Execute publish script
|
|
258
|
-
const { spawn } = require('child_process');
|
|
259
|
-
const publishProcess = spawn('node', ['scripts/publish-packages.js', '--release'], { stdio: 'inherit' });
|
|
260
|
-
|
|
261
|
-
publishProcess.on('close', (code) => {
|
|
262
|
-
if (code === 0) {
|
|
263
|
-
console.log(chalk.green('\n✅ Build and publish completed successfully!'));
|
|
264
|
-
} else {
|
|
265
|
-
console.log(chalk.red('\n❌ Publish process failed!'));
|
|
266
|
-
process.exit(code);
|
|
267
|
-
}
|
|
268
|
-
});
|
|
269
|
-
} else {
|
|
270
|
-
main();
|
|
271
|
-
}
|
package/scripts/deploy.sh
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# 更新代码
|
|
2
|
-
git checkout master
|
|
3
|
-
git pull
|
|
4
|
-
|
|
5
|
-
# 安装依赖&构建
|
|
6
|
-
pnpm install
|
|
7
|
-
|
|
8
|
-
# 构建本地配置
|
|
9
|
-
pnpm run build:config
|
|
10
|
-
|
|
11
|
-
# 构建服务器
|
|
12
|
-
pnpm run build:server
|
|
13
|
-
|
|
14
|
-
# 结束进程
|
|
15
|
-
pm2 kill
|
|
16
|
-
|
|
17
|
-
# 构建本地client
|
|
18
|
-
pnpm run build:client
|
|
19
|
-
|
|
20
|
-
# 启动
|
|
21
|
-
pnpm run pm2
|
|
22
|
-
|
|
23
|
-
# 开机启动
|
|
24
|
-
pm2 startup
|
|
25
|
-
pm2 save
|
package/scripts/dev.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
// scripts/dev.js
|
|
2
|
-
const { spawn } = require('child_process');
|
|
3
|
-
const path = require('path');
|
|
4
|
-
|
|
5
|
-
// 获取当前工作目录
|
|
6
|
-
const currentWorkingDir = process.cwd();
|
|
7
|
-
|
|
8
|
-
// 设置环境变量
|
|
9
|
-
process.env.REACTPRESS_ORIGINAL_CWD = currentWorkingDir;
|
|
10
|
-
|
|
11
|
-
console.log(`设置 REACTPRESS_ORIGINAL_CWD: ${currentWorkingDir}`);
|
|
12
|
-
|
|
13
|
-
// 执行构建命令
|
|
14
|
-
const build = spawn('pnpm', ['build:toolkit'], {
|
|
15
|
-
stdio: 'inherit',
|
|
16
|
-
shell: true
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
build.on('close', (code) => {
|
|
20
|
-
if (code !== 0) {
|
|
21
|
-
console.error(`构建失败,退出码: ${code}`);
|
|
22
|
-
process.exit(code);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// 执行并发命令
|
|
26
|
-
const concurrently = spawn('npx', [
|
|
27
|
-
'concurrently',
|
|
28
|
-
'pnpm:dev:server',
|
|
29
|
-
'pnpm:dev:client'
|
|
30
|
-
], {
|
|
31
|
-
stdio: 'inherit',
|
|
32
|
-
shell: true,
|
|
33
|
-
cwd: currentWorkingDir
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
concurrently.on('close', (code) => {
|
|
37
|
-
process.exit(code);
|
|
38
|
-
});
|
|
39
|
-
});
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const express = require('express');
|
|
4
|
-
const mysql = require('mysql2/promise');
|
|
5
|
-
const chalk = require('chalk');
|
|
6
|
-
const open = require('open');
|
|
7
|
-
const fs = require('fs');
|
|
8
|
-
const path = require('path');
|
|
9
|
-
const crypto = require('crypto');
|
|
10
|
-
|
|
11
|
-
const PORT = 3003;
|
|
12
|
-
const envPath = path.join(process.cwd(), '.env');
|
|
13
|
-
|
|
14
|
-
// WordPress-style 5-minute installation
|
|
15
|
-
async function install() {
|
|
16
|
-
console.log(chalk.blue('🚀 ReactPress 5-Minute Installation'));
|
|
17
|
-
console.log(chalk.cyan('🌍 Starting installation wizard...'));
|
|
18
|
-
|
|
19
|
-
const app = express();
|
|
20
|
-
app.use(express.json());
|
|
21
|
-
app.get('/', (req, res) => res.send(getHTML()));
|
|
22
|
-
|
|
23
|
-
app.post('/test-db', async (req, res) => {
|
|
24
|
-
const { host, port, user, password, database } = req.body;
|
|
25
|
-
try {
|
|
26
|
-
const conn = await mysql.createConnection({ host, port: parseInt(port), user, password });
|
|
27
|
-
await conn.execute(`CREATE DATABASE IF NOT EXISTS \`${database}\` CHARACTER SET utf8mb4`);
|
|
28
|
-
await conn.end();
|
|
29
|
-
res.json({ success: true, message: 'Database connection successful!' });
|
|
30
|
-
} catch (error) {
|
|
31
|
-
res.json({ success: false, message: error.message });
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
app.post('/install', async (req, res) => {
|
|
36
|
-
const { db, site } = req.body;
|
|
37
|
-
const env = `DB_HOST=${db.host}\nDB_PORT=${db.port}\nDB_USER=${db.user}\nDB_PASSWD=${db.password}\nDB_DATABASE=${db.database}\nCLIENT_SITE_URL=${site.clientUrl}\nSERVER_SITE_URL=${site.serverUrl}\nJWT_SECRET=${crypto.randomBytes(32).toString('hex')}\n`;
|
|
38
|
-
fs.writeFileSync(envPath, env);
|
|
39
|
-
res.json({ success: true, message: 'ReactPress installed successfully!' });
|
|
40
|
-
setTimeout(() => {
|
|
41
|
-
console.log(chalk.green('\n🎉 Installation completed!'));
|
|
42
|
-
console.log(chalk.cyan('Run: npx reactpress-server start'));
|
|
43
|
-
process.exit(0);
|
|
44
|
-
}, 2000);
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
const server = app.listen(PORT, () => {
|
|
48
|
-
const url = `http://localhost:${PORT}`;
|
|
49
|
-
console.log(chalk.green(`✅ Installation wizard: ${url}`));
|
|
50
|
-
open(url);
|
|
51
|
-
console.log(chalk.gray('Press Ctrl+C to cancel\n'));
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
process.on('SIGINT', () => {
|
|
55
|
-
console.log(chalk.yellow('\n⚠️ Installation cancelled'));
|
|
56
|
-
server.close();
|
|
57
|
-
process.exit(0);
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function start() {
|
|
62
|
-
if (!fs.existsSync(envPath)) {
|
|
63
|
-
console.log(chalk.red('❌ No configuration found!'));
|
|
64
|
-
console.log(chalk.yellow('Run: npx reactpress-server install'));
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
console.log(chalk.blue('🚀 Starting ReactPress Server...'));
|
|
68
|
-
const { spawn } = require('child_process');
|
|
69
|
-
spawn('npm', ['run', 'start:dev'], { cwd: path.resolve(__dirname, '../server'), stdio: 'inherit' });
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (!clientUrl || !serverUrl) {
|
|
73
|
-
showNotice('Please fill in all site URLs.', 'error', 'installResult');
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
const installBtn = document.getElementById('installBtn');
|
|
78
|
-
const originalText = installBtn.innerHTML;
|
|
79
|
-
|
|
80
|
-
installBtn.disabled = true;
|
|
81
|
-
installBtn.innerHTML = '<span class="wp-loader"></span>Installing ReactPress...';
|
|
82
|
-
|
|
83
|
-
try {
|
|
84
|
-
const response = await fetch('/install', {
|
|
85
|
-
method: 'POST',
|
|
86
|
-
headers: {
|
|
87
|
-
'Content-Type': 'application/json'
|
|
88
|
-
},
|
|
89
|
-
body: JSON.stringify({
|
|
90
|
-
db: dbData,
|
|
91
|
-
site: { clientUrl, serverUrl }
|
|
92
|
-
})
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
const result = await response.json();
|
|
96
|
-
|
|
97
|
-
if (result.success) {
|
|
98
|
-
showStep(3);
|
|
99
|
-
} else {
|
|
100
|
-
showNotice(result.message, 'error', 'installResult');
|
|
101
|
-
}
|
|
102
|
-
} catch (error) {
|
|
103
|
-
showNotice('Installation failed. Please try again.', 'error', 'installResult');
|
|
104
|
-
} finally {
|
|
105
|
-
installBtn.disabled = false;
|
|
106
|
-
installBtn.innerHTML = originalText;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
// Initialize progress bar
|
|
111
|
-
updateProgress();
|
|
112
|
-
|
|
113
|
-
// Auto-focus first input
|
|
114
|
-
document.getElementById('dbHost').focus();
|
|
115
|
-
</script>
|
|
116
|
-
</body>
|
|
117
|
-
</html>`;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// Main entry point
|
|
121
|
-
const args = process.argv.slice(2);
|
|
122
|
-
if (args.length === 0 || args[0] === 'install') {
|
|
123
|
-
install();
|
|
124
|
-
} else if (args[0] === 'start') {
|
|
125
|
-
start();
|
|
126
|
-
} else {
|
|
127
|
-
console.log(chalk.blue('ReactPress Server CLI'));
|
|
128
|
-
console.log(chalk.gray('npx reactpress-server # Install'));
|
|
129
|
-
console.log(chalk.gray('npx reactpress-server start # Start server'));
|
|
130
|
-
}
|