heroku 9.0.0-dev.0 → 9.1.0-beta.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 +14 -10
- package/lib/commands/domains/index.js +47 -3
- 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 +29 -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 +137 -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/keyValueParser.d.ts +4 -0
- package/lib/lib/utils/keyValueParser.js +9 -0
- package/lib/lib/utils/multisort.d.ts +32 -0
- package/lib/lib/utils/multisort.js +66 -0
- package/lib/lib/utils/paginator.d.ts +2 -0
- package/lib/lib/utils/paginator.js +29 -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 +12684 -2674
- package/package.json +116 -65
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import * as Heroku from '@heroku-cli/schema';
|
|
2
|
+
export declare type TransferSchedule = {
|
|
3
|
+
hour: number;
|
|
4
|
+
name: string;
|
|
5
|
+
timezone: string;
|
|
6
|
+
uuid: string;
|
|
7
|
+
};
|
|
8
|
+
export declare type PublicUrlResponse = {
|
|
9
|
+
url: string;
|
|
10
|
+
};
|
|
11
|
+
declare type TransferTargetType = 'pg_dump' | 'pg_restore' | 'gof3r' | 'htcat';
|
|
12
|
+
export declare type BackupTransfer = {
|
|
13
|
+
uuid: string;
|
|
14
|
+
num: number;
|
|
15
|
+
from_name: string;
|
|
16
|
+
from_type: TransferTargetType;
|
|
17
|
+
from_url: string;
|
|
18
|
+
to_name: string;
|
|
19
|
+
to_type: TransferTargetType;
|
|
20
|
+
to_url: string;
|
|
21
|
+
options: {
|
|
22
|
+
[k: string]: unknown;
|
|
23
|
+
};
|
|
24
|
+
source_bytes: number;
|
|
25
|
+
processed_bytes: number;
|
|
26
|
+
succeeded: boolean;
|
|
27
|
+
warnings: number;
|
|
28
|
+
created_at: string;
|
|
29
|
+
started_at: string;
|
|
30
|
+
canceled_at: string;
|
|
31
|
+
updated_at: string;
|
|
32
|
+
finished_at: string;
|
|
33
|
+
deleted_at: string;
|
|
34
|
+
purged_at: string;
|
|
35
|
+
num_keep: number;
|
|
36
|
+
schedule?: {
|
|
37
|
+
uuid: string;
|
|
38
|
+
};
|
|
39
|
+
logs: Array<{
|
|
40
|
+
created_at: string;
|
|
41
|
+
level: string;
|
|
42
|
+
message: string;
|
|
43
|
+
}>;
|
|
44
|
+
};
|
|
45
|
+
export declare type AddOnWithRelatedData = Required<Heroku.AddOnAttachment['addon']> & {
|
|
46
|
+
attachment_names?: string[];
|
|
47
|
+
links?: Link[];
|
|
48
|
+
plan: Required<Heroku.AddOn['plan']>;
|
|
49
|
+
};
|
|
50
|
+
declare type ServiceInfo = 'Status' | 'Fork/Follow' | 'Rollback' | 'Created' | 'Region' | 'Data Encryption' | 'Continuous Protection' | 'Enhanced Certificates' | 'Upgradable Extensions' | 'Plan' | 'HA Status' | 'Behind By' | 'Data Size' | 'Tables' | 'PG Version' | 'Connections' | 'Connection Pooling' | 'Credentials' | 'Restricted Credentials' | 'Mutual TLS' | 'Customer Encryption Key' | 'Following' | 'Forked From' | 'Followers' | 'Forks' | 'Maintenance' | 'Maintenance window' | 'Infrastructure' | 'Warning';
|
|
51
|
+
export declare type PgDatabaseService = {
|
|
52
|
+
addon_id: string;
|
|
53
|
+
name: string;
|
|
54
|
+
heroku_resource_id: string;
|
|
55
|
+
formation?: {
|
|
56
|
+
id: string;
|
|
57
|
+
primary: string;
|
|
58
|
+
};
|
|
59
|
+
metaas_source: string;
|
|
60
|
+
num_tables: number;
|
|
61
|
+
num_connections: number;
|
|
62
|
+
num_connections_waiting: number;
|
|
63
|
+
num_bytes: number;
|
|
64
|
+
postgres_version: string;
|
|
65
|
+
current_transaction: number;
|
|
66
|
+
is_in_recovery?: boolean;
|
|
67
|
+
plan: {
|
|
68
|
+
id: number;
|
|
69
|
+
name: string;
|
|
70
|
+
};
|
|
71
|
+
created_at: string;
|
|
72
|
+
'standalone?'?: boolean;
|
|
73
|
+
port: number;
|
|
74
|
+
database_name: string;
|
|
75
|
+
database_user: string;
|
|
76
|
+
'hot_standby?'?: boolean;
|
|
77
|
+
status_updated_at?: string;
|
|
78
|
+
following?: string;
|
|
79
|
+
forked_from: string;
|
|
80
|
+
target_transaction: string | null;
|
|
81
|
+
available_for_ingress: boolean;
|
|
82
|
+
resource_url: string;
|
|
83
|
+
database_password: string;
|
|
84
|
+
'waiting?': boolean;
|
|
85
|
+
credentials: number;
|
|
86
|
+
leader: string | null;
|
|
87
|
+
info: Array<{
|
|
88
|
+
name: ServiceInfo;
|
|
89
|
+
values: string[];
|
|
90
|
+
}>;
|
|
91
|
+
};
|
|
92
|
+
export declare type PgStatus = {
|
|
93
|
+
'waiting?': boolean;
|
|
94
|
+
'error?': boolean;
|
|
95
|
+
message: string;
|
|
96
|
+
};
|
|
97
|
+
declare type TenantInfoNames = 'Plan' | 'Status' | 'Connections' | 'PG Version' | 'Created' | 'Data Size' | 'Tables' | 'Fork/Follow' | 'Rollback' | 'Continuous Protection' | 'Billing App' | 'Add-on';
|
|
98
|
+
export declare type TenantInfo = {
|
|
99
|
+
name: TenantInfoNames;
|
|
100
|
+
values: string[];
|
|
101
|
+
resolve_db_name?: boolean;
|
|
102
|
+
};
|
|
103
|
+
export declare type PgDatabaseTenant = {
|
|
104
|
+
addon_id: string;
|
|
105
|
+
name: string;
|
|
106
|
+
plan: string;
|
|
107
|
+
created_at: string;
|
|
108
|
+
database_user: string;
|
|
109
|
+
database_name: string;
|
|
110
|
+
following?: string;
|
|
111
|
+
resource_url: string;
|
|
112
|
+
'waiting?': boolean;
|
|
113
|
+
num_bytes: number;
|
|
114
|
+
info: Array<TenantInfo>;
|
|
115
|
+
};
|
|
116
|
+
export declare type PgDatabase = PgDatabaseService & PgDatabaseTenant;
|
|
117
|
+
export declare type AddOnWithPlan = Required<Heroku.AddOnAttachment['addon']> & {
|
|
118
|
+
plan: Required<Heroku.AddOn['plan']>;
|
|
119
|
+
};
|
|
120
|
+
export declare type AddOnAttachmentWithConfigVarsAndPlan = Required<Heroku.AddOnAttachment> & {
|
|
121
|
+
config_vars: Heroku.AddOn['config_vars'];
|
|
122
|
+
addon: AddOnWithRelatedData;
|
|
123
|
+
};
|
|
124
|
+
export declare type Link = {
|
|
125
|
+
attachment_name?: string;
|
|
126
|
+
created_at: string;
|
|
127
|
+
message: string;
|
|
128
|
+
name: string;
|
|
129
|
+
remote?: Link;
|
|
130
|
+
};
|
|
131
|
+
declare type CredentialState = 'enabling' | 'active' | 'revoking' | 'revoked' | 'archived';
|
|
132
|
+
export declare type Credential = {
|
|
133
|
+
user: string;
|
|
134
|
+
password: string;
|
|
135
|
+
state: CredentialState;
|
|
136
|
+
connections?: number | null;
|
|
137
|
+
};
|
|
138
|
+
declare type CredentialStoreState = 'provisioning' | 'wait_for_provisioning' | 'active' | 'rotating' | 'rotation_completed' | 'revoking' | 'archived';
|
|
139
|
+
export declare type CredentialInfo = {
|
|
140
|
+
uuid: string;
|
|
141
|
+
name: string;
|
|
142
|
+
state: CredentialStoreState;
|
|
143
|
+
database: string;
|
|
144
|
+
host: string;
|
|
145
|
+
port: number;
|
|
146
|
+
credentials: Array<Credential>;
|
|
147
|
+
};
|
|
148
|
+
export declare type CredentialsInfo = Array<CredentialInfo>;
|
|
149
|
+
export declare type MaintenanceApiResponse = {
|
|
150
|
+
message: string;
|
|
151
|
+
};
|
|
152
|
+
export declare type PgDatabaseConfig = {
|
|
153
|
+
[key: string]: any;
|
|
154
|
+
'log_lock_waits': {
|
|
155
|
+
value: boolean;
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
export declare type SettingKey = 'log_lock_waits' | 'log_connections' | 'log_min_duration_statement' | 'log_statement' | 'track_functions' | 'pgbouncer_max_client_conn' | 'pg_bouncer_max_db_conns' | 'pg_bouncer_default_pool_size' | 'auto_explain' | 'auto_explain.log_min_duration' | 'auto_explain.log_analyze' | 'auto_explain.log_triggers' | 'auto_explain.log_buffers' | 'auto_explain.log_verbose' | 'auto_explain.log_nested_statements';
|
|
159
|
+
export declare type Setting<T> = {
|
|
160
|
+
value: T;
|
|
161
|
+
values: Record<string, string>;
|
|
162
|
+
desc: string;
|
|
163
|
+
default: T;
|
|
164
|
+
};
|
|
165
|
+
export declare type SettingsResponse = Record<SettingKey, Setting<unknown>>;
|
|
166
|
+
export declare type PGDiagnoseResponse = {
|
|
167
|
+
id: string;
|
|
168
|
+
app: string;
|
|
169
|
+
database: string;
|
|
170
|
+
created_at: string;
|
|
171
|
+
checks: [
|
|
172
|
+
PGDiagnoseCheck<ConnCountResult>,
|
|
173
|
+
PGDiagnoseCheck<QueriesResult>,
|
|
174
|
+
PGDiagnoseCheck<QueriesResult>,
|
|
175
|
+
PGDiagnoseCheck<UnusedIndexesResult>,
|
|
176
|
+
PGDiagnoseCheck<BloatResult>,
|
|
177
|
+
PGDiagnoseCheck<HitRateResult>,
|
|
178
|
+
PGDiagnoseCheck<BlockingResult>
|
|
179
|
+
];
|
|
180
|
+
};
|
|
181
|
+
export declare type PGDiagnoseCheck<T extends PGDiagnoseResult = PGDiagnoseResult> = {
|
|
182
|
+
name: string;
|
|
183
|
+
status: 'red' | 'yellow' | 'green';
|
|
184
|
+
results: T[];
|
|
185
|
+
};
|
|
186
|
+
export declare type PGDiagnoseResult = ConnCountResult | QueriesResult | UnusedIndexesResult | BloatResult | HitRateResult | BlockingResult;
|
|
187
|
+
export declare type ConnCountResult = {
|
|
188
|
+
count: number;
|
|
189
|
+
};
|
|
190
|
+
export declare type QueriesResult = {
|
|
191
|
+
pid: number;
|
|
192
|
+
duration: string;
|
|
193
|
+
query: string;
|
|
194
|
+
};
|
|
195
|
+
export declare type UnusedIndexesResult = {
|
|
196
|
+
reason: string;
|
|
197
|
+
index: string;
|
|
198
|
+
index_scan_pct: string;
|
|
199
|
+
scans_per_write: string;
|
|
200
|
+
index_size: string;
|
|
201
|
+
table_size: string;
|
|
202
|
+
};
|
|
203
|
+
export declare type BloatResult = {
|
|
204
|
+
type: string;
|
|
205
|
+
object: string;
|
|
206
|
+
bloat: number;
|
|
207
|
+
waste: string;
|
|
208
|
+
};
|
|
209
|
+
export declare type HitRateResult = {
|
|
210
|
+
name: string;
|
|
211
|
+
ratio: number;
|
|
212
|
+
};
|
|
213
|
+
export declare type BlockingResult = {
|
|
214
|
+
blocked_pid: number;
|
|
215
|
+
blocking_statement: string;
|
|
216
|
+
blocking_duration: string;
|
|
217
|
+
blocking_pid: number;
|
|
218
|
+
blocked_statement: string;
|
|
219
|
+
blocked_duration: string;
|
|
220
|
+
};
|
|
221
|
+
export declare type PGDiagnoseRequest = {
|
|
222
|
+
url: string;
|
|
223
|
+
plan: string;
|
|
224
|
+
app: string;
|
|
225
|
+
database: string;
|
|
226
|
+
metrics?: unknown[];
|
|
227
|
+
burst_data_present?: boolean;
|
|
228
|
+
burst_status?: string;
|
|
229
|
+
};
|
|
230
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { AddOnAttachment } from '@heroku-cli/schema';
|
|
3
|
+
import type { AddOnAttachmentWithConfigVarsAndPlan, CredentialsInfo } from './types';
|
|
4
|
+
import { Server } from 'net';
|
|
5
|
+
export declare function getConfigVarName(configVars: string[]): string;
|
|
6
|
+
export declare const essentialNumPlan: (addon: AddOnAttachmentWithConfigVarsAndPlan) => boolean;
|
|
7
|
+
export declare const legacyEssentialPlan: (addon: AddOnAttachmentWithConfigVarsAndPlan) => boolean;
|
|
8
|
+
export declare function essentialPlan(addon: AddOnAttachmentWithConfigVarsAndPlan): boolean;
|
|
9
|
+
export declare function getConfigVarNameFromAttachment(attachment: Required<AddOnAttachment & {
|
|
10
|
+
addon: AddOnAttachmentWithConfigVarsAndPlan;
|
|
11
|
+
}>, config?: Record<string, string>): string;
|
|
12
|
+
export declare function presentCredentialAttachments(app: string, credAttachments: Required<AddOnAttachment>[], credentials: CredentialsInfo, cred: string): string;
|
|
13
|
+
export declare type ConnectionDetails = {
|
|
14
|
+
user: string;
|
|
15
|
+
password: string;
|
|
16
|
+
database: string;
|
|
17
|
+
host: string;
|
|
18
|
+
port: string;
|
|
19
|
+
pathname: string;
|
|
20
|
+
url: string;
|
|
21
|
+
bastionKey?: string;
|
|
22
|
+
bastionHost?: string;
|
|
23
|
+
_tunnel?: Server;
|
|
24
|
+
};
|
|
25
|
+
export declare type ConnectionDetailsWithAttachment = ConnectionDetails & {
|
|
26
|
+
attachment: Required<AddOnAttachment & {
|
|
27
|
+
addon: AddOnAttachmentWithConfigVarsAndPlan;
|
|
28
|
+
}>;
|
|
29
|
+
};
|
|
30
|
+
export declare const getConnectionDetails: (attachment: Required<AddOnAttachment & {
|
|
31
|
+
addon: AddOnAttachmentWithConfigVarsAndPlan;
|
|
32
|
+
}>, configVars?: Record<string, string>) => ConnectionDetailsWithAttachment;
|
|
33
|
+
export declare const bastionKeyPlan: (a: AddOnAttachmentWithConfigVarsAndPlan) => boolean;
|
|
34
|
+
export declare const configVarNamesFromValue: (config: Record<string, string>, value: string) => string[];
|
|
35
|
+
export declare const databaseNameFromUrl: (uri: string, config: Record<string, string>) => any;
|
|
36
|
+
export declare const parsePostgresConnectionString: (db: string) => ConnectionDetails;
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parsePostgresConnectionString = exports.databaseNameFromUrl = exports.configVarNamesFromValue = exports.bastionKeyPlan = exports.getConnectionDetails = exports.presentCredentialAttachments = exports.getConfigVarNameFromAttachment = exports.essentialPlan = exports.legacyEssentialPlan = exports.essentialNumPlan = exports.getConfigVarName = void 0;
|
|
4
|
+
const color_1 = require("@heroku-cli/color");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const debug_1 = require("debug");
|
|
7
|
+
const addons_1 = require("../../commands/addons");
|
|
8
|
+
const multisort_1 = require("../utils/multisort");
|
|
9
|
+
const bastion_1 = require("./bastion");
|
|
10
|
+
const process_1 = require("process");
|
|
11
|
+
function getConfigVarName(configVars) {
|
|
12
|
+
const connStringVars = configVars.filter(cv => (cv.endsWith('_URL')));
|
|
13
|
+
if (connStringVars.length === 0)
|
|
14
|
+
throw new Error('Database URL not found for this addon');
|
|
15
|
+
return connStringVars[0];
|
|
16
|
+
}
|
|
17
|
+
exports.getConfigVarName = getConfigVarName;
|
|
18
|
+
const essentialNumPlan = (addon) => { var _a, _b; return Boolean((_b = (_a = addon === null || addon === void 0 ? void 0 : addon.plan) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.split(':')[1].match(/^essential/)); };
|
|
19
|
+
exports.essentialNumPlan = essentialNumPlan;
|
|
20
|
+
const legacyEssentialPlan = (addon) => { var _a, _b; return Boolean((_b = (_a = addon === null || addon === void 0 ? void 0 : addon.plan) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.split(':')[1].match(/(dev|basic|mini)$/)); };
|
|
21
|
+
exports.legacyEssentialPlan = legacyEssentialPlan;
|
|
22
|
+
function essentialPlan(addon) {
|
|
23
|
+
return (0, exports.essentialNumPlan)(addon) || (0, exports.legacyEssentialPlan)(addon);
|
|
24
|
+
}
|
|
25
|
+
exports.essentialPlan = essentialPlan;
|
|
26
|
+
function getConfigVarNameFromAttachment(attachment, config = {}) {
|
|
27
|
+
var _a, _b;
|
|
28
|
+
const configVars = (_b = (_a = attachment.config_vars) === null || _a === void 0 ? void 0 : _a.filter((cv) => {
|
|
29
|
+
var _a;
|
|
30
|
+
return (_a = config[cv]) === null || _a === void 0 ? void 0 : _a.startsWith('postgres://');
|
|
31
|
+
})) !== null && _b !== void 0 ? _b : [];
|
|
32
|
+
if (configVars.length === 0) {
|
|
33
|
+
core_1.ux.error(`No config vars found for ${attachment.name}; perhaps they were removed as a side effect of ${color_1.default.cmd('heroku rollback')}? Use ${color_1.default.cmd('heroku addons:attach')} to create a new attachment and then ${color_1.default.cmd('heroku addons:detach')} to remove the current attachment.`);
|
|
34
|
+
}
|
|
35
|
+
const configVarName = `${attachment.name}_URL`;
|
|
36
|
+
if (configVars.includes(configVarName) && configVarName in config) {
|
|
37
|
+
return configVarName;
|
|
38
|
+
}
|
|
39
|
+
return getConfigVarName(configVars);
|
|
40
|
+
}
|
|
41
|
+
exports.getConfigVarNameFromAttachment = getConfigVarNameFromAttachment;
|
|
42
|
+
function presentCredentialAttachments(app, credAttachments, credentials, cred) {
|
|
43
|
+
const isForeignApp = (attOrAddon) => attOrAddon.app.name === app ? 0 : 1;
|
|
44
|
+
const comparators = [
|
|
45
|
+
(a, b) => {
|
|
46
|
+
const fa = isForeignApp(a);
|
|
47
|
+
const fb = isForeignApp(b);
|
|
48
|
+
return fa < fb ? -1 : (fb < fa ? 1 : 0);
|
|
49
|
+
},
|
|
50
|
+
(a, b) => a.name.localeCompare(b.name),
|
|
51
|
+
(a, b) => { var _a, _b, _c, _d, _e; return (_e = (_b = (_a = a.app) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.localeCompare((_d = (_c = b.app) === null || _c === void 0 ? void 0 : _c.name) !== null && _d !== void 0 ? _d : '')) !== null && _e !== void 0 ? _e : 0; },
|
|
52
|
+
];
|
|
53
|
+
credAttachments.sort((0, multisort_1.multiSortCompareFn)(comparators));
|
|
54
|
+
// render each attachment under the credential
|
|
55
|
+
const attLines = credAttachments.map(function (attachment, idx) {
|
|
56
|
+
const isLast = (idx === credAttachments.length - 1);
|
|
57
|
+
return (0, addons_1.renderAttachment)(attachment, app, isLast);
|
|
58
|
+
});
|
|
59
|
+
const rotationLines = [];
|
|
60
|
+
const credentialStore = credentials.find(a => a.name === cred);
|
|
61
|
+
if ((credentialStore === null || credentialStore === void 0 ? void 0 : credentialStore.state) === 'rotating') {
|
|
62
|
+
const formatted = credentialStore === null || credentialStore === void 0 ? void 0 : credentialStore.credentials.map(credential => {
|
|
63
|
+
return {
|
|
64
|
+
user: credential.user,
|
|
65
|
+
state: credential.state,
|
|
66
|
+
connections: credential.connections,
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
// eslint-disable-next-line no-eq-null, eqeqeq
|
|
70
|
+
const connectionInformationAvailable = formatted.some(c => c.connections != null);
|
|
71
|
+
if (connectionInformationAvailable) {
|
|
72
|
+
const prefix = ' ';
|
|
73
|
+
rotationLines.push(`${prefix}Usernames currently active for this credential:`);
|
|
74
|
+
core_1.ux.table(formatted, {
|
|
75
|
+
user: {
|
|
76
|
+
get(row) {
|
|
77
|
+
return `${prefix}${row.user}`;
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
state: {
|
|
81
|
+
get(row) {
|
|
82
|
+
return row.state === 'revoking' ? 'waiting for no connections to be revoked' : row.state;
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
connections: {
|
|
86
|
+
get(row) {
|
|
87
|
+
return `${row.connections} connections`;
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
}, {
|
|
91
|
+
'no-header': true,
|
|
92
|
+
printLine(line) {
|
|
93
|
+
rotationLines.push(line);
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return [cred, ...attLines, ...rotationLines].join('\n');
|
|
99
|
+
}
|
|
100
|
+
exports.presentCredentialAttachments = presentCredentialAttachments;
|
|
101
|
+
const getConnectionDetails = (attachment, configVars = {}) => {
|
|
102
|
+
const connStringVar = getConfigVarNameFromAttachment(attachment, configVars);
|
|
103
|
+
// remove _URL from the end of the config var name
|
|
104
|
+
const baseName = connStringVar.slice(0, -4);
|
|
105
|
+
// build the default payload for non-bastion dbs
|
|
106
|
+
(0, debug_1.default)(`Using "${connStringVar}" to connect to your database…`);
|
|
107
|
+
const conn = (0, exports.parsePostgresConnectionString)(configVars[connStringVar]);
|
|
108
|
+
const payload = {
|
|
109
|
+
user: conn.user,
|
|
110
|
+
password: conn.password,
|
|
111
|
+
database: conn.database,
|
|
112
|
+
host: conn.host,
|
|
113
|
+
port: conn.port,
|
|
114
|
+
pathname: conn.pathname,
|
|
115
|
+
url: conn.url,
|
|
116
|
+
attachment,
|
|
117
|
+
};
|
|
118
|
+
// If bastion creds exist, graft it into the payload
|
|
119
|
+
const bastion = (0, bastion_1.getBastion)(configVars, baseName);
|
|
120
|
+
if (bastion) {
|
|
121
|
+
Object.assign(payload, bastion);
|
|
122
|
+
}
|
|
123
|
+
return payload;
|
|
124
|
+
};
|
|
125
|
+
exports.getConnectionDetails = getConnectionDetails;
|
|
126
|
+
const bastionKeyPlan = (a) => Boolean(a.plan.name.match(/private/));
|
|
127
|
+
exports.bastionKeyPlan = bastionKeyPlan;
|
|
128
|
+
const configVarNamesFromValue = (config, value) => {
|
|
129
|
+
const keys = [];
|
|
130
|
+
for (const key of Object.keys(config)) {
|
|
131
|
+
const configVal = config[key];
|
|
132
|
+
if (configVal === value) {
|
|
133
|
+
keys.push(key);
|
|
134
|
+
}
|
|
135
|
+
else if (configVal.startsWith('postgres://')) {
|
|
136
|
+
try {
|
|
137
|
+
const configURL = new URL(configVal);
|
|
138
|
+
const ourURL = new URL(value);
|
|
139
|
+
const components = ['protocol', 'hostname', 'port', 'pathname'];
|
|
140
|
+
if (components.every(component => ourURL[component] === configURL[component])) {
|
|
141
|
+
keys.push(key);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
catch (_a) {
|
|
145
|
+
// ignore -- this is not a valid URL so not a matching URL
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
const comparator = (a, b) => {
|
|
150
|
+
const isDatabaseUrlA = Number(a === 'DATABASE_URL');
|
|
151
|
+
const isDatabaseUrlB = Number(b === 'DATABASE_URL');
|
|
152
|
+
return isDatabaseUrlA < isDatabaseUrlB ? -1 : (isDatabaseUrlB < isDatabaseUrlA ? 1 : 0);
|
|
153
|
+
};
|
|
154
|
+
return keys.sort(comparator);
|
|
155
|
+
};
|
|
156
|
+
exports.configVarNamesFromValue = configVarNamesFromValue;
|
|
157
|
+
const databaseNameFromUrl = (uri, config) => {
|
|
158
|
+
const names = (0, exports.configVarNamesFromValue)(config, uri);
|
|
159
|
+
let name = names.pop();
|
|
160
|
+
while (names.length > 0 && name === 'DATABASE_URL')
|
|
161
|
+
name = names.pop();
|
|
162
|
+
if (name) {
|
|
163
|
+
return color_1.default.configVar(name.replace(/_URL$/, ''));
|
|
164
|
+
}
|
|
165
|
+
const conn = (0, exports.parsePostgresConnectionString)(uri);
|
|
166
|
+
return `${conn.host}:${conn.port}${conn.pathname}`;
|
|
167
|
+
};
|
|
168
|
+
exports.databaseNameFromUrl = databaseNameFromUrl;
|
|
169
|
+
const parsePostgresConnectionString = (db) => {
|
|
170
|
+
const dbPath = db.match(/:\/\//) ? db : `postgres:///${db}`;
|
|
171
|
+
const url = new URL(dbPath);
|
|
172
|
+
const { username, password, hostname, pathname, port } = url;
|
|
173
|
+
return {
|
|
174
|
+
user: username,
|
|
175
|
+
password,
|
|
176
|
+
database: pathname.charAt(0) === '/' ? pathname.slice(1) : pathname,
|
|
177
|
+
host: hostname,
|
|
178
|
+
port: port || process_1.env.PGPORT || (hostname && '5432'),
|
|
179
|
+
pathname,
|
|
180
|
+
url: dbPath,
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
exports.parsePostgresConnectionString = parsePostgresConnectionString;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import * as Heroku from '@heroku-cli/schema';
|
|
2
|
+
import { APIClient } from '@heroku-cli/command';
|
|
3
|
+
export declare type RedisFormationResponse = {
|
|
4
|
+
addon_id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
plan: string;
|
|
7
|
+
created_at: string;
|
|
8
|
+
formation: {
|
|
9
|
+
id: string;
|
|
10
|
+
primary: string | null;
|
|
11
|
+
};
|
|
12
|
+
metaas_source: string;
|
|
13
|
+
port: number;
|
|
14
|
+
resource_url: string;
|
|
15
|
+
info: {
|
|
16
|
+
name: string;
|
|
17
|
+
values: string[];
|
|
18
|
+
}[];
|
|
19
|
+
version: string;
|
|
20
|
+
prefer_native_tls: boolean;
|
|
21
|
+
customer_encryption_key?: string;
|
|
22
|
+
};
|
|
23
|
+
declare type RedisEvictionPolicies = 'noeviction' | 'allkeys-lru' | 'volatile-lru' | 'allkeys-random' | 'volatile-random' | 'volatile-ttl' | 'allkeys-lfu' | 'volatile-lfu';
|
|
24
|
+
export declare type RedisApiResponse = {
|
|
25
|
+
message: string;
|
|
26
|
+
};
|
|
27
|
+
export declare type RedisFormationConfigResponse = {
|
|
28
|
+
maxmemory_policy: {
|
|
29
|
+
desc: string;
|
|
30
|
+
value: RedisEvictionPolicies;
|
|
31
|
+
default: RedisEvictionPolicies;
|
|
32
|
+
values: Record<RedisEvictionPolicies, string>;
|
|
33
|
+
};
|
|
34
|
+
notify_keyspace_events: {
|
|
35
|
+
desc: string;
|
|
36
|
+
value: string;
|
|
37
|
+
default: string;
|
|
38
|
+
};
|
|
39
|
+
timeout: {
|
|
40
|
+
desc: string;
|
|
41
|
+
value: number;
|
|
42
|
+
default: number;
|
|
43
|
+
};
|
|
44
|
+
standby_segv_workaround: {
|
|
45
|
+
desc: string;
|
|
46
|
+
value: boolean;
|
|
47
|
+
default: boolean;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export declare type RedisMaintenanceWindowResponse = {
|
|
51
|
+
window: string | null;
|
|
52
|
+
scheduled_at?: string;
|
|
53
|
+
};
|
|
54
|
+
export declare type RedisFormationWaitResponse = {
|
|
55
|
+
message: string;
|
|
56
|
+
'waiting?': boolean;
|
|
57
|
+
};
|
|
58
|
+
declare type HttpVerb = 'GET' | 'POST' | 'PATCH' | 'DELETE' | 'PUT';
|
|
59
|
+
declare const _default: (app: string, database: string | undefined, json: boolean, heroku: APIClient) => {
|
|
60
|
+
request<T>(path: string, method?: HttpVerb, body?: {}): Promise<import("http-call").HTTP<T>>;
|
|
61
|
+
makeAddonsFilter(filter: string | undefined): (addons: Required<Heroku.AddOn>[]) => Required<Heroku.AddOn>[];
|
|
62
|
+
getRedisAddon(addons?: Required<Heroku.AddOn>[]): Promise<Required<Heroku.AddOn>>;
|
|
63
|
+
info(): Promise<void>;
|
|
64
|
+
};
|
|
65
|
+
export default _default;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
exports.default = (app, database, json, heroku) => {
|
|
6
|
+
const HOST = process.env.HEROKU_REDIS_HOST || 'api.data.heroku.com';
|
|
7
|
+
const ADDON = process.env.HEROKU_REDIS_ADDON_NAME || 'heroku-redis';
|
|
8
|
+
return {
|
|
9
|
+
request(path, method = 'GET', body = {}) {
|
|
10
|
+
const headers = { Accept: 'application/json' };
|
|
11
|
+
if (process.env.HEROKU_HEADERS) {
|
|
12
|
+
Object.assign(headers, JSON.parse(process.env.HEROKU_HEADERS));
|
|
13
|
+
}
|
|
14
|
+
return heroku.request(path, {
|
|
15
|
+
hostname: HOST,
|
|
16
|
+
method,
|
|
17
|
+
headers,
|
|
18
|
+
body,
|
|
19
|
+
});
|
|
20
|
+
},
|
|
21
|
+
makeAddonsFilter(filter) {
|
|
22
|
+
if (filter) {
|
|
23
|
+
filter = filter.toUpperCase();
|
|
24
|
+
}
|
|
25
|
+
function matches(addon) {
|
|
26
|
+
const configVars = addon.config_vars || [];
|
|
27
|
+
for (const configVar of configVars) {
|
|
28
|
+
const cfgName = configVar.toUpperCase();
|
|
29
|
+
if (filter && cfgName.includes(filter)) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (addon.name && filter && addon.name.toUpperCase().includes(filter)) {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
function onResponse(addons) {
|
|
39
|
+
var _a;
|
|
40
|
+
const redisAddons = [];
|
|
41
|
+
for (const addon of addons) {
|
|
42
|
+
const service = (_a = addon === null || addon === void 0 ? void 0 : addon.addon_service) === null || _a === void 0 ? void 0 : _a.name;
|
|
43
|
+
if (service && service.indexOf(ADDON) === 0 && (!filter || matches(addon))) {
|
|
44
|
+
redisAddons.push(addon);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return redisAddons;
|
|
48
|
+
}
|
|
49
|
+
return onResponse;
|
|
50
|
+
},
|
|
51
|
+
async getRedisAddon(addons) {
|
|
52
|
+
if (!addons) {
|
|
53
|
+
({ body: addons } = await heroku.get(`/apps/${app}/addons`));
|
|
54
|
+
}
|
|
55
|
+
const addonsFilter = this.makeAddonsFilter(database);
|
|
56
|
+
const redisAddons = addonsFilter(addons);
|
|
57
|
+
if (redisAddons.length === 0) {
|
|
58
|
+
core_1.ux.error('No Redis instances found.', { exit: 1 });
|
|
59
|
+
}
|
|
60
|
+
else if (redisAddons.length > 1) {
|
|
61
|
+
const names = redisAddons.map(function (addon) {
|
|
62
|
+
return addon.name;
|
|
63
|
+
});
|
|
64
|
+
core_1.ux.error(`Please specify a single instance. Found: ${names.join(', ')}`, { exit: 1 });
|
|
65
|
+
}
|
|
66
|
+
return redisAddons[0];
|
|
67
|
+
},
|
|
68
|
+
async info() {
|
|
69
|
+
let { body: addons } = await heroku.get(`/apps/${app}/addons`);
|
|
70
|
+
// filter out non-redis addons
|
|
71
|
+
addons = this.makeAddonsFilter(database)(addons);
|
|
72
|
+
// get info for each db
|
|
73
|
+
const databases = addons.map(addon => {
|
|
74
|
+
return {
|
|
75
|
+
addon: addon,
|
|
76
|
+
redis: this.request(`/redis/v0/databases/${addon.name}`).catch(function (error) {
|
|
77
|
+
if (error.statusCode !== 404) {
|
|
78
|
+
throw error;
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
}),
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
if (json) {
|
|
85
|
+
const redii = [];
|
|
86
|
+
for (const db of databases) {
|
|
87
|
+
const { body: redis } = await db.redis || {};
|
|
88
|
+
if (!redis) {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
const json_data = redis;
|
|
92
|
+
json_data.app = db.addon.app;
|
|
93
|
+
json_data.config_vars = db.addon.config_vars;
|
|
94
|
+
const { formation, metaas_source, port } = json_data, filteredRedis = tslib_1.__rest(json_data, ["formation", "metaas_source", "port"]);
|
|
95
|
+
redii.push(filteredRedis);
|
|
96
|
+
}
|
|
97
|
+
core_1.ux.styledJSON(redii);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
// print out the info of the addon and redis db info
|
|
101
|
+
for (const db of databases) {
|
|
102
|
+
const { body: redis } = await db.redis || {};
|
|
103
|
+
if (!redis) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
let uxHeader = db.addon.name;
|
|
107
|
+
if (db.addon && db.addon.config_vars) {
|
|
108
|
+
uxHeader += ` (${db.addon.config_vars.join(', ')})`;
|
|
109
|
+
}
|
|
110
|
+
if (uxHeader) {
|
|
111
|
+
core_1.ux.styledHeader(uxHeader);
|
|
112
|
+
core_1.ux.styledObject(
|
|
113
|
+
// eslint-disable-next-line unicorn/no-array-reduce
|
|
114
|
+
redis.info.reduce(function (memo, row) {
|
|
115
|
+
memo[row.name] = row.values;
|
|
116
|
+
return memo;
|
|
117
|
+
}, {}), redis.info.map(row => row.name));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const stream: (url: string) => Promise<unknown>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stream = void 0;
|
|
4
|
+
const got_1 = require("got");
|
|
5
|
+
const stream = function (url) {
|
|
6
|
+
return new Promise(function (resolve, reject) {
|
|
7
|
+
const stream = got_1.default.stream(url);
|
|
8
|
+
stream.on('error', reject);
|
|
9
|
+
stream.on('end', resolve);
|
|
10
|
+
const piped = stream.pipe(process.stdout);
|
|
11
|
+
piped.on('error', reject);
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
exports.stream = stream;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { APIClient } from '@heroku-cli/command';
|
|
2
|
+
import * as Heroku from '@heroku-cli/schema';
|
|
3
|
+
export declare const findRelease: (heroku: APIClient, app: string, search: (releases: Heroku.Release[]) => Heroku.Release) => Promise<Heroku.Release>;
|
|
4
|
+
export declare const getRelease: (heroku: APIClient, app: string, release: string) => Promise<Heroku.Release>;
|
|
5
|
+
export declare const findByLatestOrId: (heroku: APIClient, app: string, release?: string) => Promise<Heroku.Release>;
|
|
6
|
+
export declare const findByPreviousOrId: (heroku: APIClient, app: string, release?: string) => Promise<Heroku.Release>;
|