heroku 11.0.0-alpha.10 → 11.0.0-alpha.12

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 (865) hide show
  1. package/README.md +17 -2
  2. package/lib/commands/access/add.d.ts +5 -5
  3. package/lib/commands/access/add.js +13 -13
  4. package/lib/commands/access/index.d.ts +2 -2
  5. package/lib/commands/access/index.js +7 -8
  6. package/lib/commands/access/remove.d.ts +1 -1
  7. package/lib/commands/access/remove.js +5 -5
  8. package/lib/commands/access/update.d.ts +5 -5
  9. package/lib/commands/access/update.js +9 -9
  10. package/lib/commands/accounts/add.d.ts +1 -1
  11. package/lib/commands/accounts/add.js +3 -2
  12. package/lib/commands/accounts/current.js +4 -5
  13. package/lib/commands/accounts/index.js +2 -1
  14. package/lib/commands/accounts/remove.d.ts +1 -1
  15. package/lib/commands/accounts/remove.js +3 -2
  16. package/lib/commands/accounts/set.d.ts +1 -1
  17. package/lib/commands/accounts/set.js +3 -2
  18. package/lib/commands/addons/attach.d.ts +6 -6
  19. package/lib/commands/addons/attach.js +14 -14
  20. package/lib/commands/addons/create.d.ts +9 -10
  21. package/lib/commands/addons/create.js +31 -29
  22. package/lib/commands/addons/destroy.d.ts +9 -9
  23. package/lib/commands/addons/destroy.js +19 -19
  24. package/lib/commands/addons/detach.d.ts +4 -4
  25. package/lib/commands/addons/detach.js +9 -9
  26. package/lib/commands/addons/docs.d.ts +5 -5
  27. package/lib/commands/addons/docs.js +9 -9
  28. package/lib/commands/addons/index.d.ts +4 -4
  29. package/lib/commands/addons/index.js +28 -26
  30. package/lib/commands/addons/info.d.ts +4 -4
  31. package/lib/commands/addons/info.js +18 -14
  32. package/lib/commands/addons/open.d.ts +26 -27
  33. package/lib/commands/addons/open.js +21 -24
  34. package/lib/commands/addons/rename.d.ts +2 -2
  35. package/lib/commands/addons/rename.js +6 -6
  36. package/lib/commands/addons/services.d.ts +1 -1
  37. package/lib/commands/addons/services.js +5 -4
  38. package/lib/commands/addons/upgrade.d.ts +10 -11
  39. package/lib/commands/addons/upgrade.js +74 -70
  40. package/lib/commands/addons/wait.d.ts +5 -5
  41. package/lib/commands/addons/wait.js +10 -10
  42. package/lib/commands/apps/create.d.ts +12 -12
  43. package/lib/commands/apps/create.js +50 -58
  44. package/lib/commands/apps/destroy.d.ts +6 -6
  45. package/lib/commands/apps/destroy.js +10 -10
  46. package/lib/commands/apps/errors.d.ts +3 -3
  47. package/lib/commands/apps/errors.js +24 -12
  48. package/lib/commands/apps/favorites/add.d.ts +1 -1
  49. package/lib/commands/apps/favorites/add.js +4 -4
  50. package/lib/commands/apps/favorites/index.d.ts +1 -1
  51. package/lib/commands/apps/favorites/index.js +4 -4
  52. package/lib/commands/apps/favorites/remove.d.ts +1 -1
  53. package/lib/commands/apps/favorites/remove.js +3 -3
  54. package/lib/commands/apps/index.d.ts +4 -4
  55. package/lib/commands/apps/index.js +21 -21
  56. package/lib/commands/apps/info.d.ts +8 -8
  57. package/lib/commands/apps/info.js +31 -31
  58. package/lib/commands/apps/join.d.ts +2 -2
  59. package/lib/commands/apps/join.js +3 -3
  60. package/lib/commands/apps/leave.d.ts +1 -1
  61. package/lib/commands/apps/leave.js +3 -3
  62. package/lib/commands/apps/lock.d.ts +2 -2
  63. package/lib/commands/apps/lock.js +5 -5
  64. package/lib/commands/apps/open.d.ts +5 -5
  65. package/lib/commands/apps/open.js +11 -9
  66. package/lib/commands/apps/rename.d.ts +6 -6
  67. package/lib/commands/apps/rename.js +13 -13
  68. package/lib/commands/apps/stacks/index.d.ts +2 -2
  69. package/lib/commands/apps/stacks/index.js +5 -6
  70. package/lib/commands/apps/stacks/set.d.ts +4 -4
  71. package/lib/commands/apps/stacks/set.js +9 -9
  72. package/lib/commands/apps/transfer.d.ts +8 -8
  73. package/lib/commands/apps/transfer.js +33 -32
  74. package/lib/commands/apps/unlock.d.ts +2 -2
  75. package/lib/commands/apps/unlock.js +3 -3
  76. package/lib/commands/auth/2fa/disable.d.ts +1 -1
  77. package/lib/commands/auth/2fa/disable.js +3 -2
  78. package/lib/commands/auth/2fa/index.d.ts +1 -1
  79. package/lib/commands/auth/2fa/index.js +4 -4
  80. package/lib/commands/auth/login.d.ts +3 -3
  81. package/lib/commands/auth/login.js +6 -6
  82. package/lib/commands/auth/logout.js +1 -0
  83. package/lib/commands/auth/token.js +4 -2
  84. package/lib/commands/authorizations/create.js +2 -1
  85. package/lib/commands/authorizations/index.js +3 -4
  86. package/lib/commands/authorizations/revoke.d.ts +2 -2
  87. package/lib/commands/authorizations/revoke.js +6 -6
  88. package/lib/commands/autocomplete/create.d.ts +29 -0
  89. package/lib/commands/autocomplete/create.js +223 -0
  90. package/lib/commands/autocomplete/doctor.d.ts +12 -0
  91. package/lib/commands/autocomplete/doctor.js +111 -0
  92. package/lib/commands/autocomplete/index.d.ts +12 -0
  93. package/lib/commands/autocomplete/index.js +65 -0
  94. package/lib/commands/autocomplete/options.d.ts +25 -0
  95. package/lib/commands/autocomplete/options.js +208 -0
  96. package/lib/commands/autocomplete/script.d.ts +10 -0
  97. package/lib/commands/autocomplete/script.js +20 -0
  98. package/lib/commands/buildpacks/index.js +2 -3
  99. package/lib/commands/buildpacks/remove.d.ts +4 -4
  100. package/lib/commands/buildpacks/remove.js +9 -8
  101. package/lib/commands/certs/add.d.ts +8 -8
  102. package/lib/commands/certs/add.js +27 -29
  103. package/lib/commands/certs/auto/disable.d.ts +2 -2
  104. package/lib/commands/certs/auto/disable.js +4 -4
  105. package/lib/commands/certs/auto/enable.d.ts +2 -2
  106. package/lib/commands/certs/auto/enable.js +8 -9
  107. package/lib/commands/certs/auto/index.d.ts +2 -2
  108. package/lib/commands/certs/auto/index.js +16 -17
  109. package/lib/commands/certs/generate.d.ts +2 -3
  110. package/lib/commands/certs/generate.js +1 -2
  111. package/lib/commands/certs/index.d.ts +1 -1
  112. package/lib/commands/certs/index.js +3 -3
  113. package/lib/commands/certs/info.d.ts +4 -4
  114. package/lib/commands/certs/info.js +6 -6
  115. package/lib/commands/certs/remove.d.ts +3 -3
  116. package/lib/commands/certs/remove.js +5 -5
  117. package/lib/commands/certs/update.d.ts +8 -8
  118. package/lib/commands/certs/update.js +19 -19
  119. package/lib/commands/ci/config/get.d.ts +5 -5
  120. package/lib/commands/ci/config/get.js +8 -8
  121. package/lib/commands/ci/config/index.d.ts +2 -2
  122. package/lib/commands/ci/config/index.js +8 -9
  123. package/lib/commands/ci/config/set.d.ts +2 -2
  124. package/lib/commands/ci/config/set.js +10 -10
  125. package/lib/commands/ci/config/unset.d.ts +3 -3
  126. package/lib/commands/ci/config/unset.js +6 -5
  127. package/lib/commands/ci/index.d.ts +2 -2
  128. package/lib/commands/ci/index.js +5 -4
  129. package/lib/commands/ci/info.js +3 -2
  130. package/lib/commands/ci/last.d.ts +1 -1
  131. package/lib/commands/ci/last.js +4 -3
  132. package/lib/commands/ci/migrate-manifest.d.ts +1 -1
  133. package/lib/commands/ci/migrate-manifest.js +4 -4
  134. package/lib/commands/ci/open.d.ts +2 -2
  135. package/lib/commands/ci/open.js +4 -3
  136. package/lib/commands/ci/rerun.d.ts +4 -4
  137. package/lib/commands/ci/rerun.js +9 -8
  138. package/lib/commands/ci/run.d.ts +1 -1
  139. package/lib/commands/ci/run.js +9 -7
  140. package/lib/commands/clients/create.js +4 -3
  141. package/lib/commands/clients/destroy.d.ts +1 -1
  142. package/lib/commands/clients/destroy.js +4 -4
  143. package/lib/commands/clients/index.js +5 -4
  144. package/lib/commands/clients/info.d.ts +3 -3
  145. package/lib/commands/clients/info.js +5 -5
  146. package/lib/commands/clients/rotate.d.ts +3 -3
  147. package/lib/commands/clients/rotate.js +5 -6
  148. package/lib/commands/clients/update.d.ts +3 -3
  149. package/lib/commands/clients/update.js +5 -5
  150. package/lib/commands/config/edit.d.ts +5 -5
  151. package/lib/commands/config/edit.js +21 -22
  152. package/lib/commands/config/get.d.ts +5 -4
  153. package/lib/commands/config/get.js +34 -13
  154. package/lib/commands/config/index.d.ts +1 -1
  155. package/lib/commands/config/index.js +4 -5
  156. package/lib/commands/config/set.d.ts +2 -2
  157. package/lib/commands/config/set.js +17 -18
  158. package/lib/commands/config/unset.d.ts +1 -1
  159. package/lib/commands/config/unset.js +12 -11
  160. package/lib/commands/container/pull.d.ts +4 -4
  161. package/lib/commands/container/pull.js +12 -12
  162. package/lib/commands/container/push.d.ts +6 -6
  163. package/lib/commands/container/push.js +18 -18
  164. package/lib/commands/container/release.d.ts +4 -4
  165. package/lib/commands/container/release.js +16 -15
  166. package/lib/commands/container/rm.d.ts +4 -4
  167. package/lib/commands/container/rm.js +10 -9
  168. package/lib/commands/container/run.d.ts +5 -5
  169. package/lib/commands/container/run.js +14 -14
  170. package/lib/commands/dashboard.d.ts +1 -1
  171. package/lib/commands/dashboard.js +19 -20
  172. package/lib/commands/domains/add.d.ts +5 -5
  173. package/lib/commands/domains/add.js +17 -18
  174. package/lib/commands/domains/clear.js +2 -2
  175. package/lib/commands/domains/index.d.ts +5 -3
  176. package/lib/commands/domains/index.js +99 -69
  177. package/lib/commands/domains/info.js +2 -1
  178. package/lib/commands/domains/remove.d.ts +3 -3
  179. package/lib/commands/domains/remove.js +5 -5
  180. package/lib/commands/domains/update.d.ts +4 -4
  181. package/lib/commands/domains/update.js +8 -8
  182. package/lib/commands/drains/add.d.ts +3 -3
  183. package/lib/commands/drains/add.js +7 -7
  184. package/lib/commands/drains/index.d.ts +1 -1
  185. package/lib/commands/drains/index.js +5 -6
  186. package/lib/commands/drains/remove.d.ts +4 -4
  187. package/lib/commands/drains/remove.js +6 -6
  188. package/lib/commands/features/disable.d.ts +3 -3
  189. package/lib/commands/features/disable.js +8 -8
  190. package/lib/commands/features/enable.d.ts +3 -3
  191. package/lib/commands/features/enable.js +8 -8
  192. package/lib/commands/features/index.js +2 -3
  193. package/lib/commands/features/info.d.ts +4 -4
  194. package/lib/commands/features/info.js +10 -9
  195. package/lib/commands/git/clone.d.ts +2 -2
  196. package/lib/commands/git/clone.js +7 -6
  197. package/lib/commands/git/remote.js +6 -5
  198. package/lib/commands/keys/add.d.ts +3 -4
  199. package/lib/commands/keys/add.js +20 -18
  200. package/lib/commands/keys/index.js +4 -5
  201. package/lib/commands/keys/remove.d.ts +2 -2
  202. package/lib/commands/keys/remove.js +8 -8
  203. package/lib/commands/labs/disable.d.ts +3 -3
  204. package/lib/commands/labs/disable.js +13 -13
  205. package/lib/commands/labs/enable.d.ts +4 -4
  206. package/lib/commands/labs/enable.js +11 -11
  207. package/lib/commands/labs/index.d.ts +2 -2
  208. package/lib/commands/labs/index.js +6 -7
  209. package/lib/commands/labs/info.d.ts +3 -3
  210. package/lib/commands/labs/info.js +8 -7
  211. package/lib/commands/local/index.d.ts +4 -4
  212. package/lib/commands/local/index.js +21 -21
  213. package/lib/commands/local/run.d.ts +1 -1
  214. package/lib/commands/local/run.js +4 -3
  215. package/lib/commands/logs.d.ts +1 -1
  216. package/lib/commands/logs.js +22 -21
  217. package/lib/commands/maintenance/off.d.ts +1 -1
  218. package/lib/commands/maintenance/off.js +2 -2
  219. package/lib/commands/maintenance/on.d.ts +1 -1
  220. package/lib/commands/maintenance/on.js +2 -2
  221. package/lib/commands/members/index.d.ts +3 -3
  222. package/lib/commands/members/index.js +18 -13
  223. package/lib/commands/members/remove.d.ts +1 -1
  224. package/lib/commands/members/remove.js +6 -6
  225. package/lib/commands/notifications/index.d.ts +3 -3
  226. package/lib/commands/notifications/index.js +9 -10
  227. package/lib/commands/orgs/open.js +2 -2
  228. package/lib/commands/pg/backups/cancel.d.ts +13 -0
  229. package/lib/commands/pg/backups/cancel.js +43 -0
  230. package/lib/commands/pg/backups/capture.d.ts +15 -0
  231. package/lib/commands/pg/backups/capture.js +62 -0
  232. package/lib/commands/pg/backups/delete.d.ts +15 -0
  233. package/lib/commands/pg/backups/delete.js +34 -0
  234. package/lib/commands/pg/backups/download.d.ts +14 -0
  235. package/lib/commands/pg/backups/download.js +54 -0
  236. package/lib/commands/pg/backups/index.d.ts +20 -0
  237. package/lib/commands/pg/backups/index.js +121 -0
  238. package/lib/commands/pg/backups/info.d.ts +17 -0
  239. package/lib/commands/pg/backups/info.js +86 -0
  240. package/lib/commands/pg/backups/restore.d.ts +20 -0
  241. package/lib/commands/pg/backups/restore.js +134 -0
  242. package/lib/commands/pg/backups/schedule.d.ts +21 -0
  243. package/lib/commands/pg/backups/schedule.js +69 -0
  244. package/lib/commands/pg/backups/schedules.d.ts +10 -0
  245. package/lib/commands/pg/backups/schedules.js +27 -0
  246. package/lib/commands/pg/backups/unschedule.d.ts +13 -0
  247. package/lib/commands/pg/backups/unschedule.js +42 -0
  248. package/lib/commands/pg/backups/url.d.ts +13 -0
  249. package/lib/commands/pg/backups/url.js +37 -0
  250. package/lib/commands/pg/bloat.d.ts +13 -0
  251. package/lib/{oldCommands → commands}/pg/bloat.js +23 -30
  252. package/lib/commands/pg/blocking.d.ts +13 -0
  253. package/lib/commands/pg/blocking.js +42 -0
  254. package/lib/commands/pg/connection-pooling/attach.d.ts +15 -0
  255. package/lib/commands/pg/connection-pooling/attach.js +38 -0
  256. package/lib/commands/pg/copy.d.ts +18 -0
  257. package/lib/commands/pg/copy.js +83 -0
  258. package/lib/commands/pg/credentials/create.d.ts +15 -0
  259. package/lib/commands/pg/credentials/create.js +39 -0
  260. package/lib/commands/pg/credentials/destroy.d.ts +16 -0
  261. package/lib/commands/pg/credentials/destroy.js +45 -0
  262. package/lib/commands/pg/credentials/repair-default.d.ts +15 -0
  263. package/lib/commands/pg/credentials/repair-default.js +38 -0
  264. package/lib/commands/pg/credentials/rotate.d.ts +17 -0
  265. package/lib/commands/pg/credentials/rotate.js +79 -0
  266. package/lib/commands/pg/credentials/url.d.ts +14 -0
  267. package/lib/commands/pg/credentials/url.js +61 -0
  268. package/lib/commands/pg/credentials.d.ts +16 -0
  269. package/lib/commands/pg/credentials.js +61 -0
  270. package/lib/commands/pg/diagnose.d.ts +18 -0
  271. package/lib/commands/pg/diagnose.js +106 -0
  272. package/lib/commands/pg/info.d.ts +14 -0
  273. package/lib/commands/pg/info.js +91 -0
  274. package/lib/commands/pg/kill.d.ts +15 -0
  275. package/lib/commands/pg/kill.js +32 -0
  276. package/lib/commands/pg/killall.d.ts +13 -0
  277. package/lib/commands/pg/killall.js +24 -0
  278. package/lib/commands/pg/links/create.d.ts +16 -0
  279. package/lib/commands/pg/links/create.js +57 -0
  280. package/lib/commands/pg/links/destroy.d.ts +16 -0
  281. package/lib/commands/pg/links/destroy.js +40 -0
  282. package/lib/commands/pg/links/index.d.ts +13 -0
  283. package/lib/commands/pg/links/index.js +62 -0
  284. package/lib/commands/pg/locks.d.ts +15 -0
  285. package/lib/commands/pg/locks.js +53 -0
  286. package/lib/commands/pg/maintenance/index.d.ts +13 -0
  287. package/lib/commands/pg/maintenance/index.js +27 -0
  288. package/lib/commands/pg/maintenance/run.d.ts +14 -0
  289. package/lib/commands/pg/maintenance/run.js +34 -0
  290. package/lib/commands/pg/maintenance/window.d.ts +15 -0
  291. package/lib/commands/pg/maintenance/window.js +41 -0
  292. package/lib/commands/pg/outliers.d.ts +19 -0
  293. package/lib/commands/pg/outliers.js +100 -0
  294. package/lib/commands/pg/promote.d.ts +14 -0
  295. package/lib/commands/pg/promote.js +167 -0
  296. package/lib/commands/pg/ps.d.ts +14 -0
  297. package/lib/commands/pg/ps.js +52 -0
  298. package/lib/commands/pg/psql.d.ts +16 -0
  299. package/lib/commands/pg/psql.js +47 -0
  300. package/lib/commands/pg/pull.d.ts +18 -0
  301. package/lib/commands/pg/pull.js +87 -0
  302. package/lib/commands/pg/push.d.ts +18 -0
  303. package/lib/commands/pg/push.js +83 -0
  304. package/lib/commands/pg/reset.d.ts +15 -0
  305. package/lib/commands/pg/reset.js +43 -0
  306. package/lib/commands/pg/settings/auto-explain/log-analyze.d.ts +13 -0
  307. package/lib/commands/pg/settings/auto-explain/log-analyze.js +28 -0
  308. package/lib/commands/pg/settings/auto-explain/log-buffers.d.ts +13 -0
  309. package/lib/commands/pg/settings/auto-explain/log-buffers.js +26 -0
  310. package/lib/commands/pg/settings/auto-explain/log-format.d.ts +12 -0
  311. package/lib/commands/pg/settings/auto-explain/log-format.js +22 -0
  312. package/lib/commands/pg/settings/auto-explain/log-min-duration.d.ts +13 -0
  313. package/lib/commands/pg/settings/auto-explain/log-min-duration.js +29 -0
  314. package/lib/commands/pg/settings/auto-explain/log-nested-statements.d.ts +12 -0
  315. package/lib/commands/pg/settings/auto-explain/log-nested-statements.js +20 -0
  316. package/lib/commands/pg/settings/auto-explain/log-triggers.d.ts +13 -0
  317. package/lib/commands/pg/settings/auto-explain/log-triggers.js +26 -0
  318. package/lib/commands/pg/settings/auto-explain/log-verbose.d.ts +17 -0
  319. package/lib/commands/pg/settings/auto-explain/log-verbose.js +29 -0
  320. package/lib/commands/pg/settings/auto-explain.d.ts +18 -0
  321. package/lib/commands/pg/settings/auto-explain.js +34 -0
  322. package/lib/commands/pg/settings/data-connector-details-logs.d.ts +17 -0
  323. package/lib/commands/pg/settings/data-connector-details-logs.js +30 -0
  324. package/lib/commands/pg/settings/index.d.ts +13 -0
  325. package/lib/commands/pg/settings/index.js +33 -0
  326. package/lib/commands/pg/settings/log-connections.d.ts +17 -0
  327. package/lib/commands/pg/settings/log-connections.js +30 -0
  328. package/lib/commands/pg/settings/log-lock-waits.d.ts +13 -0
  329. package/lib/commands/pg/settings/log-lock-waits.js +27 -0
  330. package/lib/commands/pg/settings/log-min-duration-statement.d.ts +12 -0
  331. package/lib/commands/pg/settings/log-min-duration-statement.js +29 -0
  332. package/lib/commands/pg/settings/log-min-error-statement.d.ts +12 -0
  333. package/lib/commands/pg/settings/log-min-error-statement.js +23 -0
  334. package/lib/commands/pg/settings/log-statement.d.ts +12 -0
  335. package/lib/commands/pg/settings/log-statement.js +26 -0
  336. package/lib/commands/pg/settings/track-functions.d.ts +12 -0
  337. package/lib/commands/pg/settings/track-functions.js +25 -0
  338. package/lib/commands/pg/unfollow.d.ts +14 -0
  339. package/lib/commands/pg/unfollow.js +38 -0
  340. package/lib/commands/pg/upgrade/cancel.d.ts +13 -0
  341. package/lib/commands/pg/upgrade/cancel.js +50 -0
  342. package/lib/commands/pg/upgrade/dryrun.d.ts +14 -0
  343. package/lib/commands/pg/upgrade/dryrun.js +50 -0
  344. package/lib/commands/pg/upgrade/index.d.ts +15 -0
  345. package/lib/commands/pg/upgrade/index.js +73 -0
  346. package/lib/commands/pg/upgrade/prepare.d.ts +14 -0
  347. package/lib/commands/pg/upgrade/prepare.js +51 -0
  348. package/lib/commands/pg/upgrade/run.d.ts +16 -0
  349. package/lib/commands/pg/upgrade/run.js +95 -0
  350. package/lib/commands/pg/upgrade/wait.d.ts +16 -0
  351. package/lib/commands/pg/upgrade/wait.js +105 -0
  352. package/lib/commands/pg/vacuum-stats.d.ts +13 -0
  353. package/lib/{oldCommands → commands}/pg/vacuum-stats.js +25 -29
  354. package/lib/commands/pg/wait.d.ts +15 -0
  355. package/lib/commands/pg/wait.js +79 -0
  356. package/lib/commands/pipelines/add.d.ts +3 -3
  357. package/lib/commands/pipelines/add.js +13 -13
  358. package/lib/commands/pipelines/connect.js +2 -1
  359. package/lib/commands/pipelines/create.d.ts +3 -3
  360. package/lib/commands/pipelines/create.js +20 -20
  361. package/lib/commands/pipelines/destroy.d.ts +2 -2
  362. package/lib/commands/pipelines/destroy.js +5 -5
  363. package/lib/commands/pipelines/diff.d.ts +3 -3
  364. package/lib/commands/pipelines/diff.js +12 -13
  365. package/lib/commands/pipelines/index.js +3 -3
  366. package/lib/commands/pipelines/info.d.ts +3 -3
  367. package/lib/commands/pipelines/info.js +10 -9
  368. package/lib/commands/pipelines/open.d.ts +9 -0
  369. package/lib/commands/pipelines/open.js +19 -0
  370. package/lib/commands/pipelines/promote.d.ts +12 -0
  371. package/lib/commands/pipelines/promote.js +209 -0
  372. package/lib/commands/pipelines/remove.d.ts +10 -0
  373. package/lib/commands/pipelines/remove.js +20 -0
  374. package/lib/commands/pipelines/rename.d.ts +10 -0
  375. package/lib/commands/pipelines/rename.js +34 -0
  376. package/lib/commands/pipelines/setup.d.ts +16 -0
  377. package/lib/commands/pipelines/setup.js +88 -0
  378. package/lib/commands/pipelines/transfer.d.ts +13 -0
  379. package/lib/commands/pipelines/transfer.js +60 -0
  380. package/lib/commands/pipelines/update.d.ts +11 -0
  381. package/lib/commands/pipelines/update.js +29 -0
  382. package/lib/commands/prompt.d.ts +1 -1
  383. package/lib/commands/prompt.js +4 -3
  384. package/lib/commands/ps/autoscale/disable.d.ts +10 -0
  385. package/lib/commands/ps/autoscale/disable.js +33 -0
  386. package/lib/commands/ps/autoscale/enable.d.ts +14 -0
  387. package/lib/commands/ps/autoscale/enable.js +84 -0
  388. package/lib/commands/ps/index.d.ts +15 -0
  389. package/lib/commands/ps/index.js +199 -0
  390. package/lib/commands/ps/restart.d.ts +18 -0
  391. package/lib/commands/ps/restart.js +68 -0
  392. package/lib/commands/ps/scale.d.ts +13 -0
  393. package/lib/commands/ps/scale.js +81 -0
  394. package/lib/commands/ps/stop.d.ts +18 -0
  395. package/lib/commands/ps/stop.js +62 -0
  396. package/lib/commands/ps/type.d.ts +12 -0
  397. package/lib/commands/ps/type.js +168 -0
  398. package/lib/commands/ps/wait.d.ts +13 -0
  399. package/lib/commands/ps/wait.js +73 -0
  400. package/lib/commands/regions.d.ts +2 -2
  401. package/lib/commands/regions.js +6 -5
  402. package/lib/commands/releases/index.d.ts +14 -0
  403. package/lib/commands/releases/index.js +155 -0
  404. package/lib/commands/releases/info.d.ts +15 -0
  405. package/lib/commands/releases/info.js +75 -0
  406. package/lib/commands/releases/output.d.ts +13 -0
  407. package/lib/commands/releases/output.js +33 -0
  408. package/lib/commands/releases/retry.d.ts +11 -0
  409. package/lib/commands/releases/retry.js +46 -0
  410. package/lib/commands/releases/rollback.d.ts +14 -0
  411. package/lib/commands/releases/rollback.js +54 -0
  412. package/lib/commands/repl.d.ts +1 -1
  413. package/lib/commands/repl.js +3 -2
  414. package/lib/commands/reviewapps/disable.d.ts +3 -3
  415. package/lib/commands/reviewapps/disable.js +11 -10
  416. package/lib/commands/reviewapps/enable.d.ts +2 -2
  417. package/lib/commands/reviewapps/enable.js +9 -8
  418. package/lib/commands/run/detached.d.ts +16 -0
  419. package/lib/commands/run/detached.js +54 -0
  420. package/lib/commands/run/index.d.ts +19 -0
  421. package/lib/commands/run/index.js +69 -0
  422. package/lib/commands/run/inside.d.ts +18 -0
  423. package/lib/commands/run/inside.js +77 -0
  424. package/lib/commands/sessions/destroy.d.ts +1 -1
  425. package/lib/commands/sessions/destroy.js +4 -4
  426. package/lib/commands/sessions/index.js +2 -3
  427. package/lib/commands/spaces/create.d.ts +23 -0
  428. package/lib/commands/spaces/create.js +87 -0
  429. package/lib/commands/spaces/destroy.d.ts +14 -0
  430. package/lib/commands/spaces/destroy.js +61 -0
  431. package/lib/commands/spaces/drains/get.d.ts +11 -0
  432. package/lib/commands/spaces/drains/get.js +23 -0
  433. package/lib/commands/spaces/drains/set.d.ts +13 -0
  434. package/lib/commands/spaces/drains/set.js +25 -0
  435. package/lib/commands/spaces/hosts.d.ts +14 -0
  436. package/lib/commands/spaces/hosts.js +35 -0
  437. package/lib/commands/spaces/index.d.ts +16 -0
  438. package/lib/commands/spaces/index.js +65 -0
  439. package/lib/commands/spaces/info.d.ts +14 -0
  440. package/lib/commands/spaces/info.js +48 -0
  441. package/lib/commands/spaces/peerings/accept.d.ts +15 -0
  442. package/lib/commands/spaces/peerings/accept.js +33 -0
  443. package/lib/commands/spaces/peerings/destroy.d.ts +15 -0
  444. package/lib/commands/spaces/peerings/destroy.js +43 -0
  445. package/lib/commands/spaces/peerings/index.d.ts +13 -0
  446. package/lib/commands/spaces/peerings/index.js +31 -0
  447. package/lib/commands/spaces/peerings/info.d.ts +15 -0
  448. package/lib/{oldCommands → commands}/spaces/peerings/info.js +32 -40
  449. package/lib/commands/spaces/ps.d.ts +15 -0
  450. package/lib/commands/spaces/ps.js +77 -0
  451. package/lib/commands/spaces/rename.d.ts +11 -0
  452. package/lib/commands/spaces/rename.js +24 -0
  453. package/lib/commands/spaces/topology.d.ts +18 -0
  454. package/lib/commands/spaces/topology.js +87 -0
  455. package/lib/commands/spaces/transfer.d.ts +11 -0
  456. package/lib/commands/spaces/transfer.js +33 -0
  457. package/lib/commands/spaces/trusted-ips/add.d.ts +16 -0
  458. package/lib/commands/spaces/trusted-ips/add.js +49 -0
  459. package/lib/commands/spaces/trusted-ips/index.d.ts +15 -0
  460. package/lib/commands/spaces/trusted-ips/index.js +59 -0
  461. package/lib/commands/spaces/trusted-ips/remove.d.ts +15 -0
  462. package/lib/commands/spaces/trusted-ips/remove.js +51 -0
  463. package/lib/commands/spaces/vpn/config.d.ts +14 -0
  464. package/lib/commands/spaces/vpn/config.js +53 -0
  465. package/lib/commands/spaces/vpn/connect.d.ts +15 -0
  466. package/lib/commands/spaces/vpn/connect.js +46 -0
  467. package/lib/commands/spaces/vpn/connections.d.ts +17 -0
  468. package/lib/commands/spaces/vpn/connections.js +55 -0
  469. package/lib/commands/spaces/vpn/destroy.d.ts +14 -0
  470. package/lib/commands/spaces/vpn/destroy.js +36 -0
  471. package/lib/commands/spaces/vpn/info.d.ts +16 -0
  472. package/lib/commands/spaces/vpn/info.js +85 -0
  473. package/lib/commands/spaces/vpn/update.d.ts +14 -0
  474. package/lib/commands/spaces/vpn/update.js +36 -0
  475. package/lib/commands/spaces/vpn/wait.d.ts +16 -0
  476. package/lib/commands/spaces/vpn/wait.js +69 -0
  477. package/lib/commands/spaces/wait.d.ts +17 -0
  478. package/lib/commands/spaces/wait.js +87 -0
  479. package/lib/commands/status.js +14 -13
  480. package/lib/commands/teams/index.d.ts +1 -1
  481. package/lib/commands/teams/index.js +4 -5
  482. package/lib/commands/telemetry/add.d.ts +6 -5
  483. package/lib/commands/telemetry/add.js +43 -18
  484. package/lib/commands/telemetry/index.d.ts +4 -4
  485. package/lib/commands/telemetry/index.js +19 -17
  486. package/lib/commands/telemetry/info.d.ts +2 -2
  487. package/lib/commands/telemetry/info.js +5 -4
  488. package/lib/commands/telemetry/update.d.ts +3 -3
  489. package/lib/commands/telemetry/update.js +8 -9
  490. package/lib/commands/usage/addons.d.ts +2 -2
  491. package/lib/commands/usage/addons.js +17 -18
  492. package/lib/global_telemetry.d.ts +2 -2
  493. package/lib/global_telemetry.js +34 -36
  494. package/lib/lib/addons/addons_wait.d.ts +1 -1
  495. package/lib/lib/addons/addons_wait.js +2 -2
  496. package/lib/lib/addons/create_addon.d.ts +5 -3
  497. package/lib/lib/addons/create_addon.js +12 -9
  498. package/lib/lib/addons/destroy_addon.js +17 -9
  499. package/lib/lib/addons/resolve.d.ts +10 -11
  500. package/lib/lib/addons/resolve.js +19 -18
  501. package/lib/lib/addons/util.d.ts +2 -2
  502. package/lib/lib/addons/util.js +21 -14
  503. package/lib/lib/api.d.ts +1 -1
  504. package/lib/lib/api.js +19 -23
  505. package/lib/lib/apps/app-transfer.d.ts +3 -3
  506. package/lib/lib/apps/app-transfer.js +11 -11
  507. package/lib/lib/autocomplete/base.d.ts +11 -1
  508. package/lib/lib/autocomplete/base.js +33 -49
  509. package/lib/lib/autocomplete/cache.js +9 -7
  510. package/lib/lib/autocomplete/completions.d.ts +41 -1
  511. package/lib/lib/autocomplete/completions.js +258 -290
  512. package/lib/lib/buildpacks/buildpacks.d.ts +11 -11
  513. package/lib/lib/buildpacks/buildpacks.js +71 -71
  514. package/lib/lib/certs/certificate_details.js +3 -4
  515. package/lib/lib/certs/flags.d.ts +2 -2
  516. package/lib/lib/certs/flags.js +5 -8
  517. package/lib/lib/certs/get_cert_and_key.js +2 -2
  518. package/lib/lib/ci/git.d.ts +12 -2
  519. package/lib/lib/ci/git.js +20 -6
  520. package/lib/lib/ci/pipelines.d.ts +5 -5
  521. package/lib/lib/ci/pipelines.js +17 -17
  522. package/lib/lib/ci/source.d.ts +8 -0
  523. package/lib/lib/ci/source.js +22 -10
  524. package/lib/lib/ci/test-run.js +18 -15
  525. package/lib/lib/config/quote.js +4 -4
  526. package/lib/lib/config/util.d.ts +3 -0
  527. package/lib/lib/config/util.js +5 -0
  528. package/lib/lib/confirmCommand.js +6 -7
  529. package/lib/lib/container/docker_helper.d.ts +12 -12
  530. package/lib/lib/container/docker_helper.js +71 -74
  531. package/lib/lib/container/helpers.js +2 -2
  532. package/lib/lib/container/streamer.js +4 -4
  533. package/lib/lib/data/baseCommand.d.ts +4 -0
  534. package/lib/lib/data/baseCommand.js +15 -0
  535. package/lib/lib/data/createPool.d.ts +4 -0
  536. package/lib/lib/data/createPool.js +6 -0
  537. package/lib/lib/data/credentialUtils.d.ts +3 -0
  538. package/lib/lib/data/credentialUtils.js +23 -0
  539. package/lib/lib/data/displayQuota.d.ts +19 -0
  540. package/lib/lib/data/displayQuota.js +59 -0
  541. package/lib/lib/data/parseProvisionOpts.d.ts +15 -0
  542. package/lib/lib/data/parseProvisionOpts.js +31 -0
  543. package/lib/lib/data/types.d.ts +177 -0
  544. package/lib/lib/data/types.js +3 -0
  545. package/lib/lib/data-scrubber/patterns.d.ts +4 -0
  546. package/lib/lib/data-scrubber/patterns.js +13 -0
  547. package/lib/lib/data-scrubber/presets.d.ts +64 -0
  548. package/lib/lib/data-scrubber/presets.js +112 -0
  549. package/lib/lib/data-scrubber/scrubber.d.ts +131 -0
  550. package/lib/lib/data-scrubber/scrubber.js +256 -0
  551. package/lib/lib/data-scrubber/types.d.ts +169 -0
  552. package/lib/lib/domains/domains.js +10 -10
  553. package/lib/lib/domains/wait-for-domain.js +2 -3
  554. package/lib/lib/local/env-file-validator.js +2 -2
  555. package/lib/lib/local/fork-foreman.js +3 -2
  556. package/lib/lib/members/util.js +7 -7
  557. package/lib/lib/orgs/utils.js +2 -3
  558. package/lib/lib/pg/backups.d.ts +17 -1
  559. package/lib/lib/pg/backups.js +132 -156
  560. package/lib/lib/pg/download.js +7 -7
  561. package/lib/lib/pg/fetcher.d.ts +3 -1
  562. package/lib/lib/pg/fetcher.js +3 -162
  563. package/lib/lib/pg/psql.d.ts +17 -1
  564. package/lib/lib/pg/psql.js +59 -269
  565. package/lib/lib/pg/push_pull.d.ts +12 -0
  566. package/lib/lib/pg/push_pull.js +97 -119
  567. package/lib/lib/pg/setter.d.ts +16 -1
  568. package/lib/lib/pg/setter.js +61 -73
  569. package/lib/lib/pg/types.d.ts +10 -15
  570. package/lib/lib/pg/util.d.ts +8 -1
  571. package/lib/lib/pg/util.js +97 -211
  572. package/lib/lib/pipelines/disambiguate.js +9 -11
  573. package/lib/lib/pipelines/ownership.d.ts +1 -1
  574. package/lib/lib/pipelines/ownership.js +6 -12
  575. package/lib/lib/pipelines/render-pipeline.d.ts +2 -2
  576. package/lib/lib/pipelines/render-pipeline.js +10 -9
  577. package/lib/lib/pipelines/setup/create-apps.js +7 -9
  578. package/lib/lib/pipelines/setup/get-ci-settings.js +2 -2
  579. package/lib/lib/pipelines/setup/get-github-token.js +1 -3
  580. package/lib/lib/pipelines/setup/get-name-and-repo.js +27 -22
  581. package/lib/lib/pipelines/setup/get-settings.js +12 -12
  582. package/lib/lib/pipelines/setup/poll-app-setups.js +3 -5
  583. package/lib/lib/pipelines/setup/setup-pipeline.js +1 -3
  584. package/lib/lib/pipelines/setup/validate.d.ts +1 -1
  585. package/lib/lib/pipelines/setup/validate.js +2 -2
  586. package/lib/lib/pipelines/stages.d.ts +2 -2
  587. package/lib/lib/pipelines/stages.js +4 -4
  588. package/lib/lib/redis/api.d.ts +22 -22
  589. package/lib/lib/redis/api.js +62 -67
  590. package/lib/lib/releases/output.js +1 -1
  591. package/lib/lib/releases/status_helper.d.ts +1 -1
  592. package/lib/lib/releases/status_helper.js +16 -8
  593. package/lib/lib/run/colorize.js +73 -40
  594. package/lib/lib/run/dyno.d.ts +19 -19
  595. package/lib/lib/run/dyno.js +181 -174
  596. package/lib/lib/run/helpers.d.ts +25 -0
  597. package/lib/lib/run/helpers.js +119 -3
  598. package/lib/lib/run/log-displayer.d.ts +3 -3
  599. package/lib/lib/run/log-displayer.js +21 -21
  600. package/lib/lib/spaces/format.js +36 -23
  601. package/lib/lib/spaces/hosts.d.ts +9 -1
  602. package/lib/lib/spaces/hosts.js +28 -41
  603. package/lib/lib/spaces/peering.d.ts +4 -1
  604. package/lib/lib/spaces/peering.js +45 -52
  605. package/lib/lib/spaces/spaces.d.ts +6 -1
  606. package/lib/lib/spaces/spaces.js +30 -39
  607. package/lib/lib/spaces/vpn-connections.js +16 -16
  608. package/lib/lib/telemetry/util.d.ts +1 -1
  609. package/lib/lib/telemetry/util.js +3 -3
  610. package/lib/lib/types/completion.d.ts +15 -0
  611. package/lib/lib/utils/packageParser.js +2 -2
  612. package/lib/lib/utils/uuid-validate.js +1 -3
  613. package/lib/lib/webhooks/base.d.ts +2 -2
  614. package/lib/lib/webhooks/base.js +3 -3
  615. package/lib/nls-data.d.ts +10 -0
  616. package/lib/nls-data.js +10 -0
  617. package/lib/nls.d.ts +1 -1
  618. package/lib/nls.js +1 -1
  619. package/npm-shrinkwrap.json +17653 -18259
  620. package/oclif.manifest.json +8433 -2271
  621. package/package.json +26 -237
  622. package/lib/lib/pg/bastion.js +0 -137
  623. package/lib/lib/pg/config.d.ts +0 -2
  624. package/lib/lib/pg/config.js +0 -9
  625. package/lib/lib/pg/host.d.ts +0 -1
  626. package/lib/lib/pg/host.js +0 -3
  627. package/lib/lib/spaces/outbound-rules.js +0 -85
  628. package/lib/oldCommands/autocomplete/create.d.ts +0 -1
  629. package/lib/oldCommands/autocomplete/create.js +0 -254
  630. package/lib/oldCommands/autocomplete/doctor.d.ts +0 -1
  631. package/lib/oldCommands/autocomplete/doctor.js +0 -110
  632. package/lib/oldCommands/autocomplete/index.d.ts +0 -1
  633. package/lib/oldCommands/autocomplete/index.js +0 -80
  634. package/lib/oldCommands/autocomplete/options.d.ts +0 -1
  635. package/lib/oldCommands/autocomplete/options.js +0 -240
  636. package/lib/oldCommands/autocomplete/script.d.ts +0 -1
  637. package/lib/oldCommands/autocomplete/script.js +0 -35
  638. package/lib/oldCommands/pg/backups/cancel.d.ts +0 -1
  639. package/lib/oldCommands/pg/backups/cancel.js +0 -56
  640. package/lib/oldCommands/pg/backups/capture.d.ts +0 -1
  641. package/lib/oldCommands/pg/backups/capture.js +0 -77
  642. package/lib/oldCommands/pg/backups/delete.d.ts +0 -1
  643. package/lib/oldCommands/pg/backups/delete.js +0 -45
  644. package/lib/oldCommands/pg/backups/download.d.ts +0 -1
  645. package/lib/oldCommands/pg/backups/download.js +0 -64
  646. package/lib/oldCommands/pg/backups/index.d.ts +0 -1
  647. package/lib/oldCommands/pg/backups/index.js +0 -141
  648. package/lib/oldCommands/pg/backups/info.d.ts +0 -1
  649. package/lib/oldCommands/pg/backups/info.js +0 -102
  650. package/lib/oldCommands/pg/backups/restore.d.ts +0 -1
  651. package/lib/oldCommands/pg/backups/restore.js +0 -150
  652. package/lib/oldCommands/pg/backups/schedule.d.ts +0 -1
  653. package/lib/oldCommands/pg/backups/schedule.js +0 -107
  654. package/lib/oldCommands/pg/backups/schedules.d.ts +0 -1
  655. package/lib/oldCommands/pg/backups/schedules.js +0 -34
  656. package/lib/oldCommands/pg/backups/unschedule.d.ts +0 -1
  657. package/lib/oldCommands/pg/backups/unschedule.js +0 -60
  658. package/lib/oldCommands/pg/backups/url.d.ts +0 -1
  659. package/lib/oldCommands/pg/backups/url.js +0 -46
  660. package/lib/oldCommands/pg/bloat.d.ts +0 -1
  661. package/lib/oldCommands/pg/blocking.d.ts +0 -1
  662. package/lib/oldCommands/pg/blocking.js +0 -48
  663. package/lib/oldCommands/pg/connection-pooling/attach.d.ts +0 -1
  664. package/lib/oldCommands/pg/connection-pooling/attach.js +0 -53
  665. package/lib/oldCommands/pg/copy.d.ts +0 -1
  666. package/lib/oldCommands/pg/copy.js +0 -104
  667. package/lib/oldCommands/pg/credentials/create.d.ts +0 -1
  668. package/lib/oldCommands/pg/credentials/create.js +0 -47
  669. package/lib/oldCommands/pg/credentials/destroy.d.ts +0 -1
  670. package/lib/oldCommands/pg/credentials/destroy.js +0 -56
  671. package/lib/oldCommands/pg/credentials/repair-default.d.ts +0 -1
  672. package/lib/oldCommands/pg/credentials/repair-default.js +0 -43
  673. package/lib/oldCommands/pg/credentials/rotate.d.ts +0 -1
  674. package/lib/oldCommands/pg/credentials/rotate.js +0 -97
  675. package/lib/oldCommands/pg/credentials/url.d.ts +0 -1
  676. package/lib/oldCommands/pg/credentials/url.js +0 -75
  677. package/lib/oldCommands/pg/credentials.d.ts +0 -1
  678. package/lib/oldCommands/pg/credentials.js +0 -77
  679. package/lib/oldCommands/pg/diagnose.d.ts +0 -1
  680. package/lib/oldCommands/pg/diagnose.js +0 -136
  681. package/lib/oldCommands/pg/info.d.ts +0 -1
  682. package/lib/oldCommands/pg/info.js +0 -110
  683. package/lib/oldCommands/pg/kill.d.ts +0 -1
  684. package/lib/oldCommands/pg/kill.js +0 -37
  685. package/lib/oldCommands/pg/killall.d.ts +0 -1
  686. package/lib/oldCommands/pg/killall.js +0 -31
  687. package/lib/oldCommands/pg/links/create.d.ts +0 -1
  688. package/lib/oldCommands/pg/links/create.js +0 -70
  689. package/lib/oldCommands/pg/links/destroy.d.ts +0 -1
  690. package/lib/oldCommands/pg/links/destroy.js +0 -51
  691. package/lib/oldCommands/pg/links/index.d.ts +0 -1
  692. package/lib/oldCommands/pg/links/index.js +0 -64
  693. package/lib/oldCommands/pg/locks.d.ts +0 -1
  694. package/lib/oldCommands/pg/locks.js +0 -60
  695. package/lib/oldCommands/pg/maintenance/index.d.ts +0 -1
  696. package/lib/oldCommands/pg/maintenance/index.js +0 -34
  697. package/lib/oldCommands/pg/maintenance/run.d.ts +0 -1
  698. package/lib/oldCommands/pg/maintenance/run.js +0 -44
  699. package/lib/oldCommands/pg/maintenance/window.d.ts +0 -1
  700. package/lib/oldCommands/pg/maintenance/window.js +0 -52
  701. package/lib/oldCommands/pg/outliers.d.ts +0 -1
  702. package/lib/oldCommands/pg/outliers.js +0 -110
  703. package/lib/oldCommands/pg/promote.d.ts +0 -1
  704. package/lib/oldCommands/pg/promote.js +0 -183
  705. package/lib/oldCommands/pg/ps.d.ts +0 -1
  706. package/lib/oldCommands/pg/ps.js +0 -56
  707. package/lib/oldCommands/pg/psql.d.ts +0 -1
  708. package/lib/oldCommands/pg/psql.js +0 -53
  709. package/lib/oldCommands/pg/pull.d.ts +0 -1
  710. package/lib/oldCommands/pg/pull.js +0 -114
  711. package/lib/oldCommands/pg/push.d.ts +0 -1
  712. package/lib/oldCommands/pg/push.js +0 -111
  713. package/lib/oldCommands/pg/reset.d.ts +0 -1
  714. package/lib/oldCommands/pg/reset.js +0 -49
  715. package/lib/oldCommands/pg/settings/auto-explain/log-analyze.d.ts +0 -1
  716. package/lib/oldCommands/pg/settings/auto-explain/log-analyze.js +0 -37
  717. package/lib/oldCommands/pg/settings/auto-explain/log-buffers.d.ts +0 -1
  718. package/lib/oldCommands/pg/settings/auto-explain/log-buffers.js +0 -35
  719. package/lib/oldCommands/pg/settings/auto-explain/log-format.d.ts +0 -1
  720. package/lib/oldCommands/pg/settings/auto-explain/log-format.js +0 -30
  721. package/lib/oldCommands/pg/settings/auto-explain/log-min-duration.d.ts +0 -1
  722. package/lib/oldCommands/pg/settings/auto-explain/log-min-duration.js +0 -39
  723. package/lib/oldCommands/pg/settings/auto-explain/log-nested-statements.d.ts +0 -1
  724. package/lib/oldCommands/pg/settings/auto-explain/log-nested-statements.js +0 -30
  725. package/lib/oldCommands/pg/settings/auto-explain/log-triggers.d.ts +0 -1
  726. package/lib/oldCommands/pg/settings/auto-explain/log-triggers.js +0 -35
  727. package/lib/oldCommands/pg/settings/auto-explain/log-verbose.d.ts +0 -1
  728. package/lib/oldCommands/pg/settings/auto-explain/log-verbose.js +0 -40
  729. package/lib/oldCommands/pg/settings/auto-explain.d.ts +0 -1
  730. package/lib/oldCommands/pg/settings/auto-explain.js +0 -45
  731. package/lib/oldCommands/pg/settings/data-connector-details-logs.d.ts +0 -1
  732. package/lib/oldCommands/pg/settings/data-connector-details-logs.js +0 -40
  733. package/lib/oldCommands/pg/settings/index.d.ts +0 -1
  734. package/lib/oldCommands/pg/settings/index.js +0 -41
  735. package/lib/oldCommands/pg/settings/log-connections.d.ts +0 -1
  736. package/lib/oldCommands/pg/settings/log-connections.js +0 -40
  737. package/lib/oldCommands/pg/settings/log-lock-waits.d.ts +0 -1
  738. package/lib/oldCommands/pg/settings/log-lock-waits.js +0 -36
  739. package/lib/oldCommands/pg/settings/log-min-duration-statement.d.ts +0 -1
  740. package/lib/oldCommands/pg/settings/log-min-duration-statement.js +0 -39
  741. package/lib/oldCommands/pg/settings/log-min-error-statement.d.ts +0 -1
  742. package/lib/oldCommands/pg/settings/log-min-error-statement.js +0 -31
  743. package/lib/oldCommands/pg/settings/log-statement.d.ts +0 -1
  744. package/lib/oldCommands/pg/settings/log-statement.js +0 -33
  745. package/lib/oldCommands/pg/settings/track-functions.d.ts +0 -1
  746. package/lib/oldCommands/pg/settings/track-functions.js +0 -33
  747. package/lib/oldCommands/pg/unfollow.d.ts +0 -1
  748. package/lib/oldCommands/pg/unfollow.js +0 -46
  749. package/lib/oldCommands/pg/upgrade/cancel.d.ts +0 -1
  750. package/lib/oldCommands/pg/upgrade/cancel.js +0 -62
  751. package/lib/oldCommands/pg/upgrade/dryrun.d.ts +0 -1
  752. package/lib/oldCommands/pg/upgrade/dryrun.js +0 -62
  753. package/lib/oldCommands/pg/upgrade/index.d.ts +0 -1
  754. package/lib/oldCommands/pg/upgrade/index.js +0 -85
  755. package/lib/oldCommands/pg/upgrade/prepare.d.ts +0 -1
  756. package/lib/oldCommands/pg/upgrade/prepare.js +0 -64
  757. package/lib/oldCommands/pg/upgrade/run.d.ts +0 -1
  758. package/lib/oldCommands/pg/upgrade/run.js +0 -106
  759. package/lib/oldCommands/pg/upgrade/wait.d.ts +0 -1
  760. package/lib/oldCommands/pg/upgrade/wait.js +0 -121
  761. package/lib/oldCommands/pg/upgrade.d.ts +0 -1
  762. package/lib/oldCommands/pg/upgrade.js +0 -66
  763. package/lib/oldCommands/pg/vacuum-stats.d.ts +0 -1
  764. package/lib/oldCommands/pg/wait.d.ts +0 -1
  765. package/lib/oldCommands/pg/wait.js +0 -96
  766. package/lib/oldCommands/pipelines/open.d.ts +0 -1
  767. package/lib/oldCommands/pipelines/open.js +0 -25
  768. package/lib/oldCommands/pipelines/promote.d.ts +0 -1
  769. package/lib/oldCommands/pipelines/promote.js +0 -269
  770. package/lib/oldCommands/pipelines/remove.d.ts +0 -1
  771. package/lib/oldCommands/pipelines/remove.js +0 -29
  772. package/lib/oldCommands/pipelines/rename.d.ts +0 -1
  773. package/lib/oldCommands/pipelines/rename.js +0 -42
  774. package/lib/oldCommands/pipelines/setup.d.ts +0 -1
  775. package/lib/oldCommands/pipelines/setup.js +0 -117
  776. package/lib/oldCommands/pipelines/transfer.d.ts +0 -1
  777. package/lib/oldCommands/pipelines/transfer.js +0 -78
  778. package/lib/oldCommands/pipelines/update.d.ts +0 -1
  779. package/lib/oldCommands/pipelines/update.js +0 -39
  780. package/lib/oldCommands/ps/autoscale/disable.d.ts +0 -1
  781. package/lib/oldCommands/ps/autoscale/disable.js +0 -43
  782. package/lib/oldCommands/ps/autoscale/enable.d.ts +0 -1
  783. package/lib/oldCommands/ps/autoscale/enable.js +0 -103
  784. package/lib/oldCommands/ps/index.d.ts +0 -1
  785. package/lib/oldCommands/ps/index.js +0 -254
  786. package/lib/oldCommands/ps/restart.d.ts +0 -1
  787. package/lib/oldCommands/ps/restart.js +0 -78
  788. package/lib/oldCommands/ps/scale.d.ts +0 -1
  789. package/lib/oldCommands/ps/scale.js +0 -95
  790. package/lib/oldCommands/ps/stop.d.ts +0 -1
  791. package/lib/oldCommands/ps/stop.js +0 -73
  792. package/lib/oldCommands/ps/type.d.ts +0 -1
  793. package/lib/oldCommands/ps/type.js +0 -190
  794. package/lib/oldCommands/ps/wait.d.ts +0 -1
  795. package/lib/oldCommands/ps/wait.js +0 -93
  796. package/lib/oldCommands/releases/index.d.ts +0 -1
  797. package/lib/oldCommands/releases/index.js +0 -156
  798. package/lib/oldCommands/releases/info.d.ts +0 -1
  799. package/lib/oldCommands/releases/info.js +0 -68
  800. package/lib/oldCommands/releases/output.d.ts +0 -1
  801. package/lib/oldCommands/releases/output.js +0 -42
  802. package/lib/oldCommands/releases/retry.d.ts +0 -1
  803. package/lib/oldCommands/releases/retry.js +0 -59
  804. package/lib/oldCommands/releases/rollback.d.ts +0 -1
  805. package/lib/oldCommands/releases/rollback.js +0 -65
  806. package/lib/oldCommands/run/detached.d.ts +0 -1
  807. package/lib/oldCommands/run/detached.js +0 -61
  808. package/lib/oldCommands/run/index.d.ts +0 -1
  809. package/lib/oldCommands/run/index.js +0 -72
  810. package/lib/oldCommands/run/inside.d.ts +0 -1
  811. package/lib/oldCommands/run/inside.js +0 -93
  812. package/lib/oldCommands/spaces/create.d.ts +0 -1
  813. package/lib/oldCommands/spaces/create.js +0 -99
  814. package/lib/oldCommands/spaces/destroy.d.ts +0 -1
  815. package/lib/oldCommands/spaces/destroy.js +0 -79
  816. package/lib/oldCommands/spaces/drains/get.d.ts +0 -1
  817. package/lib/oldCommands/spaces/drains/get.js +0 -33
  818. package/lib/oldCommands/spaces/drains/set.d.ts +0 -1
  819. package/lib/oldCommands/spaces/drains/set.js +0 -33
  820. package/lib/oldCommands/spaces/hosts.d.ts +0 -1
  821. package/lib/oldCommands/spaces/hosts.js +0 -42
  822. package/lib/oldCommands/spaces/index.d.ts +0 -1
  823. package/lib/oldCommands/spaces/index.js +0 -74
  824. package/lib/oldCommands/spaces/info.d.ts +0 -1
  825. package/lib/oldCommands/spaces/info.js +0 -59
  826. package/lib/oldCommands/spaces/peerings/accept.d.ts +0 -1
  827. package/lib/oldCommands/spaces/peerings/accept.js +0 -41
  828. package/lib/oldCommands/spaces/peerings/destroy.d.ts +0 -1
  829. package/lib/oldCommands/spaces/peerings/destroy.js +0 -51
  830. package/lib/oldCommands/spaces/peerings/index.d.ts +0 -1
  831. package/lib/oldCommands/spaces/peerings/index.js +0 -39
  832. package/lib/oldCommands/spaces/peerings/info.d.ts +0 -1
  833. package/lib/oldCommands/spaces/ps.d.ts +0 -1
  834. package/lib/oldCommands/spaces/ps.js +0 -97
  835. package/lib/oldCommands/spaces/rename.d.ts +0 -1
  836. package/lib/oldCommands/spaces/rename.js +0 -29
  837. package/lib/oldCommands/spaces/topology.d.ts +0 -1
  838. package/lib/oldCommands/spaces/topology.js +0 -95
  839. package/lib/oldCommands/spaces/transfer.d.ts +0 -1
  840. package/lib/oldCommands/spaces/transfer.js +0 -37
  841. package/lib/oldCommands/spaces/trusted-ips/add.d.ts +0 -1
  842. package/lib/oldCommands/spaces/trusted-ips/add.js +0 -48
  843. package/lib/oldCommands/spaces/trusted-ips/index.d.ts +0 -1
  844. package/lib/oldCommands/spaces/trusted-ips/index.js +0 -57
  845. package/lib/oldCommands/spaces/trusted-ips/remove.d.ts +0 -1
  846. package/lib/oldCommands/spaces/trusted-ips/remove.js +0 -50
  847. package/lib/oldCommands/spaces/vpn/config.d.ts +0 -1
  848. package/lib/oldCommands/spaces/vpn/config.js +0 -61
  849. package/lib/oldCommands/spaces/vpn/connect.d.ts +0 -1
  850. package/lib/oldCommands/spaces/vpn/connect.js +0 -54
  851. package/lib/oldCommands/spaces/vpn/connections.d.ts +0 -1
  852. package/lib/oldCommands/spaces/vpn/connections.js +0 -70
  853. package/lib/oldCommands/spaces/vpn/destroy.d.ts +0 -1
  854. package/lib/oldCommands/spaces/vpn/destroy.js +0 -48
  855. package/lib/oldCommands/spaces/vpn/info.d.ts +0 -1
  856. package/lib/oldCommands/spaces/vpn/info.js +0 -89
  857. package/lib/oldCommands/spaces/vpn/update.d.ts +0 -1
  858. package/lib/oldCommands/spaces/vpn/update.js +0 -46
  859. package/lib/oldCommands/spaces/vpn/wait.d.ts +0 -1
  860. package/lib/oldCommands/spaces/vpn/wait.js +0 -80
  861. package/lib/oldCommands/spaces/wait.d.ts +0 -1
  862. package/lib/oldCommands/spaces/wait.js +0 -106
  863. package/lib/package.nls.json +0 -6
  864. /package/lib/lib/{pg/bastion.d.ts → data-scrubber/types.js} +0 -0
  865. /package/lib/lib/{spaces/outbound-rules.d.ts → types/completion.js} +0 -0
@@ -1 +1,3 @@
1
- export {};
1
+ import { APIClient } from '@heroku-cli/command';
2
+ import * as Heroku from '@heroku-cli/schema';
3
+ export declare function getRelease(heroku: APIClient, appName: string, id: string): Promise<Heroku.Release>;
@@ -1,163 +1,4 @@
1
- export {};
2
- /*
3
- import {APIClient} from '@heroku-cli/command'
4
- import type {AddOnAttachment} from '@heroku-cli/schema'
5
- import * as Heroku from '@heroku-cli/schema'
6
- import {HerokuAPIError} from '@heroku-cli/command/lib/api-client'
7
- import debug from 'debug'
8
- import {AmbiguousError, appAttachment} from '../addons/resolve'
9
- import {fetchConfig} from './bastion'
10
- import {getConfig} from './config'
11
- import color from '@heroku-cli/color'
12
- import type {AddOnAttachmentWithConfigVarsAndPlan, AddOnWithRelatedData} from './types'
13
- import {bastionKeyPlan, getConfigVarName, getConnectionDetails} from './util'
14
-
15
- const pgDebug = debug('pg')
16
-
17
- export async function arbitraryAppDB(heroku: APIClient, app: string) {
18
- // Since Postgres backups are tied to the app and not the add-on, but
19
- // we require *an* add-on to interact with, make sure that add-on is
20
- // attached to the right app.
21
-
22
- pgDebug(`fetching arbitrary app db on ${app}`)
23
- const {body: addons} = await heroku.get<Heroku.AddOn[]>(`/apps/${app}/addons`)
24
- const addon = addons.find(a => a?.app?.name === app && a?.plan?.name?.startsWith('heroku-postgresql'))
25
- if (!addon) throw new Error(`No heroku-postgresql databases on ${app}`)
26
- return addon
1
+ export async function getRelease(heroku, appName, id) {
2
+ const { body: release } = await heroku.get(`/apps/${appName}/releases/${id}`);
3
+ return release;
27
4
  }
28
-
29
- function getAttachmentNamesByAddon(attachments: AddOnAttachmentWithConfigVarsAndPlan[]): AddOnAttachmentWithConfigVarsAndPlan {
30
- return attachments.reduce((results: any, a) => {
31
- results[a.addon.id] = (results[a.addon.id] || []).concat(a.name)
32
- return results
33
- }, {})
34
- }
35
-
36
- export async function all(heroku: APIClient, app_id: string): Promise<AddOnWithRelatedData[]> {
37
- const {uniqBy} = require('lodash')
38
-
39
- pgDebug(`fetching all DBs on ${app_id}`)
40
-
41
- const attachments = await allAttachments(heroku, app_id)
42
- let addons: AddOnWithRelatedData[] = attachments.map(a => a.addon)
43
-
44
- // Get the list of attachment names per addon here and add to each addon obj
45
- const attachmentNamesByAddon = getAttachmentNamesByAddon(attachments)
46
- addons = uniqBy(addons, 'id')
47
- addons.forEach(addon => {
48
- addon.attachment_names = attachmentNamesByAddon[addon.id]
49
- })
50
-
51
- return addons
52
- }
53
-
54
- async function matchesHelper(heroku: APIClient, app: string, db: string, namespace?: string): Promise<{matches: AddOnAttachment[] | null, error?: AmbiguousError | HerokuAPIError}> {
55
- debug(`fetching ${db} on ${app}`)
56
-
57
- const addonService = process.env.HEROKU_POSTGRESQL_ADDON_NAME || 'heroku-postgresql'
58
- debug(`addon service: ${addonService}`)
59
- try {
60
- const attached = await appAttachment(heroku, app, db, {addon_service: addonService, namespace})
61
- return ({matches: [attached]})
62
- } catch (error) {
63
- if (error instanceof AmbiguousError && error.body?.id === 'multiple_matches' && error.matches) {
64
- return {matches: error.matches, error}
65
- }
66
-
67
- if (error instanceof HerokuAPIError && error.http.statusCode === 404 && error.body && error.body.id === 'not_found') {
68
- return {matches: null, error}
69
- }
70
-
71
- throw error
72
- }
73
- }
74
-
75
- export async function getAttachment(heroku: APIClient, app: string, db = 'DATABASE_URL', namespace = ''): Promise<Required<AddOnAttachment & {addon: AddOnAttachmentWithConfigVarsAndPlan}>> {
76
- const matchesOrError = await matchesHelper(heroku, app, db, namespace)
77
- let {matches} = matchesOrError
78
- const {error} = matchesOrError
79
- // happy path where the resolver matches just one
80
- if (matches && matches.length === 1) {
81
- return matches[0] as Required<AddOnAttachment & {addon: AddOnAttachmentWithConfigVarsAndPlan}>
82
- }
83
-
84
- // case for 404 where there are implicit attachments
85
- if (!matches) {
86
- const appConfigMatch = /^(.+?)::(.+)/.exec(db)
87
- if (appConfigMatch) {
88
- app = appConfigMatch[1]
89
- db = appConfigMatch[2]
90
- }
91
-
92
- if (!db.endsWith('_URL')) {
93
- db += '_URL'
94
- }
95
-
96
- const [config = {}, attachments] = await Promise.all([
97
- getConfig(heroku, app),
98
- allAttachments(heroku, app),
99
- ])
100
-
101
- if (attachments.length === 0) {
102
- throw new Error(`${color.app(app)} has no databases`)
103
- }
104
-
105
- matches = attachments.filter(attachment => config[db] && config[db] === config[getConfigVarName(attachment.config_vars as string[])])
106
-
107
- if (matches.length === 0) {
108
- const validOptions = attachments.map(attachment => getConfigVarName(attachment.config_vars as string[]))
109
- throw new Error(`Unknown database: ${db}. Valid options are: ${validOptions.join(', ')}`)
110
- }
111
- }
112
-
113
- // case for multiple attachments with passedDb
114
- const first = matches[0] as Required<AddOnAttachment & {addon: AddOnAttachmentWithConfigVarsAndPlan}>
115
-
116
- // case for 422 where there are ambiguous attachments that are equivalent
117
- if (matches.every(match => first.addon?.id === match.addon?.id && first.app?.id === match.app?.id)) {
118
- const config = await getConfig(heroku, first.app.name as string) ?? {}
119
-
120
- if (matches.every(match => config[getConfigVarName(first.config_vars)] === config[getConfigVarName(match.config_vars)])) {
121
- return first
122
- }
123
- }
124
-
125
- throw error
126
- }
127
-
128
- async function allAttachments(heroku: APIClient, app_id: string): Promise<AddOnAttachmentWithConfigVarsAndPlan[]> {
129
- const {body: attachments} = await heroku.get<AddOnAttachmentWithConfigVarsAndPlan[]>(`/apps/${app_id}/addon-attachments`, {
130
- headers: {'Accept-Inclusion': 'addon:plan,config_vars'},
131
- })
132
- return attachments.filter((a: AddOnAttachmentWithConfigVarsAndPlan) => a.addon.plan?.name?.startsWith('heroku-postgresql'))
133
- }
134
-
135
- export async function getAddon(heroku: APIClient, app: string, db = 'DATABASE_URL') {
136
- return (await getAttachment(heroku, app, db)).addon
137
- }
138
-
139
- export async function database(heroku: APIClient, app: string, db?: string, namespace?: string) {
140
- const attached = await getAttachment(heroku, app, db, namespace)
141
-
142
- // would inline this as well but in some cases attachment pulls down config
143
- // as well, and we would request twice at the same time but I did not want
144
- // to push this down into attachment because we do not always need config
145
- const config = await getConfig(heroku, attached.app.name as string)
146
-
147
- const database = getConnectionDetails(attached, config)
148
- if (bastionKeyPlan(attached.addon) && !database.bastionKey) {
149
- const {body: bastionConfig} = await fetchConfig(heroku, attached.addon)
150
- const bastionHost = bastionConfig.host
151
- const bastionKey = bastionConfig.private_key
152
-
153
- Object.assign(database, {bastionHost, bastionKey})
154
- }
155
-
156
- return database
157
- }
158
-
159
- export async function getRelease(heroku: APIClient, appName: string, id: string) {
160
- const {body: release} = await heroku.get<Heroku.Release>(`/apps/${appName}/releases/${id}`)
161
- return release
162
- }
163
- */
@@ -1 +1,17 @@
1
- export {};
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import { SpawnOptions } from 'child_process';
4
+ import { pg } from '@heroku/heroku-cli-util';
5
+ export declare function fetchVersion(db: pg.ConnectionDetails): Promise<string | undefined>;
6
+ export declare function psqlFileOptions(file: string, dbEnv: NodeJS.ProcessEnv): {
7
+ dbEnv: NodeJS.ProcessEnv;
8
+ psqlArgs: string[];
9
+ childProcessOptions: SpawnOptions;
10
+ };
11
+ export declare function psqlInteractiveOptions(prompt: string, dbEnv: NodeJS.ProcessEnv): {
12
+ dbEnv: NodeJS.ProcessEnv;
13
+ psqlArgs: string[];
14
+ childProcessOptions: SpawnOptions;
15
+ };
16
+ export declare function execFile(db: pg.ConnectionDetails, file: string): Promise<string>;
17
+ export declare function interactive(db: pg.ConnectionDetails): Promise<string>;
@@ -1,275 +1,65 @@
1
- export {};
2
- /*
3
- import {ux} from '@oclif/core'
4
- import {spawn, SpawnOptions, type SpawnOptionsWithStdioTuple} from 'child_process'
5
- import debug from 'debug'
6
- import * as fs from 'fs'
7
- import type {ChildProcess} from 'node:child_process'
8
- import {EventEmitter, once} from 'node:events'
9
- import type {Server} from 'node:net'
10
- import * as path from 'node:path'
11
- import {Stream} from 'node:stream'
12
- import {finished} from 'node:stream/promises'
13
- import {getConfigs, sshTunnel, TunnelConfig} from './bastion'
14
- import {ConnectionDetails, getConnectionDetails} from './util'
15
-
16
- const pgDebug = debug('pg')
17
- export function psqlQueryOptions(query:string, dbEnv: NodeJS.ProcessEnv, cmdArgs: string[] = []) {
18
- pgDebug('Running query: %s', query.trim())
19
-
20
- const psqlArgs = ['-c', query, '--set', 'sslmode=require', ...cmdArgs]
21
-
22
- const childProcessOptions: SpawnOptionsWithStdioTuple<'ignore', 'pipe', 'inherit'> = {
23
- stdio: ['ignore', 'pipe', 'inherit'],
24
- }
25
-
26
- return {
27
- dbEnv,
28
- psqlArgs,
29
- childProcessOptions,
30
- }
1
+ import { ux } from '@oclif/core';
2
+ import debug from 'debug';
3
+ import * as fs from 'fs';
4
+ import * as path from 'node:path';
5
+ import { utils } from '@heroku/heroku-cli-util';
6
+ export async function fetchVersion(db) {
7
+ const psqlService = new utils.pg.PsqlService(db);
8
+ const output = await psqlService.execQuery('SHOW server_version', ['-X', '-q']);
9
+ return output.match(/[0-9]{1,}\.[0-9]{1,}/)?.[0];
31
10
  }
32
-
33
- export function psqlFileOptions(file: string, dbEnv: NodeJS.ProcessEnv) {
34
- pgDebug('Running sql file: %s', file.trim())
35
-
36
- const childProcessOptions:SpawnOptions = {
37
- stdio: ['ignore', 'pipe', 'inherit'],
38
- }
39
-
40
- const psqlArgs = ['-f', file, '--set', 'sslmode=require']
41
-
42
- return {
43
- dbEnv,
44
- psqlArgs,
45
- childProcessOptions,
46
- }
11
+ const pgDebug = debug('pg');
12
+ export function psqlFileOptions(file, dbEnv) {
13
+ pgDebug('Running sql file: %s', file.trim());
14
+ const childProcessOptions = {
15
+ stdio: ['ignore', 'pipe', 'inherit'],
16
+ };
17
+ const psqlArgs = ['-f', file, '--set', 'sslmode=require'];
18
+ return {
19
+ dbEnv,
20
+ psqlArgs,
21
+ childProcessOptions,
22
+ };
47
23
  }
48
-
49
- export function psqlInteractiveOptions(prompt: string, dbEnv: NodeJS.ProcessEnv) {
50
- let psqlArgs = ['--set', `PROMPT1=${prompt}`, '--set', `PROMPT2=${prompt}`]
51
- const psqlHistoryPath = process.env.HEROKU_PSQL_HISTORY
52
- if (psqlHistoryPath) {
53
- if (fs.existsSync(psqlHistoryPath) && fs.statSync(psqlHistoryPath).isDirectory()) {
54
- const appLogFile = `${psqlHistoryPath}/${prompt.split(':')[0]}`
55
- pgDebug('Logging psql history to %s', appLogFile)
56
- psqlArgs = psqlArgs.concat(['--set', `HISTFILE=${appLogFile}`])
57
- } else if (fs.existsSync(path.dirname(psqlHistoryPath))) {
58
- pgDebug('Logging psql history to %s', psqlHistoryPath)
59
- psqlArgs = psqlArgs.concat(['--set', `HISTFILE=${psqlHistoryPath}`])
60
- } else {
61
- ux.warn(`HEROKU_PSQL_HISTORY is set but is not a valid path (${psqlHistoryPath})`)
24
+ export function psqlInteractiveOptions(prompt, dbEnv) {
25
+ let psqlArgs = ['--set', `PROMPT1=${prompt}`, '--set', `PROMPT2=${prompt}`];
26
+ const psqlHistoryPath = process.env.HEROKU_PSQL_HISTORY;
27
+ if (psqlHistoryPath) {
28
+ if (fs.existsSync(psqlHistoryPath) && fs.statSync(psqlHistoryPath).isDirectory()) {
29
+ const appLogFile = `${psqlHistoryPath}/${prompt.split(':')[0]}`;
30
+ pgDebug('Logging psql history to %s', appLogFile);
31
+ psqlArgs = psqlArgs.concat(['--set', `HISTFILE=${appLogFile}`]);
32
+ }
33
+ else if (fs.existsSync(path.dirname(psqlHistoryPath))) {
34
+ pgDebug('Logging psql history to %s', psqlHistoryPath);
35
+ psqlArgs = psqlArgs.concat(['--set', `HISTFILE=${psqlHistoryPath}`]);
36
+ }
37
+ else {
38
+ ux.warn(`HEROKU_PSQL_HISTORY is set but is not a valid path (${psqlHistoryPath})`);
39
+ }
62
40
  }
63
- }
64
-
65
- psqlArgs = psqlArgs.concat(['--set', 'sslmode=require'])
66
-
67
- const childProcessOptions: SpawnOptions = {
68
- stdio: 'inherit',
69
- }
70
-
71
- return {
72
- dbEnv,
73
- psqlArgs,
74
- childProcessOptions,
75
- }
41
+ psqlArgs = psqlArgs.concat(['--set', 'sslmode=require']);
42
+ const childProcessOptions = {
43
+ stdio: 'inherit',
44
+ };
45
+ return {
46
+ dbEnv,
47
+ psqlArgs,
48
+ childProcessOptions,
49
+ };
76
50
  }
77
-
78
- export function execPSQL({dbEnv, psqlArgs, childProcessOptions}: {dbEnv: NodeJS.ProcessEnv, psqlArgs: string[], childProcessOptions: SpawnOptions}) {
79
- const options = {
80
- env: dbEnv,
81
- ...childProcessOptions,
82
- }
83
-
84
- pgDebug('opening psql process')
85
- const psql = spawn('psql', psqlArgs, options)
86
- psql.once('spawn', () => pgDebug('psql process spawned'))
87
-
88
- return psql
51
+ export async function execFile(db, file) {
52
+ const psqlService = new utils.pg.PsqlService(db);
53
+ const configs = utils.pg.psql.getPsqlConfigs(db);
54
+ const options = psqlFileOptions(file, configs.dbEnv);
55
+ return psqlService.runWithTunnel(configs.dbTunnelConfig, options);
89
56
  }
90
-
91
- export async function waitForPSQLExit(psql: EventEmitter) {
92
- let errorToThrow: Error | null = null
93
- try {
94
- const [exitCode] = await once(psql, 'close')
95
-
96
- pgDebug(`psql exited with code ${exitCode}`)
97
- if (exitCode > 0) {
98
- errorToThrow = new Error(`psql exited with code ${exitCode}`)
99
- }
100
- } catch (error) {
101
- pgDebug('psql process error', error)
102
- const {code} = error as {code: string}
103
- if (code === 'ENOENT') {
104
- errorToThrow = new Error('The local psql command could not be located. For help installing psql, see https://devcenter.heroku.com/articles/heroku-postgresql#local-setup')
105
- }
106
- }
107
-
108
- if (errorToThrow) {
109
- throw errorToThrow
110
- }
111
- }
112
-
113
- // According to node.js docs, sending a kill to a process won't cause an error
114
- // but could have unintended consequences if the PID gets reassigned:
115
- // https://nodejs.org/docs/latest-v14.x/api/child_process.html#child_process_subprocess_kill_signal
116
- // To be on the safe side, check if the process was already killed before sending the signal
117
- function kill(childProcess: ChildProcess, signal: number | NodeJS.Signals | undefined) {
118
- if (!childProcess.killed) {
119
- pgDebug('killing psql child process')
120
- childProcess.kill(signal)
121
- }
122
- }
123
-
124
- // trap SIGINT so that ctrl+c can be used by psql without killing the
125
- // parent node process.
126
- // you can use ctrl+c in psql to kill running queries
127
- // while keeping the psql process open.
128
- // This code is to stop the parent node process (heroku CLI)
129
- // from exiting. If the parent Heroku CLI node process exits, then psql will exit as it
130
- // is a child process of the Heroku CLI node process.
131
- export const trapAndForwardSignalsToChildProcess = (childProcess: ChildProcess) => {
132
- const signalsToTrap: NodeJS.Signals[] = ['SIGINT']
133
- const signalTraps = signalsToTrap.map(signal => {
134
- process.removeAllListeners(signal)
135
- const listener = () => kill(childProcess, signal)
136
- process.on(signal, listener)
137
- return [signal, listener]
138
- }) as ([NodeJS.Signals, () => void])[]
139
-
140
- // restores the built-in node ctrl+c and other handlers
141
- return () => {
142
- signalTraps.forEach(([signal, listener]) => {
143
- process.removeListener(signal as string, listener)
144
- })
145
- }
146
- }
147
-
148
- export function consumeStream(inputStream: Stream) {
149
- let result = ''
150
- const throughStream = new Stream.PassThrough()
151
-
152
- // eslint-disable-next-line no-async-promise-executor
153
- const promise = new Promise(async (resolve, reject) => {
154
- try {
155
- await finished(throughStream)
156
- resolve(result)
157
- } catch (error) {
158
- reject(error)
159
- }
160
- })
161
-
162
- // eslint-disable-next-line no-return-assign
163
- throughStream.on('data', chunk => result += chunk.toString())
164
- inputStream.pipe(throughStream)
165
- return promise
166
- }
167
-
168
- export async function runWithTunnel(db: ConnectionDetails, tunnelConfig: TunnelConfig, options: Parameters<typeof execPSQL>[0]): Promise<string> {
169
- const tunnel = await Tunnel.connect(db, tunnelConfig)
170
- pgDebug('after create tunnel')
171
-
172
- const psql = execPSQL(options)
173
- // interactive opens with stdio: 'inherit'
174
- // which gives the child process the same stdin,stdout,stderr of the node process (global `process`)
175
- // https://nodejs.org/api/child_process.html#child_process_options_stdio
176
- // psql.stdout will be null in this case
177
- // return a string for consistency but ideally we should return the child process from this function
178
- // and let the caller decide what to do with stdin/stdout/stderr
179
- const stdoutPromise = psql.stdout ? consumeStream(psql.stdout) : Promise.resolve('')
180
- const cleanupSignalTraps = trapAndForwardSignalsToChildProcess(psql)
181
-
182
- try {
183
- pgDebug('waiting for psql or tunnel to exit')
184
- // wait for either psql or tunnel to exit;
185
- // the important bit is that we ensure both processes are
186
- // always cleaned up in the `finally` block below
187
- await Promise.race([
188
- waitForPSQLExit(psql),
189
- tunnel.waitForClose(),
190
- ])
191
- } catch (error) {
192
- pgDebug('wait for psql or tunnel error', error)
193
- throw error
194
- } finally {
195
- pgDebug('begin tunnel cleanup')
196
- cleanupSignalTraps()
197
- tunnel.close()
198
- kill(psql, 'SIGKILL')
199
- pgDebug('end tunnel cleanup')
200
- }
201
-
202
- return stdoutPromise as Promise<string>
203
- }
204
-
205
- // a small wrapper around tunnel-ssh
206
- // so that other code doesn't have to worry about
207
- // whether there is or is not a tunnel
208
- export class Tunnel {
209
- private readonly bastionTunnel: Server
210
- private readonly events: EventEmitter
211
- constructor(bastionTunnel: Server) {
212
- this.bastionTunnel = bastionTunnel
213
- this.events = new EventEmitter()
214
- }
215
-
216
- async waitForClose() {
217
- if (this.bastionTunnel) {
218
- try {
219
- pgDebug('wait for tunnel close')
220
- await once(this.bastionTunnel, 'close')
221
- pgDebug('tunnel closed')
222
- } catch (error) {
223
- pgDebug('tunnel close error', error)
224
- throw new Error('Secure tunnel to your database failed')
225
- }
226
- } else {
227
- pgDebug('no bastion required; waiting for fake close event')
228
- await once(this.events, 'close')
229
- }
230
- }
231
-
232
- close() {
233
- if (this.bastionTunnel) {
234
- pgDebug('close tunnel')
235
- this.bastionTunnel.close()
236
- } else {
237
- pgDebug('no tunnel necessary; sending fake close event')
238
- this.events.emit('close', 0)
239
- }
240
- }
241
-
242
- static async connect(db: ConnectionDetails, tunnelConfig: TunnelConfig) {
243
- const tunnel = await sshTunnel(db, tunnelConfig)
244
- return new Tunnel(tunnel as Server)
245
- }
246
- }
247
-
248
- export async function fetchVersion(db: Parameters<typeof exec>[0]) {
249
- const output = await exec(db, 'SHOW server_version', ['-X', '-q'])
250
- return output.match(/[0-9]{1,}\.[0-9]{1,}/)?.[0]
251
- }
252
-
253
- export async function exec(db: ConnectionDetails, query: string, cmdArgs: string[] = []) {
254
- const configs = getConfigs(db)
255
- const options = psqlQueryOptions(query, configs.dbEnv, cmdArgs)
256
- return runWithTunnel(db, configs.dbTunnelConfig, options)
257
- }
258
-
259
- export async function execFile(db:Parameters<typeof getConfigs>[0], file: string) {
260
- const configs = getConfigs(db)
261
- const options = psqlFileOptions(file, configs.dbEnv)
262
-
263
- return runWithTunnel(db, configs.dbTunnelConfig, options)
264
- }
265
-
266
- export async function interactive(db: ReturnType<typeof getConnectionDetails>) {
267
- const name = db.attachment.name
268
- const prompt = `${db.attachment.app.name}::${name}%R%# `
269
- const configs = getConfigs(db)
270
- configs.dbEnv.PGAPPNAME = 'psql interactive' // default was 'psql non-interactive`
271
- const options = psqlInteractiveOptions(prompt, configs.dbEnv)
272
-
273
- return runWithTunnel(db, configs.dbTunnelConfig, options)
57
+ export async function interactive(db) {
58
+ const psqlService = new utils.pg.PsqlService(db);
59
+ const attachmentName = db.attachment.name;
60
+ const prompt = `${db.attachment.app.name}::${attachmentName}%R%# `;
61
+ const configs = utils.pg.psql.getPsqlConfigs(db);
62
+ configs.dbEnv.PGAPPNAME = 'psql interactive'; // default was 'psql non-interactive`
63
+ const options = psqlInteractiveOptions(prompt, configs.dbEnv);
64
+ return psqlService.runWithTunnel(configs.dbTunnelConfig, options);
274
65
  }
275
- */
@@ -1 +1,13 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import type { pg } from '@heroku/heroku-cli-util';
4
+ import { ChildProcess } from 'node:child_process';
5
+ export declare const parseExclusions: (rawExcludeList: string | undefined) => Array<string>;
6
+ declare type ExecFn = typeof exec;
7
+ export declare const prepare: (target: pg.ConnectionDetails, execFn?: ExecFn) => Promise<void>;
8
+ export declare const maybeTunnel: (herokuDb: pg.ConnectionDetails) => Promise<pg.ConnectionDetails>;
9
+ export declare const connArgs: (uri: pg.ConnectionDetails, skipDFlag?: boolean) => string[];
10
+ declare const exec: (cmd: string, opts?: {}) => Buffer;
11
+ export declare const spawnPipe: (pgDump: ChildProcess, pgRestore: ChildProcess) => Promise<void>;
12
+ export declare const verifyExtensionsMatch: (source: pg.ConnectionDetails, target: pg.ConnectionDetails) => Promise<void>;
1
13
  export {};