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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. package/README.md +6 -11
  2. package/lib/commands/access/add.d.ts +14 -0
  3. package/lib/commands/access/add.js +55 -0
  4. package/lib/commands/access/index.d.ts +11 -0
  5. package/lib/commands/access/index.js +86 -0
  6. package/lib/commands/access/remove.d.ts +12 -0
  7. package/lib/commands/access/remove.js +25 -0
  8. package/lib/commands/access/update.d.ts +14 -0
  9. package/lib/commands/access/update.js +39 -0
  10. package/lib/commands/addons/attach.d.ts +16 -0
  11. package/lib/commands/addons/attach.js +51 -0
  12. package/lib/commands/addons/create.d.ts +19 -0
  13. package/lib/commands/addons/create.js +84 -0
  14. package/lib/commands/addons/destroy.d.ts +19 -0
  15. package/lib/commands/addons/destroy.js +61 -0
  16. package/lib/commands/addons/detach.d.ts +13 -0
  17. package/lib/commands/addons/detach.js +31 -0
  18. package/lib/commands/addons/docs.d.ts +14 -0
  19. package/lib/commands/addons/docs.js +36 -0
  20. package/lib/commands/addons/index.d.ts +16 -0
  21. package/lib/commands/addons/index.js +246 -0
  22. package/lib/commands/addons/info.d.ts +14 -0
  23. package/lib/commands/addons/info.js +44 -0
  24. package/lib/commands/addons/open.d.ts +75 -0
  25. package/lib/commands/addons/open.js +87 -0
  26. package/lib/commands/addons/plans.d.ts +12 -0
  27. package/lib/commands/addons/plans.js +47 -0
  28. package/lib/commands/addons/rename.d.ts +10 -0
  29. package/lib/commands/addons/rename.js +20 -0
  30. package/lib/commands/addons/services.d.ts +9 -0
  31. package/lib/commands/addons/services.js +34 -0
  32. package/lib/commands/addons/upgrade.d.ts +28 -0
  33. package/lib/commands/addons/upgrade.js +145 -0
  34. package/lib/commands/addons/wait.d.ts +14 -0
  35. package/lib/commands/addons/wait.js +70 -0
  36. package/lib/commands/apps/create.d.ts +2 -2
  37. package/lib/commands/apps/create.js +13 -6
  38. package/lib/commands/apps/destroy.d.ts +2 -1
  39. package/lib/commands/apps/destroy.js +4 -3
  40. package/lib/commands/apps/errors.d.ts +1 -0
  41. package/lib/commands/apps/errors.js +1 -0
  42. package/lib/commands/apps/favorites/add.d.ts +1 -0
  43. package/lib/commands/apps/favorites/add.js +1 -0
  44. package/lib/commands/apps/favorites/remove.d.ts +1 -0
  45. package/lib/commands/apps/favorites/remove.js +1 -0
  46. package/lib/commands/apps/index.d.ts +1 -1
  47. package/lib/commands/apps/index.js +1 -1
  48. package/lib/commands/apps/info.d.ts +2 -1
  49. package/lib/commands/apps/info.js +3 -4
  50. package/lib/commands/apps/join.d.ts +11 -0
  51. package/lib/commands/apps/join.js +25 -0
  52. package/lib/commands/apps/leave.d.ts +12 -0
  53. package/lib/commands/apps/leave.js +25 -0
  54. package/lib/commands/apps/lock.d.ts +11 -0
  55. package/lib/commands/apps/lock.js +30 -0
  56. package/lib/commands/apps/open.d.ts +2 -1
  57. package/lib/commands/apps/open.js +2 -1
  58. package/lib/commands/apps/rename.d.ts +2 -1
  59. package/lib/commands/apps/rename.js +2 -1
  60. package/lib/commands/apps/stacks/index.d.ts +2 -1
  61. package/lib/commands/apps/stacks/index.js +2 -1
  62. package/lib/commands/apps/stacks/set.d.ts +1 -1
  63. package/lib/commands/apps/stacks/set.js +1 -1
  64. package/lib/commands/apps/transfer.d.ts +17 -0
  65. package/lib/commands/apps/transfer.js +91 -0
  66. package/lib/commands/apps/unlock.d.ts +11 -0
  67. package/lib/commands/apps/unlock.js +30 -0
  68. package/lib/commands/auth/token.js +2 -1
  69. package/lib/commands/authorizations/create.js +5 -1
  70. package/lib/commands/authorizations/info.js +5 -1
  71. package/lib/commands/authorizations/revoke.js +5 -1
  72. package/lib/commands/authorizations/rotate.js +5 -1
  73. package/lib/commands/authorizations/update.js +5 -1
  74. package/lib/commands/autocomplete/doctor.js +2 -2
  75. package/lib/commands/autocomplete/options.js +2 -2
  76. package/lib/commands/certs/add.d.ts +16 -0
  77. package/lib/commands/certs/add.js +98 -0
  78. package/lib/commands/certs/auto/disable.d.ts +11 -0
  79. package/lib/commands/certs/auto/disable.js +34 -0
  80. package/lib/commands/certs/auto/enable.d.ts +11 -0
  81. package/lib/commands/certs/auto/enable.js +51 -0
  82. package/lib/commands/certs/auto/index.d.ts +12 -0
  83. package/lib/commands/certs/auto/index.js +94 -0
  84. package/lib/commands/certs/auto/refresh.d.ts +10 -0
  85. package/lib/commands/certs/auto/refresh.js +19 -0
  86. package/lib/commands/certs/generate.d.ts +26 -0
  87. package/lib/commands/certs/generate.js +111 -0
  88. package/lib/commands/certs/index.d.ts +10 -0
  89. package/lib/commands/certs/index.js +26 -0
  90. package/lib/commands/certs/info.d.ts +13 -0
  91. package/lib/commands/certs/info.js +43 -0
  92. package/lib/commands/certs/remove.d.ts +13 -0
  93. package/lib/commands/certs/remove.js +32 -0
  94. package/lib/commands/certs/update.d.ts +18 -0
  95. package/lib/commands/certs/update.js +54 -0
  96. package/lib/commands/ci/config/get.d.ts +1 -0
  97. package/lib/commands/ci/config/get.js +1 -0
  98. package/lib/commands/ci/config/set.d.ts +1 -0
  99. package/lib/commands/ci/config/set.js +1 -0
  100. package/lib/commands/ci/config/unset.d.ts +1 -0
  101. package/lib/commands/ci/config/unset.js +1 -0
  102. package/lib/commands/ci/index.d.ts +1 -0
  103. package/lib/commands/ci/index.js +1 -0
  104. package/lib/commands/ci/info.d.ts +1 -0
  105. package/lib/commands/ci/info.js +1 -0
  106. package/lib/commands/ci/last.d.ts +1 -0
  107. package/lib/commands/ci/last.js +1 -0
  108. package/lib/commands/ci/open.d.ts +1 -0
  109. package/lib/commands/ci/open.js +1 -0
  110. package/lib/commands/ci/rerun.d.ts +1 -0
  111. package/lib/commands/ci/rerun.js +1 -0
  112. package/lib/commands/config/set.d.ts +2 -1
  113. package/lib/commands/config/set.js +2 -1
  114. package/lib/commands/container/index.d.ts +6 -0
  115. package/lib/commands/container/index.js +13 -0
  116. package/lib/commands/container/login.d.ts +9 -0
  117. package/lib/commands/container/login.js +57 -0
  118. package/lib/commands/container/logout.d.ts +9 -0
  119. package/lib/commands/container/logout.js +37 -0
  120. package/lib/commands/container/pull.d.ts +14 -0
  121. package/lib/commands/container/pull.js +40 -0
  122. package/lib/commands/container/push.d.ts +16 -0
  123. package/lib/commands/container/push.js +101 -0
  124. package/lib/commands/container/release.d.ts +14 -0
  125. package/lib/commands/container/release.js +89 -0
  126. package/lib/commands/container/rm.d.ts +13 -0
  127. package/lib/commands/container/rm.js +36 -0
  128. package/lib/commands/container/run.d.ts +15 -0
  129. package/lib/commands/container/run.js +63 -0
  130. package/lib/commands/dashboard.d.ts +7 -0
  131. package/lib/commands/dashboard.js +164 -0
  132. package/lib/commands/domains/index.d.ts +2 -2
  133. package/lib/commands/drains/add.d.ts +1 -0
  134. package/lib/commands/drains/add.js +1 -0
  135. package/lib/commands/drains/index.d.ts +1 -0
  136. package/lib/commands/drains/index.js +1 -0
  137. package/lib/commands/drains/remove.d.ts +1 -0
  138. package/lib/commands/drains/remove.js +1 -0
  139. package/lib/commands/features/disable.d.ts +12 -0
  140. package/lib/commands/features/disable.js +30 -0
  141. package/lib/commands/features/enable.d.ts +12 -0
  142. package/lib/commands/features/enable.js +29 -0
  143. package/lib/commands/features/index.d.ts +10 -0
  144. package/lib/commands/features/index.js +37 -0
  145. package/lib/commands/features/info.d.ts +13 -0
  146. package/lib/commands/features/info.js +33 -0
  147. package/lib/commands/keys/add.d.ts +14 -0
  148. package/lib/commands/keys/add.js +101 -0
  149. package/lib/commands/keys/clear.d.ts +5 -0
  150. package/lib/commands/keys/clear.js +17 -0
  151. package/lib/commands/keys/index.d.ts +9 -0
  152. package/lib/commands/keys/index.js +36 -0
  153. package/lib/commands/keys/remove.d.ts +9 -0
  154. package/lib/commands/keys/remove.js +29 -0
  155. package/lib/commands/labs/enable.d.ts +13 -0
  156. package/lib/commands/labs/enable.js +47 -0
  157. package/lib/commands/labs/index.d.ts +11 -0
  158. package/lib/commands/labs/index.js +71 -0
  159. package/lib/commands/labs/info.d.ts +14 -0
  160. package/lib/commands/labs/info.js +49 -0
  161. package/lib/commands/local/index.d.ts +1 -1
  162. package/lib/commands/local/index.js +8 -3
  163. package/lib/commands/local/run.d.ts +1 -1
  164. package/lib/commands/local/run.js +8 -3
  165. package/lib/commands/maintenance/index.d.ts +10 -0
  166. package/lib/commands/maintenance/index.js +19 -0
  167. package/lib/commands/maintenance/off.d.ts +10 -0
  168. package/lib/commands/maintenance/off.js +20 -0
  169. package/lib/commands/maintenance/on.d.ts +10 -0
  170. package/lib/commands/maintenance/on.js +20 -0
  171. package/lib/commands/members/add.d.ts +13 -0
  172. package/lib/commands/members/add.js +33 -0
  173. package/lib/commands/members/index.d.ts +12 -0
  174. package/lib/commands/members/index.js +76 -0
  175. package/lib/commands/members/remove.d.ts +10 -0
  176. package/lib/commands/members/remove.js +58 -0
  177. package/lib/commands/members/set.d.ts +11 -0
  178. package/lib/commands/members/set.js +21 -0
  179. package/lib/commands/notifications/index.d.ts +13 -0
  180. package/lib/commands/notifications/index.js +62 -0
  181. package/lib/commands/orgs/index.d.ts +11 -0
  182. package/lib/commands/orgs/index.js +27 -0
  183. package/lib/commands/orgs/open.d.ts +10 -0
  184. package/lib/commands/orgs/open.js +24 -0
  185. package/lib/commands/pg/backups/cancel.d.ts +15 -0
  186. package/lib/commands/pg/backups/cancel.js +49 -0
  187. package/lib/commands/pg/backups/capture.d.ts +15 -0
  188. package/lib/commands/pg/backups/capture.js +65 -0
  189. package/lib/commands/pg/backups/delete.d.ts +15 -0
  190. package/lib/commands/pg/backups/delete.js +38 -0
  191. package/lib/commands/pg/backups/download.d.ts +14 -0
  192. package/lib/commands/pg/backups/download.js +58 -0
  193. package/lib/commands/pg/backups/index.d.ts +20 -0
  194. package/lib/commands/pg/backups/index.js +129 -0
  195. package/lib/commands/pg/backups/info.d.ts +17 -0
  196. package/lib/commands/pg/backups/info.js +92 -0
  197. package/lib/commands/pg/backups/restore.d.ts +19 -0
  198. package/lib/commands/pg/backups/restore.js +107 -0
  199. package/lib/commands/pg/backups/schedule.d.ts +21 -0
  200. package/lib/commands/pg/backups/schedule.js +82 -0
  201. package/lib/commands/pg/backups/schedules.d.ts +10 -0
  202. package/lib/commands/pg/backups/schedules.js +31 -0
  203. package/lib/commands/pg/backups/unschedule.d.ts +13 -0
  204. package/lib/commands/pg/backups/unschedule.js +44 -0
  205. package/lib/commands/pg/backups/url.d.ts +13 -0
  206. package/lib/commands/pg/backups/url.js +41 -0
  207. package/lib/commands/pg/bloat.d.ts +13 -0
  208. package/lib/commands/pg/bloat.js +87 -0
  209. package/lib/commands/pg/blocking.d.ts +13 -0
  210. package/lib/commands/pg/blocking.js +42 -0
  211. package/lib/commands/pg/connection-pooling/attach.d.ts +15 -0
  212. package/lib/commands/pg/connection-pooling/attach.js +41 -0
  213. package/lib/commands/pg/copy.d.ts +18 -0
  214. package/lib/commands/pg/copy.js +86 -0
  215. package/lib/commands/pg/credentials/create.d.ts +14 -0
  216. package/lib/commands/pg/credentials/create.js +40 -0
  217. package/lib/commands/pg/credentials/destroy.d.ts +16 -0
  218. package/lib/commands/pg/credentials/destroy.js +48 -0
  219. package/lib/commands/pg/credentials/repair-default.d.ts +15 -0
  220. package/lib/commands/pg/credentials/repair-default.js +39 -0
  221. package/lib/commands/pg/credentials/rotate.d.ts +16 -0
  222. package/lib/commands/pg/credentials/rotate.js +82 -0
  223. package/lib/commands/pg/credentials/url.d.ts +14 -0
  224. package/lib/commands/pg/credentials/url.js +64 -0
  225. package/lib/commands/pg/credentials.d.ts +16 -0
  226. package/lib/commands/pg/credentials.js +61 -0
  227. package/lib/commands/pg/diagnose.d.ts +18 -0
  228. package/lib/commands/pg/diagnose.js +109 -0
  229. package/lib/commands/pg/info.d.ts +14 -0
  230. package/lib/commands/pg/info.js +92 -0
  231. package/lib/commands/pg/kill.d.ts +15 -0
  232. package/lib/commands/pg/kill.js +32 -0
  233. package/lib/commands/pg/killall.d.ts +13 -0
  234. package/lib/commands/pg/killall.js +26 -0
  235. package/lib/commands/pg/links/create.d.ts +15 -0
  236. package/lib/commands/pg/links/create.js +58 -0
  237. package/lib/commands/pg/links/destroy.d.ts +16 -0
  238. package/lib/commands/pg/links/destroy.js +42 -0
  239. package/lib/commands/pg/links/index.d.ts +13 -0
  240. package/lib/commands/pg/links/index.js +59 -0
  241. package/lib/commands/pg/locks.d.ts +15 -0
  242. package/lib/commands/pg/locks.js +53 -0
  243. package/lib/commands/pg/maintenance/index.d.ts +13 -0
  244. package/lib/commands/pg/maintenance/index.js +29 -0
  245. package/lib/commands/pg/maintenance/run.d.ts +14 -0
  246. package/lib/commands/pg/maintenance/run.js +37 -0
  247. package/lib/commands/pg/maintenance/window.d.ts +15 -0
  248. package/lib/commands/pg/maintenance/window.js +41 -0
  249. package/lib/commands/pg/outliers.d.ts +19 -0
  250. package/lib/commands/pg/outliers.js +97 -0
  251. package/lib/commands/pg/promote.d.ts +14 -0
  252. package/lib/commands/pg/promote.js +169 -0
  253. package/lib/commands/pg/ps.d.ts +14 -0
  254. package/lib/commands/pg/ps.js +52 -0
  255. package/lib/commands/pg/psql.d.ts +16 -0
  256. package/lib/commands/pg/psql.js +49 -0
  257. package/lib/commands/pg/pull.d.ts +18 -0
  258. package/lib/commands/pg/pull.js +87 -0
  259. package/lib/commands/pg/push.d.ts +18 -0
  260. package/lib/commands/pg/push.js +84 -0
  261. package/lib/commands/pg/reset.d.ts +15 -0
  262. package/lib/commands/pg/reset.js +44 -0
  263. package/lib/commands/pg/settings/auto-explain/log-analyze.d.ts +13 -0
  264. package/lib/commands/pg/settings/auto-explain/log-analyze.js +32 -0
  265. package/lib/commands/pg/settings/auto-explain/log-buffers.d.ts +13 -0
  266. package/lib/commands/pg/settings/auto-explain/log-buffers.js +30 -0
  267. package/lib/commands/pg/settings/auto-explain/log-min-duration.d.ts +16 -0
  268. package/lib/commands/pg/settings/auto-explain/log-min-duration.js +33 -0
  269. package/lib/commands/pg/settings/auto-explain/log-nested-statements.d.ts +12 -0
  270. package/lib/commands/pg/settings/auto-explain/log-nested-statements.js +25 -0
  271. package/lib/commands/pg/settings/auto-explain/log-triggers.d.ts +13 -0
  272. package/lib/commands/pg/settings/auto-explain/log-triggers.js +30 -0
  273. package/lib/commands/pg/settings/auto-explain/log-verbose.d.ts +17 -0
  274. package/lib/commands/pg/settings/auto-explain/log-verbose.js +33 -0
  275. package/lib/commands/pg/settings/auto-explain.d.ts +18 -0
  276. package/lib/commands/pg/settings/auto-explain.js +38 -0
  277. package/lib/commands/pg/settings/index.d.ts +13 -0
  278. package/lib/commands/pg/settings/index.js +34 -0
  279. package/lib/commands/pg/settings/log-connections.d.ts +17 -0
  280. package/lib/commands/pg/settings/log-connections.js +34 -0
  281. package/lib/commands/pg/settings/log-lock-waits.d.ts +13 -0
  282. package/lib/commands/pg/settings/log-lock-waits.js +31 -0
  283. package/lib/commands/pg/settings/log-min-duration-statement.d.ts +15 -0
  284. package/lib/commands/pg/settings/log-min-duration-statement.js +33 -0
  285. package/lib/commands/pg/settings/log-statement.d.ts +12 -0
  286. package/lib/commands/pg/settings/log-statement.js +30 -0
  287. package/lib/commands/pg/settings/track-functions.d.ts +12 -0
  288. package/lib/commands/pg/settings/track-functions.js +29 -0
  289. package/lib/commands/pg/unfollow.d.ts +14 -0
  290. package/lib/commands/pg/unfollow.js +40 -0
  291. package/lib/commands/pg/upgrade.d.ts +15 -0
  292. package/lib/commands/pg/upgrade.js +58 -0
  293. package/lib/commands/pg/vacuum-stats.d.ts +13 -0
  294. package/lib/commands/pg/vacuum-stats.js +65 -0
  295. package/lib/commands/pg/wait.d.ts +15 -0
  296. package/lib/commands/pg/wait.js +79 -0
  297. package/lib/commands/pipelines/connect.js +1 -1
  298. package/lib/commands/pipelines/diff.js +1 -1
  299. package/lib/commands/ps/index.d.ts +15 -0
  300. package/lib/commands/ps/index.js +195 -0
  301. package/lib/commands/ps/restart.d.ts +17 -0
  302. package/lib/commands/ps/restart.js +38 -0
  303. package/lib/commands/ps/scale.d.ts +13 -0
  304. package/lib/commands/ps/scale.js +108 -0
  305. package/lib/commands/ps/stop.d.ts +17 -0
  306. package/lib/commands/ps/stop.js +33 -0
  307. package/lib/commands/ps/type.d.ts +12 -0
  308. package/lib/commands/ps/type.js +163 -0
  309. package/lib/commands/redis/cli.d.ts +15 -0
  310. package/lib/commands/redis/cli.js +204 -0
  311. package/lib/commands/redis/credentials.d.ts +14 -0
  312. package/lib/commands/redis/credentials.js +32 -0
  313. package/lib/commands/redis/info.d.ts +15 -0
  314. package/lib/commands/redis/info.js +25 -0
  315. package/lib/commands/redis/keyspace-notifications.d.ts +14 -0
  316. package/lib/commands/redis/keyspace-notifications.js +47 -0
  317. package/lib/commands/redis/maintenance.d.ts +16 -0
  318. package/lib/commands/redis/maintenance.js +63 -0
  319. package/lib/commands/redis/maxmemory.d.ts +14 -0
  320. package/lib/commands/redis/maxmemory.js +40 -0
  321. package/lib/commands/redis/promote.d.ts +13 -0
  322. package/lib/commands/redis/promote.js +39 -0
  323. package/lib/commands/redis/stats-reset.d.ts +14 -0
  324. package/lib/commands/redis/stats-reset.js +36 -0
  325. package/lib/commands/redis/timeout.d.ts +14 -0
  326. package/lib/commands/redis/timeout.js +35 -0
  327. package/lib/commands/redis/upgrade.d.ts +15 -0
  328. package/lib/commands/redis/upgrade.js +37 -0
  329. package/lib/commands/redis/wait.d.ts +14 -0
  330. package/lib/commands/redis/wait.js +60 -0
  331. package/lib/commands/releases/index.d.ts +14 -0
  332. package/lib/commands/releases/index.js +124 -0
  333. package/lib/commands/releases/info.d.ts +15 -0
  334. package/lib/commands/releases/info.js +56 -0
  335. package/lib/commands/releases/output.d.ts +13 -0
  336. package/lib/commands/releases/output.js +37 -0
  337. package/lib/commands/releases/rollback.d.ts +14 -0
  338. package/lib/commands/releases/rollback.js +48 -0
  339. package/lib/commands/run/detached.d.ts +7 -8
  340. package/lib/commands/run/detached.js +16 -20
  341. package/lib/commands/run/index.d.ts +10 -11
  342. package/lib/commands/run/index.js +16 -17
  343. package/lib/commands/run/inside.d.ts +5 -7
  344. package/lib/commands/run/inside.js +10 -14
  345. package/lib/commands/spaces/create.d.ts +22 -0
  346. package/lib/commands/spaces/create.js +73 -0
  347. package/lib/commands/spaces/destroy.d.ts +14 -0
  348. package/lib/commands/spaces/destroy.js +49 -0
  349. package/lib/commands/spaces/drains/get.d.ts +12 -0
  350. package/lib/commands/spaces/drains/get.js +27 -0
  351. package/lib/commands/spaces/drains/set.d.ts +14 -0
  352. package/lib/commands/spaces/drains/set.js +29 -0
  353. package/lib/commands/spaces/hosts.d.ts +14 -0
  354. package/lib/commands/spaces/hosts.js +37 -0
  355. package/lib/commands/spaces/index.d.ts +16 -0
  356. package/lib/commands/spaces/index.js +55 -0
  357. package/lib/commands/spaces/info.d.ts +14 -0
  358. package/lib/commands/spaces/info.js +47 -0
  359. package/lib/commands/spaces/outbound-rules/add.d.ts +15 -0
  360. package/lib/commands/spaces/outbound-rules/add.js +81 -0
  361. package/lib/commands/spaces/outbound-rules/index.d.ts +15 -0
  362. package/lib/commands/spaces/outbound-rules/index.js +49 -0
  363. package/lib/commands/spaces/outbound-rules/remove.d.ts +17 -0
  364. package/lib/commands/spaces/outbound-rules/remove.js +53 -0
  365. package/lib/commands/spaces/peerings/accept.d.ts +15 -0
  366. package/lib/commands/spaces/peerings/accept.js +36 -0
  367. package/lib/commands/spaces/peerings/destroy.d.ts +15 -0
  368. package/lib/commands/spaces/peerings/destroy.js +45 -0
  369. package/lib/commands/spaces/peerings/index.d.ts +13 -0
  370. package/lib/commands/spaces/peerings/index.js +33 -0
  371. package/lib/commands/spaces/peerings/info.d.ts +15 -0
  372. package/lib/commands/spaces/peerings/info.js +59 -0
  373. package/lib/commands/spaces/ps.d.ts +15 -0
  374. package/lib/commands/spaces/ps.js +82 -0
  375. package/lib/commands/spaces/rename.d.ts +11 -0
  376. package/lib/commands/spaces/rename.js +26 -0
  377. package/lib/commands/spaces/topology.d.ts +32 -0
  378. package/lib/commands/spaces/topology.js +89 -0
  379. package/lib/commands/spaces/transfer.d.ts +11 -0
  380. package/lib/commands/spaces/transfer.js +35 -0
  381. package/lib/commands/spaces/trusted-ips/add.d.ts +16 -0
  382. package/lib/commands/spaces/trusted-ips/add.js +43 -0
  383. package/lib/commands/spaces/trusted-ips/index.d.ts +15 -0
  384. package/lib/commands/spaces/trusted-ips/index.js +52 -0
  385. package/lib/commands/spaces/trusted-ips/remove.d.ts +15 -0
  386. package/lib/commands/spaces/trusted-ips/remove.js +44 -0
  387. package/lib/commands/spaces/vpn/config.d.ts +14 -0
  388. package/lib/commands/spaces/vpn/config.js +54 -0
  389. package/lib/commands/spaces/vpn/connect.d.ts +15 -0
  390. package/lib/commands/spaces/vpn/connect.js +45 -0
  391. package/lib/commands/spaces/vpn/connections.d.ts +17 -0
  392. package/lib/commands/spaces/vpn/connections.js +57 -0
  393. package/lib/commands/spaces/vpn/destroy.d.ts +14 -0
  394. package/lib/commands/spaces/vpn/destroy.js +35 -0
  395. package/lib/commands/spaces/vpn/info.d.ts +16 -0
  396. package/lib/commands/spaces/vpn/info.js +82 -0
  397. package/lib/commands/spaces/vpn/update.d.ts +14 -0
  398. package/lib/commands/spaces/vpn/update.js +36 -0
  399. package/lib/commands/spaces/vpn/wait.d.ts +13 -0
  400. package/lib/commands/spaces/vpn/wait.js +53 -0
  401. package/lib/commands/spaces/wait.d.ts +17 -0
  402. package/lib/commands/spaces/wait.js +89 -0
  403. package/lib/commands/status.js +4 -4
  404. package/lib/commands/teams/index.d.ts +9 -0
  405. package/lib/commands/teams/index.js +29 -0
  406. package/lib/global_telemetry.js +10 -4
  407. package/lib/hooks/postrun/performance_analytics.js +5 -4
  408. package/lib/hooks/prerun/analytics.js +3 -0
  409. package/lib/lib/addons/addons_wait.d.ts +78 -0
  410. package/lib/lib/addons/addons_wait.js +56 -0
  411. package/lib/lib/addons/create_addon.d.ts +7 -0
  412. package/lib/lib/addons/create_addon.js +59 -0
  413. package/lib/lib/addons/destroy_addon.d.ts +3 -0
  414. package/lib/lib/addons/destroy_addon.js +48 -0
  415. package/lib/lib/addons/resolve.d.ts +38 -0
  416. package/lib/lib/addons/resolve.js +179 -0
  417. package/lib/lib/addons/util.d.ts +9 -0
  418. package/lib/lib/addons/util.js +72 -0
  419. package/lib/lib/apps/app-transfer.d.ts +10 -0
  420. package/lib/lib/apps/app-transfer.js +35 -0
  421. package/lib/lib/autocomplete/completions.d.ts +4 -0
  422. package/lib/lib/autocomplete/completions.js +6 -1
  423. package/lib/lib/certs/certificate_details.d.ts +2 -0
  424. package/lib/lib/certs/certificate_details.js +37 -0
  425. package/lib/lib/certs/display_table.d.ts +2 -0
  426. package/lib/lib/certs/display_table.js +51 -0
  427. package/lib/lib/certs/domains.d.ts +3 -0
  428. package/lib/lib/certs/domains.js +45 -0
  429. package/lib/lib/certs/flags.d.ts +7 -0
  430. package/lib/lib/certs/flags.js +42 -0
  431. package/lib/lib/certs/format_date.d.ts +1 -0
  432. package/lib/lib/certs/format_date.js +11 -0
  433. package/lib/lib/certs/get_cert_and_key.d.ts +9 -0
  434. package/lib/lib/certs/get_cert_and_key.js +11 -0
  435. package/lib/lib/ci/interfaces/kolkrabbi.d.ts +1 -1
  436. package/lib/lib/ci/source.js +3 -3
  437. package/lib/lib/ci/test-run.js +2 -2
  438. package/lib/lib/config/quote.js +1 -1
  439. package/lib/lib/confirmCommand.d.ts +1 -0
  440. package/lib/lib/{apps/confirm-app.js → confirmCommand.js} +2 -2
  441. package/lib/lib/container/debug.d.ts +2 -0
  442. package/lib/lib/container/debug.js +5 -0
  443. package/lib/lib/container/docker_helper.d.ts +24 -0
  444. package/lib/lib/container/docker_helper.js +168 -0
  445. package/lib/lib/container/streamer.d.ts +1 -0
  446. package/lib/lib/container/streamer.js +31 -0
  447. package/lib/lib/domains/domains.d.ts +6 -0
  448. package/lib/lib/domains/domains.js +104 -0
  449. package/lib/lib/local/run-foreman.d.ts +1 -0
  450. package/lib/lib/local/run-foreman.js +229 -1
  451. package/lib/lib/members/util.d.ts +3 -0
  452. package/lib/lib/members/util.js +25 -0
  453. package/lib/lib/members/utils.d.ts +2 -0
  454. package/lib/lib/members/utils.js +14 -0
  455. package/lib/lib/notify.d.ts +1 -0
  456. package/lib/lib/notify.js +23 -0
  457. package/lib/lib/orgs/utils.d.ts +5 -0
  458. package/lib/lib/orgs/utils.js +24 -0
  459. package/lib/lib/pg/backups.d.ts +17 -0
  460. package/lib/lib/pg/backups.js +164 -0
  461. package/lib/lib/pg/bastion.d.ts +29 -0
  462. package/lib/lib/pg/bastion.js +121 -0
  463. package/lib/lib/pg/config.d.ts +2 -0
  464. package/lib/lib/pg/config.js +13 -0
  465. package/lib/lib/pg/download.d.ts +5 -0
  466. package/lib/lib/pg/download.js +34 -0
  467. package/lib/lib/pg/fetcher.d.ts +39 -0
  468. package/lib/lib/pg/fetcher.js +137 -0
  469. package/lib/lib/pg/host.d.ts +1 -0
  470. package/lib/lib/pg/host.js +7 -0
  471. package/lib/lib/pg/psql.d.ts +48 -0
  472. package/lib/lib/pg/psql.js +252 -0
  473. package/lib/lib/pg/push_pull.d.ts +13 -0
  474. package/lib/lib/pg/push_pull.js +118 -0
  475. package/lib/lib/pg/setter.d.ts +16 -0
  476. package/lib/lib/pg/setter.js +65 -0
  477. package/lib/lib/pg/types.d.ts +230 -0
  478. package/lib/lib/pg/types.js +2 -0
  479. package/lib/lib/pg/util.d.ts +36 -0
  480. package/lib/lib/pg/util.js +183 -0
  481. package/lib/lib/redis/api.d.ts +65 -0
  482. package/lib/lib/redis/api.js +122 -0
  483. package/lib/lib/releases/output.d.ts +1 -0
  484. package/lib/lib/releases/output.js +14 -0
  485. package/lib/lib/releases/releases.d.ts +6 -0
  486. package/lib/lib/releases/releases.js +32 -0
  487. package/lib/lib/releases/status_helper.d.ts +5 -0
  488. package/lib/lib/releases/status_helper.js +25 -0
  489. package/lib/lib/run/dyno.js +2 -2
  490. package/lib/lib/run/log-displayer.d.ts +1 -1
  491. package/lib/lib/spaces/format.d.ts +4 -0
  492. package/lib/lib/spaces/format.js +60 -0
  493. package/lib/lib/spaces/hosts.d.ts +9 -0
  494. package/lib/lib/spaces/hosts.js +34 -0
  495. package/lib/lib/spaces/outbound-rules.d.ts +4 -0
  496. package/lib/lib/spaces/outbound-rules.js +78 -0
  497. package/lib/lib/spaces/parsers.d.ts +8 -0
  498. package/lib/lib/spaces/parsers.js +17 -0
  499. package/lib/lib/spaces/peering.d.ts +4 -0
  500. package/lib/lib/spaces/peering.js +53 -0
  501. package/lib/lib/spaces/spaces.d.ts +4 -0
  502. package/lib/lib/spaces/spaces.js +37 -0
  503. package/lib/lib/spaces/vpn-connections.d.ts +2 -0
  504. package/lib/lib/spaces/vpn-connections.js +22 -0
  505. package/lib/lib/teamUtils.d.ts +3 -0
  506. package/lib/lib/teamUtils.js +18 -0
  507. package/lib/lib/time.d.ts +2 -0
  508. package/lib/lib/time.js +29 -0
  509. package/lib/lib/types/app_errors.d.ts +6 -0
  510. package/lib/lib/types/app_errors.js +2 -0
  511. package/lib/lib/types/domain.d.ts +61 -0
  512. package/lib/lib/types/domain.js +5 -0
  513. package/lib/lib/types/notifications.d.ts +20 -0
  514. package/lib/lib/types/notifications.js +2 -0
  515. package/lib/lib/utils/multisort.d.ts +32 -0
  516. package/lib/lib/utils/multisort.js +66 -0
  517. package/lib/lib/utils/uuid-validate.d.ts +1 -0
  518. package/lib/lib/utils/uuid-validate.js +7 -0
  519. package/lib/user-config.js +2 -2
  520. package/oclif.manifest.json +12776 -3097
  521. package/package.json +108 -61
  522. package/lib/lib/apps/confirm-app.d.ts +0 -1
@@ -0,0 +1,18 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ import { ConnectionDetails } from '../../lib/pg/util';
3
+ export default class Push extends Command {
4
+ static topic: string;
5
+ static description: string;
6
+ static examples: string[];
7
+ static flags: {
8
+ 'exclude-table-data': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ };
12
+ static args: {
13
+ source: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
14
+ target: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
15
+ };
16
+ run(): Promise<void>;
17
+ protected push(sourceIn: ConnectionDetails, targetIn: ConnectionDetails, exclusions: string[]): Promise<void>;
18
+ }
@@ -0,0 +1,84 @@
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 fetcher_1 = require("../../lib/pg/fetcher");
8
+ const util_1 = require("../../lib/pg/util");
9
+ const push_pull_1 = require("../../lib/pg/push_pull");
10
+ const node_child_process_1 = require("node:child_process");
11
+ const env = process.env;
12
+ class Push extends command_1.Command {
13
+ async run() {
14
+ const { flags, args } = await this.parse(Push);
15
+ const { app, 'exclude-table-data': excludeTableData } = flags;
16
+ const exclusions = (0, push_pull_1.parseExclusions)(excludeTableData);
17
+ const source = (0, util_1.parsePostgresConnectionString)(args.source);
18
+ const target = await (0, fetcher_1.database)(this.heroku, app, args.target);
19
+ core_1.ux.log(`Pushing ${color_1.default.cyan(args.source)} to ${color_1.default.addon(target.attachment.addon.name)}`);
20
+ await this.push(source, target, exclusions);
21
+ core_1.ux.log('Pushing complete.');
22
+ }
23
+ async push(sourceIn, targetIn, exclusions) {
24
+ await (0, push_pull_1.prepare)(targetIn);
25
+ const source = await (0, push_pull_1.maybeTunnel)(sourceIn);
26
+ const target = await (0, push_pull_1.maybeTunnel)(targetIn);
27
+ const exclude = exclusions.map(function (e) {
28
+ return '--exclude-table-data=' + e;
29
+ }).join(' ');
30
+ const dumpFlags = ['--verbose', '-F', 'c', '-Z', '0', '-N', '_heroku', ...(0, push_pull_1.connArgs)(source, true)];
31
+ if (exclude !== '')
32
+ dumpFlags.push(exclude);
33
+ const dumpOptions = {
34
+ env: Object.assign({ PGSSLMODE: 'prefer' }, env),
35
+ stdio: ['pipe', 'pipe', 2],
36
+ shell: true,
37
+ };
38
+ if (source.password)
39
+ dumpOptions.env.PGPASSWORD = source.password;
40
+ const restoreFlags = ['--verbose', '-F', 'c', '--no-acl', '--no-owner', ...(0, push_pull_1.connArgs)(target)];
41
+ const restoreOptions = {
42
+ env: Object.assign({}, env),
43
+ stdio: ['pipe', 'pipe', 2],
44
+ shell: true,
45
+ };
46
+ if (target.password)
47
+ restoreOptions.env.PGPASSWORD = target.password;
48
+ const pgDump = (0, node_child_process_1.spawn)('pg_dump', dumpFlags, dumpOptions);
49
+ const pgRestore = (0, node_child_process_1.spawn)('pg_restore', restoreFlags, restoreOptions);
50
+ await (0, push_pull_1.spawnPipe)(pgDump, pgRestore);
51
+ if (source._tunnel)
52
+ source._tunnel.close();
53
+ if (target._tunnel)
54
+ target._tunnel.close();
55
+ await (0, push_pull_1.verifyExtensionsMatch)(sourceIn, targetIn);
56
+ }
57
+ }
58
+ exports.default = Push;
59
+ Push.topic = 'pg';
60
+ Push.description = (0, tsheredoc_1.default) `
61
+ push local or remote into Heroku database
62
+ Push from SOURCE into TARGET. TARGET must be empty.
63
+
64
+ To empty a Heroku database for push run ${color_1.default.cmd('heroku pg:reset')}
65
+
66
+ SOURCE must be either the name of a database existing on your localhost or the
67
+ fully qualified URL of a remote database.
68
+ `;
69
+ Push.examples = [(0, tsheredoc_1.default) `
70
+ # push mylocaldb into a Heroku DB named postgresql-swimmingly-100
71
+ $ heroku pg:push mylocaldb postgresql-swimmingly-100 --app sushi
72
+ `, (0, tsheredoc_1.default) `
73
+ # push remote DB at postgres://myhost/mydb into a Heroku DB named postgresql-swimmingly-100
74
+ $ heroku pg:push postgres://myhost/mydb postgresql-swimmingly-100 --app sushi
75
+ `];
76
+ Push.flags = {
77
+ 'exclude-table-data': command_1.flags.string({ description: 'tables for which data should be excluded (use \';\' to split multiple names)', hasValue: true }),
78
+ app: command_1.flags.app({ required: true }),
79
+ remote: command_1.flags.remote(),
80
+ };
81
+ Push.args = {
82
+ source: core_1.Args.string({ required: true }),
83
+ target: core_1.Args.string({ required: true }),
84
+ };
@@ -0,0 +1,15 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Reset extends Command {
3
+ static topic: string;
4
+ static description: string;
5
+ static flags: {
6
+ extensions: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
7
+ confirm: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ };
11
+ static args: {
12
+ database: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
@@ -0,0 +1,44 @@
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 confirmCommand_1 = require("../../lib/confirmCommand");
7
+ const host_1 = require("../../lib/pg/host");
8
+ const fetcher_1 = require("../../lib/pg/fetcher");
9
+ const tsheredoc_1 = require("tsheredoc");
10
+ class Reset extends command_1.Command {
11
+ async run() {
12
+ const { flags, args } = await this.parse(Reset);
13
+ const { app, confirm, extensions } = flags;
14
+ const db = await (0, fetcher_1.getAddon)(this.heroku, app, args.database);
15
+ let extensionsArray;
16
+ if (extensions) {
17
+ extensionsArray = extensions.split(',')
18
+ .map(ext => ext.trim()
19
+ .toLowerCase())
20
+ .sort();
21
+ }
22
+ await (0, confirmCommand_1.default)(app, confirm, (0, tsheredoc_1.default)(`
23
+ Destructive action
24
+ ${color_1.default.addon(db.name)} will lose all of its data
25
+ `));
26
+ core_1.ux.action.start(`Resetting ${color_1.default.addon(db.name)}`);
27
+ await this.heroku.put(`/client/v11/databases/${db.id}/reset`, {
28
+ body: { extensions: extensionsArray }, hostname: (0, host_1.default)(),
29
+ });
30
+ core_1.ux.action.stop();
31
+ }
32
+ }
33
+ exports.default = Reset;
34
+ Reset.topic = 'pg';
35
+ Reset.description = 'delete all data in DATABASE';
36
+ Reset.flags = {
37
+ extensions: command_1.flags.string({ char: 'e', description: 'comma-separated list of extensions to pre-install in the public schema' }),
38
+ confirm: command_1.flags.string({ char: 'c' }),
39
+ app: command_1.flags.app({ required: true }),
40
+ remote: command_1.flags.remote(),
41
+ };
42
+ Reset.args = {
43
+ database: core_1.Args.string(),
44
+ };
@@ -0,0 +1,13 @@
1
+ import { PGSettingsCommand, BooleanAsString } from '../../../../lib/pg/setter';
2
+ import { SettingKey, Setting } from '../../../../lib/pg/types';
3
+ export default class LogAnalyze extends PGSettingsCommand {
4
+ static topic: string;
5
+ static description: string;
6
+ static args: {
7
+ database: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
8
+ value: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
9
+ };
10
+ protected settingKey: SettingKey;
11
+ protected convertValue(val: BooleanAsString): boolean;
12
+ protected explain(setting: Setting<boolean>): "EXPLAIN ANALYZE execution plans will be logged." | "EXPLAIN ANALYZE execution plans will not be logged.";
13
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const tsheredoc_1 = require("tsheredoc");
5
+ const setter_1 = require("../../../../lib/pg/setter");
6
+ class LogAnalyze extends setter_1.PGSettingsCommand {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.settingKey = 'auto_explain.log_analyze';
10
+ }
11
+ convertValue(val) {
12
+ return (0, setter_1.booleanConverter)(val);
13
+ }
14
+ explain(setting) {
15
+ if (setting.value) {
16
+ return 'EXPLAIN ANALYZE execution plans will be logged.';
17
+ }
18
+ return 'EXPLAIN ANALYZE execution plans will not be logged.';
19
+ }
20
+ }
21
+ exports.default = LogAnalyze;
22
+ LogAnalyze.topic = 'pg';
23
+ LogAnalyze.description = (0, tsheredoc_1.default)(`
24
+ Shows actual run times on the execution plan.
25
+ This is equivalent to calling EXPLAIN ANALYZE.
26
+
27
+ WARNING: EXPLAIN ANALYZE will be run on ALL queries, not just logged queries. This can cause significant performance impacts to your database and should be used with caution.
28
+ `);
29
+ LogAnalyze.args = {
30
+ database: core_1.Args.string(),
31
+ value: core_1.Args.string(),
32
+ };
@@ -0,0 +1,13 @@
1
+ import { BooleanAsString, PGSettingsCommand } from '../../../../lib/pg/setter';
2
+ import { Setting, SettingKey } from '../../../../lib/pg/types';
3
+ export default class LogBuffersWaits extends PGSettingsCommand {
4
+ static topic: string;
5
+ static description: string;
6
+ static args: {
7
+ database: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
8
+ value: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
9
+ };
10
+ protected settingKey: SettingKey;
11
+ protected convertValue(val: BooleanAsString): boolean;
12
+ protected explain(setting: Setting<boolean>): "Buffer statistics have been enabled for auto_explain." | "Buffer statistics have been disabled for auto_explain.";
13
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const tsheredoc_1 = require("tsheredoc");
5
+ const setter_1 = require("../../../../lib/pg/setter");
6
+ class LogBuffersWaits extends setter_1.PGSettingsCommand {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.settingKey = 'auto_explain.log_buffers';
10
+ }
11
+ convertValue(val) {
12
+ return (0, setter_1.booleanConverter)(val);
13
+ }
14
+ explain(setting) {
15
+ if (setting.value) {
16
+ return 'Buffer statistics have been enabled for auto_explain.';
17
+ }
18
+ return 'Buffer statistics have been disabled for auto_explain.';
19
+ }
20
+ }
21
+ exports.default = LogBuffersWaits;
22
+ LogBuffersWaits.topic = 'pg';
23
+ LogBuffersWaits.description = (0, tsheredoc_1.default)(`
24
+ Includes buffer usage statistics when execution plans are logged.
25
+ This is equivalent to calling EXPLAIN BUFFERS and can only be used in conjunction with pg:settings:auto-explain:log-analyze turned on.
26
+ `);
27
+ LogBuffersWaits.args = {
28
+ database: core_1.Args.string(),
29
+ value: core_1.Args.string(),
30
+ };
@@ -0,0 +1,16 @@
1
+ import { PGSettingsCommand } from '../../../../lib/pg/setter';
2
+ import { Setting, SettingKey } from '../../../../lib/pg/types';
3
+ export default class LogMinDuration extends PGSettingsCommand {
4
+ static topic: string;
5
+ static description: string;
6
+ static args: {
7
+ database: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
8
+ value: import("@oclif/core/lib/interfaces/parser").Arg<number | undefined, {
9
+ min?: number | undefined;
10
+ max?: number | undefined;
11
+ }>;
12
+ };
13
+ protected settingKey: SettingKey;
14
+ protected convertValue(val: string): number;
15
+ protected explain(setting: Setting<number>): string;
16
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const tsheredoc_1 = require("tsheredoc");
5
+ const setter_1 = require("../../../../lib/pg/setter");
6
+ class LogMinDuration extends setter_1.PGSettingsCommand {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.settingKey = 'auto_explain.log_min_duration';
10
+ }
11
+ convertValue(val) {
12
+ return (0, setter_1.numericConverter)(val);
13
+ }
14
+ explain(setting) {
15
+ if (setting.value === -1) {
16
+ return 'Execution plan logging has been disabled.';
17
+ }
18
+ if (setting.value === 0) {
19
+ return 'All queries will have their execution plans logged.';
20
+ }
21
+ return `All execution plans will be logged for queries taking up to ${setting.value} milliseconds or more.`;
22
+ }
23
+ }
24
+ exports.default = LogMinDuration;
25
+ LogMinDuration.topic = 'pg';
26
+ LogMinDuration.description = (0, tsheredoc_1.default)(`
27
+ Sets the minimum execution time in milliseconds for a statement's plan to be logged.
28
+ Setting this value to 0 will log all queries. Setting this value to -1 will disable logging entirely.
29
+ `);
30
+ LogMinDuration.args = {
31
+ database: core_1.Args.string(),
32
+ value: core_1.Args.integer(),
33
+ };
@@ -0,0 +1,12 @@
1
+ import { PGSettingsCommand } from '../../../../lib/pg/setter';
2
+ import type { Setting, SettingKey } from '../../../../lib/pg/types';
3
+ export default class LogNestedStatements extends PGSettingsCommand {
4
+ static description: string;
5
+ static args: {
6
+ database: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
7
+ value: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
8
+ };
9
+ protected settingKey: SettingKey;
10
+ protected convertValue(val: unknown): boolean;
11
+ protected explain(setting: Setting<unknown>): "Nested statements will be included in execution plan logs." | "Only top-level execution plans will be included in logs.";
12
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const setter_1 = require("../../../../lib/pg/setter");
5
+ class LogNestedStatements extends setter_1.PGSettingsCommand {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.settingKey = 'auto_explain.log_nested_statements';
9
+ }
10
+ convertValue(val) {
11
+ return (0, setter_1.booleanConverter)(val);
12
+ }
13
+ explain(setting) {
14
+ if (setting.value) {
15
+ return 'Nested statements will be included in execution plan logs.';
16
+ }
17
+ return 'Only top-level execution plans will be included in logs.';
18
+ }
19
+ }
20
+ exports.default = LogNestedStatements;
21
+ LogNestedStatements.description = "Nested statements are included in the execution plan's log.";
22
+ LogNestedStatements.args = {
23
+ database: core_1.Args.string(),
24
+ value: core_1.Args.string(),
25
+ };
@@ -0,0 +1,13 @@
1
+ import { PGSettingsCommand, BooleanAsString } from '../../../../lib/pg/setter';
2
+ import { SettingKey, Setting } from '../../../../lib/pg/types';
3
+ export default class LogTriggers extends PGSettingsCommand {
4
+ static topic: string;
5
+ static description: string;
6
+ static args: {
7
+ database: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
8
+ value: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
9
+ };
10
+ protected settingKey: SettingKey;
11
+ protected convertValue(val: BooleanAsString): boolean;
12
+ protected explain(setting: Setting<boolean>): "Trigger execution statistics have been enabled for auto-explain." | "Trigger execution statistics have been disabled for auto-explain.";
13
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const tsheredoc_1 = require("tsheredoc");
5
+ const setter_1 = require("../../../../lib/pg/setter");
6
+ class LogTriggers extends setter_1.PGSettingsCommand {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.settingKey = 'auto_explain.log_triggers';
10
+ }
11
+ convertValue(val) {
12
+ return (0, setter_1.booleanConverter)(val);
13
+ }
14
+ explain(setting) {
15
+ if (setting.value) {
16
+ return 'Trigger execution statistics have been enabled for auto-explain.';
17
+ }
18
+ return 'Trigger execution statistics have been disabled for auto-explain.';
19
+ }
20
+ }
21
+ exports.default = LogTriggers;
22
+ LogTriggers.topic = 'pg';
23
+ LogTriggers.description = (0, tsheredoc_1.default)(`
24
+ Includes trigger execution statistics in execution plan logs.
25
+ This parameter can only be used in conjunction with pg:settings:auto-explain:log-analyze turned on.
26
+ `);
27
+ LogTriggers.args = {
28
+ database: core_1.Args.string(),
29
+ value: core_1.Args.string(),
30
+ };
@@ -0,0 +1,17 @@
1
+ import { PGSettingsCommand } from '../../../../lib/pg/setter';
2
+ import type { Setting, SettingKey } from '../../../../lib/pg/types';
3
+ export default class AutoExplainLogVerbose extends PGSettingsCommand {
4
+ static topic: string;
5
+ static description: string;
6
+ static flags: {
7
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
10
+ static args: {
11
+ database: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
12
+ value: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
13
+ };
14
+ protected settingKey: SettingKey;
15
+ protected explain(setting: Setting<unknown>): "Verbose execution plan logging has been enabled for auto_explain." | "Verbose execution plan logging has been disabled for auto_explain.";
16
+ protected convertValue(val: unknown): boolean;
17
+ }
@@ -0,0 +1,33 @@
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 setter_1 = require("../../../../lib/pg/setter");
7
+ class AutoExplainLogVerbose extends setter_1.PGSettingsCommand {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.settingKey = 'auto_explain.log_verbose';
11
+ }
12
+ explain(setting) {
13
+ if (setting.value) {
14
+ return 'Verbose execution plan logging has been enabled for auto_explain.';
15
+ }
16
+ return 'Verbose execution plan logging has been disabled for auto_explain.';
17
+ }
18
+ convertValue(val) {
19
+ return (0, setter_1.booleanConverter)(val);
20
+ }
21
+ }
22
+ exports.default = AutoExplainLogVerbose;
23
+ AutoExplainLogVerbose.topic = 'pg';
24
+ AutoExplainLogVerbose.description = (0, tsheredoc_1.default)(`Include verbose details in execution plans.
25
+ This is equivalent to calling EXPLAIN VERBOSE.`);
26
+ AutoExplainLogVerbose.flags = {
27
+ app: command_1.flags.app({ required: true }),
28
+ remote: command_1.flags.remote(),
29
+ };
30
+ AutoExplainLogVerbose.args = {
31
+ database: core_1.Args.string(),
32
+ value: core_1.Args.string(),
33
+ };
@@ -0,0 +1,18 @@
1
+ import { BooleanAsString, PGSettingsCommand } from '../../../lib/pg/setter';
2
+ import { Setting, SettingKey } from '../../../lib/pg/types';
3
+ export default class AutoExplain extends PGSettingsCommand {
4
+ static topic: string;
5
+ static description: string;
6
+ static flags: {
7
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
10
+ static args: {
11
+ database: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
12
+ value: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
13
+ };
14
+ static strict: boolean;
15
+ protected settingKey: SettingKey;
16
+ protected convertValue(val: BooleanAsString): boolean;
17
+ protected explain(setting: Setting<boolean>): string;
18
+ }
@@ -0,0 +1,38 @@
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 setter_1 = require("../../../lib/pg/setter");
7
+ // ref: https://www.postgresql.org/docs/current/auto-explain.html
8
+ class AutoExplain extends setter_1.PGSettingsCommand {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.settingKey = 'auto_explain';
12
+ }
13
+ convertValue(val) {
14
+ return (0, setter_1.booleanConverter)(val);
15
+ }
16
+ explain(setting) {
17
+ if (setting.value) {
18
+ return 'Execution plans of queries will be logged for future connections.';
19
+ }
20
+ return 'Execution plans of queries will not be logged for future connections.';
21
+ }
22
+ }
23
+ exports.default = AutoExplain;
24
+ AutoExplain.topic = 'pg';
25
+ AutoExplain.description = (0, tsheredoc_1.default)(`
26
+ Automatically log execution plans of queries without running EXPLAIN by hand.
27
+ The auto_explain module is loaded at session-time so existing connections will not be logged.
28
+ Restart your Heroku app and/or restart existing connections for logging to start taking place.
29
+ `);
30
+ AutoExplain.flags = {
31
+ app: command_1.flags.app({ required: true }),
32
+ remote: command_1.flags.remote(),
33
+ };
34
+ AutoExplain.args = {
35
+ database: core_1.Args.string(),
36
+ value: core_1.Args.string(),
37
+ };
38
+ AutoExplain.strict = false;
@@ -0,0 +1,13 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Index extends Command {
3
+ static topic: string;
4
+ static description: string;
5
+ static flags: {
6
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
7
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ };
9
+ static args: {
10
+ database: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
@@ -0,0 +1,34 @@
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 resolve_1 = require("../../../lib/addons/resolve");
6
+ const util_1 = require("../../../lib/pg/util");
7
+ const host_1 = require("../../../lib/pg/host");
8
+ class Index extends command_1.Command {
9
+ async run() {
10
+ const { flags, args } = await this.parse(Index);
11
+ const { app } = flags;
12
+ const { database } = args;
13
+ const db = await (0, resolve_1.addonResolver)(this.heroku, app, database || 'DATABASE_URL');
14
+ if ((0, util_1.essentialPlan)(db))
15
+ core_1.ux.error('You can’t perform this operation on Essential-tier databases.');
16
+ const { body: settings } = await this.heroku.get(`/postgres/v0/databases/${db.id}/config`, { hostname: (0, host_1.default)() });
17
+ core_1.ux.styledHeader(db.name);
18
+ const remapped = {};
19
+ Object.keys(settings).forEach(k => {
20
+ remapped[k.replace(/_/g, '-')] = settings[k].value;
21
+ });
22
+ core_1.ux.styledObject(remapped);
23
+ }
24
+ }
25
+ exports.default = Index;
26
+ Index.topic = 'pg';
27
+ Index.description = 'show your current database settings';
28
+ Index.flags = {
29
+ app: command_1.flags.app({ required: true }),
30
+ remote: command_1.flags.remote(),
31
+ };
32
+ Index.args = {
33
+ database: core_1.Args.string(),
34
+ };
@@ -0,0 +1,17 @@
1
+ import { PGSettingsCommand } from '../../../lib/pg/setter';
2
+ import type { Setting, SettingKey } from '../../../lib/pg/types';
3
+ export default class LogConnections extends PGSettingsCommand {
4
+ static topic: string;
5
+ static description: string;
6
+ static flags: {
7
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ remote: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
10
+ static args: {
11
+ database: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
12
+ value: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
13
+ };
14
+ protected settingKey: SettingKey;
15
+ protected convertValue(val: unknown): unknown;
16
+ protected explain(setting: Setting<unknown>): string;
17
+ }
@@ -0,0 +1,34 @@
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 setter_1 = require("../../../lib/pg/setter");
7
+ class LogConnections extends setter_1.PGSettingsCommand {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.settingKey = 'log_connections';
11
+ }
12
+ convertValue(val) {
13
+ return (0, setter_1.booleanConverter)(val);
14
+ }
15
+ explain(setting) {
16
+ if (setting.value) {
17
+ return 'When login attempts are made, a log message will be emitted in your application\'s logs.';
18
+ }
19
+ return 'When login attempts are made, no log message will be emitted in your application\'s logs.';
20
+ }
21
+ }
22
+ exports.default = LogConnections;
23
+ LogConnections.topic = 'pg';
24
+ LogConnections.description = (0, tsheredoc_1.default)(`
25
+ Controls whether a log message is produced when a login attempt is made. Default is true.
26
+ Setting log_connections to false stops emitting log messages for all attempts to login to the database.`);
27
+ LogConnections.flags = {
28
+ app: command_1.flags.app({ required: true }),
29
+ remote: command_1.flags.remote(),
30
+ };
31
+ LogConnections.args = {
32
+ database: core_1.Args.string(),
33
+ value: core_1.Args.string(),
34
+ };
@@ -0,0 +1,13 @@
1
+ import { PGSettingsCommand } from '../../../lib/pg/setter';
2
+ import type { Setting, SettingKey } from '../../../lib/pg/types';
3
+ export default class LogLockWaits extends PGSettingsCommand {
4
+ static topic: string;
5
+ static description: string;
6
+ static args: {
7
+ database: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
8
+ value: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
9
+ };
10
+ protected settingKey: SettingKey;
11
+ protected convertValue(val: unknown): boolean;
12
+ protected explain(setting: Setting<unknown>): "When a deadlock is detected, a log message will be emitted in your application's logs." | "When a deadlock is detected, no log message will be emitted in your application's logs.";
13
+ }