heroku 9.0.0-alpha.1 → 9.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. package/README.md +6 -11
  2. package/lib/commands/access/add.d.ts +14 -0
  3. package/lib/commands/access/add.js +55 -0
  4. package/lib/commands/access/index.d.ts +11 -0
  5. package/lib/commands/access/index.js +86 -0
  6. package/lib/commands/access/remove.d.ts +12 -0
  7. package/lib/commands/access/remove.js +25 -0
  8. package/lib/commands/access/update.d.ts +14 -0
  9. package/lib/commands/access/update.js +39 -0
  10. package/lib/commands/addons/attach.d.ts +16 -0
  11. package/lib/commands/addons/attach.js +51 -0
  12. package/lib/commands/addons/create.d.ts +19 -0
  13. package/lib/commands/addons/create.js +84 -0
  14. package/lib/commands/addons/destroy.d.ts +19 -0
  15. package/lib/commands/addons/destroy.js +61 -0
  16. package/lib/commands/addons/detach.d.ts +13 -0
  17. package/lib/commands/addons/detach.js +31 -0
  18. package/lib/commands/addons/docs.d.ts +14 -0
  19. package/lib/commands/addons/docs.js +36 -0
  20. package/lib/commands/addons/index.d.ts +16 -0
  21. package/lib/commands/addons/index.js +246 -0
  22. package/lib/commands/addons/info.d.ts +14 -0
  23. package/lib/commands/addons/info.js +44 -0
  24. package/lib/commands/addons/open.d.ts +75 -0
  25. package/lib/commands/addons/open.js +87 -0
  26. package/lib/commands/addons/plans.d.ts +12 -0
  27. package/lib/commands/addons/plans.js +47 -0
  28. package/lib/commands/addons/rename.d.ts +10 -0
  29. package/lib/commands/addons/rename.js +20 -0
  30. package/lib/commands/addons/services.d.ts +9 -0
  31. package/lib/commands/addons/services.js +34 -0
  32. package/lib/commands/addons/upgrade.d.ts +28 -0
  33. package/lib/commands/addons/upgrade.js +145 -0
  34. package/lib/commands/addons/wait.d.ts +14 -0
  35. package/lib/commands/addons/wait.js +70 -0
  36. package/lib/commands/apps/create.d.ts +2 -2
  37. package/lib/commands/apps/create.js +13 -6
  38. package/lib/commands/apps/destroy.d.ts +2 -1
  39. package/lib/commands/apps/destroy.js +4 -3
  40. package/lib/commands/apps/errors.d.ts +1 -0
  41. package/lib/commands/apps/errors.js +1 -0
  42. package/lib/commands/apps/favorites/add.d.ts +1 -0
  43. package/lib/commands/apps/favorites/add.js +1 -0
  44. package/lib/commands/apps/favorites/remove.d.ts +1 -0
  45. package/lib/commands/apps/favorites/remove.js +1 -0
  46. package/lib/commands/apps/index.d.ts +1 -1
  47. package/lib/commands/apps/index.js +1 -1
  48. package/lib/commands/apps/info.d.ts +2 -1
  49. package/lib/commands/apps/info.js +3 -4
  50. package/lib/commands/apps/join.d.ts +11 -0
  51. package/lib/commands/apps/join.js +25 -0
  52. package/lib/commands/apps/leave.d.ts +12 -0
  53. package/lib/commands/apps/leave.js +25 -0
  54. package/lib/commands/apps/lock.d.ts +11 -0
  55. package/lib/commands/apps/lock.js +30 -0
  56. package/lib/commands/apps/open.d.ts +2 -1
  57. package/lib/commands/apps/open.js +2 -1
  58. package/lib/commands/apps/rename.d.ts +2 -1
  59. package/lib/commands/apps/rename.js +2 -1
  60. package/lib/commands/apps/stacks/index.d.ts +2 -1
  61. package/lib/commands/apps/stacks/index.js +2 -1
  62. package/lib/commands/apps/stacks/set.d.ts +1 -1
  63. package/lib/commands/apps/stacks/set.js +1 -1
  64. package/lib/commands/apps/transfer.d.ts +17 -0
  65. package/lib/commands/apps/transfer.js +91 -0
  66. package/lib/commands/apps/unlock.d.ts +11 -0
  67. package/lib/commands/apps/unlock.js +30 -0
  68. package/lib/commands/auth/token.js +2 -1
  69. package/lib/commands/authorizations/create.js +5 -1
  70. package/lib/commands/authorizations/info.js +5 -1
  71. package/lib/commands/authorizations/revoke.js +5 -1
  72. package/lib/commands/authorizations/rotate.js +5 -1
  73. package/lib/commands/authorizations/update.js +5 -1
  74. package/lib/commands/autocomplete/doctor.js +2 -2
  75. package/lib/commands/autocomplete/options.js +2 -2
  76. package/lib/commands/certs/add.d.ts +16 -0
  77. package/lib/commands/certs/add.js +98 -0
  78. package/lib/commands/certs/auto/disable.d.ts +11 -0
  79. package/lib/commands/certs/auto/disable.js +34 -0
  80. package/lib/commands/certs/auto/enable.d.ts +11 -0
  81. package/lib/commands/certs/auto/enable.js +51 -0
  82. package/lib/commands/certs/auto/index.d.ts +12 -0
  83. package/lib/commands/certs/auto/index.js +94 -0
  84. package/lib/commands/certs/auto/refresh.d.ts +10 -0
  85. package/lib/commands/certs/auto/refresh.js +19 -0
  86. package/lib/commands/certs/generate.d.ts +26 -0
  87. package/lib/commands/certs/generate.js +111 -0
  88. package/lib/commands/certs/index.d.ts +10 -0
  89. package/lib/commands/certs/index.js +26 -0
  90. package/lib/commands/certs/info.d.ts +13 -0
  91. package/lib/commands/certs/info.js +43 -0
  92. package/lib/commands/certs/remove.d.ts +13 -0
  93. package/lib/commands/certs/remove.js +32 -0
  94. package/lib/commands/certs/update.d.ts +18 -0
  95. package/lib/commands/certs/update.js +54 -0
  96. package/lib/commands/ci/config/get.d.ts +1 -0
  97. package/lib/commands/ci/config/get.js +1 -0
  98. package/lib/commands/ci/config/set.d.ts +1 -0
  99. package/lib/commands/ci/config/set.js +1 -0
  100. package/lib/commands/ci/config/unset.d.ts +1 -0
  101. package/lib/commands/ci/config/unset.js +1 -0
  102. package/lib/commands/ci/index.d.ts +1 -0
  103. package/lib/commands/ci/index.js +1 -0
  104. package/lib/commands/ci/info.d.ts +1 -0
  105. package/lib/commands/ci/info.js +1 -0
  106. package/lib/commands/ci/last.d.ts +1 -0
  107. package/lib/commands/ci/last.js +1 -0
  108. package/lib/commands/ci/open.d.ts +1 -0
  109. package/lib/commands/ci/open.js +1 -0
  110. package/lib/commands/ci/rerun.d.ts +1 -0
  111. package/lib/commands/ci/rerun.js +1 -0
  112. package/lib/commands/config/set.d.ts +2 -1
  113. package/lib/commands/config/set.js +2 -1
  114. package/lib/commands/container/index.d.ts +6 -0
  115. package/lib/commands/container/index.js +13 -0
  116. package/lib/commands/container/login.d.ts +9 -0
  117. package/lib/commands/container/login.js +57 -0
  118. package/lib/commands/container/logout.d.ts +9 -0
  119. package/lib/commands/container/logout.js +37 -0
  120. package/lib/commands/container/pull.d.ts +14 -0
  121. package/lib/commands/container/pull.js +40 -0
  122. package/lib/commands/container/push.d.ts +16 -0
  123. package/lib/commands/container/push.js +101 -0
  124. package/lib/commands/container/release.d.ts +14 -0
  125. package/lib/commands/container/release.js +89 -0
  126. package/lib/commands/container/rm.d.ts +13 -0
  127. package/lib/commands/container/rm.js +36 -0
  128. package/lib/commands/container/run.d.ts +15 -0
  129. package/lib/commands/container/run.js +63 -0
  130. package/lib/commands/dashboard.d.ts +7 -0
  131. package/lib/commands/dashboard.js +164 -0
  132. package/lib/commands/domains/index.d.ts +2 -2
  133. package/lib/commands/drains/add.d.ts +1 -0
  134. package/lib/commands/drains/add.js +1 -0
  135. package/lib/commands/drains/index.d.ts +1 -0
  136. package/lib/commands/drains/index.js +1 -0
  137. package/lib/commands/drains/remove.d.ts +1 -0
  138. package/lib/commands/drains/remove.js +1 -0
  139. package/lib/commands/features/disable.d.ts +12 -0
  140. package/lib/commands/features/disable.js +30 -0
  141. package/lib/commands/features/enable.d.ts +12 -0
  142. package/lib/commands/features/enable.js +29 -0
  143. package/lib/commands/features/index.d.ts +10 -0
  144. package/lib/commands/features/index.js +37 -0
  145. package/lib/commands/features/info.d.ts +13 -0
  146. package/lib/commands/features/info.js +33 -0
  147. package/lib/commands/keys/add.d.ts +14 -0
  148. package/lib/commands/keys/add.js +101 -0
  149. package/lib/commands/keys/clear.d.ts +5 -0
  150. package/lib/commands/keys/clear.js +17 -0
  151. package/lib/commands/keys/index.d.ts +9 -0
  152. package/lib/commands/keys/index.js +36 -0
  153. package/lib/commands/keys/remove.d.ts +9 -0
  154. package/lib/commands/keys/remove.js +29 -0
  155. package/lib/commands/labs/enable.d.ts +13 -0
  156. package/lib/commands/labs/enable.js +47 -0
  157. package/lib/commands/labs/index.d.ts +11 -0
  158. package/lib/commands/labs/index.js +71 -0
  159. package/lib/commands/labs/info.d.ts +14 -0
  160. package/lib/commands/labs/info.js +49 -0
  161. package/lib/commands/local/index.d.ts +1 -1
  162. package/lib/commands/local/index.js +8 -3
  163. package/lib/commands/local/run.d.ts +1 -1
  164. package/lib/commands/local/run.js +8 -3
  165. package/lib/commands/maintenance/index.d.ts +10 -0
  166. package/lib/commands/maintenance/index.js +19 -0
  167. package/lib/commands/maintenance/off.d.ts +10 -0
  168. package/lib/commands/maintenance/off.js +20 -0
  169. package/lib/commands/maintenance/on.d.ts +10 -0
  170. package/lib/commands/maintenance/on.js +20 -0
  171. package/lib/commands/members/add.d.ts +13 -0
  172. package/lib/commands/members/add.js +33 -0
  173. package/lib/commands/members/index.d.ts +12 -0
  174. package/lib/commands/members/index.js +76 -0
  175. package/lib/commands/members/remove.d.ts +10 -0
  176. package/lib/commands/members/remove.js +58 -0
  177. package/lib/commands/members/set.d.ts +11 -0
  178. package/lib/commands/members/set.js +21 -0
  179. package/lib/commands/notifications/index.d.ts +13 -0
  180. package/lib/commands/notifications/index.js +62 -0
  181. package/lib/commands/orgs/index.d.ts +11 -0
  182. package/lib/commands/orgs/index.js +27 -0
  183. package/lib/commands/orgs/open.d.ts +10 -0
  184. package/lib/commands/orgs/open.js +24 -0
  185. package/lib/commands/pg/backups/cancel.d.ts +15 -0
  186. package/lib/commands/pg/backups/cancel.js +49 -0
  187. package/lib/commands/pg/backups/capture.d.ts +15 -0
  188. package/lib/commands/pg/backups/capture.js +65 -0
  189. package/lib/commands/pg/backups/delete.d.ts +15 -0
  190. package/lib/commands/pg/backups/delete.js +38 -0
  191. package/lib/commands/pg/backups/download.d.ts +14 -0
  192. package/lib/commands/pg/backups/download.js +58 -0
  193. package/lib/commands/pg/backups/index.d.ts +20 -0
  194. package/lib/commands/pg/backups/index.js +129 -0
  195. package/lib/commands/pg/backups/info.d.ts +17 -0
  196. package/lib/commands/pg/backups/info.js +92 -0
  197. package/lib/commands/pg/backups/restore.d.ts +19 -0
  198. package/lib/commands/pg/backups/restore.js +107 -0
  199. package/lib/commands/pg/backups/schedule.d.ts +21 -0
  200. package/lib/commands/pg/backups/schedule.js +82 -0
  201. package/lib/commands/pg/backups/schedules.d.ts +10 -0
  202. package/lib/commands/pg/backups/schedules.js +31 -0
  203. package/lib/commands/pg/backups/unschedule.d.ts +13 -0
  204. package/lib/commands/pg/backups/unschedule.js +44 -0
  205. package/lib/commands/pg/backups/url.d.ts +13 -0
  206. package/lib/commands/pg/backups/url.js +41 -0
  207. package/lib/commands/pg/bloat.d.ts +13 -0
  208. package/lib/commands/pg/bloat.js +87 -0
  209. package/lib/commands/pg/blocking.d.ts +13 -0
  210. package/lib/commands/pg/blocking.js +42 -0
  211. package/lib/commands/pg/connection-pooling/attach.d.ts +15 -0
  212. package/lib/commands/pg/connection-pooling/attach.js +41 -0
  213. package/lib/commands/pg/copy.d.ts +18 -0
  214. package/lib/commands/pg/copy.js +86 -0
  215. package/lib/commands/pg/credentials/create.d.ts +14 -0
  216. package/lib/commands/pg/credentials/create.js +40 -0
  217. package/lib/commands/pg/credentials/destroy.d.ts +16 -0
  218. package/lib/commands/pg/credentials/destroy.js +48 -0
  219. package/lib/commands/pg/credentials/repair-default.d.ts +15 -0
  220. package/lib/commands/pg/credentials/repair-default.js +39 -0
  221. package/lib/commands/pg/credentials/rotate.d.ts +16 -0
  222. package/lib/commands/pg/credentials/rotate.js +82 -0
  223. package/lib/commands/pg/credentials/url.d.ts +14 -0
  224. package/lib/commands/pg/credentials/url.js +64 -0
  225. package/lib/commands/pg/credentials.d.ts +16 -0
  226. package/lib/commands/pg/credentials.js +61 -0
  227. package/lib/commands/pg/diagnose.d.ts +18 -0
  228. package/lib/commands/pg/diagnose.js +109 -0
  229. package/lib/commands/pg/info.d.ts +14 -0
  230. package/lib/commands/pg/info.js +92 -0
  231. package/lib/commands/pg/kill.d.ts +15 -0
  232. package/lib/commands/pg/kill.js +32 -0
  233. package/lib/commands/pg/killall.d.ts +13 -0
  234. package/lib/commands/pg/killall.js +26 -0
  235. package/lib/commands/pg/links/create.d.ts +15 -0
  236. package/lib/commands/pg/links/create.js +58 -0
  237. package/lib/commands/pg/links/destroy.d.ts +16 -0
  238. package/lib/commands/pg/links/destroy.js +42 -0
  239. package/lib/commands/pg/links/index.d.ts +13 -0
  240. package/lib/commands/pg/links/index.js +59 -0
  241. package/lib/commands/pg/locks.d.ts +15 -0
  242. package/lib/commands/pg/locks.js +53 -0
  243. package/lib/commands/pg/maintenance/index.d.ts +13 -0
  244. package/lib/commands/pg/maintenance/index.js +29 -0
  245. package/lib/commands/pg/maintenance/run.d.ts +14 -0
  246. package/lib/commands/pg/maintenance/run.js +37 -0
  247. package/lib/commands/pg/maintenance/window.d.ts +15 -0
  248. package/lib/commands/pg/maintenance/window.js +41 -0
  249. package/lib/commands/pg/outliers.d.ts +19 -0
  250. package/lib/commands/pg/outliers.js +97 -0
  251. package/lib/commands/pg/promote.d.ts +14 -0
  252. package/lib/commands/pg/promote.js +169 -0
  253. package/lib/commands/pg/ps.d.ts +14 -0
  254. package/lib/commands/pg/ps.js +52 -0
  255. package/lib/commands/pg/psql.d.ts +16 -0
  256. package/lib/commands/pg/psql.js +49 -0
  257. package/lib/commands/pg/pull.d.ts +18 -0
  258. package/lib/commands/pg/pull.js +87 -0
  259. package/lib/commands/pg/push.d.ts +18 -0
  260. package/lib/commands/pg/push.js +84 -0
  261. package/lib/commands/pg/reset.d.ts +15 -0
  262. package/lib/commands/pg/reset.js +44 -0
  263. package/lib/commands/pg/settings/auto-explain/log-analyze.d.ts +13 -0
  264. package/lib/commands/pg/settings/auto-explain/log-analyze.js +32 -0
  265. package/lib/commands/pg/settings/auto-explain/log-buffers.d.ts +13 -0
  266. package/lib/commands/pg/settings/auto-explain/log-buffers.js +30 -0
  267. package/lib/commands/pg/settings/auto-explain/log-min-duration.d.ts +16 -0
  268. package/lib/commands/pg/settings/auto-explain/log-min-duration.js +33 -0
  269. package/lib/commands/pg/settings/auto-explain/log-nested-statements.d.ts +12 -0
  270. package/lib/commands/pg/settings/auto-explain/log-nested-statements.js +25 -0
  271. package/lib/commands/pg/settings/auto-explain/log-triggers.d.ts +13 -0
  272. package/lib/commands/pg/settings/auto-explain/log-triggers.js +30 -0
  273. package/lib/commands/pg/settings/auto-explain/log-verbose.d.ts +17 -0
  274. package/lib/commands/pg/settings/auto-explain/log-verbose.js +33 -0
  275. package/lib/commands/pg/settings/auto-explain.d.ts +18 -0
  276. package/lib/commands/pg/settings/auto-explain.js +38 -0
  277. package/lib/commands/pg/settings/index.d.ts +13 -0
  278. package/lib/commands/pg/settings/index.js +34 -0
  279. package/lib/commands/pg/settings/log-connections.d.ts +17 -0
  280. package/lib/commands/pg/settings/log-connections.js +34 -0
  281. package/lib/commands/pg/settings/log-lock-waits.d.ts +13 -0
  282. package/lib/commands/pg/settings/log-lock-waits.js +31 -0
  283. package/lib/commands/pg/settings/log-min-duration-statement.d.ts +15 -0
  284. package/lib/commands/pg/settings/log-min-duration-statement.js +33 -0
  285. package/lib/commands/pg/settings/log-statement.d.ts +12 -0
  286. package/lib/commands/pg/settings/log-statement.js +30 -0
  287. package/lib/commands/pg/settings/track-functions.d.ts +12 -0
  288. package/lib/commands/pg/settings/track-functions.js +29 -0
  289. package/lib/commands/pg/unfollow.d.ts +14 -0
  290. package/lib/commands/pg/unfollow.js +40 -0
  291. package/lib/commands/pg/upgrade.d.ts +15 -0
  292. package/lib/commands/pg/upgrade.js +58 -0
  293. package/lib/commands/pg/vacuum-stats.d.ts +13 -0
  294. package/lib/commands/pg/vacuum-stats.js +65 -0
  295. package/lib/commands/pg/wait.d.ts +15 -0
  296. package/lib/commands/pg/wait.js +79 -0
  297. package/lib/commands/pipelines/connect.js +1 -1
  298. package/lib/commands/pipelines/diff.js +1 -1
  299. package/lib/commands/ps/index.d.ts +15 -0
  300. package/lib/commands/ps/index.js +195 -0
  301. package/lib/commands/ps/restart.d.ts +17 -0
  302. package/lib/commands/ps/restart.js +38 -0
  303. package/lib/commands/ps/scale.d.ts +13 -0
  304. package/lib/commands/ps/scale.js +108 -0
  305. package/lib/commands/ps/stop.d.ts +17 -0
  306. package/lib/commands/ps/stop.js +33 -0
  307. package/lib/commands/ps/type.d.ts +12 -0
  308. package/lib/commands/ps/type.js +163 -0
  309. package/lib/commands/redis/cli.d.ts +15 -0
  310. package/lib/commands/redis/cli.js +204 -0
  311. package/lib/commands/redis/credentials.d.ts +14 -0
  312. package/lib/commands/redis/credentials.js +32 -0
  313. package/lib/commands/redis/info.d.ts +15 -0
  314. package/lib/commands/redis/info.js +25 -0
  315. package/lib/commands/redis/keyspace-notifications.d.ts +14 -0
  316. package/lib/commands/redis/keyspace-notifications.js +47 -0
  317. package/lib/commands/redis/maintenance.d.ts +16 -0
  318. package/lib/commands/redis/maintenance.js +63 -0
  319. package/lib/commands/redis/maxmemory.d.ts +14 -0
  320. package/lib/commands/redis/maxmemory.js +40 -0
  321. package/lib/commands/redis/promote.d.ts +13 -0
  322. package/lib/commands/redis/promote.js +39 -0
  323. package/lib/commands/redis/stats-reset.d.ts +14 -0
  324. package/lib/commands/redis/stats-reset.js +36 -0
  325. package/lib/commands/redis/timeout.d.ts +14 -0
  326. package/lib/commands/redis/timeout.js +35 -0
  327. package/lib/commands/redis/upgrade.d.ts +15 -0
  328. package/lib/commands/redis/upgrade.js +37 -0
  329. package/lib/commands/redis/wait.d.ts +14 -0
  330. package/lib/commands/redis/wait.js +60 -0
  331. package/lib/commands/releases/index.d.ts +14 -0
  332. package/lib/commands/releases/index.js +124 -0
  333. package/lib/commands/releases/info.d.ts +15 -0
  334. package/lib/commands/releases/info.js +56 -0
  335. package/lib/commands/releases/output.d.ts +13 -0
  336. package/lib/commands/releases/output.js +37 -0
  337. package/lib/commands/releases/rollback.d.ts +14 -0
  338. package/lib/commands/releases/rollback.js +48 -0
  339. package/lib/commands/run/detached.d.ts +7 -8
  340. package/lib/commands/run/detached.js +16 -20
  341. package/lib/commands/run/index.d.ts +10 -11
  342. package/lib/commands/run/index.js +16 -17
  343. package/lib/commands/run/inside.d.ts +5 -7
  344. package/lib/commands/run/inside.js +10 -14
  345. package/lib/commands/spaces/create.d.ts +22 -0
  346. package/lib/commands/spaces/create.js +73 -0
  347. package/lib/commands/spaces/destroy.d.ts +14 -0
  348. package/lib/commands/spaces/destroy.js +49 -0
  349. package/lib/commands/spaces/drains/get.d.ts +12 -0
  350. package/lib/commands/spaces/drains/get.js +27 -0
  351. package/lib/commands/spaces/drains/set.d.ts +14 -0
  352. package/lib/commands/spaces/drains/set.js +29 -0
  353. package/lib/commands/spaces/hosts.d.ts +14 -0
  354. package/lib/commands/spaces/hosts.js +37 -0
  355. package/lib/commands/spaces/index.d.ts +16 -0
  356. package/lib/commands/spaces/index.js +55 -0
  357. package/lib/commands/spaces/info.d.ts +14 -0
  358. package/lib/commands/spaces/info.js +47 -0
  359. package/lib/commands/spaces/outbound-rules/add.d.ts +15 -0
  360. package/lib/commands/spaces/outbound-rules/add.js +81 -0
  361. package/lib/commands/spaces/outbound-rules/index.d.ts +15 -0
  362. package/lib/commands/spaces/outbound-rules/index.js +49 -0
  363. package/lib/commands/spaces/outbound-rules/remove.d.ts +17 -0
  364. package/lib/commands/spaces/outbound-rules/remove.js +53 -0
  365. package/lib/commands/spaces/peerings/accept.d.ts +15 -0
  366. package/lib/commands/spaces/peerings/accept.js +36 -0
  367. package/lib/commands/spaces/peerings/destroy.d.ts +15 -0
  368. package/lib/commands/spaces/peerings/destroy.js +45 -0
  369. package/lib/commands/spaces/peerings/index.d.ts +13 -0
  370. package/lib/commands/spaces/peerings/index.js +33 -0
  371. package/lib/commands/spaces/peerings/info.d.ts +15 -0
  372. package/lib/commands/spaces/peerings/info.js +59 -0
  373. package/lib/commands/spaces/ps.d.ts +15 -0
  374. package/lib/commands/spaces/ps.js +82 -0
  375. package/lib/commands/spaces/rename.d.ts +11 -0
  376. package/lib/commands/spaces/rename.js +26 -0
  377. package/lib/commands/spaces/topology.d.ts +32 -0
  378. package/lib/commands/spaces/topology.js +89 -0
  379. package/lib/commands/spaces/transfer.d.ts +11 -0
  380. package/lib/commands/spaces/transfer.js +35 -0
  381. package/lib/commands/spaces/trusted-ips/add.d.ts +16 -0
  382. package/lib/commands/spaces/trusted-ips/add.js +43 -0
  383. package/lib/commands/spaces/trusted-ips/index.d.ts +15 -0
  384. package/lib/commands/spaces/trusted-ips/index.js +52 -0
  385. package/lib/commands/spaces/trusted-ips/remove.d.ts +15 -0
  386. package/lib/commands/spaces/trusted-ips/remove.js +44 -0
  387. package/lib/commands/spaces/vpn/config.d.ts +14 -0
  388. package/lib/commands/spaces/vpn/config.js +54 -0
  389. package/lib/commands/spaces/vpn/connect.d.ts +15 -0
  390. package/lib/commands/spaces/vpn/connect.js +45 -0
  391. package/lib/commands/spaces/vpn/connections.d.ts +17 -0
  392. package/lib/commands/spaces/vpn/connections.js +57 -0
  393. package/lib/commands/spaces/vpn/destroy.d.ts +14 -0
  394. package/lib/commands/spaces/vpn/destroy.js +35 -0
  395. package/lib/commands/spaces/vpn/info.d.ts +16 -0
  396. package/lib/commands/spaces/vpn/info.js +82 -0
  397. package/lib/commands/spaces/vpn/update.d.ts +14 -0
  398. package/lib/commands/spaces/vpn/update.js +36 -0
  399. package/lib/commands/spaces/vpn/wait.d.ts +13 -0
  400. package/lib/commands/spaces/vpn/wait.js +53 -0
  401. package/lib/commands/spaces/wait.d.ts +17 -0
  402. package/lib/commands/spaces/wait.js +89 -0
  403. package/lib/commands/status.js +4 -4
  404. package/lib/commands/teams/index.d.ts +9 -0
  405. package/lib/commands/teams/index.js +29 -0
  406. package/lib/global_telemetry.js +10 -4
  407. package/lib/hooks/postrun/performance_analytics.js +5 -4
  408. package/lib/hooks/prerun/analytics.js +3 -0
  409. package/lib/lib/addons/addons_wait.d.ts +78 -0
  410. package/lib/lib/addons/addons_wait.js +56 -0
  411. package/lib/lib/addons/create_addon.d.ts +7 -0
  412. package/lib/lib/addons/create_addon.js +59 -0
  413. package/lib/lib/addons/destroy_addon.d.ts +3 -0
  414. package/lib/lib/addons/destroy_addon.js +48 -0
  415. package/lib/lib/addons/resolve.d.ts +38 -0
  416. package/lib/lib/addons/resolve.js +179 -0
  417. package/lib/lib/addons/util.d.ts +9 -0
  418. package/lib/lib/addons/util.js +72 -0
  419. package/lib/lib/apps/app-transfer.d.ts +10 -0
  420. package/lib/lib/apps/app-transfer.js +35 -0
  421. package/lib/lib/autocomplete/completions.d.ts +4 -0
  422. package/lib/lib/autocomplete/completions.js +6 -1
  423. package/lib/lib/certs/certificate_details.d.ts +2 -0
  424. package/lib/lib/certs/certificate_details.js +37 -0
  425. package/lib/lib/certs/display_table.d.ts +2 -0
  426. package/lib/lib/certs/display_table.js +51 -0
  427. package/lib/lib/certs/domains.d.ts +3 -0
  428. package/lib/lib/certs/domains.js +45 -0
  429. package/lib/lib/certs/flags.d.ts +7 -0
  430. package/lib/lib/certs/flags.js +42 -0
  431. package/lib/lib/certs/format_date.d.ts +1 -0
  432. package/lib/lib/certs/format_date.js +11 -0
  433. package/lib/lib/certs/get_cert_and_key.d.ts +9 -0
  434. package/lib/lib/certs/get_cert_and_key.js +11 -0
  435. package/lib/lib/ci/interfaces/kolkrabbi.d.ts +1 -1
  436. package/lib/lib/ci/source.js +3 -3
  437. package/lib/lib/ci/test-run.js +2 -2
  438. package/lib/lib/config/quote.js +1 -1
  439. package/lib/lib/confirmCommand.d.ts +1 -0
  440. package/lib/lib/{apps/confirm-app.js → confirmCommand.js} +2 -2
  441. package/lib/lib/container/debug.d.ts +2 -0
  442. package/lib/lib/container/debug.js +5 -0
  443. package/lib/lib/container/docker_helper.d.ts +24 -0
  444. package/lib/lib/container/docker_helper.js +168 -0
  445. package/lib/lib/container/streamer.d.ts +1 -0
  446. package/lib/lib/container/streamer.js +31 -0
  447. package/lib/lib/domains/domains.d.ts +6 -0
  448. package/lib/lib/domains/domains.js +104 -0
  449. package/lib/lib/local/run-foreman.d.ts +1 -0
  450. package/lib/lib/local/run-foreman.js +229 -1
  451. package/lib/lib/members/util.d.ts +3 -0
  452. package/lib/lib/members/util.js +25 -0
  453. package/lib/lib/members/utils.d.ts +2 -0
  454. package/lib/lib/members/utils.js +14 -0
  455. package/lib/lib/notify.d.ts +1 -0
  456. package/lib/lib/notify.js +23 -0
  457. package/lib/lib/orgs/utils.d.ts +5 -0
  458. package/lib/lib/orgs/utils.js +24 -0
  459. package/lib/lib/pg/backups.d.ts +17 -0
  460. package/lib/lib/pg/backups.js +164 -0
  461. package/lib/lib/pg/bastion.d.ts +29 -0
  462. package/lib/lib/pg/bastion.js +121 -0
  463. package/lib/lib/pg/config.d.ts +2 -0
  464. package/lib/lib/pg/config.js +13 -0
  465. package/lib/lib/pg/download.d.ts +5 -0
  466. package/lib/lib/pg/download.js +34 -0
  467. package/lib/lib/pg/fetcher.d.ts +39 -0
  468. package/lib/lib/pg/fetcher.js +137 -0
  469. package/lib/lib/pg/host.d.ts +1 -0
  470. package/lib/lib/pg/host.js +7 -0
  471. package/lib/lib/pg/psql.d.ts +48 -0
  472. package/lib/lib/pg/psql.js +252 -0
  473. package/lib/lib/pg/push_pull.d.ts +13 -0
  474. package/lib/lib/pg/push_pull.js +118 -0
  475. package/lib/lib/pg/setter.d.ts +16 -0
  476. package/lib/lib/pg/setter.js +65 -0
  477. package/lib/lib/pg/types.d.ts +230 -0
  478. package/lib/lib/pg/types.js +2 -0
  479. package/lib/lib/pg/util.d.ts +36 -0
  480. package/lib/lib/pg/util.js +183 -0
  481. package/lib/lib/redis/api.d.ts +65 -0
  482. package/lib/lib/redis/api.js +122 -0
  483. package/lib/lib/releases/output.d.ts +1 -0
  484. package/lib/lib/releases/output.js +14 -0
  485. package/lib/lib/releases/releases.d.ts +6 -0
  486. package/lib/lib/releases/releases.js +32 -0
  487. package/lib/lib/releases/status_helper.d.ts +5 -0
  488. package/lib/lib/releases/status_helper.js +25 -0
  489. package/lib/lib/run/dyno.js +2 -2
  490. package/lib/lib/run/log-displayer.d.ts +1 -1
  491. package/lib/lib/spaces/format.d.ts +4 -0
  492. package/lib/lib/spaces/format.js +60 -0
  493. package/lib/lib/spaces/hosts.d.ts +9 -0
  494. package/lib/lib/spaces/hosts.js +34 -0
  495. package/lib/lib/spaces/outbound-rules.d.ts +4 -0
  496. package/lib/lib/spaces/outbound-rules.js +78 -0
  497. package/lib/lib/spaces/parsers.d.ts +8 -0
  498. package/lib/lib/spaces/parsers.js +17 -0
  499. package/lib/lib/spaces/peering.d.ts +4 -0
  500. package/lib/lib/spaces/peering.js +53 -0
  501. package/lib/lib/spaces/spaces.d.ts +4 -0
  502. package/lib/lib/spaces/spaces.js +37 -0
  503. package/lib/lib/spaces/vpn-connections.d.ts +2 -0
  504. package/lib/lib/spaces/vpn-connections.js +22 -0
  505. package/lib/lib/teamUtils.d.ts +3 -0
  506. package/lib/lib/teamUtils.js +18 -0
  507. package/lib/lib/time.d.ts +2 -0
  508. package/lib/lib/time.js +29 -0
  509. package/lib/lib/types/app_errors.d.ts +6 -0
  510. package/lib/lib/types/app_errors.js +2 -0
  511. package/lib/lib/types/domain.d.ts +61 -0
  512. package/lib/lib/types/domain.js +5 -0
  513. package/lib/lib/types/notifications.d.ts +20 -0
  514. package/lib/lib/types/notifications.js +2 -0
  515. package/lib/lib/utils/multisort.d.ts +32 -0
  516. package/lib/lib/utils/multisort.js +66 -0
  517. package/lib/lib/utils/uuid-validate.d.ts +1 -0
  518. package/lib/lib/utils/uuid-validate.js +7 -0
  519. package/lib/user-config.js +2 -2
  520. package/oclif.manifest.json +12776 -3097
  521. package/package.json +108 -61
  522. package/lib/lib/apps/confirm-app.d.ts +0 -1
@@ -0,0 +1,28 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ import type { Plan } from '@heroku-cli/schema';
3
+ export default class Upgrade extends Command {
4
+ static aliases: string[];
5
+ static topic: string;
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ };
12
+ static args: {
13
+ addon: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
14
+ plan: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
15
+ };
16
+ private parsed;
17
+ run(): Promise<void>;
18
+ protected getAddonPartsFromArgs(args: {
19
+ addon: string;
20
+ plan: string | undefined;
21
+ }): {
22
+ plan: string;
23
+ addon: string;
24
+ };
25
+ protected buildNoPlanError(addon: string): string;
26
+ protected buildApiErrorMessage(errorMessage: string, ctx: Awaited<typeof this.parsed>): string;
27
+ protected getPlans(addonServiceName: string | undefined): Promise<Plan[]>;
28
+ }
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const color_1 = require("@heroku-cli/color");
4
+ const command_1 = require("@heroku-cli/command");
5
+ const core_1 = require("@oclif/core");
6
+ const util_1 = require("../../lib/addons/util");
7
+ const resolve_1 = require("../../lib/addons/resolve");
8
+ const api_client_1 = require("@heroku-cli/command/lib/api-client");
9
+ class Upgrade extends command_1.Command {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.parsed = this.parse(Upgrade);
13
+ }
14
+ async run() {
15
+ var _a, _b;
16
+ const ctx = await this.parsed;
17
+ const { flags: { app }, args } = ctx;
18
+ // called with just one argument in the form of `heroku addons:upgrade heroku-redis:hobby`
19
+ const { addon, plan } = this.getAddonPartsFromArgs(args);
20
+ let resolvedAddon;
21
+ try {
22
+ resolvedAddon = await (0, resolve_1.addonResolver)(this.heroku, app, addon);
23
+ }
24
+ catch (error) {
25
+ if (error instanceof api_client_1.HerokuAPIError && error.http.statusCode === 422 && error.body.id === 'multiple_matches') {
26
+ throw new Error(this.buildApiErrorMessage(error.http.body.message, ctx));
27
+ }
28
+ throw error;
29
+ }
30
+ const { name: addonServiceName } = resolvedAddon.addon_service;
31
+ const { name: appName } = resolvedAddon.app;
32
+ const { name: addonName, plan: resolvedAddonPlan } = resolvedAddon !== null && resolvedAddon !== void 0 ? resolvedAddon : {};
33
+ const updatedPlanName = `${addonServiceName}:${plan}`;
34
+ core_1.ux.action.start(`Changing ${color_1.default.magenta(addonName !== null && addonName !== void 0 ? addonName : '')} on ${color_1.default.cyan(appName !== null && appName !== void 0 ? appName : '')} from ${color_1.default.blue((_a = resolvedAddonPlan === null || resolvedAddonPlan === void 0 ? void 0 : resolvedAddonPlan.name) !== null && _a !== void 0 ? _a : '')} to ${color_1.default.blue(updatedPlanName)}`);
35
+ try {
36
+ const patchResult = await this.heroku.patch(`/apps/${appName}/addons/${addonName}`, {
37
+ body: { plan: { name: updatedPlanName } },
38
+ headers: {
39
+ 'Accept-Expansion': 'plan', 'X-Heroku-Legacy-Provider-Messages': 'true',
40
+ },
41
+ });
42
+ resolvedAddon = patchResult.body;
43
+ }
44
+ catch (error) {
45
+ let errorToThrow = error;
46
+ if (error instanceof api_client_1.HerokuAPIError) {
47
+ const { http } = error;
48
+ if (http.statusCode === 422 &&
49
+ http.body.message &&
50
+ http.body.message.startsWith('Couldn\'t find either the add-on')) {
51
+ const plans = await this.getPlans(addonServiceName);
52
+ errorToThrow = new Error(`${http.body.message}
53
+
54
+ Here are the available plans for ${color_1.default.yellow(addonServiceName || '')}:
55
+ ${plans.map(plan => plan.name).join('\n')}\n\nSee more plan information with ${color_1.default.blue('heroku addons:plans ' + addonServiceName)}
56
+
57
+ ${color_1.default.cyan('https://devcenter.heroku.com/articles/managing-add-ons')}`);
58
+ }
59
+ core_1.ux.action.stop();
60
+ throw errorToThrow;
61
+ }
62
+ }
63
+ core_1.ux.action.stop(`done${((_b = resolvedAddon.plan) === null || _b === void 0 ? void 0 : _b.price) ? `, ${(0, util_1.formatPriceText)(resolvedAddon.plan.price)}` : ''}`);
64
+ if (resolvedAddon.provision_message) {
65
+ core_1.ux.log(resolvedAddon.provision_message);
66
+ }
67
+ }
68
+ getAddonPartsFromArgs(args) {
69
+ let { addon, plan } = args;
70
+ if (!plan && addon.includes(':')) {
71
+ ([addon, plan] = addon.split(':'));
72
+ }
73
+ if (!plan) {
74
+ throw new Error(this.buildNoPlanError(addon));
75
+ }
76
+ // ignore the service part of the plan since we can infer the service based on the add-on
77
+ if (plan.includes(':')) {
78
+ plan = plan.split(':')[1];
79
+ }
80
+ return { plan, addon };
81
+ }
82
+ buildNoPlanError(addon) {
83
+ return `Error: No plan specified.
84
+ You need to specify a plan to move ${color_1.default.yellow(addon)} to.
85
+ For example: ${color_1.default.blue('heroku addons:upgrade heroku-redis:premium-0')}
86
+ ${color_1.default.cyan('https://devcenter.heroku.com/articles/managing-add-ons')}`;
87
+ }
88
+ buildApiErrorMessage(errorMessage, ctx) {
89
+ const { flags: { app }, args: { addon, plan } } = ctx;
90
+ const example = errorMessage.split(', ')[2] || 'redis-triangular-1234';
91
+ return `${errorMessage}
92
+
93
+ Multiple add-ons match ${color_1.default.yellow(addon)}${app ? ' on ' + app : ''}
94
+ It is not clear which add-on's plan you are trying to change.
95
+
96
+ Specify the add-on name instead of the name of the add-on service.
97
+ For example, instead of: ${color_1.default.blue('heroku addons:upgrade ' + addon + ' ' + (plan || ''))}
98
+ Run this: ${color_1.default.blue('heroku addons:upgrade ' + example + ' ' + addon + ':' + plan)}
99
+ ${app ? '' : 'Alternatively, specify an app to filter by with ' + color_1.default.blue('--app')}
100
+ ${color_1.default.cyan('https://devcenter.heroku.com/articles/managing-add-ons')}`;
101
+ }
102
+ async getPlans(addonServiceName) {
103
+ try {
104
+ const plansResponse = await this.heroku.get(`/addon-services/${addonServiceName}/plans`);
105
+ const { body: plans } = plansResponse;
106
+ plans.sort((a, b) => {
107
+ var _a, _b, _c, _d;
108
+ if (((_a = a === null || a === void 0 ? void 0 : a.price) === null || _a === void 0 ? void 0 : _a.cents) === ((_b = b === null || b === void 0 ? void 0 : b.price) === null || _b === void 0 ? void 0 : _b.cents)) {
109
+ return 0;
110
+ }
111
+ if (!((_c = a === null || a === void 0 ? void 0 : a.price) === null || _c === void 0 ? void 0 : _c.cents) || !((_d = b === null || b === void 0 ? void 0 : b.price) === null || _d === void 0 ? void 0 : _d.cents) || a.price.cents > b.price.cents) {
112
+ return 1;
113
+ }
114
+ if (a.price.cents < b.price.cents) {
115
+ return -1;
116
+ }
117
+ return 0;
118
+ });
119
+ return plans;
120
+ }
121
+ catch (_a) {
122
+ return [];
123
+ }
124
+ }
125
+ }
126
+ exports.default = Upgrade;
127
+ Upgrade.aliases = ['addons:downgrade'];
128
+ Upgrade.topic = 'addons';
129
+ Upgrade.description = `change add-on plan.
130
+ See available plans with \`heroku addons:plans SERVICE\`.
131
+
132
+ Note that \`heroku addons:upgrade\` and \`heroku addons:downgrade\` are the same.\
133
+ Either one can be used to change an add-on plan up or down.
134
+
135
+ https://devcenter.heroku.com/articles/managing-add-ons
136
+ `;
137
+ Upgrade.examples = ['Upgrade an add-on by service name:\n$ heroku addons:upgrade heroku-redis:premium-2\n\nUpgrade a specific add-on:\n$ heroku addons:upgrade swimming-briskly-123 heroku-redis:premium-2'];
138
+ Upgrade.flags = {
139
+ app: command_1.flags.app(),
140
+ remote: command_1.flags.remote(),
141
+ };
142
+ Upgrade.args = {
143
+ addon: core_1.Args.string({ required: true }),
144
+ plan: core_1.Args.string(),
145
+ };
@@ -0,0 +1,14 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Wait extends Command {
3
+ static topic: string;
4
+ static description: string;
5
+ static flags: {
6
+ 'wait-interval': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
7
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
10
+ static args: {
11
+ addon: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const color_1 = require("@heroku-cli/color");
4
+ const command_1 = require("@heroku-cli/command");
5
+ const core_1 = require("@oclif/core");
6
+ const resolve_1 = require("../../lib/addons/resolve");
7
+ const addons_wait_1 = require("../../lib/addons/addons_wait");
8
+ const notify_1 = require("../../lib/notify");
9
+ class Wait extends command_1.Command {
10
+ async run() {
11
+ const { flags, args } = await this.parse(Wait);
12
+ let addonsToWaitFor;
13
+ if (args.addon) {
14
+ addonsToWaitFor = [await (0, resolve_1.resolveAddon)(this.heroku, flags.app, args.addon)];
15
+ }
16
+ else if (flags.app) {
17
+ const { body: addons } = await this.heroku.get(`/apps/${flags.app}/addons`);
18
+ addonsToWaitFor = addons;
19
+ }
20
+ else {
21
+ const { body: addons } = await this.heroku.get('/addons');
22
+ addonsToWaitFor = addons;
23
+ }
24
+ addonsToWaitFor = addonsToWaitFor.filter((addon) => addon.state === 'provisioning' || addon.state === 'deprovisioning');
25
+ let interval = Number.parseInt(flags['wait-interval'] || '', 10);
26
+ if (!interval || interval < 0) {
27
+ interval = 5;
28
+ }
29
+ for (const addon of addonsToWaitFor) {
30
+ const startTime = new Date();
31
+ const addonName = addon.name || '';
32
+ if (addon.state === 'provisioning') {
33
+ let addonResponse;
34
+ try {
35
+ addonResponse = await (0, addons_wait_1.waitForAddonProvisioning)(this.heroku, addon, interval);
36
+ }
37
+ catch (error) {
38
+ (0, notify_1.default)(`heroku addons:wait ${addonName}`, 'Add-on failed to provision', false);
39
+ throw error;
40
+ }
41
+ const configVars = (addonResponse.config_vars || []);
42
+ if (configVars.length > 0) {
43
+ const decoratedConfigVars = configVars.map(c => color_1.default.green(c))
44
+ .join(', ');
45
+ core_1.ux.log(`Created ${color_1.default.yellow(addonName)} as ${decoratedConfigVars}`);
46
+ }
47
+ if (Date.now() - startTime.valueOf() >= 1000 * 5) {
48
+ (0, notify_1.default)(`heroku addons:wait ${addonName}`, 'Add-on successfully provisioned');
49
+ }
50
+ }
51
+ else if (addon.state === 'deprovisioning') {
52
+ await (0, addons_wait_1.waitForAddonDeprovisioning)(this.heroku, addon, interval);
53
+ if (Date.now() - startTime.valueOf() >= 1000 * 5) {
54
+ (0, notify_1.default)(`heroku addons:wait ${addonName}`, 'Add-on successfully deprovisioned');
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ exports.default = Wait;
61
+ Wait.topic = 'addons';
62
+ Wait.description = 'show provisioning status of the add-ons on the app';
63
+ Wait.flags = {
64
+ 'wait-interval': command_1.flags.string({ description: 'how frequently to poll in seconds' }),
65
+ app: command_1.flags.app(),
66
+ remote: command_1.flags.remote(),
67
+ };
68
+ Wait.args = {
69
+ addon: core_1.Args.string(),
70
+ };
@@ -2,10 +2,10 @@ import { Command } from '@heroku-cli/command';
2
2
  import { Interfaces } from '@oclif/core';
3
3
  export default class Create extends Command {
4
4
  static description: string;
5
- static aliases: string[];
5
+ static hiddenAliases: string[];
6
6
  static examples: string[];
7
7
  static args: {
8
- apps: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
8
+ app: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
9
9
  };
10
10
  static flags: {
11
11
  app: Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const js_yaml_1 = require("js-yaml");
3
+ const yaml = require("js-yaml");
4
4
  const fs_extra_1 = require("fs-extra");
5
5
  const command_1 = require("@heroku-cli/command");
6
6
  const completions_1 = require("@heroku-cli/command/lib/completions");
@@ -115,7 +115,7 @@ async function runFromFlags(context, heroku, config) {
115
115
  }
116
116
  async function readManifest() {
117
117
  const buffer = await (0, fs_extra_1.readFile)('heroku.yml');
118
- return (0, js_yaml_1.load)(buffer.toString(), { filename: 'heroku.yml' });
118
+ return yaml.load(buffer.toString(), { filename: 'heroku.yml' });
119
119
  }
120
120
  async function runFromManifest(context, heroku) {
121
121
  const { flags, args } = context;
@@ -147,7 +147,7 @@ class Create extends command_1.Command {
147
147
  }
148
148
  exports.default = Create;
149
149
  Create.description = 'creates a new app';
150
- Create.aliases = ['create'];
150
+ Create.hiddenAliases = ['create'];
151
151
  Create.examples = [
152
152
  `$ heroku apps:create
153
153
  Creating app... done, stack is heroku-22
@@ -172,20 +172,27 @@ $ heroku apps:create example-staging --remote staging
172
172
  $ heroku apps:create --region eu`,
173
173
  ];
174
174
  Create.args = {
175
- apps: core_1.Args.string({ description: 'name of app to create', required: false }),
175
+ app: core_1.Args.string({ description: 'name of app to create', required: false }),
176
176
  };
177
177
  Create.flags = {
178
178
  // `app` set to `flags.string` instead of `flags.app` to maintain original v5 functionality and avoid a default value from the git remote set when used without an app
179
179
  app: command_1.flags.string({ hidden: true }),
180
180
  addons: command_1.flags.string({ description: 'comma-delimited list of addons to install' }),
181
- buildpack: command_1.flags.string({ char: 'b', description: 'buildpack url to use for this app', completion: completions_1.BuildpackCompletion }),
181
+ buildpack: command_1.flags.string({
182
+ char: 'b',
183
+ description: 'buildpack url to use for this app',
184
+ completion: completions_1.BuildpackCompletion,
185
+ }),
182
186
  manifest: command_1.flags.boolean({ char: 'm', description: 'use heroku.yml settings for this app', hidden: true }),
183
187
  'no-remote': command_1.flags.boolean({ char: 'n', description: 'do not create a git remote' }),
184
188
  remote: command_1.flags.remote({ description: 'the git remote to create, default "heroku"', default: 'heroku' }),
185
189
  stack: command_1.flags.string({ char: 's', description: 'the stack to create the app on', completion: completions_1.StackCompletion }),
186
190
  space: command_1.flags.string({ description: 'the private space to create the app in', completion: completions_1.SpaceCompletion }),
187
191
  region: command_1.flags.string({ description: 'specify region for the app to run in', completion: completions_1.RegionCompletion }),
188
- 'internal-routing': command_1.flags.boolean({ hidden: true, description: 'private space-only. create as an Internal Web App that is only routable in the local network.' }),
192
+ 'internal-routing': command_1.flags.boolean({
193
+ hidden: true,
194
+ description: 'private space-only. create as an Internal Web App that is only routable in the local network.',
195
+ }),
189
196
  features: command_1.flags.string({ hidden: true }),
190
197
  kernel: command_1.flags.string({ hidden: true }),
191
198
  locked: command_1.flags.boolean({ hidden: true }),
@@ -2,9 +2,10 @@ import { Command } from '@heroku-cli/command';
2
2
  export default class Destroy extends Command {
3
3
  static description: string;
4
4
  static help: string;
5
- static aliases: string[];
5
+ static hiddenAliases: string[];
6
6
  static flags: {
7
7
  app: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
9
  confirm: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
10
  };
10
11
  static args: {
@@ -4,7 +4,7 @@ const color_1 = require("@heroku-cli/color");
4
4
  const command_1 = require("@heroku-cli/command");
5
5
  const core_1 = require("@oclif/core");
6
6
  const lodash_1 = require("lodash");
7
- const confirm_app_1 = require("../../lib/apps/confirm-app");
7
+ const confirmCommand_1 = require("../../lib/confirmCommand");
8
8
  const git = require("../../lib/ci/git");
9
9
  class Destroy extends command_1.Command {
10
10
  async run() {
@@ -14,7 +14,7 @@ class Destroy extends command_1.Command {
14
14
  throw new Error('No app specified.\nUSAGE: heroku apps:destroy APPNAME');
15
15
  // this appears to report errors if app not found
16
16
  await this.heroku.get(`/apps/${app}`);
17
- await (0, confirm_app_1.default)(app, flags.confirm, `WARNING: This will delete ${color_1.default.app(app)} including all add-ons.`);
17
+ await (0, confirmCommand_1.default)(app, flags.confirm, `WARNING: This will delete ${color_1.default.app(app)} including all add-ons.`);
18
18
  core_1.ux.action.start(`Destroying ${color_1.default.app(app)} (including all add-ons)`);
19
19
  await this.heroku.delete(`/apps/${app}`);
20
20
  if (git.inGitRepo()) {
@@ -36,9 +36,10 @@ class Destroy extends command_1.Command {
36
36
  exports.default = Destroy;
37
37
  Destroy.description = 'permanently destroy an app';
38
38
  Destroy.help = 'This will also destroy all add-ons on the app.';
39
- Destroy.aliases = ['destroy', 'apps:delete'];
39
+ Destroy.hiddenAliases = ['destroy', 'apps:delete'];
40
40
  Destroy.flags = {
41
41
  app: command_1.flags.app(),
42
+ remote: command_1.flags.remote(),
42
43
  confirm: command_1.flags.string({ char: 'c' }),
43
44
  };
44
45
  Destroy.args = {
@@ -3,6 +3,7 @@ export default class Errors extends Command {
3
3
  static description: string;
4
4
  static flags: {
5
5
  app: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
6
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
6
7
  json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
8
  hours: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
9
  router: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
@@ -112,6 +112,7 @@ exports.default = Errors;
112
112
  Errors.description = 'view app errors';
113
113
  Errors.flags = {
114
114
  app: command_1.flags.app({ required: true }),
115
+ remote: command_1.flags.remote(),
115
116
  json: command_1.flags.boolean({ description: 'output in json format' }),
116
117
  hours: command_1.flags.string({ description: 'number of hours to look back (default 24)', default: '24' }),
117
118
  router: command_1.flags.boolean({ description: 'show only router errors' }),
@@ -4,6 +4,7 @@ export default class Add extends Command {
4
4
  static topic: string;
5
5
  static flags: {
6
6
  app: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
7
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
7
8
  };
8
9
  run(): Promise<void>;
9
10
  }
@@ -34,4 +34,5 @@ Add.description = 'favorites an app';
34
34
  Add.topic = 'apps';
35
35
  Add.flags = {
36
36
  app: command_1.flags.app({ required: true }),
37
+ remote: command_1.flags.remote(),
37
38
  };
@@ -4,6 +4,7 @@ export default class Remove extends Command {
4
4
  static topic: string;
5
5
  static flags: {
6
6
  app: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
7
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
7
8
  };
8
9
  run(): Promise<void>;
9
10
  }
@@ -24,4 +24,5 @@ Remove.description = 'unfavorites an app';
24
24
  Remove.topic = 'apps';
25
25
  Remove.flags = {
26
26
  app: command_1.flags.app({ required: true }),
27
+ remote: command_1.flags.remote(),
27
28
  };
@@ -2,7 +2,7 @@ import { Command } from '@heroku-cli/command';
2
2
  export default class AppsIndex extends Command {
3
3
  static description: string;
4
4
  static topic: string;
5
- static aliases: string[];
5
+ static hiddenAliases: string[];
6
6
  static examples: string[];
7
7
  static flags: {
8
8
  all: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
@@ -101,7 +101,7 @@ class AppsIndex extends command_1.Command {
101
101
  exports.default = AppsIndex;
102
102
  AppsIndex.description = 'list your apps';
103
103
  AppsIndex.topic = 'apps';
104
- AppsIndex.aliases = ['list', 'apps:list'];
104
+ AppsIndex.hiddenAliases = ['list', 'apps:list'];
105
105
  AppsIndex.examples = [
106
106
  '$ heroku apps',
107
107
  ];
@@ -2,11 +2,12 @@ import { Command } from '@heroku-cli/command';
2
2
  export default class AppsInfo extends Command {
3
3
  static description: string;
4
4
  static topic: string;
5
- static aliases: string[];
5
+ static hiddenAliases: string[];
6
6
  static examples: string[];
7
7
  static help: string;
8
8
  static flags: {
9
9
  app: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
11
  shell: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
12
  extended: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
13
  json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
@@ -12,9 +12,7 @@ function formatDate(date) {
12
12
  async function getInfo(app, client, extended) {
13
13
  const promises = [
14
14
  client.heroku.get(`/apps/${app}/addons`),
15
- client.heroku.request(`/apps/${app}`, {
16
- headers: { Accept: 'application/vnd.heroku+json; version=3.cedar-acm' },
17
- }),
15
+ client.heroku.request(`/apps/${app}`),
18
16
  client.heroku.get(`/apps/${app}/dynos`).catch(() => ({ body: [] })),
19
17
  client.heroku.get(`/apps/${app}/collaborators`).catch(() => ({ body: [] })),
20
18
  client.heroku.get(`/apps/${app}/pipeline-couplings`).catch(() => ({ body: null })),
@@ -137,7 +135,7 @@ class AppsInfo extends command_1.Command {
137
135
  exports.default = AppsInfo;
138
136
  AppsInfo.description = 'show detailed app information';
139
137
  AppsInfo.topic = 'apps';
140
- AppsInfo.aliases = ['info'];
138
+ AppsInfo.hiddenAliases = ['info'];
141
139
  AppsInfo.examples = [
142
140
  '$ heroku apps:info',
143
141
  '$ heroku apps:info --shell',
@@ -154,6 +152,7 @@ repo_size=5000000
154
152
  ...`;
155
153
  AppsInfo.flags = {
156
154
  app: command_1.flags.app(),
155
+ remote: command_1.flags.remote(),
157
156
  shell: command_1.flags.boolean({ char: 's', description: 'output more shell friendly key/value pairs' }),
158
157
  extended: command_1.flags.boolean({ char: 'x', hidden: true }),
159
158
  json: command_1.flags.boolean({ char: 'j', description: 'output in json format' }),
@@ -0,0 +1,11 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class AppsJoin extends Command {
3
+ static topic: string;
4
+ static description: string;
5
+ static aliases: string[];
6
+ static flags: {
7
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const color_1 = require("@heroku-cli/color");
4
+ const command_1 = require("@heroku-cli/command");
5
+ const core_1 = require("@oclif/core");
6
+ class AppsJoin extends command_1.Command {
7
+ async run() {
8
+ const { flags } = await this.parse(AppsJoin);
9
+ const { app } = flags;
10
+ core_1.ux.action.start(`Joining ${color_1.default.cyan(app)}`);
11
+ const { body: user } = await this.heroku.get('/account');
12
+ await this.heroku.post(`/teams/apps/${app}/collaborators`, {
13
+ body: { user: user.email },
14
+ });
15
+ core_1.ux.action.stop();
16
+ }
17
+ }
18
+ exports.default = AppsJoin;
19
+ AppsJoin.topic = 'apps';
20
+ AppsJoin.description = 'add yourself to a team app';
21
+ AppsJoin.aliases = ['join'];
22
+ AppsJoin.flags = {
23
+ app: command_1.flags.app({ required: true }),
24
+ remote: command_1.flags.remote({ char: 'r' }),
25
+ };
@@ -0,0 +1,12 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Leave extends Command {
3
+ static topic: string;
4
+ static aliases: string[];
5
+ static description: string;
6
+ static example: string;
7
+ static flags: {
8
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const color_1 = require("@heroku-cli/color");
4
+ const command_1 = require("@heroku-cli/command");
5
+ const core_1 = require("@oclif/core");
6
+ class Leave extends command_1.Command {
7
+ async run() {
8
+ const { flags } = await this.parse(Leave);
9
+ const { app } = flags;
10
+ const request = await this.heroku.get('/account');
11
+ core_1.ux.action.start(`Leaving ${color_1.default.cyan(app)}`);
12
+ const { body: account } = request;
13
+ await this.heroku.delete(`/apps/${app}/collaborators/${encodeURIComponent(account.email)}`);
14
+ core_1.ux.action.stop();
15
+ }
16
+ }
17
+ exports.default = Leave;
18
+ Leave.topic = 'apps';
19
+ Leave.aliases = ['leave'];
20
+ Leave.description = 'remove yourself from a team app';
21
+ Leave.example = 'heroku apps:leave -a APP';
22
+ Leave.flags = {
23
+ app: command_1.flags.app({ required: true }),
24
+ remote: command_1.flags.remote(),
25
+ };
@@ -0,0 +1,11 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class AppsLock extends Command {
3
+ static topic: string;
4
+ static description: string;
5
+ static aliases: string[];
6
+ static flags: {
7
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const color_1 = require("@heroku-cli/color");
4
+ const command_1 = require("@heroku-cli/command");
5
+ const core_1 = require("@oclif/core");
6
+ class AppsLock extends command_1.Command {
7
+ async run() {
8
+ var _a;
9
+ const { flags } = await this.parse(AppsLock);
10
+ const { app } = flags;
11
+ const { body: appResponse } = await this.heroku.get(`/teams/apps/${app}`);
12
+ const appName = (_a = appResponse.name) !== null && _a !== void 0 ? _a : app;
13
+ if (appResponse.locked) {
14
+ throw new Error(`Error: cannot lock ${color_1.default.cyan(appName)}.\nThis app is already locked.`);
15
+ }
16
+ core_1.ux.action.start(`Locking ${color_1.default.cyan(appName)}`);
17
+ await this.heroku.patch(`/teams/apps/${appName}`, {
18
+ body: { locked: true },
19
+ });
20
+ core_1.ux.action.stop();
21
+ }
22
+ }
23
+ exports.default = AppsLock;
24
+ AppsLock.topic = 'apps';
25
+ AppsLock.description = 'prevent team members from joining an app';
26
+ AppsLock.aliases = ['lock'];
27
+ AppsLock.flags = {
28
+ app: command_1.flags.app({ required: true }),
29
+ remote: command_1.flags.remote(),
30
+ };
@@ -2,10 +2,11 @@ import { Command } from '@heroku-cli/command';
2
2
  export default class AppsOpen extends Command {
3
3
  static description: string;
4
4
  static topic: string;
5
- static aliases: string[];
5
+ static hiddenAliases: string[];
6
6
  static examples: string[];
7
7
  static flags: {
8
8
  app: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
10
  };
10
11
  static args: {
11
12
  path: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
@@ -16,13 +16,14 @@ class AppsOpen extends command_1.Command {
16
16
  exports.default = AppsOpen;
17
17
  AppsOpen.description = 'open the app in a web browser';
18
18
  AppsOpen.topic = 'apps';
19
- AppsOpen.aliases = ['open'];
19
+ AppsOpen.hiddenAliases = ['open'];
20
20
  AppsOpen.examples = [
21
21
  '$ heroku open -a myapp',
22
22
  '$ heroku open -a myapp /foo',
23
23
  ];
24
24
  AppsOpen.flags = {
25
25
  app: command_1.flags.app({ required: true }),
26
+ remote: command_1.flags.remote(),
26
27
  };
27
28
  AppsOpen.args = {
28
29
  path: core_1.Args.string({ required: false }),