heroku 9.0.0-alpha.0 → 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 (544) hide show
  1. package/README.md +9 -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 +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 +10 -0
  43. package/lib/commands/apps/favorites/add.js +38 -0
  44. package/lib/commands/apps/favorites/index.d.ts +9 -0
  45. package/lib/commands/apps/favorites/index.js +25 -0
  46. package/lib/commands/apps/favorites/remove.d.ts +10 -0
  47. package/lib/commands/apps/favorites/remove.js +28 -0
  48. package/lib/commands/apps/index.d.ts +16 -0
  49. package/lib/commands/apps/index.js +119 -0
  50. package/lib/commands/apps/info.d.ts +19 -0
  51. package/lib/commands/apps/info.js +162 -0
  52. package/lib/commands/apps/join.d.ts +11 -0
  53. package/lib/commands/apps/join.js +25 -0
  54. package/lib/commands/apps/leave.d.ts +12 -0
  55. package/lib/commands/apps/leave.js +25 -0
  56. package/lib/commands/apps/lock.d.ts +11 -0
  57. package/lib/commands/apps/lock.js +30 -0
  58. package/lib/commands/apps/open.d.ts +15 -0
  59. package/lib/commands/apps/open.js +30 -0
  60. package/lib/commands/apps/rename.d.ts +16 -0
  61. package/lib/commands/apps/rename.js +51 -0
  62. package/lib/commands/apps/stacks/index.d.ts +11 -0
  63. package/lib/commands/apps/stacks/index.js +44 -0
  64. package/lib/commands/apps/stacks/set.d.ts +14 -0
  65. package/lib/commands/apps/stacks/set.js +41 -0
  66. package/lib/commands/apps/transfer.d.ts +17 -0
  67. package/lib/commands/apps/transfer.js +91 -0
  68. package/lib/commands/apps/unlock.d.ts +11 -0
  69. package/lib/commands/apps/unlock.js +30 -0
  70. package/lib/commands/auth/logout.js +1 -0
  71. package/lib/commands/auth/token.js +2 -1
  72. package/lib/commands/authorizations/create.js +5 -1
  73. package/lib/commands/authorizations/info.js +5 -1
  74. package/lib/commands/authorizations/revoke.js +5 -1
  75. package/lib/commands/authorizations/rotate.js +5 -1
  76. package/lib/commands/authorizations/update.js +5 -1
  77. package/lib/commands/autocomplete/doctor.js +2 -2
  78. package/lib/commands/autocomplete/options.js +2 -2
  79. package/lib/commands/certs/add.d.ts +16 -0
  80. package/lib/commands/certs/add.js +98 -0
  81. package/lib/commands/certs/auto/disable.d.ts +11 -0
  82. package/lib/commands/certs/auto/disable.js +34 -0
  83. package/lib/commands/certs/auto/enable.d.ts +11 -0
  84. package/lib/commands/certs/auto/enable.js +51 -0
  85. package/lib/commands/certs/auto/index.d.ts +12 -0
  86. package/lib/commands/certs/auto/index.js +94 -0
  87. package/lib/commands/certs/auto/refresh.d.ts +10 -0
  88. package/lib/commands/certs/auto/refresh.js +19 -0
  89. package/lib/commands/certs/generate.d.ts +26 -0
  90. package/lib/commands/certs/generate.js +111 -0
  91. package/lib/commands/certs/index.d.ts +10 -0
  92. package/lib/commands/certs/index.js +26 -0
  93. package/lib/commands/certs/info.d.ts +13 -0
  94. package/lib/commands/certs/info.js +43 -0
  95. package/lib/commands/certs/remove.d.ts +13 -0
  96. package/lib/commands/certs/remove.js +32 -0
  97. package/lib/commands/certs/update.d.ts +18 -0
  98. package/lib/commands/certs/update.js +54 -0
  99. package/lib/commands/ci/config/get.d.ts +1 -0
  100. package/lib/commands/ci/config/get.js +1 -0
  101. package/lib/commands/ci/config/index.d.ts +12 -0
  102. package/lib/commands/ci/config/index.js +43 -0
  103. package/lib/commands/ci/config/set.d.ts +3 -2
  104. package/lib/commands/ci/config/set.js +3 -6
  105. package/lib/commands/ci/config/unset.d.ts +14 -0
  106. package/lib/commands/ci/config/unset.js +36 -0
  107. package/lib/commands/ci/index.d.ts +1 -0
  108. package/lib/commands/ci/index.js +1 -0
  109. package/lib/commands/ci/info.d.ts +1 -0
  110. package/lib/commands/ci/info.js +1 -0
  111. package/lib/commands/ci/last.d.ts +1 -0
  112. package/lib/commands/ci/last.js +1 -0
  113. package/lib/commands/ci/migrate-manifest.d.ts +7 -0
  114. package/lib/commands/ci/migrate-manifest.js +74 -0
  115. package/lib/commands/ci/open.d.ts +1 -0
  116. package/lib/commands/ci/open.js +1 -0
  117. package/lib/commands/ci/rerun.d.ts +1 -0
  118. package/lib/commands/ci/rerun.js +1 -0
  119. package/lib/commands/config/set.d.ts +12 -0
  120. package/lib/commands/config/set.js +60 -0
  121. package/lib/commands/container/index.d.ts +6 -0
  122. package/lib/commands/container/index.js +13 -0
  123. package/lib/commands/container/login.d.ts +9 -0
  124. package/lib/commands/container/login.js +57 -0
  125. package/lib/commands/container/logout.d.ts +9 -0
  126. package/lib/commands/container/logout.js +37 -0
  127. package/lib/commands/container/pull.d.ts +14 -0
  128. package/lib/commands/container/pull.js +40 -0
  129. package/lib/commands/container/push.d.ts +16 -0
  130. package/lib/commands/container/push.js +101 -0
  131. package/lib/commands/container/release.d.ts +14 -0
  132. package/lib/commands/container/release.js +89 -0
  133. package/lib/commands/container/rm.d.ts +13 -0
  134. package/lib/commands/container/rm.js +36 -0
  135. package/lib/commands/container/run.d.ts +15 -0
  136. package/lib/commands/container/run.js +63 -0
  137. package/lib/commands/dashboard.d.ts +7 -0
  138. package/lib/commands/dashboard.js +164 -0
  139. package/lib/commands/domains/index.d.ts +3 -3
  140. package/lib/commands/drains/add.d.ts +12 -0
  141. package/lib/commands/drains/add.js +23 -0
  142. package/lib/commands/drains/index.d.ts +11 -0
  143. package/lib/commands/drains/index.js +50 -0
  144. package/lib/commands/drains/remove.d.ts +13 -0
  145. package/lib/commands/drains/remove.js +22 -0
  146. package/lib/commands/features/disable.d.ts +12 -0
  147. package/lib/commands/features/disable.js +30 -0
  148. package/lib/commands/features/enable.d.ts +12 -0
  149. package/lib/commands/features/enable.js +29 -0
  150. package/lib/commands/features/index.d.ts +10 -0
  151. package/lib/commands/features/index.js +37 -0
  152. package/lib/commands/features/info.d.ts +13 -0
  153. package/lib/commands/features/info.js +33 -0
  154. package/lib/commands/keys/add.d.ts +14 -0
  155. package/lib/commands/keys/add.js +101 -0
  156. package/lib/commands/keys/clear.d.ts +5 -0
  157. package/lib/commands/keys/clear.js +17 -0
  158. package/lib/commands/keys/index.d.ts +9 -0
  159. package/lib/commands/keys/index.js +36 -0
  160. package/lib/commands/keys/remove.d.ts +9 -0
  161. package/lib/commands/keys/remove.js +29 -0
  162. package/lib/commands/labs/enable.d.ts +13 -0
  163. package/lib/commands/labs/enable.js +47 -0
  164. package/lib/commands/labs/index.d.ts +11 -0
  165. package/lib/commands/labs/index.js +71 -0
  166. package/lib/commands/labs/info.d.ts +14 -0
  167. package/lib/commands/labs/info.js +49 -0
  168. package/lib/commands/local/index.d.ts +1 -1
  169. package/lib/commands/local/index.js +8 -3
  170. package/lib/commands/local/run.d.ts +1 -1
  171. package/lib/commands/local/run.js +8 -3
  172. package/lib/commands/maintenance/index.d.ts +10 -0
  173. package/lib/commands/maintenance/index.js +19 -0
  174. package/lib/commands/maintenance/off.d.ts +10 -0
  175. package/lib/commands/maintenance/off.js +20 -0
  176. package/lib/commands/maintenance/on.d.ts +10 -0
  177. package/lib/commands/maintenance/on.js +20 -0
  178. package/lib/commands/members/add.d.ts +13 -0
  179. package/lib/commands/members/add.js +33 -0
  180. package/lib/commands/members/index.d.ts +12 -0
  181. package/lib/commands/members/index.js +76 -0
  182. package/lib/commands/members/remove.d.ts +10 -0
  183. package/lib/commands/members/remove.js +58 -0
  184. package/lib/commands/members/set.d.ts +11 -0
  185. package/lib/commands/members/set.js +21 -0
  186. package/lib/commands/notifications/index.d.ts +13 -0
  187. package/lib/commands/notifications/index.js +62 -0
  188. package/lib/commands/orgs/index.d.ts +11 -0
  189. package/lib/commands/orgs/index.js +27 -0
  190. package/lib/commands/orgs/open.d.ts +10 -0
  191. package/lib/commands/orgs/open.js +24 -0
  192. package/lib/commands/pg/backups/cancel.d.ts +15 -0
  193. package/lib/commands/pg/backups/cancel.js +49 -0
  194. package/lib/commands/pg/backups/capture.d.ts +15 -0
  195. package/lib/commands/pg/backups/capture.js +65 -0
  196. package/lib/commands/pg/backups/delete.d.ts +15 -0
  197. package/lib/commands/pg/backups/delete.js +38 -0
  198. package/lib/commands/pg/backups/download.d.ts +14 -0
  199. package/lib/commands/pg/backups/download.js +58 -0
  200. package/lib/commands/pg/backups/index.d.ts +20 -0
  201. package/lib/commands/pg/backups/index.js +129 -0
  202. package/lib/commands/pg/backups/info.d.ts +17 -0
  203. package/lib/commands/pg/backups/info.js +92 -0
  204. package/lib/commands/pg/backups/restore.d.ts +19 -0
  205. package/lib/commands/pg/backups/restore.js +107 -0
  206. package/lib/commands/pg/backups/schedule.d.ts +21 -0
  207. package/lib/commands/pg/backups/schedule.js +82 -0
  208. package/lib/commands/pg/backups/schedules.d.ts +10 -0
  209. package/lib/commands/pg/backups/schedules.js +31 -0
  210. package/lib/commands/pg/backups/unschedule.d.ts +13 -0
  211. package/lib/commands/pg/backups/unschedule.js +44 -0
  212. package/lib/commands/pg/backups/url.d.ts +13 -0
  213. package/lib/commands/pg/backups/url.js +41 -0
  214. package/lib/commands/pg/bloat.d.ts +13 -0
  215. package/lib/commands/pg/bloat.js +87 -0
  216. package/lib/commands/pg/blocking.d.ts +13 -0
  217. package/lib/commands/pg/blocking.js +42 -0
  218. package/lib/commands/pg/connection-pooling/attach.d.ts +15 -0
  219. package/lib/commands/pg/connection-pooling/attach.js +41 -0
  220. package/lib/commands/pg/copy.d.ts +18 -0
  221. package/lib/commands/pg/copy.js +86 -0
  222. package/lib/commands/pg/credentials/create.d.ts +14 -0
  223. package/lib/commands/pg/credentials/create.js +40 -0
  224. package/lib/commands/pg/credentials/destroy.d.ts +16 -0
  225. package/lib/commands/pg/credentials/destroy.js +48 -0
  226. package/lib/commands/pg/credentials/repair-default.d.ts +15 -0
  227. package/lib/commands/pg/credentials/repair-default.js +39 -0
  228. package/lib/commands/pg/credentials/rotate.d.ts +16 -0
  229. package/lib/commands/pg/credentials/rotate.js +82 -0
  230. package/lib/commands/pg/credentials/url.d.ts +14 -0
  231. package/lib/commands/pg/credentials/url.js +64 -0
  232. package/lib/commands/pg/credentials.d.ts +16 -0
  233. package/lib/commands/pg/credentials.js +61 -0
  234. package/lib/commands/pg/diagnose.d.ts +18 -0
  235. package/lib/commands/pg/diagnose.js +109 -0
  236. package/lib/commands/pg/info.d.ts +14 -0
  237. package/lib/commands/pg/info.js +92 -0
  238. package/lib/commands/pg/kill.d.ts +15 -0
  239. package/lib/commands/pg/kill.js +32 -0
  240. package/lib/commands/pg/killall.d.ts +13 -0
  241. package/lib/commands/pg/killall.js +26 -0
  242. package/lib/commands/pg/links/create.d.ts +15 -0
  243. package/lib/commands/pg/links/create.js +58 -0
  244. package/lib/commands/pg/links/destroy.d.ts +16 -0
  245. package/lib/commands/pg/links/destroy.js +42 -0
  246. package/lib/commands/pg/links/index.d.ts +13 -0
  247. package/lib/commands/pg/links/index.js +59 -0
  248. package/lib/commands/pg/locks.d.ts +15 -0
  249. package/lib/commands/pg/locks.js +53 -0
  250. package/lib/commands/pg/maintenance/index.d.ts +13 -0
  251. package/lib/commands/pg/maintenance/index.js +29 -0
  252. package/lib/commands/pg/maintenance/run.d.ts +14 -0
  253. package/lib/commands/pg/maintenance/run.js +37 -0
  254. package/lib/commands/pg/maintenance/window.d.ts +15 -0
  255. package/lib/commands/pg/maintenance/window.js +41 -0
  256. package/lib/commands/pg/outliers.d.ts +19 -0
  257. package/lib/commands/pg/outliers.js +97 -0
  258. package/lib/commands/pg/promote.d.ts +14 -0
  259. package/lib/commands/pg/promote.js +169 -0
  260. package/lib/commands/pg/ps.d.ts +14 -0
  261. package/lib/commands/pg/ps.js +52 -0
  262. package/lib/commands/pg/psql.d.ts +16 -0
  263. package/lib/commands/pg/psql.js +49 -0
  264. package/lib/commands/pg/pull.d.ts +18 -0
  265. package/lib/commands/pg/pull.js +87 -0
  266. package/lib/commands/pg/push.d.ts +18 -0
  267. package/lib/commands/pg/push.js +84 -0
  268. package/lib/commands/pg/reset.d.ts +15 -0
  269. package/lib/commands/pg/reset.js +44 -0
  270. package/lib/commands/pg/settings/auto-explain/log-analyze.d.ts +13 -0
  271. package/lib/commands/pg/settings/auto-explain/log-analyze.js +32 -0
  272. package/lib/commands/pg/settings/auto-explain/log-buffers.d.ts +13 -0
  273. package/lib/commands/pg/settings/auto-explain/log-buffers.js +30 -0
  274. package/lib/commands/pg/settings/auto-explain/log-min-duration.d.ts +16 -0
  275. package/lib/commands/pg/settings/auto-explain/log-min-duration.js +33 -0
  276. package/lib/commands/pg/settings/auto-explain/log-nested-statements.d.ts +12 -0
  277. package/lib/commands/pg/settings/auto-explain/log-nested-statements.js +25 -0
  278. package/lib/commands/pg/settings/auto-explain/log-triggers.d.ts +13 -0
  279. package/lib/commands/pg/settings/auto-explain/log-triggers.js +30 -0
  280. package/lib/commands/pg/settings/auto-explain/log-verbose.d.ts +17 -0
  281. package/lib/commands/pg/settings/auto-explain/log-verbose.js +33 -0
  282. package/lib/commands/pg/settings/auto-explain.d.ts +18 -0
  283. package/lib/commands/pg/settings/auto-explain.js +38 -0
  284. package/lib/commands/pg/settings/index.d.ts +13 -0
  285. package/lib/commands/pg/settings/index.js +34 -0
  286. package/lib/commands/pg/settings/log-connections.d.ts +17 -0
  287. package/lib/commands/pg/settings/log-connections.js +34 -0
  288. package/lib/commands/pg/settings/log-lock-waits.d.ts +13 -0
  289. package/lib/commands/pg/settings/log-lock-waits.js +31 -0
  290. package/lib/commands/pg/settings/log-min-duration-statement.d.ts +15 -0
  291. package/lib/commands/pg/settings/log-min-duration-statement.js +33 -0
  292. package/lib/commands/pg/settings/log-statement.d.ts +12 -0
  293. package/lib/commands/pg/settings/log-statement.js +30 -0
  294. package/lib/commands/pg/settings/track-functions.d.ts +12 -0
  295. package/lib/commands/pg/settings/track-functions.js +29 -0
  296. package/lib/commands/pg/unfollow.d.ts +14 -0
  297. package/lib/commands/pg/unfollow.js +40 -0
  298. package/lib/commands/pg/upgrade.d.ts +15 -0
  299. package/lib/commands/pg/upgrade.js +58 -0
  300. package/lib/commands/pg/vacuum-stats.d.ts +13 -0
  301. package/lib/commands/pg/vacuum-stats.js +65 -0
  302. package/lib/commands/pg/wait.d.ts +15 -0
  303. package/lib/commands/pg/wait.js +79 -0
  304. package/lib/commands/pipelines/connect.js +1 -1
  305. package/lib/commands/pipelines/diff.js +1 -1
  306. package/lib/commands/ps/index.d.ts +15 -0
  307. package/lib/commands/ps/index.js +195 -0
  308. package/lib/commands/ps/restart.d.ts +17 -0
  309. package/lib/commands/ps/restart.js +38 -0
  310. package/lib/commands/ps/scale.d.ts +13 -0
  311. package/lib/commands/ps/scale.js +108 -0
  312. package/lib/commands/ps/stop.d.ts +17 -0
  313. package/lib/commands/ps/stop.js +33 -0
  314. package/lib/commands/ps/type.d.ts +12 -0
  315. package/lib/commands/ps/type.js +163 -0
  316. package/lib/commands/redis/cli.d.ts +15 -0
  317. package/lib/commands/redis/cli.js +204 -0
  318. package/lib/commands/redis/credentials.d.ts +14 -0
  319. package/lib/commands/redis/credentials.js +32 -0
  320. package/lib/commands/redis/info.d.ts +15 -0
  321. package/lib/commands/redis/info.js +25 -0
  322. package/lib/commands/redis/keyspace-notifications.d.ts +14 -0
  323. package/lib/commands/redis/keyspace-notifications.js +47 -0
  324. package/lib/commands/redis/maintenance.d.ts +16 -0
  325. package/lib/commands/redis/maintenance.js +63 -0
  326. package/lib/commands/redis/maxmemory.d.ts +14 -0
  327. package/lib/commands/redis/maxmemory.js +40 -0
  328. package/lib/commands/redis/promote.d.ts +13 -0
  329. package/lib/commands/redis/promote.js +39 -0
  330. package/lib/commands/redis/stats-reset.d.ts +14 -0
  331. package/lib/commands/redis/stats-reset.js +36 -0
  332. package/lib/commands/redis/timeout.d.ts +14 -0
  333. package/lib/commands/redis/timeout.js +35 -0
  334. package/lib/commands/redis/upgrade.d.ts +15 -0
  335. package/lib/commands/redis/upgrade.js +37 -0
  336. package/lib/commands/redis/wait.d.ts +14 -0
  337. package/lib/commands/redis/wait.js +60 -0
  338. package/lib/commands/releases/index.d.ts +14 -0
  339. package/lib/commands/releases/index.js +124 -0
  340. package/lib/commands/releases/info.d.ts +15 -0
  341. package/lib/commands/releases/info.js +56 -0
  342. package/lib/commands/releases/output.d.ts +13 -0
  343. package/lib/commands/releases/output.js +37 -0
  344. package/lib/commands/releases/rollback.d.ts +14 -0
  345. package/lib/commands/releases/rollback.js +48 -0
  346. package/lib/commands/run/detached.d.ts +7 -8
  347. package/lib/commands/run/detached.js +16 -20
  348. package/lib/commands/run/index.d.ts +10 -11
  349. package/lib/commands/run/index.js +16 -17
  350. package/lib/commands/run/inside.d.ts +5 -7
  351. package/lib/commands/run/inside.js +10 -14
  352. package/lib/commands/spaces/create.d.ts +22 -0
  353. package/lib/commands/spaces/create.js +73 -0
  354. package/lib/commands/spaces/destroy.d.ts +14 -0
  355. package/lib/commands/spaces/destroy.js +49 -0
  356. package/lib/commands/spaces/drains/get.d.ts +12 -0
  357. package/lib/commands/spaces/drains/get.js +27 -0
  358. package/lib/commands/spaces/drains/set.d.ts +14 -0
  359. package/lib/commands/spaces/drains/set.js +29 -0
  360. package/lib/commands/spaces/hosts.d.ts +14 -0
  361. package/lib/commands/spaces/hosts.js +37 -0
  362. package/lib/commands/spaces/index.d.ts +16 -0
  363. package/lib/commands/spaces/index.js +55 -0
  364. package/lib/commands/spaces/info.d.ts +14 -0
  365. package/lib/commands/spaces/info.js +47 -0
  366. package/lib/commands/spaces/outbound-rules/add.d.ts +15 -0
  367. package/lib/commands/spaces/outbound-rules/add.js +81 -0
  368. package/lib/commands/spaces/outbound-rules/index.d.ts +15 -0
  369. package/lib/commands/spaces/outbound-rules/index.js +49 -0
  370. package/lib/commands/spaces/outbound-rules/remove.d.ts +17 -0
  371. package/lib/commands/spaces/outbound-rules/remove.js +53 -0
  372. package/lib/commands/spaces/peerings/accept.d.ts +15 -0
  373. package/lib/commands/spaces/peerings/accept.js +36 -0
  374. package/lib/commands/spaces/peerings/destroy.d.ts +15 -0
  375. package/lib/commands/spaces/peerings/destroy.js +45 -0
  376. package/lib/commands/spaces/peerings/index.d.ts +13 -0
  377. package/lib/commands/spaces/peerings/index.js +33 -0
  378. package/lib/commands/spaces/peerings/info.d.ts +15 -0
  379. package/lib/commands/spaces/peerings/info.js +59 -0
  380. package/lib/commands/spaces/ps.d.ts +15 -0
  381. package/lib/commands/spaces/ps.js +82 -0
  382. package/lib/commands/spaces/rename.d.ts +11 -0
  383. package/lib/commands/spaces/rename.js +26 -0
  384. package/lib/commands/spaces/topology.d.ts +32 -0
  385. package/lib/commands/spaces/topology.js +89 -0
  386. package/lib/commands/spaces/transfer.d.ts +11 -0
  387. package/lib/commands/spaces/transfer.js +35 -0
  388. package/lib/commands/spaces/trusted-ips/add.d.ts +16 -0
  389. package/lib/commands/spaces/trusted-ips/add.js +43 -0
  390. package/lib/commands/spaces/trusted-ips/index.d.ts +15 -0
  391. package/lib/commands/spaces/trusted-ips/index.js +52 -0
  392. package/lib/commands/spaces/trusted-ips/remove.d.ts +15 -0
  393. package/lib/commands/spaces/trusted-ips/remove.js +44 -0
  394. package/lib/commands/spaces/vpn/config.d.ts +14 -0
  395. package/lib/commands/spaces/vpn/config.js +54 -0
  396. package/lib/commands/spaces/vpn/connect.d.ts +15 -0
  397. package/lib/commands/spaces/vpn/connect.js +45 -0
  398. package/lib/commands/spaces/vpn/connections.d.ts +17 -0
  399. package/lib/commands/spaces/vpn/connections.js +57 -0
  400. package/lib/commands/spaces/vpn/destroy.d.ts +14 -0
  401. package/lib/commands/spaces/vpn/destroy.js +35 -0
  402. package/lib/commands/spaces/vpn/info.d.ts +16 -0
  403. package/lib/commands/spaces/vpn/info.js +82 -0
  404. package/lib/commands/spaces/vpn/update.d.ts +14 -0
  405. package/lib/commands/spaces/vpn/update.js +36 -0
  406. package/lib/commands/spaces/vpn/wait.d.ts +13 -0
  407. package/lib/commands/spaces/vpn/wait.js +53 -0
  408. package/lib/commands/spaces/wait.d.ts +17 -0
  409. package/lib/commands/spaces/wait.js +89 -0
  410. package/lib/commands/status.js +4 -4
  411. package/lib/commands/teams/index.d.ts +9 -0
  412. package/lib/commands/teams/index.js +29 -0
  413. package/lib/global_telemetry.js +10 -4
  414. package/lib/hooks/postrun/performance_analytics.js +5 -4
  415. package/lib/hooks/prerun/analytics.js +3 -0
  416. package/lib/lib/addons/addons_wait.d.ts +78 -0
  417. package/lib/lib/addons/addons_wait.js +56 -0
  418. package/lib/lib/addons/create_addon.d.ts +7 -0
  419. package/lib/lib/addons/create_addon.js +59 -0
  420. package/lib/lib/addons/destroy_addon.d.ts +3 -0
  421. package/lib/lib/addons/destroy_addon.js +48 -0
  422. package/lib/lib/addons/resolve.d.ts +38 -0
  423. package/lib/lib/addons/resolve.js +179 -0
  424. package/lib/lib/addons/util.d.ts +9 -0
  425. package/lib/lib/addons/util.js +72 -0
  426. package/lib/lib/api.d.ts +1 -1
  427. package/lib/lib/apps/app-transfer.d.ts +10 -0
  428. package/lib/lib/apps/app-transfer.js +35 -0
  429. package/lib/lib/apps/error_info.d.ts +7 -0
  430. package/lib/lib/apps/error_info.js +185 -0
  431. package/lib/lib/autocomplete/completions.d.ts +4 -0
  432. package/lib/lib/autocomplete/completions.js +6 -1
  433. package/lib/lib/buildpacks/buildpacks.js +3 -4
  434. package/lib/lib/certs/certificate_details.d.ts +2 -0
  435. package/lib/lib/certs/certificate_details.js +37 -0
  436. package/lib/lib/certs/display_table.d.ts +2 -0
  437. package/lib/lib/certs/display_table.js +51 -0
  438. package/lib/lib/certs/domains.d.ts +3 -0
  439. package/lib/lib/certs/domains.js +45 -0
  440. package/lib/lib/certs/flags.d.ts +7 -0
  441. package/lib/lib/certs/flags.js +42 -0
  442. package/lib/lib/certs/format_date.d.ts +1 -0
  443. package/lib/lib/certs/format_date.js +11 -0
  444. package/lib/lib/certs/get_cert_and_key.d.ts +9 -0
  445. package/lib/lib/certs/get_cert_and_key.js +11 -0
  446. package/lib/lib/ci/git.d.ts +7 -1
  447. package/lib/lib/ci/git.js +44 -1
  448. package/lib/lib/ci/interfaces/kolkrabbi.d.ts +1 -1
  449. package/lib/lib/ci/source.js +3 -3
  450. package/lib/lib/ci/test-run.js +2 -2
  451. package/lib/lib/ci/validate.d.ts +2 -0
  452. package/lib/lib/ci/validate.js +10 -0
  453. package/lib/lib/config/quote.js +1 -1
  454. package/lib/lib/confirmCommand.d.ts +1 -0
  455. package/lib/lib/confirmCommand.js +23 -0
  456. package/lib/lib/container/debug.d.ts +2 -0
  457. package/lib/lib/container/debug.js +5 -0
  458. package/lib/lib/container/docker_helper.d.ts +24 -0
  459. package/lib/lib/container/docker_helper.js +168 -0
  460. package/lib/lib/container/streamer.d.ts +1 -0
  461. package/lib/lib/container/streamer.js +31 -0
  462. package/lib/lib/domains/domains.d.ts +6 -0
  463. package/lib/lib/domains/domains.js +104 -0
  464. package/lib/lib/git/git.d.ts +3 -0
  465. package/lib/lib/git/git.js +19 -0
  466. package/lib/lib/git/push.d.ts +1 -0
  467. package/lib/lib/git/push.js +6 -0
  468. package/lib/lib/local/run-foreman.d.ts +1 -0
  469. package/lib/lib/local/run-foreman.js +229 -1
  470. package/lib/lib/members/util.d.ts +3 -0
  471. package/lib/lib/members/util.js +25 -0
  472. package/lib/lib/members/utils.d.ts +2 -0
  473. package/lib/lib/members/utils.js +14 -0
  474. package/lib/lib/notify.d.ts +1 -0
  475. package/lib/lib/notify.js +23 -0
  476. package/lib/lib/orgs/utils.d.ts +5 -0
  477. package/lib/lib/orgs/utils.js +24 -0
  478. package/lib/lib/pg/backups.d.ts +17 -0
  479. package/lib/lib/pg/backups.js +164 -0
  480. package/lib/lib/pg/bastion.d.ts +29 -0
  481. package/lib/lib/pg/bastion.js +121 -0
  482. package/lib/lib/pg/config.d.ts +2 -0
  483. package/lib/lib/pg/config.js +13 -0
  484. package/lib/lib/pg/download.d.ts +5 -0
  485. package/lib/lib/pg/download.js +34 -0
  486. package/lib/lib/pg/fetcher.d.ts +39 -0
  487. package/lib/lib/pg/fetcher.js +137 -0
  488. package/lib/lib/pg/host.d.ts +1 -0
  489. package/lib/lib/pg/host.js +7 -0
  490. package/lib/lib/pg/psql.d.ts +48 -0
  491. package/lib/lib/pg/psql.js +252 -0
  492. package/lib/lib/pg/push_pull.d.ts +13 -0
  493. package/lib/lib/pg/push_pull.js +118 -0
  494. package/lib/lib/pg/setter.d.ts +16 -0
  495. package/lib/lib/pg/setter.js +65 -0
  496. package/lib/lib/pg/types.d.ts +230 -0
  497. package/lib/lib/pg/types.js +2 -0
  498. package/lib/lib/pg/util.d.ts +36 -0
  499. package/lib/lib/pg/util.js +183 -0
  500. package/lib/lib/redis/api.d.ts +65 -0
  501. package/lib/lib/redis/api.js +122 -0
  502. package/lib/lib/releases/output.d.ts +1 -0
  503. package/lib/lib/releases/output.js +14 -0
  504. package/lib/lib/releases/releases.d.ts +6 -0
  505. package/lib/lib/releases/releases.js +32 -0
  506. package/lib/lib/releases/status_helper.d.ts +5 -0
  507. package/lib/lib/releases/status_helper.js +25 -0
  508. package/lib/lib/run/dyno.js +2 -2
  509. package/lib/lib/run/log-displayer.d.ts +1 -1
  510. package/lib/lib/spaces/format.d.ts +4 -0
  511. package/lib/lib/spaces/format.js +60 -0
  512. package/lib/lib/spaces/hosts.d.ts +9 -0
  513. package/lib/lib/spaces/hosts.js +34 -0
  514. package/lib/lib/spaces/outbound-rules.d.ts +4 -0
  515. package/lib/lib/spaces/outbound-rules.js +78 -0
  516. package/lib/lib/spaces/parsers.d.ts +8 -0
  517. package/lib/lib/spaces/parsers.js +17 -0
  518. package/lib/lib/spaces/peering.d.ts +4 -0
  519. package/lib/lib/spaces/peering.js +53 -0
  520. package/lib/lib/spaces/spaces.d.ts +4 -0
  521. package/lib/lib/spaces/spaces.js +37 -0
  522. package/lib/lib/spaces/vpn-connections.d.ts +2 -0
  523. package/lib/lib/spaces/vpn-connections.js +22 -0
  524. package/lib/lib/teamUtils.d.ts +3 -0
  525. package/lib/lib/teamUtils.js +18 -0
  526. package/lib/lib/time.d.ts +2 -0
  527. package/lib/lib/time.js +29 -0
  528. package/lib/lib/types/app_errors.d.ts +6 -0
  529. package/lib/lib/types/app_errors.js +2 -0
  530. package/lib/lib/types/domain.d.ts +61 -0
  531. package/lib/lib/types/domain.js +5 -0
  532. package/lib/lib/types/favorites.d.ts +7 -0
  533. package/lib/lib/types/favorites.js +2 -0
  534. package/lib/lib/types/notifications.d.ts +20 -0
  535. package/lib/lib/types/notifications.js +2 -0
  536. package/lib/lib/utils/multisort.d.ts +32 -0
  537. package/lib/lib/utils/multisort.js +66 -0
  538. package/lib/lib/utils/uuid-validate.d.ts +1 -0
  539. package/lib/lib/utils/uuid-validate.js +7 -0
  540. package/lib/user-config.js +2 -2
  541. package/oclif.manifest.json +12920 -2534
  542. package/package.json +111 -60
  543. package/lib/lib/buildpacks/push.d.ts +0 -0
  544. package/lib/lib/buildpacks/push.js +0 -4
@@ -0,0 +1,73 @@
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 tsheredoc_1 = require("tsheredoc");
7
+ const spaces_1 = require("../../lib/spaces/spaces");
8
+ const completions_1 = require("../../lib/autocomplete/completions");
9
+ const parsers_1 = require("../../lib/spaces/parsers");
10
+ class Create extends command_1.Command {
11
+ async run() {
12
+ const { flags, args } = await this.parse(Create);
13
+ const { channel, region, features, 'log-drain-url': logDrainUrl, shield, cidr, 'kpi-url': kpiUrl, 'data-cidr': dataCidr, team } = flags;
14
+ const spaceName = flags.space || args.space;
15
+ if (!spaceName) {
16
+ core_1.ux.error((0, tsheredoc_1.default) `
17
+ Space name required.
18
+ USAGE: heroku spaces:create --space my-space --team my-team
19
+ `);
20
+ }
21
+ const dollarAmountMonthly = shield ? '$3000' : '$1000';
22
+ const dollarAmountHourly = shield ? '$4.17' : '$1.39';
23
+ const spaceType = shield ? 'Shield' : 'Standard';
24
+ core_1.ux.action.start(`Creating space ${color_1.default.green(spaceName)} in team ${color_1.default.cyan(team)}`);
25
+ const { body: space } = await this.heroku.post('/spaces', {
26
+ body: {
27
+ name: spaceName, team: team, channel_name: channel, region: region, features: (0, parsers_1.splitCsv)(features),
28
+ log_drain_url: logDrainUrl, shield, cidr, kpi_url: kpiUrl, data_cidr: dataCidr,
29
+ },
30
+ });
31
+ core_1.ux.action.stop();
32
+ core_1.ux.warn(`${color_1.default.bold('Spend Alert.')} During the limited GA period, each Heroku ${spaceType} Private Space costs ~${dollarAmountHourly}/hour (max ${dollarAmountMonthly}/month), pro-rated to the second.`);
33
+ core_1.ux.warn(`Use ${color_1.default.cmd('heroku spaces:wait')} to track allocation.`);
34
+ core_1.ux.styledHeader(space.name);
35
+ core_1.ux.styledObject({
36
+ ID: space.id, Team: space.team.name, Region: space.region.name, CIDR: space.cidr, 'Data CIDR': space.data_cidr, State: space.state, Shield: (0, spaces_1.displayShieldState)(space), 'Created at': space.created_at,
37
+ }, ['ID', 'Team', 'Region', 'CIDR', 'Data CIDR', 'State', 'Shield', 'Created at']);
38
+ }
39
+ }
40
+ exports.default = Create;
41
+ Create.topic = 'spaces';
42
+ Create.description = (0, tsheredoc_1.default) `
43
+ create a new space
44
+ `;
45
+ Create.examples = [(0, tsheredoc_1.default) `
46
+ Example:
47
+
48
+ $ heroku spaces:create --space my-space --team my-team --region oregon
49
+ Creating space my-space in team my-team... done
50
+ === my-space
51
+ ID: e7b99e37-69b3-4475-ad47-a5cc5d75fd9f
52
+ Team: my-team
53
+ Region: oregon
54
+ CIDR: 10.0.0.0/16
55
+ Data CIDR: 172.23.0.0/20
56
+ State: allocating
57
+ Created at: 2016-01-06T03:23:13Z
58
+ `];
59
+ Create.flags = {
60
+ space: command_1.flags.string({ char: 's', description: 'name of space to create' }),
61
+ channel: command_1.flags.string({ hidden: true }),
62
+ region: command_1.flags.string({ description: 'region name', completion: completions_1.RegionCompletion }),
63
+ features: command_1.flags.string({ hidden: true, description: 'a list of features separated by commas' }),
64
+ 'log-drain-url': command_1.flags.string({ hidden: true, description: 'direct log drain url' }),
65
+ shield: command_1.flags.boolean({ hidden: true, description: 'create a Shield space' }),
66
+ cidr: command_1.flags.string({ description: 'RFC-1918 CIDR the space will use' }),
67
+ 'kpi-url': command_1.flags.string({ hidden: true, description: 'self-managed KPI endpoint to use' }),
68
+ 'data-cidr': command_1.flags.string({ description: 'RFC-1918 CIDR used by Heroku Data resources for the space' }),
69
+ team: command_1.flags.team({ required: true }),
70
+ };
71
+ Create.args = {
72
+ space: core_1.Args.string({ hidden: true }),
73
+ };
@@ -0,0 +1,14 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Destroy extends Command {
3
+ static topic: string;
4
+ static description: string;
5
+ static examples: string[];
6
+ static flags: {
7
+ space: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ confirm: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
10
+ static args: {
11
+ space: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const color_1 = require("@heroku-cli/color");
5
+ const command_1 = require("@heroku-cli/command");
6
+ const tsheredoc_1 = require("tsheredoc");
7
+ const confirmCommand_1 = require("../../lib/confirmCommand");
8
+ const spaces_1 = require("../../lib/spaces/spaces");
9
+ class Destroy extends command_1.Command {
10
+ async run() {
11
+ const { flags, args } = await this.parse(Destroy);
12
+ const { confirm } = flags;
13
+ const spaceName = flags.space || args.space;
14
+ if (!spaceName) {
15
+ core_1.ux.error((0, tsheredoc_1.default) `
16
+ Space name required.
17
+ USAGE: heroku spaces:destroy my-space
18
+ `);
19
+ }
20
+ let natWarning = '';
21
+ const { body: space } = await this.heroku.get(`/spaces/${spaceName}`);
22
+ if (space.state === 'allocated') {
23
+ ({ body: space.outbound_ips } = await this.heroku.get(`/spaces/${spaceName}/nat`));
24
+ if (space.outbound_ips && space.outbound_ips.state === 'enabled') {
25
+ natWarning = `The Outbound IPs for this space will be reused!\nEnsure that external services no longer allow these Outbound IPs: ${(0, spaces_1.displayNat)(space.outbound_ips)}\n`;
26
+ }
27
+ }
28
+ await (0, confirmCommand_1.default)(spaceName, confirm, `Destructive Action\nThis command will destroy the space ${color_1.default.bold.red(spaceName)}\n${natWarning}\n`);
29
+ core_1.ux.action.start(`Destroying space ${color_1.default.cyan(spaceName)}`);
30
+ await this.heroku.delete(`/spaces/${spaceName}`);
31
+ core_1.ux.action.stop();
32
+ }
33
+ }
34
+ exports.default = Destroy;
35
+ Destroy.topic = 'spaces';
36
+ Destroy.description = (0, tsheredoc_1.default) `
37
+ destroy a space
38
+ `;
39
+ Destroy.examples = [(0, tsheredoc_1.default) `
40
+ $ heroku spaces:destroy --space my-space
41
+ Destroying my-space... done
42
+ `];
43
+ Destroy.flags = {
44
+ space: command_1.flags.string({ char: 's', description: 'space to destroy' }),
45
+ confirm: command_1.flags.string({ description: 'set to space name to bypass confirm prompt', hasValue: true }),
46
+ };
47
+ Destroy.args = {
48
+ space: core_1.Args.string({ hidden: true }),
49
+ };
@@ -0,0 +1,12 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Get extends Command {
3
+ static topic: string;
4
+ static aliases: string[];
5
+ static hidden: boolean;
6
+ static description: string;
7
+ static flags: {
8
+ space: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,27 @@
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 Get extends command_1.Command {
7
+ async run() {
8
+ const { flags } = await this.parse(Get);
9
+ const { space, json } = flags;
10
+ const { body: drain } = await this.heroku.get(`/spaces/${space}/log-drain`, { headers: { Accept: 'application/vnd.heroku+json; version=3.dogwood' } });
11
+ if (json) {
12
+ core_1.ux.log(JSON.stringify(drain, null, 2));
13
+ }
14
+ else {
15
+ core_1.ux.log(`${color_1.default.cyan(drain.url)} (${color_1.default.green(drain.token)})`);
16
+ }
17
+ }
18
+ }
19
+ exports.default = Get;
20
+ Get.topic = 'spaces';
21
+ Get.aliases = ['drains:get'];
22
+ Get.hidden = true;
23
+ Get.description = 'display the log drain for a space';
24
+ Get.flags = {
25
+ space: command_1.flags.string({ char: 's', description: 'space for which to get log drain', required: true }),
26
+ json: command_1.flags.boolean({ description: 'output in json format' }),
27
+ };
@@ -0,0 +1,14 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Set extends Command {
3
+ static topic: string;
4
+ static aliases: string[];
5
+ static hidden: boolean;
6
+ static description: string;
7
+ static flags: {
8
+ space: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
10
+ static args: {
11
+ url: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,29 @@
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 Set extends command_1.Command {
7
+ async run() {
8
+ const { flags, args } = await this.parse(Set);
9
+ const { url } = args;
10
+ const { space } = flags;
11
+ const { body: drain } = await this.heroku.put(`/spaces/${space}/log-drain`, {
12
+ body: { url },
13
+ headers: { Accept: 'application/vnd.heroku+json; version=3.dogwood' },
14
+ });
15
+ core_1.ux.log(`Successfully set drain ${color_1.default.cyan(drain.url)} for ${color_1.default.cyan.bold(space)}.`);
16
+ core_1.ux.warn('It may take a few moments for the changes to take effect.');
17
+ }
18
+ }
19
+ exports.default = Set;
20
+ Set.topic = 'spaces';
21
+ Set.aliases = ['drains:set'];
22
+ Set.hidden = true;
23
+ Set.description = 'replaces the log drain for a space';
24
+ Set.flags = {
25
+ space: command_1.flags.string({ char: 's', description: 'space for which to set log drain', required: true }),
26
+ };
27
+ Set.args = {
28
+ url: core_1.Args.string({ required: true }),
29
+ };
@@ -0,0 +1,14 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Hosts extends Command {
3
+ static topic: string;
4
+ static hidden: boolean;
5
+ static description: string;
6
+ static flags: {
7
+ space: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ };
10
+ static args: {
11
+ space: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const command_1 = require("@heroku-cli/command");
4
+ const core_1 = require("@oclif/core");
5
+ const tsheredoc_1 = require("tsheredoc");
6
+ const hosts_1 = require("../../lib/spaces/hosts");
7
+ class Hosts extends command_1.Command {
8
+ async run() {
9
+ const { flags, args } = await this.parse(Hosts);
10
+ const spaceName = flags.space || args.space;
11
+ if (!spaceName) {
12
+ core_1.ux.error((0, tsheredoc_1.default)(`
13
+ Error: Missing 1 required arg:
14
+ space
15
+ See more help with --help
16
+ `));
17
+ }
18
+ const { body: hosts } = await this.heroku.get(`/spaces/${spaceName}/hosts`, {
19
+ headers: { Accept: 'application/vnd.heroku+json; version=3.dogwood' },
20
+ });
21
+ if (flags.json)
22
+ (0, hosts_1.displayHostsAsJSON)(hosts);
23
+ else
24
+ (0, hosts_1.displayHosts)(spaceName, hosts);
25
+ }
26
+ }
27
+ exports.default = Hosts;
28
+ Hosts.topic = 'spaces';
29
+ Hosts.hidden = true;
30
+ Hosts.description = 'list dedicated hosts for a space';
31
+ Hosts.flags = {
32
+ space: command_1.flags.string({ char: 's', description: 'space to get host list from' }),
33
+ json: command_1.flags.boolean({ description: 'output in json format' }),
34
+ };
35
+ Hosts.args = {
36
+ space: core_1.Args.string({ hidden: true }),
37
+ };
@@ -0,0 +1,16 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ import * as Heroku from '@heroku-cli/schema';
3
+ declare type SpaceArray = Array<Required<Heroku.Space>>;
4
+ export default class Index extends Command {
5
+ static topic: string;
6
+ static description: string;
7
+ static flags: {
8
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ team: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ };
11
+ run(): Promise<void>;
12
+ protected sortByName(spaces: SpaceArray): SpaceArray;
13
+ protected displayJSON(spaces: SpaceArray): void;
14
+ protected display(spaces: SpaceArray): void;
15
+ }
16
+ export {};
@@ -0,0 +1,55 @@
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 Index extends command_1.Command {
7
+ async run() {
8
+ const { flags } = await this.parse(Index);
9
+ const { team, json } = flags;
10
+ let { body: spaces } = await this.heroku.get('/spaces');
11
+ if (team) {
12
+ spaces = spaces.filter(s => s.team.name === team);
13
+ }
14
+ spaces = this.sortByName(spaces);
15
+ if (json)
16
+ this.displayJSON(spaces);
17
+ else if (spaces.length === 0) {
18
+ if (team)
19
+ core_1.ux.error(`No spaces in ${color_1.default.cyan(team)}.`);
20
+ else
21
+ core_1.ux.error('You do not have access to any spaces.');
22
+ }
23
+ else {
24
+ this.display(spaces);
25
+ }
26
+ }
27
+ sortByName(spaces) {
28
+ spaces.sort((a, b) => {
29
+ return a.name === b.name ? 0 : (a.name < b.name ? -1 : 1);
30
+ });
31
+ return spaces;
32
+ }
33
+ displayJSON(spaces) {
34
+ core_1.ux.log(JSON.stringify(spaces, null, 2));
35
+ }
36
+ display(spaces) {
37
+ core_1.ux.table(spaces, {
38
+ Name: { get: space => space.name },
39
+ Team: { get: space => space.team.name },
40
+ Region: { get: space => space.region.name },
41
+ State: { get: space => space.state },
42
+ createdAt: {
43
+ header: 'Created At',
44
+ get: space => space.created_at,
45
+ },
46
+ });
47
+ }
48
+ }
49
+ exports.default = Index;
50
+ Index.topic = 'spaces';
51
+ Index.description = 'list available spaces';
52
+ Index.flags = {
53
+ json: command_1.flags.boolean({ description: 'output in json format' }),
54
+ team: command_1.flags.team(),
55
+ };
@@ -0,0 +1,14 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Info extends Command {
3
+ static topic: string;
4
+ static description: string;
5
+ static example: string;
6
+ static flags: {
7
+ space: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ };
10
+ static args: {
11
+ space: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const command_1 = require("@heroku-cli/command");
4
+ const core_1 = require("@oclif/core");
5
+ const tsheredoc_1 = require("tsheredoc");
6
+ const spaces_1 = require("../../lib/spaces/spaces");
7
+ const debug_1 = require("debug");
8
+ const spacesDebug = (0, debug_1.default)('spaces:info');
9
+ class Info extends command_1.Command {
10
+ async run() {
11
+ const { flags, args } = await this.parse(Info);
12
+ const spaceName = flags.space || args.space;
13
+ if (!spaceName) {
14
+ core_1.ux.error((0, tsheredoc_1.default)(`
15
+ Error: Missing 1 required arg:
16
+ space
17
+ See more help with --help
18
+ `));
19
+ }
20
+ let headers = {};
21
+ if (!flags.json) {
22
+ headers = { 'Accept-Expansion': 'region' };
23
+ }
24
+ const { body: space } = await this.heroku.get(`/spaces/${spaceName}`, { headers });
25
+ if (space.state === 'allocated') {
26
+ try {
27
+ const { body: outbound_ips } = await this.heroku.get(`/spaces/${spaceName}/nat`);
28
+ space.outbound_ips = outbound_ips;
29
+ }
30
+ catch (error) {
31
+ spacesDebug(`Retrieving NAT details for the space failed with ${error}`);
32
+ }
33
+ }
34
+ (0, spaces_1.renderInfo)(space, flags.json);
35
+ }
36
+ }
37
+ exports.default = Info;
38
+ Info.topic = 'spaces';
39
+ Info.description = 'show info about a space';
40
+ Info.example = '$ heroku spaces:info my-space';
41
+ Info.flags = {
42
+ space: command_1.flags.string({ char: 's', description: 'space to get info of' }),
43
+ json: command_1.flags.boolean({ description: 'output in json format' }),
44
+ };
45
+ Info.args = {
46
+ space: core_1.Args.string({ hidden: true }),
47
+ };
@@ -0,0 +1,15 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Add extends Command {
3
+ static topic: string;
4
+ static aliases: string[];
5
+ static description: string;
6
+ static examples: string[];
7
+ static hidden: boolean;
8
+ static flags: {
9
+ space: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ dest: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ protocol: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
12
+ port: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const command_1 = require("@heroku-cli/command");
4
+ const color_1 = require("@heroku-cli/color");
5
+ const core_1 = require("@oclif/core");
6
+ const tsheredoc_1 = require("tsheredoc");
7
+ const outbound_rules_1 = require("../../../lib/spaces/outbound-rules");
8
+ const completions_1 = require("@heroku-cli/command/lib/completions");
9
+ const completions_2 = require("../../../lib/autocomplete/completions");
10
+ class Add extends command_1.Command {
11
+ async run() {
12
+ const { flags } = await this.parse(Add);
13
+ const { space, dest, protocol, port } = flags;
14
+ const { body: ruleset } = await this.heroku.get(`/spaces/${space}/outbound-ruleset`, {
15
+ headers: { Accept: 'application/vnd.heroku+json; version=3.dogwood' },
16
+ });
17
+ ruleset.rules = ruleset.rules || [];
18
+ const ports = (0, outbound_rules_1.parsePorts)(protocol, port);
19
+ ruleset.rules.push({
20
+ target: dest, from_port: ports[0], to_port: ports[1] || ports[0], protocol: protocol,
21
+ });
22
+ core_1.ux.action.start(`Adding rule to the Outbound Rules of ${color_1.default.cyan.bold(space)}`);
23
+ await this.heroku.put(`/spaces/${space}/outbound-ruleset`, {
24
+ headers: { Accept: 'application/vnd.heroku+json; version=3.dogwood' },
25
+ body: ruleset,
26
+ });
27
+ core_1.ux.action.stop();
28
+ core_1.ux.warn('Modifying the Outbound Rules may break Add-ons for Apps in this Private Space');
29
+ }
30
+ }
31
+ exports.default = Add;
32
+ Add.topic = 'spaces';
33
+ Add.aliases = ['outbound-rules:add'];
34
+ Add.description = (0, tsheredoc_1.default)(`
35
+ Add outbound rules to a Private Space
36
+
37
+ The destination flag uses CIDR notation.
38
+
39
+ ICMP Rules
40
+ The ICMP protocol has types, not ports, but the underlying systems treat them as the same. For this reason,
41
+ when you want to allow ICMP traffic you will use the --port flag to specify the ICMP types you want to
42
+ allow. ICMP types are numbered, 0-255.
43
+ `);
44
+ Add.examples = [
45
+ (0, tsheredoc_1.default)(`
46
+ $ heroku outbound-rules:add --space my-space --dest 192.168.2.0/24 --protocol tcp --port 80
47
+ Adding rule to the Outbound Rules of my-space... done
48
+ `),
49
+ (0, tsheredoc_1.default)(`
50
+ # with port range:
51
+ $ heroku outbound-rules:add --space my-space --dest 192.168.2.0/24 --protocol tcp --port 80-100
52
+ Adding rule to the Outbound Rules of my-space... done
53
+ `),
54
+ (0, tsheredoc_1.default)(`
55
+ # opening up everything
56
+ $ heroku outbound-rules:add --space my-space --dest 0.0.0.0/0 --protocol any --port any
57
+ Adding rule to the Outbound Rules of my-space... done
58
+ `),
59
+ ];
60
+ Add.hidden = true;
61
+ Add.flags = {
62
+ space: command_1.flags.string({
63
+ char: 's',
64
+ description: 'space to add rule to',
65
+ required: true,
66
+ completion: completions_1.SpaceCompletion,
67
+ }),
68
+ dest: command_1.flags.string({
69
+ description: 'target CIDR block dynos are allowed to communicate with',
70
+ required: true,
71
+ }),
72
+ protocol: command_1.flags.string({
73
+ description: 'the protocol dynos are allowed to use when communicating with hosts in destination CIDR block.',
74
+ completion: completions_2.ProtocolCompletion,
75
+ options: ['tcp', 'udp', 'icmp', '0-255', 'any'],
76
+ required: true,
77
+ }),
78
+ port: command_1.flags.string({
79
+ description: 'the port dynos are allowed to use when communicating with hosts in destination CIDR block. Accepts a range in `<lowest port>-<highest port>` format. 0 is the minimum. The maximum port allowed is 65535, except for ICMP with a maximum of 255.',
80
+ }),
81
+ };
@@ -0,0 +1,15 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Index extends Command {
3
+ static topic: string;
4
+ static aliases: string[];
5
+ static description: string;
6
+ static hidden: boolean;
7
+ static flags: {
8
+ space: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
10
+ };
11
+ static args: {
12
+ space: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const command_1 = require("@heroku-cli/command");
4
+ const core_1 = require("@oclif/core");
5
+ const tsheredoc_1 = require("tsheredoc");
6
+ const outbound_rules_1 = require("../../../lib/spaces/outbound-rules");
7
+ const completions_1 = require("@heroku-cli/command/lib/completions");
8
+ class Index extends command_1.Command {
9
+ async run() {
10
+ const { flags, args } = await this.parse(Index);
11
+ const spaceName = flags.space || args.space;
12
+ if (!spaceName) {
13
+ core_1.ux.error((0, tsheredoc_1.default)(`
14
+ Error: Missing 1 required arg:
15
+ space
16
+ See more help with --help
17
+ `));
18
+ }
19
+ const { body: ruleset } = await this.heroku.get(`/spaces/${spaceName}/outbound-ruleset`, {
20
+ headers: { Accept: 'application/vnd.heroku+json; version=3.dogwood' },
21
+ });
22
+ if (flags.json)
23
+ (0, outbound_rules_1.displayRulesAsJSON)(ruleset);
24
+ else
25
+ (0, outbound_rules_1.displayRules)(spaceName, ruleset);
26
+ }
27
+ }
28
+ exports.default = Index;
29
+ Index.topic = 'spaces';
30
+ Index.aliases = ['outbound-rules'];
31
+ Index.description = (0, tsheredoc_1.default)(`
32
+ list Outbound Rules for a space
33
+ Outbound Rules are only available on Private Spaces.
34
+
35
+ Newly created spaces will have an "Allow All" rule set by default
36
+ allowing all egress dyno traffic outside of the space. You can
37
+ remove this default rule to completely stop your private dynos from
38
+ talking to the world.
39
+
40
+ You can add specific rules that only allow your dyno to communicate with trusted hosts.
41
+ `);
42
+ Index.hidden = true;
43
+ Index.flags = {
44
+ space: command_1.flags.string({ char: 's', description: 'space to get outbound rules from', completion: completions_1.SpaceCompletion }),
45
+ json: command_1.flags.boolean({ description: 'output in json format' }),
46
+ };
47
+ Index.args = {
48
+ space: core_1.Args.string({ hidden: true }),
49
+ };
@@ -0,0 +1,17 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Remove extends Command {
3
+ static topic: string;
4
+ static aliases: string[];
5
+ static description: string;
6
+ static examples: string[];
7
+ static hidden: boolean;
8
+ static flags: {
9
+ space: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ confirm: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ };
12
+ static args: {
13
+ ruleNumber: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
14
+ };
15
+ private clientOptions;
16
+ run(): Promise<void>;
17
+ }
@@ -0,0 +1,53 @@
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 tsheredoc_1 = require("tsheredoc");
7
+ const confirmCommand_1 = require("../../../lib/confirmCommand");
8
+ class Remove extends command_1.Command {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.clientOptions = {
12
+ headers: { Accept: 'application/vnd.heroku+json; version=3.dogwood' },
13
+ };
14
+ }
15
+ async run() {
16
+ var _a;
17
+ const { flags, args } = await this.parse(Remove);
18
+ const space = flags.space;
19
+ if (!space)
20
+ throw new Error('Space name required.');
21
+ const { body: ruleset } = await this.heroku.get(`/spaces/${space}/outbound-ruleset`, this.clientOptions);
22
+ if (!((_a = ruleset.rules) === null || _a === void 0 ? void 0 : _a.length)) {
23
+ throw new Error('No Outbound Rules configured. Nothing to do.');
24
+ }
25
+ const deleted = ruleset.rules.splice(Number.parseInt(args.ruleNumber, 10) - 1, 1)[0];
26
+ await (0, confirmCommand_1.default)(space, flags.confirm, (0, tsheredoc_1.default)(`
27
+ Destructive Action
28
+ This will remove:
29
+ Destination: ${deleted.target}, From Port: ${deleted.from_port}, To Port: ${deleted.to_port}, Protocol ${deleted.protocol}
30
+ from the Outbound Rules on ${color_1.default.cyan.bold(space)}
31
+ `));
32
+ const opts = Object.assign(Object.assign({}, this.clientOptions), { body: ruleset });
33
+ await this.heroku.put(`/spaces/${space}/outbound-ruleset`, opts);
34
+ core_1.ux.log(`Removed Rule ${color_1.default.cyan.bold(args.ruleNumber)} from Outbound Rules on ${color_1.default.cyan.bold(space)}`);
35
+ core_1.ux.warn('It may take a few moments for the changes to take effect.');
36
+ }
37
+ }
38
+ exports.default = Remove;
39
+ Remove.topic = 'spaces';
40
+ Remove.aliases = ['outbound-rules:remove'];
41
+ Remove.description = 'Remove a Rules from the list of Outbound Rules';
42
+ Remove.examples = [(0, tsheredoc_1.default)(`
43
+ $ heroku outbound-rules:remove --space my-space 4
44
+ Removed 192.168.2.0/24 from trusted IP ranges on my-space
45
+ `)];
46
+ Remove.hidden = true;
47
+ Remove.flags = {
48
+ space: command_1.flags.string({ optional: false, description: 'space to remove rule from' }),
49
+ confirm: command_1.flags.string({ description: 'set to space name to bypass confirm prompt' }),
50
+ };
51
+ Remove.args = {
52
+ ruleNumber: core_1.Args.string({ required: true }),
53
+ };