@factiii/stack 0.1.2
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/README.md +420 -0
- package/bin/factiii +229 -0
- package/dist/cli/check-config.d.ts +9 -0
- package/dist/cli/check-config.d.ts.map +1 -0
- package/dist/cli/check-config.js +19 -0
- package/dist/cli/check-config.js.map +1 -0
- package/dist/cli/deploy-secrets.d.ts +16 -0
- package/dist/cli/deploy-secrets.d.ts.map +1 -0
- package/dist/cli/deploy-secrets.js +227 -0
- package/dist/cli/deploy-secrets.js.map +1 -0
- package/dist/cli/deploy.d.ts +30 -0
- package/dist/cli/deploy.d.ts.map +1 -0
- package/dist/cli/deploy.js +306 -0
- package/dist/cli/deploy.js.map +1 -0
- package/dist/cli/deployer.d.ts +13 -0
- package/dist/cli/deployer.d.ts.map +1 -0
- package/dist/cli/deployer.js +21 -0
- package/dist/cli/deployer.js.map +1 -0
- package/dist/cli/dev-sync.d.ts +30 -0
- package/dist/cli/dev-sync.d.ts.map +1 -0
- package/dist/cli/dev-sync.js +500 -0
- package/dist/cli/dev-sync.js.map +1 -0
- package/dist/cli/execute-plugin-command.d.ts +25 -0
- package/dist/cli/execute-plugin-command.d.ts.map +1 -0
- package/dist/cli/execute-plugin-command.js +237 -0
- package/dist/cli/execute-plugin-command.js.map +1 -0
- package/dist/cli/fix.d.ts +22 -0
- package/dist/cli/fix.d.ts.map +1 -0
- package/dist/cli/fix.js +267 -0
- package/dist/cli/fix.js.map +1 -0
- package/dist/cli/index.d.ts +17 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +31 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init.d.ts +9 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +190 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/plugin-commands.d.ts +22 -0
- package/dist/cli/plugin-commands.d.ts.map +1 -0
- package/dist/cli/plugin-commands.js +121 -0
- package/dist/cli/plugin-commands.js.map +1 -0
- package/dist/cli/scan.d.ts +66 -0
- package/dist/cli/scan.d.ts.map +1 -0
- package/dist/cli/scan.js +511 -0
- package/dist/cli/scan.js.map +1 -0
- package/dist/cli/secrets.d.ts +19 -0
- package/dist/cli/secrets.d.ts.map +1 -0
- package/dist/cli/secrets.js +318 -0
- package/dist/cli/secrets.js.map +1 -0
- package/dist/cli/undeploy.d.ts +9 -0
- package/dist/cli/undeploy.d.ts.map +1 -0
- package/dist/cli/undeploy.js +95 -0
- package/dist/cli/undeploy.js.map +1 -0
- package/dist/cli/upgrade.d.ts +9 -0
- package/dist/cli/upgrade.d.ts.map +1 -0
- package/dist/cli/upgrade.js +24 -0
- package/dist/cli/upgrade.js.map +1 -0
- package/dist/cli/validate.d.ts +9 -0
- package/dist/cli/validate.d.ts.map +1 -0
- package/dist/cli/validate.js +20 -0
- package/dist/cli/validate.js.map +1 -0
- package/dist/generators/generate-factiii-auto.d.ts +31 -0
- package/dist/generators/generate-factiii-auto.d.ts.map +1 -0
- package/dist/generators/generate-factiii-auto.js +251 -0
- package/dist/generators/generate-factiii-auto.js.map +1 -0
- package/dist/generators/generate-factiii-yml.d.ts +23 -0
- package/dist/generators/generate-factiii-yml.d.ts.map +1 -0
- package/dist/generators/generate-factiii-yml.js +228 -0
- package/dist/generators/generate-factiii-yml.js.map +1 -0
- package/dist/generators/index.d.ts +8 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +14 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +90 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/addons/server-mode/index.d.ts +57 -0
- package/dist/plugins/addons/server-mode/index.d.ts.map +1 -0
- package/dist/plugins/addons/server-mode/index.js +136 -0
- package/dist/plugins/addons/server-mode/index.js.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/mac.d.ts +17 -0
- package/dist/plugins/addons/server-mode/scanfix/mac.d.ts.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/mac.js +461 -0
- package/dist/plugins/addons/server-mode/scanfix/mac.js.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/ubuntu.d.ts +12 -0
- package/dist/plugins/addons/server-mode/scanfix/ubuntu.d.ts.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/ubuntu.js +246 -0
- package/dist/plugins/addons/server-mode/scanfix/ubuntu.js.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/windows.d.ts +14 -0
- package/dist/plugins/addons/server-mode/scanfix/windows.d.ts.map +1 -0
- package/dist/plugins/addons/server-mode/scanfix/windows.js +113 -0
- package/dist/plugins/addons/server-mode/scanfix/windows.js.map +1 -0
- package/dist/plugins/approved.json +13 -0
- package/dist/plugins/frameworks/prisma-trpc/index.d.ts +65 -0
- package/dist/plugins/frameworks/prisma-trpc/index.d.ts.map +1 -0
- package/dist/plugins/frameworks/prisma-trpc/index.js +668 -0
- package/dist/plugins/frameworks/prisma-trpc/index.js.map +1 -0
- package/dist/plugins/index.d.ts +101 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +411 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/interfaces/addon.d.ts +43 -0
- package/dist/plugins/interfaces/addon.d.ts.map +1 -0
- package/dist/plugins/interfaces/addon.js +53 -0
- package/dist/plugins/interfaces/addon.js.map +1 -0
- package/dist/plugins/interfaces/framework.d.ts +43 -0
- package/dist/plugins/interfaces/framework.d.ts.map +1 -0
- package/dist/plugins/interfaces/framework.js +53 -0
- package/dist/plugins/interfaces/framework.js.map +1 -0
- package/dist/plugins/interfaces/index.d.ts +10 -0
- package/dist/plugins/interfaces/index.d.ts.map +1 -0
- package/dist/plugins/interfaces/index.js +17 -0
- package/dist/plugins/interfaces/index.js.map +1 -0
- package/dist/plugins/interfaces/pipeline.d.ts +78 -0
- package/dist/plugins/interfaces/pipeline.d.ts.map +1 -0
- package/dist/plugins/interfaces/pipeline.js +82 -0
- package/dist/plugins/interfaces/pipeline.js.map +1 -0
- package/dist/plugins/interfaces/server.d.ts +65 -0
- package/dist/plugins/interfaces/server.d.ts.map +1 -0
- package/dist/plugins/interfaces/server.js +72 -0
- package/dist/plugins/interfaces/server.js.map +1 -0
- package/dist/plugins/pipelines/aws/configs/ec2.d.ts +9 -0
- package/dist/plugins/pipelines/aws/configs/ec2.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/configs/ec2.js +34 -0
- package/dist/plugins/pipelines/aws/configs/ec2.js.map +1 -0
- package/dist/plugins/pipelines/aws/configs/free-tier.d.ts +13 -0
- package/dist/plugins/pipelines/aws/configs/free-tier.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/configs/free-tier.js +86 -0
- package/dist/plugins/pipelines/aws/configs/free-tier.js.map +1 -0
- package/dist/plugins/pipelines/aws/configs/index.d.ts +14 -0
- package/dist/plugins/pipelines/aws/configs/index.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/configs/index.js +21 -0
- package/dist/plugins/pipelines/aws/configs/index.js.map +1 -0
- package/dist/plugins/pipelines/aws/configs/types.d.ts +36 -0
- package/dist/plugins/pipelines/aws/configs/types.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/configs/types.js +9 -0
- package/dist/plugins/pipelines/aws/configs/types.js.map +1 -0
- package/dist/plugins/pipelines/aws/dev.d.ts +10 -0
- package/dist/plugins/pipelines/aws/dev.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/dev.js +70 -0
- package/dist/plugins/pipelines/aws/dev.js.map +1 -0
- package/dist/plugins/pipelines/aws/index.d.ts +118 -0
- package/dist/plugins/pipelines/aws/index.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/index.js +346 -0
- package/dist/plugins/pipelines/aws/index.js.map +1 -0
- package/dist/plugins/pipelines/aws/prod.d.ts +19 -0
- package/dist/plugins/pipelines/aws/prod.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/prod.js +362 -0
- package/dist/plugins/pipelines/aws/prod.js.map +1 -0
- package/dist/plugins/pipelines/aws/scanfix/aws-cli.d.ts +7 -0
- package/dist/plugins/pipelines/aws/scanfix/aws-cli.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/scanfix/aws-cli.js +31 -0
- package/dist/plugins/pipelines/aws/scanfix/aws-cli.js.map +1 -0
- package/dist/plugins/pipelines/aws/scanfix/config.d.ts +7 -0
- package/dist/plugins/pipelines/aws/scanfix/config.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/scanfix/config.js +134 -0
- package/dist/plugins/pipelines/aws/scanfix/config.js.map +1 -0
- package/dist/plugins/pipelines/factiii/github-secrets-store.d.ts +65 -0
- package/dist/plugins/pipelines/factiii/github-secrets-store.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/github-secrets-store.js +221 -0
- package/dist/plugins/pipelines/factiii/github-secrets-store.js.map +1 -0
- package/dist/plugins/pipelines/factiii/index.d.ts +195 -0
- package/dist/plugins/pipelines/factiii/index.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/index.js +862 -0
- package/dist/plugins/pipelines/factiii/index.js.map +1 -0
- package/dist/plugins/pipelines/factiii/prod.d.ts +17 -0
- package/dist/plugins/pipelines/factiii/prod.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/prod.js +282 -0
- package/dist/plugins/pipelines/factiii/prod.js.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/config.d.ts +7 -0
- package/dist/plugins/pipelines/factiii/scanfix/config.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/config.js +80 -0
- package/dist/plugins/pipelines/factiii/scanfix/config.js.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/github-cli.d.ts +7 -0
- package/dist/plugins/pipelines/factiii/scanfix/github-cli.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/github-cli.js +43 -0
- package/dist/plugins/pipelines/factiii/scanfix/github-cli.js.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/secrets.d.ts +7 -0
- package/dist/plugins/pipelines/factiii/scanfix/secrets.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/secrets.js +237 -0
- package/dist/plugins/pipelines/factiii/scanfix/secrets.js.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/workflows.d.ts +7 -0
- package/dist/plugins/pipelines/factiii/scanfix/workflows.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/scanfix/workflows.js +169 -0
- package/dist/plugins/pipelines/factiii/scanfix/workflows.js.map +1 -0
- package/dist/plugins/pipelines/factiii/staging.d.ts +25 -0
- package/dist/plugins/pipelines/factiii/staging.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/staging.js +223 -0
- package/dist/plugins/pipelines/factiii/staging.js.map +1 -0
- package/dist/plugins/pipelines/factiii/utils/detection.d.ts +36 -0
- package/dist/plugins/pipelines/factiii/utils/detection.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/utils/detection.js +140 -0
- package/dist/plugins/pipelines/factiii/utils/detection.js.map +1 -0
- package/dist/plugins/pipelines/factiii/utils/workflows.d.ts +16 -0
- package/dist/plugins/pipelines/factiii/utils/workflows.d.ts.map +1 -0
- package/dist/plugins/pipelines/factiii/utils/workflows.js +129 -0
- package/dist/plugins/pipelines/factiii/utils/workflows.js.map +1 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-cicd-prod.yml +112 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-cicd-staging.yml +112 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-command.yml +130 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-deploy.yml +198 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-dev-sync.yml +179 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-fix.yml +176 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-scan.yml +176 -0
- package/dist/plugins/pipelines/factiii/workflows/factiii-undeploy.yml +95 -0
- package/dist/plugins/servers/amazon-linux/index.d.ts +93 -0
- package/dist/plugins/servers/amazon-linux/index.d.ts.map +1 -0
- package/dist/plugins/servers/amazon-linux/index.js +217 -0
- package/dist/plugins/servers/amazon-linux/index.js.map +1 -0
- package/dist/plugins/servers/mac/dev.d.ts +10 -0
- package/dist/plugins/servers/mac/dev.d.ts.map +1 -0
- package/dist/plugins/servers/mac/dev.js +71 -0
- package/dist/plugins/servers/mac/dev.js.map +1 -0
- package/dist/plugins/servers/mac/index.d.ts +101 -0
- package/dist/plugins/servers/mac/index.d.ts.map +1 -0
- package/dist/plugins/servers/mac/index.js +257 -0
- package/dist/plugins/servers/mac/index.js.map +1 -0
- package/dist/plugins/servers/mac/scanfix/config.d.ts +7 -0
- package/dist/plugins/servers/mac/scanfix/config.d.ts.map +1 -0
- package/dist/plugins/servers/mac/scanfix/config.js +168 -0
- package/dist/plugins/servers/mac/scanfix/config.js.map +1 -0
- package/dist/plugins/servers/mac/scanfix/containers.d.ts +7 -0
- package/dist/plugins/servers/mac/scanfix/containers.d.ts.map +1 -0
- package/dist/plugins/servers/mac/scanfix/containers.js +167 -0
- package/dist/plugins/servers/mac/scanfix/containers.js.map +1 -0
- package/dist/plugins/servers/mac/scanfix/system.d.ts +7 -0
- package/dist/plugins/servers/mac/scanfix/system.d.ts.map +1 -0
- package/dist/plugins/servers/mac/scanfix/system.js +144 -0
- package/dist/plugins/servers/mac/scanfix/system.js.map +1 -0
- package/dist/plugins/servers/mac/staging.d.ts +21 -0
- package/dist/plugins/servers/mac/staging.d.ts.map +1 -0
- package/dist/plugins/servers/mac/staging.js +708 -0
- package/dist/plugins/servers/mac/staging.js.map +1 -0
- package/dist/plugins/servers/ubuntu/index.d.ts +93 -0
- package/dist/plugins/servers/ubuntu/index.d.ts.map +1 -0
- package/dist/plugins/servers/ubuntu/index.js +224 -0
- package/dist/plugins/servers/ubuntu/index.js.map +1 -0
- package/dist/plugins/servers/windows/index.d.ts +90 -0
- package/dist/plugins/servers/windows/index.d.ts.map +1 -0
- package/dist/plugins/servers/windows/index.js +205 -0
- package/dist/plugins/servers/windows/index.js.map +1 -0
- package/dist/scanfix/commands/index.d.ts +27 -0
- package/dist/scanfix/commands/index.d.ts.map +1 -0
- package/dist/scanfix/commands/index.js +97 -0
- package/dist/scanfix/commands/index.js.map +1 -0
- package/dist/scanfix/commands/mac.d.ts +11 -0
- package/dist/scanfix/commands/mac.d.ts.map +1 -0
- package/dist/scanfix/commands/mac.js +31 -0
- package/dist/scanfix/commands/mac.js.map +1 -0
- package/dist/scanfix/commands/ubuntu.d.ts +11 -0
- package/dist/scanfix/commands/ubuntu.d.ts.map +1 -0
- package/dist/scanfix/commands/ubuntu.js +30 -0
- package/dist/scanfix/commands/ubuntu.js.map +1 -0
- package/dist/scanfix/fixes/certbot.d.ts +25 -0
- package/dist/scanfix/fixes/certbot.d.ts.map +1 -0
- package/dist/scanfix/fixes/certbot.js +136 -0
- package/dist/scanfix/fixes/certbot.js.map +1 -0
- package/dist/scanfix/fixes/docker.d.ts +29 -0
- package/dist/scanfix/fixes/docker.d.ts.map +1 -0
- package/dist/scanfix/fixes/docker.js +149 -0
- package/dist/scanfix/fixes/docker.js.map +1 -0
- package/dist/scanfix/fixes/git.d.ts +20 -0
- package/dist/scanfix/fixes/git.d.ts.map +1 -0
- package/dist/scanfix/fixes/git.js +71 -0
- package/dist/scanfix/fixes/git.js.map +1 -0
- package/dist/scanfix/fixes/index.d.ts +11 -0
- package/dist/scanfix/fixes/index.d.ts.map +1 -0
- package/dist/scanfix/fixes/index.js +27 -0
- package/dist/scanfix/fixes/index.js.map +1 -0
- package/dist/scanfix/fixes/node.d.ts +20 -0
- package/dist/scanfix/fixes/node.d.ts.map +1 -0
- package/dist/scanfix/fixes/node.js +71 -0
- package/dist/scanfix/fixes/node.js.map +1 -0
- package/dist/scanfix/fixes/pnpm.d.ts +20 -0
- package/dist/scanfix/fixes/pnpm.d.ts.map +1 -0
- package/dist/scanfix/fixes/pnpm.js +122 -0
- package/dist/scanfix/fixes/pnpm.js.map +1 -0
- package/dist/scanfix/index.d.ts +23 -0
- package/dist/scanfix/index.d.ts.map +1 -0
- package/dist/scanfix/index.js +44 -0
- package/dist/scanfix/index.js.map +1 -0
- package/dist/scanfix/platform.d.ts +20 -0
- package/dist/scanfix/platform.d.ts.map +1 -0
- package/dist/scanfix/platform.js +48 -0
- package/dist/scanfix/platform.js.map +1 -0
- package/dist/scanfix/ssl-cert-helper.d.ts +27 -0
- package/dist/scanfix/ssl-cert-helper.d.ts.map +1 -0
- package/dist/scanfix/ssl-cert-helper.js +117 -0
- package/dist/scanfix/ssl-cert-helper.js.map +1 -0
- package/dist/scanfix/types.d.ts +27 -0
- package/dist/scanfix/types.d.ts.map +1 -0
- package/dist/scanfix/types.js +8 -0
- package/dist/scanfix/types.js.map +1 -0
- package/dist/scripts/check-existing-secrets.d.ts +6 -0
- package/dist/scripts/check-existing-secrets.d.ts.map +1 -0
- package/dist/scripts/check-existing-secrets.js +86 -0
- package/dist/scripts/check-existing-secrets.js.map +1 -0
- package/dist/scripts/generate-all.d.ts +40 -0
- package/dist/scripts/generate-all.d.ts.map +1 -0
- package/dist/scripts/generate-all.js +373 -0
- package/dist/scripts/generate-all.js.map +1 -0
- package/dist/scripts/get-repo-name.d.ts +6 -0
- package/dist/scripts/get-repo-name.d.ts.map +1 -0
- package/dist/scripts/get-repo-name.js +54 -0
- package/dist/scripts/get-repo-name.js.map +1 -0
- package/dist/scripts/index.d.ts +7 -0
- package/dist/scripts/index.d.ts.map +1 -0
- package/dist/scripts/index.js +14 -0
- package/dist/scripts/index.js.map +1 -0
- package/dist/scripts/validate-env-files.d.ts +6 -0
- package/dist/scripts/validate-env-files.d.ts.map +1 -0
- package/dist/scripts/validate-env-files.js +126 -0
- package/dist/scripts/validate-env-files.js.map +1 -0
- package/dist/scripts/validate-example-values.d.ts +8 -0
- package/dist/scripts/validate-example-values.d.ts.map +1 -0
- package/dist/scripts/validate-example-values.js +88 -0
- package/dist/scripts/validate-example-values.js.map +1 -0
- package/dist/scripts/validate-factiii-yml.d.ts +6 -0
- package/dist/scripts/validate-factiii-yml.d.ts.map +1 -0
- package/dist/scripts/validate-factiii-yml.js +71 -0
- package/dist/scripts/validate-factiii-yml.js.map +1 -0
- package/dist/types/cli.d.ts +138 -0
- package/dist/types/cli.d.ts.map +1 -0
- package/dist/types/cli.js +8 -0
- package/dist/types/cli.js.map +1 -0
- package/dist/types/config.d.ts +113 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +8 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +25 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/plugin.d.ts +352 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +8 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/utils/ansible-vault-secrets.d.ts +95 -0
- package/dist/utils/ansible-vault-secrets.d.ts.map +1 -0
- package/dist/utils/ansible-vault-secrets.js +406 -0
- package/dist/utils/ansible-vault-secrets.js.map +1 -0
- package/dist/utils/config-helpers.d.ts +72 -0
- package/dist/utils/config-helpers.d.ts.map +1 -0
- package/dist/utils/config-helpers.js +171 -0
- package/dist/utils/config-helpers.js.map +1 -0
- package/dist/utils/config-schema.d.ts +17 -0
- package/dist/utils/config-schema.d.ts.map +1 -0
- package/dist/utils/config-schema.js +100 -0
- package/dist/utils/config-schema.js.map +1 -0
- package/dist/utils/config-validator.d.ts +29 -0
- package/dist/utils/config-validator.d.ts.map +1 -0
- package/dist/utils/config-validator.js +146 -0
- package/dist/utils/config-validator.js.map +1 -0
- package/dist/utils/deployment-report.d.ts +100 -0
- package/dist/utils/deployment-report.d.ts.map +1 -0
- package/dist/utils/deployment-report.js +225 -0
- package/dist/utils/deployment-report.js.map +1 -0
- package/dist/utils/dns-validator.d.ts +19 -0
- package/dist/utils/dns-validator.d.ts.map +1 -0
- package/dist/utils/dns-validator.js +94 -0
- package/dist/utils/dns-validator.js.map +1 -0
- package/dist/utils/env-validator.d.ts +108 -0
- package/dist/utils/env-validator.d.ts.map +1 -0
- package/dist/utils/env-validator.js +342 -0
- package/dist/utils/env-validator.js.map +1 -0
- package/dist/utils/github-workflow-monitor.d.ts +49 -0
- package/dist/utils/github-workflow-monitor.d.ts.map +1 -0
- package/dist/utils/github-workflow-monitor.js +145 -0
- package/dist/utils/github-workflow-monitor.js.map +1 -0
- package/dist/utils/index.d.ts +18 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +48 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/secret-prompts.d.ts +67 -0
- package/dist/utils/secret-prompts.d.ts.map +1 -0
- package/dist/utils/secret-prompts.js +369 -0
- package/dist/utils/secret-prompts.js.map +1 -0
- package/dist/utils/server-check.d.ts +43 -0
- package/dist/utils/server-check.d.ts.map +1 -0
- package/dist/utils/server-check.js +397 -0
- package/dist/utils/server-check.js.map +1 -0
- package/dist/utils/ssh-deploy.d.ts +70 -0
- package/dist/utils/ssh-deploy.d.ts.map +1 -0
- package/dist/utils/ssh-deploy.js +268 -0
- package/dist/utils/ssh-deploy.js.map +1 -0
- package/dist/utils/ssh-helper.d.ts +40 -0
- package/dist/utils/ssh-helper.d.ts.map +1 -0
- package/dist/utils/ssh-helper.js +221 -0
- package/dist/utils/ssh-helper.js.map +1 -0
- package/dist/utils/template-generator.d.ts +42 -0
- package/dist/utils/template-generator.d.ts.map +1 -0
- package/dist/utils/template-generator.js +223 -0
- package/dist/utils/template-generator.js.map +1 -0
- package/dist/utils/version-check.d.ts +69 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +211 -0
- package/dist/utils/version-check.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Template Generator
|
|
4
|
+
*
|
|
5
|
+
* Generates template files for environment configuration.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.generateEnvExampleTemplate = generateEnvExampleTemplate;
|
|
42
|
+
exports.generateEnvTemplate = generateEnvTemplate;
|
|
43
|
+
exports.createEnvTemplates = createEnvTemplates;
|
|
44
|
+
exports.generateSecretsChecklist = generateSecretsChecklist;
|
|
45
|
+
const fs = __importStar(require("fs"));
|
|
46
|
+
const path = __importStar(require("path"));
|
|
47
|
+
const env_validator_js_1 = require("./env-validator.js");
|
|
48
|
+
/**
|
|
49
|
+
* Generate .env.example template file content
|
|
50
|
+
* @param config - Parsed factiii.yml configuration
|
|
51
|
+
*/
|
|
52
|
+
function generateEnvExampleTemplate(config) {
|
|
53
|
+
const repoName = config.name ?? 'myapp';
|
|
54
|
+
const template = `# .env.example - Environment variable template
|
|
55
|
+
# This file defines all required environment variables across environments.
|
|
56
|
+
# Values are descriptive examples - replace with real values in .env.staging and .env.prod
|
|
57
|
+
# This file is committed to git as a template.
|
|
58
|
+
|
|
59
|
+
# === Application Settings ===
|
|
60
|
+
NODE_ENV=development
|
|
61
|
+
PORT=3000
|
|
62
|
+
|
|
63
|
+
# === Database ===
|
|
64
|
+
# PostgreSQL connection string format
|
|
65
|
+
DATABASE_URL=postgresql://EXAMPLE-user:EXAMPLE-password@localhost:5432/EXAMPLE-${repoName}-dev
|
|
66
|
+
|
|
67
|
+
# === Authentication ===
|
|
68
|
+
# 256-bit secret key for JWT signing
|
|
69
|
+
JWT_SECRET=EXAMPLE-your-256-bit-secret-key-here
|
|
70
|
+
JWT_EXPIRES_IN=7d
|
|
71
|
+
|
|
72
|
+
# === External APIs (if needed) ===
|
|
73
|
+
# OPENAI_API_KEY=EXAMPLE-sk-proj-abc123xyz789
|
|
74
|
+
# STRIPE_SECRET_KEY=EXAMPLE-sk_test_51ABC123xyz
|
|
75
|
+
# STRIPE_PUBLISHABLE_KEY=EXAMPLE-pk_test_51ABC123xyz
|
|
76
|
+
|
|
77
|
+
# === AWS Configuration (if using S3, SES, etc) ===
|
|
78
|
+
# AWS_ACCESS_KEY_ID=EXAMPLE-AKIAIOSFODNN7EXAMPLE
|
|
79
|
+
# AWS_SECRET_ACCESS_KEY=EXAMPLE-wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
|
|
80
|
+
# AWS_REGION=EXAMPLE-us-east-1
|
|
81
|
+
# AWS_BUCKET_NAME=EXAMPLE-${repoName}-assets
|
|
82
|
+
|
|
83
|
+
# === Email Configuration (if using SMTP) ===
|
|
84
|
+
# SMTP_HOST=EXAMPLE-smtp.gmail.com
|
|
85
|
+
# SMTP_PORT=587
|
|
86
|
+
# SMTP_USER=EXAMPLE-noreply@yourdomain.com
|
|
87
|
+
# SMTP_PASSWORD=EXAMPLE-your-app-password
|
|
88
|
+
|
|
89
|
+
# === Application URLs ===
|
|
90
|
+
# FRONTEND_URL=EXAMPLE-http://localhost:3000
|
|
91
|
+
# API_URL=EXAMPLE-http://localhost:3001
|
|
92
|
+
|
|
93
|
+
# === Application-specific settings ===
|
|
94
|
+
# Add your custom environment variables below
|
|
95
|
+
`;
|
|
96
|
+
return template;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Generate .env template file content for staging/prod
|
|
100
|
+
* Copies structure from .env.example with placeholder values
|
|
101
|
+
* @param environment - 'staging' or 'prod'
|
|
102
|
+
* @param devEnv - Parsed .env.example key-value pairs
|
|
103
|
+
*/
|
|
104
|
+
function generateEnvTemplate(environment, devEnv) {
|
|
105
|
+
const envUpper = environment.toUpperCase();
|
|
106
|
+
let template = `# .env.${environment} - ${envUpper} environment variables
|
|
107
|
+
# Fill in all values below. Keys must match .env.example
|
|
108
|
+
# This file should ${environment === 'prod' ? 'ALWAYS' : 'optionally'} be in .gitignore
|
|
109
|
+
|
|
110
|
+
`;
|
|
111
|
+
// Copy keys from .env.example with placeholder values
|
|
112
|
+
for (const key of Object.keys(devEnv)) {
|
|
113
|
+
const devValue = devEnv[key];
|
|
114
|
+
// If dev value is not an example, use it as a guide
|
|
115
|
+
if (devValue && !devValue.includes('EXAMPLE')) {
|
|
116
|
+
template += `${key}=${devValue}\n`;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// Use placeholder
|
|
120
|
+
template += `${key}=<FILL_IN>\n`;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
template += `
|
|
124
|
+
# Instructions:
|
|
125
|
+
# 1. Replace all <FILL_IN> values with real ${environment} values
|
|
126
|
+
# 2. Ensure all keys match .env.example
|
|
127
|
+
# 3. Run: npx factiii (to validate)
|
|
128
|
+
`;
|
|
129
|
+
return template;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Create .env template files if they don't exist
|
|
133
|
+
* @param rootDir - Repository root directory
|
|
134
|
+
* @param config - Parsed factiii.yml configuration
|
|
135
|
+
*/
|
|
136
|
+
function createEnvTemplates(rootDir, config) {
|
|
137
|
+
const result = {
|
|
138
|
+
created: [],
|
|
139
|
+
skipped: [],
|
|
140
|
+
errors: [],
|
|
141
|
+
};
|
|
142
|
+
// Create .env.example first (template)
|
|
143
|
+
const devPath = path.join(rootDir, '.env.example');
|
|
144
|
+
try {
|
|
145
|
+
if (fs.existsSync(devPath)) {
|
|
146
|
+
result.skipped.push('.env.example');
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
const devTemplate = generateEnvExampleTemplate(config);
|
|
150
|
+
fs.writeFileSync(devPath, devTemplate, 'utf8');
|
|
151
|
+
result.created.push('.env.example');
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
result.errors.push({
|
|
156
|
+
file: '.env.example',
|
|
157
|
+
error: error instanceof Error ? error.message : String(error),
|
|
158
|
+
});
|
|
159
|
+
// Can't create staging/prod without example template
|
|
160
|
+
return result;
|
|
161
|
+
}
|
|
162
|
+
// Parse .env.example to use as template for staging/prod
|
|
163
|
+
const devEnv = (0, env_validator_js_1.parseEnvFile)(devPath);
|
|
164
|
+
if (!devEnv) {
|
|
165
|
+
result.errors.push({
|
|
166
|
+
file: 'staging/prod',
|
|
167
|
+
error: 'Could not parse .env.example to generate templates',
|
|
168
|
+
});
|
|
169
|
+
return result;
|
|
170
|
+
}
|
|
171
|
+
// Create staging and prod templates based on example
|
|
172
|
+
const environments = ['staging', 'prod'];
|
|
173
|
+
for (const env of environments) {
|
|
174
|
+
const filename = `.env.${env}`;
|
|
175
|
+
const filepath = path.join(rootDir, filename);
|
|
176
|
+
try {
|
|
177
|
+
// Check if file already exists
|
|
178
|
+
if (fs.existsSync(filepath)) {
|
|
179
|
+
result.skipped.push(filename);
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
// Generate and write template based on .env.example
|
|
183
|
+
const template = generateEnvTemplate(env, devEnv);
|
|
184
|
+
fs.writeFileSync(filepath, template, 'utf8');
|
|
185
|
+
result.created.push(filename);
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
result.errors.push({
|
|
189
|
+
file: filename,
|
|
190
|
+
error: error instanceof Error ? error.message : String(error),
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return result;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Generate secrets checklist for display
|
|
198
|
+
*/
|
|
199
|
+
function generateSecretsChecklist() {
|
|
200
|
+
return `
|
|
201
|
+
REQUIRED GitHub Secrets (minimal):
|
|
202
|
+
───────────────────────────────────────────────────────
|
|
203
|
+
□ STAGING_SSH - SSH private key for staging
|
|
204
|
+
□ PROD_SSH - SSH private key for production
|
|
205
|
+
□ AWS_SECRET_ACCESS_KEY - AWS secret key (only secret AWS value)
|
|
206
|
+
|
|
207
|
+
OPTIONAL GitHub Secrets:
|
|
208
|
+
───────────────────────────────────────────────────────
|
|
209
|
+
□ STAGING_ENVS - Environment vars from .env.staging
|
|
210
|
+
□ PROD_ENVS - Environment vars from .env.prod
|
|
211
|
+
|
|
212
|
+
NOT SECRETS (in factiii.yml):
|
|
213
|
+
───────────────────────────────────────────────────────
|
|
214
|
+
✓ environments.{env}.host - Server IP/hostname
|
|
215
|
+
✓ aws.access_key_id - AWS access key ID
|
|
216
|
+
✓ aws.region - AWS region (e.g., us-east-1)
|
|
217
|
+
|
|
218
|
+
NOT SECRETS (in factiiiAuto.yml):
|
|
219
|
+
───────────────────────────────────────────────────────
|
|
220
|
+
✓ ssh_user - Defaults to ubuntu
|
|
221
|
+
`.trim();
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=template-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-generator.js","sourceRoot":"","sources":["../../src/utils/template-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version Check Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utilities for checking and comparing package versions.
|
|
5
|
+
*/
|
|
6
|
+
interface ParsedVersion {
|
|
7
|
+
major: number;
|
|
8
|
+
minor: number;
|
|
9
|
+
patch: number;
|
|
10
|
+
}
|
|
11
|
+
interface FactiiiAutoVersion {
|
|
12
|
+
factiii_version: string | null;
|
|
13
|
+
factiii_min_version: string | null;
|
|
14
|
+
}
|
|
15
|
+
interface VersionCompatibility {
|
|
16
|
+
compatible: boolean;
|
|
17
|
+
currentVersion: string;
|
|
18
|
+
configVersion: string | null;
|
|
19
|
+
minVersion: string | null;
|
|
20
|
+
needsUpgrade: boolean;
|
|
21
|
+
isBreaking: boolean;
|
|
22
|
+
message: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get current Factiii package version
|
|
26
|
+
*/
|
|
27
|
+
export declare function getFactiiiVersion(): string;
|
|
28
|
+
/**
|
|
29
|
+
* Parse semantic version string
|
|
30
|
+
* @param version - Version string (e.g., "1.2.3")
|
|
31
|
+
*/
|
|
32
|
+
export declare function parseVersion(version: string): ParsedVersion | null;
|
|
33
|
+
/**
|
|
34
|
+
* Compare two versions
|
|
35
|
+
* @param a - First version
|
|
36
|
+
* @param b - Second version
|
|
37
|
+
* @returns Negative if a < b, 0 if equal, positive if a > b
|
|
38
|
+
*/
|
|
39
|
+
export declare function compareVersions(a: string, b: string): number;
|
|
40
|
+
/**
|
|
41
|
+
* Check if version a is compatible with minimum version b
|
|
42
|
+
* @param current - Current version
|
|
43
|
+
* @param minimum - Minimum required version
|
|
44
|
+
*/
|
|
45
|
+
export declare function isCompatible(current: string, minimum: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Check if upgrade from a to b is a breaking change (major version bump)
|
|
48
|
+
* @param from - Original version
|
|
49
|
+
* @param to - Target version
|
|
50
|
+
*/
|
|
51
|
+
export declare function isBreakingUpgrade(from: string, to: string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Read version info from factiiiAuto.yml
|
|
54
|
+
* @param rootDir - Project root directory
|
|
55
|
+
*/
|
|
56
|
+
export declare function readFactiiiAutoVersion(rootDir: string): FactiiiAutoVersion;
|
|
57
|
+
/**
|
|
58
|
+
* Check version compatibility and return status
|
|
59
|
+
* @param rootDir - Project root directory
|
|
60
|
+
*/
|
|
61
|
+
export declare function checkVersionCompatibility(rootDir: string): VersionCompatibility;
|
|
62
|
+
/**
|
|
63
|
+
* Display version warning if needed
|
|
64
|
+
* @param rootDir - Project root directory
|
|
65
|
+
* @returns True if warning was displayed
|
|
66
|
+
*/
|
|
67
|
+
export declare function displayVersionWarning(rootDir: string): boolean;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=version-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/utils/version-check.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,kBAAkB;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,UAAU,oBAAoB;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAU1C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAWlE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAS5D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAMnE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAoB1E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CA2C/E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAuB9D"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Version Check Utilities
|
|
4
|
+
*
|
|
5
|
+
* Utilities for checking and comparing package versions.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
42
|
+
};
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
exports.getFactiiiVersion = getFactiiiVersion;
|
|
45
|
+
exports.parseVersion = parseVersion;
|
|
46
|
+
exports.compareVersions = compareVersions;
|
|
47
|
+
exports.isCompatible = isCompatible;
|
|
48
|
+
exports.isBreakingUpgrade = isBreakingUpgrade;
|
|
49
|
+
exports.readFactiiiAutoVersion = readFactiiiAutoVersion;
|
|
50
|
+
exports.checkVersionCompatibility = checkVersionCompatibility;
|
|
51
|
+
exports.displayVersionWarning = displayVersionWarning;
|
|
52
|
+
const fs = __importStar(require("fs"));
|
|
53
|
+
const path = __importStar(require("path"));
|
|
54
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
55
|
+
/**
|
|
56
|
+
* Get current Factiii package version
|
|
57
|
+
*/
|
|
58
|
+
function getFactiiiVersion() {
|
|
59
|
+
try {
|
|
60
|
+
const packageJsonPath = path.join(__dirname, '../../package.json');
|
|
61
|
+
const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
62
|
+
return pkg.version ?? '1.0.0';
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return '1.0.0';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Parse semantic version string
|
|
70
|
+
* @param version - Version string (e.g., "1.2.3")
|
|
71
|
+
*/
|
|
72
|
+
function parseVersion(version) {
|
|
73
|
+
if (!version)
|
|
74
|
+
return null;
|
|
75
|
+
const match = version.match(/^(\d+)\.(\d+)\.(\d+)/);
|
|
76
|
+
if (!match)
|
|
77
|
+
return null;
|
|
78
|
+
return {
|
|
79
|
+
major: parseInt(match[1] ?? '0', 10),
|
|
80
|
+
minor: parseInt(match[2] ?? '0', 10),
|
|
81
|
+
patch: parseInt(match[3] ?? '0', 10),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Compare two versions
|
|
86
|
+
* @param a - First version
|
|
87
|
+
* @param b - Second version
|
|
88
|
+
* @returns Negative if a < b, 0 if equal, positive if a > b
|
|
89
|
+
*/
|
|
90
|
+
function compareVersions(a, b) {
|
|
91
|
+
const vA = parseVersion(a);
|
|
92
|
+
const vB = parseVersion(b);
|
|
93
|
+
if (!vA || !vB)
|
|
94
|
+
return 0;
|
|
95
|
+
if (vA.major !== vB.major)
|
|
96
|
+
return vA.major - vB.major;
|
|
97
|
+
if (vA.minor !== vB.minor)
|
|
98
|
+
return vA.minor - vB.minor;
|
|
99
|
+
return vA.patch - vB.patch;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Check if version a is compatible with minimum version b
|
|
103
|
+
* @param current - Current version
|
|
104
|
+
* @param minimum - Minimum required version
|
|
105
|
+
*/
|
|
106
|
+
function isCompatible(current, minimum) {
|
|
107
|
+
return compareVersions(current, minimum) >= 0;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Check if upgrade from a to b is a breaking change (major version bump)
|
|
111
|
+
* @param from - Original version
|
|
112
|
+
* @param to - Target version
|
|
113
|
+
*/
|
|
114
|
+
function isBreakingUpgrade(from, to) {
|
|
115
|
+
const vFrom = parseVersion(from);
|
|
116
|
+
const vTo = parseVersion(to);
|
|
117
|
+
if (!vFrom || !vTo)
|
|
118
|
+
return false;
|
|
119
|
+
return vTo.major > vFrom.major;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Read version info from factiiiAuto.yml
|
|
123
|
+
* @param rootDir - Project root directory
|
|
124
|
+
*/
|
|
125
|
+
function readFactiiiAutoVersion(rootDir) {
|
|
126
|
+
const factiiiAutoPath = path.join(rootDir, 'factiiiAuto.yml');
|
|
127
|
+
if (!fs.existsSync(factiiiAutoPath)) {
|
|
128
|
+
return { factiii_version: null, factiii_min_version: null };
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
const content = fs.readFileSync(factiiiAutoPath, 'utf8');
|
|
132
|
+
const config = js_yaml_1.default.load(content);
|
|
133
|
+
return {
|
|
134
|
+
factiii_version: config?.factiii_version ?? null,
|
|
135
|
+
factiii_min_version: config?.factiii_min_version ?? null,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
return { factiii_version: null, factiii_min_version: null };
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Check version compatibility and return status
|
|
144
|
+
* @param rootDir - Project root directory
|
|
145
|
+
*/
|
|
146
|
+
function checkVersionCompatibility(rootDir) {
|
|
147
|
+
const currentVersion = getFactiiiVersion();
|
|
148
|
+
const { factiii_version, factiii_min_version } = readFactiiiAutoVersion(rootDir);
|
|
149
|
+
const result = {
|
|
150
|
+
compatible: true,
|
|
151
|
+
currentVersion,
|
|
152
|
+
configVersion: factiii_version,
|
|
153
|
+
minVersion: factiii_min_version,
|
|
154
|
+
needsUpgrade: false,
|
|
155
|
+
isBreaking: false,
|
|
156
|
+
message: '',
|
|
157
|
+
};
|
|
158
|
+
// No version info in factiiiAuto.yml (legacy or first run)
|
|
159
|
+
if (!factiii_version) {
|
|
160
|
+
result.needsUpgrade = true;
|
|
161
|
+
result.message = 'No version info in factiiiAuto.yml. Run: npx factiii upgrade';
|
|
162
|
+
return result;
|
|
163
|
+
}
|
|
164
|
+
// Check if current version meets minimum requirement
|
|
165
|
+
if (factiii_min_version && !isCompatible(currentVersion, factiii_min_version)) {
|
|
166
|
+
result.compatible = false;
|
|
167
|
+
result.message = `Factiii version ${currentVersion} is below minimum required ${factiii_min_version}`;
|
|
168
|
+
return result;
|
|
169
|
+
}
|
|
170
|
+
// Check if versions match
|
|
171
|
+
if (compareVersions(currentVersion, factiii_version) !== 0) {
|
|
172
|
+
result.needsUpgrade = true;
|
|
173
|
+
result.isBreaking = isBreakingUpgrade(factiii_version, currentVersion);
|
|
174
|
+
if (result.isBreaking) {
|
|
175
|
+
result.message = `Major version change: ${factiii_version} → ${currentVersion}. Run: npx factiii upgrade`;
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
result.message = `Version mismatch: config=${factiii_version}, installed=${currentVersion}. Run: npx factiii upgrade`;
|
|
179
|
+
}
|
|
180
|
+
return result;
|
|
181
|
+
}
|
|
182
|
+
result.message = 'Version compatible';
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Display version warning if needed
|
|
187
|
+
* @param rootDir - Project root directory
|
|
188
|
+
* @returns True if warning was displayed
|
|
189
|
+
*/
|
|
190
|
+
function displayVersionWarning(rootDir) {
|
|
191
|
+
const status = checkVersionCompatibility(rootDir);
|
|
192
|
+
if (!status.compatible) {
|
|
193
|
+
console.log('');
|
|
194
|
+
console.log('[!] VERSION INCOMPATIBILITY');
|
|
195
|
+
console.log(` ${status.message}`);
|
|
196
|
+
console.log('');
|
|
197
|
+
return true;
|
|
198
|
+
}
|
|
199
|
+
if (status.needsUpgrade) {
|
|
200
|
+
console.log('');
|
|
201
|
+
console.log('Version Update Available');
|
|
202
|
+
console.log(` ${status.message}`);
|
|
203
|
+
if (status.isBreaking) {
|
|
204
|
+
console.log(' [!] This is a major version change - check CHANGELOG.md');
|
|
205
|
+
}
|
|
206
|
+
console.log('');
|
|
207
|
+
return true;
|
|
208
|
+
}
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=version-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/utils/version-check.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@factiii/stack",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Infrastructure management package for deploying services to servers",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"factiii": "./bin/factiii"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"bin/",
|
|
12
|
+
"dist/"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc && npm run copy-assets",
|
|
16
|
+
"build:watch": "tsc --watch",
|
|
17
|
+
"clean": "node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true,force:true})\"",
|
|
18
|
+
"copy-assets": "node -e \"const fs=require('fs'),p=require('path');fs.cpSync('src/plugins/approved.json','dist/plugins/approved.json');const d='dist/plugins/pipelines/factiii/workflows';fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync('src/plugins/pipelines/factiii/workflows').filter(f=>f.endsWith('.yml')))fs.cpSync(p.join('src/plugins/pipelines/factiii/workflows',f),p.join(d,f))\"",
|
|
19
|
+
"prebuild": "npm run clean",
|
|
20
|
+
"prepublish-check": "node -e \"const v=require('./package.json').version; if(v.includes('-d')){console.error('❌ Cannot publish dev version:',v); process.exit(1)}\"",
|
|
21
|
+
"prepublishOnly": "npm run prepublish-check && npm run build",
|
|
22
|
+
"test": "jest",
|
|
23
|
+
"test:watch": "jest --watch",
|
|
24
|
+
"test:coverage": "jest --coverage",
|
|
25
|
+
"typecheck": "tsc --noEmit"
|
|
26
|
+
},
|
|
27
|
+
"keywords": [
|
|
28
|
+
"infrastructure",
|
|
29
|
+
"deployment",
|
|
30
|
+
"docker",
|
|
31
|
+
"nginx"
|
|
32
|
+
],
|
|
33
|
+
"author": "",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "https://github.com/factiii/core.git"
|
|
38
|
+
},
|
|
39
|
+
"publishConfig": {
|
|
40
|
+
"registry": "https://npm.pkg.github.com"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@octokit/rest": "^20.0.2",
|
|
44
|
+
"commander": "^11.1.0",
|
|
45
|
+
"js-yaml": "^4.1.1",
|
|
46
|
+
"libsodium-wrappers": "^0.7.11"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/jest": "^30.0.0",
|
|
50
|
+
"@types/js-yaml": "^4.0.9",
|
|
51
|
+
"@types/node": "^25.0.3",
|
|
52
|
+
"jest": "^29.7.0",
|
|
53
|
+
"ts-jest": "^29.4.6",
|
|
54
|
+
"ts-node": "^10.9.2",
|
|
55
|
+
"typescript": "^5.9.3"
|
|
56
|
+
},
|
|
57
|
+
"jest": {
|
|
58
|
+
"preset": "ts-jest",
|
|
59
|
+
"testEnvironment": "node",
|
|
60
|
+
"testMatch": [
|
|
61
|
+
"**/test/**/*.test.ts"
|
|
62
|
+
],
|
|
63
|
+
"moduleNameMapper": {
|
|
64
|
+
"^(\\.{1,2}/.*)\\.js$": "$1"
|
|
65
|
+
},
|
|
66
|
+
"collectCoverageFrom": [
|
|
67
|
+
"src/**/*.ts",
|
|
68
|
+
"!**/node_modules/**"
|
|
69
|
+
],
|
|
70
|
+
"coverageThreshold": {
|
|
71
|
+
"global": {
|
|
72
|
+
"branches": 70,
|
|
73
|
+
"functions": 70,
|
|
74
|
+
"lines": 70,
|
|
75
|
+
"statements": 70
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"engines": {
|
|
80
|
+
"node": ">=18.0.0"
|
|
81
|
+
}
|
|
82
|
+
}
|