@vendure/cloud 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -7
- package/dist/cli/arguments.d.ts +5 -0
- package/dist/cli/arguments.d.ts.map +1 -0
- package/dist/cli/arguments.js +57 -0
- package/dist/cli/arguments.js.map +1 -0
- package/dist/cli/command.d.ts +26 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +84 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands/deployment/arguments.d.ts +3 -0
- package/dist/cli/commands/deployment/arguments.d.ts.map +1 -0
- package/dist/cli/commands/deployment/arguments.js +13 -0
- package/dist/cli/commands/deployment/arguments.js.map +1 -0
- package/dist/cli/commands/deployment/build-logs.d.ts +3 -0
- package/dist/cli/commands/deployment/build-logs.d.ts.map +1 -0
- package/dist/cli/commands/deployment/build-logs.js +98 -0
- package/dist/cli/commands/deployment/build-logs.js.map +1 -0
- package/dist/cli/commands/deployment/deploy.d.ts +3 -0
- package/dist/cli/commands/deployment/deploy.d.ts.map +1 -0
- package/dist/cli/commands/deployment/deploy.js +306 -0
- package/dist/cli/commands/deployment/deploy.js.map +1 -0
- package/dist/cli/commands/deployment/index.d.ts +3 -0
- package/dist/cli/commands/deployment/index.d.ts.map +1 -0
- package/dist/cli/commands/deployment/index.js +177 -0
- package/dist/cli/commands/deployment/index.js.map +1 -0
- package/dist/cli/commands/deployment/list.d.ts +3 -0
- package/dist/cli/commands/deployment/list.d.ts.map +1 -0
- package/dist/cli/commands/deployment/list.js +77 -0
- package/dist/cli/commands/deployment/list.js.map +1 -0
- package/dist/cli/commands/deployment/logs.d.ts +3 -0
- package/dist/cli/commands/deployment/logs.d.ts.map +1 -0
- package/dist/cli/commands/deployment/logs.js +88 -0
- package/dist/cli/commands/deployment/logs.js.map +1 -0
- package/dist/cli/commands/deployment/options.d.ts +11 -0
- package/dist/cli/commands/deployment/options.d.ts.map +1 -0
- package/dist/cli/commands/deployment/options.js +37 -0
- package/dist/cli/commands/deployment/options.js.map +1 -0
- package/dist/cli/commands/deployment/plan-format.d.ts +8 -0
- package/dist/cli/commands/deployment/plan-format.d.ts.map +1 -0
- package/dist/cli/commands/deployment/plan-format.js +25 -0
- package/dist/cli/commands/deployment/plan-format.js.map +1 -0
- package/dist/cli/commands/deployment/plan.d.ts +3 -0
- package/dist/cli/commands/deployment/plan.d.ts.map +1 -0
- package/dist/cli/commands/deployment/plan.js +54 -0
- package/dist/cli/commands/deployment/plan.js.map +1 -0
- package/dist/cli/commands/deployment/rollback.d.ts +3 -0
- package/dist/cli/commands/deployment/rollback.d.ts.map +1 -0
- package/dist/cli/commands/deployment/rollback.js +97 -0
- package/dist/cli/commands/deployment/rollback.js.map +1 -0
- package/dist/cli/commands/deployment/shared.d.ts +5 -0
- package/dist/cli/commands/deployment/shared.d.ts.map +1 -0
- package/dist/cli/commands/deployment/shared.js +23 -0
- package/dist/cli/commands/deployment/shared.js.map +1 -0
- package/dist/cli/commands/deployment/show.d.ts +3 -0
- package/dist/cli/commands/deployment/show.d.ts.map +1 -0
- package/dist/cli/commands/deployment/show.js +71 -0
- package/dist/cli/commands/deployment/show.js.map +1 -0
- package/dist/cli/commands/deployment/source.d.ts +14 -0
- package/dist/cli/commands/deployment/source.d.ts.map +1 -0
- package/dist/cli/commands/deployment/source.js +19 -0
- package/dist/cli/commands/deployment/source.js.map +1 -0
- package/dist/cli/commands/deployment/status.d.ts +3 -0
- package/dist/cli/commands/deployment/status.d.ts.map +1 -0
- package/dist/cli/commands/deployment/status.js +59 -0
- package/dist/cli/commands/deployment/status.js.map +1 -0
- package/dist/cli/commands/deployment/teardown.d.ts +3 -0
- package/dist/cli/commands/deployment/teardown.d.ts.map +1 -0
- package/dist/cli/commands/deployment/teardown.js +178 -0
- package/dist/cli/commands/deployment/teardown.js.map +1 -0
- package/dist/cli/commands/identity-context/context.d.ts +3 -0
- package/dist/cli/commands/identity-context/context.d.ts.map +1 -0
- package/dist/cli/commands/identity-context/context.js +47 -0
- package/dist/cli/commands/identity-context/context.js.map +1 -0
- package/dist/cli/commands/identity-context/index.d.ts +2 -0
- package/dist/cli/commands/identity-context/index.d.ts.map +1 -0
- package/dist/cli/commands/identity-context/index.js +94 -0
- package/dist/cli/commands/identity-context/index.js.map +1 -0
- package/dist/cli/commands/identity-context/keys.d.ts +5 -0
- package/dist/cli/commands/identity-context/keys.d.ts.map +1 -0
- package/dist/cli/commands/identity-context/keys.js +52 -0
- package/dist/cli/commands/identity-context/keys.js.map +1 -0
- package/dist/cli/commands/identity-context/login.d.ts +2 -0
- package/dist/cli/commands/identity-context/login.d.ts.map +1 -0
- package/dist/cli/commands/identity-context/login.js +158 -0
- package/dist/cli/commands/identity-context/login.js.map +1 -0
- package/dist/cli/commands/identity-context/logout.d.ts +2 -0
- package/dist/cli/commands/identity-context/logout.d.ts.map +1 -0
- package/dist/cli/commands/identity-context/logout.js +12 -0
- package/dist/cli/commands/identity-context/logout.js.map +1 -0
- package/dist/cli/commands/identity-context/org-switch.d.ts +3 -0
- package/dist/cli/commands/identity-context/org-switch.d.ts.map +1 -0
- package/dist/cli/commands/identity-context/org-switch.js +71 -0
- package/dist/cli/commands/identity-context/org-switch.js.map +1 -0
- package/dist/cli/commands/identity-context/use.d.ts +3 -0
- package/dist/cli/commands/identity-context/use.d.ts.map +1 -0
- package/dist/cli/commands/identity-context/use.js +23 -0
- package/dist/cli/commands/identity-context/use.js.map +1 -0
- package/dist/cli/commands/identity-context/whoami.d.ts +3 -0
- package/dist/cli/commands/identity-context/whoami.d.ts.map +1 -0
- package/dist/cli/commands/identity-context/whoami.js +80 -0
- package/dist/cli/commands/identity-context/whoami.js.map +1 -0
- package/dist/cli/commands/index.d.ts +4 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +67 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/project-config/config/build-fields.d.ts +4 -0
- package/dist/cli/commands/project-config/config/build-fields.d.ts.map +1 -0
- package/dist/cli/commands/project-config/config/build-fields.js +16 -0
- package/dist/cli/commands/project-config/config/build-fields.js.map +1 -0
- package/dist/cli/commands/project-config/config/build.d.ts +4 -0
- package/dist/cli/commands/project-config/config/build.d.ts.map +1 -0
- package/dist/cli/commands/project-config/config/build.js +46 -0
- package/dist/cli/commands/project-config/config/build.js.map +1 -0
- package/dist/cli/commands/project-config/config/desired-state.d.ts +4 -0
- package/dist/cli/commands/project-config/config/desired-state.d.ts.map +1 -0
- package/dist/cli/commands/project-config/config/desired-state.js +34 -0
- package/dist/cli/commands/project-config/config/desired-state.js.map +1 -0
- package/dist/cli/commands/project-config/config/index.d.ts +2 -0
- package/dist/cli/commands/project-config/config/index.d.ts.map +1 -0
- package/dist/cli/commands/project-config/config/index.js +177 -0
- package/dist/cli/commands/project-config/config/index.js.map +1 -0
- package/dist/cli/commands/project-config/config/runtime.d.ts +3 -0
- package/dist/cli/commands/project-config/config/runtime.d.ts.map +1 -0
- package/dist/cli/commands/project-config/config/runtime.js +38 -0
- package/dist/cli/commands/project-config/config/runtime.js.map +1 -0
- package/dist/cli/commands/project-config/config/search.d.ts +3 -0
- package/dist/cli/commands/project-config/config/search.d.ts.map +1 -0
- package/dist/cli/commands/project-config/config/search.js +54 -0
- package/dist/cli/commands/project-config/config/search.js.map +1 -0
- package/dist/cli/commands/project-config/config/set.d.ts +2 -0
- package/dist/cli/commands/project-config/config/set.d.ts.map +1 -0
- package/dist/cli/commands/project-config/config/set.js +14 -0
- package/dist/cli/commands/project-config/config/set.js.map +1 -0
- package/dist/cli/commands/project-config/config/show.d.ts +6 -0
- package/dist/cli/commands/project-config/config/show.d.ts.map +1 -0
- package/dist/cli/commands/project-config/config/show.js +33 -0
- package/dist/cli/commands/project-config/config/show.js.map +1 -0
- package/dist/cli/commands/project-config/env/add.d.ts +3 -0
- package/dist/cli/commands/project-config/env/add.d.ts.map +1 -0
- package/dist/cli/commands/project-config/env/add.js +22 -0
- package/dist/cli/commands/project-config/env/add.js.map +1 -0
- package/dist/cli/commands/project-config/env/get.d.ts +3 -0
- package/dist/cli/commands/project-config/env/get.d.ts.map +1 -0
- package/dist/cli/commands/project-config/env/get.js +12 -0
- package/dist/cli/commands/project-config/env/get.js.map +1 -0
- package/dist/cli/commands/project-config/env/import.d.ts +3 -0
- package/dist/cli/commands/project-config/env/import.d.ts.map +1 -0
- package/dist/cli/commands/project-config/env/import.js +45 -0
- package/dist/cli/commands/project-config/env/import.js.map +1 -0
- package/dist/cli/commands/project-config/env/index.d.ts +2 -0
- package/dist/cli/commands/project-config/env/index.d.ts.map +1 -0
- package/dist/cli/commands/project-config/env/index.js +103 -0
- package/dist/cli/commands/project-config/env/index.js.map +1 -0
- package/dist/cli/commands/project-config/env/list.d.ts +3 -0
- package/dist/cli/commands/project-config/env/list.d.ts.map +1 -0
- package/dist/cli/commands/project-config/env/list.js +25 -0
- package/dist/cli/commands/project-config/env/list.js.map +1 -0
- package/dist/cli/commands/project-config/env/metadata-options.d.ts +9 -0
- package/dist/cli/commands/project-config/env/metadata-options.d.ts.map +1 -0
- package/dist/cli/commands/project-config/env/metadata-options.js +32 -0
- package/dist/cli/commands/project-config/env/metadata-options.js.map +1 -0
- package/dist/cli/commands/project-config/env/pull.d.ts +3 -0
- package/dist/cli/commands/project-config/env/pull.d.ts.map +1 -0
- package/dist/cli/commands/project-config/env/pull.js +50 -0
- package/dist/cli/commands/project-config/env/pull.js.map +1 -0
- package/dist/cli/commands/project-config/env/read-value.d.ts +3 -0
- package/dist/cli/commands/project-config/env/read-value.d.ts.map +1 -0
- package/dist/cli/commands/project-config/env/read-value.js +20 -0
- package/dist/cli/commands/project-config/env/read-value.js.map +1 -0
- package/dist/cli/commands/project-config/env/rm.d.ts +3 -0
- package/dist/cli/commands/project-config/env/rm.d.ts.map +1 -0
- package/dist/cli/commands/project-config/env/rm.js +23 -0
- package/dist/cli/commands/project-config/env/rm.js.map +1 -0
- package/dist/cli/commands/project-config/env/run.d.ts +3 -0
- package/dist/cli/commands/project-config/env/run.d.ts.map +1 -0
- package/dist/cli/commands/project-config/env/run.js +28 -0
- package/dist/cli/commands/project-config/env/run.js.map +1 -0
- package/dist/cli/commands/project-config/env/update.d.ts +3 -0
- package/dist/cli/commands/project-config/env/update.d.ts.map +1 -0
- package/dist/cli/commands/project-config/env/update.js +32 -0
- package/dist/cli/commands/project-config/env/update.js.map +1 -0
- package/dist/cli/commands/project-config/environment/create.d.ts +3 -0
- package/dist/cli/commands/project-config/environment/create.d.ts.map +1 -0
- package/dist/cli/commands/project-config/environment/create.js +33 -0
- package/dist/cli/commands/project-config/environment/create.js.map +1 -0
- package/dist/cli/commands/project-config/environment/delete.d.ts +3 -0
- package/dist/cli/commands/project-config/environment/delete.d.ts.map +1 -0
- package/dist/cli/commands/project-config/environment/delete.js +42 -0
- package/dist/cli/commands/project-config/environment/delete.js.map +1 -0
- package/dist/cli/commands/project-config/environment/find.d.ts +7 -0
- package/dist/cli/commands/project-config/environment/find.d.ts.map +1 -0
- package/dist/cli/commands/project-config/environment/find.js +18 -0
- package/dist/cli/commands/project-config/environment/find.js.map +1 -0
- package/dist/cli/commands/project-config/environment/index.d.ts +2 -0
- package/dist/cli/commands/project-config/environment/index.d.ts.map +1 -0
- package/dist/cli/commands/project-config/environment/index.js +76 -0
- package/dist/cli/commands/project-config/environment/index.js.map +1 -0
- package/dist/cli/commands/project-config/environment/initial-superadmin.d.ts +3 -0
- package/dist/cli/commands/project-config/environment/initial-superadmin.d.ts.map +1 -0
- package/dist/cli/commands/project-config/environment/initial-superadmin.js +13 -0
- package/dist/cli/commands/project-config/environment/initial-superadmin.js.map +1 -0
- package/dist/cli/commands/project-config/environment/list.d.ts +3 -0
- package/dist/cli/commands/project-config/environment/list.d.ts.map +1 -0
- package/dist/cli/commands/project-config/environment/list.js +23 -0
- package/dist/cli/commands/project-config/environment/list.js.map +1 -0
- package/dist/cli/commands/project-config/environment/show.d.ts +3 -0
- package/dist/cli/commands/project-config/environment/show.d.ts.map +1 -0
- package/dist/cli/commands/project-config/environment/show.js +30 -0
- package/dist/cli/commands/project-config/environment/show.js.map +1 -0
- package/dist/cli/commands/project-config/environment/update.d.ts +3 -0
- package/dist/cli/commands/project-config/environment/update.d.ts.map +1 -0
- package/dist/cli/commands/project-config/environment/update.js +19 -0
- package/dist/cli/commands/project-config/environment/update.js.map +1 -0
- package/dist/cli/commands/project-config/index.d.ts +3 -0
- package/dist/cli/commands/project-config/index.d.ts.map +1 -0
- package/dist/cli/commands/project-config/index.js +27 -0
- package/dist/cli/commands/project-config/index.js.map +1 -0
- package/dist/cli/commands/project-config/init/build-detection.d.ts +11 -0
- package/dist/cli/commands/project-config/init/build-detection.d.ts.map +1 -0
- package/dist/cli/commands/project-config/init/build-detection.js +113 -0
- package/dist/cli/commands/project-config/init/build-detection.js.map +1 -0
- package/dist/cli/commands/project-config/init/index.d.ts +2 -0
- package/dist/cli/commands/project-config/init/index.d.ts.map +1 -0
- package/dist/cli/commands/project-config/init/index.js +48 -0
- package/dist/cli/commands/project-config/init/index.js.map +1 -0
- package/dist/cli/commands/project-config/init/init.d.ts +14 -0
- package/dist/cli/commands/project-config/init/init.d.ts.map +1 -0
- package/dist/cli/commands/project-config/init/init.js +367 -0
- package/dist/cli/commands/project-config/init/init.js.map +1 -0
- package/dist/cli/commands/project-config/options.d.ts +10 -0
- package/dist/cli/commands/project-config/options.d.ts.map +1 -0
- package/dist/cli/commands/project-config/options.js +80 -0
- package/dist/cli/commands/project-config/options.js.map +1 -0
- package/dist/cli/commands/project-config/project/create.d.ts +3 -0
- package/dist/cli/commands/project-config/project/create.d.ts.map +1 -0
- package/dist/cli/commands/project-config/project/create.js +20 -0
- package/dist/cli/commands/project-config/project/create.js.map +1 -0
- package/dist/cli/commands/project-config/project/delete.d.ts +3 -0
- package/dist/cli/commands/project-config/project/delete.d.ts.map +1 -0
- package/dist/cli/commands/project-config/project/delete.js +28 -0
- package/dist/cli/commands/project-config/project/delete.js.map +1 -0
- package/dist/cli/commands/project-config/project/index.d.ts +2 -0
- package/dist/cli/commands/project-config/project/index.d.ts.map +1 -0
- package/dist/cli/commands/project-config/project/index.js +88 -0
- package/dist/cli/commands/project-config/project/index.js.map +1 -0
- package/dist/cli/commands/project-config/project/link.d.ts +3 -0
- package/dist/cli/commands/project-config/project/link.d.ts.map +1 -0
- package/dist/cli/commands/project-config/project/link.js +45 -0
- package/dist/cli/commands/project-config/project/link.js.map +1 -0
- package/dist/cli/commands/project-config/project/list.d.ts +3 -0
- package/dist/cli/commands/project-config/project/list.d.ts.map +1 -0
- package/dist/cli/commands/project-config/project/list.js +15 -0
- package/dist/cli/commands/project-config/project/list.js.map +1 -0
- package/dist/cli/commands/project-config/project/show.d.ts +3 -0
- package/dist/cli/commands/project-config/project/show.d.ts.map +1 -0
- package/dist/cli/commands/project-config/project/show.js +33 -0
- package/dist/cli/commands/project-config/project/show.js.map +1 -0
- package/dist/cli/commands/project-config/project/unlink.d.ts +3 -0
- package/dist/cli/commands/project-config/project/unlink.d.ts.map +1 -0
- package/dist/cli/commands/project-config/project/unlink.js +21 -0
- package/dist/cli/commands/project-config/project/unlink.js.map +1 -0
- package/dist/cli/commands/project-config/project/update.d.ts +3 -0
- package/dist/cli/commands/project-config/project/update.d.ts.map +1 -0
- package/dist/cli/commands/project-config/project/update.js +18 -0
- package/dist/cli/commands/project-config/project/update.js.map +1 -0
- package/dist/cli/commands/project-config/source/connect.d.ts +15 -0
- package/dist/cli/commands/project-config/source/connect.d.ts.map +1 -0
- package/dist/cli/commands/project-config/source/connect.js +208 -0
- package/dist/cli/commands/project-config/source/connect.js.map +1 -0
- package/dist/cli/commands/project-config/source/disconnect.d.ts +3 -0
- package/dist/cli/commands/project-config/source/disconnect.d.ts.map +1 -0
- package/dist/cli/commands/project-config/source/disconnect.js +27 -0
- package/dist/cli/commands/project-config/source/disconnect.js.map +1 -0
- package/dist/cli/commands/project-config/source/index.d.ts +2 -0
- package/dist/cli/commands/project-config/source/index.d.ts.map +1 -0
- package/dist/cli/commands/project-config/source/index.js +74 -0
- package/dist/cli/commands/project-config/source/index.js.map +1 -0
- package/dist/cli/commands/project-config/source/map.d.ts +3 -0
- package/dist/cli/commands/project-config/source/map.d.ts.map +1 -0
- package/dist/cli/commands/project-config/source/map.js +93 -0
- package/dist/cli/commands/project-config/source/map.js.map +1 -0
- package/dist/cli/commands/project-config/source/repos.d.ts +3 -0
- package/dist/cli/commands/project-config/source/repos.d.ts.map +1 -0
- package/dist/cli/commands/project-config/source/repos.js +18 -0
- package/dist/cli/commands/project-config/source/repos.js.map +1 -0
- package/dist/cli/commands/project-config/source/status.d.ts +3 -0
- package/dist/cli/commands/project-config/source/status.d.ts.map +1 -0
- package/dist/cli/commands/project-config/source/status.js +72 -0
- package/dist/cli/commands/project-config/source/status.js.map +1 -0
- package/dist/cli/commands/runtime-data/backup.d.ts +5 -0
- package/dist/cli/commands/runtime-data/backup.d.ts.map +1 -0
- package/dist/cli/commands/runtime-data/backup.js +107 -0
- package/dist/cli/commands/runtime-data/backup.js.map +1 -0
- package/dist/cli/commands/runtime-data/index.d.ts +2 -0
- package/dist/cli/commands/runtime-data/index.d.ts.map +1 -0
- package/dist/cli/commands/runtime-data/index.js +206 -0
- package/dist/cli/commands/runtime-data/index.js.map +1 -0
- package/dist/cli/commands/runtime-data/resource.d.ts +11 -0
- package/dist/cli/commands/runtime-data/resource.d.ts.map +1 -0
- package/dist/cli/commands/runtime-data/resource.js +147 -0
- package/dist/cli/commands/runtime-data/resource.js.map +1 -0
- package/dist/cli/commands/runtime-data/restore.d.ts +3 -0
- package/dist/cli/commands/runtime-data/restore.d.ts.map +1 -0
- package/dist/cli/commands/runtime-data/restore.js +119 -0
- package/dist/cli/commands/runtime-data/restore.js.map +1 -0
- package/dist/cli/commands/runtime-data/seeds.d.ts +6 -0
- package/dist/cli/commands/runtime-data/seeds.d.ts.map +1 -0
- package/dist/cli/commands/runtime-data/seeds.js +213 -0
- package/dist/cli/commands/runtime-data/seeds.js.map +1 -0
- package/dist/cli/commands/runtime-data/tunnel.d.ts +16 -0
- package/dist/cli/commands/runtime-data/tunnel.d.ts.map +1 -0
- package/dist/cli/commands/runtime-data/tunnel.js +249 -0
- package/dist/cli/commands/runtime-data/tunnel.js.map +1 -0
- package/dist/cli/host-arguments.d.ts +7 -0
- package/dist/cli/host-arguments.d.ts.map +1 -0
- package/dist/cli/host-arguments.js +46 -0
- package/dist/cli/host-arguments.js.map +1 -0
- package/dist/cli/host-nodes.d.ts +30 -0
- package/dist/cli/host-nodes.d.ts.map +1 -0
- package/dist/cli/host-nodes.js +17 -0
- package/dist/cli/host-nodes.js.map +1 -0
- package/dist/cli/index.d.ts +29 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +60 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/lib/api-client.d.ts +19 -0
- package/dist/cli/lib/api-client.d.ts.map +1 -0
- package/dist/cli/lib/api-client.js +111 -0
- package/dist/cli/lib/api-client.js.map +1 -0
- package/dist/cli/lib/auth.d.ts +132 -0
- package/dist/cli/lib/auth.d.ts.map +1 -0
- package/dist/cli/lib/auth.js +505 -0
- package/dist/cli/lib/auth.js.map +1 -0
- package/dist/cli/lib/config.d.ts +7 -0
- package/dist/cli/lib/config.d.ts.map +1 -0
- package/dist/cli/lib/config.js +11 -0
- package/dist/cli/lib/config.js.map +1 -0
- package/dist/cli/lib/context.d.ts +10 -0
- package/dist/cli/lib/context.d.ts.map +1 -0
- package/dist/cli/lib/context.js +42 -0
- package/dist/cli/lib/context.js.map +1 -0
- package/dist/cli/lib/contract/build-settings.d.ts +36 -0
- package/dist/cli/lib/contract/build-settings.d.ts.map +1 -0
- package/dist/cli/lib/contract/build-settings.js +73 -0
- package/dist/cli/lib/contract/build-settings.js.map +1 -0
- package/dist/cli/lib/contract/database.d.ts +47 -0
- package/dist/cli/lib/contract/database.d.ts.map +1 -0
- package/dist/cli/lib/contract/database.js +29 -0
- package/dist/cli/lib/contract/database.js.map +1 -0
- package/dist/cli/lib/contract/deployment-resource-labels.d.ts +11 -0
- package/dist/cli/lib/contract/deployment-resource-labels.d.ts.map +1 -0
- package/dist/cli/lib/contract/deployment-resource-labels.js +80 -0
- package/dist/cli/lib/contract/deployment-resource-labels.js.map +1 -0
- package/dist/cli/lib/contract/deployments.d.ts +128 -0
- package/dist/cli/lib/contract/deployments.d.ts.map +1 -0
- package/dist/cli/lib/contract/deployments.js +46 -0
- package/dist/cli/lib/contract/deployments.js.map +1 -0
- package/dist/cli/lib/contract/desired-state.d.ts +104 -0
- package/dist/cli/lib/contract/desired-state.d.ts.map +1 -0
- package/dist/cli/lib/contract/desired-state.js +171 -0
- package/dist/cli/lib/contract/desired-state.js.map +1 -0
- package/dist/cli/lib/contract/foreign-credentials.d.ts +49 -0
- package/dist/cli/lib/contract/foreign-credentials.d.ts.map +1 -0
- package/dist/cli/lib/contract/foreign-credentials.js +71 -0
- package/dist/cli/lib/contract/foreign-credentials.js.map +1 -0
- package/dist/cli/lib/contract/logs.d.ts +44 -0
- package/dist/cli/lib/contract/logs.d.ts.map +1 -0
- package/dist/cli/lib/contract/logs.js +66 -0
- package/dist/cli/lib/contract/logs.js.map +1 -0
- package/dist/cli/lib/contract/projects.d.ts +31 -0
- package/dist/cli/lib/contract/projects.d.ts.map +1 -0
- package/dist/cli/lib/contract/projects.js +9 -0
- package/dist/cli/lib/contract/projects.js.map +1 -0
- package/dist/cli/lib/contract/public-error-details.d.ts +4 -0
- package/dist/cli/lib/contract/public-error-details.d.ts.map +1 -0
- package/dist/cli/lib/contract/public-error-details.js +248 -0
- package/dist/cli/lib/contract/public-error-details.js.map +1 -0
- package/dist/cli/lib/contract/runtime-operations.d.ts +87 -0
- package/dist/cli/lib/contract/runtime-operations.d.ts.map +1 -0
- package/dist/cli/lib/contract/runtime-operations.js +67 -0
- package/dist/cli/lib/contract/runtime-operations.js.map +1 -0
- package/dist/cli/lib/contract/seeds.d.ts +31 -0
- package/dist/cli/lib/contract/seeds.d.ts.map +1 -0
- package/dist/cli/lib/contract/seeds.js +43 -0
- package/dist/cli/lib/contract/seeds.js.map +1 -0
- package/dist/cli/lib/contract/source-repository.d.ts +73 -0
- package/dist/cli/lib/contract/source-repository.d.ts.map +1 -0
- package/dist/cli/lib/contract/source-repository.js +31 -0
- package/dist/cli/lib/contract/source-repository.js.map +1 -0
- package/dist/cli/lib/contract/wire-types.d.ts +47 -0
- package/dist/cli/lib/contract/wire-types.d.ts.map +1 -0
- package/dist/cli/lib/contract/wire-types.js +13 -0
- package/dist/cli/lib/contract/wire-types.js.map +1 -0
- package/dist/cli/lib/contract/wire-values.d.ts +6 -0
- package/dist/cli/lib/contract/wire-values.d.ts.map +1 -0
- package/dist/cli/lib/contract/wire-values.js +21 -0
- package/dist/cli/lib/contract/wire-values.js.map +1 -0
- package/dist/cli/lib/dotenv.d.ts +2 -0
- package/dist/cli/lib/dotenv.d.ts.map +1 -0
- package/dist/cli/lib/dotenv.js +28 -0
- package/dist/cli/lib/dotenv.js.map +1 -0
- package/dist/cli/lib/env-file.d.ts +2 -0
- package/dist/cli/lib/env-file.d.ts.map +1 -0
- package/dist/cli/lib/env-file.js +26 -0
- package/dist/cli/lib/env-file.js.map +1 -0
- package/dist/cli/lib/env-preflight.d.ts +24 -0
- package/dist/cli/lib/env-preflight.d.ts.map +1 -0
- package/dist/cli/lib/env-preflight.js +265 -0
- package/dist/cli/lib/env-preflight.js.map +1 -0
- package/dist/cli/lib/error-output.d.ts +3 -0
- package/dist/cli/lib/error-output.d.ts.map +1 -0
- package/dist/cli/lib/error-output.js +2 -0
- package/dist/cli/lib/error-output.js.map +1 -0
- package/dist/cli/lib/errors.d.ts +37 -0
- package/dist/cli/lib/errors.d.ts.map +1 -0
- package/dist/cli/lib/errors.js +147 -0
- package/dist/cli/lib/errors.js.map +1 -0
- package/dist/cli/lib/file-lock.d.ts +23 -0
- package/dist/cli/lib/file-lock.d.ts.map +1 -0
- package/dist/cli/lib/file-lock.js +121 -0
- package/dist/cli/lib/file-lock.js.map +1 -0
- package/dist/cli/lib/format.d.ts +6 -0
- package/dist/cli/lib/format.d.ts.map +1 -0
- package/dist/cli/lib/format.js +44 -0
- package/dist/cli/lib/format.js.map +1 -0
- package/dist/cli/lib/id-prefix.d.ts +6 -0
- package/dist/cli/lib/id-prefix.d.ts.map +1 -0
- package/dist/cli/lib/id-prefix.js +18 -0
- package/dist/cli/lib/id-prefix.js.map +1 -0
- package/dist/cli/lib/invocation.d.ts +6 -0
- package/dist/cli/lib/invocation.d.ts.map +1 -0
- package/dist/cli/lib/invocation.js +34 -0
- package/dist/cli/lib/invocation.js.map +1 -0
- package/dist/cli/lib/log-stream.d.ts +7 -0
- package/dist/cli/lib/log-stream.d.ts.map +1 -0
- package/dist/cli/lib/log-stream.js +179 -0
- package/dist/cli/lib/log-stream.js.map +1 -0
- package/dist/cli/lib/logger.d.ts +5 -0
- package/dist/cli/lib/logger.d.ts.map +1 -0
- package/dist/cli/lib/logger.js +52 -0
- package/dist/cli/lib/logger.js.map +1 -0
- package/dist/cli/lib/open-browser.d.ts +2 -0
- package/dist/cli/lib/open-browser.d.ts.map +1 -0
- package/dist/cli/lib/open-browser.js +8 -0
- package/dist/cli/lib/open-browser.js.map +1 -0
- package/dist/cli/lib/organization.d.ts +3 -0
- package/dist/cli/lib/organization.d.ts.map +1 -0
- package/dist/cli/lib/organization.js +20 -0
- package/dist/cli/lib/organization.js.map +1 -0
- package/dist/cli/lib/project-link.d.ts +12 -0
- package/dist/cli/lib/project-link.d.ts.map +1 -0
- package/dist/cli/lib/project-link.js +69 -0
- package/dist/cli/lib/project-link.js.map +1 -0
- package/dist/cli/lib/resolve.d.ts +20 -0
- package/dist/cli/lib/resolve.d.ts.map +1 -0
- package/dist/cli/lib/resolve.js +88 -0
- package/dist/cli/lib/resolve.js.map +1 -0
- package/dist/cli/lib/sleep.d.ts +2 -0
- package/dist/cli/lib/sleep.d.ts.map +1 -0
- package/dist/cli/lib/sleep.js +4 -0
- package/dist/cli/lib/sleep.js.map +1 -0
- package/dist/cli/lib/slug.d.ts +3 -0
- package/dist/cli/lib/slug.d.ts.map +1 -0
- package/dist/cli/lib/slug.js +13 -0
- package/dist/cli/lib/slug.js.map +1 -0
- package/dist/cli/lib/source-repository-link.d.ts +5 -0
- package/dist/cli/lib/source-repository-link.d.ts.map +1 -0
- package/dist/cli/lib/source-repository-link.js +28 -0
- package/dist/cli/lib/source-repository-link.js.map +1 -0
- package/dist/cli/lib/types.d.ts +58 -0
- package/dist/cli/lib/types.d.ts.map +1 -0
- package/dist/cli/lib/types.js +10 -0
- package/dist/cli/lib/types.js.map +1 -0
- package/dist/cli/root-options.d.ts +14 -0
- package/dist/cli/root-options.d.ts.map +1 -0
- package/dist/cli/root-options.js +53 -0
- package/dist/cli/root-options.js.map +1 -0
- package/dist/cli-plugin.d.ts +22 -0
- package/dist/cli-plugin.d.ts.map +1 -0
- package/dist/cli-plugin.js +30 -0
- package/dist/cli-plugin.js.map +1 -0
- package/dist/cloud-config-module.d.ts +3 -0
- package/dist/cloud-config-module.d.ts.map +1 -0
- package/dist/cloud-config-module.js +16 -0
- package/dist/cloud-config-module.js.map +1 -0
- package/dist/dev/cli-host.d.ts +3 -0
- package/dist/dev/cli-host.d.ts.map +1 -0
- package/dist/dev/cli-host.js +72 -0
- package/dist/dev/cli-host.js.map +1 -0
- package/dist/dev/dev-command.d.ts +7 -0
- package/dist/dev/dev-command.d.ts.map +1 -0
- package/dist/dev/dev-command.js +122 -0
- package/dist/dev/dev-command.js.map +1 -0
- package/dist/dev/dev-config.d.ts +4 -0
- package/dist/dev/dev-config.d.ts.map +1 -0
- package/dist/dev/dev-config.js +28 -0
- package/dist/dev/dev-config.js.map +1 -0
- package/dist/dev/dev-migrate.d.ts +2 -0
- package/dist/dev/dev-migrate.d.ts.map +1 -0
- package/dist/dev/dev-migrate.js +17 -0
- package/dist/dev/dev-migrate.js.map +1 -0
- package/dist/dev/dev-process.d.ts +2 -0
- package/dist/dev/dev-process.d.ts.map +1 -0
- package/dist/dev/dev-process.js +14 -0
- package/dist/dev/dev-process.js.map +1 -0
- package/dist/dev/dev-server.d.ts +2 -0
- package/dist/dev/dev-server.d.ts.map +1 -0
- package/dist/dev/dev-server.js +15 -0
- package/dist/dev/dev-server.js.map +1 -0
- package/dist/dev/dev-worker.d.ts +2 -0
- package/dist/dev/dev-worker.d.ts.map +1 -0
- package/dist/dev/dev-worker.js +11 -0
- package/dist/dev/dev-worker.js.map +1 -0
- package/dist/dev/local-services.d.ts +23 -0
- package/dist/dev/local-services.d.ts.map +1 -0
- package/dist/dev/local-services.js +288 -0
- package/dist/dev/local-services.js.map +1 -0
- package/dist/dev/project-layout.d.ts +11 -0
- package/dist/dev/project-layout.d.ts.map +1 -0
- package/dist/dev/project-layout.js +89 -0
- package/dist/dev/project-layout.js.map +1 -0
- package/dist/entrypoint.js +3 -12
- package/dist/entrypoint.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/local-asset-server.d.ts +4 -0
- package/dist/local-asset-server.d.ts.map +1 -0
- package/dist/local-asset-server.js +24 -0
- package/dist/local-asset-server.js.map +1 -0
- package/dist/local-cache-plugin.d.ts +5 -0
- package/dist/local-cache-plugin.d.ts.map +1 -0
- package/dist/local-cache-plugin.js +68 -0
- package/dist/local-cache-plugin.js.map +1 -0
- package/dist/local-cache.d.ts +17 -0
- package/dist/local-cache.d.ts.map +1 -0
- package/dist/local-cache.js +144 -0
- package/dist/local-cache.js.map +1 -0
- package/dist/local-dashboard-plugin.d.ts +9 -0
- package/dist/local-dashboard-plugin.d.ts.map +1 -0
- package/dist/local-dashboard-plugin.js +37 -0
- package/dist/local-dashboard-plugin.js.map +1 -0
- package/dist/local-database.d.ts +15 -0
- package/dist/local-database.d.ts.map +1 -0
- package/dist/local-database.js +64 -0
- package/dist/local-database.js.map +1 -0
- package/dist/local-runtime.d.ts +15 -2
- package/dist/local-runtime.d.ts.map +1 -1
- package/dist/local-runtime.js +145 -28
- package/dist/local-runtime.js.map +1 -1
- package/package.json +63 -7
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import * as prompts from "@clack/prompts";
|
|
2
|
+
import { createAuthenticatedClient, resolveEnvironment, } from "../../index.js";
|
|
3
|
+
import { LOG_SERVICES } from "../../lib/contract/logs.js";
|
|
4
|
+
import { consumeLogStream, printLogLine } from "../../lib/log-stream.js";
|
|
5
|
+
import { readBooleanOption, readIntegerOption, readStringOption } from "./options.js";
|
|
6
|
+
// The migration job writes to the same endpoint but is not part of the stream vocabulary: it runs
|
|
7
|
+
// once and finishes, so `contract/logs.ts` names only the two services that can be tailed. Derived
|
|
8
|
+
// from that list rather than written out again, so a service added to the contract is accepted here
|
|
9
|
+
// without a second edit.
|
|
10
|
+
const BATCH_ONLY_SERVICE = "migration";
|
|
11
|
+
const LOG_SERVICE_NAMES = [...LOG_SERVICES, BATCH_ONLY_SERVICE];
|
|
12
|
+
// The refusal names the list it checked against rather than a second copy of it. A hand-written
|
|
13
|
+
// sentence here would go wrong the first time the contract grows a service: the check would accept
|
|
14
|
+
// the new name and the message would still deny it exists.
|
|
15
|
+
function nameList(names) {
|
|
16
|
+
const quoted = names.map((name) => `"${name}"`);
|
|
17
|
+
if (quoted.length < 2)
|
|
18
|
+
return quoted.join("");
|
|
19
|
+
return `${quoted.slice(0, -1).join(", ")}, or ${quoted[quoted.length - 1]}`;
|
|
20
|
+
}
|
|
21
|
+
const SINCE_UNIT_MS = {
|
|
22
|
+
s: 1_000,
|
|
23
|
+
m: 60_000,
|
|
24
|
+
h: 3_600_000,
|
|
25
|
+
d: 86_400_000,
|
|
26
|
+
};
|
|
27
|
+
// Convert a `--since` duration (e.g. "30m", "6h", "2d") into an ISO-8601 lower
|
|
28
|
+
// time bound the control plane understands.
|
|
29
|
+
function parseSince(value) {
|
|
30
|
+
const match = value.trim().match(/^(\d+)\s*([smhd])$/i);
|
|
31
|
+
const unitMs = match ? SINCE_UNIT_MS[match[2].toLowerCase()] : undefined;
|
|
32
|
+
const invalid = new Error(`Invalid --since value "${value}". Use a number followed by s, m, h, or d (e.g. 30m, 6h, 2d).`);
|
|
33
|
+
if (!match || unitMs === undefined) {
|
|
34
|
+
throw invalid;
|
|
35
|
+
}
|
|
36
|
+
const d = new Date(Date.now() - Number(match[1]) * unitMs);
|
|
37
|
+
if (Number.isNaN(d.getTime())) {
|
|
38
|
+
throw invalid;
|
|
39
|
+
}
|
|
40
|
+
return d.toISOString();
|
|
41
|
+
}
|
|
42
|
+
function buildQueryString(service, lines, since) {
|
|
43
|
+
const params = new URLSearchParams({
|
|
44
|
+
service,
|
|
45
|
+
lines: String(lines),
|
|
46
|
+
});
|
|
47
|
+
if (since)
|
|
48
|
+
params.set("since", since);
|
|
49
|
+
return params.toString();
|
|
50
|
+
}
|
|
51
|
+
async function fetchBatchLogs(client, environmentId, service, lines, since) {
|
|
52
|
+
const query = buildQueryString(service, lines, since);
|
|
53
|
+
const entries = await client.get(`/environments/${environmentId}/logs?${query}`);
|
|
54
|
+
if (entries.length === 0) {
|
|
55
|
+
prompts.log.warn(`No logs in the selected window for service "${service}". The service may be failing before it produces output, or the window is too narrow — fetch more with --lines, or widen the window with --since (e.g. --since 6h).`);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
for (const entry of entries) {
|
|
59
|
+
printLogLine(entry);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async function streamLogs(client, environmentId, service, lines, since) {
|
|
63
|
+
const query = buildQueryString(service, lines, since);
|
|
64
|
+
await consumeLogStream(client, `/environments/${environmentId}/logs/stream?${query}`);
|
|
65
|
+
}
|
|
66
|
+
export async function logs({ options, globals }) {
|
|
67
|
+
const { environment } = await resolveEnvironment(globals);
|
|
68
|
+
const client = createAuthenticatedClient(globals);
|
|
69
|
+
const service = readStringOption(options.service, "--service") ?? "";
|
|
70
|
+
const lines = readIntegerOption(options.lines, "--lines");
|
|
71
|
+
const follow = readBooleanOption(options.follow);
|
|
72
|
+
const sinceOption = readStringOption(options.since, "--since");
|
|
73
|
+
const since = sinceOption ? parseSince(sinceOption) : undefined;
|
|
74
|
+
if (!LOG_SERVICE_NAMES.includes(service)) {
|
|
75
|
+
prompts.log.error(`Invalid service "${service}". Must be ${nameList(LOG_SERVICE_NAMES)}.`);
|
|
76
|
+
return 1;
|
|
77
|
+
}
|
|
78
|
+
if (follow && service === BATCH_ONLY_SERVICE) {
|
|
79
|
+
prompts.log.error("The migration job runs once, so its logs can't be streamed. Omit --follow to fetch them.");
|
|
80
|
+
return 1;
|
|
81
|
+
}
|
|
82
|
+
if (follow) {
|
|
83
|
+
await streamLogs(client, environment.id, service, lines, since);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
await fetchBatchLogs(client, environment.id, service, lines, since);
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface DeploymentImageOptions {
|
|
2
|
+
serverImage?: string;
|
|
3
|
+
workerImage?: string;
|
|
4
|
+
migrationImage?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function readStringOption(value: unknown, flag: string): string | undefined;
|
|
7
|
+
export declare function readBooleanOption(value: unknown): boolean;
|
|
8
|
+
export declare function readNegatableOption(value: unknown): boolean;
|
|
9
|
+
export declare function readIntegerOption(value: unknown, flag: string): number;
|
|
10
|
+
export declare function readImageOptions(options: Record<string, unknown>): DeploymentImageOptions;
|
|
11
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/options.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjF;AAMD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEzD;AAGD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE3D;AASD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMtE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,sBAAsB,CAMzF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { readSingleValue } from "../../arguments.js";
|
|
2
|
+
export function readStringOption(value, flag) {
|
|
3
|
+
return readSingleValue(value, flag);
|
|
4
|
+
}
|
|
5
|
+
// Commander gives a boolean flag `true` when it was supplied and leaves it absent otherwise, and
|
|
6
|
+
// gives a `--no-` flag `true` by default and `false` when it was supplied. Both read as "is it
|
|
7
|
+
// exactly true", so an absent flag and a flag the host handed over in some other shape both answer
|
|
8
|
+
// the same as not supplying it.
|
|
9
|
+
export function readBooleanOption(value) {
|
|
10
|
+
return value === true;
|
|
11
|
+
}
|
|
12
|
+
// A `--no-<name>` flag: true unless the customer turned it off.
|
|
13
|
+
export function readNegatableOption(value) {
|
|
14
|
+
return value !== false;
|
|
15
|
+
}
|
|
16
|
+
// A count declared with a string default, the way `vcloud` declares `--limit` and `--lines`.
|
|
17
|
+
// Commander does not coerce, so the value is the customer's text or the declared default.
|
|
18
|
+
//
|
|
19
|
+
// The parse is not range-checked, which is `vcloud`'s behaviour: text that is not a number reaches
|
|
20
|
+
// the control plane as `limit=NaN` and is refused there. The one count with a local bound is
|
|
21
|
+
// `deployment logs --lines`, because it decides how much history a stream replays; `build-logs.ts`
|
|
22
|
+
// holds that check.
|
|
23
|
+
export function readIntegerOption(value, flag) {
|
|
24
|
+
const text = readStringOption(value, flag);
|
|
25
|
+
if (text === undefined) {
|
|
26
|
+
throw new Error(`${flag} requires a value.`);
|
|
27
|
+
}
|
|
28
|
+
return Number.parseInt(text, 10);
|
|
29
|
+
}
|
|
30
|
+
export function readImageOptions(options) {
|
|
31
|
+
return {
|
|
32
|
+
serverImage: readStringOption(options.serverImage, "--server-image"),
|
|
33
|
+
workerImage: readStringOption(options.workerImage, "--worker-image"),
|
|
34
|
+
migrationImage: readStringOption(options.migrationImage, "--migration-image"),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAiBrD,MAAM,UAAU,gBAAgB,CAAC,KAAc,EAAE,IAAY;IAC3D,OAAO,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,iGAAiG;AACjG,+FAA+F;AAC/F,mGAAmG;AACnG,gCAAgC;AAChC,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,KAAK,KAAK,KAAK,CAAC;AACzB,CAAC;AAED,6FAA6F;AAC7F,0FAA0F;AAC1F,EAAE;AACF,mGAAmG;AACnG,6FAA6F;AAC7F,mGAAmG;AACnG,oBAAoB;AACpB,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,IAAY;IAC5D,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,OAAO;QACL,WAAW,EAAE,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC;QACpE,WAAW,EAAE,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC;QACpE,cAAc,EAAE,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE,mBAAmB,CAAC;KAC9E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DeploymentPlanAction, DeploymentPlanSummary } from "../../lib/contract/deployments.js";
|
|
2
|
+
export type ResourceAction = DeploymentPlanAction;
|
|
3
|
+
export type PlanSummary = DeploymentPlanSummary;
|
|
4
|
+
export declare function isKeptAction(action: ResourceAction): boolean;
|
|
5
|
+
export declare function formatActionLine(action: ResourceAction): string;
|
|
6
|
+
export declare function formatKeptActionLine(action: ResourceAction): string;
|
|
7
|
+
export declare function summarizeActions(actions: ResourceAction[]): PlanSummary;
|
|
8
|
+
//# sourceMappingURL=plan-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-format.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/plan-format.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,mCAAmC,CAAC;AAK3C,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC;AAElD,MAAM,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAEhD,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAE5D;AASD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAE/D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAEnE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,CAOvE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { cloudInvocation } from "../../index.js";
|
|
2
|
+
export function isKeptAction(action) {
|
|
3
|
+
return action.action === "keep";
|
|
4
|
+
}
|
|
5
|
+
const ACTION_SYMBOLS = {
|
|
6
|
+
create: "+",
|
|
7
|
+
update: "~",
|
|
8
|
+
delete: "-",
|
|
9
|
+
keep: "!",
|
|
10
|
+
};
|
|
11
|
+
export function formatActionLine(action) {
|
|
12
|
+
return `${ACTION_SYMBOLS[action.action]} ${action.label}`;
|
|
13
|
+
}
|
|
14
|
+
export function formatKeptActionLine(action) {
|
|
15
|
+
return `! ${action.label} (kept — data-bearing; \`${cloudInvocation()} deploy teardown\` deletes it)`;
|
|
16
|
+
}
|
|
17
|
+
export function summarizeActions(actions) {
|
|
18
|
+
return {
|
|
19
|
+
create: actions.filter((action) => action.action === "create").length,
|
|
20
|
+
update: actions.filter((action) => action.action === "update").length,
|
|
21
|
+
delete: actions.filter((action) => action.action === "delete").length,
|
|
22
|
+
keep: actions.filter((action) => action.action === "keep").length,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=plan-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-format.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/plan-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAajD,MAAM,UAAU,YAAY,CAAC,MAAsB;IACjD,OAAO,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC;AAClC,CAAC;AAED,MAAM,cAAc,GAA6C;IAC/D,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,GAAG;CACV,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,MAAsB;IACrD,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACzD,OAAO,KAAK,MAAM,CAAC,KAAK,4BAA4B,eAAe,EAAE,gCAAgC,CAAC;AACxG,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAyB;IACxD,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;QACrE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;QACrE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;QACrE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM;KAClE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/plan.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,gBAAgB,CAAC;AAmBxB,wBAAsB,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDvF"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as prompts from "@clack/prompts";
|
|
2
|
+
import { createAuthenticatedClient, resolveEnvironment, } from "../../index.js";
|
|
3
|
+
import { isPlanPreviewUnavailable, } from "../../lib/contract/deployments.js";
|
|
4
|
+
import { formatEnvPreflightSkipped, formatMissingEnvVarsWarning, runEnvVarPreflight, } from "../../lib/env-preflight.js";
|
|
5
|
+
import { readImageOptions } from "./options.js";
|
|
6
|
+
import { formatActionLine, formatKeptActionLine, isKeptAction, summarizeActions, } from "./plan-format.js";
|
|
7
|
+
import { resolveDeploymentSource } from "./source.js";
|
|
8
|
+
export async function deployPlan({ options, globals }) {
|
|
9
|
+
const imageOpts = readImageOptions(options);
|
|
10
|
+
const { environment } = await resolveEnvironment(globals);
|
|
11
|
+
const json = globals.json === true;
|
|
12
|
+
const client = createAuthenticatedClient(globals);
|
|
13
|
+
const source = await resolveDeploymentSource(client, environment, imageOpts);
|
|
14
|
+
if (!json) {
|
|
15
|
+
const preflight = await runEnvVarPreflight(client, environment.id);
|
|
16
|
+
if (preflight.status === "not-checked") {
|
|
17
|
+
prompts.log.info(formatEnvPreflightSkipped(preflight.reason));
|
|
18
|
+
}
|
|
19
|
+
else if (preflight.missing.length > 0) {
|
|
20
|
+
prompts.log.warn(formatMissingEnvVarsWarning(preflight.missing, environment.slug));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const spinner = prompts.spinner();
|
|
24
|
+
spinner.start("Computing infrastructure plan...");
|
|
25
|
+
const result = await client.post("/deployments/plan", {
|
|
26
|
+
environmentId: environment.id,
|
|
27
|
+
...(source.kind === "prebuilt-images" ? source.images : {}),
|
|
28
|
+
});
|
|
29
|
+
const { plan } = result;
|
|
30
|
+
spinner.stop(`Plan: ${plan.projectName} / ${plan.environmentName}`);
|
|
31
|
+
// A plan the platform could not compute is not a plan that found nothing, and reporting the
|
|
32
|
+
// second would tell a customer their deploy changes nothing.
|
|
33
|
+
if (isPlanPreviewUnavailable(plan)) {
|
|
34
|
+
prompts.note(plan.previewUnavailableReason ?? "", "Resources");
|
|
35
|
+
prompts.outro("Resource changes could not be previewed.");
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const actionLines = plan.actions
|
|
39
|
+
.map((action) => isKeptAction(action) ? formatKeptActionLine(action) : formatActionLine(action))
|
|
40
|
+
.join("\n");
|
|
41
|
+
prompts.note(actionLines || "No resource changes", "Resources");
|
|
42
|
+
const { create, update, delete: del, keep } = summarizeActions(plan.actions);
|
|
43
|
+
const parts = [];
|
|
44
|
+
if (create > 0)
|
|
45
|
+
parts.push(`${create} to create`);
|
|
46
|
+
if (update > 0)
|
|
47
|
+
parts.push(`${update} to update`);
|
|
48
|
+
if (del > 0)
|
|
49
|
+
parts.push(`${del} to delete`);
|
|
50
|
+
if (keep > 0)
|
|
51
|
+
parts.push(`${keep} kept (data-bearing)`);
|
|
52
|
+
prompts.outro(parts.length > 0 ? parts.join(", ") : "No resource changes");
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/rollback.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EAYvB,MAAM,gBAAgB,CAAC;AAOxB,wBAAsB,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2DhG"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import * as prompts from "@clack/prompts";
|
|
2
|
+
import pc from "picocolors";
|
|
3
|
+
import { FAILED_STATUSES, SUCCESS_STATUSES, TERMINAL_STATUSES, cloudInvocation, createAuthenticatedClient, formatDateTime, formatUserFacingErrorDetails, resolveEnvironment, sleep, } from "../../index.js";
|
|
4
|
+
import { optionalArgument } from "./arguments.js";
|
|
5
|
+
import { resolveDeploymentIdInEnvironment } from "./shared.js";
|
|
6
|
+
const POLL_INTERVAL_MS = 3_000;
|
|
7
|
+
const TIMEOUT_MS = 15 * 60 * 1000;
|
|
8
|
+
export async function rollback({ args, globals }) {
|
|
9
|
+
const deploymentId = optionalArgument(args, 0, "deploymentId");
|
|
10
|
+
const { project, environment } = await resolveEnvironment(globals);
|
|
11
|
+
const client = createAuthenticatedClient(globals);
|
|
12
|
+
prompts.log.warn("Rollback restores application/runtime state only. It does not restore database contents or schema.");
|
|
13
|
+
const targetDeploymentId = deploymentId
|
|
14
|
+
? await resolveDeploymentIdInEnvironment(client, environment.id, deploymentId)
|
|
15
|
+
: await selectRollbackTarget(client, environment.id, project.slug, environment.slug);
|
|
16
|
+
if (!targetDeploymentId)
|
|
17
|
+
return;
|
|
18
|
+
const deployment = await client.post(`/environments/${environment.id}/rollback`, {
|
|
19
|
+
targetDeploymentId,
|
|
20
|
+
});
|
|
21
|
+
const spinner = prompts.spinner();
|
|
22
|
+
spinner.start("Rollback in progress...");
|
|
23
|
+
let current = deployment;
|
|
24
|
+
const startedAt = Date.now();
|
|
25
|
+
while (!TERMINAL_STATUSES.has(current.status)) {
|
|
26
|
+
if (Date.now() - startedAt > TIMEOUT_MS) {
|
|
27
|
+
spinner.stop("Rollback timed out");
|
|
28
|
+
prompts.log.warn(`Rollback did not complete within 15 minutes. It may still finish — run \`${cloudInvocation()} deployment list\` to check.`);
|
|
29
|
+
return 1;
|
|
30
|
+
}
|
|
31
|
+
await sleep(POLL_INTERVAL_MS);
|
|
32
|
+
current = await client.get(`/deployments/${deployment.id}`);
|
|
33
|
+
spinner.message(current.statusMessage ?? spinnerMessage(current.status));
|
|
34
|
+
}
|
|
35
|
+
if (SUCCESS_STATUSES.has(current.status)) {
|
|
36
|
+
spinner.stop("Rolled back.");
|
|
37
|
+
const protectedResources = current.protectedResources ?? [];
|
|
38
|
+
if (protectedResources.length > 0) {
|
|
39
|
+
const lines = protectedResources.map((resource) => ` - ${resource.label}`).join("\n");
|
|
40
|
+
prompts.log.warn(`${protectedResources.length} data-bearing resource${protectedResources.length === 1 ? " is" : "s are"} orphaned and kept:\n${lines}\nRun \`${cloudInvocation()} deploy teardown\` to remove ${protectedResources.length === 1 ? "it" : "them"}.`);
|
|
41
|
+
}
|
|
42
|
+
prompts.outro(`${project.slug} / ${environment.slug} rolled back`);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
spinner.stop("Rollback failed");
|
|
46
|
+
if (current.errorDetails) {
|
|
47
|
+
prompts.log.error(formatUserFacingErrorDetails(current.errorDetails, {
|
|
48
|
+
projectSlug: project.slug,
|
|
49
|
+
environmentSlug: environment.slug,
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
return 1;
|
|
53
|
+
}
|
|
54
|
+
async function selectRollbackTarget(client, environmentId, projectSlug, environmentSlug) {
|
|
55
|
+
if (!process.stdin.isTTY) {
|
|
56
|
+
throw new Error(`No rollback target provided. Pass \`${cloudInvocation()} rollback <deployment-id>\`.`);
|
|
57
|
+
}
|
|
58
|
+
const spinner = prompts.spinner();
|
|
59
|
+
spinner.start("Fetching rollback targets...");
|
|
60
|
+
const targets = await client.get(`/environments/${environmentId}/rollback-targets`);
|
|
61
|
+
spinner.stop(`Rollback targets for ${projectSlug} / ${environmentSlug}`);
|
|
62
|
+
const eligible = targets.filter((target) => target.eligible);
|
|
63
|
+
if (eligible.length === 0) {
|
|
64
|
+
throw new Error("Nothing to roll back to.");
|
|
65
|
+
}
|
|
66
|
+
const selected = await prompts.select({
|
|
67
|
+
message: "Select deployment to roll back to:",
|
|
68
|
+
options: eligible.map((target) => ({
|
|
69
|
+
value: target.id,
|
|
70
|
+
label: formatTarget(target),
|
|
71
|
+
})),
|
|
72
|
+
});
|
|
73
|
+
if (prompts.isCancel(selected)) {
|
|
74
|
+
prompts.outro("Rollback cancelled.");
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
return selected;
|
|
78
|
+
}
|
|
79
|
+
function formatTarget(target) {
|
|
80
|
+
const commit = target.commitHash ? ` - commit ${target.commitHash.slice(0, 7)}` : "";
|
|
81
|
+
const message = target.commitMessage ? ` - ${target.commitMessage}` : "";
|
|
82
|
+
return `${formatDateTime(target.createdAt)}${commit}${message}`;
|
|
83
|
+
}
|
|
84
|
+
function spinnerMessage(status) {
|
|
85
|
+
if (FAILED_STATUSES.has(status))
|
|
86
|
+
return pc.red(status);
|
|
87
|
+
switch (status) {
|
|
88
|
+
case "DEPLOYING":
|
|
89
|
+
return "Applying rollback...";
|
|
90
|
+
case "PENDING":
|
|
91
|
+
case "QUEUED":
|
|
92
|
+
return "Waiting to start...";
|
|
93
|
+
default:
|
|
94
|
+
return status;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=rollback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/rollback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ApiClient, type GlobalOptions } from "../../index.js";
|
|
2
|
+
export declare const DEPLOYMENT_PAGE_SIZE = 100;
|
|
3
|
+
export declare function resolveDeploymentId(client: ApiClient, options: GlobalOptions, identifier: string): Promise<string>;
|
|
4
|
+
export declare function resolveDeploymentIdInEnvironment(client: ApiClient, environmentId: string, identifier: string): Promise<string>;
|
|
5
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAInB,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAOxC,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAYjB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { isIdPrefix, resolveEnvironment, resolveUniqueIdPrefix, } from "../../index.js";
|
|
2
|
+
// How many VC Deployments one page of history holds when a command walks the list looking for a
|
|
3
|
+
// particular one, rather than showing the customer a page.
|
|
4
|
+
export const DEPLOYMENT_PAGE_SIZE = 100;
|
|
5
|
+
// Turns whatever the customer typed into a full VC Deployment ID.
|
|
6
|
+
//
|
|
7
|
+
// A full ID is passed straight through, so an environment is resolved only for the prefix case —
|
|
8
|
+
// which is the only case that needs one, because a prefix is unique within an environment rather
|
|
9
|
+
// than globally.
|
|
10
|
+
export async function resolveDeploymentId(client, options, identifier) {
|
|
11
|
+
if (!isIdPrefix(identifier))
|
|
12
|
+
return identifier;
|
|
13
|
+
const { environment } = await resolveEnvironment(options);
|
|
14
|
+
return resolveDeploymentIdInEnvironment(client, environment.id, identifier);
|
|
15
|
+
}
|
|
16
|
+
export async function resolveDeploymentIdInEnvironment(client, environmentId, identifier) {
|
|
17
|
+
if (!isIdPrefix(identifier))
|
|
18
|
+
return identifier;
|
|
19
|
+
const query = new URLSearchParams({ environmentId, prefix: identifier });
|
|
20
|
+
const result = await client.get(`/deployments/id-prefix-matches?${query}`);
|
|
21
|
+
return resolveUniqueIdPrefix(identifier, result.matches.map((id) => ({ id })), "VC Deployment");
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EACV,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,gGAAgG;AAChG,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,kEAAkE;AAClE,EAAE;AACF,iGAAiG;AACjG,iGAAiG;AACjG,iBAAiB;AACjB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAiB,EACjB,OAAsB,EACtB,UAAkB;IAElB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAE/C,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1D,OAAO,gCAAgC,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAAiB,EACjB,aAAqB,EACrB,UAAkB;IAElB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAE/C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAC7B,kCAAkC,KAAK,EAAE,CAC1C,CAAC;IACF,OAAO,qBAAqB,CAC1B,UAAU,EACV,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EACpC,eAAe,CAChB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/show.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EAWvB,MAAM,gBAAgB,CAAC;AAKxB,wBAAsB,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBxF"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import * as prompts from "@clack/prompts";
|
|
2
|
+
import { cloudInvocation, createAuthenticatedClient, formatDateTime, formatUserFacingErrorDetails, resolveEnvironment, writeJson, } from "../../index.js";
|
|
3
|
+
import { optionalArgument } from "./arguments.js";
|
|
4
|
+
import { resolveDeploymentId } from "./shared.js";
|
|
5
|
+
export async function showDeployment({ args, globals }) {
|
|
6
|
+
const deploymentId = optionalArgument(args, 0, "deployment-id");
|
|
7
|
+
const client = createAuthenticatedClient(globals);
|
|
8
|
+
const resolvedDeploymentId = deploymentId
|
|
9
|
+
? await resolveDeploymentId(client, globals, deploymentId)
|
|
10
|
+
: await findLatestDeploymentId(client, globals);
|
|
11
|
+
const deployment = await client.get(`/deployments/${encodeURIComponent(resolvedDeploymentId)}`);
|
|
12
|
+
if (globals.json) {
|
|
13
|
+
writeJson(deployment);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const errorContext = deployment.errorDetails
|
|
17
|
+
? await getDeploymentErrorContext(client, deployment)
|
|
18
|
+
: undefined;
|
|
19
|
+
prompts.note(formatDeployment(deployment, errorContext), "VC Deployment");
|
|
20
|
+
}
|
|
21
|
+
async function findLatestDeploymentId(client, options) {
|
|
22
|
+
const { environment } = await resolveEnvironment(options);
|
|
23
|
+
const query = new URLSearchParams({
|
|
24
|
+
environmentId: environment.id,
|
|
25
|
+
limit: "1",
|
|
26
|
+
});
|
|
27
|
+
const page = await client.get(`/deployments?${query}`);
|
|
28
|
+
const deployment = page.items[0];
|
|
29
|
+
if (!deployment) {
|
|
30
|
+
throw new Error(`No VC Deployment found for VC Environment "${environment.slug}". Run \`${cloudInvocation()} deploy\` first.`);
|
|
31
|
+
}
|
|
32
|
+
return deployment.id;
|
|
33
|
+
}
|
|
34
|
+
async function getDeploymentErrorContext(client, deployment) {
|
|
35
|
+
if (!deployment.environmentId) {
|
|
36
|
+
throw new Error("VC Deployment response is missing its VC Environment ID.");
|
|
37
|
+
}
|
|
38
|
+
const environment = await client.get(`/environments/${deployment.environmentId}`);
|
|
39
|
+
return {
|
|
40
|
+
projectSlug: environment.project.slug,
|
|
41
|
+
environmentSlug: environment.slug,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function formatDeployment(deployment, errorContext) {
|
|
45
|
+
const lines = [
|
|
46
|
+
`ID: ${deployment.id}`,
|
|
47
|
+
`Status: ${deployment.status}`,
|
|
48
|
+
`Trigger: ${deployment.trigger}`,
|
|
49
|
+
`Triggered by: ${deployment.triggeredBy?.name ?? "—"}`,
|
|
50
|
+
`Created: ${formatDateTime(deployment.createdAt)}`,
|
|
51
|
+
`Started: ${deployment.startedAt ? formatDateTime(deployment.startedAt) : "—"}`,
|
|
52
|
+
`Completed: ${deployment.completedAt ? formatDateTime(deployment.completedAt) : "—"}`,
|
|
53
|
+
`Commit: ${formatCommit(deployment)}`,
|
|
54
|
+
`Source: ${deployment.applicationSource ?? "—"}`,
|
|
55
|
+
`Build Step: ${deployment.hasBuildStep === true ? "yes" : "no"}`,
|
|
56
|
+
];
|
|
57
|
+
if (deployment.statusMessage)
|
|
58
|
+
lines.push(`Message: ${deployment.statusMessage}`);
|
|
59
|
+
if (deployment.errorDetails) {
|
|
60
|
+
lines.push(`Error: ${formatUserFacingErrorDetails(deployment.errorDetails, errorContext)}`);
|
|
61
|
+
}
|
|
62
|
+
return lines.join("\n");
|
|
63
|
+
}
|
|
64
|
+
function formatCommit(deployment) {
|
|
65
|
+
if (!deployment.commitHash)
|
|
66
|
+
return "—";
|
|
67
|
+
return deployment.commitMessage
|
|
68
|
+
? `${deployment.commitHash} — ${deployment.commitMessage}`
|
|
69
|
+
: deployment.commitHash;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=show.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/show.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ApiClient, type Environment, type SourceBranchMappingDetails } from "../../index.js";
|
|
2
|
+
import type { DeploymentImageOptions } from "./options.js";
|
|
3
|
+
export type DeploymentSource = {
|
|
4
|
+
kind: "managed-build";
|
|
5
|
+
mapping: SourceBranchMappingDetails;
|
|
6
|
+
} | {
|
|
7
|
+
kind: "prebuilt-images";
|
|
8
|
+
images: DeploymentImageOptions & {
|
|
9
|
+
serverImage: string;
|
|
10
|
+
workerImage: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export declare function resolveDeploymentSource(client: ApiClient, environment: Environment, images: DeploymentImageOptions): Promise<DeploymentSource>;
|
|
14
|
+
//# sourceMappingURL=source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/source.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAGhC,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAK3D,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,0BAA0B,CAAA;CAAE,GAC9D;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,sBAAsB,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/E,CAAC;AAEN,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CAqB3B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { cloudInvocation, getBranchMappingOrNull, } from "../../index.js";
|
|
2
|
+
export async function resolveDeploymentSource(client, environment, images) {
|
|
3
|
+
const hasImageFlag = Object.values(images).some((image) => image !== undefined);
|
|
4
|
+
if (hasImageFlag) {
|
|
5
|
+
if (!images.serverImage || !images.workerImage) {
|
|
6
|
+
throw new Error(`Image deployment requires both \`--server-image\` and \`--worker-image\`. Provide both flags, or omit all image flags and configure a source repository with \`${cloudInvocation()} source connect\` and \`${cloudInvocation()} source map\`.`);
|
|
7
|
+
}
|
|
8
|
+
return {
|
|
9
|
+
kind: "prebuilt-images",
|
|
10
|
+
images: { ...images, serverImage: images.serverImage, workerImage: images.workerImage },
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
const mapping = await getBranchMappingOrNull(client, environment.id);
|
|
14
|
+
if (!mapping) {
|
|
15
|
+
throw new Error(`No source repository is configured for VC Environment "${environment.slug}". Configure one with \`${cloudInvocation()} source connect\` and \`${cloudInvocation()} source map\`, or provide both \`--server-image\` and \`--worker-image\`.`);
|
|
16
|
+
}
|
|
17
|
+
return { kind: "managed-build", mapping };
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,eAAe,EACf,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAaxB,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAiB,EACjB,WAAwB,EACxB,MAA8B;IAE9B,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAChF,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,kKAAkK,eAAe,EAAE,2BAA2B,eAAe,EAAE,gBAAgB,CAChP,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE;SACxF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,0DAA0D,WAAW,CAAC,IAAI,2BAA2B,eAAe,EAAE,2BAA2B,eAAe,EAAE,2EAA2E,CAC9O,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/status.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iBAAiB,EAQvB,MAAM,gBAAgB,CAAC;AAIxB,wBAAsB,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkE1E"}
|