@optimizely/ocp-cli-v2 2.0.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 (252) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +51 -0
  3. package/bin/ocp.js +3 -0
  4. package/bin/run.js +3 -0
  5. package/dist/commands/accounts/whoami.d.ts +5 -0
  6. package/dist/commands/accounts/whoami.js +22 -0
  7. package/dist/commands/accounts/whoami.js.map +1 -0
  8. package/dist/commands/accounts/whois.d.ts +12 -0
  9. package/dist/commands/accounts/whois.js +57 -0
  10. package/dist/commands/accounts/whois.js.map +1 -0
  11. package/dist/commands/app/BaseBuildCommand.d.ts +37 -0
  12. package/dist/commands/app/BaseBuildCommand.js +255 -0
  13. package/dist/commands/app/BaseBuildCommand.js.map +1 -0
  14. package/dist/commands/app/abandon.d.ts +11 -0
  15. package/dist/commands/app/abandon.js +146 -0
  16. package/dist/commands/app/abandon.js.map +1 -0
  17. package/dist/commands/app/getLogLevel.d.ts +16 -0
  18. package/dist/commands/app/getLogLevel.js +66 -0
  19. package/dist/commands/app/getLogLevel.js.map +1 -0
  20. package/dist/commands/app/init.d.ts +27 -0
  21. package/dist/commands/app/init.js +326 -0
  22. package/dist/commands/app/init.js.map +1 -0
  23. package/dist/commands/app/logs.d.ts +24 -0
  24. package/dist/commands/app/logs.js +231 -0
  25. package/dist/commands/app/logs.js.map +1 -0
  26. package/dist/commands/app/package.d.ts +8 -0
  27. package/dist/commands/app/package.js +51 -0
  28. package/dist/commands/app/package.js.map +1 -0
  29. package/dist/commands/app/prepare.d.ts +16 -0
  30. package/dist/commands/app/prepare.js +119 -0
  31. package/dist/commands/app/prepare.js.map +1 -0
  32. package/dist/commands/app/register.d.ts +10 -0
  33. package/dist/commands/app/register.js +102 -0
  34. package/dist/commands/app/register.js.map +1 -0
  35. package/dist/commands/app/setLogLevel.d.ts +16 -0
  36. package/dist/commands/app/setLogLevel.js +83 -0
  37. package/dist/commands/app/setLogLevel.js.map +1 -0
  38. package/dist/commands/app/validate.d.ts +5 -0
  39. package/dist/commands/app/validate.js +26 -0
  40. package/dist/commands/app/validate.js.map +1 -0
  41. package/dist/commands/availability/list.d.ts +6 -0
  42. package/dist/commands/availability/list.js +32 -0
  43. package/dist/commands/availability/list.js.map +1 -0
  44. package/dist/commands/dev-server/start.d.ts +36 -0
  45. package/dist/commands/dev-server/start.js +209 -0
  46. package/dist/commands/dev-server/start.js.map +1 -0
  47. package/dist/commands/dev.d.ts +8 -0
  48. package/dist/commands/dev.js +12 -0
  49. package/dist/commands/dev.js.map +1 -0
  50. package/dist/commands/directory/info.d.ts +13 -0
  51. package/dist/commands/directory/info.js +85 -0
  52. package/dist/commands/directory/info.js.map +1 -0
  53. package/dist/commands/directory/install.d.ts +12 -0
  54. package/dist/commands/directory/install.js +46 -0
  55. package/dist/commands/directory/install.js.map +1 -0
  56. package/dist/commands/directory/list.d.ts +14 -0
  57. package/dist/commands/directory/list.js +114 -0
  58. package/dist/commands/directory/list.js.map +1 -0
  59. package/dist/commands/directory/listFunctions.d.ts +15 -0
  60. package/dist/commands/directory/listFunctions.js +86 -0
  61. package/dist/commands/directory/listFunctions.js.map +1 -0
  62. package/dist/commands/directory/listGlobalFunctions.d.ts +13 -0
  63. package/dist/commands/directory/listGlobalFunctions.js +64 -0
  64. package/dist/commands/directory/listGlobalFunctions.js.map +1 -0
  65. package/dist/commands/directory/listInstalls.d.ts +15 -0
  66. package/dist/commands/directory/listInstalls.js +72 -0
  67. package/dist/commands/directory/listInstalls.js.map +1 -0
  68. package/dist/commands/directory/listSourceFunctions.d.ts +14 -0
  69. package/dist/commands/directory/listSourceFunctions.js +71 -0
  70. package/dist/commands/directory/listSourceFunctions.js.map +1 -0
  71. package/dist/commands/directory/publish.d.ts +15 -0
  72. package/dist/commands/directory/publish.js +201 -0
  73. package/dist/commands/directory/publish.js.map +1 -0
  74. package/dist/commands/directory/status.d.ts +11 -0
  75. package/dist/commands/directory/status.js +50 -0
  76. package/dist/commands/directory/status.js.map +1 -0
  77. package/dist/commands/directory/uninstall.d.ts +13 -0
  78. package/dist/commands/directory/uninstall.js +55 -0
  79. package/dist/commands/directory/uninstall.js.map +1 -0
  80. package/dist/commands/directory/unpublish.d.ts +17 -0
  81. package/dist/commands/directory/unpublish.js +187 -0
  82. package/dist/commands/directory/unpublish.js.map +1 -0
  83. package/dist/commands/directory/upgrade.d.ts +15 -0
  84. package/dist/commands/directory/upgrade.js +113 -0
  85. package/dist/commands/directory/upgrade.js.map +1 -0
  86. package/dist/commands/env/get.d.ts +5 -0
  87. package/dist/commands/env/get.js +23 -0
  88. package/dist/commands/env/get.js.map +1 -0
  89. package/dist/commands/env/set.d.ts +8 -0
  90. package/dist/commands/env/set.js +63 -0
  91. package/dist/commands/env/set.js.map +1 -0
  92. package/dist/commands/jobs/list.d.ts +27 -0
  93. package/dist/commands/jobs/list.js +245 -0
  94. package/dist/commands/jobs/list.js.map +1 -0
  95. package/dist/commands/jobs/runtimeStatus.d.ts +11 -0
  96. package/dist/commands/jobs/runtimeStatus.js +55 -0
  97. package/dist/commands/jobs/runtimeStatus.js.map +1 -0
  98. package/dist/commands/jobs/status.d.ts +11 -0
  99. package/dist/commands/jobs/status.js +57 -0
  100. package/dist/commands/jobs/status.js.map +1 -0
  101. package/dist/commands/jobs/terminate.d.ts +11 -0
  102. package/dist/commands/jobs/terminate.js +35 -0
  103. package/dist/commands/jobs/terminate.js.map +1 -0
  104. package/dist/commands/jobs/trigger.d.ts +14 -0
  105. package/dist/commands/jobs/trigger.js +47 -0
  106. package/dist/commands/jobs/trigger.js.map +1 -0
  107. package/dist/commands/review/list.d.ts +9 -0
  108. package/dist/commands/review/list.js +74 -0
  109. package/dist/commands/review/list.js.map +1 -0
  110. package/dist/commands/review/open.d.ts +8 -0
  111. package/dist/commands/review/open.js +32 -0
  112. package/dist/commands/review/open.js.map +1 -0
  113. package/dist/hooks/command-not-found.d.ts +3 -0
  114. package/dist/hooks/command-not-found.js +93 -0
  115. package/dist/hooks/command-not-found.js.map +1 -0
  116. package/dist/hooks/preupdate.d.ts +10 -0
  117. package/dist/hooks/preupdate.js +42 -0
  118. package/dist/hooks/preupdate.js.map +1 -0
  119. package/dist/index.d.ts +1 -0
  120. package/dist/index.js +59 -0
  121. package/dist/index.js.map +1 -0
  122. package/dist/lib/AppContext.d.ts +9 -0
  123. package/dist/lib/AppContext.js +43 -0
  124. package/dist/lib/AppContext.js.map +1 -0
  125. package/dist/lib/AppPackager.d.ts +17 -0
  126. package/dist/lib/AppPackager.js +57 -0
  127. package/dist/lib/AppPackager.js.map +1 -0
  128. package/dist/lib/AppUpdater.d.ts +11 -0
  129. package/dist/lib/AppUpdater.js +143 -0
  130. package/dist/lib/AppUpdater.js.map +1 -0
  131. package/dist/lib/AppUploader.d.ts +9 -0
  132. package/dist/lib/AppUploader.js +37 -0
  133. package/dist/lib/AppUploader.js.map +1 -0
  134. package/dist/lib/BuildPipeline.d.ts +24 -0
  135. package/dist/lib/BuildPipeline.js +26 -0
  136. package/dist/lib/BuildPipeline.js.map +1 -0
  137. package/dist/lib/BuildPipelineFactory.d.ts +10 -0
  138. package/dist/lib/BuildPipelineFactory.js +23 -0
  139. package/dist/lib/BuildPipelineFactory.js.map +1 -0
  140. package/dist/lib/Config.d.ts +15 -0
  141. package/dist/lib/Config.js +47 -0
  142. package/dist/lib/Config.js.map +1 -0
  143. package/dist/lib/CustomHelp.d.ts +19 -0
  144. package/dist/lib/CustomHelp.js +81 -0
  145. package/dist/lib/CustomHelp.js.map +1 -0
  146. package/dist/lib/DependencyStage.d.ts +1 -0
  147. package/dist/lib/DependencyStage.js +3 -0
  148. package/dist/lib/DependencyStage.js.map +1 -0
  149. package/dist/lib/EnvironmentalOutput.d.ts +1 -0
  150. package/dist/lib/EnvironmentalOutput.js +22 -0
  151. package/dist/lib/EnvironmentalOutput.js.map +1 -0
  152. package/dist/lib/Moria.d.ts +51 -0
  153. package/dist/lib/Moria.js +30 -0
  154. package/dist/lib/Moria.js.map +1 -0
  155. package/dist/lib/MoriaApi.d.ts +22 -0
  156. package/dist/lib/MoriaApi.js +74 -0
  157. package/dist/lib/MoriaApi.js.map +1 -0
  158. package/dist/lib/NodeBuildPipeline.d.ts +25 -0
  159. package/dist/lib/NodeBuildPipeline.js +60 -0
  160. package/dist/lib/NodeBuildPipeline.js.map +1 -0
  161. package/dist/lib/PackageManager.d.ts +242 -0
  162. package/dist/lib/PackageManager.js +511 -0
  163. package/dist/lib/PackageManager.js.map +1 -0
  164. package/dist/lib/Rivendell.d.ts +409 -0
  165. package/dist/lib/Rivendell.js +391 -0
  166. package/dist/lib/Rivendell.js.map +1 -0
  167. package/dist/lib/RivendellApi.d.ts +22 -0
  168. package/dist/lib/RivendellApi.js +159 -0
  169. package/dist/lib/RivendellApi.js.map +1 -0
  170. package/dist/lib/Shards.d.ts +3 -0
  171. package/dist/lib/Shards.js +41 -0
  172. package/dist/lib/Shards.js.map +1 -0
  173. package/dist/lib/StringUtils.d.ts +1 -0
  174. package/dist/lib/StringUtils.js +9 -0
  175. package/dist/lib/StringUtils.js.map +1 -0
  176. package/dist/lib/TeminalPassthru.d.ts +7 -0
  177. package/dist/lib/TeminalPassthru.js +12 -0
  178. package/dist/lib/TeminalPassthru.js.map +1 -0
  179. package/dist/lib/TerminalConfirm.d.ts +3 -0
  180. package/dist/lib/TerminalConfirm.js +31 -0
  181. package/dist/lib/TerminalConfirm.js.map +1 -0
  182. package/dist/lib/TerminalInput.d.ts +32 -0
  183. package/dist/lib/TerminalInput.js +207 -0
  184. package/dist/lib/TerminalInput.js.map +1 -0
  185. package/dist/lib/TerminalMenu.d.ts +34 -0
  186. package/dist/lib/TerminalMenu.js +186 -0
  187. package/dist/lib/TerminalMenu.js.map +1 -0
  188. package/dist/lib/TerminalOutput.d.ts +5 -0
  189. package/dist/lib/TerminalOutput.js +12 -0
  190. package/dist/lib/TerminalOutput.js.map +1 -0
  191. package/dist/lib/TerminalSpinner.d.ts +14 -0
  192. package/dist/lib/TerminalSpinner.js +69 -0
  193. package/dist/lib/TerminalSpinner.js.map +1 -0
  194. package/dist/lib/Tracking.d.ts +15 -0
  195. package/dist/lib/Tracking.js +19 -0
  196. package/dist/lib/Tracking.js.map +1 -0
  197. package/dist/lib/build.d.ts +5 -0
  198. package/dist/lib/build.js +41 -0
  199. package/dist/lib/build.js.map +1 -0
  200. package/dist/lib/die.d.ts +5 -0
  201. package/dist/lib/die.js +14 -0
  202. package/dist/lib/die.js.map +1 -0
  203. package/dist/lib/directoryExists.d.ts +1 -0
  204. package/dist/lib/directoryExists.js +9 -0
  205. package/dist/lib/directoryExists.js.map +1 -0
  206. package/dist/lib/formatBuildState.d.ts +2 -0
  207. package/dist/lib/formatBuildState.js +23 -0
  208. package/dist/lib/formatBuildState.js.map +1 -0
  209. package/dist/lib/formatError.d.ts +1 -0
  210. package/dist/lib/formatError.js +55 -0
  211. package/dist/lib/formatError.js.map +1 -0
  212. package/dist/lib/formatJobStatus.d.ts +3 -0
  213. package/dist/lib/formatJobStatus.js +28 -0
  214. package/dist/lib/formatJobStatus.js.map +1 -0
  215. package/dist/lib/formatReviewStatus.d.ts +4 -0
  216. package/dist/lib/formatReviewStatus.js +28 -0
  217. package/dist/lib/formatReviewStatus.js.map +1 -0
  218. package/dist/lib/formatTimstamp.d.ts +1 -0
  219. package/dist/lib/formatTimstamp.js +25 -0
  220. package/dist/lib/formatTimstamp.js.map +1 -0
  221. package/dist/lib/formatVersionState.d.ts +2 -0
  222. package/dist/lib/formatVersionState.js +37 -0
  223. package/dist/lib/formatVersionState.js.map +1 -0
  224. package/dist/lib/gatherAppEnv.d.ts +3 -0
  225. package/dist/lib/gatherAppEnv.js +71 -0
  226. package/dist/lib/gatherAppEnv.js.map +1 -0
  227. package/dist/lib/handleInterrupt.d.ts +1 -0
  228. package/dist/lib/handleInterrupt.js +17 -0
  229. package/dist/lib/handleInterrupt.js.map +1 -0
  230. package/dist/lib/jobRuntime.d.ts +3 -0
  231. package/dist/lib/jobRuntime.js +16 -0
  232. package/dist/lib/jobRuntime.js.map +1 -0
  233. package/dist/lib/migrateOptiCli.d.ts +1 -0
  234. package/dist/lib/migrateOptiCli.js +30 -0
  235. package/dist/lib/migrateOptiCli.js.map +1 -0
  236. package/dist/lib/parseDate.d.ts +2 -0
  237. package/dist/lib/parseDate.js +26 -0
  238. package/dist/lib/parseDate.js.map +1 -0
  239. package/dist/lib/templating/TemplateRenderer.d.ts +13 -0
  240. package/dist/lib/templating/TemplateRenderer.js +63 -0
  241. package/dist/lib/templating/TemplateRenderer.js.map +1 -0
  242. package/dist/lib/templating/fetchTemplatesManifest.d.ts +1 -0
  243. package/dist/lib/templating/fetchTemplatesManifest.js +9 -0
  244. package/dist/lib/templating/fetchTemplatesManifest.js.map +1 -0
  245. package/dist/lib/templating/types.d.ts +27 -0
  246. package/dist/lib/templating/types.js +3 -0
  247. package/dist/lib/templating/types.js.map +1 -0
  248. package/dist/oclif.manifest.json +1616 -0
  249. package/dist/utils/utils.d.ts +5 -0
  250. package/dist/utils/utils.js +61 -0
  251. package/dist/utils/utils.js.map +1 -0
  252. package/package.json +180 -0
@@ -0,0 +1,391 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Rivendell = void 0;
4
+ const RivendellApi_1 = require("./RivendellApi");
5
+ var Rivendell;
6
+ (function (Rivendell) {
7
+ let AppVersionState;
8
+ (function (AppVersionState) {
9
+ AppVersionState["NEW"] = "NEW";
10
+ AppVersionState["PUBLISHED"] = "PUBLISHED";
11
+ AppVersionState["BUILD_FAILED"] = "BUILD_FAILED";
12
+ AppVersionState["STARTING"] = "STARTING";
13
+ AppVersionState["START_FAILED"] = "START_FAILED";
14
+ AppVersionState["RUNNING"] = "RUNNING";
15
+ AppVersionState["UPGRADING_RUNTIME"] = "UPGRADING_RUNTIME";
16
+ AppVersionState["STOPPING"] = "STOPPING";
17
+ AppVersionState["STOP_FAILED"] = "STOP_FAILED";
18
+ AppVersionState["STOPPED"] = "STOPPED";
19
+ AppVersionState["ABANDONED"] = "ABANDONED";
20
+ })(AppVersionState = Rivendell.AppVersionState || (Rivendell.AppVersionState = {}));
21
+ let ReviewStatus;
22
+ (function (ReviewStatus) {
23
+ ReviewStatus["NOT_STARTED"] = "NOT_STARTED";
24
+ ReviewStatus["IN_REVIEW"] = "IN_REVIEW";
25
+ ReviewStatus["APPROVED"] = "APPROVED";
26
+ ReviewStatus["NOT_REQUIRED"] = "NOT_REQUIRED";
27
+ })(ReviewStatus = Rivendell.ReviewStatus || (Rivendell.ReviewStatus = {}));
28
+ let BuildState;
29
+ (function (BuildState) {
30
+ BuildState["NEW"] = "NEW";
31
+ BuildState["QUEUED"] = "QUEUED";
32
+ BuildState["RUNNING"] = "RUNNING";
33
+ BuildState["FINISHED"] = "FINISHED";
34
+ })(BuildState = Rivendell.BuildState || (Rivendell.BuildState = {}));
35
+ let BuildMode;
36
+ (function (BuildMode) {
37
+ BuildMode["VALIDATE"] = "VALIDATE";
38
+ BuildMode["PUBLISH"] = "PUBLISH";
39
+ })(BuildMode = Rivendell.BuildMode || (Rivendell.BuildMode = {}));
40
+ let BuildStatus;
41
+ (function (BuildStatus) {
42
+ BuildStatus["SUCCESS"] = "SUCCESS";
43
+ BuildStatus["FAILURE"] = "FAILURE";
44
+ BuildStatus["ERROR"] = "ERROR";
45
+ })(BuildStatus = Rivendell.BuildStatus || (Rivendell.BuildStatus = {}));
46
+ let DeploymentStage;
47
+ (function (DeploymentStage) {
48
+ DeploymentStage["TEST"] = "TEST";
49
+ DeploymentStage["PRODUCTION"] = "PRODUCTION";
50
+ })(DeploymentStage = Rivendell.DeploymentStage || (Rivendell.DeploymentStage = {}));
51
+ let JobStatus;
52
+ (function (JobStatus) {
53
+ JobStatus["PENDING"] = "PENDING";
54
+ JobStatus["SCHEDULED"] = "SCHEDULED";
55
+ JobStatus["RUNNING"] = "RUNNING";
56
+ JobStatus["COMPLETE"] = "COMPLETE";
57
+ JobStatus["ERROR"] = "ERROR";
58
+ JobStatus["TERMINATED"] = "TERMINATED";
59
+ })(JobStatus = Rivendell.JobStatus || (Rivendell.JobStatus = {}));
60
+ let JobTriggerType;
61
+ (function (JobTriggerType) {
62
+ JobTriggerType["IMMEDIATE"] = "IMMEDIATE";
63
+ JobTriggerType["RECURRING"] = "RECURRING";
64
+ })(JobTriggerType = Rivendell.JobTriggerType || (Rivendell.JobTriggerType = {}));
65
+ let LogLevel;
66
+ (function (LogLevel) {
67
+ LogLevel["DEBUG"] = "DEBUG";
68
+ LogLevel["INFO"] = "INFO";
69
+ LogLevel["WARN"] = "WARN";
70
+ LogLevel["ERROR"] = "ERROR";
71
+ LogLevel["NEVER"] = "NEVER";
72
+ })(LogLevel = Rivendell.LogLevel || (Rivendell.LogLevel = {}));
73
+ let InstallationResolutionType;
74
+ (function (InstallationResolutionType) {
75
+ InstallationResolutionType["GUUID"] = "GUUID";
76
+ InstallationResolutionType["HEADER"] = "HEADER";
77
+ InstallationResolutionType["QUERY_PARAM"] = "QUERY_PARAM";
78
+ InstallationResolutionType["JSON_BODY_FIELD"] = "JSON_BODY_FIELD";
79
+ })(InstallationResolutionType = Rivendell.InstallationResolutionType || (Rivendell.InstallationResolutionType = {}));
80
+ let UpgradeStatus;
81
+ (function (UpgradeStatus) {
82
+ UpgradeStatus["SCHEDULED"] = "SCHEDULED";
83
+ UpgradeStatus["UPGRADING_LIFECYCLE"] = "UPGRADING_LIFECYLES";
84
+ UpgradeStatus["UPGRADING_LIFECYCLE_FAILED"] = "UPGRADING_LIFECYCLE_FAILED";
85
+ UpgradeStatus["UPDATING_WEBHOOKS"] = "UPDATING_WEBHOOKS";
86
+ UpgradeStatus["UPDATING_WEBHOOKS_FAILED"] = "UPGRADING_LIFECYCLE_FAILED";
87
+ UpgradeStatus["FINALIZING_LIFECYCLE"] = "FINALIZING_LIFECYCLE";
88
+ UpgradeStatus["FINALIZING_LIFECYCLE_FAILED"] = "FINALIZING_LIFECYCLE_FAILED";
89
+ UpgradeStatus["COMPLETE"] = "COMPLETE";
90
+ })(UpgradeStatus = Rivendell.UpgradeStatus || (Rivendell.UpgradeStatus = {}));
91
+ let SortDirection;
92
+ (function (SortDirection) {
93
+ SortDirection["ASC"] = "ASC";
94
+ SortDirection["DESC"] = "DESC";
95
+ })(SortDirection = Rivendell.SortDirection || (Rivendell.SortDirection = {}));
96
+ let Audience;
97
+ (function (Audience) {
98
+ Audience["USER"] = "USER";
99
+ Audience["DEVELOPER"] = "DEVELOPER";
100
+ Audience["ZAIUS"] = "ZAIUS";
101
+ })(Audience = Rivendell.Audience || (Rivendell.Audience = {}));
102
+ function path(shard, endpoint) {
103
+ return `${shard}/${endpoint}`.replace(/^\//, '');
104
+ }
105
+ async function searchAccounts(term, shard) {
106
+ const response = await RivendellApi_1.RivendellApi.get(path(shard, `accounts/search?term=${encodeURIComponent(term)}`));
107
+ return response.body;
108
+ }
109
+ Rivendell.searchAccounts = searchAccounts;
110
+ async function whoami() {
111
+ const response = await RivendellApi_1.RivendellApi.get('developers/me');
112
+ return response.body;
113
+ }
114
+ Rivendell.whoami = whoami;
115
+ async function isAdmin() {
116
+ const me = await whoami();
117
+ return me.role === 'administrator' || me.role === 'app_administrator';
118
+ }
119
+ Rivendell.isAdmin = isAdmin;
120
+ /**
121
+ * Register a new App.
122
+ * @param appId
123
+ * @param name
124
+ * @param accountType
125
+ * @param personalApp
126
+ * @param shard
127
+ */
128
+ async function registerApp(appId, name, accountType, personalApp, shard) {
129
+ const response = await RivendellApi_1.RivendellApi.post(path(shard, 'apps'), { appId, name, accountType, personalApp });
130
+ return response.body;
131
+ }
132
+ Rivendell.registerApp = registerApp;
133
+ /**
134
+ * Fetch an App by identifier.
135
+ * @param appId
136
+ */
137
+ async function fetchApp(appId, shard = '') {
138
+ const response = await RivendellApi_1.RivendellApi.get(path(shard, `apps/${appId}`));
139
+ return response.body;
140
+ }
141
+ Rivendell.fetchApp = fetchApp;
142
+ /**
143
+ * Get app version review url.
144
+ * @param appId
145
+ */
146
+ async function getReviewUrl(appVersion) {
147
+ const response = await RivendellApi_1.RivendellApi.get(`reviews/${appVersion}`);
148
+ return response.body;
149
+ }
150
+ Rivendell.getReviewUrl = getReviewUrl;
151
+ /**
152
+ * Search for AppVersions using the supplied criteria.
153
+ * @param criteria
154
+ */
155
+ async function searchAppVersions(criteria, shard) {
156
+ const response = await RivendellApi_1.RivendellApi.post(path(shard, 'versions/search'), criteria);
157
+ return response.body;
158
+ }
159
+ Rivendell.searchAppVersions = searchAppVersions;
160
+ /**
161
+ * Fetch an AppVersion by identifier.
162
+ * @param appContext
163
+ */
164
+ async function fetchAppVersion(appContext, shard) {
165
+ const response = await RivendellApi_1.RivendellApi.get(path(shard, `versions/${appContext.appId}@${appContext.version}`));
166
+ return response.body;
167
+ }
168
+ Rivendell.fetchAppVersion = fetchAppVersion;
169
+ /**
170
+ * Register a new app version.
171
+ */
172
+ async function registerAppVersion(appId, version, packageUrl, appEnvValues, usePreviousAppEnvValues, shard) {
173
+ const response = await RivendellApi_1.RivendellApi.post(path(shard, 'versions'), { appId, version, packageUrl, appEnvValues, usePreviousAppEnvValues });
174
+ return response.body;
175
+ }
176
+ Rivendell.registerAppVersion = registerAppVersion;
177
+ /**
178
+ * Register a new app version.
179
+ */
180
+ async function updateAppVersion(appId, version, packageUrl, appEnvValues, usePreviousAppEnvValues, shard) {
181
+ const response = await RivendellApi_1.RivendellApi.put(path(shard, `versions/${appId}@${version}`), { packageUrl, appEnvValues, usePreviousAppEnvValues });
182
+ return response.body;
183
+ }
184
+ Rivendell.updateAppVersion = updateAppVersion;
185
+ /**
186
+ * Review an app version.
187
+ */
188
+ async function reviewAppVersion(appId, version) {
189
+ const appVersionId = `${appId}@${version}`;
190
+ await RivendellApi_1.RivendellApi.post('reviews', appVersionId);
191
+ }
192
+ Rivendell.reviewAppVersion = reviewAppVersion;
193
+ /**
194
+ * Search for AppVersions using the supplied criteria.
195
+ * @param criteria
196
+ */
197
+ async function searchAppInstallations(criteria, shard) {
198
+ const response = await RivendellApi_1.RivendellApi.post(path(shard, 'installations/search'), criteria);
199
+ return response.body;
200
+ }
201
+ Rivendell.searchAppInstallations = searchAppInstallations;
202
+ /**
203
+ * Search for Webhooks using the supplied criteria.
204
+ * @param criteria
205
+ */
206
+ async function searchWebhooks(criteria, shard) {
207
+ const response = await RivendellApi_1.RivendellApi.post(path(shard, 'webhooks/search'), criteria);
208
+ return response.body;
209
+ }
210
+ Rivendell.searchWebhooks = searchWebhooks;
211
+ /**
212
+ * Loads a single AppInstallation.
213
+ * @param appId
214
+ * @param trackerId
215
+ */
216
+ async function fetchAppInstallation(appId, trackerId, shard = '') {
217
+ const response = await searchAppInstallations({ appId, trackerIds: [trackerId] }, shard);
218
+ if (response.length !== 1) {
219
+ throw new Error(`Installation of ${appId} not found for ${trackerId}`);
220
+ }
221
+ return response[0];
222
+ }
223
+ Rivendell.fetchAppInstallation = fetchAppInstallation;
224
+ /**
225
+ * Trigger an installation.
226
+ */
227
+ async function install(appId, version, trackerId, shard) {
228
+ const response = await RivendellApi_1.RivendellApi.post(path(shard, 'installations'), { appId, version, trackerId });
229
+ return response.body;
230
+ }
231
+ Rivendell.install = install;
232
+ /**
233
+ * Trigger an uninstall.
234
+ */
235
+ async function uninstall(appInstallationId, shard) {
236
+ await RivendellApi_1.RivendellApi.request('DELETE', path(shard, `installations/${appInstallationId}`));
237
+ }
238
+ Rivendell.uninstall = uninstall;
239
+ /**
240
+ * Request an upgrade.
241
+ */
242
+ async function upgrade(appInstallationId, appId, version, shard) {
243
+ const response = await RivendellApi_1.RivendellApi.put(path(shard, `installations/${appInstallationId}`), { appId, version });
244
+ return response.body;
245
+ }
246
+ Rivendell.upgrade = upgrade;
247
+ async function fetchUpgrade(upgradeId, shard) {
248
+ const response = await RivendellApi_1.RivendellApi.get(path(shard, `upgrades/${upgradeId}`));
249
+ return response.body;
250
+ }
251
+ Rivendell.fetchUpgrade = fetchUpgrade;
252
+ /**
253
+ * Trigger a publish.
254
+ */
255
+ async function publish(appId, version, shard) {
256
+ await RivendellApi_1.RivendellApi.request('PATCH', path(shard, `versions/${appId}@${version}`), { state: AppVersionState.RUNNING });
257
+ }
258
+ Rivendell.publish = publish;
259
+ /**
260
+ * Trigger a unpublish.
261
+ */
262
+ async function unpublish(appId, version, shard) {
263
+ await RivendellApi_1.RivendellApi.request('PATCH', path(shard, `versions/${appId}@${version}`), { state: AppVersionState.STOPPED });
264
+ }
265
+ Rivendell.unpublish = unpublish;
266
+ /**
267
+ * Trigger a abandon.
268
+ */
269
+ async function abandon(appId, version, shard) {
270
+ await RivendellApi_1.RivendellApi.request('PATCH', path(shard, `versions/${appId}@${version}`), { state: AppVersionState.ABANDONED });
271
+ }
272
+ Rivendell.abandon = abandon;
273
+ /**
274
+ * Set logLevel of an app version or an installation
275
+ */
276
+ async function setLogLevel(shard, appId, version, logLevel, timeToLive, trackerId) {
277
+ await RivendellApi_1.RivendellApi.put(path(shard, `runtime-config/log-levels`), { appId, version, trackerId, logLevel, timeToLive });
278
+ }
279
+ Rivendell.setLogLevel = setLogLevel;
280
+ /**
281
+ * Get logLevel of an app version or an installation
282
+ */
283
+ async function getLogLevel(shard, appId, version, trackerId) {
284
+ const response = await RivendellApi_1.RivendellApi.post(path(shard, `runtime-config/log-levels/search`), { appId, version, trackerId });
285
+ return response.body;
286
+ }
287
+ Rivendell.getLogLevel = getLogLevel;
288
+ /**
289
+ * Fetch a build by id.
290
+ */
291
+ async function fetchBuild(id) {
292
+ const response = await RivendellApi_1.RivendellApi.get(`builds/${id}`);
293
+ return response.body;
294
+ }
295
+ Rivendell.fetchBuild = fetchBuild;
296
+ /**
297
+ * Trigger a build.
298
+ */
299
+ async function build(appId, version, useRCDependencySet) {
300
+ const response = await RivendellApi_1.RivendellApi.post('builds', { appId, version, useRCDependencySet });
301
+ return response.body;
302
+ }
303
+ Rivendell.build = build;
304
+ /**
305
+ * Trigger a verification.
306
+ */
307
+ async function verify(appId, version) {
308
+ const response = await RivendellApi_1.RivendellApi.post('verifications', { appId, version });
309
+ return response.body;
310
+ }
311
+ Rivendell.verify = verify;
312
+ /**
313
+ * Fetch temp credentials to upload to s3.
314
+ */
315
+ async function uploadCredentials(vendor, appId, version, checksum) {
316
+ const response = await RivendellApi_1.RivendellApi.post('tokens', { vendor, appId, version, checksum });
317
+ return response.body;
318
+ }
319
+ Rivendell.uploadCredentials = uploadCredentials;
320
+ /**
321
+ * List shards.
322
+ */
323
+ async function shards() {
324
+ const response = await RivendellApi_1.RivendellApi.get('shards');
325
+ const me = await Rivendell.whoami();
326
+ return response.body.filter((s) => me.role === 'administrator' || s.live);
327
+ }
328
+ Rivendell.shards = shards;
329
+ /**
330
+ * Search Jobs.
331
+ */
332
+ async function searchJobs(criteria, shard) {
333
+ const response = await RivendellApi_1.RivendellApi.post(path(shard, 'jobs/search'), criteria);
334
+ return response.body;
335
+ }
336
+ Rivendell.searchJobs = searchJobs;
337
+ /**
338
+ * Terminate Jobs
339
+ */
340
+ async function terminateJob(jobId, shard) {
341
+ await RivendellApi_1.RivendellApi.delete_(path(shard, `jobs/${jobId}`));
342
+ }
343
+ Rivendell.terminateJob = terminateJob;
344
+ /**
345
+ * Trigger a Job
346
+ */
347
+ async function triggerJob(appId, jobName, trackerId, parameters, shard) {
348
+ const body = { appId, jobName, trackerId, parameters };
349
+ const response = await RivendellApi_1.RivendellApi.post(path(shard, 'jobs'), body);
350
+ return response.body;
351
+ }
352
+ Rivendell.triggerJob = triggerJob;
353
+ /**
354
+ * Fetch a Job
355
+ */
356
+ async function fetchJob(jobId, shard) {
357
+ const response = await RivendellApi_1.RivendellApi.get(path(shard, `jobs/${jobId}`));
358
+ return response.body;
359
+ }
360
+ Rivendell.fetchJob = fetchJob;
361
+ /**
362
+ * Fetch a jobs runtimeStatus
363
+ */
364
+ async function fetchJobRuntimeStatus(jobId, shard) {
365
+ const response = await RivendellApi_1.RivendellApi.get(path(shard, `jobs/${jobId}/runtimeStatus`));
366
+ return response.body;
367
+ }
368
+ Rivendell.fetchJobRuntimeStatus = fetchJobRuntimeStatus;
369
+ /**
370
+ * Get Moria JWT for this developer.
371
+ */
372
+ let cachedJwt;
373
+ async function jwt(shard) {
374
+ const now = new Date();
375
+ if (!cachedJwt || cachedJwt.payload.exp * 1000 - now.getTime() <= 60) {
376
+ const response = await RivendellApi_1.RivendellApi.get(path(shard, 'tokens/jwt'));
377
+ cachedJwt = parseJwt(response.body.jwt);
378
+ }
379
+ return cachedJwt.token;
380
+ }
381
+ Rivendell.jwt = jwt;
382
+ function parseJwt(token) {
383
+ const parts = token.split('.');
384
+ return {
385
+ token,
386
+ header: JSON.parse(Buffer.from(parts[0], 'base64').toString()),
387
+ payload: JSON.parse(Buffer.from(parts[1], 'base64').toString())
388
+ };
389
+ }
390
+ })(Rivendell = exports.Rivendell || (exports.Rivendell = {}));
391
+ //# sourceMappingURL=Rivendell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rivendell.js","sourceRoot":"","sources":["../../src/lib/Rivendell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /// <reference types="node" />
2
+ export type Method = 'POST' | 'PUT' | 'PATCH' | 'GET' | 'DELETE';
3
+ /**
4
+ * Low level http handler for interacting with the Rivendell api.
5
+ */
6
+ export declare namespace RivendellApi {
7
+ interface ApiResponse<T = any> {
8
+ response: Response;
9
+ body: T;
10
+ }
11
+ export class ApiError extends Error {
12
+ responseText: string;
13
+ response?: Response | undefined;
14
+ constructor(message: string, responseText: string, response?: Response | undefined);
15
+ }
16
+ export function get<T>(uri: string): Promise<ApiResponse<T>>;
17
+ export function post<T>(uri: string, body: any): Promise<ApiResponse<T>>;
18
+ export function put<T>(uri: string, body: any): Promise<ApiResponse<T>>;
19
+ export function delete_<T>(uri: string): Promise<ApiResponse<T>>;
20
+ export function request<T>(method: Method, uri: string, body?: any): Promise<ApiResponse<T>>;
21
+ export {};
22
+ }
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RivendellApi = void 0;
4
+ const path = require("path");
5
+ const Config_1 = require("./Config");
6
+ const die_1 = require("./die");
7
+ /**
8
+ * Low level http handler for interacting with the Rivendell api.
9
+ */
10
+ var RivendellApi;
11
+ (function (RivendellApi) {
12
+ class ApiError extends Error {
13
+ constructor(message, responseText, response) {
14
+ super(message);
15
+ this.responseText = responseText;
16
+ this.response = response;
17
+ }
18
+ }
19
+ RivendellApi.ApiError = ApiError;
20
+ async function get(uri) {
21
+ return request('GET', uri);
22
+ }
23
+ RivendellApi.get = get;
24
+ async function post(uri, body) {
25
+ return request('POST', uri, body);
26
+ }
27
+ RivendellApi.post = post;
28
+ async function put(uri, body) {
29
+ return request('PUT', uri, body);
30
+ }
31
+ RivendellApi.put = put;
32
+ async function delete_(uri) {
33
+ return request('DELETE', uri);
34
+ }
35
+ RivendellApi.delete_ = delete_;
36
+ const MAX_RETRIES = 2;
37
+ function isSocketError(error) {
38
+ if (error instanceof Error && 'cause' in error) {
39
+ const cause = error.cause;
40
+ return (cause === null || cause === void 0 ? void 0 : cause.code) === 'UND_ERR_SOCKET' || (cause === null || cause === void 0 ? void 0 : cause.code) === 'ECONNRESET' || (cause === null || cause === void 0 ? void 0 : cause.code) === 'EPIPE';
41
+ }
42
+ return false;
43
+ }
44
+ function shouldRetryException(method, error) {
45
+ var _a;
46
+ // Check if error is an ApiError with a status code
47
+ if (error instanceof ApiError && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status)) {
48
+ const status = error.response.status;
49
+ // Only retry 5xx errors for GET requests, never retry 3xx/4xx
50
+ return method === 'GET' && status >= 500;
51
+ }
52
+ // For non-ApiError exceptions (network failures, etc.)
53
+ if (method === 'GET') {
54
+ // For GET: retry on network exceptions
55
+ return true;
56
+ }
57
+ else {
58
+ // For other methods: only retry on socket errors (idempotent concern)
59
+ return isSocketError(error);
60
+ }
61
+ }
62
+ function shouldRetryResponse(method, status) {
63
+ // Only retry 5xx responses for GET requests
64
+ return method === 'GET' && status >= 500;
65
+ }
66
+ async function request(method, uri, body) {
67
+ const url = `${(0, Config_1.runtimeConfig)().rivendell}/${uri}`;
68
+ const requestPayload = { method };
69
+ const manifest = require(path.join(__dirname, '../oclif.manifest.json'));
70
+ requestPayload.headers = {
71
+ 'x-api-key': loadApiKey(),
72
+ 'x-cli-version': manifest.version,
73
+ };
74
+ if (body && method !== 'GET') {
75
+ // @ts-ignore
76
+ requestPayload.headers['content-type'] = 'application/json';
77
+ requestPayload.body = JSON.stringify(body);
78
+ }
79
+ let lastError;
80
+ let lastResponseText;
81
+ let lastStatus;
82
+ for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
83
+ try {
84
+ debug(`[RivendellApi] ${method} ${url}${attempt > 0 ? ` (retry ${attempt})` : ''}`);
85
+ const response = await fetch(url, requestPayload);
86
+ debug(`[RivendellApi] Response ${response.status}`);
87
+ const responseText = await response.text();
88
+ // Check for 5xx and retry if applicable
89
+ if (shouldRetryResponse(method, response.status) && attempt < MAX_RETRIES) {
90
+ debug(`[RivendellApi] Server error ${response.status}, retrying...`);
91
+ lastStatus = response.status;
92
+ lastResponseText = responseText;
93
+ continue;
94
+ }
95
+ if (response.status < 200 || response.status >= 300) {
96
+ const errorMsg = `Received a ${response.status} from OCP: ${getErrorMessage(response.status)}`;
97
+ throw new ApiError(errorMsg, responseText, response);
98
+ }
99
+ return {
100
+ response,
101
+ body: responseText ? JSON.parse(responseText) : ''
102
+ };
103
+ }
104
+ catch (error) {
105
+ lastError = error;
106
+ if (shouldRetryException(method, error) && attempt < MAX_RETRIES) {
107
+ debug(`[RivendellApi] ${isSocketError(error) ? 'Socket error' : 'Request failed'}, retrying...`);
108
+ continue;
109
+ }
110
+ throw error;
111
+ }
112
+ }
113
+ // Exhausted retries - throw appropriate error
114
+ if (lastError) {
115
+ debug(lastError);
116
+ throw lastError;
117
+ }
118
+ if (lastStatus !== undefined) {
119
+ const errorMsg = `Received a ${lastStatus} from OCP after ${MAX_RETRIES} retries: ${getErrorMessage(lastStatus)}`;
120
+ throw new ApiError(errorMsg, lastResponseText || '', undefined);
121
+ }
122
+ throw new Error('Unexpected: no error or response after retries');
123
+ }
124
+ RivendellApi.request = request;
125
+ function loadApiKey() {
126
+ const apiKey = (0, Config_1.getActiveCredential)().apiKey;
127
+ if (apiKey == null) {
128
+ (0, die_1.die)('Your API key is not configured in ~/.ocp/credentials.json. ' +
129
+ 'Please assign your API key to the property apiKey in the config file.');
130
+ }
131
+ return apiKey;
132
+ }
133
+ function getErrorMessage(code) {
134
+ switch (code) {
135
+ case 400:
136
+ return 'Bad request.';
137
+ case 403:
138
+ return 'Access denied.';
139
+ case 404:
140
+ return 'Not found.';
141
+ case 500:
142
+ return 'Internal service error.';
143
+ case 502:
144
+ return 'Bad gateway';
145
+ case 503:
146
+ return 'Service unavailable. Please try again.';
147
+ case 504:
148
+ return 'Request timed out. Please try again.';
149
+ default:
150
+ return 'Unhandled error.';
151
+ }
152
+ }
153
+ function debug(...args) {
154
+ if (process.env.OCP_DEBUG === '1') {
155
+ console.debug(...args);
156
+ }
157
+ }
158
+ })(RivendellApi = exports.RivendellApi || (exports.RivendellApi = {}));
159
+ //# sourceMappingURL=RivendellApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RivendellApi.js","sourceRoot":"","sources":["../../src/lib/RivendellApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function applicableShards(availability?: string, fromManifest?: any): Promise<string[]>;
2
+ export declare function shardsFromManifest(fromManifest: any): Promise<string[]>;
3
+ export declare function targetShards(): Promise<string[]>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.targetShards = exports.shardsFromManifest = exports.applicableShards = void 0;
4
+ const AppContext_1 = require("./AppContext");
5
+ const Config_1 = require("./Config");
6
+ const Rivendell_1 = require("./Rivendell");
7
+ async function applicableShards(availability = '', fromManifest) {
8
+ if ((0, Config_1.getEnv)() === 'staging') {
9
+ return ['us'];
10
+ }
11
+ if (availability) {
12
+ return [availability];
13
+ }
14
+ const manifest = fromManifest || (0, AppContext_1.readAppYaml)();
15
+ return resolveShards(manifest);
16
+ }
17
+ exports.applicableShards = applicableShards;
18
+ async function shardsFromManifest(fromManifest) {
19
+ return resolveShards(fromManifest);
20
+ }
21
+ exports.shardsFromManifest = shardsFromManifest;
22
+ async function targetShards() {
23
+ return await resolveShards((0, AppContext_1.readAppYaml)());
24
+ }
25
+ exports.targetShards = targetShards;
26
+ async function resolveShards(manifest) {
27
+ let shards = manifest.meta.availability || ['us'];
28
+ if (shards.includes('all')) {
29
+ shards = (await Rivendell_1.Rivendell.shards()).map((s) => s.id);
30
+ }
31
+ return shards.sort((a, b) => {
32
+ if (a === 'us') {
33
+ return -1;
34
+ }
35
+ if (b === 'us') {
36
+ return 1;
37
+ }
38
+ return a.localeCompare(b);
39
+ });
40
+ }
41
+ //# sourceMappingURL=Shards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shards.js","sourceRoot":"","sources":["../../src/lib/Shards.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAC3C,qCAAkC;AAClC,2CAAwC;AAEjC,KAAK,UAAU,gBAAgB,CAAC,YAAY,GAAG,EAAE,EAAE,YAAkB;IAC1E,IAAI,IAAA,eAAM,GAAE,KAAK,SAAS,EAAE;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IAED,IAAI,YAAY,EAAE;QAChB,OAAO,CAAC,YAAY,CAAC,CAAC;KACvB;IAED,MAAM,QAAQ,GAAG,YAAY,IAAI,IAAA,wBAAW,GAAE,CAAC;IAC/C,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAXD,4CAWC;AAEM,KAAK,UAAU,kBAAkB,CAAC,YAAiB;IACxD,OAAO,aAAa,CAAC,YAAY,CAAC,CAAC;AACrC,CAAC;AAFD,gDAEC;AAEM,KAAK,UAAU,YAAY;IAChC,OAAO,MAAM,aAAa,CAAC,IAAA,wBAAW,GAAE,CAAC,CAAC;AAC5C,CAAC;AAFD,oCAEC;AAED,KAAK,UAAU,aAAa,CAAC,QAAa;IACxC,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC1B,MAAM,GAAG,CAAC,MAAM,qBAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACtD;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;QAC1C,IAAI,CAAC,KAAK,IAAI,EAAE;YACd,OAAO,CAAC,CAAC,CAAC;SACX;QAED,IAAI,CAAC,KAAK,IAAI,EAAE;YACd,OAAO,CAAC,CAAC;SACV;QAED,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function styledStringLength(str: string): number;