@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
package/dist/index.js ADDED
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const oo_cli_1 = require("oo-cli");
4
+ const path = require("path");
5
+ const EnvironmentalOutput_1 = require("./lib/EnvironmentalOutput");
6
+ const checkForUpdate_1 = require("./lib/checkForUpdate");
7
+ function run() {
8
+ EnvironmentalOutput_1.showEnvironment();
9
+ const manifest = require(path.join(__dirname, './oo-cli.manifest.json'));
10
+ checkForUpdate_1.checkForUpdate(manifest)
11
+ .then(() => new oo_cli_1.Runner(__dirname, manifest).run())
12
+ .catch((e) => console.log(e.message));
13
+ }
14
+ run();
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,mCAAgC;AAChC,6BAA6B;AAC7B,mEAA4D;AAC5D,yDAAsD;AAEtD,SAAS,GAAG;IACR,qCAAe,EAAE,CAAC;IAElB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACzE,+BAAc,CAAC,QAAQ,CAAC;SACrB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,eAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;SACjD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,GAAG,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface AppContext {
2
+ appId?: string;
3
+ displayName?: string;
4
+ version?: string;
5
+ vendor?: string;
6
+ runtime?: string;
7
+ }
8
+ export declare function appContext(appId?: string, vendor?: string, runtime?: string): AppContext;
9
+ export declare function readAppYaml(): any;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readAppYaml = exports.appContext = void 0;
4
+ const fs = require("fs");
5
+ const jsYaml = require("js-yaml");
6
+ const path = require("path");
7
+ function appContext(appId, vendor, runtime) {
8
+ if (appId) {
9
+ if (appId.includes('@')) {
10
+ const [id, version] = appId.split('@');
11
+ return {
12
+ appId: id,
13
+ version,
14
+ vendor,
15
+ runtime
16
+ };
17
+ }
18
+ else {
19
+ return { appId, vendor, runtime };
20
+ }
21
+ }
22
+ const yaml = readAppYaml();
23
+ if (yaml && yaml.meta) {
24
+ return {
25
+ appId: yaml.meta.app_id,
26
+ displayName: yaml.meta.display_name,
27
+ version: yaml.meta.version,
28
+ vendor: yaml.meta.vendor,
29
+ runtime: yaml.runtime
30
+ };
31
+ }
32
+ return {};
33
+ }
34
+ exports.appContext = appContext;
35
+ function readAppYaml() {
36
+ const file = path.join(process.cwd(), 'app.yml');
37
+ if (fs.existsSync(file)) {
38
+ return jsYaml.safeLoad(fs.readFileSync(file, 'utf8'));
39
+ }
40
+ return false;
41
+ }
42
+ exports.readAppYaml = readAppYaml;
43
+ //# sourceMappingURL=AppContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppContext.js","sourceRoot":"","sources":["../../src/lib/AppContext.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,kCAAkC;AAClC,6BAA6B;AAU7B,SAAgB,UAAU,CAAC,KAAc,EAAE,MAAe,EAAE,OAAgB;IAC1E,IAAI,KAAK,EAAE;QACT,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO;gBACL,KAAK,EAAE,EAAE;gBACT,OAAO;gBACP,MAAM;gBACN,OAAO;aACR,CAAC;SACH;aAAM;YACL,OAAO,EAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAC,CAAC;SACjC;KACF;IAED,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;IAC3B,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;QACrB,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACvB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YACnC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAC1B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;KACH;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AA1BD,gCA0BC;AAED,SAAgB,WAAW;IACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;IACjD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;KACvD;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAND,kCAMC"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
2
+ export declare class AppPackager {
3
+ private rootPath;
4
+ constructor(rootPath: string);
5
+ package(): Buffer;
6
+ private createZip;
7
+ private filterGitIgnored;
8
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppPackager = void 0;
4
+ const AdmZip = require("adm-zip");
5
+ const chalk_1 = require("chalk");
6
+ const child_process = require("child_process");
7
+ const fs = require("fs");
8
+ const glob = require("glob");
9
+ const path = require("path");
10
+ class AppPackager {
11
+ constructor(rootPath) {
12
+ this.filterGitIgnored = (file) => {
13
+ return child_process.spawnSync('git', ['check-ignore', '-q', file], { cwd: this.rootPath }).status === 1;
14
+ };
15
+ this.rootPath = path.resolve(rootPath);
16
+ }
17
+ package() {
18
+ console.log(chalk_1.default.gray(`Packaging files in ${this.rootPath}`));
19
+ const files = glob.sync('**/*', {
20
+ cwd: this.rootPath,
21
+ dot: true,
22
+ ignore: ['node_modules/**/*', '*.zip', '.git/**/*'],
23
+ nodir: true
24
+ }).filter(this.filterGitIgnored);
25
+ return this.createZip(this.rootPath, files);
26
+ }
27
+ createZip(srcPath, files) {
28
+ const zip = new AdmZip();
29
+ files.forEach((file) => {
30
+ const filePath = path.join(srcPath, file);
31
+ if (fs.existsSync(filePath)) {
32
+ console.log(chalk_1.default.gray(`${file}`));
33
+ zip.addFile(file, fs.readFileSync(filePath));
34
+ }
35
+ });
36
+ return zip.toBuffer();
37
+ }
38
+ }
39
+ exports.AppPackager = AppPackager;
40
+ //# sourceMappingURL=AppPackager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppPackager.js","sourceRoot":"","sources":["../../src/lib/AppPackager.ts"],"names":[],"mappings":";;;AAAA,kCAAkC;AAClC,iCAA0B;AAC1B,+CAA+C;AAC/C,yBAAyB;AACzB,6BAA6B;AAC7B,6BAA6B;AAE7B,MAAa,WAAW;IAGtB,YAAY,QAAgB;QA6BpB,qBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE;YAC1C,OAAO,aAAa,CAAC,SAAS,CAC5B,KAAK,EACL,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,EAC5B,EAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAC,CACrB,CAAC,MAAM,KAAK,CAAC,CAAC;QACjB,CAAC,CAAA;QAlCC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEM,OAAO;QACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC9B,GAAG,EAAE,IAAI,CAAC,QAAQ;YAClB,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,CAAC,mBAAmB,EAAE,OAAO,EAAE,WAAW,CAAC;YACnD,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEO,SAAS,CAAC,OAAe,EAAE,KAAe;QAChD,MAAM,GAAG,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBAC3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;gBACnC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC9C;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;CASF;AAvCD,kCAuCC"}
@@ -0,0 +1,9 @@
1
+ export declare namespace AppUpdater {
2
+ /**
3
+ * Assumes working dir is app dir
4
+ */
5
+ function ensureDependencies(requireUpToDate: boolean, upgradeDeps: boolean, runtime: string, ignoreDevUpdates?: boolean): Promise<void>;
6
+ function getPackageDependencies(prod?: boolean): {
7
+ [name: string]: string;
8
+ };
9
+ }
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppUpdater = void 0;
4
+ const chalk_1 = require("chalk");
5
+ const child_process = require("child_process");
6
+ const node_fetch_1 = require("node-fetch");
7
+ const semver_1 = require("semver");
8
+ const Config_1 = require("./Config");
9
+ const StringUtils_1 = require("./StringUtils");
10
+ const TeminalPassthru_1 = require("./TeminalPassthru");
11
+ const TerminalConfirm_1 = require("./TerminalConfirm");
12
+ const table = require("text-table");
13
+ var AppUpdater;
14
+ (function (AppUpdater) {
15
+ /**
16
+ * Assumes working dir is app dir
17
+ */
18
+ async function ensureDependencies(requireUpToDate, upgradeDeps, runtime, ignoreDevUpdates = true) {
19
+ ensurePublicPackageUsage();
20
+ const response = await node_fetch_1.default(Config_1.getDependencyFileUrl(runtime));
21
+ const zipModules = await response.json();
22
+ const projectProdDeps = AppUpdater.getPackageDependencies(true);
23
+ // build a table of updates if any dependencies are missing or outdated
24
+ const updates = [];
25
+ const prodUpdates = [];
26
+ for (const module of Object.keys(zipModules)) {
27
+ const moduleMajorVersion = Object.keys(module).map((i) => parseInt(i, 10)).sort().reverse()[0];
28
+ const projectModuleVersion = projectProdDeps[module];
29
+ const majorVersion = (projectModuleVersion ? semver_1.major(projectModuleVersion) : moduleMajorVersion).toString();
30
+ if (!(majorVersion in zipModules[module])) {
31
+ console.log(chalk_1.default.red(`Major version of ${module} not supported. Please use one of supported major versions.`));
32
+ process.exit(1);
33
+ }
34
+ const stable = zipModules[module][majorVersion]['stable'];
35
+ const rc = zipModules[module][majorVersion]['rc'];
36
+ if (!projectModuleVersion || !isCurrent(stable, rc, projectModuleVersion)) {
37
+ prodUpdates.push(`${module}@${stable}`);
38
+ updates.push([
39
+ module,
40
+ projectModuleVersion ? chalk_1.default.yellow(projectModuleVersion) : chalk_1.default.red('missing'),
41
+ '=>',
42
+ chalk_1.default.green(stable)
43
+ ]);
44
+ }
45
+ }
46
+ const devDependencies = {
47
+ '@zaiusinc/app-dev-runtime': 'latest'
48
+ };
49
+ const projectDevDeps = AppUpdater.getPackageDependencies();
50
+ const devUpdates = [];
51
+ if (!ignoreDevUpdates) {
52
+ for (const name of Object.keys(devDependencies)) {
53
+ const currentVersion = devDependencies[name];
54
+ let updated = false;
55
+ if (projectDevDeps[name] && currentVersion === 'latest') {
56
+ // skip it
57
+ continue;
58
+ }
59
+ else if (!projectDevDeps[name] && currentVersion === 'latest') {
60
+ devUpdates.push(`${name}`);
61
+ updated = true;
62
+ }
63
+ else if (!projectDevDeps[name] || semver_1.compare(zipModules[name], projectDevDeps[name]) !== 0) {
64
+ devUpdates.push(`${name}@${currentVersion}`);
65
+ updated = true;
66
+ }
67
+ if (updated) {
68
+ updates.push([
69
+ name,
70
+ projectDevDeps[name] ? chalk_1.default.yellow(projectDevDeps[name]) : chalk_1.default.red('missing'),
71
+ '=>',
72
+ chalk_1.default.green(devDependencies[name])
73
+ ]);
74
+ }
75
+ }
76
+ }
77
+ if (updates.length > 0) {
78
+ console.log(chalk_1.default.yellow('\nThe following dependencies are out of date:'));
79
+ const t = table([
80
+ ['Module', 'Your Version', '', 'Current Version'],
81
+ ...updates
82
+ ], {
83
+ hsep: ' ',
84
+ stringLength: StringUtils_1.styledStringLength
85
+ });
86
+ console.log(`\n${t}\n`);
87
+ if (upgradeDeps || await TerminalConfirm_1.TerminalConfirm.ask('Do you want to update now?')) {
88
+ const updateCommand = `yarn add ${prodUpdates.join(' ')}`;
89
+ if (prodUpdates.length > 0 && !TeminalPassthru_1.TerminalPassthru.exec(updateCommand)) {
90
+ console.log(chalk_1.default.red(`Failed to update dependencies. Run \`${chalk_1.default.white(updateCommand)}\` to update manually.`));
91
+ process.exit(1);
92
+ }
93
+ console.log('');
94
+ const updateDev = `yarn add --dev ${devUpdates.join(' ')}`;
95
+ if (devUpdates.length > 0 && !TeminalPassthru_1.TerminalPassthru.exec(updateDev)) {
96
+ console.log(chalk_1.default.red(`Failed to update dev dependencies. Run \`${chalk_1.default.white(updateDev)}\` to update manually.`));
97
+ process.exit(1);
98
+ }
99
+ console.log('');
100
+ }
101
+ else {
102
+ console.log(chalk_1.default.yellow('OCP apps always build and run against the current versions of the SDKs.'));
103
+ console.log(chalk_1.default.yellow('You must update your dependencies before uploading or remote validating your app.'));
104
+ if (requireUpToDate) {
105
+ process.exit(1);
106
+ }
107
+ else {
108
+ console.log('');
109
+ }
110
+ }
111
+ }
112
+ }
113
+ AppUpdater.ensureDependencies = ensureDependencies;
114
+ function getPackageDependencies(prod = false) {
115
+ try {
116
+ const result = child_process.spawnSync(`yarn --no-progress ${prod ? '--prod ' : ''}-s list --json --pattern=@zaiusinc/`, { cwd: process.cwd(), shell: true });
117
+ if (result.status === 0) {
118
+ const tree = JSON.parse(result.stdout.toString());
119
+ const output = {};
120
+ for (const item of tree.data.trees) {
121
+ const [name, version] = item.name.split(/(?!^)@/);
122
+ output[name] = version;
123
+ }
124
+ return output;
125
+ }
126
+ else {
127
+ console.error(result.stderr.toString());
128
+ }
129
+ }
130
+ catch (e) {
131
+ console.error(e);
132
+ }
133
+ console.log(chalk_1.default.red("Unable to get package dependencies. Are you in your app's working directory?"));
134
+ process.exit(1);
135
+ }
136
+ AppUpdater.getPackageDependencies = getPackageDependencies;
137
+ function isCurrent(stable, rc, version) {
138
+ return semver_1.compare(stable, version) === 0 || (rc && semver_1.compare(rc, version) === 0);
139
+ }
140
+ function ensurePublicPackageUsage() {
141
+ const result = child_process.spawnSync('yarn --no-progress --prod -s list --json --pattern="@zaius/app-sdk|@zaius/node-sdk"', { cwd: process.cwd(), shell: true });
142
+ if (result.status === 0) {
143
+ const tree = JSON.parse(result.stdout.toString());
144
+ if (!tree.data.trees.length) {
145
+ return;
146
+ }
147
+ console.log(chalk_1.default.red('@zaius/app-sdk & @zaius/node-sdk are no longer supported. ' +
148
+ 'Please update your package.json to use the @zaiusinc scope for these packages.'));
149
+ process.exit(1);
150
+ }
151
+ console.log(chalk_1.default.red("Unable to get package dependencies. Are you in your app's working directory?"));
152
+ process.exit(1);
153
+ }
154
+ })(AppUpdater = exports.AppUpdater || (exports.AppUpdater = {}));
155
+ //# sourceMappingURL=AppUpdater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppUpdater.js","sourceRoot":"","sources":["../../src/lib/AppUpdater.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
2
+ import { AppContext } from './AppContext';
3
+ export declare class AppUploader {
4
+ private context;
5
+ private packageData;
6
+ constructor(context: AppContext, packageData: Buffer);
7
+ upload(): Promise<string>;
8
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppUploader = void 0;
4
+ const AWS = require("aws-sdk");
5
+ const chalk_1 = require("chalk");
6
+ const crypto = require("crypto");
7
+ const Config_1 = require("./Config");
8
+ const Rivendell_1 = require("./Rivendell");
9
+ class AppUploader {
10
+ constructor(context, packageData) {
11
+ this.context = context;
12
+ this.packageData = packageData;
13
+ }
14
+ async upload() {
15
+ console.log(chalk_1.default.gray('Uploading package...'));
16
+ const { vendor, appId, version } = this.context;
17
+ const md5 = crypto.createHash('md5').update(this.packageData).digest('hex');
18
+ const bucket = Config_1.runtimeConfig().uploadBucket;
19
+ const s3Key = `${vendor}/${appId}@${version}-${md5}.zip`;
20
+ const credentials = await Rivendell_1.Rivendell.uploadCredentials(vendor, appId, version, md5);
21
+ AWS.config.update({
22
+ region: Config_1.runtimeConfig().awsRegion,
23
+ credentials: new AWS.Credentials(credentials.accessKeyId, credentials.secretAccessKey, credentials.sessionToken)
24
+ });
25
+ await new AWS.S3()
26
+ .putObject({
27
+ Bucket: bucket,
28
+ Key: s3Key,
29
+ Body: this.packageData
30
+ })
31
+ .promise();
32
+ return `s3://${bucket}/${s3Key}`;
33
+ }
34
+ }
35
+ exports.AppUploader = AppUploader;
36
+ //# sourceMappingURL=AppUploader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppUploader.js","sourceRoot":"","sources":["../../src/lib/AppUploader.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,iCAA0B;AAC1B,iCAAiC;AAEjC,qCAAuC;AACvC,2CAAsC;AAEtC,MAAa,WAAW;IACtB,YAAoB,OAAmB,EAAU,WAAmB;QAAhD,YAAO,GAAP,OAAO,CAAY;QAAU,gBAAW,GAAX,WAAW,CAAQ;IACpE,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAChD,MAAM,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,sBAAa,EAAE,CAAC,YAAY,CAAC;QAC5C,MAAM,KAAK,GAAG,GAAG,MAAM,IAAI,KAAK,IAAI,OAAO,IAAI,GAAG,MAAM,CAAC;QACzD,MAAM,WAAW,GAAG,MAAM,qBAAS,CAAC,iBAAiB,CAAC,MAAO,EAAE,KAAM,EAAE,OAAQ,EAAE,GAAG,CAAC,CAAC;QAEtF,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAChB,MAAM,EAAE,sBAAa,EAAE,CAAC,SAAS;YACjC,WAAW,EAAE,IAAI,GAAG,CAAC,WAAW,CAC9B,WAAW,CAAC,WAAW,EACvB,WAAW,CAAC,eAAe,EAC3B,WAAW,CAAC,YAAY,CACzB;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE;aACf,SAAS,CAAE;YACV,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,IAAI,CAAC,WAAW;SACvB,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,OAAO,QAAQ,MAAM,IAAI,KAAK,EAAE,CAAC;IACnC,CAAC;CACF;AA/BD,kCA+BC"}
@@ -0,0 +1,15 @@
1
+ export interface EnvironmentConfig {
2
+ rivendell: string;
3
+ awsRegion: string;
4
+ uploadBucket: string;
5
+ }
6
+ export interface Credential {
7
+ apiKey?: string;
8
+ }
9
+ export interface CredentialConfig {
10
+ [key: string]: Partial<Credential>;
11
+ }
12
+ export declare function getEnv(): string;
13
+ export declare function getDependencyFileUrl(runtime: string): string;
14
+ export declare function runtimeConfig(): EnvironmentConfig;
15
+ export declare function getActiveCredential(): Credential;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getActiveCredential = exports.runtimeConfig = exports.getDependencyFileUrl = exports.getEnv = void 0;
4
+ const fs = require("fs");
5
+ const jsYaml = require("js-yaml");
6
+ const os = require("os");
7
+ const path = require("path");
8
+ const dotenv = require("dotenv");
9
+ dotenv.config({ path: path.join(os.homedir(), '.ocp/.env') });
10
+ const CREDENTIAL_FILE = 'credentials.json';
11
+ const environmentConfig = {
12
+ rivendell: process.env.RIVENDELL || 'https://rivendell.zaius.com',
13
+ awsRegion: process.env.AWS_REGION || 'us-east-1',
14
+ uploadBucket: process.env.UPLOAD_BUCKET || 'zaius-apps'
15
+ };
16
+ function getEnv() {
17
+ return process.env.OCP_ENV || 'production';
18
+ }
19
+ exports.getEnv = getEnv;
20
+ function getDependencyFileUrl(runtime) {
21
+ return `http://s3.amazonaws.com/zaius-public/zip/.env/${getEnv()}/${runtime}/dependencies.json`;
22
+ }
23
+ exports.getDependencyFileUrl = getDependencyFileUrl;
24
+ function runtimeConfig() {
25
+ return environmentConfig;
26
+ }
27
+ exports.runtimeConfig = runtimeConfig;
28
+ let cachedCredential;
29
+ function getActiveCredential() {
30
+ if (cachedCredential) {
31
+ return cachedCredential;
32
+ }
33
+ const file = path.join(os.homedir(), `.ocp/${CREDENTIAL_FILE}`);
34
+ if (fs.existsSync(file)) {
35
+ try {
36
+ const creds = jsYaml.safeLoad(fs.readFileSync(file, 'utf8')) || {};
37
+ cachedCredential = creds || {};
38
+ }
39
+ catch (e) {
40
+ console.error(`Unable to parse credential file.`);
41
+ process.exit(1);
42
+ }
43
+ }
44
+ return cachedCredential || {};
45
+ }
46
+ exports.getActiveCredential = getActiveCredential;
47
+ //# sourceMappingURL=Config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/lib/Config.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,kCAAkC;AAClC,yBAAyB;AACzB,6BAA6B;AAE7B,iCAAiC;AAEjC,MAAM,CAAC,MAAM,CAAC,EAAC,IAAI,EAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,EAAC,CAAC,CAAC;AAE7D,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAE3C,MAAM,iBAAiB,GAAsB;IAC3C,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,6BAA6B;IACjE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW;IAChD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,YAAY;CACxD,CAAC;AAgBF,SAAgB,MAAM;IACpB,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,YAAY,CAAC;AAC7C,CAAC;AAFD,wBAEC;AAED,SAAgB,oBAAoB,CAAC,OAAe;IAClD,OAAO,iDAAiD,MAAM,EAAE,IAAI,OAAO,oBAAoB,CAAC;AAClG,CAAC;AAFD,oDAEC;AAED,SAAgB,aAAa;IAC3B,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAFD,sCAEC;AAED,IAAI,gBAA4B,CAAC;AACjC,SAAgB,mBAAmB;IACjC,IAAI,gBAAgB,EAAE;QACpB,OAAO,gBAAgB,CAAC;KACzB;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,eAAe,EAAE,CAAC,CAAC;IAChE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACvB,IAAI;YACF,MAAM,KAAK,GAAqB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACrF,gBAAgB,GAAG,KAAK,IAAI,EAAE,CAAC;SAChC;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;KACF;IACD,OAAO,gBAAgB,IAAI,EAAE,CAAC;AAChC,CAAC;AAfD,kDAeC"}
@@ -0,0 +1 @@
1
+ export declare function showEnvironment(): void;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.showEnvironment = void 0;
4
+ const chalk_1 = require("chalk");
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ const Config_1 = require("./Config");
8
+ const envColors = {
9
+ staging: chalk_1.default.yellow,
10
+ production: chalk_1.default.red,
11
+ other: chalk_1.default.gray
12
+ };
13
+ function showEnvironment() {
14
+ if (fs_1.existsSync(path_1.join(__dirname, '../commands/env'))) {
15
+ const env = Config_1.getEnv();
16
+ const color = envColors[env] || envColors['other'];
17
+ console.log(chalk_1.default.gray(`Active environment: ${color(env)}`));
18
+ }
19
+ }
20
+ exports.showEnvironment = showEnvironment;
21
+ //# sourceMappingURL=EnvironmentalOutput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnvironmentalOutput.js","sourceRoot":"","sources":["../../src/lib/EnvironmentalOutput.ts"],"names":[],"mappings":";;;AAAA,iCAA0B;AAC1B,2BAAgC;AAChC,+BAA4B;AAC5B,qCAAgC;AAEhC,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,eAAK,CAAC,MAAM;IACrB,UAAU,EAAE,eAAK,CAAC,GAAG;IACrB,KAAK,EAAE,eAAK,CAAC,IAAI;CAClB,CAAC;AAEF,SAAgB,eAAe;IAC7B,IAAI,eAAU,CAAC,WAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,EAAE;QAClD,MAAM,GAAG,GAAG,eAAM,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,SAAS,CAAC,GAA6B,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9D;AACH,CAAC;AAND,0CAMC"}
@@ -0,0 +1,51 @@
1
+ import { Rivendell } from './Rivendell';
2
+ export declare namespace Moria {
3
+ interface LogEntryContext {
4
+ appId?: string;
5
+ appVersion?: string;
6
+ trackerId?: string;
7
+ installId?: string;
8
+ entryPoint?: string;
9
+ requestId?: string;
10
+ jobId?: string;
11
+ buildId?: string;
12
+ }
13
+ interface LoggingSearchCriteria {
14
+ context: LogEntryContext;
15
+ start?: number;
16
+ end?: number;
17
+ audience?: Audience;
18
+ level?: LogLevel;
19
+ pageSize?: number;
20
+ cursor?: string;
21
+ terms?: string[];
22
+ }
23
+ interface LoggingSearchResult {
24
+ cursor: string;
25
+ entries: LogEntry[];
26
+ }
27
+ interface LogEntry {
28
+ id: string;
29
+ level: LogLevel;
30
+ time: number;
31
+ message: string;
32
+ context: LogEntryContext;
33
+ audience: Audience;
34
+ }
35
+ enum Audience {
36
+ USER = "USER",
37
+ DEVELOPER = "DEVELOPER",
38
+ ZAIUS = "ZAIUS"
39
+ }
40
+ enum LogLevel {
41
+ INFO = "INFO",
42
+ DEBUG = "DEBUG",
43
+ WARN = "WARN",
44
+ ERROR = "ERROR"
45
+ }
46
+ /**
47
+ * Search for LogEntries using the supplied criteria.
48
+ * @param criteria
49
+ */
50
+ function searchLogging(criteria: LoggingSearchCriteria, shard: Rivendell.Shard): Promise<LoggingSearchResult>;
51
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Moria = void 0;
4
+ const MoriaApi_1 = require("./MoriaApi");
5
+ var Moria;
6
+ (function (Moria) {
7
+ let Audience;
8
+ (function (Audience) {
9
+ Audience["USER"] = "USER";
10
+ Audience["DEVELOPER"] = "DEVELOPER";
11
+ Audience["ZAIUS"] = "ZAIUS";
12
+ })(Audience = Moria.Audience || (Moria.Audience = {}));
13
+ let LogLevel;
14
+ (function (LogLevel) {
15
+ LogLevel["INFO"] = "INFO";
16
+ LogLevel["DEBUG"] = "DEBUG";
17
+ LogLevel["WARN"] = "WARN";
18
+ LogLevel["ERROR"] = "ERROR";
19
+ })(LogLevel = Moria.LogLevel || (Moria.LogLevel = {}));
20
+ /**
21
+ * Search for LogEntries using the supplied criteria.
22
+ * @param criteria
23
+ */
24
+ async function searchLogging(criteria, shard) {
25
+ const response = await MoriaApi_1.MoriaApi.post(shard, 'logging/search', criteria);
26
+ return response.body;
27
+ }
28
+ Moria.searchLogging = searchLogging;
29
+ })(Moria = exports.Moria || (exports.Moria = {}));
30
+ //# sourceMappingURL=Moria.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Moria.js","sourceRoot":"","sources":["../../src/lib/Moria.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AAGpC,IAAiB,KAAK,CA8DrB;AA9DD,WAAiB,KAAK;IAsCpB,IAAY,QAIX;IAJD,WAAY,QAAQ;QAClB,yBAAa,CAAA;QACb,mCAAuB,CAAA;QACvB,2BAAe,CAAA;IACjB,CAAC,EAJW,QAAQ,GAAR,cAAQ,KAAR,cAAQ,QAInB;IAED,IAAY,QAKX;IALD,WAAY,QAAQ;QAClB,yBAAa,CAAA;QACb,2BAAe,CAAA;QACf,yBAAa,CAAA;QACb,2BAAe,CAAA;IACjB,CAAC,EALW,QAAQ,GAAR,cAAQ,KAAR,cAAQ,QAKnB;IAED;;;OAGG;IACI,KAAK,UAAU,aAAa,CACjC,QAA+B,EAC/B,KAAsB;QAEtB,MAAM,QAAQ,GAAG,MAAM,mBAAQ,CAAC,IAAI,CAAsB,KAAK,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAC7F,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IANqB,mBAAa,gBAMlC,CAAA;AACH,CAAC,EA9DgB,KAAK,GAAL,aAAK,KAAL,aAAK,QA8DrB"}
@@ -0,0 +1,22 @@
1
+ import { Response } from 'node-fetch';
2
+ import { Rivendell } from './Rivendell';
3
+ export declare type Method = 'POST' | 'PUT' | 'PATCH' | 'GET' | 'DELETE';
4
+ /**
5
+ * Low level http handler for interacting with the Moria api.
6
+ */
7
+ export declare namespace MoriaApi {
8
+ interface ApiResponse<T = any> {
9
+ response: Response;
10
+ body: T;
11
+ }
12
+ export class ApiError extends Error {
13
+ responseText: string;
14
+ response?: Response | undefined;
15
+ constructor(message: string, responseText: string, response?: Response | undefined);
16
+ }
17
+ export function get<T>(shard: Rivendell.Shard, uri: string): Promise<ApiResponse<T>>;
18
+ export function post<T>(shard: Rivendell.Shard, uri: string, body: any): Promise<ApiResponse<T>>;
19
+ export function put<T>(shard: Rivendell.Shard, uri: string, body: any): Promise<ApiResponse<T>>;
20
+ export function request<T>(shard: Rivendell.Shard, method: Method, uri: string, body?: any): Promise<ApiResponse<T>>;
21
+ export {};
22
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MoriaApi = void 0;
4
+ const node_fetch_1 = require("node-fetch");
5
+ const Rivendell_1 = require("./Rivendell");
6
+ /**
7
+ * Low level http handler for interacting with the Moria api.
8
+ */
9
+ var MoriaApi;
10
+ (function (MoriaApi) {
11
+ class ApiError extends Error {
12
+ constructor(message, responseText, response) {
13
+ super(message);
14
+ this.responseText = responseText;
15
+ this.response = response;
16
+ }
17
+ }
18
+ MoriaApi.ApiError = ApiError;
19
+ async function get(shard, uri) {
20
+ return request(shard, 'GET', uri);
21
+ }
22
+ MoriaApi.get = get;
23
+ async function post(shard, uri, body) {
24
+ return request(shard, 'POST', uri, body);
25
+ }
26
+ MoriaApi.post = post;
27
+ async function put(shard, uri, body) {
28
+ return request(shard, 'PUT', uri, body);
29
+ }
30
+ MoriaApi.put = put;
31
+ async function request(shard, method, uri, body) {
32
+ const url = `${shard.url}/${uri}`;
33
+ const requestPayload = { method };
34
+ requestPayload.headers = {
35
+ 'Authorization': `Bearer ${await Rivendell_1.Rivendell.jwt(shard.id)}`
36
+ };
37
+ if (body && method !== 'GET') {
38
+ // @ts-ignore
39
+ requestPayload.headers['content-type'] = 'application/json';
40
+ requestPayload.body = JSON.stringify(body);
41
+ }
42
+ const response = await node_fetch_1.default(url, requestPayload);
43
+ const responseText = await response.text();
44
+ if (response.status < 200 || response.status >= 300) {
45
+ const errorMsg = `Received a ${response.status} from OCP: ${getErrorMessage(response.status)}`;
46
+ throw new ApiError(errorMsg, responseText, response);
47
+ }
48
+ return {
49
+ response,
50
+ body: responseText ? JSON.parse(responseText) : ''
51
+ };
52
+ }
53
+ MoriaApi.request = request;
54
+ function getErrorMessage(code) {
55
+ switch (code) {
56
+ case 400:
57
+ return 'Bad request.';
58
+ case 403:
59
+ return 'Access denied.';
60
+ case 404:
61
+ return 'Not found.';
62
+ case 500:
63
+ return 'Internal service error.';
64
+ case 502:
65
+ return 'Bad gateway';
66
+ case 503:
67
+ return 'Service unavailable. Please try again.';
68
+ case 504:
69
+ return 'Request timed out. Please try again.';
70
+ default:
71
+ return 'Unhandled error.';
72
+ }
73
+ }
74
+ })(MoriaApi = exports.MoriaApi || (exports.MoriaApi = {}));
75
+ //# sourceMappingURL=MoriaApi.js.map