contensis-cli 1.6.1-beta.8 → 1.7.0

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 (141) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/LICENSE +674 -0
  3. package/dist/index.js +58362 -11
  4. package/dist/index.js.map +4 -4
  5. package/dist/shell.js +58100 -52
  6. package/dist/shell.js.map +4 -4
  7. package/docs/copy_field_templates.md +112 -0
  8. package/esbuild.config.js +8 -13
  9. package/package.json +3 -3
  10. package/src/commands/create.ts +48 -0
  11. package/src/commands/dev.ts +6 -0
  12. package/src/commands/push.ts +38 -6
  13. package/src/commands/set.ts +70 -1
  14. package/src/factories/RequestHandlerFactory.ts +6 -3
  15. package/src/localisation/en-GB.ts +12 -0
  16. package/src/mappers/DevRequests-to-RequestHanderCliArgs.ts +3 -0
  17. package/src/models/CliService.d.ts +5 -1
  18. package/src/providers/GitHubCliModuleProvider.ts +8 -8
  19. package/src/services/ContensisCliService.ts +189 -7
  20. package/src/shell.ts +6 -1
  21. package/src/util/logger.ts +3 -4
  22. package/src/util/os.ts +5 -3
  23. package/src/version.ts +1 -1
  24. package/dist/commands/connect.js +0 -44
  25. package/dist/commands/connect.js.map +0 -7
  26. package/dist/commands/copy.js +0 -78
  27. package/dist/commands/copy.js.map +0 -7
  28. package/dist/commands/create.js +0 -170
  29. package/dist/commands/create.js.map +0 -7
  30. package/dist/commands/dev.js +0 -81
  31. package/dist/commands/dev.js.map +0 -7
  32. package/dist/commands/diff.js +0 -57
  33. package/dist/commands/diff.js.map +0 -7
  34. package/dist/commands/execute.js +0 -103
  35. package/dist/commands/execute.js.map +0 -7
  36. package/dist/commands/get.js +0 -330
  37. package/dist/commands/get.js.map +0 -7
  38. package/dist/commands/globalOptions.js +0 -252
  39. package/dist/commands/globalOptions.js.map +0 -7
  40. package/dist/commands/import.js +0 -256
  41. package/dist/commands/import.js.map +0 -7
  42. package/dist/commands/index.js +0 -107
  43. package/dist/commands/index.js.map +0 -7
  44. package/dist/commands/list.js +0 -195
  45. package/dist/commands/list.js.map +0 -7
  46. package/dist/commands/login.js +0 -55
  47. package/dist/commands/login.js.map +0 -7
  48. package/dist/commands/push.js +0 -234
  49. package/dist/commands/push.js.map +0 -7
  50. package/dist/commands/remove.js +0 -193
  51. package/dist/commands/remove.js.map +0 -7
  52. package/dist/commands/set.js +0 -180
  53. package/dist/commands/set.js.map +0 -7
  54. package/dist/commands/update.js +0 -70
  55. package/dist/commands/update.js.map +0 -7
  56. package/dist/factories/RequestHandlerFactory.js +0 -227
  57. package/dist/factories/RequestHandlerFactory.js.map +0 -7
  58. package/dist/localisation/en-GB.js +0 -559
  59. package/dist/localisation/en-GB.js.map +0 -7
  60. package/dist/mappers/ContensisCliService-to-RequestHanderSiteConfigYaml.js +0 -56
  61. package/dist/mappers/ContensisCliService-to-RequestHanderSiteConfigYaml.js.map +0 -7
  62. package/dist/mappers/DevInit-to-CIWorkflow.js +0 -409
  63. package/dist/mappers/DevInit-to-CIWorkflow.js.map +0 -7
  64. package/dist/mappers/DevInit-to-RolePermissions.js +0 -56
  65. package/dist/mappers/DevInit-to-RolePermissions.js.map +0 -7
  66. package/dist/mappers/DevRequests-to-RequestHanderCliArgs.js +0 -168
  67. package/dist/mappers/DevRequests-to-RequestHanderCliArgs.js.map +0 -7
  68. package/dist/mappers/MixedFileData.js +0 -83
  69. package/dist/mappers/MixedFileData.js.map +0 -7
  70. package/dist/models/AppError.d.js +0 -2
  71. package/dist/models/AppError.d.js.map +0 -7
  72. package/dist/models/Cache.d.js +0 -2
  73. package/dist/models/Cache.d.js.map +0 -7
  74. package/dist/models/CliService.d.js +0 -17
  75. package/dist/models/CliService.d.js.map +0 -7
  76. package/dist/models/DevService.d.js +0 -17
  77. package/dist/models/DevService.d.js.map +0 -7
  78. package/dist/models/JsModules.d.js +0 -2
  79. package/dist/models/JsModules.d.js.map +0 -7
  80. package/dist/providers/CredentialProvider.js +0 -126
  81. package/dist/providers/CredentialProvider.js.map +0 -7
  82. package/dist/providers/GitHubCliModuleProvider.js +0 -115
  83. package/dist/providers/GitHubCliModuleProvider.js.map +0 -7
  84. package/dist/providers/HttpProvider.js +0 -73
  85. package/dist/providers/HttpProvider.js.map +0 -7
  86. package/dist/providers/ManifestProvider.js +0 -50
  87. package/dist/providers/ManifestProvider.js.map +0 -7
  88. package/dist/providers/SessionCacheProvider.js +0 -132
  89. package/dist/providers/SessionCacheProvider.js.map +0 -7
  90. package/dist/providers/file-provider.js +0 -177
  91. package/dist/providers/file-provider.js.map +0 -7
  92. package/dist/services/ContensisAuthService.js +0 -88
  93. package/dist/services/ContensisAuthService.js.map +0 -7
  94. package/dist/services/ContensisCliService.js +0 -2661
  95. package/dist/services/ContensisCliService.js.map +0 -7
  96. package/dist/services/ContensisDevService.js +0 -435
  97. package/dist/services/ContensisDevService.js.map +0 -7
  98. package/dist/services/ContensisRoleService.js +0 -112
  99. package/dist/services/ContensisRoleService.js.map +0 -7
  100. package/dist/util/api-ids.js +0 -110
  101. package/dist/util/api-ids.js.map +0 -7
  102. package/dist/util/assert.js +0 -62
  103. package/dist/util/assert.js.map +0 -7
  104. package/dist/util/console.printer.js +0 -461
  105. package/dist/util/console.printer.js.map +0 -7
  106. package/dist/util/csv.formatter.js +0 -118
  107. package/dist/util/csv.formatter.js.map +0 -7
  108. package/dist/util/debug.js +0 -29
  109. package/dist/util/debug.js.map +0 -7
  110. package/dist/util/diff.js +0 -118
  111. package/dist/util/diff.js.map +0 -7
  112. package/dist/util/dotenv.js +0 -56
  113. package/dist/util/dotenv.js.map +0 -7
  114. package/dist/util/error.js +0 -36
  115. package/dist/util/error.js.map +0 -7
  116. package/dist/util/fetch.js +0 -69
  117. package/dist/util/fetch.js.map +0 -7
  118. package/dist/util/find.js +0 -39
  119. package/dist/util/find.js.map +0 -7
  120. package/dist/util/git.js +0 -145
  121. package/dist/util/git.js.map +0 -7
  122. package/dist/util/gitignore.js +0 -61
  123. package/dist/util/gitignore.js.map +0 -7
  124. package/dist/util/html.formatter.js +0 -70
  125. package/dist/util/html.formatter.js.map +0 -7
  126. package/dist/util/index.js +0 -68
  127. package/dist/util/index.js.map +0 -7
  128. package/dist/util/json.formatter.js +0 -66
  129. package/dist/util/json.formatter.js.map +0 -7
  130. package/dist/util/logger.js +0 -304
  131. package/dist/util/logger.js.map +0 -7
  132. package/dist/util/os.js +0 -46
  133. package/dist/util/os.js.map +0 -7
  134. package/dist/util/timers.js +0 -49
  135. package/dist/util/timers.js.map +0 -7
  136. package/dist/util/xml.formatter.js +0 -62
  137. package/dist/util/xml.formatter.js.map +0 -7
  138. package/dist/util/yaml.js +0 -44
  139. package/dist/util/yaml.js.map +0 -7
  140. package/dist/version.js +0 -29
  141. package/dist/version.js.map +0 -7
@@ -1,435 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to2, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to2, key) && key !== except)
16
- __defProp(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to2;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var ContensisDevService_exports = {};
30
- __export(ContensisDevService_exports, {
31
- default: () => ContensisDevService_default,
32
- devCommand: () => devCommand
33
- });
34
- module.exports = __toCommonJS(ContensisDevService_exports);
35
- var import_prompts = require("@inquirer/prompts");
36
- var import_ansi_escapes = __toESM(require("ansi-escapes"));
37
- var import_await_to_js = __toESM(require("await-to-js"));
38
- var import_inquirer = __toESM(require("inquirer"));
39
- var import_nanospinner = require("nanospinner");
40
- var import_ContensisRoleService = __toESM(require("./ContensisRoleService"));
41
- var import_RequestHandlerFactory = require("../factories/RequestHandlerFactory");
42
- var import_DevInit_to_CIWorkflow = require("../mappers/DevInit-to-CIWorkflow");
43
- var import_DevRequests_to_RequestHanderCliArgs = __toESM(require("../mappers/DevRequests-to-RequestHanderCliArgs"));
44
- var import_DevInit_to_RolePermissions = require("../mappers/DevInit-to-RolePermissions");
45
- var import_file_provider = require("../providers/file-provider");
46
- var import_diff = require("../util/diff");
47
- var import_dotenv = require("../util/dotenv");
48
- var import_find = require("../util/find");
49
- var import_git = require("../util/git");
50
- var import_json = require("../util/json.formatter");
51
- var import_os = require("../util/os");
52
- var import_gitignore = require("../util/gitignore");
53
- class ContensisDev extends import_ContensisRoleService.default {
54
- git;
55
- blockId;
56
- deployCredentials = {
57
- clientId: "",
58
- clientSecret: ""
59
- };
60
- constructor(args, outputOpts, contensisOpts = {}) {
61
- super(args, outputOpts, contensisOpts);
62
- }
63
- DevelopmentInit = async (projectHome, opts) => {
64
- var _a, _b;
65
- const git = this.git = new import_git.GitHelper(projectHome);
66
- const isRepo = git.checkIsRepo();
67
- if (!isRepo) return;
68
- const { dryRun = false } = opts || {};
69
- const { currentEnv, currentProject, log, messages } = this;
70
- const contensis = await this.ConnectContensis();
71
- if (contensis) {
72
- const validateBlockId = (blockId2) => {
73
- const pattern = /^[0-9a-z](-?[0-9a-z])*$/;
74
- if (blockId2.length >= 1 && blockId2.length <= 225) {
75
- return pattern.test(blockId2);
76
- } else return false;
77
- };
78
- const { blockId } = await import_inquirer.default.prompt({
79
- name: "blockId",
80
- type: "input",
81
- prefix: "\u{1F9F1}",
82
- message: messages.devinit.blockIdQuestion,
83
- validate: validateBlockId,
84
- default: git.name
85
- });
86
- this.blockId = blockId.toLowerCase();
87
- log.success(`Valid block id: ${blockId.toLowerCase()}`);
88
- const [keysErr, apiKeys] = await contensis.apiKeys.GetKeys();
89
- if (keysErr) {
90
- log.error(messages.keys.noList(currentEnv));
91
- log.error((0, import_json.jsonFormatter)(keysErr));
92
- return;
93
- }
94
- const apiKeyExists = (findKey) => apiKeys == null ? void 0 : apiKeys.find(
95
- (k) => k.name.trim().toLowerCase() === (findKey == null ? void 0 : findKey.trim().toLowerCase())
96
- );
97
- const workflowFiles = git.workflows;
98
- let ciFileName = git.ciFileName;
99
- const apiKeyName = `block-${currentProject}-${blockId}`.toLowerCase();
100
- const devKeyName = `${apiKeyName}`;
101
- const devKeyDescription = `Created by Contensis to allow API access from the running block`;
102
- let existingDevKey = apiKeyExists(devKeyName);
103
- const deployKeyName = `${apiKeyName}-ci`;
104
- const deployKeyDescription = `Created by the Contensis CLI for use in continuous integration`;
105
- let existingDeployKey = apiKeyExists(deployKeyName);
106
- const errors = [];
107
- log.raw("");
108
- log.success(messages.devinit.intro());
109
- log.raw(
110
- log.infoText(
111
- messages.devinit.projectDetails(
112
- git.name,
113
- currentEnv,
114
- currentProject,
115
- blockId,
116
- git
117
- )
118
- )
119
- );
120
- log.raw(
121
- log.infoText(
122
- messages.devinit.developmentKey(devKeyName, !!existingDevKey)
123
- )
124
- );
125
- log.raw(
126
- log.infoText(
127
- messages.devinit.deploymentKey(deployKeyName, !!existingDeployKey)
128
- )
129
- );
130
- log.raw("");
131
- if (Array.isArray(workflowFiles) && workflowFiles.length > 1) {
132
- ({ ciFileName } = await import_inquirer.default.prompt([
133
- {
134
- type: "list",
135
- prefix: "\u29F0",
136
- message: messages.devinit.ciMultipleChoices(),
137
- name: "ciFileName",
138
- choices: workflowFiles,
139
- default: workflowFiles.find((f) => f.includes("docker"))
140
- }
141
- ]));
142
- log.raw("");
143
- git.ciFileName = ciFileName;
144
- }
145
- log.raw(log.infoText(messages.devinit.ciDetails(ciFileName)));
146
- const { loc } = await import_inquirer.default.prompt({
147
- name: "loc",
148
- type: "list",
149
- prefix: "\u{1F511}",
150
- // Where would you like to store your client id/secret?
151
- message: messages.devinit.clientDetailsLocation(),
152
- choices: [
153
- {
154
- name: messages.devinit.clientDetailsInGit(git),
155
- value: "git"
156
- },
157
- {
158
- name: messages.devinit.clientDetailsInEnv(),
159
- value: "env"
160
- }
161
- ]
162
- });
163
- log.raw("");
164
- log.help(messages.devinit.ciIntro(git, loc));
165
- if (!dryRun) {
166
- const { confirm } = await import_inquirer.default.prompt([
167
- {
168
- type: "confirm",
169
- message: messages.devinit.confirm(),
170
- name: "confirm",
171
- default: false
172
- }
173
- ]);
174
- log.raw("");
175
- if (!confirm) return;
176
- }
177
- let accessToken = void 0;
178
- const spinner = (0, import_nanospinner.createSpinner)(messages.devinit.accessTokenFetch());
179
- spinner.start();
180
- const token = await this.GetDeliveryApiKey();
181
- if (token) {
182
- accessToken = token;
183
- spinner.success({ text: messages.devinit.accessTokenSuccess(token) });
184
- log.raw("");
185
- } else {
186
- spinner.error();
187
- this.log.error(messages.devinit.accessTokenFailed());
188
- return;
189
- }
190
- const checkpoint = (op) => {
191
- if (errors.length) throw errors[0];
192
- else log.debug(`${op} completed ok`);
193
- return true;
194
- };
195
- const [getRolesErr, roles] = await (0, import_await_to_js.default)(contensis.roles.GetRoles());
196
- if (!roles && getRolesErr) errors.push(getRolesErr);
197
- checkpoint(`fetched ${roles == null ? void 0 : roles.length} roles`);
198
- if (dryRun) {
199
- checkpoint(`skip api key creation (dry-run)`);
200
- } else {
201
- const devKeyExisted = !!existingDevKey;
202
- if (!existingDevKey) {
203
- existingDevKey = await this.CreateOrUpdateApiKey(
204
- existingDevKey,
205
- devKeyName,
206
- devKeyDescription
207
- );
208
- log.success(messages.devinit.createDevKey(devKeyName, devKeyExisted));
209
- }
210
- const deployKeyExisted = !!existingDeployKey;
211
- if (!existingDeployKey) {
212
- existingDeployKey = await this.CreateOrUpdateApiKey(
213
- existingDeployKey,
214
- deployKeyName,
215
- deployKeyDescription
216
- );
217
- }
218
- if (existingDeployKey) {
219
- this.deployCredentials.clientId = existingDeployKey == null ? void 0 : existingDeployKey.id;
220
- this.deployCredentials.clientSecret = existingDeployKey == null ? void 0 : existingDeployKey.sharedSecret;
221
- }
222
- const deployRoleName = `Role for CI push of block '${blockId}'`;
223
- const deplyRoleDescription = `Created by the Contensis CLI for use in continuous integration`;
224
- let existingDeployRole = (0, import_find.findByIdOrName)(
225
- roles || [],
226
- deployRoleName,
227
- true
228
- );
229
- existingDeployRole = await this.CreateOrUpdateRole(
230
- existingDeployRole,
231
- (0, import_DevInit_to_RolePermissions.deployKeyRole)(deployKeyName, deployRoleName, deplyRoleDescription)
232
- );
233
- checkpoint("deploy key role assigned");
234
- log.success(
235
- messages.devinit.createDeployKey(deployRoleName, deployKeyExisted)
236
- );
237
- checkpoint("api keys done");
238
- }
239
- const envFilePath = `${projectHome}/.env`;
240
- const existingEnvFile = (0, import_file_provider.readFile)(envFilePath);
241
- const existingEnvFileArray = (existingEnvFile || "").split("\n").filter((l) => !!l);
242
- const envContentsToAdd = {
243
- ALIAS: currentEnv,
244
- PROJECT_API_ID: currentProject,
245
- BLOCK_ID: blockId
246
- };
247
- if (accessToken) envContentsToAdd["ACCESS_TOKEN"] = accessToken;
248
- if (loc === "env") {
249
- envContentsToAdd["CONTENSIS_CLIENT_ID"] = (existingDevKey == null ? void 0 : existingDevKey.id) || messages.devinit.dryRunKeyMessage(dryRun);
250
- envContentsToAdd["CONTENSIS_CLIENT_SECRET"] = (existingDevKey == null ? void 0 : existingDevKey.sharedSecret) || messages.devinit.dryRunKeyMessage(dryRun);
251
- }
252
- const removeEnvItems = (items) => {
253
- const indexesToRemove = [];
254
- for (let i = 0; i < existingEnvFileArray.length; i++) {
255
- for (const item of items) {
256
- if (existingEnvFileArray[i].includes(item)) {
257
- indexesToRemove.push(i);
258
- break;
259
- }
260
- }
261
- }
262
- for (let i = indexesToRemove.length - 1; i >= 0; i--) {
263
- existingEnvFileArray.splice(indexesToRemove[i], 1);
264
- }
265
- };
266
- if (loc === "git") {
267
- removeEnvItems(["CONTENSIS_CLIENT_ID", "CONTENSIS_CLIENT_SECRET"]);
268
- }
269
- const envFileLines = (0, import_dotenv.mergeDotEnvFileContents)(
270
- existingEnvFileArray,
271
- envContentsToAdd
272
- );
273
- const newEnvFileContent = envFileLines.join("\n");
274
- const envDiff = (0, import_diff.diffFileContent)(existingEnvFile || "", newEnvFileContent);
275
- if (dryRun) {
276
- if (envDiff) {
277
- log.info(`Updating .env file ${(0, import_os.winSlash)(envFilePath)}:
278
- ${envDiff}`);
279
- log.raw("");
280
- }
281
- checkpoint("skip .env file update (dry-run)");
282
- } else {
283
- if (envDiff) log.info(`Updating .env file ${(0, import_os.winSlash)(envFilePath)}`);
284
- (0, import_file_provider.writeFile)(envFilePath, envFileLines.join("\n"));
285
- checkpoint(".env file updated");
286
- log.success(messages.devinit.writeEnvFile());
287
- }
288
- if (dryRun) {
289
- checkpoint("skip .gitignore file update (dry-run)");
290
- } else {
291
- (0, import_gitignore.mergeContentsToAddWithGitignore)(`${projectHome}/.gitignore`, [".env"]);
292
- log.raw("");
293
- }
294
- const mappedWorkflow = await (0, import_DevInit_to_CIWorkflow.mapCIWorkflowContent)(this, loc);
295
- if (mappedWorkflow == null ? void 0 : mappedWorkflow.diff) {
296
- log.info(
297
- `Updating ${(0, import_os.winSlash)(ciFileName)} file:
298
- ${mappedWorkflow.diff}`
299
- );
300
- log.raw("");
301
- }
302
- if (dryRun) {
303
- checkpoint("skip CI file update (dry-run)");
304
- } else {
305
- if (mappedWorkflow == null ? void 0 : mappedWorkflow.newWorkflow) {
306
- if (mappedWorkflow == null ? void 0 : mappedWorkflow.diff) {
307
- (0, import_file_provider.writeFile)(git.ciFilePath, mappedWorkflow.newWorkflow);
308
- log.success(messages.devinit.writeCiFile(`./${ciFileName}`));
309
- log.info(
310
- messages.devinit.ciBlockTip(blockId, currentEnv, currentProject)
311
- );
312
- } else {
313
- log.info(messages.devinit.ciFileNoChanges(`./${ciFileName}`));
314
- }
315
- log.raw("");
316
- checkpoint("CI file updated");
317
- }
318
- }
319
- if (loc === "git") {
320
- log.warning(messages.devinit.addGitSecretsIntro());
321
- log.help(
322
- messages.devinit.addGitSecretsHelp(
323
- git,
324
- (existingDeployKey == null ? void 0 : existingDeployKey.id) || messages.devinit.dryRunKeyMessage(dryRun),
325
- (existingDeployKey == null ? void 0 : existingDeployKey.sharedSecret) || messages.devinit.dryRunKeyMessage(dryRun)
326
- )
327
- );
328
- }
329
- if (dryRun) {
330
- log.success(messages.devinit.dryRun());
331
- log.help(messages.devinit.noChanges());
332
- } else {
333
- log.success(messages.devinit.success());
334
- log.help(messages.devinit.startProjectTip());
335
- const classicToken = await ((_a = this.auth) == null ? void 0 : _a.ClassicToken());
336
- log.help(
337
- import_ansi_escapes.default.link(
338
- `Open Contensis`,
339
- `${(_b = this.urls) == null ? void 0 : _b.cms}${classicToken ? `?SecurityToken=${classicToken}` : ""}`
340
- )
341
- );
342
- }
343
- }
344
- };
345
- ExecRequestHandler = async (blockId, blockOverrides, overrideArgs = [], version) => {
346
- var _a;
347
- const { currentEnv, currentProject, debug, log, messages } = this;
348
- const spinner = !debug ? (0, import_nanospinner.createSpinner)(messages.devrequests.launch()) : log.info(messages.devrequests.launch());
349
- const requestHandler = await (0, import_RequestHandlerFactory.createRequestHandler)(version);
350
- const contensis = await this.ConnectContensis();
351
- if (contensis) {
352
- const blockBranches = /* @__PURE__ */ new Map();
353
- const [err, projectBlocks] = await contensis.blocks.GetBlocks();
354
- if (err) log.error(messages.blocks.noList(currentEnv, currentProject));
355
- else if (projectBlocks) {
356
- const blockIdChoices = projectBlocks.map((block) => block.id) || [];
357
- blockIdChoices.push("none");
358
- const defaultDeveloperUri = "http://localhost:3000";
359
- const { developmentBlockId, developmentBlockUri } = blockId.length ? {
360
- developmentBlockId: blockId[0],
361
- developmentBlockUri: (blockId == null ? void 0 : blockId[1]) || defaultDeveloperUri
362
- } : await import_inquirer.default.prompt([
363
- {
364
- type: "list",
365
- prefix: "\u{1F9F1}",
366
- message: messages.devrequests.overrideBlock(),
367
- name: "developmentBlockId",
368
- choices: blockIdChoices
369
- },
370
- {
371
- type: "input",
372
- prefix: "\u{1F517}",
373
- message: messages.devrequests.overrideUri(),
374
- name: "developmentBlockUri",
375
- default: defaultDeveloperUri
376
- }
377
- ]);
378
- if (blockOverrides) {
379
- const blockIdChoices2 = (projectBlocks == null ? void 0 : projectBlocks.map((block) => ({
380
- name: `${block.id}${block.description ? ` (${block.description})` : ""}`,
381
- value: block.id
382
- }))) || [];
383
- blockIdChoices2.push({ name: "none", value: "none" });
384
- const { overrideBlockIds } = Array.isArray(blockOverrides) ? {
385
- overrideBlockIds: blockOverrides.map((bId) => {
386
- var _a2;
387
- return (_a2 = projectBlocks.find((b) => b.id === bId)) == null ? void 0 : _a2.id;
388
- }).filter(Boolean)
389
- } : await import_inquirer.default.prompt([
390
- {
391
- type: "checkbox",
392
- prefix: "\u{1F9F1}",
393
- message: messages.devrequests.overrideBlocks(),
394
- name: "overrideBlockIds",
395
- choices: blockIdChoices2
396
- // default: blockIdChoices.findIndex(b => b.value === 'none'),
397
- }
398
- ]);
399
- for (const overrideBlockId of overrideBlockIds) {
400
- if (overrideBlockId === "none") continue;
401
- const choices = (_a = projectBlocks.find((b) => b.id === overrideBlockId)) == null ? void 0 : _a.branches.map((b) => b.id);
402
- if (choices) {
403
- const overrideBranch = await (0, import_prompts.search)({
404
- message: `\u{1F33F} ${messages.devrequests.overrideBranch(overrideBlockId)}`,
405
- source: (input) => {
406
- input = input || "";
407
- const fuzzyResult = input ? choices == null ? void 0 : choices.filter(
408
- (choice) => choice.toLowerCase().includes(input.toLowerCase())
409
- ) : choices;
410
- return fuzzyResult || [];
411
- }
412
- });
413
- blockBranches.set(overrideBlockId, overrideBranch);
414
- }
415
- }
416
- }
417
- const args = new import_DevRequests_to_RequestHanderCliArgs.default(projectBlocks, blockBranches, this);
418
- spinner == null ? void 0 : spinner.start();
419
- await args.Create();
420
- args.overrideBlock(developmentBlockId, developmentBlockUri);
421
- spinner == null ? void 0 : spinner.success();
422
- await requestHandler(args.getArgs(overrideArgs));
423
- }
424
- }
425
- };
426
- }
427
- const devCommand = (commandArgs, outputOpts, contensisOpts = {}) => {
428
- return new ContensisDev(["", "", ...commandArgs], outputOpts, contensisOpts);
429
- };
430
- var ContensisDevService_default = ContensisDev;
431
- // Annotate the CommonJS export names for ESM import in node:
432
- 0 && (module.exports = {
433
- devCommand
434
- });
435
- //# sourceMappingURL=ContensisDevService.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/services/ContensisDevService.ts"],
4
- "sourcesContent": ["import { search } from '@inquirer/prompts';\nimport ansiEscapes from 'ansi-escapes';\nimport to from 'await-to-js';\nimport inquirer from 'inquirer';\nimport { createSpinner } from 'nanospinner';\n\nimport { Role } from 'contensis-management-api/lib/models';\nimport { MigrateRequest } from 'migratortron';\n\nimport ContensisRole from './ContensisRoleService';\nimport { createRequestHandler } from '~/factories/RequestHandlerFactory';\nimport { OutputOptionsConstructorArg } from '~/models/CliService';\nimport { EnvContentsToAdd } from '~/models/DevService';\nimport { mapCIWorkflowContent } from '~/mappers/DevInit-to-CIWorkflow';\nimport RequestHandlerArgs from '~/mappers/DevRequests-to-RequestHanderCliArgs';\nimport { deployKeyRole } from '~/mappers/DevInit-to-RolePermissions';\nimport { readFile, writeFile } from '~/providers/file-provider';\nimport { diffFileContent } from '~/util/diff';\nimport { mergeDotEnvFileContents } from '~/util/dotenv';\nimport { findByIdOrName } from '~/util/find';\nimport { GitHelper } from '~/util/git';\nimport { jsonFormatter } from '~/util/json.formatter';\nimport { winSlash } from '~/util/os';\nimport { mergeContentsToAddWithGitignore } from '~/util/gitignore';\n\nclass ContensisDev extends ContensisRole {\n git!: GitHelper;\n blockId!: string;\n\n deployCredentials = {\n clientId: '',\n clientSecret: '',\n };\n\n constructor(\n args: string[],\n outputOpts?: OutputOptionsConstructorArg,\n contensisOpts: Partial<MigrateRequest> = {}\n ) {\n super(args, outputOpts, contensisOpts);\n }\n\n DevelopmentInit = async (projectHome: string, opts: any) => {\n // Retrieve git info\n const git = (this.git = new GitHelper(projectHome));\n // Check if we are in a git repo\n const isRepo = git.checkIsRepo();\n if (!isRepo) return;\n\n const { dryRun = false } = opts || {};\n const { currentEnv, currentProject, log, messages } = this;\n const contensis = await this.ConnectContensis();\n\n if (contensis) {\n // First we need to get the block id from the user\n const validateBlockId = (blockId: string) => {\n const pattern = /^[0-9a-z](-?[0-9a-z])*$/;\n if (blockId.length >= 1 && blockId.length <= 225) {\n return pattern.test(blockId);\n } else return false;\n };\n const { blockId } = await inquirer.prompt({\n name: 'blockId',\n type: 'input',\n prefix: '\uD83E\uDDF1',\n message: messages.devinit.blockIdQuestion,\n validate: validateBlockId,\n default: git.name,\n });\n // make sure block id is lowercase\n this.blockId = blockId.toLowerCase();\n log.success(`Valid block id: ${blockId.toLowerCase()}`);\n\n // Retrieve keys list for env\n const [keysErr, apiKeys] = await contensis.apiKeys.GetKeys();\n if (keysErr) {\n log.error(messages.keys.noList(currentEnv));\n log.error(jsonFormatter(keysErr));\n return;\n }\n const apiKeyExists = (findKey: string) =>\n apiKeys?.find(\n k => k.name.trim().toLowerCase() === findKey?.trim().toLowerCase()\n );\n\n // Retrieve ci workflow info\n const workflowFiles = git.workflows;\n\n // Set variables for performing operations and logging etc.\n let ciFileName = git.ciFileName;\n\n const apiKeyName = `block-${currentProject}-${blockId}`.toLowerCase();\n\n const devKeyName = `${apiKeyName}`;\n const devKeyDescription = `Created by Contensis to allow API access from the running block`;\n let existingDevKey = apiKeyExists(devKeyName);\n\n const deployKeyName = `${apiKeyName}-ci`;\n const deployKeyDescription = `Created by the Contensis CLI for use in continuous integration`;\n\n let existingDeployKey = apiKeyExists(deployKeyName);\n\n // const blockId = git.name;\n const errors = [] as AppError[];\n\n // Start render console output\n log.raw('');\n log.success(messages.devinit.intro());\n log.raw(\n log.infoText(\n messages.devinit.projectDetails(\n git.name,\n currentEnv,\n currentProject,\n blockId,\n git\n )\n )\n );\n log.raw(\n log.infoText(\n messages.devinit.developmentKey(devKeyName, !!existingDevKey)\n )\n );\n log.raw(\n log.infoText(\n messages.devinit.deploymentKey(deployKeyName, !!existingDeployKey)\n )\n );\n log.raw('');\n\n if (Array.isArray(workflowFiles) && workflowFiles.length > 1) {\n // Choose GitHub workflow file (if multiple)\n ({ ciFileName } = await inquirer.prompt([\n {\n type: 'list',\n prefix: '\u29F0',\n message: messages.devinit.ciMultipleChoices(),\n name: 'ciFileName',\n choices: workflowFiles,\n default: workflowFiles.find(f => f.includes('docker')),\n },\n ]));\n log.raw('');\n git.ciFileName = ciFileName;\n }\n\n log.raw(log.infoText(messages.devinit.ciDetails(ciFileName)));\n\n // Location for Client ID / Secret.\n const { loc } = await inquirer.prompt({\n name: 'loc',\n type: 'list',\n prefix: '\uD83D\uDD11',\n // Where would you like to store your client id/secret?\n message: messages.devinit.clientDetailsLocation(),\n choices: [\n {\n name: messages.devinit.clientDetailsInGit(git),\n value: 'git',\n },\n {\n name: messages.devinit.clientDetailsInEnv(),\n value: 'env',\n },\n ],\n });\n\n log.raw('');\n log.help(messages.devinit.ciIntro(git, loc));\n\n if (!dryRun) {\n // Confirm prompt\n const { confirm } = await inquirer.prompt([\n {\n type: 'confirm',\n message: messages.devinit.confirm(),\n name: 'confirm',\n default: false,\n },\n ]);\n log.raw('');\n if (!confirm) return;\n }\n\n // Fetching access token\n let accessToken: string | undefined = undefined;\n\n const spinner = createSpinner(messages.devinit.accessTokenFetch());\n spinner.start();\n\n const token = await this.GetDeliveryApiKey();\n\n if (token) {\n accessToken = token;\n spinner.success({ text: messages.devinit.accessTokenSuccess(token) });\n log.raw('');\n } else {\n spinner.error();\n this.log.error(messages.devinit.accessTokenFailed());\n return;\n }\n\n // Magic happens...\n const checkpoint = (op: string) => {\n if (errors.length) throw errors[0];\n else log.debug(`${op} completed ok`);\n return true;\n };\n\n // Arrange API keys for development and deployment\n const [getRolesErr, roles] = await to(contensis.roles.GetRoles());\n if (!roles && getRolesErr) errors.push(getRolesErr);\n checkpoint(`fetched ${roles?.length} roles`);\n\n if (dryRun) {\n checkpoint(`skip api key creation (dry-run)`);\n } else {\n // if dev api key doesn't exist go and create it (we need this for local development, we will store these details in the .env file).\n const devKeyExisted = !!existingDevKey;\n if (!existingDevKey) {\n existingDevKey = await this.CreateOrUpdateApiKey(\n existingDevKey,\n devKeyName,\n devKeyDescription\n );\n log.success(messages.devinit.createDevKey(devKeyName, devKeyExisted));\n }\n // NF 24/11/23 Added this commented code back in as we are not assigning the dev key to any role here\n // // Ensure dev API key is assigned to a role\n // let existingDevRole = findByIdOrName(roles || [], devKeyName, true) as\n // | Role\n // | undefined;\n // existingDevRole = await this.CreateOrUpdateRole(\n // existingDevRole,\n // devKeyRole(devKeyName, devKeyDescription)\n // );\n // checkpoint('dev key role assigned');\n\n // if deploy api key doesn't exist go and create it (we need this for yml file).\n const deployKeyExisted = !!existingDeployKey;\n if (!existingDeployKey) {\n existingDeployKey = await this.CreateOrUpdateApiKey(\n existingDeployKey,\n deployKeyName,\n deployKeyDescription\n );\n }\n\n // check we have the deploy key so we can assign them to this values\n if (existingDeployKey) {\n // Add client id and secret to credentials\n this.deployCredentials.clientId = existingDeployKey?.id;\n this.deployCredentials.clientSecret = existingDeployKey?.sharedSecret;\n }\n\n // Ensure deploy API key is assigned to a role with the right permissions\n const deployRoleName = `Role for CI push of block '${blockId}'`;\n const deplyRoleDescription = `Created by the Contensis CLI for use in continuous integration`;\n let existingDeployRole = findByIdOrName(\n roles || [],\n deployRoleName,\n true\n ) as Role | undefined;\n existingDeployRole = await this.CreateOrUpdateRole(\n existingDeployRole,\n deployKeyRole(deployKeyName, deployRoleName, deplyRoleDescription)\n );\n\n checkpoint('deploy key role assigned');\n log.success(\n messages.devinit.createDeployKey(deployRoleName, deployKeyExisted)\n );\n checkpoint('api keys done');\n }\n\n const envFilePath = `${projectHome}/.env`;\n const existingEnvFile = readFile(envFilePath);\n const existingEnvFileArray = (existingEnvFile || '')\n .split('\\n')\n .filter(l => !!l);\n\n // Update or create a file called .env in project home\n const envContentsToAdd: EnvContentsToAdd = {\n ALIAS: currentEnv,\n PROJECT_API_ID: currentProject,\n BLOCK_ID: blockId,\n };\n if (accessToken) envContentsToAdd['ACCESS_TOKEN'] = accessToken;\n // add client id and secret to the env file\n if (loc === 'env') {\n envContentsToAdd['CONTENSIS_CLIENT_ID'] =\n existingDevKey?.id || messages.devinit.dryRunKeyMessage(dryRun);\n envContentsToAdd['CONTENSIS_CLIENT_SECRET'] =\n existingDevKey?.sharedSecret ||\n messages.devinit.dryRunKeyMessage(dryRun);\n }\n\n // if we have client id / secret in our env remove it\n const removeEnvItems = (items: string[]) => {\n const indexesToRemove = [];\n\n for (let i = 0; i < existingEnvFileArray.length; i++) {\n for (const item of items) {\n if (existingEnvFileArray[i].includes(item)) {\n indexesToRemove.push(i);\n break;\n }\n }\n }\n\n for (let i = indexesToRemove.length - 1; i >= 0; i--) {\n existingEnvFileArray.splice(indexesToRemove[i], 1);\n }\n };\n\n // remove client id and secret from env file\n if (loc === 'git') {\n removeEnvItems(['CONTENSIS_CLIENT_ID', 'CONTENSIS_CLIENT_SECRET']);\n }\n\n const envFileLines = mergeDotEnvFileContents(\n existingEnvFileArray,\n envContentsToAdd\n );\n const newEnvFileContent = envFileLines.join('\\n');\n const envDiff = diffFileContent(existingEnvFile || '', newEnvFileContent);\n\n if (dryRun) {\n if (envDiff) {\n log.info(`Updating .env file ${winSlash(envFilePath)}:\\n${envDiff}`);\n log.raw('');\n }\n checkpoint('skip .env file update (dry-run)');\n } else {\n if (envDiff) log.info(`Updating .env file ${winSlash(envFilePath)}`);\n writeFile(envFilePath, envFileLines.join('\\n'));\n checkpoint('.env file updated');\n log.success(messages.devinit.writeEnvFile());\n // log.help(messages.devinit.useEnvFileTip());\n }\n\n // Update git ignore\n if (dryRun) {\n checkpoint('skip .gitignore file update (dry-run)');\n } else {\n mergeContentsToAddWithGitignore(`${projectHome}/.gitignore`, ['.env']);\n log.raw('');\n }\n\n // Update CI Workflow\n const mappedWorkflow = await mapCIWorkflowContent(this, loc);\n\n // Update CI file -- different for GH/GL\n if (mappedWorkflow?.diff) {\n log.info(\n `Updating ${winSlash(ciFileName)} file:\\n${mappedWorkflow.diff}`\n );\n log.raw('');\n }\n if (dryRun) {\n checkpoint('skip CI file update (dry-run)');\n //log.object(ciFileLines);\n } else {\n if (mappedWorkflow?.newWorkflow) {\n if (mappedWorkflow?.diff) {\n writeFile(git.ciFilePath, mappedWorkflow.newWorkflow);\n log.success(messages.devinit.writeCiFile(`./${ciFileName}`));\n log.info(\n messages.devinit.ciBlockTip(blockId, currentEnv, currentProject)\n );\n } else {\n log.info(messages.devinit.ciFileNoChanges(`./${ciFileName}`));\n }\n log.raw('');\n checkpoint('CI file updated');\n }\n }\n\n if (loc === 'git') {\n // Echo Deployment API key to console, ask user to add secrets to repo\n log.warning(messages.devinit.addGitSecretsIntro());\n log.help(\n messages.devinit.addGitSecretsHelp(\n git,\n existingDeployKey?.id || messages.devinit.dryRunKeyMessage(dryRun),\n existingDeployKey?.sharedSecret ||\n messages.devinit.dryRunKeyMessage(dryRun)\n )\n );\n }\n\n if (dryRun) {\n log.success(messages.devinit.dryRun());\n log.help(messages.devinit.noChanges());\n } else {\n log.success(messages.devinit.success());\n log.help(messages.devinit.startProjectTip());\n // open the cms link -- if no classic token just return the cms url\n\n // go and fetch the classic token from auth service\n const classicToken = await this.auth?.ClassicToken();\n log.help(\n ansiEscapes.link(\n `Open Contensis`,\n `${this.urls?.cms}${\n classicToken ? `?SecurityToken=${classicToken}` : ''\n }`\n )\n );\n }\n }\n };\n\n ExecRequestHandler = async (\n blockId: string[],\n blockOverrides: string[] | boolean,\n overrideArgs: string[] = [],\n version?: string\n ) => {\n const { currentEnv, currentProject, debug, log, messages } = this;\n\n const spinner = !debug\n ? createSpinner(messages.devrequests.launch())\n : log.info(messages.devrequests.launch());\n\n // Ensure request handler is available to use\n const requestHandler = await createRequestHandler(version);\n\n // Get the available blocks for the project\n const contensis = await this.ConnectContensis();\n if (contensis) {\n const blockBranches = new Map<string, string>();\n\n const [err, projectBlocks] = await contensis.blocks.GetBlocks();\n if (err) log.error(messages.blocks.noList(currentEnv, currentProject));\n else if (projectBlocks) {\n // Prompt block id and dev uri to run locally (if not supplied)\n const blockIdChoices = projectBlocks.map(block => block.id) || [];\n blockIdChoices.push('none');\n const defaultDeveloperUri = 'http://localhost:3000';\n\n const { developmentBlockId, developmentBlockUri } = blockId.length\n ? {\n developmentBlockId: blockId[0],\n developmentBlockUri: blockId?.[1] || defaultDeveloperUri,\n }\n : await inquirer.prompt([\n {\n type: 'list',\n prefix: '\uD83E\uDDF1',\n message: messages.devrequests.overrideBlock(),\n name: 'developmentBlockId',\n choices: blockIdChoices,\n },\n {\n type: 'input',\n prefix: '\uD83D\uDD17',\n message: messages.devrequests.overrideUri(),\n name: 'developmentBlockUri',\n default: defaultDeveloperUri,\n },\n ]);\n\n // Prompt for other block overrides (e.g. branch)\n if (blockOverrides) {\n // Prompt for which blocks to override\n const blockIdChoices =\n projectBlocks\n // ?.filter(block => block.id !== developmentBlockId)\n ?.map(block => ({\n name: `${block.id}${block.description ? ` (${block.description})` : ''}`,\n value: block.id,\n })) || [];\n blockIdChoices.push({ name: 'none', value: 'none' });\n\n const { overrideBlockIds } = Array.isArray(blockOverrides)\n ? {\n overrideBlockIds: blockOverrides\n .map(bId => projectBlocks.find(b => b.id === bId)?.id)\n .filter(Boolean) as string[],\n }\n : await inquirer.prompt<{ overrideBlockIds: string[] }>([\n {\n type: 'checkbox',\n prefix: '\uD83E\uDDF1',\n message: messages.devrequests.overrideBlocks(),\n name: 'overrideBlockIds',\n choices: blockIdChoices,\n // default: blockIdChoices.findIndex(b => b.value === 'none'),\n },\n ]);\n\n // For each block to override, prompt for the branch to use\n for (const overrideBlockId of overrideBlockIds) {\n if (overrideBlockId === 'none') continue;\n const choices = projectBlocks\n .find(b => b.id === overrideBlockId)\n ?.branches.map(b => b.id);\n if (choices) {\n const overrideBranch = await search<string>({\n message: `\uD83C\uDF3F ${messages.devrequests.overrideBranch(overrideBlockId)}`,\n source: input => {\n input = input || '';\n const fuzzyResult = input\n ? choices?.filter(choice =>\n choice.toLowerCase().includes(input.toLowerCase())\n )\n : choices;\n return fuzzyResult || [];\n },\n });\n blockBranches.set(overrideBlockId, overrideBranch);\n }\n }\n }\n\n // Generate args for request handler using CLI methods\n const args = new RequestHandlerArgs(projectBlocks, blockBranches, this);\n spinner?.start();\n await args.Create();\n args.overrideBlock(developmentBlockId, developmentBlockUri);\n spinner?.success();\n\n // Launch request handler\n await requestHandler(args.getArgs(overrideArgs));\n }\n }\n };\n}\nexport const devCommand = (\n commandArgs: string[],\n outputOpts: OutputOptionsConstructorArg,\n contensisOpts: Partial<MigrateRequest> = {}\n) => {\n return new ContensisDev(['', '', ...commandArgs], outputOpts, contensisOpts);\n};\n\nexport default ContensisDev;\n"],
5
- "mappings": "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",
6
- "names": ["ContensisRole", "blockId", "inquirer", "to", "ansiEscapes", "blockIdChoices", "_a", "RequestHandlerArgs"]
7
- }
@@ -1,112 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to2, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to2, key) && key !== except)
16
- __defProp(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to2;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var ContensisRoleService_exports = {};
30
- __export(ContensisRoleService_exports, {
31
- default: () => ContensisRoleService_default
32
- });
33
- module.exports = __toCommonJS(ContensisRoleService_exports);
34
- var import_await_to_js = __toESM(require("await-to-js"));
35
- var import_ContensisCliService = __toESM(require("./ContensisCliService"));
36
- var import_logger = require("../util/logger");
37
- class ContensisRole extends import_ContensisCliService.default {
38
- constructor(args, outputOpts, contensisOpts = {}) {
39
- super(args, outputOpts, contensisOpts);
40
- }
41
- GetDeliveryApiKey = async () => {
42
- const { contensis, currentEnv } = this;
43
- const CMS = `https://cms-${currentEnv}.cloud.contensis.com`;
44
- const API = "api/contensis-cli/settings/defaultDeliveryApiAccessToken";
45
- if (contensis) {
46
- const [error, bearerToken] = await (0, import_await_to_js.default)(
47
- contensis.content.sourceRepo.repo.BearerToken()
48
- );
49
- if (error) import_logger.Logger.error(error.message);
50
- const token = fetch(`${CMS}/${API}`, {
51
- method: "GET",
52
- headers: {
53
- "Content-Type": "application/json",
54
- Authorization: `Bearer ${bearerToken}`
55
- }
56
- }).then((repsonse) => repsonse.json()).then(({ value }) => {
57
- if (value) return value;
58
- }).catch((error2) => {
59
- throw new Error(error2);
60
- });
61
- return token;
62
- }
63
- };
64
- CreateOrUpdateApiKey = async (existingKey, name, description) => {
65
- const { contensis, currentEnv, messages } = this;
66
- if (!contensis) throw new Error("shouldnt be here");
67
- if (existingKey) {
68
- const [err, key] = await contensis.apiKeys.UpdateKey(existingKey.id, {
69
- name,
70
- description
71
- });
72
- if (err)
73
- throw new Error(messages.keys.failedUpdate(currentEnv, name), {
74
- cause: err
75
- });
76
- return key;
77
- } else {
78
- const [err, key] = await contensis.apiKeys.CreateKey(name, description);
79
- if (err)
80
- throw new Error(messages.keys.failedCreate(currentEnv, name), {
81
- cause: err
82
- });
83
- return key;
84
- }
85
- };
86
- CreateOrUpdateRole = async (existingRole, role) => {
87
- const { contensis, currentEnv, messages } = this;
88
- if (!contensis) throw new Error("shouldnt be here");
89
- if (existingRole) {
90
- const [err, updated] = await contensis.roles.UpdateRole(existingRole.id, {
91
- ...existingRole,
92
- ...role
93
- });
94
- if (err)
95
- throw new Error(messages.roles.failedSet(currentEnv, role.name), {
96
- cause: err
97
- });
98
- return updated;
99
- } else {
100
- const [err, created] = await contensis.roles.CreateRole(
101
- role
102
- );
103
- if (err)
104
- throw new Error(messages.roles.failedCreate(currentEnv, role.name), {
105
- cause: err
106
- });
107
- return created;
108
- }
109
- };
110
- }
111
- var ContensisRoleService_default = ContensisRole;
112
- //# sourceMappingURL=ContensisRoleService.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/services/ContensisRoleService.ts"],
4
- "sourcesContent": ["import { Role } from 'contensis-management-api/lib/models';\nimport { ApiKey, MigrateRequest } from 'migratortron';\nimport to from 'await-to-js';\nimport ContensisCli from './ContensisCliService';\nimport { OutputOptionsConstructorArg } from '~/models/CliService';\nimport { Logger } from '~/util/logger';\n\nclass ContensisRole extends ContensisCli {\n constructor(\n args: string[],\n outputOpts?: OutputOptionsConstructorArg,\n contensisOpts: Partial<MigrateRequest> = {}\n ) {\n super(args, outputOpts, contensisOpts);\n }\n\n GetDeliveryApiKey = async () => {\n const { contensis, currentEnv } = this;\n\n const CMS = `https://cms-${currentEnv}.cloud.contensis.com`;\n const API = 'api/contensis-cli/settings/defaultDeliveryApiAccessToken';\n\n if (contensis) {\n const [error, bearerToken] = await to(\n contensis.content.sourceRepo.repo.BearerToken()\n );\n if (error) Logger.error(error.message);\n\n const token = fetch(`${CMS}/${API}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${bearerToken}`,\n },\n })\n .then(repsonse => repsonse.json())\n .then(({ value }) => {\n if (value) return value;\n })\n .catch(error => {\n throw new Error(error);\n });\n\n return token;\n }\n };\n\n CreateOrUpdateApiKey = async (\n existingKey: ApiKey | undefined,\n name: string,\n description: string\n ) => {\n const { contensis, currentEnv, messages } = this;\n if (!contensis) throw new Error('shouldnt be here');\n if (existingKey) {\n const [err, key] = await contensis.apiKeys.UpdateKey(existingKey.id, {\n name,\n description,\n });\n\n if (err)\n throw new Error(messages.keys.failedUpdate(currentEnv, name), {\n cause: err,\n });\n return key;\n } else {\n const [err, key] = await contensis.apiKeys.CreateKey(name, description);\n if (err)\n throw new Error(messages.keys.failedCreate(currentEnv, name), {\n cause: err,\n });\n\n return key;\n }\n };\n\n CreateOrUpdateRole = async (\n existingRole: Role | undefined,\n role: Partial<Role>\n ) => {\n const { contensis, currentEnv, messages } = this;\n if (!contensis) throw new Error('shouldnt be here');\n\n if (existingRole) {\n // TODO: check is update needed?\n const [err, updated] = await contensis.roles.UpdateRole(existingRole.id, {\n ...existingRole,\n ...role,\n });\n if (err)\n throw new Error(messages.roles.failedSet(currentEnv, role.name), {\n cause: err,\n });\n return updated;\n } else {\n const [err, created] = await contensis.roles.CreateRole(\n role as Omit<Role, 'id'>\n );\n if (err)\n throw new Error(messages.roles.failedCreate(currentEnv, role.name), {\n cause: err,\n });\n\n return created;\n }\n };\n}\nexport default ContensisRole;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,yBAAe;AACf,iCAAyB;AAEzB,oBAAuB;AAEvB,MAAM,sBAAsB,2BAAAA,QAAa;AAAA,EACvC,YACE,MACA,YACA,gBAAyC,CAAC,GAC1C;AACA,UAAM,MAAM,YAAY,aAAa;AAAA,EACvC;AAAA,EAEA,oBAAoB,YAAY;AAC9B,UAAM,EAAE,WAAW,WAAW,IAAI;AAElC,UAAM,MAAM,eAAe,UAAU;AACrC,UAAM,MAAM;AAEZ,QAAI,WAAW;AACb,YAAM,CAAC,OAAO,WAAW,IAAI,UAAM,mBAAAC;AAAA,QACjC,UAAU,QAAQ,WAAW,KAAK,YAAY;AAAA,MAChD;AACA,UAAI,MAAO,sBAAO,MAAM,MAAM,OAAO;AAErC,YAAM,QAAQ,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI;AAAA,QACnC,QAAQ;AAAA,QACR,SAAS;AAAA,UACP,gBAAgB;AAAA,UAChB,eAAe,UAAU,WAAW;AAAA,QACtC;AAAA,MACF,CAAC,EACE,KAAK,cAAY,SAAS,KAAK,CAAC,EAChC,KAAK,CAAC,EAAE,MAAM,MAAM;AACnB,YAAI,MAAO,QAAO;AAAA,MACpB,CAAC,EACA,MAAM,CAAAC,WAAS;AACd,cAAM,IAAI,MAAMA,MAAK;AAAA,MACvB,CAAC;AAEH,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,uBAAuB,OACrB,aACA,MACA,gBACG;AACH,UAAM,EAAE,WAAW,YAAY,SAAS,IAAI;AAC5C,QAAI,CAAC,UAAW,OAAM,IAAI,MAAM,kBAAkB;AAClD,QAAI,aAAa;AACf,YAAM,CAAC,KAAK,GAAG,IAAI,MAAM,UAAU,QAAQ,UAAU,YAAY,IAAI;AAAA,QACnE;AAAA,QACA;AAAA,MACF,CAAC;AAED,UAAI;AACF,cAAM,IAAI,MAAM,SAAS,KAAK,aAAa,YAAY,IAAI,GAAG;AAAA,UAC5D,OAAO;AAAA,QACT,CAAC;AACH,aAAO;AAAA,IACT,OAAO;AACL,YAAM,CAAC,KAAK,GAAG,IAAI,MAAM,UAAU,QAAQ,UAAU,MAAM,WAAW;AACtE,UAAI;AACF,cAAM,IAAI,MAAM,SAAS,KAAK,aAAa,YAAY,IAAI,GAAG;AAAA,UAC5D,OAAO;AAAA,QACT,CAAC;AAEH,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,qBAAqB,OACnB,cACA,SACG;AACH,UAAM,EAAE,WAAW,YAAY,SAAS,IAAI;AAC5C,QAAI,CAAC,UAAW,OAAM,IAAI,MAAM,kBAAkB;AAElD,QAAI,cAAc;AAEhB,YAAM,CAAC,KAAK,OAAO,IAAI,MAAM,UAAU,MAAM,WAAW,aAAa,IAAI;AAAA,QACvE,GAAG;AAAA,QACH,GAAG;AAAA,MACL,CAAC;AACD,UAAI;AACF,cAAM,IAAI,MAAM,SAAS,MAAM,UAAU,YAAY,KAAK,IAAI,GAAG;AAAA,UAC/D,OAAO;AAAA,QACT,CAAC;AACH,aAAO;AAAA,IACT,OAAO;AACL,YAAM,CAAC,KAAK,OAAO,IAAI,MAAM,UAAU,MAAM;AAAA,QAC3C;AAAA,MACF;AACA,UAAI;AACF,cAAM,IAAI,MAAM,SAAS,MAAM,aAAa,YAAY,KAAK,IAAI,GAAG;AAAA,UAClE,OAAO;AAAA,QACT,CAAC;AAEH,aAAO;AAAA,IACT;AAAA,EACF;AACF;AACA,IAAO,+BAAQ;",
6
- "names": ["ContensisCli", "to", "error"]
7
- }