heroku 9.0.0-dev.0 → 9.0.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 +6 -11
- package/lib/commands/access/add.d.ts +14 -0
- package/lib/commands/access/add.js +55 -0
- package/lib/commands/access/index.d.ts +11 -0
- package/lib/commands/access/index.js +86 -0
- package/lib/commands/access/remove.d.ts +12 -0
- package/lib/commands/access/remove.js +25 -0
- package/lib/commands/access/update.d.ts +14 -0
- package/lib/commands/access/update.js +39 -0
- package/lib/commands/addons/attach.d.ts +16 -0
- package/lib/commands/addons/attach.js +51 -0
- package/lib/commands/addons/create.d.ts +20 -0
- package/lib/commands/addons/create.js +96 -0
- package/lib/commands/addons/destroy.d.ts +19 -0
- package/lib/commands/addons/destroy.js +61 -0
- package/lib/commands/addons/detach.d.ts +13 -0
- package/lib/commands/addons/detach.js +31 -0
- package/lib/commands/addons/docs.d.ts +14 -0
- package/lib/commands/addons/docs.js +36 -0
- package/lib/commands/addons/index.d.ts +16 -0
- package/lib/commands/addons/index.js +246 -0
- package/lib/commands/addons/info.d.ts +14 -0
- package/lib/commands/addons/info.js +44 -0
- package/lib/commands/addons/open.d.ts +75 -0
- package/lib/commands/addons/open.js +87 -0
- package/lib/commands/addons/plans.d.ts +12 -0
- package/lib/commands/addons/plans.js +47 -0
- package/lib/commands/addons/rename.d.ts +10 -0
- package/lib/commands/addons/rename.js +20 -0
- package/lib/commands/addons/services.d.ts +9 -0
- package/lib/commands/addons/services.js +34 -0
- package/lib/commands/addons/upgrade.d.ts +28 -0
- package/lib/commands/addons/upgrade.js +145 -0
- package/lib/commands/addons/wait.d.ts +14 -0
- package/lib/commands/addons/wait.js +70 -0
- package/lib/commands/apps/create.d.ts +28 -0
- package/lib/commands/apps/create.js +201 -0
- package/lib/commands/apps/destroy.d.ts +15 -0
- package/lib/commands/apps/destroy.js +47 -0
- package/lib/commands/apps/errors.d.ts +13 -0
- package/lib/commands/apps/errors.js +120 -0
- package/lib/commands/apps/favorites/add.d.ts +2 -1
- package/lib/commands/apps/favorites/add.js +1 -0
- package/lib/commands/apps/favorites/remove.d.ts +2 -1
- package/lib/commands/apps/favorites/remove.js +1 -0
- package/lib/commands/apps/index.d.ts +16 -0
- package/lib/commands/apps/index.js +119 -0
- package/lib/commands/apps/info.d.ts +19 -0
- package/lib/commands/apps/info.js +162 -0
- package/lib/commands/apps/join.d.ts +11 -0
- package/lib/commands/apps/join.js +25 -0
- package/lib/commands/apps/leave.d.ts +12 -0
- package/lib/commands/apps/leave.js +25 -0
- package/lib/commands/apps/lock.d.ts +11 -0
- package/lib/commands/apps/lock.js +30 -0
- package/lib/commands/apps/open.d.ts +15 -0
- package/lib/commands/apps/open.js +30 -0
- package/lib/commands/apps/rename.d.ts +16 -0
- package/lib/commands/apps/rename.js +51 -0
- package/lib/commands/apps/stacks/index.d.ts +3 -2
- package/lib/commands/apps/stacks/index.js +2 -1
- package/lib/commands/apps/stacks/set.d.ts +4 -4
- package/lib/commands/apps/stacks/set.js +1 -1
- package/lib/commands/apps/transfer.d.ts +17 -0
- package/lib/commands/apps/transfer.js +91 -0
- package/lib/commands/apps/unlock.d.ts +11 -0
- package/lib/commands/apps/unlock.js +30 -0
- package/lib/commands/auth/token.js +2 -1
- package/lib/commands/authorizations/create.d.ts +3 -3
- package/lib/commands/authorizations/create.js +5 -1
- package/lib/commands/authorizations/info.d.ts +1 -1
- package/lib/commands/authorizations/info.js +5 -1
- package/lib/commands/authorizations/revoke.d.ts +1 -1
- package/lib/commands/authorizations/revoke.js +5 -1
- package/lib/commands/authorizations/rotate.d.ts +1 -1
- package/lib/commands/authorizations/rotate.js +5 -1
- package/lib/commands/authorizations/update.d.ts +4 -4
- package/lib/commands/authorizations/update.js +5 -1
- package/lib/commands/autocomplete/doctor.js +2 -2
- package/lib/commands/autocomplete/options.d.ts +2 -2
- package/lib/commands/autocomplete/options.js +2 -2
- package/lib/commands/autocomplete/script.d.ts +1 -1
- package/lib/commands/buildpacks/add.d.ts +4 -4
- package/lib/commands/buildpacks/clear.d.ts +2 -2
- package/lib/commands/buildpacks/index.d.ts +2 -2
- package/lib/commands/buildpacks/info.d.ts +1 -1
- package/lib/commands/buildpacks/remove.d.ts +4 -4
- package/lib/commands/buildpacks/search.d.ts +4 -4
- package/lib/commands/buildpacks/set.d.ts +4 -4
- package/lib/commands/buildpacks/versions.d.ts +1 -1
- package/lib/commands/certs/add.d.ts +16 -0
- package/lib/commands/certs/add.js +98 -0
- package/lib/commands/certs/auto/disable.d.ts +11 -0
- package/lib/commands/certs/auto/disable.js +34 -0
- package/lib/commands/certs/auto/enable.d.ts +11 -0
- package/lib/commands/certs/auto/enable.js +51 -0
- package/lib/commands/certs/auto/index.d.ts +12 -0
- package/lib/commands/certs/auto/index.js +94 -0
- package/lib/commands/certs/auto/refresh.d.ts +10 -0
- package/lib/commands/certs/auto/refresh.js +19 -0
- package/lib/commands/certs/generate.d.ts +26 -0
- package/lib/commands/certs/generate.js +111 -0
- package/lib/commands/certs/index.d.ts +10 -0
- package/lib/commands/certs/index.js +26 -0
- package/lib/commands/certs/info.d.ts +13 -0
- package/lib/commands/certs/info.js +43 -0
- package/lib/commands/certs/remove.d.ts +13 -0
- package/lib/commands/certs/remove.js +32 -0
- package/lib/commands/certs/update.d.ts +18 -0
- package/lib/commands/certs/update.js +54 -0
- package/lib/commands/ci/config/get.d.ts +4 -3
- package/lib/commands/ci/config/get.js +3 -2
- package/lib/commands/ci/config/index.d.ts +3 -2
- package/lib/commands/ci/config/index.js +3 -2
- package/lib/commands/ci/config/set.d.ts +3 -2
- package/lib/commands/ci/config/set.js +2 -1
- package/lib/commands/ci/config/unset.d.ts +3 -3
- package/lib/commands/ci/config/unset.js +3 -3
- package/lib/commands/ci/debug.d.ts +2 -2
- package/lib/commands/ci/index.d.ts +3 -2
- package/lib/commands/ci/index.js +1 -0
- package/lib/commands/ci/info.d.ts +5 -4
- package/lib/commands/ci/info.js +1 -0
- package/lib/commands/ci/last.d.ts +4 -3
- package/lib/commands/ci/last.js +1 -0
- package/lib/commands/ci/open.d.ts +3 -2
- package/lib/commands/ci/open.js +1 -0
- package/lib/commands/ci/rerun.d.ts +4 -3
- package/lib/commands/ci/rerun.js +1 -0
- package/lib/commands/ci/run.d.ts +2 -2
- package/lib/commands/clients/create.d.ts +2 -2
- package/lib/commands/clients/destroy.d.ts +1 -1
- package/lib/commands/clients/info.d.ts +1 -1
- package/lib/commands/clients/rotate.d.ts +1 -1
- package/lib/commands/clients/update.d.ts +3 -3
- package/lib/commands/config/edit.d.ts +3 -3
- package/lib/commands/config/get.d.ts +3 -3
- package/lib/commands/config/index.d.ts +2 -2
- package/lib/commands/config/set.d.ts +12 -0
- package/lib/commands/config/set.js +60 -0
- package/lib/commands/config/unset.d.ts +2 -2
- package/lib/commands/console.d.ts +4 -4
- package/lib/commands/container/index.d.ts +6 -0
- package/lib/commands/container/index.js +13 -0
- package/lib/commands/container/login.d.ts +9 -0
- package/lib/commands/container/login.js +57 -0
- package/lib/commands/container/logout.d.ts +9 -0
- package/lib/commands/container/logout.js +37 -0
- package/lib/commands/container/pull.d.ts +14 -0
- package/lib/commands/container/pull.js +43 -0
- package/lib/commands/container/push.d.ts +16 -0
- package/lib/commands/container/push.js +103 -0
- package/lib/commands/container/release.d.ts +14 -0
- package/lib/commands/container/release.js +91 -0
- package/lib/commands/container/rm.d.ts +13 -0
- package/lib/commands/container/rm.js +39 -0
- package/lib/commands/container/run.d.ts +15 -0
- package/lib/commands/container/run.js +66 -0
- package/lib/commands/dashboard.d.ts +7 -0
- package/lib/commands/dashboard.js +164 -0
- package/lib/commands/domains/add.d.ts +4 -4
- package/lib/commands/domains/clear.d.ts +2 -2
- package/lib/commands/domains/index.d.ts +10 -10
- package/lib/commands/domains/info.d.ts +3 -3
- package/lib/commands/domains/remove.d.ts +3 -3
- package/lib/commands/domains/update.d.ts +4 -4
- package/lib/commands/domains/wait.d.ts +3 -3
- package/lib/commands/drains/add.d.ts +12 -0
- package/lib/commands/drains/add.js +23 -0
- package/lib/commands/drains/index.d.ts +11 -0
- package/lib/commands/drains/index.js +50 -0
- package/lib/commands/drains/remove.d.ts +13 -0
- package/lib/commands/drains/remove.js +22 -0
- package/lib/commands/features/disable.d.ts +12 -0
- package/lib/commands/features/disable.js +30 -0
- package/lib/commands/features/enable.d.ts +12 -0
- package/lib/commands/features/enable.js +29 -0
- package/lib/commands/features/index.d.ts +10 -0
- package/lib/commands/features/index.js +37 -0
- package/lib/commands/features/info.d.ts +13 -0
- package/lib/commands/features/info.js +33 -0
- package/lib/commands/git/clone.d.ts +3 -3
- package/lib/commands/git/credentials.d.ts +1 -1
- package/lib/commands/git/remote.d.ts +2 -2
- package/lib/commands/keys/add.d.ts +14 -0
- package/lib/commands/keys/add.js +101 -0
- package/lib/commands/keys/clear.d.ts +5 -0
- package/lib/commands/keys/clear.js +17 -0
- package/lib/commands/keys/index.d.ts +9 -0
- package/lib/commands/keys/index.js +36 -0
- package/lib/commands/keys/remove.d.ts +9 -0
- package/lib/commands/keys/remove.js +29 -0
- package/lib/commands/labs/enable.d.ts +13 -0
- package/lib/commands/labs/enable.js +47 -0
- package/lib/commands/labs/index.d.ts +11 -0
- package/lib/commands/labs/index.js +71 -0
- package/lib/commands/labs/info.d.ts +14 -0
- package/lib/commands/labs/info.js +49 -0
- package/lib/commands/local/index.d.ts +5 -5
- package/lib/commands/local/index.js +8 -3
- package/lib/commands/local/run.d.ts +2 -2
- package/lib/commands/local/run.js +8 -3
- package/lib/commands/logs.d.ts +6 -6
- package/lib/commands/maintenance/index.d.ts +10 -0
- package/lib/commands/maintenance/index.js +19 -0
- package/lib/commands/maintenance/off.d.ts +10 -0
- package/lib/commands/maintenance/off.js +20 -0
- package/lib/commands/maintenance/on.d.ts +10 -0
- package/lib/commands/maintenance/on.js +20 -0
- package/lib/commands/members/add.d.ts +13 -0
- package/lib/commands/members/add.js +33 -0
- package/lib/commands/members/index.d.ts +12 -0
- package/lib/commands/members/index.js +76 -0
- package/lib/commands/members/remove.d.ts +10 -0
- package/lib/commands/members/remove.js +58 -0
- package/lib/commands/members/set.d.ts +11 -0
- package/lib/commands/members/set.js +21 -0
- package/lib/commands/notifications/index.d.ts +13 -0
- package/lib/commands/notifications/index.js +62 -0
- package/lib/commands/orgs/index.d.ts +11 -0
- package/lib/commands/orgs/index.js +27 -0
- package/lib/commands/orgs/open.d.ts +10 -0
- package/lib/commands/orgs/open.js +24 -0
- package/lib/commands/pg/backups/cancel.d.ts +15 -0
- package/lib/commands/pg/backups/cancel.js +49 -0
- package/lib/commands/pg/backups/capture.d.ts +15 -0
- package/lib/commands/pg/backups/capture.js +65 -0
- package/lib/commands/pg/backups/delete.d.ts +15 -0
- package/lib/commands/pg/backups/delete.js +38 -0
- package/lib/commands/pg/backups/download.d.ts +14 -0
- package/lib/commands/pg/backups/download.js +58 -0
- package/lib/commands/pg/backups/index.d.ts +20 -0
- package/lib/commands/pg/backups/index.js +129 -0
- package/lib/commands/pg/backups/info.d.ts +17 -0
- package/lib/commands/pg/backups/info.js +92 -0
- package/lib/commands/pg/backups/restore.d.ts +19 -0
- package/lib/commands/pg/backups/restore.js +107 -0
- package/lib/commands/pg/backups/schedule.d.ts +21 -0
- package/lib/commands/pg/backups/schedule.js +82 -0
- package/lib/commands/pg/backups/schedules.d.ts +10 -0
- package/lib/commands/pg/backups/schedules.js +31 -0
- package/lib/commands/pg/backups/unschedule.d.ts +13 -0
- package/lib/commands/pg/backups/unschedule.js +44 -0
- package/lib/commands/pg/backups/url.d.ts +13 -0
- package/lib/commands/pg/backups/url.js +41 -0
- package/lib/commands/pg/bloat.d.ts +13 -0
- package/lib/commands/pg/bloat.js +87 -0
- package/lib/commands/pg/blocking.d.ts +13 -0
- package/lib/commands/pg/blocking.js +42 -0
- package/lib/commands/pg/connection-pooling/attach.d.ts +15 -0
- package/lib/commands/pg/connection-pooling/attach.js +41 -0
- package/lib/commands/pg/copy.d.ts +18 -0
- package/lib/commands/pg/copy.js +86 -0
- package/lib/commands/pg/credentials/create.d.ts +14 -0
- package/lib/commands/pg/credentials/create.js +40 -0
- package/lib/commands/pg/credentials/destroy.d.ts +16 -0
- package/lib/commands/pg/credentials/destroy.js +48 -0
- package/lib/commands/pg/credentials/repair-default.d.ts +15 -0
- package/lib/commands/pg/credentials/repair-default.js +39 -0
- package/lib/commands/pg/credentials/rotate.d.ts +16 -0
- package/lib/commands/pg/credentials/rotate.js +82 -0
- package/lib/commands/pg/credentials/url.d.ts +14 -0
- package/lib/commands/pg/credentials/url.js +64 -0
- package/lib/commands/pg/credentials.d.ts +16 -0
- package/lib/commands/pg/credentials.js +61 -0
- package/lib/commands/pg/diagnose.d.ts +18 -0
- package/lib/commands/pg/diagnose.js +109 -0
- package/lib/commands/pg/info.d.ts +14 -0
- package/lib/commands/pg/info.js +92 -0
- package/lib/commands/pg/kill.d.ts +15 -0
- package/lib/commands/pg/kill.js +32 -0
- package/lib/commands/pg/killall.d.ts +13 -0
- package/lib/commands/pg/killall.js +26 -0
- package/lib/commands/pg/links/create.d.ts +15 -0
- package/lib/commands/pg/links/create.js +58 -0
- package/lib/commands/pg/links/destroy.d.ts +16 -0
- package/lib/commands/pg/links/destroy.js +42 -0
- package/lib/commands/pg/links/index.d.ts +13 -0
- package/lib/commands/pg/links/index.js +59 -0
- package/lib/commands/pg/locks.d.ts +15 -0
- package/lib/commands/pg/locks.js +53 -0
- package/lib/commands/pg/maintenance/index.d.ts +13 -0
- package/lib/commands/pg/maintenance/index.js +29 -0
- package/lib/commands/pg/maintenance/run.d.ts +14 -0
- package/lib/commands/pg/maintenance/run.js +37 -0
- package/lib/commands/pg/maintenance/window.d.ts +15 -0
- package/lib/commands/pg/maintenance/window.js +41 -0
- package/lib/commands/pg/outliers.d.ts +19 -0
- package/lib/commands/pg/outliers.js +97 -0
- package/lib/commands/pg/promote.d.ts +14 -0
- package/lib/commands/pg/promote.js +169 -0
- package/lib/commands/pg/ps.d.ts +14 -0
- package/lib/commands/pg/ps.js +52 -0
- package/lib/commands/pg/psql.d.ts +16 -0
- package/lib/commands/pg/psql.js +49 -0
- package/lib/commands/pg/pull.d.ts +18 -0
- package/lib/commands/pg/pull.js +87 -0
- package/lib/commands/pg/push.d.ts +18 -0
- package/lib/commands/pg/push.js +84 -0
- package/lib/commands/pg/reset.d.ts +15 -0
- package/lib/commands/pg/reset.js +44 -0
- package/lib/commands/pg/settings/auto-explain/log-analyze.d.ts +13 -0
- package/lib/commands/pg/settings/auto-explain/log-analyze.js +32 -0
- package/lib/commands/pg/settings/auto-explain/log-buffers.d.ts +13 -0
- package/lib/commands/pg/settings/auto-explain/log-buffers.js +30 -0
- package/lib/commands/pg/settings/auto-explain/log-min-duration.d.ts +16 -0
- package/lib/commands/pg/settings/auto-explain/log-min-duration.js +33 -0
- package/lib/commands/pg/settings/auto-explain/log-nested-statements.d.ts +12 -0
- package/lib/commands/pg/settings/auto-explain/log-nested-statements.js +25 -0
- package/lib/commands/pg/settings/auto-explain/log-triggers.d.ts +13 -0
- package/lib/commands/pg/settings/auto-explain/log-triggers.js +30 -0
- package/lib/commands/pg/settings/auto-explain/log-verbose.d.ts +17 -0
- package/lib/commands/pg/settings/auto-explain/log-verbose.js +33 -0
- package/lib/commands/pg/settings/auto-explain.d.ts +18 -0
- package/lib/commands/pg/settings/auto-explain.js +38 -0
- package/lib/commands/pg/settings/index.d.ts +13 -0
- package/lib/commands/pg/settings/index.js +34 -0
- package/lib/commands/pg/settings/log-connections.d.ts +17 -0
- package/lib/commands/pg/settings/log-connections.js +34 -0
- package/lib/commands/pg/settings/log-lock-waits.d.ts +13 -0
- package/lib/commands/pg/settings/log-lock-waits.js +31 -0
- package/lib/commands/pg/settings/log-min-duration-statement.d.ts +15 -0
- package/lib/commands/pg/settings/log-min-duration-statement.js +33 -0
- package/lib/commands/pg/settings/log-statement.d.ts +12 -0
- package/lib/commands/pg/settings/log-statement.js +30 -0
- package/lib/commands/pg/settings/track-functions.d.ts +12 -0
- package/lib/commands/pg/settings/track-functions.js +29 -0
- package/lib/commands/pg/unfollow.d.ts +14 -0
- package/lib/commands/pg/unfollow.js +40 -0
- package/lib/commands/pg/upgrade.d.ts +15 -0
- package/lib/commands/pg/upgrade.js +58 -0
- package/lib/commands/pg/vacuum-stats.d.ts +13 -0
- package/lib/commands/pg/vacuum-stats.js +65 -0
- package/lib/commands/pg/wait.d.ts +15 -0
- package/lib/commands/pg/wait.js +79 -0
- package/lib/commands/pipelines/add.d.ts +4 -4
- package/lib/commands/pipelines/connect.d.ts +2 -2
- package/lib/commands/pipelines/connect.js +1 -1
- package/lib/commands/pipelines/create.d.ts +5 -5
- package/lib/commands/pipelines/destroy.d.ts +1 -1
- package/lib/commands/pipelines/diff.d.ts +2 -2
- package/lib/commands/pipelines/diff.js +1 -1
- package/lib/commands/pipelines/info.d.ts +1 -1
- package/lib/commands/pipelines/open.d.ts +1 -1
- package/lib/commands/pipelines/promote.d.ts +3 -3
- package/lib/commands/pipelines/remove.d.ts +2 -2
- package/lib/commands/pipelines/rename.d.ts +2 -2
- package/lib/commands/pipelines/setup.d.ts +3 -3
- package/lib/commands/pipelines/transfer.d.ts +3 -3
- package/lib/commands/pipelines/update.d.ts +3 -3
- package/lib/commands/ps/autoscale/disable.d.ts +2 -2
- package/lib/commands/ps/autoscale/enable.d.ts +5 -5
- package/lib/commands/ps/index.d.ts +15 -0
- package/lib/commands/ps/index.js +195 -0
- package/lib/commands/ps/restart.d.ts +17 -0
- package/lib/commands/ps/restart.js +38 -0
- package/lib/commands/ps/scale.d.ts +13 -0
- package/lib/commands/ps/scale.js +108 -0
- package/lib/commands/ps/stop.d.ts +17 -0
- package/lib/commands/ps/stop.js +33 -0
- package/lib/commands/ps/type.d.ts +12 -0
- package/lib/commands/ps/type.js +163 -0
- package/lib/commands/ps/wait.d.ts +4 -4
- package/lib/commands/rake.d.ts +4 -4
- package/lib/commands/redis/cli.d.ts +15 -0
- package/lib/commands/redis/cli.js +204 -0
- package/lib/commands/redis/credentials.d.ts +14 -0
- package/lib/commands/redis/credentials.js +32 -0
- package/lib/commands/redis/info.d.ts +15 -0
- package/lib/commands/redis/info.js +25 -0
- package/lib/commands/redis/keyspace-notifications.d.ts +14 -0
- package/lib/commands/redis/keyspace-notifications.js +47 -0
- package/lib/commands/redis/maintenance.d.ts +16 -0
- package/lib/commands/redis/maintenance.js +63 -0
- package/lib/commands/redis/maxmemory.d.ts +14 -0
- package/lib/commands/redis/maxmemory.js +40 -0
- package/lib/commands/redis/promote.d.ts +13 -0
- package/lib/commands/redis/promote.js +39 -0
- package/lib/commands/redis/stats-reset.d.ts +14 -0
- package/lib/commands/redis/stats-reset.js +36 -0
- package/lib/commands/redis/timeout.d.ts +14 -0
- package/lib/commands/redis/timeout.js +35 -0
- package/lib/commands/redis/upgrade.d.ts +15 -0
- package/lib/commands/redis/upgrade.js +37 -0
- package/lib/commands/redis/wait.d.ts +14 -0
- package/lib/commands/redis/wait.js +60 -0
- package/lib/commands/releases/index.d.ts +14 -0
- package/lib/commands/releases/index.js +124 -0
- package/lib/commands/releases/info.d.ts +15 -0
- package/lib/commands/releases/info.js +56 -0
- package/lib/commands/releases/output.d.ts +13 -0
- package/lib/commands/releases/output.js +37 -0
- package/lib/commands/releases/rollback.d.ts +14 -0
- package/lib/commands/releases/rollback.js +48 -0
- package/lib/commands/reviewapps/disable.d.ts +3 -3
- package/lib/commands/reviewapps/enable.d.ts +3 -3
- package/lib/commands/run/detached.d.ts +7 -8
- package/lib/commands/run/detached.js +16 -20
- package/lib/commands/run/index.d.ts +10 -11
- package/lib/commands/run/index.js +16 -17
- package/lib/commands/run/inside.d.ts +5 -7
- package/lib/commands/run/inside.js +10 -14
- package/lib/commands/sessions/destroy.d.ts +1 -1
- package/lib/commands/spaces/create.d.ts +22 -0
- package/lib/commands/spaces/create.js +73 -0
- package/lib/commands/spaces/destroy.d.ts +14 -0
- package/lib/commands/spaces/destroy.js +49 -0
- package/lib/commands/spaces/drains/get.d.ts +12 -0
- package/lib/commands/spaces/drains/get.js +27 -0
- package/lib/commands/spaces/drains/set.d.ts +14 -0
- package/lib/commands/spaces/drains/set.js +29 -0
- package/lib/commands/spaces/hosts.d.ts +14 -0
- package/lib/commands/spaces/hosts.js +37 -0
- package/lib/commands/spaces/index.d.ts +16 -0
- package/lib/commands/spaces/index.js +55 -0
- package/lib/commands/spaces/info.d.ts +14 -0
- package/lib/commands/spaces/info.js +47 -0
- package/lib/commands/spaces/peerings/accept.d.ts +15 -0
- package/lib/commands/spaces/peerings/accept.js +36 -0
- package/lib/commands/spaces/peerings/destroy.d.ts +15 -0
- package/lib/commands/spaces/peerings/destroy.js +45 -0
- package/lib/commands/spaces/peerings/index.d.ts +13 -0
- package/lib/commands/spaces/peerings/index.js +33 -0
- package/lib/commands/spaces/peerings/info.d.ts +15 -0
- package/lib/commands/spaces/peerings/info.js +59 -0
- package/lib/commands/spaces/ps.d.ts +15 -0
- package/lib/commands/spaces/ps.js +82 -0
- package/lib/commands/spaces/rename.d.ts +11 -0
- package/lib/commands/spaces/rename.js +26 -0
- package/lib/commands/spaces/topology.d.ts +32 -0
- package/lib/commands/spaces/topology.js +89 -0
- package/lib/commands/spaces/transfer.d.ts +11 -0
- package/lib/commands/spaces/transfer.js +35 -0
- package/lib/commands/spaces/trusted-ips/add.d.ts +16 -0
- package/lib/commands/spaces/trusted-ips/add.js +43 -0
- package/lib/commands/spaces/trusted-ips/index.d.ts +15 -0
- package/lib/commands/spaces/trusted-ips/index.js +52 -0
- package/lib/commands/spaces/trusted-ips/remove.d.ts +15 -0
- package/lib/commands/spaces/trusted-ips/remove.js +44 -0
- package/lib/commands/spaces/vpn/config.d.ts +14 -0
- package/lib/commands/spaces/vpn/config.js +54 -0
- package/lib/commands/spaces/vpn/connect.d.ts +15 -0
- package/lib/commands/spaces/vpn/connect.js +48 -0
- package/lib/commands/spaces/vpn/connections.d.ts +17 -0
- package/lib/commands/spaces/vpn/connections.js +57 -0
- package/lib/commands/spaces/vpn/destroy.d.ts +14 -0
- package/lib/commands/spaces/vpn/destroy.js +38 -0
- package/lib/commands/spaces/vpn/info.d.ts +16 -0
- package/lib/commands/spaces/vpn/info.js +82 -0
- package/lib/commands/spaces/vpn/update.d.ts +14 -0
- package/lib/commands/spaces/vpn/update.js +39 -0
- package/lib/commands/spaces/vpn/wait.d.ts +16 -0
- package/lib/commands/spaces/vpn/wait.js +70 -0
- package/lib/commands/spaces/wait.d.ts +17 -0
- package/lib/commands/spaces/wait.js +89 -0
- package/lib/commands/status.js +4 -4
- package/lib/commands/teams/index.d.ts +9 -0
- package/lib/commands/teams/index.js +29 -0
- package/lib/commands/webhooks/add.d.ts +8 -8
- package/lib/commands/webhooks/deliveries/index.d.ts +4 -4
- package/lib/commands/webhooks/deliveries/info.d.ts +4 -4
- package/lib/commands/webhooks/events/index.d.ts +3 -3
- package/lib/commands/webhooks/events/info.d.ts +4 -4
- package/lib/commands/webhooks/index.d.ts +3 -3
- package/lib/commands/webhooks/info.d.ts +4 -4
- package/lib/commands/webhooks/remove.d.ts +4 -4
- package/lib/commands/webhooks/update.d.ts +9 -9
- package/lib/global_telemetry.js +10 -4
- package/lib/hooks/postrun/performance_analytics.js +5 -4
- package/lib/hooks/prerun/analytics.js +3 -0
- package/lib/lib/addons/addons_wait.d.ts +78 -0
- package/lib/lib/addons/addons_wait.js +56 -0
- package/lib/lib/addons/create_addon.d.ts +7 -0
- package/lib/lib/addons/create_addon.js +59 -0
- package/lib/lib/addons/destroy_addon.d.ts +3 -0
- package/lib/lib/addons/destroy_addon.js +48 -0
- package/lib/lib/addons/resolve.d.ts +39 -0
- package/lib/lib/addons/resolve.js +180 -0
- package/lib/lib/addons/util.d.ts +9 -0
- package/lib/lib/addons/util.js +72 -0
- package/lib/lib/apps/app-transfer.d.ts +10 -0
- package/lib/lib/apps/app-transfer.js +35 -0
- package/lib/lib/apps/error_info.d.ts +7 -0
- package/lib/lib/apps/error_info.js +185 -0
- package/lib/lib/autocomplete/base.d.ts +1 -1
- package/lib/lib/autocomplete/completions.d.ts +5 -1
- package/lib/lib/autocomplete/completions.js +6 -1
- package/lib/lib/certs/certificate_details.d.ts +2 -0
- package/lib/lib/certs/certificate_details.js +37 -0
- package/lib/lib/certs/display_table.d.ts +2 -0
- package/lib/lib/certs/display_table.js +51 -0
- package/lib/lib/certs/domains.d.ts +3 -0
- package/lib/lib/certs/domains.js +45 -0
- package/lib/lib/certs/flags.d.ts +7 -0
- package/lib/lib/certs/flags.js +42 -0
- package/lib/lib/certs/format_date.d.ts +1 -0
- package/lib/lib/certs/format_date.js +11 -0
- package/lib/lib/certs/get_cert_and_key.d.ts +9 -0
- package/lib/lib/certs/get_cert_and_key.js +11 -0
- package/lib/lib/ci/git.d.ts +7 -1
- package/lib/lib/ci/git.js +44 -1
- package/lib/lib/ci/interfaces/kolkrabbi.d.ts +1 -1
- package/lib/lib/ci/source.js +3 -3
- package/lib/lib/ci/test-run.js +2 -2
- package/lib/lib/config/quote.js +1 -1
- package/lib/lib/confirmCommand.d.ts +1 -0
- package/lib/lib/confirmCommand.js +23 -0
- package/lib/lib/container/debug.d.ts +2 -0
- package/lib/lib/container/debug.js +5 -0
- package/lib/lib/container/docker_helper.d.ts +24 -0
- package/lib/lib/container/docker_helper.js +168 -0
- package/lib/lib/container/helpers.d.ts +8 -0
- package/lib/lib/container/helpers.js +26 -0
- package/lib/lib/container/streamer.d.ts +1 -0
- package/lib/lib/container/streamer.js +31 -0
- package/lib/lib/domains/domains.d.ts +6 -0
- package/lib/lib/domains/domains.js +104 -0
- package/lib/lib/git/git.d.ts +3 -0
- package/lib/lib/git/git.js +22 -3
- package/lib/lib/local/run-foreman.d.ts +1 -0
- package/lib/lib/local/run-foreman.js +229 -1
- package/lib/lib/members/util.d.ts +3 -0
- package/lib/lib/members/util.js +25 -0
- package/lib/lib/members/utils.d.ts +2 -0
- package/lib/lib/members/utils.js +14 -0
- package/lib/lib/notify.d.ts +1 -0
- package/lib/lib/notify.js +23 -0
- package/lib/lib/orgs/utils.d.ts +5 -0
- package/lib/lib/orgs/utils.js +24 -0
- package/lib/lib/pg/backups.d.ts +17 -0
- package/lib/lib/pg/backups.js +164 -0
- package/lib/lib/pg/bastion.d.ts +29 -0
- package/lib/lib/pg/bastion.js +121 -0
- package/lib/lib/pg/config.d.ts +2 -0
- package/lib/lib/pg/config.js +13 -0
- package/lib/lib/pg/download.d.ts +5 -0
- package/lib/lib/pg/download.js +34 -0
- package/lib/lib/pg/fetcher.d.ts +39 -0
- package/lib/lib/pg/fetcher.js +138 -0
- package/lib/lib/pg/host.d.ts +1 -0
- package/lib/lib/pg/host.js +7 -0
- package/lib/lib/pg/psql.d.ts +48 -0
- package/lib/lib/pg/psql.js +252 -0
- package/lib/lib/pg/push_pull.d.ts +13 -0
- package/lib/lib/pg/push_pull.js +118 -0
- package/lib/lib/pg/setter.d.ts +16 -0
- package/lib/lib/pg/setter.js +65 -0
- package/lib/lib/pg/types.d.ts +230 -0
- package/lib/lib/pg/types.js +2 -0
- package/lib/lib/pg/util.d.ts +36 -0
- package/lib/lib/pg/util.js +183 -0
- package/lib/lib/redis/api.d.ts +65 -0
- package/lib/lib/redis/api.js +122 -0
- package/lib/lib/releases/output.d.ts +1 -0
- package/lib/lib/releases/output.js +14 -0
- package/lib/lib/releases/releases.d.ts +6 -0
- package/lib/lib/releases/releases.js +32 -0
- package/lib/lib/releases/status_helper.d.ts +5 -0
- package/lib/lib/releases/status_helper.js +25 -0
- package/lib/lib/run/dyno.js +2 -2
- package/lib/lib/run/log-displayer.d.ts +1 -1
- package/lib/lib/spaces/format.d.ts +4 -0
- package/lib/lib/spaces/format.js +60 -0
- package/lib/lib/spaces/hosts.d.ts +9 -0
- package/lib/lib/spaces/hosts.js +34 -0
- package/lib/lib/spaces/outbound-rules.d.ts +4 -0
- package/lib/lib/spaces/outbound-rules.js +78 -0
- package/lib/lib/spaces/parsers.d.ts +8 -0
- package/lib/lib/spaces/parsers.js +17 -0
- package/lib/lib/spaces/peering.d.ts +4 -0
- package/lib/lib/spaces/peering.js +53 -0
- package/lib/lib/spaces/spaces.d.ts +4 -0
- package/lib/lib/spaces/spaces.js +37 -0
- package/lib/lib/spaces/vpn-connections.d.ts +2 -0
- package/lib/lib/spaces/vpn-connections.js +22 -0
- package/lib/lib/teamUtils.d.ts +3 -0
- package/lib/lib/teamUtils.js +18 -0
- package/lib/lib/time.d.ts +2 -0
- package/lib/lib/time.js +29 -0
- package/lib/lib/types/app_errors.d.ts +6 -0
- package/lib/lib/types/app_errors.js +2 -0
- package/lib/lib/types/domain.d.ts +61 -0
- package/lib/lib/types/domain.js +5 -0
- package/lib/lib/types/notifications.d.ts +20 -0
- package/lib/lib/types/notifications.js +2 -0
- package/lib/lib/utils/multisort.d.ts +32 -0
- package/lib/lib/utils/multisort.js +66 -0
- package/lib/lib/utils/uuid-validate.d.ts +1 -0
- package/lib/lib/utils/uuid-validate.js +7 -0
- package/lib/user-config.js +2 -2
- package/oclif.manifest.json +12686 -2676
- package/package.json +115 -65
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.waitForDomains = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
function customDomainCreationComplete(app, heroku) {
|
|
7
|
+
return tslib_1.__asyncGenerator(this, arguments, function* customDomainCreationComplete_1() {
|
|
8
|
+
let retries = 30;
|
|
9
|
+
while (retries--) {
|
|
10
|
+
const { body: apiDomains } = yield tslib_1.__await(heroku.get(`/apps/${app}/domains`));
|
|
11
|
+
const someNull = apiDomains.some((domain) => domain.kind === 'custom' && !domain.cname);
|
|
12
|
+
if (!someNull) {
|
|
13
|
+
yield yield tslib_1.__await(apiDomains);
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
yield tslib_1.__await(new Promise(resolve => {
|
|
17
|
+
setTimeout(resolve, 1000);
|
|
18
|
+
}));
|
|
19
|
+
yield yield tslib_1.__await(null);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
async function waitForDomains(app, heroku) {
|
|
24
|
+
var e_1, _a;
|
|
25
|
+
core_1.ux.action.start('Waiting for stable domains to be created');
|
|
26
|
+
try {
|
|
27
|
+
for (var _b = tslib_1.__asyncValues(customDomainCreationComplete(app, heroku)), _c; _c = await _b.next(), !_c.done;) {
|
|
28
|
+
const apiDomains = _c.value;
|
|
29
|
+
if (apiDomains) {
|
|
30
|
+
core_1.ux.action.stop();
|
|
31
|
+
return apiDomains;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
36
|
+
finally {
|
|
37
|
+
try {
|
|
38
|
+
if (_c && !_c.done && (_a = _b.return)) await _a.call(_b);
|
|
39
|
+
}
|
|
40
|
+
finally { if (e_1) throw e_1.error; }
|
|
41
|
+
}
|
|
42
|
+
core_1.ux.action.stop('!');
|
|
43
|
+
throw new Error('Timed out while waiting for stable domains to be created');
|
|
44
|
+
}
|
|
45
|
+
exports.waitForDomains = waitForDomains;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
async function default_1(flags, heroku) {
|
|
4
|
+
if (flags.endpoint && flags.name) {
|
|
5
|
+
throw new Error('Specified both --name and --endpoint, please use just one');
|
|
6
|
+
}
|
|
7
|
+
let { body: sniEndpoints } = await heroku.get(`/apps/${flags.app}/sni-endpoints`);
|
|
8
|
+
if (sniEndpoints.length === 0) {
|
|
9
|
+
throw new Error(`${flags.app} has no SSL certificates`);
|
|
10
|
+
}
|
|
11
|
+
if (flags.endpoint) {
|
|
12
|
+
const promises = [];
|
|
13
|
+
sniEndpoints.forEach(endpoint => {
|
|
14
|
+
endpoint.domains.forEach(domain => promises.push(heroku.get(`/apps/${flags.app}/domains/${domain}`)));
|
|
15
|
+
});
|
|
16
|
+
const domains = (await Promise.all(promises)).map(({ body: domain }) => domain);
|
|
17
|
+
sniEndpoints = sniEndpoints.filter(endpoint => {
|
|
18
|
+
// This was modified from `endpoint.cname === flags.endpoint` because `cname` doesn't exist anymore in the SniEndpoint serialization.
|
|
19
|
+
// We're making the assumption that the `--endpoint` flag was being used to search by hostname (internationalized domain name).
|
|
20
|
+
return domains.some(domain => { var _a; return domain.hostname === flags.endpoint && ((_a = domain.sni_endpoint) === null || _a === void 0 ? void 0 : _a.name) === endpoint.name; });
|
|
21
|
+
});
|
|
22
|
+
if (sniEndpoints.length > 1) {
|
|
23
|
+
throw new Error('Must pass --name when more than one endpoint matches --endpoint');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (flags.name) {
|
|
27
|
+
sniEndpoints = sniEndpoints.filter(endpoint => {
|
|
28
|
+
return endpoint.name === flags.name;
|
|
29
|
+
});
|
|
30
|
+
if (sniEndpoints.length > 1) {
|
|
31
|
+
throw new Error(`More than one endpoint matches ${flags.name}, please file a support ticket`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (sniEndpoints.length > 1) {
|
|
35
|
+
throw new Error('Must pass --name when more than one endpoint');
|
|
36
|
+
}
|
|
37
|
+
if (sniEndpoints.length === 0) {
|
|
38
|
+
throw new Error('Record not found.');
|
|
39
|
+
}
|
|
40
|
+
return sniEndpoints[0];
|
|
41
|
+
}
|
|
42
|
+
exports.default = default_1;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function (date: string): string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const date_fns_1 = require("date-fns");
|
|
4
|
+
function getUTCDate(dateString = Date.now()) {
|
|
5
|
+
const date = new Date(dateString);
|
|
6
|
+
return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
|
|
7
|
+
}
|
|
8
|
+
function default_1(date) {
|
|
9
|
+
return `${(0, date_fns_1.format)(getUTCDate(date), 'yyyy-MM-dd HH:mm')} UTC`;
|
|
10
|
+
}
|
|
11
|
+
exports.default = default_1;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCertAndKey = void 0;
|
|
4
|
+
const fs = require("node:fs/promises");
|
|
5
|
+
async function getCertAndKey(args) {
|
|
6
|
+
return {
|
|
7
|
+
crt: await fs.readFile(args.CRT, { encoding: 'utf-8' }),
|
|
8
|
+
key: await fs.readFile(args.KEY, { encoding: 'utf-8' }),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
exports.getCertAndKey = getCertAndKey;
|
package/lib/lib/ci/git.d.ts
CHANGED
|
@@ -5,4 +5,10 @@ declare function readCommit(commit: string): Promise<{
|
|
|
5
5
|
ref: string | undefined;
|
|
6
6
|
message: string | undefined;
|
|
7
7
|
}>;
|
|
8
|
-
|
|
8
|
+
declare function sshGitUrl(app: string): string;
|
|
9
|
+
declare function gitUrl(app?: string): string;
|
|
10
|
+
declare function listRemotes(): Promise<string[][]>;
|
|
11
|
+
declare function inGitRepo(): true | undefined;
|
|
12
|
+
declare function rmRemote(remote: string): Promise<string>;
|
|
13
|
+
declare function createRemote(remote: string, url: string): Promise<string | null>;
|
|
14
|
+
export { createArchive, githubRepository, readCommit, sshGitUrl, gitUrl, createRemote, listRemotes, rmRemote, inGitRepo, };
|
package/lib/lib/ci/git.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.readCommit = exports.githubRepository = exports.createArchive = void 0;
|
|
3
|
+
exports.inGitRepo = exports.rmRemote = exports.listRemotes = exports.createRemote = exports.gitUrl = exports.sshGitUrl = exports.readCommit = exports.githubRepository = exports.createArchive = void 0;
|
|
4
4
|
const fs = require("fs-extra");
|
|
5
|
+
const command_1 = require("@heroku-cli/command");
|
|
5
6
|
const gh = require('github-url-to-object');
|
|
6
7
|
const spawn = require('child_process').spawn;
|
|
7
8
|
const tmp = require('tmp');
|
|
@@ -69,3 +70,45 @@ async function readCommit(commit) {
|
|
|
69
70
|
});
|
|
70
71
|
}
|
|
71
72
|
exports.readCommit = readCommit;
|
|
73
|
+
function sshGitUrl(app) {
|
|
74
|
+
return `git@${command_1.vars.gitHost}:${app}.git`;
|
|
75
|
+
}
|
|
76
|
+
exports.sshGitUrl = sshGitUrl;
|
|
77
|
+
function gitUrl(app) {
|
|
78
|
+
return `https://${command_1.vars.httpGitHost}/${app}.git`;
|
|
79
|
+
}
|
|
80
|
+
exports.gitUrl = gitUrl;
|
|
81
|
+
async function listRemotes() {
|
|
82
|
+
return runGit('remote', '-v').then(remotes => remotes.trim().split('\n').map(r => r.split(/\s/)));
|
|
83
|
+
}
|
|
84
|
+
exports.listRemotes = listRemotes;
|
|
85
|
+
function inGitRepo() {
|
|
86
|
+
try {
|
|
87
|
+
fs.lstatSync('.git');
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (error.code !== 'ENOENT')
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.inGitRepo = inGitRepo;
|
|
96
|
+
function rmRemote(remote) {
|
|
97
|
+
return runGit('remote', 'rm', remote);
|
|
98
|
+
}
|
|
99
|
+
exports.rmRemote = rmRemote;
|
|
100
|
+
function hasGitRemote(remote) {
|
|
101
|
+
return runGit('remote')
|
|
102
|
+
.then(remotes => remotes.split('\n'))
|
|
103
|
+
.then(remotes => remotes.find(r => r === remote));
|
|
104
|
+
}
|
|
105
|
+
function createRemote(remote, url) {
|
|
106
|
+
return hasGitRemote(remote)
|
|
107
|
+
.then(exists => {
|
|
108
|
+
if (!exists) {
|
|
109
|
+
return runGit('remote', 'add', remote, url);
|
|
110
|
+
}
|
|
111
|
+
return null;
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
exports.createRemote = createRemote;
|
|
@@ -186,7 +186,7 @@ export interface HerokuPlatformApiOrganization {
|
|
|
186
186
|
[k: string]: any;
|
|
187
187
|
}
|
|
188
188
|
/**
|
|
189
|
-
* Pipeline repositories link a pipeline to a
|
|
189
|
+
* Pipeline repositories link a pipeline to a GitHub repository.
|
|
190
190
|
*/
|
|
191
191
|
export interface KolkrabbiApiPipelineRepositories {
|
|
192
192
|
/**
|
package/lib/lib/ci/source.js
CHANGED
|
@@ -4,11 +4,11 @@ exports.createSourceBlob = void 0;
|
|
|
4
4
|
const fs = require("async-file");
|
|
5
5
|
const core_1 = require("@oclif/core");
|
|
6
6
|
const git = require("./git");
|
|
7
|
-
const
|
|
7
|
+
const got_1 = require("got");
|
|
8
8
|
async function uploadArchive(url, filePath) {
|
|
9
|
-
const request =
|
|
9
|
+
const request = got_1.default.stream.put(url, {
|
|
10
10
|
headers: {
|
|
11
|
-
'content-length': (await fs.stat(filePath)).size,
|
|
11
|
+
'content-length': (await fs.stat(filePath)).size.toString(),
|
|
12
12
|
},
|
|
13
13
|
});
|
|
14
14
|
fs.createReadStream(filePath).pipe(request);
|
package/lib/lib/ci/test-run.js
CHANGED
|
@@ -4,9 +4,9 @@ exports.displayTestRunInfo = exports.displayAndExit = exports.waitForStates = ex
|
|
|
4
4
|
const color_1 = require("@heroku-cli/color");
|
|
5
5
|
const core_1 = require("@oclif/core");
|
|
6
6
|
const https_1 = require("https");
|
|
7
|
+
const node_crypto_1 = require("node:crypto");
|
|
7
8
|
const phoenix_1 = require("phoenix");
|
|
8
9
|
const util_1 = require("util");
|
|
9
|
-
const uuid_1 = require("uuid");
|
|
10
10
|
const WebSocket = require("ws");
|
|
11
11
|
const debug = require('debug')('ci');
|
|
12
12
|
const ansiEscapes = require('ansi-escapes');
|
|
@@ -132,7 +132,7 @@ async function renderList(command, testRuns, pipeline, watchOption, jsonOption)
|
|
|
132
132
|
transport: WebSocket,
|
|
133
133
|
params: {
|
|
134
134
|
token: command.heroku.auth,
|
|
135
|
-
tab_id: `heroku-cli-${(0,
|
|
135
|
+
tab_id: `heroku-cli-${(0, node_crypto_1.randomUUID)()}`,
|
|
136
136
|
},
|
|
137
137
|
logger: (kind, msg, data) => debug(`${kind}: ${msg}\n${(0, util_1.inspect)(data)}`),
|
|
138
138
|
});
|
package/lib/lib/config/quote.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parse = exports.quote = void 0;
|
|
4
4
|
const shell = require('shell-quote');
|
|
5
|
-
// slightly
|
|
5
|
+
// slightly modified form of shell-quote to default to using single-quotes over backslashes
|
|
6
6
|
function quote(s) {
|
|
7
7
|
// eslint-disable-next-line no-useless-escape
|
|
8
8
|
if (/["\s#!$&'()*,:;<=>?@\[\\\]^`{|}]/.test(s)) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function confirmCommand(app: string, confirm?: string, message?: string): Promise<void>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const color_1 = require("@heroku-cli/color");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
async function confirmCommand(app, confirm, message) {
|
|
6
|
+
if (confirm) {
|
|
7
|
+
if (confirm === app)
|
|
8
|
+
return;
|
|
9
|
+
throw new Error(`Confirmation ${color_1.default.bold.red(confirm)} did not match ${color_1.default.bold.red(app)}. Aborted.`);
|
|
10
|
+
}
|
|
11
|
+
if (!message) {
|
|
12
|
+
message = `WARNING: Destructive Action
|
|
13
|
+
This command will affect the app ${color_1.default.bold.red(app)}`;
|
|
14
|
+
}
|
|
15
|
+
core_1.ux.warn(message);
|
|
16
|
+
console.error();
|
|
17
|
+
const entered = await core_1.ux.prompt(`To proceed, type ${color_1.default.bold.red(app)} or re-run this command with ${color_1.default.bold.red('--confirm', app)}`, { required: true });
|
|
18
|
+
if (entered === app) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
throw new Error(`Confirmation did not match ${color_1.default.bold.red(app)}. Aborted.`);
|
|
22
|
+
}
|
|
23
|
+
exports.default = confirmCommand;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare type cmdOptions = {
|
|
2
|
+
output?: boolean;
|
|
3
|
+
input?: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const cmd: (cmd: string, args: string[], options?: cmdOptions) => Promise<string>;
|
|
6
|
+
export declare const version: () => Promise<number[]>;
|
|
7
|
+
export declare const pullImage: (resource: string) => Promise<string>;
|
|
8
|
+
export declare const getDockerfiles: (rootdir: string, recursive: boolean) => string[];
|
|
9
|
+
export declare type dockerJob = {
|
|
10
|
+
name: string;
|
|
11
|
+
resource: string;
|
|
12
|
+
dockerfile: string;
|
|
13
|
+
postfix: number;
|
|
14
|
+
depth: number;
|
|
15
|
+
};
|
|
16
|
+
export declare type groupedDockerJobs = {
|
|
17
|
+
[processType: string]: dockerJob[];
|
|
18
|
+
};
|
|
19
|
+
export declare const getJobs: (resourceRoot: string, dockerfiles: string[]) => groupedDockerJobs;
|
|
20
|
+
export declare const filterByProcessType: (jobs: groupedDockerJobs, processTypes: string[]) => groupedDockerJobs;
|
|
21
|
+
export declare const chooseJobs: (jobs: groupedDockerJobs) => Promise<dockerJob[]>;
|
|
22
|
+
export declare const buildImage: (dockerfile: string, resource: string, buildArgs: string[], path?: string) => Promise<string>;
|
|
23
|
+
export declare const pushImage: (resource: string) => Promise<string>;
|
|
24
|
+
export declare const runImage: (resource: string, command: string, port: number) => Promise<string>;
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runImage = exports.pushImage = exports.buildImage = exports.chooseJobs = exports.filterByProcessType = exports.getJobs = exports.getDockerfiles = exports.pullImage = exports.version = exports.cmd = void 0;
|
|
4
|
+
const Child = require("child_process");
|
|
5
|
+
const debug_1 = require("./debug");
|
|
6
|
+
const glob = require("glob");
|
|
7
|
+
const Path = require("path");
|
|
8
|
+
const inquirer = require("inquirer");
|
|
9
|
+
const os = require("os");
|
|
10
|
+
const DOCKERFILE_REGEX = /\bDockerfile(.\w*)?$/;
|
|
11
|
+
const cmd = async function (cmd, args, options = {}) {
|
|
12
|
+
(0, debug_1.debug)(cmd, args);
|
|
13
|
+
const stdio = [
|
|
14
|
+
options.input ? 'pipe' : process.stdin,
|
|
15
|
+
options.output ? 'pipe' : process.stdout,
|
|
16
|
+
process.stderr,
|
|
17
|
+
];
|
|
18
|
+
return new Promise((resolve, reject) => {
|
|
19
|
+
const child = Child.spawn(cmd, args, { stdio: stdio });
|
|
20
|
+
if (child.stdin) {
|
|
21
|
+
child.stdin.end(options.input);
|
|
22
|
+
}
|
|
23
|
+
let stdout;
|
|
24
|
+
if (child.stdout) {
|
|
25
|
+
stdout = '';
|
|
26
|
+
child.stdout.on('data', data => {
|
|
27
|
+
stdout += data.toString();
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
child.on('error', (err) => {
|
|
31
|
+
if (err.code === 'ENOENT' && err.path === 'docker') {
|
|
32
|
+
reject(new Error(`Cannot find docker, please ensure docker is installed.
|
|
33
|
+
If you need help installing docker, visit https://docs.docker.com/install/#supported-platforms`));
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
reject(err);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
child.on('exit', (code, signal) => {
|
|
40
|
+
if (signal || code) {
|
|
41
|
+
reject(new Error(signal || (code === null || code === void 0 ? void 0 : code.toString())));
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
resolve(stdout);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
exports.cmd = cmd;
|
|
50
|
+
const version = async function () {
|
|
51
|
+
const version = await (0, exports.cmd)('docker', ['version', '-f', '{{.Client.Version}}'], { output: true });
|
|
52
|
+
const [major, minor] = version.split(/\./);
|
|
53
|
+
return [Number.parseInt(major, 10) || 0, Number.parseInt(minor, 10) || 0]; // ensure exactly 2 components
|
|
54
|
+
};
|
|
55
|
+
exports.version = version;
|
|
56
|
+
const pullImage = function (resource) {
|
|
57
|
+
const args = ['pull', resource];
|
|
58
|
+
return (0, exports.cmd)('docker', args);
|
|
59
|
+
};
|
|
60
|
+
exports.pullImage = pullImage;
|
|
61
|
+
const getDockerfiles = function (rootdir, recursive) {
|
|
62
|
+
const match = recursive ? './**/Dockerfile?(.)*' : 'Dockerfile*';
|
|
63
|
+
let dockerfiles = glob.sync(match, {
|
|
64
|
+
cwd: rootdir,
|
|
65
|
+
nodir: true,
|
|
66
|
+
});
|
|
67
|
+
if (recursive) {
|
|
68
|
+
dockerfiles = dockerfiles.filter(df => df.match(/Dockerfile\.[\w]+$/));
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
dockerfiles = dockerfiles.filter(df => df.match(/Dockerfile$/));
|
|
72
|
+
}
|
|
73
|
+
return dockerfiles.map(file => Path.join(rootdir, file));
|
|
74
|
+
};
|
|
75
|
+
exports.getDockerfiles = getDockerfiles;
|
|
76
|
+
const getJobs = function (resourceRoot, dockerfiles) {
|
|
77
|
+
const jobs = [];
|
|
78
|
+
dockerfiles.forEach(dockerfile => {
|
|
79
|
+
const match = dockerfile.match(DOCKERFILE_REGEX);
|
|
80
|
+
if (match) {
|
|
81
|
+
const proc = (match[1] || '.standard').slice(1);
|
|
82
|
+
jobs.push({
|
|
83
|
+
name: proc,
|
|
84
|
+
resource: `${resourceRoot}/${proc}`,
|
|
85
|
+
dockerfile: dockerfile,
|
|
86
|
+
postfix: Path.basename(dockerfile) === 'Dockerfile' ? 0 : 1,
|
|
87
|
+
depth: Path.normalize(dockerfile).split(Path.sep).length,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
// prefer closer Dockerfiles, then prefer Dockerfile over Dockerfile.web
|
|
92
|
+
jobs.sort((a, b) => {
|
|
93
|
+
return a.depth - b.depth || a.postfix - b.postfix;
|
|
94
|
+
});
|
|
95
|
+
// group all Dockerfiles for the same process type together
|
|
96
|
+
const groupedJobs = {};
|
|
97
|
+
jobs.forEach(job => {
|
|
98
|
+
groupedJobs[job.name] = groupedJobs[job.name] || [];
|
|
99
|
+
groupedJobs[job.name].push(job);
|
|
100
|
+
});
|
|
101
|
+
return groupedJobs;
|
|
102
|
+
};
|
|
103
|
+
exports.getJobs = getJobs;
|
|
104
|
+
const filterByProcessType = function (jobs, processTypes) {
|
|
105
|
+
const filteredJobs = {};
|
|
106
|
+
processTypes.forEach(processType => {
|
|
107
|
+
filteredJobs[processType] = jobs[processType];
|
|
108
|
+
});
|
|
109
|
+
return filteredJobs;
|
|
110
|
+
};
|
|
111
|
+
exports.filterByProcessType = filterByProcessType;
|
|
112
|
+
const chooseJobs = async function (jobs) {
|
|
113
|
+
const chosenJobs = [];
|
|
114
|
+
for (const processType in jobs) {
|
|
115
|
+
if (Object.prototype.hasOwnProperty.call(jobs, processType)) {
|
|
116
|
+
const group = jobs[processType];
|
|
117
|
+
if (group.length > 1) {
|
|
118
|
+
const prompt = [{
|
|
119
|
+
type: 'list',
|
|
120
|
+
name: processType,
|
|
121
|
+
choices: group.map(j => j.dockerfile),
|
|
122
|
+
message: `Found multiple Dockerfiles with process type ${processType}. Please choose one to build and push `,
|
|
123
|
+
}];
|
|
124
|
+
const answer = await inquirer.prompt(prompt);
|
|
125
|
+
const found = group.find(o => o.dockerfile === answer[processType]);
|
|
126
|
+
if (found) {
|
|
127
|
+
chosenJobs.push(found);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
chosenJobs.push(group[0]);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return chosenJobs;
|
|
136
|
+
};
|
|
137
|
+
exports.chooseJobs = chooseJobs;
|
|
138
|
+
const buildImage = async function (dockerfile, resource, buildArgs, path) {
|
|
139
|
+
const cwd = path || Path.dirname(dockerfile);
|
|
140
|
+
const args = ['build', '-f', dockerfile, '-t', resource, '--platform', 'linux/amd64'];
|
|
141
|
+
for (const element of buildArgs) {
|
|
142
|
+
if (element.length > 0) {
|
|
143
|
+
args.push('--build-arg', element);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
args.push(cwd);
|
|
147
|
+
return (0, exports.cmd)('docker', args);
|
|
148
|
+
};
|
|
149
|
+
exports.buildImage = buildImage;
|
|
150
|
+
const pushImage = async function (resource) {
|
|
151
|
+
const args = ['push', resource];
|
|
152
|
+
return (0, exports.cmd)('docker', args);
|
|
153
|
+
};
|
|
154
|
+
exports.pushImage = pushImage;
|
|
155
|
+
const runImage = function (resource, command, port) {
|
|
156
|
+
const args = [
|
|
157
|
+
'run',
|
|
158
|
+
'--user',
|
|
159
|
+
os.userInfo().uid.toString(),
|
|
160
|
+
'-e',
|
|
161
|
+
`PORT=${port}`,
|
|
162
|
+
'-it',
|
|
163
|
+
resource,
|
|
164
|
+
command,
|
|
165
|
+
];
|
|
166
|
+
return (0, exports.cmd)('docker', args);
|
|
167
|
+
};
|
|
168
|
+
exports.runImage = runImage;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as Heroku from '@heroku-cli/schema';
|
|
2
|
+
/**
|
|
3
|
+
* Ensure that the given app is a container app.
|
|
4
|
+
* @param app {Heroku.App} heroku app
|
|
5
|
+
* @param cmd {String} command name
|
|
6
|
+
* @returns {null} null
|
|
7
|
+
*/
|
|
8
|
+
export declare function ensureContainerStack(app: Heroku.App, cmd: string): void;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ensureContainerStack = void 0;
|
|
4
|
+
const color_1 = require("@heroku-cli/color");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const stackLabelMap = {
|
|
7
|
+
cnb: 'Cloud Native Buildpack',
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Ensure that the given app is a container app.
|
|
11
|
+
* @param app {Heroku.App} heroku app
|
|
12
|
+
* @param cmd {String} command name
|
|
13
|
+
* @returns {null} null
|
|
14
|
+
*/
|
|
15
|
+
function ensureContainerStack(app, cmd) {
|
|
16
|
+
var _a, _b, _c;
|
|
17
|
+
if (((_a = app.stack) === null || _a === void 0 ? void 0 : _a.name) !== 'container') {
|
|
18
|
+
const appLabel = (((_b = app.stack) === null || _b === void 0 ? void 0 : _b.name) && stackLabelMap[app.stack.name]) || ((_c = app.stack) === null || _c === void 0 ? void 0 : _c.name);
|
|
19
|
+
let message = 'This command is for Docker apps only.';
|
|
20
|
+
if (['push', 'release'].includes(cmd)) {
|
|
21
|
+
message += ` Run ${color_1.default.cyan('git push heroku main')} to deploy your ${color_1.default.cyan(app.name)} ${color_1.default.cyan(appLabel)} app instead.`;
|
|
22
|
+
}
|
|
23
|
+
core_1.ux.error(message, { exit: 1 });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.ensureContainerStack = ensureContainerStack;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const streamer: (url: string, out: NodeJS.WriteStream) => Promise<unknown>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.streamer = void 0;
|
|
4
|
+
async function call(url, out, retries) {
|
|
5
|
+
const http = require('http-call').HTTP;
|
|
6
|
+
const maxRetries = 30;
|
|
7
|
+
try {
|
|
8
|
+
const { response } = await http.stream(url);
|
|
9
|
+
response.on('data', function (d) {
|
|
10
|
+
out.write(d);
|
|
11
|
+
});
|
|
12
|
+
return await new Promise(function (resolve, reject) {
|
|
13
|
+
response.on('error', reject);
|
|
14
|
+
response.on('end', resolve);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
if (error.statusCode === 404 && retries <= maxRetries) {
|
|
19
|
+
return new Promise(function (resolve, reject) {
|
|
20
|
+
setTimeout(function () {
|
|
21
|
+
call(url, out, retries + 1).then(resolve, reject);
|
|
22
|
+
}, 1000);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const streamer = function (url, out) {
|
|
29
|
+
return call(url, out, 0);
|
|
30
|
+
};
|
|
31
|
+
exports.streamer = streamer;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { APIClient } from '@heroku-cli/command';
|
|
2
|
+
import * as Heroku from '@heroku-cli/schema';
|
|
3
|
+
export declare function getDomains(heroku: APIClient, app: string): Promise<Required<Heroku.Domain>[]>;
|
|
4
|
+
export declare function waitForDomains(heroku: APIClient, app: string): Promise<Required<Heroku.Domain>[]>;
|
|
5
|
+
export declare function printDomains(domains: Required<Heroku.Domain>[], message: string): void;
|
|
6
|
+
export declare function waitForCertIssuedOnDomains(heroku: APIClient, app: string): Promise<void>;
|