heroku 9.0.0-dev.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) 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 +20 -0
  13. package/lib/commands/addons/create.js +96 -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 +28 -0
  37. package/lib/commands/apps/create.js +201 -0
  38. package/lib/commands/apps/destroy.d.ts +15 -0
  39. package/lib/commands/apps/destroy.js +47 -0
  40. package/lib/commands/apps/errors.d.ts +13 -0
  41. package/lib/commands/apps/errors.js +120 -0
  42. package/lib/commands/apps/favorites/add.d.ts +2 -1
  43. package/lib/commands/apps/favorites/add.js +1 -0
  44. package/lib/commands/apps/favorites/remove.d.ts +2 -1
  45. package/lib/commands/apps/favorites/remove.js +1 -0
  46. package/lib/commands/apps/index.d.ts +16 -0
  47. package/lib/commands/apps/index.js +119 -0
  48. package/lib/commands/apps/info.d.ts +19 -0
  49. package/lib/commands/apps/info.js +162 -0
  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 +15 -0
  57. package/lib/commands/apps/open.js +30 -0
  58. package/lib/commands/apps/rename.d.ts +16 -0
  59. package/lib/commands/apps/rename.js +51 -0
  60. package/lib/commands/apps/stacks/index.d.ts +3 -2
  61. package/lib/commands/apps/stacks/index.js +2 -1
  62. package/lib/commands/apps/stacks/set.d.ts +4 -4
  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.d.ts +3 -3
  70. package/lib/commands/authorizations/create.js +5 -1
  71. package/lib/commands/authorizations/info.d.ts +1 -1
  72. package/lib/commands/authorizations/info.js +5 -1
  73. package/lib/commands/authorizations/revoke.d.ts +1 -1
  74. package/lib/commands/authorizations/revoke.js +5 -1
  75. package/lib/commands/authorizations/rotate.d.ts +1 -1
  76. package/lib/commands/authorizations/rotate.js +5 -1
  77. package/lib/commands/authorizations/update.d.ts +4 -4
  78. package/lib/commands/authorizations/update.js +5 -1
  79. package/lib/commands/autocomplete/doctor.js +2 -2
  80. package/lib/commands/autocomplete/options.d.ts +2 -2
  81. package/lib/commands/autocomplete/options.js +2 -2
  82. package/lib/commands/autocomplete/script.d.ts +1 -1
  83. package/lib/commands/buildpacks/add.d.ts +4 -4
  84. package/lib/commands/buildpacks/clear.d.ts +2 -2
  85. package/lib/commands/buildpacks/index.d.ts +2 -2
  86. package/lib/commands/buildpacks/info.d.ts +1 -1
  87. package/lib/commands/buildpacks/remove.d.ts +4 -4
  88. package/lib/commands/buildpacks/search.d.ts +4 -4
  89. package/lib/commands/buildpacks/set.d.ts +4 -4
  90. package/lib/commands/buildpacks/versions.d.ts +1 -1
  91. package/lib/commands/certs/add.d.ts +16 -0
  92. package/lib/commands/certs/add.js +98 -0
  93. package/lib/commands/certs/auto/disable.d.ts +11 -0
  94. package/lib/commands/certs/auto/disable.js +34 -0
  95. package/lib/commands/certs/auto/enable.d.ts +11 -0
  96. package/lib/commands/certs/auto/enable.js +51 -0
  97. package/lib/commands/certs/auto/index.d.ts +12 -0
  98. package/lib/commands/certs/auto/index.js +94 -0
  99. package/lib/commands/certs/auto/refresh.d.ts +10 -0
  100. package/lib/commands/certs/auto/refresh.js +19 -0
  101. package/lib/commands/certs/generate.d.ts +26 -0
  102. package/lib/commands/certs/generate.js +111 -0
  103. package/lib/commands/certs/index.d.ts +10 -0
  104. package/lib/commands/certs/index.js +26 -0
  105. package/lib/commands/certs/info.d.ts +13 -0
  106. package/lib/commands/certs/info.js +43 -0
  107. package/lib/commands/certs/remove.d.ts +13 -0
  108. package/lib/commands/certs/remove.js +32 -0
  109. package/lib/commands/certs/update.d.ts +18 -0
  110. package/lib/commands/certs/update.js +54 -0
  111. package/lib/commands/ci/config/get.d.ts +4 -3
  112. package/lib/commands/ci/config/get.js +3 -2
  113. package/lib/commands/ci/config/index.d.ts +3 -2
  114. package/lib/commands/ci/config/index.js +3 -2
  115. package/lib/commands/ci/config/set.d.ts +3 -2
  116. package/lib/commands/ci/config/set.js +2 -1
  117. package/lib/commands/ci/config/unset.d.ts +3 -3
  118. package/lib/commands/ci/config/unset.js +3 -3
  119. package/lib/commands/ci/debug.d.ts +2 -2
  120. package/lib/commands/ci/index.d.ts +3 -2
  121. package/lib/commands/ci/index.js +1 -0
  122. package/lib/commands/ci/info.d.ts +5 -4
  123. package/lib/commands/ci/info.js +1 -0
  124. package/lib/commands/ci/last.d.ts +4 -3
  125. package/lib/commands/ci/last.js +1 -0
  126. package/lib/commands/ci/open.d.ts +3 -2
  127. package/lib/commands/ci/open.js +1 -0
  128. package/lib/commands/ci/rerun.d.ts +4 -3
  129. package/lib/commands/ci/rerun.js +1 -0
  130. package/lib/commands/ci/run.d.ts +2 -2
  131. package/lib/commands/clients/create.d.ts +2 -2
  132. package/lib/commands/clients/destroy.d.ts +1 -1
  133. package/lib/commands/clients/info.d.ts +1 -1
  134. package/lib/commands/clients/rotate.d.ts +1 -1
  135. package/lib/commands/clients/update.d.ts +3 -3
  136. package/lib/commands/config/edit.d.ts +3 -3
  137. package/lib/commands/config/get.d.ts +3 -3
  138. package/lib/commands/config/index.d.ts +2 -2
  139. package/lib/commands/config/set.d.ts +12 -0
  140. package/lib/commands/config/set.js +60 -0
  141. package/lib/commands/config/unset.d.ts +2 -2
  142. package/lib/commands/console.d.ts +4 -4
  143. package/lib/commands/container/index.d.ts +6 -0
  144. package/lib/commands/container/index.js +13 -0
  145. package/lib/commands/container/login.d.ts +9 -0
  146. package/lib/commands/container/login.js +57 -0
  147. package/lib/commands/container/logout.d.ts +9 -0
  148. package/lib/commands/container/logout.js +37 -0
  149. package/lib/commands/container/pull.d.ts +14 -0
  150. package/lib/commands/container/pull.js +43 -0
  151. package/lib/commands/container/push.d.ts +16 -0
  152. package/lib/commands/container/push.js +103 -0
  153. package/lib/commands/container/release.d.ts +14 -0
  154. package/lib/commands/container/release.js +91 -0
  155. package/lib/commands/container/rm.d.ts +13 -0
  156. package/lib/commands/container/rm.js +39 -0
  157. package/lib/commands/container/run.d.ts +15 -0
  158. package/lib/commands/container/run.js +66 -0
  159. package/lib/commands/dashboard.d.ts +7 -0
  160. package/lib/commands/dashboard.js +164 -0
  161. package/lib/commands/domains/add.d.ts +4 -4
  162. package/lib/commands/domains/clear.d.ts +2 -2
  163. package/lib/commands/domains/index.d.ts +10 -10
  164. package/lib/commands/domains/info.d.ts +3 -3
  165. package/lib/commands/domains/remove.d.ts +3 -3
  166. package/lib/commands/domains/update.d.ts +4 -4
  167. package/lib/commands/domains/wait.d.ts +3 -3
  168. package/lib/commands/drains/add.d.ts +12 -0
  169. package/lib/commands/drains/add.js +23 -0
  170. package/lib/commands/drains/index.d.ts +11 -0
  171. package/lib/commands/drains/index.js +50 -0
  172. package/lib/commands/drains/remove.d.ts +13 -0
  173. package/lib/commands/drains/remove.js +22 -0
  174. package/lib/commands/features/disable.d.ts +12 -0
  175. package/lib/commands/features/disable.js +30 -0
  176. package/lib/commands/features/enable.d.ts +12 -0
  177. package/lib/commands/features/enable.js +29 -0
  178. package/lib/commands/features/index.d.ts +10 -0
  179. package/lib/commands/features/index.js +37 -0
  180. package/lib/commands/features/info.d.ts +13 -0
  181. package/lib/commands/features/info.js +33 -0
  182. package/lib/commands/git/clone.d.ts +3 -3
  183. package/lib/commands/git/credentials.d.ts +1 -1
  184. package/lib/commands/git/remote.d.ts +2 -2
  185. package/lib/commands/keys/add.d.ts +14 -0
  186. package/lib/commands/keys/add.js +101 -0
  187. package/lib/commands/keys/clear.d.ts +5 -0
  188. package/lib/commands/keys/clear.js +17 -0
  189. package/lib/commands/keys/index.d.ts +9 -0
  190. package/lib/commands/keys/index.js +36 -0
  191. package/lib/commands/keys/remove.d.ts +9 -0
  192. package/lib/commands/keys/remove.js +29 -0
  193. package/lib/commands/labs/enable.d.ts +13 -0
  194. package/lib/commands/labs/enable.js +47 -0
  195. package/lib/commands/labs/index.d.ts +11 -0
  196. package/lib/commands/labs/index.js +71 -0
  197. package/lib/commands/labs/info.d.ts +14 -0
  198. package/lib/commands/labs/info.js +49 -0
  199. package/lib/commands/local/index.d.ts +5 -5
  200. package/lib/commands/local/index.js +8 -3
  201. package/lib/commands/local/run.d.ts +2 -2
  202. package/lib/commands/local/run.js +8 -3
  203. package/lib/commands/logs.d.ts +6 -6
  204. package/lib/commands/maintenance/index.d.ts +10 -0
  205. package/lib/commands/maintenance/index.js +19 -0
  206. package/lib/commands/maintenance/off.d.ts +10 -0
  207. package/lib/commands/maintenance/off.js +20 -0
  208. package/lib/commands/maintenance/on.d.ts +10 -0
  209. package/lib/commands/maintenance/on.js +20 -0
  210. package/lib/commands/members/add.d.ts +13 -0
  211. package/lib/commands/members/add.js +33 -0
  212. package/lib/commands/members/index.d.ts +12 -0
  213. package/lib/commands/members/index.js +76 -0
  214. package/lib/commands/members/remove.d.ts +10 -0
  215. package/lib/commands/members/remove.js +58 -0
  216. package/lib/commands/members/set.d.ts +11 -0
  217. package/lib/commands/members/set.js +21 -0
  218. package/lib/commands/notifications/index.d.ts +13 -0
  219. package/lib/commands/notifications/index.js +62 -0
  220. package/lib/commands/orgs/index.d.ts +11 -0
  221. package/lib/commands/orgs/index.js +27 -0
  222. package/lib/commands/orgs/open.d.ts +10 -0
  223. package/lib/commands/orgs/open.js +24 -0
  224. package/lib/commands/pg/backups/cancel.d.ts +15 -0
  225. package/lib/commands/pg/backups/cancel.js +49 -0
  226. package/lib/commands/pg/backups/capture.d.ts +15 -0
  227. package/lib/commands/pg/backups/capture.js +65 -0
  228. package/lib/commands/pg/backups/delete.d.ts +15 -0
  229. package/lib/commands/pg/backups/delete.js +38 -0
  230. package/lib/commands/pg/backups/download.d.ts +14 -0
  231. package/lib/commands/pg/backups/download.js +58 -0
  232. package/lib/commands/pg/backups/index.d.ts +20 -0
  233. package/lib/commands/pg/backups/index.js +129 -0
  234. package/lib/commands/pg/backups/info.d.ts +17 -0
  235. package/lib/commands/pg/backups/info.js +92 -0
  236. package/lib/commands/pg/backups/restore.d.ts +19 -0
  237. package/lib/commands/pg/backups/restore.js +107 -0
  238. package/lib/commands/pg/backups/schedule.d.ts +21 -0
  239. package/lib/commands/pg/backups/schedule.js +82 -0
  240. package/lib/commands/pg/backups/schedules.d.ts +10 -0
  241. package/lib/commands/pg/backups/schedules.js +31 -0
  242. package/lib/commands/pg/backups/unschedule.d.ts +13 -0
  243. package/lib/commands/pg/backups/unschedule.js +44 -0
  244. package/lib/commands/pg/backups/url.d.ts +13 -0
  245. package/lib/commands/pg/backups/url.js +41 -0
  246. package/lib/commands/pg/bloat.d.ts +13 -0
  247. package/lib/commands/pg/bloat.js +87 -0
  248. package/lib/commands/pg/blocking.d.ts +13 -0
  249. package/lib/commands/pg/blocking.js +42 -0
  250. package/lib/commands/pg/connection-pooling/attach.d.ts +15 -0
  251. package/lib/commands/pg/connection-pooling/attach.js +41 -0
  252. package/lib/commands/pg/copy.d.ts +18 -0
  253. package/lib/commands/pg/copy.js +86 -0
  254. package/lib/commands/pg/credentials/create.d.ts +14 -0
  255. package/lib/commands/pg/credentials/create.js +40 -0
  256. package/lib/commands/pg/credentials/destroy.d.ts +16 -0
  257. package/lib/commands/pg/credentials/destroy.js +48 -0
  258. package/lib/commands/pg/credentials/repair-default.d.ts +15 -0
  259. package/lib/commands/pg/credentials/repair-default.js +39 -0
  260. package/lib/commands/pg/credentials/rotate.d.ts +16 -0
  261. package/lib/commands/pg/credentials/rotate.js +82 -0
  262. package/lib/commands/pg/credentials/url.d.ts +14 -0
  263. package/lib/commands/pg/credentials/url.js +64 -0
  264. package/lib/commands/pg/credentials.d.ts +16 -0
  265. package/lib/commands/pg/credentials.js +61 -0
  266. package/lib/commands/pg/diagnose.d.ts +18 -0
  267. package/lib/commands/pg/diagnose.js +109 -0
  268. package/lib/commands/pg/info.d.ts +14 -0
  269. package/lib/commands/pg/info.js +92 -0
  270. package/lib/commands/pg/kill.d.ts +15 -0
  271. package/lib/commands/pg/kill.js +32 -0
  272. package/lib/commands/pg/killall.d.ts +13 -0
  273. package/lib/commands/pg/killall.js +26 -0
  274. package/lib/commands/pg/links/create.d.ts +15 -0
  275. package/lib/commands/pg/links/create.js +58 -0
  276. package/lib/commands/pg/links/destroy.d.ts +16 -0
  277. package/lib/commands/pg/links/destroy.js +42 -0
  278. package/lib/commands/pg/links/index.d.ts +13 -0
  279. package/lib/commands/pg/links/index.js +59 -0
  280. package/lib/commands/pg/locks.d.ts +15 -0
  281. package/lib/commands/pg/locks.js +53 -0
  282. package/lib/commands/pg/maintenance/index.d.ts +13 -0
  283. package/lib/commands/pg/maintenance/index.js +29 -0
  284. package/lib/commands/pg/maintenance/run.d.ts +14 -0
  285. package/lib/commands/pg/maintenance/run.js +37 -0
  286. package/lib/commands/pg/maintenance/window.d.ts +15 -0
  287. package/lib/commands/pg/maintenance/window.js +41 -0
  288. package/lib/commands/pg/outliers.d.ts +19 -0
  289. package/lib/commands/pg/outliers.js +97 -0
  290. package/lib/commands/pg/promote.d.ts +14 -0
  291. package/lib/commands/pg/promote.js +169 -0
  292. package/lib/commands/pg/ps.d.ts +14 -0
  293. package/lib/commands/pg/ps.js +52 -0
  294. package/lib/commands/pg/psql.d.ts +16 -0
  295. package/lib/commands/pg/psql.js +49 -0
  296. package/lib/commands/pg/pull.d.ts +18 -0
  297. package/lib/commands/pg/pull.js +87 -0
  298. package/lib/commands/pg/push.d.ts +18 -0
  299. package/lib/commands/pg/push.js +84 -0
  300. package/lib/commands/pg/reset.d.ts +15 -0
  301. package/lib/commands/pg/reset.js +44 -0
  302. package/lib/commands/pg/settings/auto-explain/log-analyze.d.ts +13 -0
  303. package/lib/commands/pg/settings/auto-explain/log-analyze.js +32 -0
  304. package/lib/commands/pg/settings/auto-explain/log-buffers.d.ts +13 -0
  305. package/lib/commands/pg/settings/auto-explain/log-buffers.js +30 -0
  306. package/lib/commands/pg/settings/auto-explain/log-min-duration.d.ts +16 -0
  307. package/lib/commands/pg/settings/auto-explain/log-min-duration.js +33 -0
  308. package/lib/commands/pg/settings/auto-explain/log-nested-statements.d.ts +12 -0
  309. package/lib/commands/pg/settings/auto-explain/log-nested-statements.js +25 -0
  310. package/lib/commands/pg/settings/auto-explain/log-triggers.d.ts +13 -0
  311. package/lib/commands/pg/settings/auto-explain/log-triggers.js +30 -0
  312. package/lib/commands/pg/settings/auto-explain/log-verbose.d.ts +17 -0
  313. package/lib/commands/pg/settings/auto-explain/log-verbose.js +33 -0
  314. package/lib/commands/pg/settings/auto-explain.d.ts +18 -0
  315. package/lib/commands/pg/settings/auto-explain.js +38 -0
  316. package/lib/commands/pg/settings/index.d.ts +13 -0
  317. package/lib/commands/pg/settings/index.js +34 -0
  318. package/lib/commands/pg/settings/log-connections.d.ts +17 -0
  319. package/lib/commands/pg/settings/log-connections.js +34 -0
  320. package/lib/commands/pg/settings/log-lock-waits.d.ts +13 -0
  321. package/lib/commands/pg/settings/log-lock-waits.js +31 -0
  322. package/lib/commands/pg/settings/log-min-duration-statement.d.ts +15 -0
  323. package/lib/commands/pg/settings/log-min-duration-statement.js +33 -0
  324. package/lib/commands/pg/settings/log-statement.d.ts +12 -0
  325. package/lib/commands/pg/settings/log-statement.js +30 -0
  326. package/lib/commands/pg/settings/track-functions.d.ts +12 -0
  327. package/lib/commands/pg/settings/track-functions.js +29 -0
  328. package/lib/commands/pg/unfollow.d.ts +14 -0
  329. package/lib/commands/pg/unfollow.js +40 -0
  330. package/lib/commands/pg/upgrade.d.ts +15 -0
  331. package/lib/commands/pg/upgrade.js +58 -0
  332. package/lib/commands/pg/vacuum-stats.d.ts +13 -0
  333. package/lib/commands/pg/vacuum-stats.js +65 -0
  334. package/lib/commands/pg/wait.d.ts +15 -0
  335. package/lib/commands/pg/wait.js +79 -0
  336. package/lib/commands/pipelines/add.d.ts +4 -4
  337. package/lib/commands/pipelines/connect.d.ts +2 -2
  338. package/lib/commands/pipelines/connect.js +1 -1
  339. package/lib/commands/pipelines/create.d.ts +5 -5
  340. package/lib/commands/pipelines/destroy.d.ts +1 -1
  341. package/lib/commands/pipelines/diff.d.ts +2 -2
  342. package/lib/commands/pipelines/diff.js +1 -1
  343. package/lib/commands/pipelines/info.d.ts +1 -1
  344. package/lib/commands/pipelines/open.d.ts +1 -1
  345. package/lib/commands/pipelines/promote.d.ts +3 -3
  346. package/lib/commands/pipelines/remove.d.ts +2 -2
  347. package/lib/commands/pipelines/rename.d.ts +2 -2
  348. package/lib/commands/pipelines/setup.d.ts +3 -3
  349. package/lib/commands/pipelines/transfer.d.ts +3 -3
  350. package/lib/commands/pipelines/update.d.ts +3 -3
  351. package/lib/commands/ps/autoscale/disable.d.ts +2 -2
  352. package/lib/commands/ps/autoscale/enable.d.ts +5 -5
  353. package/lib/commands/ps/index.d.ts +15 -0
  354. package/lib/commands/ps/index.js +195 -0
  355. package/lib/commands/ps/restart.d.ts +17 -0
  356. package/lib/commands/ps/restart.js +38 -0
  357. package/lib/commands/ps/scale.d.ts +13 -0
  358. package/lib/commands/ps/scale.js +108 -0
  359. package/lib/commands/ps/stop.d.ts +17 -0
  360. package/lib/commands/ps/stop.js +33 -0
  361. package/lib/commands/ps/type.d.ts +12 -0
  362. package/lib/commands/ps/type.js +163 -0
  363. package/lib/commands/ps/wait.d.ts +4 -4
  364. package/lib/commands/rake.d.ts +4 -4
  365. package/lib/commands/redis/cli.d.ts +15 -0
  366. package/lib/commands/redis/cli.js +204 -0
  367. package/lib/commands/redis/credentials.d.ts +14 -0
  368. package/lib/commands/redis/credentials.js +32 -0
  369. package/lib/commands/redis/info.d.ts +15 -0
  370. package/lib/commands/redis/info.js +25 -0
  371. package/lib/commands/redis/keyspace-notifications.d.ts +14 -0
  372. package/lib/commands/redis/keyspace-notifications.js +47 -0
  373. package/lib/commands/redis/maintenance.d.ts +16 -0
  374. package/lib/commands/redis/maintenance.js +63 -0
  375. package/lib/commands/redis/maxmemory.d.ts +14 -0
  376. package/lib/commands/redis/maxmemory.js +40 -0
  377. package/lib/commands/redis/promote.d.ts +13 -0
  378. package/lib/commands/redis/promote.js +39 -0
  379. package/lib/commands/redis/stats-reset.d.ts +14 -0
  380. package/lib/commands/redis/stats-reset.js +36 -0
  381. package/lib/commands/redis/timeout.d.ts +14 -0
  382. package/lib/commands/redis/timeout.js +35 -0
  383. package/lib/commands/redis/upgrade.d.ts +15 -0
  384. package/lib/commands/redis/upgrade.js +37 -0
  385. package/lib/commands/redis/wait.d.ts +14 -0
  386. package/lib/commands/redis/wait.js +60 -0
  387. package/lib/commands/releases/index.d.ts +14 -0
  388. package/lib/commands/releases/index.js +124 -0
  389. package/lib/commands/releases/info.d.ts +15 -0
  390. package/lib/commands/releases/info.js +56 -0
  391. package/lib/commands/releases/output.d.ts +13 -0
  392. package/lib/commands/releases/output.js +37 -0
  393. package/lib/commands/releases/rollback.d.ts +14 -0
  394. package/lib/commands/releases/rollback.js +48 -0
  395. package/lib/commands/reviewapps/disable.d.ts +3 -3
  396. package/lib/commands/reviewapps/enable.d.ts +3 -3
  397. package/lib/commands/run/detached.d.ts +7 -8
  398. package/lib/commands/run/detached.js +16 -20
  399. package/lib/commands/run/index.d.ts +10 -11
  400. package/lib/commands/run/index.js +16 -17
  401. package/lib/commands/run/inside.d.ts +5 -7
  402. package/lib/commands/run/inside.js +10 -14
  403. package/lib/commands/sessions/destroy.d.ts +1 -1
  404. package/lib/commands/spaces/create.d.ts +22 -0
  405. package/lib/commands/spaces/create.js +73 -0
  406. package/lib/commands/spaces/destroy.d.ts +14 -0
  407. package/lib/commands/spaces/destroy.js +49 -0
  408. package/lib/commands/spaces/drains/get.d.ts +12 -0
  409. package/lib/commands/spaces/drains/get.js +27 -0
  410. package/lib/commands/spaces/drains/set.d.ts +14 -0
  411. package/lib/commands/spaces/drains/set.js +29 -0
  412. package/lib/commands/spaces/hosts.d.ts +14 -0
  413. package/lib/commands/spaces/hosts.js +37 -0
  414. package/lib/commands/spaces/index.d.ts +16 -0
  415. package/lib/commands/spaces/index.js +55 -0
  416. package/lib/commands/spaces/info.d.ts +14 -0
  417. package/lib/commands/spaces/info.js +47 -0
  418. package/lib/commands/spaces/peerings/accept.d.ts +15 -0
  419. package/lib/commands/spaces/peerings/accept.js +36 -0
  420. package/lib/commands/spaces/peerings/destroy.d.ts +15 -0
  421. package/lib/commands/spaces/peerings/destroy.js +45 -0
  422. package/lib/commands/spaces/peerings/index.d.ts +13 -0
  423. package/lib/commands/spaces/peerings/index.js +33 -0
  424. package/lib/commands/spaces/peerings/info.d.ts +15 -0
  425. package/lib/commands/spaces/peerings/info.js +59 -0
  426. package/lib/commands/spaces/ps.d.ts +15 -0
  427. package/lib/commands/spaces/ps.js +82 -0
  428. package/lib/commands/spaces/rename.d.ts +11 -0
  429. package/lib/commands/spaces/rename.js +26 -0
  430. package/lib/commands/spaces/topology.d.ts +32 -0
  431. package/lib/commands/spaces/topology.js +89 -0
  432. package/lib/commands/spaces/transfer.d.ts +11 -0
  433. package/lib/commands/spaces/transfer.js +35 -0
  434. package/lib/commands/spaces/trusted-ips/add.d.ts +16 -0
  435. package/lib/commands/spaces/trusted-ips/add.js +43 -0
  436. package/lib/commands/spaces/trusted-ips/index.d.ts +15 -0
  437. package/lib/commands/spaces/trusted-ips/index.js +52 -0
  438. package/lib/commands/spaces/trusted-ips/remove.d.ts +15 -0
  439. package/lib/commands/spaces/trusted-ips/remove.js +44 -0
  440. package/lib/commands/spaces/vpn/config.d.ts +14 -0
  441. package/lib/commands/spaces/vpn/config.js +54 -0
  442. package/lib/commands/spaces/vpn/connect.d.ts +15 -0
  443. package/lib/commands/spaces/vpn/connect.js +48 -0
  444. package/lib/commands/spaces/vpn/connections.d.ts +17 -0
  445. package/lib/commands/spaces/vpn/connections.js +57 -0
  446. package/lib/commands/spaces/vpn/destroy.d.ts +14 -0
  447. package/lib/commands/spaces/vpn/destroy.js +38 -0
  448. package/lib/commands/spaces/vpn/info.d.ts +16 -0
  449. package/lib/commands/spaces/vpn/info.js +82 -0
  450. package/lib/commands/spaces/vpn/update.d.ts +14 -0
  451. package/lib/commands/spaces/vpn/update.js +39 -0
  452. package/lib/commands/spaces/vpn/wait.d.ts +16 -0
  453. package/lib/commands/spaces/vpn/wait.js +70 -0
  454. package/lib/commands/spaces/wait.d.ts +17 -0
  455. package/lib/commands/spaces/wait.js +89 -0
  456. package/lib/commands/status.js +4 -4
  457. package/lib/commands/teams/index.d.ts +9 -0
  458. package/lib/commands/teams/index.js +29 -0
  459. package/lib/commands/webhooks/add.d.ts +8 -8
  460. package/lib/commands/webhooks/deliveries/index.d.ts +4 -4
  461. package/lib/commands/webhooks/deliveries/info.d.ts +4 -4
  462. package/lib/commands/webhooks/events/index.d.ts +3 -3
  463. package/lib/commands/webhooks/events/info.d.ts +4 -4
  464. package/lib/commands/webhooks/index.d.ts +3 -3
  465. package/lib/commands/webhooks/info.d.ts +4 -4
  466. package/lib/commands/webhooks/remove.d.ts +4 -4
  467. package/lib/commands/webhooks/update.d.ts +9 -9
  468. package/lib/global_telemetry.js +10 -4
  469. package/lib/hooks/postrun/performance_analytics.js +5 -4
  470. package/lib/hooks/prerun/analytics.js +3 -0
  471. package/lib/lib/addons/addons_wait.d.ts +78 -0
  472. package/lib/lib/addons/addons_wait.js +56 -0
  473. package/lib/lib/addons/create_addon.d.ts +7 -0
  474. package/lib/lib/addons/create_addon.js +59 -0
  475. package/lib/lib/addons/destroy_addon.d.ts +3 -0
  476. package/lib/lib/addons/destroy_addon.js +48 -0
  477. package/lib/lib/addons/resolve.d.ts +39 -0
  478. package/lib/lib/addons/resolve.js +180 -0
  479. package/lib/lib/addons/util.d.ts +9 -0
  480. package/lib/lib/addons/util.js +72 -0
  481. package/lib/lib/apps/app-transfer.d.ts +10 -0
  482. package/lib/lib/apps/app-transfer.js +35 -0
  483. package/lib/lib/apps/error_info.d.ts +7 -0
  484. package/lib/lib/apps/error_info.js +185 -0
  485. package/lib/lib/autocomplete/base.d.ts +1 -1
  486. package/lib/lib/autocomplete/completions.d.ts +5 -1
  487. package/lib/lib/autocomplete/completions.js +6 -1
  488. package/lib/lib/certs/certificate_details.d.ts +2 -0
  489. package/lib/lib/certs/certificate_details.js +37 -0
  490. package/lib/lib/certs/display_table.d.ts +2 -0
  491. package/lib/lib/certs/display_table.js +51 -0
  492. package/lib/lib/certs/domains.d.ts +3 -0
  493. package/lib/lib/certs/domains.js +45 -0
  494. package/lib/lib/certs/flags.d.ts +7 -0
  495. package/lib/lib/certs/flags.js +42 -0
  496. package/lib/lib/certs/format_date.d.ts +1 -0
  497. package/lib/lib/certs/format_date.js +11 -0
  498. package/lib/lib/certs/get_cert_and_key.d.ts +9 -0
  499. package/lib/lib/certs/get_cert_and_key.js +11 -0
  500. package/lib/lib/ci/git.d.ts +7 -1
  501. package/lib/lib/ci/git.js +44 -1
  502. package/lib/lib/ci/interfaces/kolkrabbi.d.ts +1 -1
  503. package/lib/lib/ci/source.js +3 -3
  504. package/lib/lib/ci/test-run.js +2 -2
  505. package/lib/lib/config/quote.js +1 -1
  506. package/lib/lib/confirmCommand.d.ts +1 -0
  507. package/lib/lib/confirmCommand.js +23 -0
  508. package/lib/lib/container/debug.d.ts +2 -0
  509. package/lib/lib/container/debug.js +5 -0
  510. package/lib/lib/container/docker_helper.d.ts +24 -0
  511. package/lib/lib/container/docker_helper.js +168 -0
  512. package/lib/lib/container/helpers.d.ts +8 -0
  513. package/lib/lib/container/helpers.js +26 -0
  514. package/lib/lib/container/streamer.d.ts +1 -0
  515. package/lib/lib/container/streamer.js +31 -0
  516. package/lib/lib/domains/domains.d.ts +6 -0
  517. package/lib/lib/domains/domains.js +104 -0
  518. package/lib/lib/git/git.d.ts +3 -0
  519. package/lib/lib/git/git.js +22 -3
  520. package/lib/lib/local/run-foreman.d.ts +1 -0
  521. package/lib/lib/local/run-foreman.js +229 -1
  522. package/lib/lib/members/util.d.ts +3 -0
  523. package/lib/lib/members/util.js +25 -0
  524. package/lib/lib/members/utils.d.ts +2 -0
  525. package/lib/lib/members/utils.js +14 -0
  526. package/lib/lib/notify.d.ts +1 -0
  527. package/lib/lib/notify.js +23 -0
  528. package/lib/lib/orgs/utils.d.ts +5 -0
  529. package/lib/lib/orgs/utils.js +24 -0
  530. package/lib/lib/pg/backups.d.ts +17 -0
  531. package/lib/lib/pg/backups.js +164 -0
  532. package/lib/lib/pg/bastion.d.ts +29 -0
  533. package/lib/lib/pg/bastion.js +121 -0
  534. package/lib/lib/pg/config.d.ts +2 -0
  535. package/lib/lib/pg/config.js +13 -0
  536. package/lib/lib/pg/download.d.ts +5 -0
  537. package/lib/lib/pg/download.js +34 -0
  538. package/lib/lib/pg/fetcher.d.ts +39 -0
  539. package/lib/lib/pg/fetcher.js +138 -0
  540. package/lib/lib/pg/host.d.ts +1 -0
  541. package/lib/lib/pg/host.js +7 -0
  542. package/lib/lib/pg/psql.d.ts +48 -0
  543. package/lib/lib/pg/psql.js +252 -0
  544. package/lib/lib/pg/push_pull.d.ts +13 -0
  545. package/lib/lib/pg/push_pull.js +118 -0
  546. package/lib/lib/pg/setter.d.ts +16 -0
  547. package/lib/lib/pg/setter.js +65 -0
  548. package/lib/lib/pg/types.d.ts +230 -0
  549. package/lib/lib/pg/types.js +2 -0
  550. package/lib/lib/pg/util.d.ts +36 -0
  551. package/lib/lib/pg/util.js +183 -0
  552. package/lib/lib/redis/api.d.ts +65 -0
  553. package/lib/lib/redis/api.js +122 -0
  554. package/lib/lib/releases/output.d.ts +1 -0
  555. package/lib/lib/releases/output.js +14 -0
  556. package/lib/lib/releases/releases.d.ts +6 -0
  557. package/lib/lib/releases/releases.js +32 -0
  558. package/lib/lib/releases/status_helper.d.ts +5 -0
  559. package/lib/lib/releases/status_helper.js +25 -0
  560. package/lib/lib/run/dyno.js +2 -2
  561. package/lib/lib/run/log-displayer.d.ts +1 -1
  562. package/lib/lib/spaces/format.d.ts +4 -0
  563. package/lib/lib/spaces/format.js +60 -0
  564. package/lib/lib/spaces/hosts.d.ts +9 -0
  565. package/lib/lib/spaces/hosts.js +34 -0
  566. package/lib/lib/spaces/outbound-rules.d.ts +4 -0
  567. package/lib/lib/spaces/outbound-rules.js +78 -0
  568. package/lib/lib/spaces/parsers.d.ts +8 -0
  569. package/lib/lib/spaces/parsers.js +17 -0
  570. package/lib/lib/spaces/peering.d.ts +4 -0
  571. package/lib/lib/spaces/peering.js +53 -0
  572. package/lib/lib/spaces/spaces.d.ts +4 -0
  573. package/lib/lib/spaces/spaces.js +37 -0
  574. package/lib/lib/spaces/vpn-connections.d.ts +2 -0
  575. package/lib/lib/spaces/vpn-connections.js +22 -0
  576. package/lib/lib/teamUtils.d.ts +3 -0
  577. package/lib/lib/teamUtils.js +18 -0
  578. package/lib/lib/time.d.ts +2 -0
  579. package/lib/lib/time.js +29 -0
  580. package/lib/lib/types/app_errors.d.ts +6 -0
  581. package/lib/lib/types/app_errors.js +2 -0
  582. package/lib/lib/types/domain.d.ts +61 -0
  583. package/lib/lib/types/domain.js +5 -0
  584. package/lib/lib/types/notifications.d.ts +20 -0
  585. package/lib/lib/types/notifications.js +2 -0
  586. package/lib/lib/utils/multisort.d.ts +32 -0
  587. package/lib/lib/utils/multisort.js +66 -0
  588. package/lib/lib/utils/uuid-validate.d.ts +1 -0
  589. package/lib/lib/utils/uuid-validate.js +7 -0
  590. package/lib/user-config.js +2 -2
  591. package/oclif.manifest.json +12686 -2676
  592. package/package.json +115 -65
@@ -0,0 +1,34 @@
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 Services extends command_1.Command {
7
+ async run() {
8
+ const { flags } = await this.parse(Services);
9
+ const { body: services } = await this.heroku.get('/addon-services');
10
+ if (flags.json) {
11
+ core_1.ux.styledJSON(services);
12
+ }
13
+ else {
14
+ core_1.ux.table(services, {
15
+ name: {
16
+ header: 'Slug',
17
+ },
18
+ human_name: {
19
+ header: 'Name',
20
+ },
21
+ state: {
22
+ header: 'State',
23
+ },
24
+ });
25
+ core_1.ux.log(`\nSee plans with ${color_1.default.blue('heroku addons:plans SERVICE')}`);
26
+ }
27
+ }
28
+ }
29
+ exports.default = Services;
30
+ Services.topic = 'addons';
31
+ Services.description = 'list all available add-on services';
32
+ Services.flags = {
33
+ json: command_1.flags.boolean({ description: 'output in json format' }),
34
+ };
@@ -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
+ };
@@ -0,0 +1,28 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ import { Interfaces } from '@oclif/core';
3
+ export default class Create extends Command {
4
+ static description: string;
5
+ static hiddenAliases: string[];
6
+ static examples: string[];
7
+ static args: {
8
+ app: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
9
+ };
10
+ static flags: {
11
+ app: Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
12
+ addons: Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
13
+ buildpack: Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
14
+ manifest: Interfaces.BooleanFlag<boolean>;
15
+ 'no-remote': Interfaces.BooleanFlag<boolean>;
16
+ remote: Interfaces.OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
17
+ stack: Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
18
+ space: Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
19
+ region: Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
20
+ 'internal-routing': Interfaces.BooleanFlag<boolean>;
21
+ features: Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
22
+ kernel: Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
23
+ locked: Interfaces.BooleanFlag<boolean>;
24
+ json: Interfaces.BooleanFlag<boolean>;
25
+ team: Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
26
+ };
27
+ run(): Promise<void>;
28
+ }
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const yaml = require("js-yaml");
4
+ const fs_extra_1 = require("fs-extra");
5
+ const command_1 = require("@heroku-cli/command");
6
+ const completions_1 = require("@heroku-cli/command/lib/completions");
7
+ const core_1 = require("@oclif/core");
8
+ const color_1 = require("@heroku-cli/color");
9
+ const lodash_1 = require("lodash");
10
+ const git_1 = require("../../lib/git/git");
11
+ const git = new git_1.default();
12
+ function createText(name, space) {
13
+ let text = `Creating ${name ? color_1.default.app(name) : 'app'}`;
14
+ if (space) {
15
+ text += ` in space ${space}`;
16
+ }
17
+ return text;
18
+ }
19
+ async function createApp(context, heroku, name, stack) {
20
+ var _a, _b;
21
+ const { flags } = context;
22
+ const params = {
23
+ name,
24
+ team: flags.team,
25
+ region: flags.region,
26
+ space: flags.space,
27
+ stack,
28
+ internal_routing: flags['internal-routing'],
29
+ feature_flags: flags.features,
30
+ kernel: flags.kernel,
31
+ locked: flags.locked,
32
+ };
33
+ const requestPath = (params.space || params.team) ? '/teams/apps' : '/apps';
34
+ const { body: app } = await heroku.post(requestPath, {
35
+ body: params,
36
+ });
37
+ let status = name ? 'done' : `done, ${color_1.default.app(app.name || '')}`;
38
+ if (flags.region) {
39
+ status += `, region is ${color_1.default.yellow(((_a = app.region) === null || _a === void 0 ? void 0 : _a.name) || '')}`;
40
+ }
41
+ if (stack) {
42
+ status += `, stack is ${color_1.default.yellow(((_b = app.stack) === null || _b === void 0 ? void 0 : _b.name) || '')}`;
43
+ }
44
+ core_1.ux.action.stop(status);
45
+ return app;
46
+ }
47
+ async function addAddons(heroku, app, addons) {
48
+ for (const addon of addons) {
49
+ const body = {
50
+ plan: addon.plan,
51
+ attachment: addon.as ? { name: addon.as } : undefined,
52
+ };
53
+ core_1.ux.action.start(`Adding ${color_1.default.green(addon.plan)}`);
54
+ await heroku.post(`/apps/${app.name}/addons`, { body });
55
+ core_1.ux.action.stop();
56
+ }
57
+ }
58
+ async function addConfigVars(heroku, app, configVars) {
59
+ if (Object.keys(configVars).length > 0) {
60
+ core_1.ux.action.start('Setting config vars');
61
+ await heroku.patch(`/apps/${app.name}/config-vars`, {
62
+ body: configVars,
63
+ });
64
+ core_1.ux.action.stop();
65
+ }
66
+ }
67
+ function addonsFromPlans(plans) {
68
+ return plans.map(plan => ({
69
+ plan: plan.trim(),
70
+ }));
71
+ }
72
+ async function configureGitRemote(context, app) {
73
+ const remoteUrl = git.httpGitUrl(app.name || '');
74
+ if (!context.flags['no-remote'] && git.inGitRepo()) {
75
+ await git.createRemote(context.flags.remote || 'heroku', remoteUrl);
76
+ }
77
+ return remoteUrl;
78
+ }
79
+ function printAppSummary(context, app, remoteUrl) {
80
+ if (context.flags.json) {
81
+ core_1.ux.styledJSON(app);
82
+ }
83
+ else {
84
+ core_1.ux.log(`${color_1.default.cyan(app.web_url || '')} | ${color_1.default.green(remoteUrl)}`);
85
+ }
86
+ }
87
+ async function runFromFlags(context, heroku, config) {
88
+ const { flags, args } = context;
89
+ if (flags['internal-routing'] && !flags.space) {
90
+ throw new Error('Space name required.\nInternal Web Apps are only available for Private Spaces.\nUSAGE: heroku apps:create --space my-space --internal-routing');
91
+ }
92
+ const name = flags.app || args.app || process.env.HEROKU_APP;
93
+ async function addBuildpack(app, buildpack) {
94
+ core_1.ux.action.start(`Setting buildpack to ${color_1.default.cyan(buildpack)}`);
95
+ await heroku.put(`/apps/${app.name}/buildpack-installations`, {
96
+ headers: { Range: '' },
97
+ body: { updates: [{ buildpack: buildpack }] },
98
+ });
99
+ core_1.ux.action.stop();
100
+ }
101
+ core_1.ux.action.start(createText(name, flags.space));
102
+ const app = await createApp(context, heroku, name, flags.stack);
103
+ core_1.ux.action.stop();
104
+ if (flags.addons) {
105
+ const plans = flags.addons.split(',');
106
+ const addons = addonsFromPlans(plans);
107
+ await addAddons(heroku, app, addons);
108
+ }
109
+ if (flags.buildpack) {
110
+ await addBuildpack(app, flags.buildpack);
111
+ }
112
+ const remoteUrl = await configureGitRemote(context, app);
113
+ await config.runHook('recache', { type: 'app', app: app.name });
114
+ printAppSummary(context, app, remoteUrl);
115
+ }
116
+ async function readManifest() {
117
+ const buffer = await (0, fs_extra_1.readFile)('heroku.yml');
118
+ return yaml.load(buffer.toString(), { filename: 'heroku.yml' });
119
+ }
120
+ async function runFromManifest(context, heroku) {
121
+ const { flags, args } = context;
122
+ const name = flags.app || args.app || process.env.HEROKU_APP;
123
+ core_1.ux.action.start('Reading heroku.yml manifest');
124
+ const manifest = await readManifest();
125
+ core_1.ux.action.stop();
126
+ core_1.ux.action.start(createText(name, flags.space));
127
+ const app = await createApp(context, heroku, name, 'container');
128
+ core_1.ux.action.stop();
129
+ // _.get used here to avoid type guards when working with `unknown`
130
+ const setup = (0, lodash_1.get)(manifest, 'setup', {});
131
+ const addons = setup.addons || [];
132
+ const configVars = setup.config || {};
133
+ await addAddons(heroku, app, addons);
134
+ await addConfigVars(heroku, app, configVars);
135
+ const remoteUrl = await configureGitRemote(context, app);
136
+ printAppSummary(context, app, remoteUrl);
137
+ }
138
+ class Create extends command_1.Command {
139
+ async run() {
140
+ const context = await this.parse(Create);
141
+ const { flags } = context;
142
+ if (this.config.channel === 'beta' && flags.manifest) {
143
+ return runFromManifest(context, this.heroku);
144
+ }
145
+ await runFromFlags(context, this.heroku, this.config);
146
+ }
147
+ }
148
+ exports.default = Create;
149
+ Create.description = 'creates a new app';
150
+ Create.hiddenAliases = ['create'];
151
+ Create.examples = [
152
+ `$ heroku apps:create
153
+ Creating app... done, stack is heroku-22
154
+ https://floating-dragon-42.heroku.com/ | https://git.heroku.com/floating-dragon-42.git
155
+
156
+ # or just
157
+ $ heroku create
158
+
159
+ # use a heroku.yml manifest file
160
+ $ heroku apps:create --manifest
161
+
162
+ # specify a buildpack
163
+ $ heroku apps:create --buildpack https://github.com/some/buildpack.git
164
+
165
+ # specify a name
166
+ $ heroku apps:create example
167
+
168
+ # create a staging app
169
+ $ heroku apps:create example-staging --remote staging
170
+
171
+ # create an app in the eu region
172
+ $ heroku apps:create --region eu`,
173
+ ];
174
+ Create.args = {
175
+ app: core_1.Args.string({ description: 'name of app to create', required: false }),
176
+ };
177
+ Create.flags = {
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
+ app: command_1.flags.string({ hidden: true }),
180
+ addons: command_1.flags.string({ description: 'comma-delimited list of addons to install' }),
181
+ buildpack: command_1.flags.string({
182
+ char: 'b',
183
+ description: 'buildpack url to use for this app',
184
+ completion: completions_1.BuildpackCompletion,
185
+ }),
186
+ manifest: command_1.flags.boolean({ char: 'm', description: 'use heroku.yml settings for this app', hidden: true }),
187
+ 'no-remote': command_1.flags.boolean({ char: 'n', description: 'do not create a git remote' }),
188
+ remote: command_1.flags.remote({ description: 'the git remote to create, default "heroku"', default: 'heroku' }),
189
+ stack: command_1.flags.string({ char: 's', description: 'the stack to create the app on', completion: completions_1.StackCompletion }),
190
+ space: command_1.flags.string({ description: 'the private space to create the app in', completion: completions_1.SpaceCompletion }),
191
+ region: command_1.flags.string({ description: 'specify region for the app to run in', completion: completions_1.RegionCompletion }),
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
+ }),
196
+ features: command_1.flags.string({ hidden: true }),
197
+ kernel: command_1.flags.string({ hidden: true }),
198
+ locked: command_1.flags.boolean({ hidden: true }),
199
+ json: command_1.flags.boolean({ description: 'output in json format' }),
200
+ team: command_1.flags.team(),
201
+ };
@@ -0,0 +1,15 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Destroy extends Command {
3
+ static description: string;
4
+ static help: string;
5
+ static hiddenAliases: string[];
6
+ static flags: {
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
+ confirm: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ };
11
+ static args: {
12
+ app: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
@@ -0,0 +1,47 @@
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 lodash_1 = require("lodash");
7
+ const confirmCommand_1 = require("../../lib/confirmCommand");
8
+ const git = require("../../lib/ci/git");
9
+ class Destroy extends command_1.Command {
10
+ async run() {
11
+ const { flags, args } = await this.parse(Destroy);
12
+ const app = args.app || flags.app;
13
+ if (!app)
14
+ throw new Error('No app specified.\nUSAGE: heroku apps:destroy APPNAME');
15
+ // this appears to report errors if app not found
16
+ await this.heroku.get(`/apps/${app}`);
17
+ await (0, confirmCommand_1.default)(app, flags.confirm, `WARNING: This will delete ${color_1.default.app(app)} including all add-ons.`);
18
+ core_1.ux.action.start(`Destroying ${color_1.default.app(app)} (including all add-ons)`);
19
+ await this.heroku.delete(`/apps/${app}`);
20
+ if (git.inGitRepo()) {
21
+ // delete git remotes pointing to this app
22
+ await git.listRemotes()
23
+ .then(remotes => {
24
+ const transformed = remotes
25
+ .filter(r => git.gitUrl(app) === r[1] || git.sshGitUrl(app) === r[1])
26
+ .map(r => r[0]);
27
+ const uniqueRemotes = (0, lodash_1.uniq)(transformed);
28
+ uniqueRemotes.forEach(element => {
29
+ git.rmRemote(element);
30
+ });
31
+ });
32
+ }
33
+ core_1.ux.action.stop();
34
+ }
35
+ }
36
+ exports.default = Destroy;
37
+ Destroy.description = 'permanently destroy an app';
38
+ Destroy.help = 'This will also destroy all add-ons on the app.';
39
+ Destroy.hiddenAliases = ['destroy', 'apps:delete'];
40
+ Destroy.flags = {
41
+ app: command_1.flags.app(),
42
+ remote: command_1.flags.remote(),
43
+ confirm: command_1.flags.string({ char: 'c' }),
44
+ };
45
+ Destroy.args = {
46
+ app: core_1.Args.string({ hidden: true }),
47
+ };
@@ -0,0 +1,13 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Errors extends Command {
3
+ static description: string;
4
+ static flags: {
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>;
7
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
8
+ hours: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ router: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
10
+ dyno: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
+ };
12
+ run(): Promise<void>;
13
+ }