@optimizely/ocp-cli 1.0.0-beta.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 (283) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +18 -0
  3. package/bin/opti.js +3 -0
  4. package/dist/commands/accounts/Whoami.d.ts +3 -0
  5. package/dist/commands/accounts/Whoami.js +34 -0
  6. package/dist/commands/accounts/Whoami.js.map +1 -0
  7. package/dist/commands/accounts/Whois.d.ts +6 -0
  8. package/dist/commands/accounts/Whois.js +65 -0
  9. package/dist/commands/accounts/Whois.js.map +1 -0
  10. package/dist/commands/app/BaseBuildCommand.d.ts +23 -0
  11. package/dist/commands/app/BaseBuildCommand.js +227 -0
  12. package/dist/commands/app/BaseBuildCommand.js.map +1 -0
  13. package/dist/commands/app/Init.d.ts +20 -0
  14. package/dist/commands/app/Init.js +285 -0
  15. package/dist/commands/app/Init.js.map +1 -0
  16. package/dist/commands/app/Logs.d.ts +19 -0
  17. package/dist/commands/app/Logs.js +230 -0
  18. package/dist/commands/app/Logs.js.map +1 -0
  19. package/dist/commands/app/Package.d.ts +4 -0
  20. package/dist/commands/app/Package.js +51 -0
  21. package/dist/commands/app/Package.js.map +1 -0
  22. package/dist/commands/app/Prepare.d.ts +8 -0
  23. package/dist/commands/app/Prepare.js +112 -0
  24. package/dist/commands/app/Prepare.js.map +1 -0
  25. package/dist/commands/app/Register.d.ts +7 -0
  26. package/dist/commands/app/Register.js +58 -0
  27. package/dist/commands/app/Register.js.map +1 -0
  28. package/dist/commands/app/Validate.d.ts +4 -0
  29. package/dist/commands/app/Validate.js +27 -0
  30. package/dist/commands/app/Validate.js.map +1 -0
  31. package/dist/commands/availability/List.d.ts +4 -0
  32. package/dist/commands/availability/List.js +47 -0
  33. package/dist/commands/availability/List.js.map +1 -0
  34. package/dist/commands/directory/Info.d.ts +7 -0
  35. package/dist/commands/directory/Info.js +92 -0
  36. package/dist/commands/directory/Info.js.map +1 -0
  37. package/dist/commands/directory/Install.d.ts +6 -0
  38. package/dist/commands/directory/Install.js +54 -0
  39. package/dist/commands/directory/Install.js.map +1 -0
  40. package/dist/commands/directory/List.d.ts +8 -0
  41. package/dist/commands/directory/List.js +102 -0
  42. package/dist/commands/directory/List.js.map +1 -0
  43. package/dist/commands/directory/ListFunctions.d.ts +7 -0
  44. package/dist/commands/directory/ListFunctions.js +77 -0
  45. package/dist/commands/directory/ListFunctions.js.map +1 -0
  46. package/dist/commands/directory/ListGlobalFunctions.d.ts +6 -0
  47. package/dist/commands/directory/ListGlobalFunctions.js +72 -0
  48. package/dist/commands/directory/ListGlobalFunctions.js.map +1 -0
  49. package/dist/commands/directory/ListInstalls.d.ts +8 -0
  50. package/dist/commands/directory/ListInstalls.js +81 -0
  51. package/dist/commands/directory/ListInstalls.js.map +1 -0
  52. package/dist/commands/directory/Publish.d.ts +8 -0
  53. package/dist/commands/directory/Publish.js +180 -0
  54. package/dist/commands/directory/Publish.js.map +1 -0
  55. package/dist/commands/directory/Status.d.ts +5 -0
  56. package/dist/commands/directory/Status.js +60 -0
  57. package/dist/commands/directory/Status.js.map +1 -0
  58. package/dist/commands/directory/Uninstall.d.ts +6 -0
  59. package/dist/commands/directory/Uninstall.js +50 -0
  60. package/dist/commands/directory/Uninstall.js.map +1 -0
  61. package/dist/commands/directory/Unpublish.d.ts +10 -0
  62. package/dist/commands/directory/Unpublish.js +181 -0
  63. package/dist/commands/directory/Unpublish.js.map +1 -0
  64. package/dist/commands/directory/Uprade.d.ts +8 -0
  65. package/dist/commands/directory/Uprade.js +100 -0
  66. package/dist/commands/directory/Uprade.js.map +1 -0
  67. package/dist/commands/env/GetEnvironment.d.ts +3 -0
  68. package/dist/commands/env/GetEnvironment.js +28 -0
  69. package/dist/commands/env/GetEnvironment.js.map +1 -0
  70. package/dist/commands/env/SetEnvironment.d.ts +4 -0
  71. package/dist/commands/env/SetEnvironment.js +63 -0
  72. package/dist/commands/env/SetEnvironment.js.map +1 -0
  73. package/dist/commands/jobs/List.d.ts +21 -0
  74. package/dist/commands/jobs/List.js +268 -0
  75. package/dist/commands/jobs/List.js.map +1 -0
  76. package/dist/commands/jobs/RuntimeStatus.d.ts +5 -0
  77. package/dist/commands/jobs/RuntimeStatus.js +65 -0
  78. package/dist/commands/jobs/RuntimeStatus.js.map +1 -0
  79. package/dist/commands/jobs/Terminate.d.ts +5 -0
  80. package/dist/commands/jobs/Terminate.js +45 -0
  81. package/dist/commands/jobs/Terminate.js.map +1 -0
  82. package/dist/commands/jobs/Trigger.d.ts +8 -0
  83. package/dist/commands/jobs/Trigger.js +58 -0
  84. package/dist/commands/jobs/Trigger.js.map +1 -0
  85. package/dist/commands/review/List.d.ts +5 -0
  86. package/dist/commands/review/List.js +81 -0
  87. package/dist/commands/review/List.js.map +1 -0
  88. package/dist/commands/review/Open.d.ts +4 -0
  89. package/dist/commands/review/Open.js +42 -0
  90. package/dist/commands/review/Open.js.map +1 -0
  91. package/dist/index.d.ts +1 -0
  92. package/dist/index.js +15 -0
  93. package/dist/index.js.map +1 -0
  94. package/dist/lib/AppContext.d.ts +9 -0
  95. package/dist/lib/AppContext.js +43 -0
  96. package/dist/lib/AppContext.js.map +1 -0
  97. package/dist/lib/AppPackager.d.ts +8 -0
  98. package/dist/lib/AppPackager.js +40 -0
  99. package/dist/lib/AppPackager.js.map +1 -0
  100. package/dist/lib/AppUpdater.d.ts +9 -0
  101. package/dist/lib/AppUpdater.js +155 -0
  102. package/dist/lib/AppUpdater.js.map +1 -0
  103. package/dist/lib/AppUploader.d.ts +8 -0
  104. package/dist/lib/AppUploader.js +36 -0
  105. package/dist/lib/AppUploader.js.map +1 -0
  106. package/dist/lib/Config.d.ts +15 -0
  107. package/dist/lib/Config.js +47 -0
  108. package/dist/lib/Config.js.map +1 -0
  109. package/dist/lib/EnvironmentalOutput.d.ts +1 -0
  110. package/dist/lib/EnvironmentalOutput.js +21 -0
  111. package/dist/lib/EnvironmentalOutput.js.map +1 -0
  112. package/dist/lib/Moria.d.ts +51 -0
  113. package/dist/lib/Moria.js +30 -0
  114. package/dist/lib/Moria.js.map +1 -0
  115. package/dist/lib/MoriaApi.d.ts +22 -0
  116. package/dist/lib/MoriaApi.js +75 -0
  117. package/dist/lib/MoriaApi.js.map +1 -0
  118. package/dist/lib/Rivendell.d.ts +351 -0
  119. package/dist/lib/Rivendell.js +328 -0
  120. package/dist/lib/Rivendell.js.map +1 -0
  121. package/dist/lib/RivendellApi.d.ts +22 -0
  122. package/dist/lib/RivendellApi.js +90 -0
  123. package/dist/lib/RivendellApi.js.map +1 -0
  124. package/dist/lib/Shards.d.ts +3 -0
  125. package/dist/lib/Shards.js +34 -0
  126. package/dist/lib/Shards.js.map +1 -0
  127. package/dist/lib/StringUtils.d.ts +1 -0
  128. package/dist/lib/StringUtils.js +9 -0
  129. package/dist/lib/StringUtils.js.map +1 -0
  130. package/dist/lib/TeminalPassthru.d.ts +5 -0
  131. package/dist/lib/TeminalPassthru.js +12 -0
  132. package/dist/lib/TeminalPassthru.js.map +1 -0
  133. package/dist/lib/TerminalConfirm.d.ts +3 -0
  134. package/dist/lib/TerminalConfirm.js +26 -0
  135. package/dist/lib/TerminalConfirm.js.map +1 -0
  136. package/dist/lib/TerminalInput.d.ts +32 -0
  137. package/dist/lib/TerminalInput.js +207 -0
  138. package/dist/lib/TerminalInput.js.map +1 -0
  139. package/dist/lib/TerminalMenu.d.ts +34 -0
  140. package/dist/lib/TerminalMenu.js +186 -0
  141. package/dist/lib/TerminalMenu.js.map +1 -0
  142. package/dist/lib/TerminalOutput.d.ts +5 -0
  143. package/dist/lib/TerminalOutput.js +12 -0
  144. package/dist/lib/TerminalOutput.js.map +1 -0
  145. package/dist/lib/TerminalSpinner.d.ts +15 -0
  146. package/dist/lib/TerminalSpinner.js +71 -0
  147. package/dist/lib/TerminalSpinner.js.map +1 -0
  148. package/dist/lib/build.d.ts +5 -0
  149. package/dist/lib/build.js +35 -0
  150. package/dist/lib/build.js.map +1 -0
  151. package/dist/lib/checkForUpdate.d.ts +2 -0
  152. package/dist/lib/checkForUpdate.js +58 -0
  153. package/dist/lib/checkForUpdate.js.map +1 -0
  154. package/dist/lib/dev/app.d.ts +8 -0
  155. package/dist/lib/dev/app.js +53 -0
  156. package/dist/lib/dev/app.js.map +1 -0
  157. package/dist/lib/dev/index.d.ts +1 -0
  158. package/dist/lib/dev/index.js +14 -0
  159. package/dist/lib/dev/index.js.map +1 -0
  160. package/dist/lib/dev/logger.d.ts +15 -0
  161. package/dist/lib/dev/logger.js +58 -0
  162. package/dist/lib/dev/logger.js.map +1 -0
  163. package/dist/lib/die.d.ts +5 -0
  164. package/dist/lib/die.js +14 -0
  165. package/dist/lib/die.js.map +1 -0
  166. package/dist/lib/directoryExists.d.ts +1 -0
  167. package/dist/lib/directoryExists.js +9 -0
  168. package/dist/lib/directoryExists.js.map +1 -0
  169. package/dist/lib/formatBuildState.d.ts +2 -0
  170. package/dist/lib/formatBuildState.js +23 -0
  171. package/dist/lib/formatBuildState.js.map +1 -0
  172. package/dist/lib/formatError.d.ts +1 -0
  173. package/dist/lib/formatError.js +45 -0
  174. package/dist/lib/formatError.js.map +1 -0
  175. package/dist/lib/formatJobStatus.d.ts +3 -0
  176. package/dist/lib/formatJobStatus.js +28 -0
  177. package/dist/lib/formatJobStatus.js.map +1 -0
  178. package/dist/lib/formatReviewStatus.d.ts +4 -0
  179. package/dist/lib/formatReviewStatus.js +28 -0
  180. package/dist/lib/formatReviewStatus.js.map +1 -0
  181. package/dist/lib/formatTimstamp.d.ts +1 -0
  182. package/dist/lib/formatTimstamp.js +25 -0
  183. package/dist/lib/formatTimstamp.js.map +1 -0
  184. package/dist/lib/formatVersionState.d.ts +2 -0
  185. package/dist/lib/formatVersionState.js +35 -0
  186. package/dist/lib/formatVersionState.js.map +1 -0
  187. package/dist/lib/gatherAppEnv.d.ts +3 -0
  188. package/dist/lib/gatherAppEnv.js +71 -0
  189. package/dist/lib/gatherAppEnv.js.map +1 -0
  190. package/dist/lib/handleInterrupt.d.ts +1 -0
  191. package/dist/lib/handleInterrupt.js +17 -0
  192. package/dist/lib/handleInterrupt.js.map +1 -0
  193. package/dist/lib/jobRuntime.d.ts +3 -0
  194. package/dist/lib/jobRuntime.js +16 -0
  195. package/dist/lib/jobRuntime.js.map +1 -0
  196. package/dist/lib/parseDate.d.ts +2 -0
  197. package/dist/lib/parseDate.js +26 -0
  198. package/dist/lib/parseDate.js.map +1 -0
  199. package/dist/lib/templating/TemplateRenderer.d.ts +13 -0
  200. package/dist/lib/templating/TemplateRenderer.js +62 -0
  201. package/dist/lib/templating/TemplateRenderer.js.map +1 -0
  202. package/dist/lib/templating/fetchTemplatesManifest.d.ts +1 -0
  203. package/dist/lib/templating/fetchTemplatesManifest.js +10 -0
  204. package/dist/lib/templating/fetchTemplatesManifest.js.map +1 -0
  205. package/dist/lib/templating/types.d.ts +27 -0
  206. package/dist/lib/templating/types.js +3 -0
  207. package/dist/lib/templating/types.js.map +1 -0
  208. package/dist/oo-cli.manifest.json +1142 -0
  209. package/dist/test/setup.d.ts +0 -0
  210. package/dist/test/setup.js +4 -0
  211. package/dist/test/setup.js.map +1 -0
  212. package/package.json +94 -0
  213. package/src/commands/accounts/Whoami.ts +19 -0
  214. package/src/commands/accounts/Whois.ts +51 -0
  215. package/src/commands/app/BaseBuildCommand.ts +266 -0
  216. package/src/commands/app/Init.ts +303 -0
  217. package/src/commands/app/Logs.ts +241 -0
  218. package/src/commands/app/Package.ts +39 -0
  219. package/src/commands/app/Prepare.ts +108 -0
  220. package/src/commands/app/Register.ts +41 -0
  221. package/src/commands/app/Validate.ts +13 -0
  222. package/src/commands/availability/List.ts +37 -0
  223. package/src/commands/directory/Info.ts +83 -0
  224. package/src/commands/directory/Install.ts +37 -0
  225. package/src/commands/directory/List.ts +96 -0
  226. package/src/commands/directory/ListFunctions.ts +60 -0
  227. package/src/commands/directory/ListGlobalFunctions.ts +54 -0
  228. package/src/commands/directory/ListInstalls.ts +73 -0
  229. package/src/commands/directory/Publish.ts +179 -0
  230. package/src/commands/directory/Status.ts +45 -0
  231. package/src/commands/directory/Uninstall.ts +32 -0
  232. package/src/commands/directory/Unpublish.ts +173 -0
  233. package/src/commands/directory/Uprade.ts +85 -0
  234. package/src/commands/env/GetEnvironment.ts +14 -0
  235. package/src/commands/env/SetEnvironment.ts +52 -0
  236. package/src/commands/jobs/List.ts +278 -0
  237. package/src/commands/jobs/RuntimeStatus.ts +49 -0
  238. package/src/commands/jobs/Terminate.ts +29 -0
  239. package/src/commands/jobs/Trigger.ts +41 -0
  240. package/src/commands/review/List.ts +76 -0
  241. package/src/commands/review/Open.ts +28 -0
  242. package/src/index.ts +15 -0
  243. package/src/lib/AppContext.ts +47 -0
  244. package/src/lib/AppPackager.ts +47 -0
  245. package/src/lib/AppUpdater.ts +177 -0
  246. package/src/lib/AppUploader.ts +39 -0
  247. package/src/lib/Config.ts +60 -0
  248. package/src/lib/EnvironmentalOutput.ts +18 -0
  249. package/src/lib/Moria.ts +66 -0
  250. package/src/lib/MoriaApi.ts +86 -0
  251. package/src/lib/Rivendell.ts +572 -0
  252. package/src/lib/RivendellApi.ts +99 -0
  253. package/src/lib/Shards.ts +37 -0
  254. package/src/lib/StringUtils.ts +4 -0
  255. package/src/lib/TeminalPassthru.ts +7 -0
  256. package/src/lib/TerminalConfirm.ts +27 -0
  257. package/src/lib/TerminalInput.ts +236 -0
  258. package/src/lib/TerminalMenu.ts +221 -0
  259. package/src/lib/TerminalOutput.ts +7 -0
  260. package/src/lib/TerminalSpinner.ts +76 -0
  261. package/src/lib/build.ts +36 -0
  262. package/src/lib/checkForUpdate.ts +63 -0
  263. package/src/lib/dev/app.ts +58 -0
  264. package/src/lib/dev/index.ts +1 -0
  265. package/src/lib/dev/logger.ts +77 -0
  266. package/src/lib/die.ts +10 -0
  267. package/src/lib/directoryExists.ts +5 -0
  268. package/src/lib/formatBuildState.ts +20 -0
  269. package/src/lib/formatError.ts +39 -0
  270. package/src/lib/formatJobStatus.ts +24 -0
  271. package/src/lib/formatReviewStatus.ts +27 -0
  272. package/src/lib/formatTimstamp.ts +21 -0
  273. package/src/lib/formatVersionState.ts +31 -0
  274. package/src/lib/gatherAppEnv.ts +75 -0
  275. package/src/lib/handleInterrupt.ts +13 -0
  276. package/src/lib/jobRuntime.ts +12 -0
  277. package/src/lib/parseDate.ts +21 -0
  278. package/src/lib/templating/TemplateRenderer.ts +65 -0
  279. package/src/lib/templating/fetchTemplatesManifest.ts +6 -0
  280. package/src/lib/templating/types.ts +30 -0
  281. package/src/test/setup.ts +2 -0
  282. package/src/types/columnify.d.ts +27 -0
  283. package/src/types/gitignore-parser.d.ts +11 -0
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.PrepareCommand = void 0;
10
+ const chalk_1 = require("chalk");
11
+ const oo_cli_1 = require("oo-cli");
12
+ const AppContext_1 = require("../../lib/AppContext");
13
+ const Publish_1 = require("../directory/Publish");
14
+ const BaseBuildCommand_1 = require("./BaseBuildCommand");
15
+ const TerminalConfirm_1 = require("../../lib/TerminalConfirm");
16
+ const semver = require("semver");
17
+ const fs = require("fs");
18
+ const path = require("path");
19
+ const Rivendell_1 = require("../../lib/Rivendell");
20
+ let PrepareCommand = class PrepareCommand extends BaseBuildCommand_1.BaseBuildCommand {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.usePreviousAppEnvValues = false;
24
+ }
25
+ async prepare() {
26
+ var _a;
27
+ const context = AppContext_1.appContext();
28
+ if (!context.appId || !context.version) {
29
+ console.log(chalk_1.default.gray('App id or version missing in the manifest\n'));
30
+ return;
31
+ }
32
+ const requiresReview = await this.requiresReview(context.version);
33
+ if (requiresReview) {
34
+ const isInReview = await this.isInReview(context.appId, context.version);
35
+ const reviewMessage = isInReview ?
36
+ chalk_1.default.gray('The app version is already in review. This will update the review and the app can\'t be published until it is approved. ' +
37
+ `${chalk_1.default.yellow('Are you sure?')}`) :
38
+ chalk_1.default.gray('You are uploading a release version of the app. ' +
39
+ 'This will start a review process and the app can\'t be published until it is approved. ' +
40
+ `${chalk_1.default.yellow('Are you sure?')}`);
41
+ const reviewConfirmation = await TerminalConfirm_1.TerminalConfirm.ask(reviewMessage);
42
+ if (!reviewConfirmation) {
43
+ return;
44
+ }
45
+ }
46
+ if (context.version && this.bumpDevVersion) {
47
+ if (this.isDevVersion(context.version)) {
48
+ const bumpedVersion = (_a = semver.parse(context.version)) === null || _a === void 0 ? void 0 : _a.inc('prerelease', 'dev').format();
49
+ if (!bumpedVersion) {
50
+ console.log(chalk_1.default.red(`Cannot parse app version: ${context.version}`));
51
+ return;
52
+ }
53
+ console.log(chalk_1.default.gray(`Bumping dev version to ${bumpedVersion}`));
54
+ this.updateVersionInAppManifest(context.version, bumpedVersion);
55
+ context.version = bumpedVersion;
56
+ }
57
+ else {
58
+ console.log(chalk_1.default.yellow('Not a dev version. Ignoring --bump-dev-version flag'));
59
+ }
60
+ }
61
+ await this.run(true, true, this.usePreviousAppEnvValues);
62
+ await this.reviewAppVersion(context.appId, context.version);
63
+ if (this.publish) {
64
+ const cmd = new Publish_1.PublishCommand();
65
+ cmd.appVersion = `${context.appId}@${context.version}`;
66
+ await cmd.publish();
67
+ }
68
+ else {
69
+ if (requiresReview) {
70
+ const appVersion = `${context.appId}@${context.version}`;
71
+ const appReview = await Rivendell_1.Rivendell.getReviewUrl(appVersion);
72
+ const reviewUrl = appReview.url;
73
+ console.log(chalk_1.default.gray(`\nYour app has been sent to review. Your code will be available in a private repository on GitHub, ` +
74
+ `and you will receive an invitation from GitHub by email for access.` +
75
+ `It is important you accept this invitation in order to receive communications about your app from the review team.`));
76
+ console.log(chalk_1.default.gray(`\nOnce the review is approved, your app can be deployed to app directory.\n`));
77
+ console.log(chalk_1.default.gray(`You can run ${chalk_1.default.white(`ocp review open ${appVersion}`)} to open the review URL at any time.`));
78
+ console.log(chalk_1.default.gray(`The URL for your repo is ${chalk_1.default.white(`${reviewUrl}`)}\n`));
79
+ }
80
+ else {
81
+ console.log(chalk_1.default.gray(`\nUse ${chalk_1.default.white(`ocp directory publish ${context.appId}@${context.version}`)} to publish and release your app\n`));
82
+ }
83
+ }
84
+ // explicitly exit because we're using terminal kit
85
+ process.exit(0);
86
+ }
87
+ updateVersionInAppManifest(oldVersion, newVersion) {
88
+ const file = path.join(process.cwd(), 'app.yml');
89
+ fs.writeFileSync(file, fs.readFileSync(file, 'utf8').replace(new RegExp(`(version\\s*:\\s*)${oldVersion}`), `$1${newVersion}`));
90
+ }
91
+ };
92
+ __decorate([
93
+ oo_cli_1.flag,
94
+ oo_cli_1.help('Automatically publish if the upload is successful')
95
+ ], PrepareCommand.prototype, "publish", void 0);
96
+ __decorate([
97
+ oo_cli_1.flag('use-previous-app-env-values'),
98
+ oo_cli_1.help('Use app env values (.env file) from the previous version of the app. Any values in local .env file will be ignored')
99
+ ], PrepareCommand.prototype, "usePreviousAppEnvValues", void 0);
100
+ __decorate([
101
+ oo_cli_1.flag('bump-dev-version'),
102
+ oo_cli_1.help('Bump dev version before building. Allows quickly testing dev versions')
103
+ ], PrepareCommand.prototype, "bumpDevVersion", void 0);
104
+ __decorate([
105
+ oo_cli_1.command,
106
+ oo_cli_1.help('Validate, package, upload and build an app to prepare for publishing')
107
+ ], PrepareCommand.prototype, "prepare", null);
108
+ PrepareCommand = __decorate([
109
+ oo_cli_1.namespace('app')
110
+ ], PrepareCommand);
111
+ exports.PrepareCommand = PrepareCommand;
112
+ //# sourceMappingURL=Prepare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Prepare.js","sourceRoot":"","sources":["../../../src/commands/app/Prepare.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare class RegisterCommand {
2
+ id: string;
3
+ name: string;
4
+ personal: boolean;
5
+ private availability;
6
+ register(): Promise<void>;
7
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.RegisterCommand = void 0;
10
+ const oo_cli_1 = require("oo-cli");
11
+ const die_1 = require("../../lib/die");
12
+ const formatError_1 = require("../../lib/formatError");
13
+ const Rivendell_1 = require("../../lib/Rivendell");
14
+ const Shards_1 = require("../../lib/Shards");
15
+ let RegisterCommand = class RegisterCommand {
16
+ constructor() {
17
+ this.personal = false;
18
+ this.availability = '';
19
+ }
20
+ async register() {
21
+ try {
22
+ const shards = await Shards_1.applicableShards(this.availability);
23
+ for (const shard of shards) {
24
+ const app = await Rivendell_1.Rivendell.registerApp(this.id, this.name, this.personal, shard);
25
+ console.log(`Registered app ${app.id} with name "${app.name} in ${shard}`);
26
+ }
27
+ }
28
+ catch (e) {
29
+ die_1.die(formatError_1.formatError(e));
30
+ }
31
+ }
32
+ };
33
+ __decorate([
34
+ oo_cli_1.param,
35
+ oo_cli_1.help('The app id to reserve')
36
+ ], RegisterCommand.prototype, "id", void 0);
37
+ __decorate([
38
+ oo_cli_1.param,
39
+ oo_cli_1.help('The display name of the app')
40
+ ], RegisterCommand.prototype, "name", void 0);
41
+ __decorate([
42
+ oo_cli_1.flag,
43
+ oo_cli_1.help('Do not share this app with other developers in your organization. ' +
44
+ 'If not set, the app will be shared with all developers in your organization')
45
+ ], RegisterCommand.prototype, "personal", void 0);
46
+ __decorate([
47
+ oo_cli_1.option('a'),
48
+ oo_cli_1.help('The availability zone that will be targeted (default: us)')
49
+ ], RegisterCommand.prototype, "availability", void 0);
50
+ __decorate([
51
+ oo_cli_1.command,
52
+ oo_cli_1.help('Register an app version')
53
+ ], RegisterCommand.prototype, "register", null);
54
+ RegisterCommand = __decorate([
55
+ oo_cli_1.namespace('app')
56
+ ], RegisterCommand);
57
+ exports.RegisterCommand = RegisterCommand;
58
+ //# sourceMappingURL=Register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Register.js","sourceRoot":"","sources":["../../../src/commands/app/Register.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mCAAqE;AACrE,uCAAkC;AAClC,uDAAkD;AAClD,mDAA8C;AAC9C,6CAAkD;AAGlD,IAAa,eAAe,GAA5B,MAAa,eAAe;IAA5B;QAcS,aAAQ,GAAY,KAAK,CAAC;QAIzB,iBAAY,GAAW,EAAE,CAAC;IAepC,CAAC;IAXQ,KAAK,CAAC,QAAQ;QACnB,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,yBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBAC1B,MAAM,GAAG,GAAG,MAAM,qBAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAClF,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,CAAC,EAAE,eAAe,GAAG,CAAC,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC;aAC5E;SACF;QAAC,OAAO,CAAC,EAAE;YACV,SAAG,CAAC,yBAAW,CAAC,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC;CACF,CAAA;AA9BC;IAFC,cAAK;IACL,aAAI,CAAC,uBAAuB,CAAC;2CACX;AAInB;IAFC,cAAK;IACL,aAAI,CAAC,6BAA6B,CAAC;6CACf;AAOrB;IALC,aAAI;IACJ,aAAI,CACH,oEAAoE;QACpE,6EAA6E,CAC9E;iDACgC;AAIjC;IAFC,eAAM,CAAC,GAAG,CAAC;IACX,aAAI,CAAC,2DAA2D,CAAC;qDAChC;AAIlC;IAFC,gBAAO;IACP,aAAI,CAAC,yBAAyB,CAAC;+CAW/B;AAhCU,eAAe;IAD3B,kBAAS,CAAC,KAAK,CAAC;GACJ,eAAe,CAiC3B;AAjCY,0CAAe"}
@@ -0,0 +1,4 @@
1
+ import { BaseBuildCommand } from './BaseBuildCommand';
2
+ export declare class ValidateCommand extends BaseBuildCommand {
3
+ validate(): Promise<void>;
4
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ValidateCommand = void 0;
10
+ const chalk_1 = require("chalk");
11
+ const oo_cli_1 = require("oo-cli");
12
+ const BaseBuildCommand_1 = require("./BaseBuildCommand");
13
+ let ValidateCommand = class ValidateCommand extends BaseBuildCommand_1.BaseBuildCommand {
14
+ async validate() {
15
+ await this.run(false, false, false);
16
+ console.log(chalk_1.default.gray(`\nUse ${chalk_1.default.white('ocp app prepare')} to upload and build your app\n`));
17
+ }
18
+ };
19
+ __decorate([
20
+ oo_cli_1.command,
21
+ oo_cli_1.help('Validate an app locally')
22
+ ], ValidateCommand.prototype, "validate", null);
23
+ ValidateCommand = __decorate([
24
+ oo_cli_1.namespace('app')
25
+ ], ValidateCommand);
26
+ exports.ValidateCommand = ValidateCommand;
27
+ //# sourceMappingURL=Validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Validate.js","sourceRoot":"","sources":["../../../src/commands/app/Validate.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iCAA0B;AAC1B,mCAAgD;AAChD,yDAAoD;AAGpD,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,mCAAgB;IAG5C,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,eAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,iCAAiC,CAAC,CAAC,CAAC;IACpG,CAAC;CACF,CAAA;AAJC;IAFC,gBAAO;IACP,aAAI,CAAC,yBAAyB,CAAC;+CAI/B;AANU,eAAe;IAD3B,kBAAS,CAAC,KAAK,CAAC;GACJ,eAAe,CAO3B;AAPY,0CAAe"}
@@ -0,0 +1,4 @@
1
+ export declare class ListCommand {
2
+ list(): Promise<void>;
3
+ private render;
4
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ListCommand = void 0;
10
+ const oo_cli_1 = require("oo-cli");
11
+ const die_1 = require("../../lib/die");
12
+ const formatError_1 = require("../../lib/formatError");
13
+ const Rivendell_1 = require("../../lib/Rivendell");
14
+ const chalk_1 = require("chalk");
15
+ const table = require("text-table");
16
+ const StringUtils_1 = require("../../lib/StringUtils");
17
+ let ListCommand = class ListCommand {
18
+ async list() {
19
+ try {
20
+ this.render(await Rivendell_1.Rivendell.shards());
21
+ }
22
+ catch (e) {
23
+ die_1.die(formatError_1.formatError(e));
24
+ }
25
+ }
26
+ render(accounts) {
27
+ const header = ['Name', 'Description'].map((item) => chalk_1.default.grey(item));
28
+ const rows = accounts.map((shard) => [shard.id, shard.description]);
29
+ const t = table([
30
+ header,
31
+ ...rows
32
+ ], {
33
+ hsep: ' '.repeat(8),
34
+ stringLength: StringUtils_1.styledStringLength
35
+ });
36
+ console.log(`\n${t}\n`);
37
+ }
38
+ };
39
+ __decorate([
40
+ oo_cli_1.command,
41
+ oo_cli_1.help('List all availability zones')
42
+ ], ListCommand.prototype, "list", null);
43
+ ListCommand = __decorate([
44
+ oo_cli_1.namespace('availability')
45
+ ], ListCommand);
46
+ exports.ListCommand = ListCommand;
47
+ //# sourceMappingURL=List.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/commands/availability/List.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mCAAgD;AAChD,uCAAkC;AAClC,uDAAkD;AAClD,mDAA8C;AAE9C,iCAA0B;AAC1B,oCAAoC;AACpC,uDAAyD;AAGzD,IAAa,WAAW,GAAxB,MAAa,WAAW;IAGf,KAAK,CAAC,IAAI;QACf,IAAI;YACF,IAAI,CAAC,MAAM,CAAC,MAAM,qBAAS,CAAC,MAAM,EAAE,CAAC,CAAC;SACvC;QAAC,OAAO,CAAC,EAAE;YACV,SAAG,CAAC,yBAAW,CAAC,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC;IAEO,MAAM,CAAC,QAAiB;QAC9B,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,GAAG,KAAK,CACb;YACE,MAAM;YACN,GAAG,IAAI;SACR,EACD;YACE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACnB,YAAY,EAAE,gCAAkB;SACjC,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF,CAAA;AAvBC;IAFC,gBAAO;IACP,aAAI,CAAC,6BAA6B,CAAC;uCAOnC;AATU,WAAW;IADvB,kBAAS,CAAC,cAAc,CAAC;GACb,WAAW,CA0BvB;AA1BY,kCAAW"}
@@ -0,0 +1,7 @@
1
+ export declare class InfoCommand {
2
+ appId: string;
3
+ private availability;
4
+ info(): Promise<void>;
5
+ private render;
6
+ private fetchAppVersions;
7
+ }
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.InfoCommand = void 0;
10
+ const chalk_1 = require("chalk");
11
+ const oo_cli_1 = require("oo-cli");
12
+ const die_1 = require("../../lib/die");
13
+ const formatVersionState_1 = require("../../lib/formatVersionState");
14
+ const formatReviewStatus_1 = require("../../lib/formatReviewStatus");
15
+ const formatError_1 = require("../../lib/formatError");
16
+ const Rivendell_1 = require("../../lib/Rivendell");
17
+ const table = require("text-table");
18
+ const StringUtils_1 = require("../../lib/StringUtils");
19
+ var SortDirection = Rivendell_1.Rivendell.SortDirection;
20
+ let InfoCommand = class InfoCommand {
21
+ constructor() {
22
+ this.availability = '';
23
+ }
24
+ async info() {
25
+ try {
26
+ await this.render(await Rivendell_1.Rivendell.fetchApp(this.appId, this.availability));
27
+ }
28
+ catch (e) {
29
+ die_1.die(formatError_1.formatError(e));
30
+ }
31
+ }
32
+ async render(app) {
33
+ console.log('');
34
+ console.log(` ${chalk_1.default.bold.underline('General')}\n`);
35
+ console.log(` ${chalk_1.default.cyanBright('id')}\t\t${app.id}`);
36
+ console.log(` ${chalk_1.default.cyanBright('name')}\t${app.name}`);
37
+ console.log(` ${chalk_1.default.cyanBright('created')}\t${app.createdAt}`);
38
+ console.log('');
39
+ // Versions
40
+ console.log(` ${chalk_1.default.bold.underline('Versions')}\n`);
41
+ const versions = await this.fetchAppVersions();
42
+ if (!versions) {
43
+ console.log(` ${chalk_1.default.italic('None')}`);
44
+ }
45
+ else {
46
+ const rows = versions.map((appVersion) => {
47
+ const r = [
48
+ '',
49
+ appVersion.id.version,
50
+ formatVersionState_1.formatVersionState(appVersion.state)
51
+ ];
52
+ if (appVersion.reviewStatus) {
53
+ r.push(formatReviewStatus_1.formatReviewStatus(appVersion.reviewStatus, appVersion.state));
54
+ }
55
+ return r;
56
+ });
57
+ const t = table(rows, {
58
+ hsep: ' '.repeat(4),
59
+ stringLength: StringUtils_1.styledStringLength
60
+ });
61
+ console.log(`\n${t}\n`);
62
+ }
63
+ }
64
+ async fetchAppVersions() {
65
+ return await Rivendell_1.Rivendell.searchAppVersions({
66
+ appId: this.appId,
67
+ sorts: [
68
+ {
69
+ field: 'createdAt',
70
+ direction: SortDirection.DESC
71
+ }
72
+ ]
73
+ }, this.availability);
74
+ }
75
+ };
76
+ __decorate([
77
+ oo_cli_1.param,
78
+ oo_cli_1.help('The App ID to look up')
79
+ ], InfoCommand.prototype, "appId", void 0);
80
+ __decorate([
81
+ oo_cli_1.option('a'),
82
+ oo_cli_1.help('The availability zone that will be targeted (default: us)')
83
+ ], InfoCommand.prototype, "availability", void 0);
84
+ __decorate([
85
+ oo_cli_1.command,
86
+ oo_cli_1.help('Get information about an app')
87
+ ], InfoCommand.prototype, "info", null);
88
+ InfoCommand = __decorate([
89
+ oo_cli_1.namespace('directory')
90
+ ], InfoCommand);
91
+ exports.InfoCommand = InfoCommand;
92
+ //# sourceMappingURL=Info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Info.js","sourceRoot":"","sources":["../../../src/commands/directory/Info.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare class InstallCommand {
2
+ appVersion: string;
3
+ trackerId: string;
4
+ private availability;
5
+ install(): Promise<void>;
6
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.InstallCommand = void 0;
10
+ const chalk_1 = require("chalk");
11
+ const oo_cli_1 = require("oo-cli");
12
+ const die_1 = require("../../lib/die");
13
+ const Rivendell_1 = require("../../lib/Rivendell");
14
+ const formatError_1 = require("../../lib/formatError");
15
+ let InstallCommand = class InstallCommand {
16
+ constructor() {
17
+ this.availability = '';
18
+ }
19
+ async install() {
20
+ if (!/[\w-]+@\d+\.\d+\.\d+(?:-\w+\.\d+)?/.test(this.appVersion)) {
21
+ return die_1.die('appVersion is required in the format of app@1.0.0');
22
+ }
23
+ const [appId, version] = this.appVersion.split('@');
24
+ try {
25
+ const install = await Rivendell_1.Rivendell.install(appId, version, this.trackerId, this.availability);
26
+ console.log(chalk_1.default.green(`Installed ${appId}@${version} for ${this.trackerId} ` +
27
+ `with install id ${install.id} in ${this.availability || 'us'}`));
28
+ }
29
+ catch (e) {
30
+ die_1.die(formatError_1.formatError(e));
31
+ }
32
+ }
33
+ };
34
+ __decorate([
35
+ oo_cli_1.param,
36
+ oo_cli_1.help('The App ID and version (e.g. my_app@1.0.0)')
37
+ ], InstallCommand.prototype, "appVersion", void 0);
38
+ __decorate([
39
+ oo_cli_1.param,
40
+ oo_cli_1.help('The Tracker ID of the account to install into')
41
+ ], InstallCommand.prototype, "trackerId", void 0);
42
+ __decorate([
43
+ oo_cli_1.option('a'),
44
+ oo_cli_1.help('The availability zone that will be targeted (default: us)')
45
+ ], InstallCommand.prototype, "availability", void 0);
46
+ __decorate([
47
+ oo_cli_1.command,
48
+ oo_cli_1.help('Install a specific app version into an account')
49
+ ], InstallCommand.prototype, "install", null);
50
+ InstallCommand = __decorate([
51
+ oo_cli_1.namespace('directory')
52
+ ], InstallCommand);
53
+ exports.InstallCommand = InstallCommand;
54
+ //# sourceMappingURL=Install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Install.js","sourceRoot":"","sources":["../../../src/commands/directory/Install.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iCAA0B;AAC1B,mCAA+D;AAC/D,uCAAkC;AAClC,mDAA8C;AAC9C,uDAAkD;AAGlD,IAAa,cAAc,GAA3B,MAAa,cAAc;IAA3B;QAWU,iBAAY,GAAW,EAAE,CAAC;IAkBpC,CAAC;IAdQ,KAAK,CAAC,OAAO;QAClB,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC/D,OAAO,SAAG,CAAC,mDAAmD,CAAC,CAAC;SACjE;QAED,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,qBAAS,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,aAAa,KAAK,IAAI,OAAO,QAAQ,IAAI,CAAC,SAAS,GAAG;gBAC5E,mBAAmB,OAAO,CAAC,EAAE,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;SACrE;QAAC,OAAO,CAAC,EAAE;YACV,SAAG,CAAC,yBAAW,CAAC,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC;CACF,CAAA;AA1BC;IAFC,cAAK;IACL,aAAI,CAAC,4CAA4C,CAAC;kDACxB;AAI3B;IAFC,cAAK;IACL,aAAI,CAAC,+CAA+C,CAAC;iDAC5B;AAI1B;IAFC,eAAM,CAAC,GAAG,CAAC;IACX,aAAI,CAAC,2DAA2D,CAAC;oDAChC;AAIlC;IAFC,gBAAO;IACP,aAAI,CAAC,gDAAgD,CAAC;6CActD;AA5BU,cAAc;IAD1B,kBAAS,CAAC,WAAW,CAAC;GACV,cAAc,CA6B1B;AA7BY,wCAAc"}
@@ -0,0 +1,8 @@
1
+ export declare class ListCommand {
2
+ private appId;
3
+ private allStatuses;
4
+ private availability;
5
+ list(): Promise<void>;
6
+ private render;
7
+ private renderState;
8
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ListCommand = void 0;
10
+ const chalk_1 = require("chalk");
11
+ const oo_cli_1 = require("oo-cli");
12
+ const semver = require("semver");
13
+ const table = require("text-table");
14
+ const die_1 = require("../../lib/die");
15
+ const formatVersionState_1 = require("../../lib/formatVersionState");
16
+ const StringUtils_1 = require("../../lib/StringUtils");
17
+ const Rivendell_1 = require("../../lib/Rivendell");
18
+ const formatError_1 = require("../../lib/formatError");
19
+ var AppVersionState = Rivendell_1.Rivendell.AppVersionState;
20
+ var DeploymentStage = Rivendell_1.Rivendell.DeploymentStage;
21
+ var ReviewStatus = Rivendell_1.Rivendell.ReviewStatus;
22
+ let ListCommand = class ListCommand {
23
+ constructor() {
24
+ this.allStatuses = false;
25
+ this.availability = '';
26
+ }
27
+ async list() {
28
+ try {
29
+ const criteria = {
30
+ stages: [DeploymentStage.TEST, DeploymentStage.PRODUCTION]
31
+ };
32
+ if (this.appId) {
33
+ criteria.appId = this.appId;
34
+ }
35
+ this.render(await Rivendell_1.Rivendell.searchAppVersions(criteria, this.availability));
36
+ }
37
+ catch (e) {
38
+ die_1.die(formatError_1.formatError(e));
39
+ }
40
+ }
41
+ render(appVersions) {
42
+ const header = ['App ID', 'Version', 'State', 'Created At', 'Updated At'].map((item) => chalk_1.default.grey(item));
43
+ const rows = appVersions
44
+ .filter((appVersion) => this.allStatuses || appVersion.state !== AppVersionState.STOPPED)
45
+ .sort((lhs, rhs) => {
46
+ let result = lhs.id.appId.localeCompare(rhs.id.appId);
47
+ if (result === 0) {
48
+ const lhsVersion = lhs.id.version;
49
+ const rhsVersion = rhs.id.version;
50
+ if (lhsVersion !== rhsVersion) {
51
+ result = semver.gt(lhsVersion, rhsVersion) ? -1 : 1;
52
+ }
53
+ }
54
+ return result;
55
+ })
56
+ .map((appVersion) => [
57
+ appVersion.id.appId,
58
+ appVersion.id.version,
59
+ this.renderState(appVersion),
60
+ appVersion.createdAt,
61
+ appVersion.updatedAt
62
+ ]);
63
+ const t = table([
64
+ header,
65
+ ...rows
66
+ ], {
67
+ hsep: ' '.repeat(8),
68
+ stringLength: StringUtils_1.styledStringLength
69
+ });
70
+ console.log(`\n${t}\n`);
71
+ }
72
+ renderState(appVersion) {
73
+ const state = appVersion.state;
74
+ const reviewStatus = appVersion.reviewStatus;
75
+ const includeReviewStatus = reviewStatus === ReviewStatus.APPROVED || reviewStatus === ReviewStatus.IN_REVIEW;
76
+ return state === AppVersionState.PUBLISHED && includeReviewStatus
77
+ ? `${formatVersionState_1.formatVersionState(state)} (${chalk_1.default.yellow(reviewStatus)})`
78
+ : formatVersionState_1.formatVersionState(state);
79
+ }
80
+ };
81
+ __decorate([
82
+ oo_cli_1.param,
83
+ oo_cli_1.optional,
84
+ oo_cli_1.help('A specific App ID to filter down to (lists all apps by default)')
85
+ ], ListCommand.prototype, "appId", void 0);
86
+ __decorate([
87
+ oo_cli_1.flag,
88
+ oo_cli_1.help('Include all statuses. STOPPED is filtered by default')
89
+ ], ListCommand.prototype, "allStatuses", void 0);
90
+ __decorate([
91
+ oo_cli_1.option('a'),
92
+ oo_cli_1.help('The availability zone that will be targeted (default: us)')
93
+ ], ListCommand.prototype, "availability", void 0);
94
+ __decorate([
95
+ oo_cli_1.command,
96
+ oo_cli_1.help('List registered app versions')
97
+ ], ListCommand.prototype, "list", null);
98
+ ListCommand = __decorate([
99
+ oo_cli_1.namespace('directory')
100
+ ], ListCommand);
101
+ exports.ListCommand = ListCommand;
102
+ //# sourceMappingURL=List.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/commands/directory/List.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare class ListFunctionsCommand {
2
+ appId: string;
3
+ trackerId: string;
4
+ private availability;
5
+ listFunctions(): Promise<void>;
6
+ private render;
7
+ }