heroku 8.1.9 → 8.2.0-beta.1

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 (315) hide show
  1. package/README.md +5 -6
  2. package/autocomplete-scripts/README.md +7 -0
  3. package/autocomplete-scripts/bash/heroku.bash +59 -0
  4. package/autocomplete-scripts/brew/bash +4 -0
  5. package/autocomplete-scripts/brew/zsh/_heroku +59 -0
  6. package/autocomplete-scripts/zsh/_heroku +53 -0
  7. package/bin/bats-test-runner.js +7 -0
  8. package/bin/dev +17 -0
  9. package/bin/dev.cmd +3 -0
  10. package/bin/run +36 -1
  11. package/lib/analytics.d.ts +2 -2
  12. package/lib/analytics.js +3 -4
  13. package/lib/commands/auth/2fa/disable.d.ts +7 -0
  14. package/lib/commands/auth/2fa/disable.js +16 -0
  15. package/lib/commands/auth/2fa/index.d.ts +6 -0
  16. package/lib/commands/auth/2fa/index.js +18 -0
  17. package/lib/commands/auth/login.d.ts +8 -0
  18. package/lib/commands/auth/login.js +25 -0
  19. package/lib/commands/auth/logout.d.ts +6 -0
  20. package/lib/commands/auth/logout.js +14 -0
  21. package/lib/commands/auth/token.d.ts +7 -0
  22. package/lib/commands/auth/token.js +31 -0
  23. package/lib/commands/auth/whoami.d.ts +7 -0
  24. package/lib/commands/auth/whoami.js +26 -0
  25. package/lib/commands/authorizations/create.d.ts +13 -0
  26. package/lib/commands/authorizations/create.js +41 -0
  27. package/lib/commands/authorizations/index.d.ts +9 -0
  28. package/lib/commands/authorizations/index.js +35 -0
  29. package/lib/commands/authorizations/info.d.ts +11 -0
  30. package/lib/commands/authorizations/info.js +25 -0
  31. package/lib/commands/authorizations/revoke.d.ts +10 -0
  32. package/lib/commands/authorizations/revoke.js +22 -0
  33. package/lib/commands/authorizations/rotate.d.ts +8 -0
  34. package/lib/commands/authorizations/rotate.js +19 -0
  35. package/lib/commands/authorizations/update.d.ts +13 -0
  36. package/lib/commands/authorizations/update.js +36 -0
  37. package/lib/commands/autocomplete/create.d.ts +29 -0
  38. package/lib/commands/autocomplete/create.js +213 -0
  39. package/lib/commands/autocomplete/doctor.d.ts +12 -0
  40. package/lib/commands/autocomplete/doctor.js +97 -0
  41. package/lib/commands/autocomplete/index.d.ts +12 -0
  42. package/lib/commands/autocomplete/index.js +67 -0
  43. package/lib/commands/autocomplete/options.d.ts +25 -0
  44. package/lib/commands/autocomplete/options.js +210 -0
  45. package/lib/commands/autocomplete/script.d.ts +10 -0
  46. package/lib/commands/autocomplete/script.js +23 -0
  47. package/lib/commands/buildpacks/add.d.ts +13 -0
  48. package/lib/commands/buildpacks/add.js +43 -0
  49. package/lib/commands/buildpacks/clear.d.ts +9 -0
  50. package/lib/commands/buildpacks/clear.js +17 -0
  51. package/lib/commands/buildpacks/index.d.ts +9 -0
  52. package/lib/commands/buildpacks/index.js +25 -0
  53. package/lib/commands/buildpacks/info.d.ts +8 -0
  54. package/lib/commands/buildpacks/info.js +41 -0
  55. package/lib/commands/buildpacks/remove.d.ts +13 -0
  56. package/lib/commands/buildpacks/remove.js +55 -0
  57. package/lib/commands/buildpacks/search.d.ts +13 -0
  58. package/lib/commands/buildpacks/search.js +69 -0
  59. package/lib/commands/buildpacks/set.d.ts +13 -0
  60. package/lib/commands/buildpacks/set.js +42 -0
  61. package/lib/commands/buildpacks/versions.d.ts +8 -0
  62. package/lib/commands/buildpacks/versions.js +56 -0
  63. package/lib/commands/certs/auto/wait.d.ts +9 -0
  64. package/lib/commands/certs/auto/wait.js +14 -0
  65. package/lib/commands/ci/index.d.ts +12 -0
  66. package/lib/commands/ci/index.js +25 -0
  67. package/lib/commands/ci/info.d.ts +14 -0
  68. package/lib/commands/ci/info.js +29 -0
  69. package/lib/commands/ci/last.d.ts +11 -0
  70. package/lib/commands/ci/last.js +31 -0
  71. package/lib/commands/ci/rerun.d.ts +13 -0
  72. package/lib/commands/ci/rerun.js +53 -0
  73. package/lib/commands/ci/run.d.ts +10 -0
  74. package/lib/commands/ci/run.js +42 -0
  75. package/lib/commands/clients/create.d.ts +14 -0
  76. package/lib/commands/clients/create.js +37 -0
  77. package/lib/commands/clients/destroy.d.ts +8 -0
  78. package/lib/commands/clients/destroy.js +18 -0
  79. package/lib/commands/clients/index.d.ts +8 -0
  80. package/lib/commands/clients/index.js +32 -0
  81. package/lib/commands/clients/info.d.ts +13 -0
  82. package/lib/commands/clients/info.js +33 -0
  83. package/lib/commands/clients/rotate.d.ts +12 -0
  84. package/lib/commands/clients/rotate.js +33 -0
  85. package/lib/commands/clients/update.d.ts +13 -0
  86. package/lib/commands/clients/update.js +38 -0
  87. package/lib/commands/config/edit.d.ts +23 -0
  88. package/lib/commands/config/edit.js +132 -0
  89. package/lib/commands/config/get.d.ts +16 -0
  90. package/lib/commands/config/get.js +35 -0
  91. package/lib/commands/config/index.d.ts +11 -0
  92. package/lib/commands/config/index.js +33 -0
  93. package/lib/commands/config/unset.d.ts +12 -0
  94. package/lib/commands/config/unset.js +51 -0
  95. package/lib/commands/console.d.ts +11 -0
  96. package/lib/commands/console.js +30 -0
  97. package/lib/commands/domains/add.d.ts +19 -0
  98. package/lib/commands/domains/add.js +117 -0
  99. package/lib/commands/domains/clear.d.ts +11 -0
  100. package/lib/commands/domains/clear.js +26 -0
  101. package/lib/commands/domains/index.d.ts +40 -0
  102. package/lib/commands/domains/index.js +79 -0
  103. package/lib/commands/domains/info.d.ts +14 -0
  104. package/lib/commands/domains/info.js +25 -0
  105. package/lib/commands/domains/remove.d.ts +14 -0
  106. package/lib/commands/domains/remove.js +26 -0
  107. package/lib/commands/domains/update.d.ts +15 -0
  108. package/lib/commands/domains/update.js +40 -0
  109. package/lib/commands/domains/wait.d.ts +13 -0
  110. package/lib/commands/domains/wait.js +32 -0
  111. package/lib/commands/git/clone.d.ts +13 -0
  112. package/lib/commands/git/clone.js +29 -0
  113. package/lib/commands/git/credentials.d.ts +9 -0
  114. package/lib/commands/git/credentials.js +32 -0
  115. package/lib/commands/git/remote.d.ts +11 -0
  116. package/lib/commands/git/remote.js +44 -0
  117. package/lib/commands/labs/disable.d.ts +11 -0
  118. package/lib/commands/labs/disable.js +65 -0
  119. package/lib/commands/local/index.d.ts +17 -0
  120. package/lib/commands/local/index.js +75 -0
  121. package/lib/commands/local/run.d.ts +11 -0
  122. package/lib/commands/local/run.js +38 -0
  123. package/lib/commands/local/version.d.ts +5 -0
  124. package/lib/commands/local/version.js +13 -0
  125. package/lib/commands/logs.d.ts +16 -0
  126. package/lib/commands/logs.js +45 -0
  127. package/lib/commands/pipelines/add.d.ts +14 -0
  128. package/lib/commands/pipelines/add.js +61 -0
  129. package/lib/commands/pipelines/connect.d.ts +12 -0
  130. package/lib/commands/pipelines/connect.js +52 -0
  131. package/lib/commands/pipelines/create.d.ts +15 -0
  132. package/lib/commands/pipelines/create.js +91 -0
  133. package/lib/commands/pipelines/destroy.d.ts +9 -0
  134. package/lib/commands/pipelines/destroy.js +27 -0
  135. package/lib/commands/pipelines/diff.d.ts +19 -0
  136. package/lib/commands/pipelines/diff.js +152 -0
  137. package/lib/commands/pipelines/index.d.ts +9 -0
  138. package/lib/commands/pipelines/index.js +27 -0
  139. package/lib/commands/pipelines/info.d.ts +13 -0
  140. package/lib/commands/pipelines/info.js +43 -0
  141. package/lib/commands/pipelines/open.d.ts +9 -0
  142. package/lib/commands/pipelines/open.js +19 -0
  143. package/lib/commands/pipelines/promote.d.ts +12 -0
  144. package/lib/commands/pipelines/promote.js +216 -0
  145. package/lib/commands/pipelines/remove.d.ts +10 -0
  146. package/lib/commands/pipelines/remove.js +23 -0
  147. package/lib/commands/pipelines/rename.d.ts +10 -0
  148. package/lib/commands/pipelines/rename.js +33 -0
  149. package/lib/commands/pipelines/setup.d.ts +14 -0
  150. package/lib/commands/pipelines/setup.js +91 -0
  151. package/lib/commands/pipelines/transfer.d.ts +13 -0
  152. package/lib/commands/pipelines/transfer.js +65 -0
  153. package/lib/commands/pipelines/update.d.ts +11 -0
  154. package/lib/commands/pipelines/update.js +32 -0
  155. package/lib/commands/ps/autoscale/disable.d.ts +9 -0
  156. package/lib/commands/ps/autoscale/disable.js +35 -0
  157. package/lib/commands/ps/autoscale/enable.d.ts +13 -0
  158. package/lib/commands/ps/autoscale/enable.js +65 -0
  159. package/lib/commands/ps/wait.d.ts +12 -0
  160. package/lib/commands/ps/wait.js +78 -0
  161. package/lib/commands/rake.d.ts +14 -0
  162. package/lib/commands/rake.js +46 -0
  163. package/lib/commands/regions.d.ts +11 -0
  164. package/lib/commands/regions.js +45 -0
  165. package/lib/commands/reviewapps/disable.d.ts +17 -0
  166. package/lib/commands/reviewapps/disable.js +102 -0
  167. package/lib/commands/reviewapps/enable.d.ts +14 -0
  168. package/lib/commands/reviewapps/enable.js +89 -0
  169. package/lib/commands/run/detached.d.ts +15 -0
  170. package/lib/commands/run/detached.js +56 -0
  171. package/lib/commands/run/index.d.ts +18 -0
  172. package/lib/commands/run/index.js +64 -0
  173. package/lib/commands/run/inside.d.ts +15 -0
  174. package/lib/commands/run/inside.js +55 -0
  175. package/lib/commands/sessions/destroy.d.ts +8 -0
  176. package/lib/commands/sessions/destroy.js +18 -0
  177. package/lib/commands/sessions/index.d.ts +8 -0
  178. package/lib/commands/sessions/index.js +31 -0
  179. package/lib/commands/status.d.ts +8 -0
  180. package/lib/commands/status.js +46 -0
  181. package/lib/commands/webhooks/add.d.ts +16 -0
  182. package/lib/commands/webhooks/add.js +47 -0
  183. package/lib/commands/webhooks/deliveries/index.d.ts +12 -0
  184. package/lib/commands/webhooks/deliveries/index.js +80 -0
  185. package/lib/commands/webhooks/deliveries/info.d.ts +14 -0
  186. package/lib/commands/webhooks/deliveries/info.js +42 -0
  187. package/lib/commands/webhooks/events/index.d.ts +11 -0
  188. package/lib/commands/webhooks/events/index.js +46 -0
  189. package/lib/commands/webhooks/events/info.d.ts +14 -0
  190. package/lib/commands/webhooks/events/info.js +31 -0
  191. package/lib/commands/webhooks/index.d.ts +11 -0
  192. package/lib/commands/webhooks/index.js +45 -0
  193. package/lib/commands/webhooks/info.d.ts +14 -0
  194. package/lib/commands/webhooks/info.js +31 -0
  195. package/lib/commands/webhooks/remove.d.ts +14 -0
  196. package/lib/commands/webhooks/remove.js +29 -0
  197. package/lib/commands/webhooks/update.d.ts +19 -0
  198. package/lib/commands/webhooks/update.js +41 -0
  199. package/lib/file.js +2 -3
  200. package/lib/global_telemetry.d.ts +53 -0
  201. package/lib/global_telemetry.js +82 -0
  202. package/lib/hooks/command_not_found/performance_analytics.d.ts +3 -0
  203. package/lib/hooks/command_not_found/performance_analytics.js +7 -0
  204. package/lib/hooks/init/terms-of-service.js +3 -4
  205. package/lib/hooks/init/version.d.ts +2 -1
  206. package/lib/hooks/init/version.js +1 -2
  207. package/lib/hooks/postrun/performance_analytics.d.ts +3 -0
  208. package/lib/hooks/postrun/performance_analytics.js +11 -0
  209. package/lib/hooks/prerun/analytics.d.ts +2 -1
  210. package/lib/hooks/prerun/analytics.js +4 -4
  211. package/lib/hooks/recache.d.ts +3 -0
  212. package/lib/hooks/recache.js +56 -0
  213. package/lib/hooks/update/brew.d.ts +2 -1
  214. package/lib/hooks/update/brew.js +3 -5
  215. package/lib/hooks/update/completions.d.ts +2 -1
  216. package/lib/hooks/update/completions.js +2 -3
  217. package/lib/hooks/update/plugin-migrate.d.ts +2 -1
  218. package/lib/hooks/update/plugin-migrate.js +3 -5
  219. package/lib/hooks/update/tidy.d.ts +2 -1
  220. package/lib/hooks/update/tidy.js +3 -5
  221. package/lib/lib/authorizations/authorizations.d.ts +2 -0
  222. package/lib/lib/authorizations/authorizations.js +39 -0
  223. package/lib/lib/autocomplete/base.d.ts +11 -0
  224. package/lib/lib/autocomplete/base.js +44 -0
  225. package/lib/lib/autocomplete/cache.d.ts +2 -0
  226. package/lib/lib/autocomplete/cache.js +28 -0
  227. package/lib/lib/autocomplete/completions.d.ts +37 -0
  228. package/lib/lib/autocomplete/completions.js +261 -0
  229. package/lib/lib/buildpacks/buildpacks.d.ts +32 -0
  230. package/lib/lib/buildpacks/buildpacks.js +161 -0
  231. package/lib/lib/buildpacks/push.d.ts +0 -0
  232. package/lib/lib/buildpacks/push.js +4 -0
  233. package/lib/lib/ci/git.d.ts +8 -0
  234. package/lib/lib/ci/git.js +71 -0
  235. package/lib/lib/ci/interfaces/kolkrabbi.d.ts +311 -0
  236. package/lib/lib/ci/interfaces/kolkrabbi.js +7 -0
  237. package/lib/lib/ci/pipelines.d.ts +3 -0
  238. package/lib/lib/ci/pipelines.js +57 -0
  239. package/lib/lib/ci/source.d.ts +2 -0
  240. package/lib/lib/ci/source.js +42 -0
  241. package/lib/lib/ci/test-run.d.ts +5 -0
  242. package/lib/lib/ci/test-run.js +232 -0
  243. package/lib/lib/clients/clients.d.ts +1 -0
  244. package/lib/lib/clients/clients.js +25 -0
  245. package/lib/lib/config/quote.d.ts +2 -0
  246. package/lib/lib/config/quote.js +33 -0
  247. package/lib/lib/config/util.d.ts +3 -0
  248. package/lib/lib/config/util.js +12 -0
  249. package/lib/lib/domains/wait-for-domain.d.ts +3 -0
  250. package/lib/lib/domains/wait-for-domain.js +19 -0
  251. package/lib/lib/git/git.d.ts +8 -0
  252. package/lib/lib/git/git.js +56 -0
  253. package/lib/lib/local/fork-foreman.d.ts +1 -0
  254. package/lib/lib/local/fork-foreman.js +33 -0
  255. package/lib/lib/local/load-foreman-procfile.d.ts +0 -0
  256. package/lib/lib/local/load-foreman-procfile.js +2 -0
  257. package/lib/lib/local/run-foreman.d.ts +0 -0
  258. package/lib/lib/local/run-foreman.js +2 -0
  259. package/lib/lib/pipelines/api.d.ts +25 -0
  260. package/lib/lib/pipelines/api.js +130 -0
  261. package/lib/lib/pipelines/disambiguate.d.ts +3 -0
  262. package/lib/lib/pipelines/disambiguate.js +49 -0
  263. package/lib/lib/pipelines/github-api.d.ts +8 -0
  264. package/lib/lib/pipelines/github-api.js +18 -0
  265. package/lib/lib/pipelines/infer.d.ts +1 -0
  266. package/lib/lib/pipelines/infer.js +11 -0
  267. package/lib/lib/pipelines/key-by.d.ts +1 -0
  268. package/lib/lib/pipelines/key-by.js +11 -0
  269. package/lib/lib/pipelines/kolkrabbi-api.d.ts +14 -0
  270. package/lib/lib/pipelines/kolkrabbi-api.js +62 -0
  271. package/lib/lib/pipelines/ownership.d.ts +4 -0
  272. package/lib/lib/pipelines/ownership.js +40 -0
  273. package/lib/lib/pipelines/render-pipeline.d.ts +6 -0
  274. package/lib/lib/pipelines/render-pipeline.js +52 -0
  275. package/lib/lib/pipelines/setup/create-apps.d.ts +1 -0
  276. package/lib/lib/pipelines/setup/create-apps.js +44 -0
  277. package/lib/lib/pipelines/setup/get-ci-settings.d.ts +4 -0
  278. package/lib/lib/pipelines/setup/get-ci-settings.js +19 -0
  279. package/lib/lib/pipelines/setup/get-github-token.d.ts +1 -0
  280. package/lib/lib/pipelines/setup/get-github-token.js +10 -0
  281. package/lib/lib/pipelines/setup/get-name-and-repo.d.ts +1 -0
  282. package/lib/lib/pipelines/setup/get-name-and-repo.js +47 -0
  283. package/lib/lib/pipelines/setup/get-repo.d.ts +1 -0
  284. package/lib/lib/pipelines/setup/get-repo.js +8 -0
  285. package/lib/lib/pipelines/setup/get-settings.d.ts +9 -0
  286. package/lib/lib/pipelines/setup/get-settings.js +39 -0
  287. package/lib/lib/pipelines/setup/poll-app-setups.d.ts +1 -0
  288. package/lib/lib/pipelines/setup/poll-app-setups.js +25 -0
  289. package/lib/lib/pipelines/setup/setup-pipeline.d.ts +1 -0
  290. package/lib/lib/pipelines/setup/setup-pipeline.js +15 -0
  291. package/lib/lib/pipelines/setup/validate.d.ts +9 -0
  292. package/lib/lib/pipelines/setup/validate.js +31 -0
  293. package/lib/lib/pipelines/stages.d.ts +7 -0
  294. package/lib/lib/pipelines/stages.js +22 -0
  295. package/lib/lib/run/colorize.d.ts +2 -0
  296. package/lib/lib/run/colorize.js +300 -0
  297. package/lib/lib/run/dyno.d.ts +72 -0
  298. package/lib/lib/run/dyno.js +397 -0
  299. package/lib/lib/run/helpers.d.ts +2 -0
  300. package/lib/lib/run/helpers.js +34 -0
  301. package/lib/lib/run/line-transform.d.ts +4 -0
  302. package/lib/lib/run/line-transform.js +26 -0
  303. package/lib/lib/run/log-displayer.d.ts +10 -0
  304. package/lib/lib/run/log-displayer.js +79 -0
  305. package/lib/lib/sessions/sessions.d.ts +7 -0
  306. package/lib/lib/sessions/sessions.js +2 -0
  307. package/lib/lib/status/util.d.ts +1 -0
  308. package/lib/lib/status/util.js +14 -0
  309. package/lib/lib/webhooks/base.d.ts +13 -0
  310. package/lib/lib/webhooks/base.js +28 -0
  311. package/lib/user-config.js +2 -3
  312. package/oclif.manifest.json +3376 -2
  313. package/package.json +80 -43
  314. package/lib/hooks/update/b.d.ts +0 -2
  315. package/lib/hooks/update/b.js +0 -48
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // tslint:disable:file-name-casing
4
+ const command_1 = require("@heroku-cli/command");
5
+ const core_1 = require("@oclif/core");
6
+ const debug_1 = require("debug");
7
+ const dyno_1 = require("../../lib/run/dyno");
8
+ const helpers_1 = require("../../lib/run/helpers");
9
+ const debug = (0, debug_1.default)('heroku:run:inside');
10
+ class RunInside extends command_1.Command {
11
+ async run() {
12
+ const parsed = await this.parse(RunInside);
13
+ const { flags } = parsed;
14
+ const argv = parsed.argv;
15
+ if (argv.length < 2) {
16
+ throw new Error('Usage: heroku run:inside DYNO COMMAND\n\nExample: heroku run:inside web.1 bash');
17
+ }
18
+ const opts = {
19
+ 'exit-code': flags['exit-code'],
20
+ app: flags.app,
21
+ command: (0, helpers_1.buildCommand)(argv.slice(1)),
22
+ dyno: argv[0],
23
+ env: flags.env,
24
+ heroku: this.heroku,
25
+ listen: flags.listen,
26
+ };
27
+ const dyno = new dyno_1.default(opts);
28
+ try {
29
+ await dyno.start();
30
+ }
31
+ catch (error) {
32
+ debug(error);
33
+ if (error.exitCode) {
34
+ core_1.ux.exit(error.exitCode);
35
+ }
36
+ else {
37
+ throw error;
38
+ }
39
+ }
40
+ }
41
+ }
42
+ exports.default = RunInside;
43
+ RunInside.description = 'run a one-off process inside an existing heroku dyno';
44
+ RunInside.hidden = true;
45
+ RunInside.examples = [
46
+ '$ heroku run:inside web.1 bash',
47
+ ];
48
+ RunInside.flags = {
49
+ app: command_1.flags.app({ required: true }),
50
+ remote: command_1.flags.remote(),
51
+ 'exit-code': command_1.flags.boolean({ char: 'x', description: 'passthrough the exit code of the remote command' }),
52
+ env: command_1.flags.string({ char: 'e', description: "environment variables to set (use ';' to split multiple vars)" }),
53
+ listen: command_1.flags.boolean({ description: 'listen on a local port', hidden: true }),
54
+ };
55
+ RunInside.strict = false;
@@ -0,0 +1,8 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class SessionsDestroy extends Command {
3
+ static description: string;
4
+ static args: {
5
+ id: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
6
+ };
7
+ run(): Promise<void>;
8
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const color_1 = require("@heroku-cli/color");
4
+ const command_1 = require("@heroku-cli/command");
5
+ const core_1 = require("@oclif/core");
6
+ class SessionsDestroy extends command_1.Command {
7
+ async run() {
8
+ const { args: { id } } = await this.parse(SessionsDestroy);
9
+ core_1.ux.action.start(`Destroying ${color_1.default.cyan(id)}`);
10
+ await this.heroku.delete(`/oauth/sessions/${encodeURIComponent(id)}`);
11
+ core_1.ux.action.stop();
12
+ }
13
+ }
14
+ exports.default = SessionsDestroy;
15
+ SessionsDestroy.description = 'delete (logout) OAuth session by ID';
16
+ SessionsDestroy.args = {
17
+ id: core_1.Args.string({ required: true }),
18
+ };
@@ -0,0 +1,8 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class SessionsIndex extends Command {
3
+ static description: string;
4
+ static flags: {
5
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
6
+ };
7
+ run(): Promise<void>;
8
+ }
@@ -0,0 +1,31 @@
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 { sortBy } = require('lodash');
7
+ class SessionsIndex extends command_1.Command {
8
+ async run() {
9
+ const { flags } = await this.parse(SessionsIndex);
10
+ let { body: sessions } = await this.heroku.get('/oauth/sessions');
11
+ sessions = sortBy(sessions, 'description');
12
+ if (flags.json) {
13
+ core_1.ux.styledJSON(sessions);
14
+ }
15
+ else if (sessions.length === 0) {
16
+ core_1.ux.log('No OAuth sessions.');
17
+ }
18
+ else {
19
+ const printLine = (...args) => this.log(...args);
20
+ core_1.ux.table(sessions, {
21
+ description: { get: (v) => color_1.default.green(v.description) },
22
+ id: {},
23
+ }, { 'no-header': true, printLine });
24
+ }
25
+ }
26
+ }
27
+ exports.default = SessionsIndex;
28
+ SessionsIndex.description = 'list your OAuth sessions';
29
+ SessionsIndex.flags = {
30
+ json: command_1.flags.boolean({ char: 'j', description: 'output in json format' }),
31
+ };
@@ -0,0 +1,8 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class Status extends Command {
3
+ static description: string;
4
+ static flags: {
5
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
6
+ };
7
+ run(): Promise<void>;
8
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const color_1 = require("@heroku-cli/color");
4
+ const core_1 = require("@oclif/core");
5
+ const distanceInWordsToNow = require("date-fns/distance_in_words_to_now");
6
+ const http_call_1 = require("http-call");
7
+ const util_1 = require("../lib/status/util");
8
+ const capitalize = (str) => str.slice(0, 1).toUpperCase() + str.slice(1);
9
+ const printStatus = (status) => {
10
+ const colorize = color_1.default[status];
11
+ let message = capitalize(status);
12
+ if (status === 'green') {
13
+ message = 'No known issues at this time.';
14
+ }
15
+ return colorize(message);
16
+ };
17
+ class Status extends core_1.Command {
18
+ async run() {
19
+ const { flags } = await this.parse(Status);
20
+ const apiPath = '/api/v4/current-status';
21
+ const host = process.env.HEROKU_STATUS_HOST || 'https://status.heroku.com';
22
+ const { body } = await http_call_1.default.get(host + apiPath);
23
+ if (flags.json) {
24
+ core_1.ux.styledJSON(body);
25
+ return;
26
+ }
27
+ for (const item of body.status) {
28
+ const message = printStatus(item.status);
29
+ this.log(`${(item.system + ':').padEnd(11)}${message}`);
30
+ }
31
+ for (const incident of body.incidents) {
32
+ core_1.ux.log();
33
+ core_1.ux.styledHeader(`${incident.title} ${color_1.default.yellow(incident.created_at)} ${color_1.default.cyan(incident.full_url)}`);
34
+ const padding = (0, util_1.maxBy)(incident.updates, (i) => i.update_type.length).update_type.length + 0;
35
+ for (const u of incident.updates) {
36
+ core_1.ux.log(`${color_1.default.yellow(u.update_type.padEnd(padding))} ${new Date(u.updated_at).toISOString()} (${distanceInWordsToNow(new Date(u.updated_at))} ago)`);
37
+ core_1.ux.log(`${u.contents}\n`);
38
+ }
39
+ }
40
+ }
41
+ }
42
+ exports.default = Status;
43
+ Status.description = 'display current status of the Heroku platform';
44
+ Status.flags = {
45
+ json: core_1.Flags.boolean({ description: 'output in json format' }),
46
+ };
@@ -0,0 +1,16 @@
1
+ import BaseCommand from '../../lib/webhooks/base';
2
+ export default class WebhooksAdd extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, 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
+ pipeline: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ include: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ level: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ secret: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
12
+ authorization: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
13
+ url: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
14
+ };
15
+ run(): Promise<void>;
16
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const command_1 = require("@heroku-cli/command");
4
+ const core_1 = require("@oclif/core");
5
+ const spinner_1 = require("@oclif/core/lib/cli-ux/action/spinner");
6
+ const base_1 = require("../../lib/webhooks/base");
7
+ class WebhooksAdd extends base_1.default {
8
+ async run() {
9
+ const { flags } = await this.parse(WebhooksAdd);
10
+ const { path, display } = this.webhookType(flags);
11
+ const action = new spinner_1.default();
12
+ action.start(`Adding webhook to ${display}`);
13
+ const response = await this.webhooksClient.post(`${path}/webhooks`, {
14
+ body: {
15
+ include: flags.include.split(',').map(s => s.trim()),
16
+ level: flags.level,
17
+ secret: flags.secret,
18
+ url: flags.url,
19
+ authorization: flags.authorization,
20
+ },
21
+ });
22
+ const secret = response.headers && response.headers['heroku-webhook-secret'];
23
+ if (secret) {
24
+ core_1.ux.styledHeader('Webhooks Signing Secret');
25
+ this.log(secret);
26
+ }
27
+ else {
28
+ core_1.ux.warn('no secret found');
29
+ }
30
+ action.stop();
31
+ }
32
+ }
33
+ exports.default = WebhooksAdd;
34
+ WebhooksAdd.description = 'add a webhook to an app';
35
+ WebhooksAdd.examples = [
36
+ '$ heroku webhooks:add -i api:dyno -l notify -u https://example.com/hooks',
37
+ ];
38
+ WebhooksAdd.flags = {
39
+ app: command_1.flags.app(),
40
+ remote: command_1.flags.remote(),
41
+ pipeline: command_1.flags.pipeline({ char: 'p', description: 'pipeline on which to list', hidden: true }),
42
+ include: command_1.flags.string({ char: 'i', description: 'comma delimited event types your server will receive ', required: true }),
43
+ level: command_1.flags.string({ char: 'l', description: 'notify does not retry, sync will retry until successful or timeout', required: true }),
44
+ secret: command_1.flags.string({ char: 's', description: 'value to sign delivery with in Heroku-Webhook-Hmac-SHA256 header' }),
45
+ authorization: command_1.flags.string({ char: 't', description: 'authoriation header to send with webhooks' }),
46
+ url: command_1.flags.string({ char: 'u', description: 'URL for receiver', required: true }),
47
+ };
@@ -0,0 +1,12 @@
1
+ import BaseCommand from '../../../lib/webhooks/base';
2
+ export default class Deliveries extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, 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
+ status: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ pipeline: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,80 @@
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 base_1 = require("../../../lib/webhooks/base");
6
+ class Deliveries extends base_1.default {
7
+ async run() {
8
+ const { flags } = await this.parse(Deliveries);
9
+ const webhookType = this.webhookType(flags);
10
+ let { path } = webhookType;
11
+ const { display } = webhookType;
12
+ const max = 1000;
13
+ path = `${path}/webhook-deliveries`;
14
+ if (flags.status) {
15
+ path += `?eq[status]=${encodeURIComponent(flags.status)}`;
16
+ }
17
+ const { body: deliveries } = await this.webhooksClient.get(path, {
18
+ headers: {
19
+ Range: `seq ..; order=desc,max=${max}`,
20
+ },
21
+ partial: true,
22
+ });
23
+ if (deliveries.length === 0) {
24
+ this.log(`${display} has no deliveries`);
25
+ }
26
+ else {
27
+ const code = (w) => {
28
+ return (w.last_attempt && w.last_attempt.code && String(w.last_attempt.code)) || '';
29
+ };
30
+ deliveries.reverse();
31
+ if (deliveries.length === max) {
32
+ this.warn(`Only showing the ${max} most recent deliveries`);
33
+ this.warn('It is possible to filter deliveries by using the --status flag');
34
+ }
35
+ const printLine = (...args) => this.log(...args);
36
+ core_1.ux.table(deliveries, {
37
+ id: {
38
+ header: 'Delivery ID',
39
+ },
40
+ created_at: {
41
+ header: 'Created', get: (w) => w.created_at,
42
+ },
43
+ status: {
44
+ get: (w) => w.status,
45
+ },
46
+ include: {
47
+ get: (w) => w.event.include,
48
+ },
49
+ level: {
50
+ get: (w) => w.webhook.level,
51
+ },
52
+ num_attempts: {
53
+ header: 'Attempts', get: (w) => String(w.num_attempts),
54
+ },
55
+ last_code: {
56
+ header: 'Code', get: code,
57
+ },
58
+ last_error: {
59
+ header: 'Error', get: (w) => (w.last_attempt && w.last_attempt.error_class) || '',
60
+ },
61
+ next_attempt_at: {
62
+ header: 'Next Attempt', get: (w) => w.next_attempt_at || '',
63
+ },
64
+ }, {
65
+ 'no-header': false, printLine,
66
+ });
67
+ }
68
+ }
69
+ }
70
+ exports.default = Deliveries;
71
+ Deliveries.description = 'list webhook deliveries on an app';
72
+ Deliveries.examples = [
73
+ '$ heroku webhooks:deliveries',
74
+ ];
75
+ Deliveries.flags = {
76
+ app: command_1.flags.app(),
77
+ remote: command_1.flags.remote(),
78
+ status: command_1.flags.string({ char: 's', description: 'filter deliveries by status' }),
79
+ pipeline: command_1.flags.pipeline({ char: 'p', description: 'pipeline on which to list', hidden: true }),
80
+ };
@@ -0,0 +1,14 @@
1
+ import BaseCommand from '../../../lib/webhooks/base';
2
+ export default class DeliveriesInfo extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, 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
+ pipeline: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
10
+ static args: {
11
+ id: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,42 @@
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 base_1 = require("../../../lib/webhooks/base");
6
+ class DeliveriesInfo extends base_1.default {
7
+ async run() {
8
+ const { flags, args } = await this.parse(DeliveriesInfo);
9
+ const { path } = this.webhookType(flags);
10
+ const { body: delivery } = await this.webhooksClient.get(`${path}/webhook-deliveries/${args.id}`);
11
+ const { body: event } = await this.webhooksClient.get(`${path}/webhook-events/${delivery.event.id}`);
12
+ const obj = {
13
+ Created: delivery.created_at,
14
+ Event: delivery.event.id,
15
+ Webhook: delivery.webhook.id,
16
+ Status: delivery.status,
17
+ Include: delivery.event.include,
18
+ Level: delivery.webhook.level,
19
+ Attempts: delivery.num_attempts,
20
+ Code: delivery.last_attempt && delivery.last_attempt.code,
21
+ Error: delivery.last_attempt && delivery.last_attempt.error_class,
22
+ 'Next Attempt': delivery.next_attempt_at,
23
+ };
24
+ core_1.ux.styledHeader(delivery.id);
25
+ core_1.ux.styledObject(obj);
26
+ core_1.ux.styledHeader('Event Payload');
27
+ core_1.ux.styledJSON(event.payload);
28
+ }
29
+ }
30
+ exports.default = DeliveriesInfo;
31
+ DeliveriesInfo.description = 'info for a webhook event on an app';
32
+ DeliveriesInfo.examples = [
33
+ '$ heroku webhooks:deliveries:info 99999999-9999-9999-9999-999999999999',
34
+ ];
35
+ DeliveriesInfo.flags = {
36
+ app: command_1.flags.app(),
37
+ remote: command_1.flags.remote(),
38
+ pipeline: command_1.flags.pipeline({ char: 'p', description: 'pipeline on which to list', hidden: true }),
39
+ };
40
+ DeliveriesInfo.args = {
41
+ id: core_1.Args.string({ required: true }),
42
+ };
@@ -0,0 +1,11 @@
1
+ import BaseCommand from '../../../lib/webhooks/base';
2
+ export default class EventsIndex extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, 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
+ pipeline: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
@@ -0,0 +1,46 @@
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 base_1 = require("../../../lib/webhooks/base");
6
+ class EventsIndex extends base_1.default {
7
+ async run() {
8
+ const { flags } = await this.parse(EventsIndex);
9
+ const { path, display } = this.webhookType(flags);
10
+ core_1.ux.warn('heroku webhooks:event is deprecated, please use heroku webhooks:deliveries');
11
+ const { body: events } = await this.webhooksClient.get(`${path}/webhook-events`);
12
+ if (events.length === 0) {
13
+ this.log(`${display} has no events`);
14
+ }
15
+ else {
16
+ events.sort((a, b) => Date.parse(a.created_at) - Date.parse(b.created_at));
17
+ const printLine = (...args) => this.log(...args);
18
+ core_1.ux.table(events, {
19
+ id: {
20
+ header: 'Event ID',
21
+ },
22
+ resource: {
23
+ get: (w) => w.payload.resource,
24
+ },
25
+ action: {
26
+ get: (w) => w.payload.action,
27
+ },
28
+ published_at: {
29
+ header: 'Published At', get: (w) => w.payload.published_at,
30
+ },
31
+ }, {
32
+ 'no-header': false, printLine,
33
+ });
34
+ }
35
+ }
36
+ }
37
+ exports.default = EventsIndex;
38
+ EventsIndex.description = 'list webhook events on an app';
39
+ EventsIndex.examples = [
40
+ '$ heroku webhooks:events',
41
+ ];
42
+ EventsIndex.flags = {
43
+ app: command_1.flags.app(),
44
+ remote: command_1.flags.remote(),
45
+ pipeline: command_1.flags.pipeline({ char: 'p', description: 'pipeline on which to list', hidden: true }),
46
+ };
@@ -0,0 +1,14 @@
1
+ import BaseCommand from '../../../lib/webhooks/base';
2
+ export default class Info extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, 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
+ pipeline: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
10
+ static args: {
11
+ id: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,31 @@
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 base_1 = require("../../../lib/webhooks/base");
6
+ class Info extends base_1.default {
7
+ async run() {
8
+ const { flags, args } = await this.parse(Info);
9
+ const { path } = this.webhookType(flags);
10
+ core_1.ux.warn('heroku webhooks:event:info is deprecated, please use heroku webhooks:deliveries:info');
11
+ const { body: webhookEvent } = await this.webhooksClient.get(`${path}/webhook-events/${args.id}`);
12
+ const obj = {
13
+ payload: JSON.stringify(webhookEvent.payload, null, 2),
14
+ };
15
+ core_1.ux.styledHeader(webhookEvent.id);
16
+ core_1.ux.styledObject(obj);
17
+ }
18
+ }
19
+ exports.default = Info;
20
+ Info.description = 'info for a webhook event on an app';
21
+ Info.examples = [
22
+ '$ heroku webhooks:events:info 99999999-9999-9999-9999-999999999999',
23
+ ];
24
+ Info.flags = {
25
+ app: command_1.flags.app(),
26
+ remote: command_1.flags.remote(),
27
+ pipeline: command_1.flags.pipeline({ char: 'p', description: 'pipeline on which to list', hidden: true }),
28
+ };
29
+ Info.args = {
30
+ id: core_1.Args.string({ required: true }),
31
+ };
@@ -0,0 +1,11 @@
1
+ import BaseCommand from '../../lib/webhooks/base';
2
+ export default class Webhooks extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, 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
+ pipeline: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
@@ -0,0 +1,45 @@
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 base_1 = require("../../lib/webhooks/base");
7
+ class Webhooks extends base_1.default {
8
+ async run() {
9
+ const { flags } = await this.parse(Webhooks);
10
+ const { path, display } = this.webhookType(flags);
11
+ const { body: webhooks } = await this.webhooksClient.get(`${path}/webhooks`);
12
+ if (webhooks.length === 0) {
13
+ this.log(`${display} has no webhooks\nUse ${color_1.default.cmd('heroku webhooks:add')} to add one.`);
14
+ return;
15
+ }
16
+ webhooks.sort((a, b) => Date.parse(a.created_at) - Date.parse(b.created_at));
17
+ const printLine = (...args) => this.log(...args);
18
+ core_1.ux.table(webhooks, {
19
+ id: {
20
+ header: 'Webhook ID',
21
+ },
22
+ url: {
23
+ header: 'URL',
24
+ },
25
+ include: {
26
+ get: (row) => row.include.join(','),
27
+ },
28
+ level: {},
29
+ }, {
30
+ 'no-header': false, printLine,
31
+ });
32
+ }
33
+ }
34
+ exports.default = Webhooks;
35
+ Webhooks.description = 'list webhooks on an app';
36
+ Webhooks.examples = ['$ heroku webhooks'];
37
+ Webhooks.flags = {
38
+ app: command_1.flags.app(),
39
+ remote: command_1.flags.remote(),
40
+ pipeline: command_1.flags.pipeline({
41
+ char: 'p',
42
+ description: 'pipeline on which to list',
43
+ hidden: true,
44
+ }),
45
+ };
@@ -0,0 +1,14 @@
1
+ import BaseCommand from '../../lib/webhooks/base';
2
+ export default class WebhooksInfo extends BaseCommand {
3
+ static description: string;
4
+ static example: string[];
5
+ static flags: {
6
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, 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
+ pipeline: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
10
+ static args: {
11
+ id: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,31 @@
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 base_1 = require("../../lib/webhooks/base");
6
+ class WebhooksInfo extends base_1.default {
7
+ async run() {
8
+ const { flags, args } = await this.parse(WebhooksInfo);
9
+ const { path } = this.webhookType(flags);
10
+ const { body: webhook } = await this.webhooksClient.get(`${path}/webhooks/${args.id}`);
11
+ const obj = {
12
+ 'Webhook ID': webhook.id,
13
+ URL: webhook.url,
14
+ Include: webhook.include.join(','),
15
+ Level: webhook.level,
16
+ };
17
+ core_1.ux.styledHeader(webhook.id);
18
+ core_1.ux.styledObject(obj);
19
+ }
20
+ }
21
+ exports.default = WebhooksInfo;
22
+ WebhooksInfo.description = 'info for a webhook on an app';
23
+ WebhooksInfo.example = ['$ heroku webhooks:info 99999999-9999-9999-9999-999999999999'];
24
+ WebhooksInfo.flags = {
25
+ app: command_1.flags.app(),
26
+ remote: command_1.flags.remote(),
27
+ pipeline: command_1.flags.pipeline({ char: 'p', description: 'pipeline on which to list', hidden: true }),
28
+ };
29
+ WebhooksInfo.args = {
30
+ id: core_1.Args.string({ required: true }),
31
+ };
@@ -0,0 +1,14 @@
1
+ import BaseCommand from '../../lib/webhooks/base';
2
+ export default class WebhooksRemove extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ app: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, 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
+ pipeline: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ };
10
+ static args: {
11
+ id: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
12
+ };
13
+ run(): Promise<void>;
14
+ }