contensis-cli 1.6.1-beta.2 → 1.6.1-beta.20

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 (144) hide show
  1. package/dist/index.js +58301 -11
  2. package/dist/index.js.map +4 -4
  3. package/dist/shell.js +58040 -52
  4. package/dist/shell.js.map +4 -4
  5. package/esbuild.config.js +8 -13
  6. package/package.json +3 -2
  7. package/src/commands/create.ts +48 -0
  8. package/src/commands/dev.ts +12 -2
  9. package/src/commands/globalOptions.ts +5 -3
  10. package/src/commands/import.ts +46 -5
  11. package/src/commands/push.ts +8 -1
  12. package/src/commands/set.ts +69 -1
  13. package/src/factories/RequestHandlerFactory.ts +19 -8
  14. package/src/localisation/en-GB.ts +22 -4
  15. package/src/mappers/DevRequests-to-RequestHanderCliArgs.ts +25 -17
  16. package/src/models/CliService.d.ts +5 -1
  17. package/src/providers/GitHubCliModuleProvider.ts +8 -8
  18. package/src/providers/HttpProvider.ts +2 -2
  19. package/src/providers/file-provider.ts +3 -0
  20. package/src/services/ContensisCliService.ts +265 -23
  21. package/src/services/ContensisDevService.ts +99 -35
  22. package/src/shell.ts +7 -1
  23. package/src/util/console.printer.ts +52 -0
  24. package/src/util/logger.ts +3 -4
  25. package/src/util/os.ts +5 -3
  26. package/src/version.ts +1 -1
  27. package/dist/commands/connect.js +0 -44
  28. package/dist/commands/connect.js.map +0 -7
  29. package/dist/commands/copy.js +0 -78
  30. package/dist/commands/copy.js.map +0 -7
  31. package/dist/commands/create.js +0 -170
  32. package/dist/commands/create.js.map +0 -7
  33. package/dist/commands/dev.js +0 -78
  34. package/dist/commands/dev.js.map +0 -7
  35. package/dist/commands/diff.js +0 -57
  36. package/dist/commands/diff.js.map +0 -7
  37. package/dist/commands/execute.js +0 -103
  38. package/dist/commands/execute.js.map +0 -7
  39. package/dist/commands/get.js +0 -330
  40. package/dist/commands/get.js.map +0 -7
  41. package/dist/commands/globalOptions.js +0 -252
  42. package/dist/commands/globalOptions.js.map +0 -7
  43. package/dist/commands/import.js +0 -229
  44. package/dist/commands/import.js.map +0 -7
  45. package/dist/commands/index.js +0 -107
  46. package/dist/commands/index.js.map +0 -7
  47. package/dist/commands/list.js +0 -195
  48. package/dist/commands/list.js.map +0 -7
  49. package/dist/commands/login.js +0 -55
  50. package/dist/commands/login.js.map +0 -7
  51. package/dist/commands/push.js +0 -229
  52. package/dist/commands/push.js.map +0 -7
  53. package/dist/commands/remove.js +0 -193
  54. package/dist/commands/remove.js.map +0 -7
  55. package/dist/commands/set.js +0 -180
  56. package/dist/commands/set.js.map +0 -7
  57. package/dist/commands/update.js +0 -70
  58. package/dist/commands/update.js.map +0 -7
  59. package/dist/factories/RequestHandlerFactory.js +0 -221
  60. package/dist/factories/RequestHandlerFactory.js.map +0 -7
  61. package/dist/localisation/en-GB.js +0 -552
  62. package/dist/localisation/en-GB.js.map +0 -7
  63. package/dist/mappers/ContensisCliService-to-RequestHanderSiteConfigYaml.js +0 -56
  64. package/dist/mappers/ContensisCliService-to-RequestHanderSiteConfigYaml.js.map +0 -7
  65. package/dist/mappers/DevInit-to-CIWorkflow.js +0 -409
  66. package/dist/mappers/DevInit-to-CIWorkflow.js.map +0 -7
  67. package/dist/mappers/DevInit-to-RolePermissions.js +0 -56
  68. package/dist/mappers/DevInit-to-RolePermissions.js.map +0 -7
  69. package/dist/mappers/DevRequests-to-RequestHanderCliArgs.js +0 -161
  70. package/dist/mappers/DevRequests-to-RequestHanderCliArgs.js.map +0 -7
  71. package/dist/mappers/MixedFileData.js +0 -83
  72. package/dist/mappers/MixedFileData.js.map +0 -7
  73. package/dist/models/AppError.d.js +0 -2
  74. package/dist/models/AppError.d.js.map +0 -7
  75. package/dist/models/Cache.d.js +0 -2
  76. package/dist/models/Cache.d.js.map +0 -7
  77. package/dist/models/CliService.d.js +0 -17
  78. package/dist/models/CliService.d.js.map +0 -7
  79. package/dist/models/DevService.d.js +0 -17
  80. package/dist/models/DevService.d.js.map +0 -7
  81. package/dist/models/JsModules.d.js +0 -2
  82. package/dist/models/JsModules.d.js.map +0 -7
  83. package/dist/providers/CredentialProvider.js +0 -126
  84. package/dist/providers/CredentialProvider.js.map +0 -7
  85. package/dist/providers/GitHubCliModuleProvider.js +0 -115
  86. package/dist/providers/GitHubCliModuleProvider.js.map +0 -7
  87. package/dist/providers/HttpProvider.js +0 -73
  88. package/dist/providers/HttpProvider.js.map +0 -7
  89. package/dist/providers/ManifestProvider.js +0 -50
  90. package/dist/providers/ManifestProvider.js.map +0 -7
  91. package/dist/providers/SessionCacheProvider.js +0 -132
  92. package/dist/providers/SessionCacheProvider.js.map +0 -7
  93. package/dist/providers/file-provider.js +0 -174
  94. package/dist/providers/file-provider.js.map +0 -7
  95. package/dist/services/ContensisAuthService.js +0 -88
  96. package/dist/services/ContensisAuthService.js.map +0 -7
  97. package/dist/services/ContensisCliService.js +0 -2598
  98. package/dist/services/ContensisCliService.js.map +0 -7
  99. package/dist/services/ContensisDevService.js +0 -387
  100. package/dist/services/ContensisDevService.js.map +0 -7
  101. package/dist/services/ContensisRoleService.js +0 -112
  102. package/dist/services/ContensisRoleService.js.map +0 -7
  103. package/dist/util/api-ids.js +0 -110
  104. package/dist/util/api-ids.js.map +0 -7
  105. package/dist/util/assert.js +0 -62
  106. package/dist/util/assert.js.map +0 -7
  107. package/dist/util/console.printer.js +0 -425
  108. package/dist/util/console.printer.js.map +0 -7
  109. package/dist/util/csv.formatter.js +0 -118
  110. package/dist/util/csv.formatter.js.map +0 -7
  111. package/dist/util/debug.js +0 -29
  112. package/dist/util/debug.js.map +0 -7
  113. package/dist/util/diff.js +0 -118
  114. package/dist/util/diff.js.map +0 -7
  115. package/dist/util/dotenv.js +0 -56
  116. package/dist/util/dotenv.js.map +0 -7
  117. package/dist/util/error.js +0 -36
  118. package/dist/util/error.js.map +0 -7
  119. package/dist/util/fetch.js +0 -69
  120. package/dist/util/fetch.js.map +0 -7
  121. package/dist/util/find.js +0 -39
  122. package/dist/util/find.js.map +0 -7
  123. package/dist/util/git.js +0 -145
  124. package/dist/util/git.js.map +0 -7
  125. package/dist/util/gitignore.js +0 -61
  126. package/dist/util/gitignore.js.map +0 -7
  127. package/dist/util/html.formatter.js +0 -70
  128. package/dist/util/html.formatter.js.map +0 -7
  129. package/dist/util/index.js +0 -68
  130. package/dist/util/index.js.map +0 -7
  131. package/dist/util/json.formatter.js +0 -66
  132. package/dist/util/json.formatter.js.map +0 -7
  133. package/dist/util/logger.js +0 -304
  134. package/dist/util/logger.js.map +0 -7
  135. package/dist/util/os.js +0 -46
  136. package/dist/util/os.js.map +0 -7
  137. package/dist/util/timers.js +0 -49
  138. package/dist/util/timers.js.map +0 -7
  139. package/dist/util/xml.formatter.js +0 -62
  140. package/dist/util/xml.formatter.js.map +0 -7
  141. package/dist/util/yaml.js +0 -44
  142. package/dist/util/yaml.js.map +0 -7
  143. package/dist/version.js +0 -29
  144. package/dist/version.js.map +0 -7
@@ -1,387 +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_ansi_escapes = __toESM(require("ansi-escapes"));
36
- var import_await_to_js = __toESM(require("await-to-js"));
37
- var import_inquirer = __toESM(require("inquirer"));
38
- var import_nanospinner = require("nanospinner");
39
- var import_ContensisRoleService = __toESM(require("./ContensisRoleService"));
40
- var import_RequestHandlerFactory = require("../factories/RequestHandlerFactory");
41
- var import_DevInit_to_CIWorkflow = require("../mappers/DevInit-to-CIWorkflow");
42
- var import_DevRequests_to_RequestHanderCliArgs = __toESM(require("../mappers/DevRequests-to-RequestHanderCliArgs"));
43
- var import_DevInit_to_RolePermissions = require("../mappers/DevInit-to-RolePermissions");
44
- var import_file_provider = require("../providers/file-provider");
45
- var import_diff = require("../util/diff");
46
- var import_dotenv = require("../util/dotenv");
47
- var import_find = require("../util/find");
48
- var import_git = require("../util/git");
49
- var import_json = require("../util/json.formatter");
50
- var import_os = require("../util/os");
51
- var import_gitignore = require("../util/gitignore");
52
- class ContensisDev extends import_ContensisRoleService.default {
53
- git;
54
- blockId;
55
- deployCredentials = {
56
- clientId: "",
57
- clientSecret: ""
58
- };
59
- constructor(args, outputOpts, contensisOpts = {}) {
60
- super(args, outputOpts, contensisOpts);
61
- }
62
- DevelopmentInit = async (projectHome, opts) => {
63
- var _a, _b;
64
- const git = this.git = new import_git.GitHelper(projectHome);
65
- const isRepo = git.checkIsRepo();
66
- if (!isRepo) return;
67
- const { dryRun = false } = opts || {};
68
- const { currentEnv, currentProject, log, messages } = this;
69
- const contensis = await this.ConnectContensis();
70
- if (contensis) {
71
- const validateBlockId = (blockId2) => {
72
- const pattern = /^[0-9a-z](-?[0-9a-z])*$/;
73
- if (blockId2.length >= 1 && blockId2.length <= 225) {
74
- return pattern.test(blockId2);
75
- } else return false;
76
- };
77
- const { blockId } = await import_inquirer.default.prompt({
78
- name: "blockId",
79
- type: "input",
80
- prefix: "\u{1F9F1}",
81
- message: messages.devinit.blockIdQuestion,
82
- validate: validateBlockId,
83
- default: git.name
84
- });
85
- this.blockId = blockId.toLowerCase();
86
- log.success(`Valid block id: ${blockId.toLowerCase()}`);
87
- const [keysErr, apiKeys] = await contensis.apiKeys.GetKeys();
88
- if (keysErr) {
89
- log.error(messages.keys.noList(currentEnv));
90
- log.error((0, import_json.jsonFormatter)(keysErr));
91
- return;
92
- }
93
- const apiKeyExists = (findKey) => apiKeys == null ? void 0 : apiKeys.find(
94
- (k) => k.name.trim().toLowerCase() === (findKey == null ? void 0 : findKey.trim().toLowerCase())
95
- );
96
- const workflowFiles = git.workflows;
97
- let ciFileName = git.ciFileName;
98
- const apiKeyName = `block-${currentProject}-${blockId}`.toLowerCase();
99
- const devKeyName = `${apiKeyName}`;
100
- const devKeyDescription = `Created by Contensis to allow API access from the running block`;
101
- let existingDevKey = apiKeyExists(devKeyName);
102
- const deployKeyName = `${apiKeyName}-ci`;
103
- const deployKeyDescription = `Created by the Contensis CLI for use in continuous integration`;
104
- let existingDeployKey = apiKeyExists(deployKeyName);
105
- const errors = [];
106
- log.raw("");
107
- log.success(messages.devinit.intro());
108
- log.raw(
109
- log.infoText(
110
- messages.devinit.projectDetails(
111
- git.name,
112
- currentEnv,
113
- currentProject,
114
- blockId,
115
- git
116
- )
117
- )
118
- );
119
- log.raw(
120
- log.infoText(
121
- messages.devinit.developmentKey(devKeyName, !!existingDevKey)
122
- )
123
- );
124
- log.raw(
125
- log.infoText(
126
- messages.devinit.deploymentKey(deployKeyName, !!existingDeployKey)
127
- )
128
- );
129
- log.raw("");
130
- if (Array.isArray(workflowFiles) && workflowFiles.length > 1) {
131
- ({ ciFileName } = await import_inquirer.default.prompt([
132
- {
133
- type: "list",
134
- prefix: "\u29F0",
135
- message: messages.devinit.ciMultipleChoices(),
136
- name: "ciFileName",
137
- choices: workflowFiles,
138
- default: workflowFiles.find((f) => f.includes("docker"))
139
- }
140
- ]));
141
- log.raw("");
142
- git.ciFileName = ciFileName;
143
- }
144
- log.raw(log.infoText(messages.devinit.ciDetails(ciFileName)));
145
- const { loc } = await import_inquirer.default.prompt({
146
- name: "loc",
147
- type: "list",
148
- prefix: "\u{1F511}",
149
- // Where would you like to store your client id/secret?
150
- message: messages.devinit.clientDetailsLocation(),
151
- choices: [
152
- {
153
- name: messages.devinit.clientDetailsInGit(git),
154
- value: "git"
155
- },
156
- {
157
- name: messages.devinit.clientDetailsInEnv(),
158
- value: "env"
159
- }
160
- ]
161
- });
162
- log.raw("");
163
- log.help(messages.devinit.ciIntro(git, loc));
164
- if (!dryRun) {
165
- const { confirm } = await import_inquirer.default.prompt([
166
- {
167
- type: "confirm",
168
- message: messages.devinit.confirm(),
169
- name: "confirm",
170
- default: false
171
- }
172
- ]);
173
- log.raw("");
174
- if (!confirm) return;
175
- }
176
- let accessToken = void 0;
177
- const spinner = (0, import_nanospinner.createSpinner)(messages.devinit.accessTokenFetch());
178
- spinner.start();
179
- const token = await this.GetDeliveryApiKey();
180
- if (token) {
181
- accessToken = token;
182
- spinner.success({ text: messages.devinit.accessTokenSuccess(token) });
183
- log.raw("");
184
- } else {
185
- spinner.error();
186
- this.log.error(messages.devinit.accessTokenFailed());
187
- return;
188
- }
189
- const checkpoint = (op) => {
190
- if (errors.length) throw errors[0];
191
- else log.debug(`${op} completed ok`);
192
- return true;
193
- };
194
- const [getRolesErr, roles] = await (0, import_await_to_js.default)(contensis.roles.GetRoles());
195
- if (!roles && getRolesErr) errors.push(getRolesErr);
196
- checkpoint(`fetched ${roles == null ? void 0 : roles.length} roles`);
197
- if (dryRun) {
198
- checkpoint(`skip api key creation (dry-run)`);
199
- } else {
200
- const devKeyExisted = !!existingDevKey;
201
- if (!existingDevKey) {
202
- existingDevKey = await this.CreateOrUpdateApiKey(
203
- existingDevKey,
204
- devKeyName,
205
- devKeyDescription
206
- );
207
- log.success(messages.devinit.createDevKey(devKeyName, devKeyExisted));
208
- }
209
- const deployKeyExisted = !!existingDeployKey;
210
- if (!existingDeployKey) {
211
- existingDeployKey = await this.CreateOrUpdateApiKey(
212
- existingDeployKey,
213
- deployKeyName,
214
- deployKeyDescription
215
- );
216
- }
217
- if (existingDeployKey) {
218
- this.deployCredentials.clientId = existingDeployKey == null ? void 0 : existingDeployKey.id;
219
- this.deployCredentials.clientSecret = existingDeployKey == null ? void 0 : existingDeployKey.sharedSecret;
220
- }
221
- const deployRoleName = `Role for CI push of block '${blockId}'`;
222
- const deplyRoleDescription = `Created by the Contensis CLI for use in continuous integration`;
223
- let existingDeployRole = (0, import_find.findByIdOrName)(
224
- roles || [],
225
- deployRoleName,
226
- true
227
- );
228
- existingDeployRole = await this.CreateOrUpdateRole(
229
- existingDeployRole,
230
- (0, import_DevInit_to_RolePermissions.deployKeyRole)(deployKeyName, deployRoleName, deplyRoleDescription)
231
- );
232
- checkpoint("deploy key role assigned");
233
- log.success(
234
- messages.devinit.createDeployKey(deployRoleName, deployKeyExisted)
235
- );
236
- checkpoint("api keys done");
237
- }
238
- const envFilePath = `${projectHome}/.env`;
239
- const existingEnvFile = (0, import_file_provider.readFile)(envFilePath);
240
- const existingEnvFileArray = (existingEnvFile || "").split("\n").filter((l) => !!l);
241
- const envContentsToAdd = {
242
- ALIAS: currentEnv,
243
- PROJECT_API_ID: currentProject,
244
- BLOCK_ID: blockId
245
- };
246
- if (accessToken) envContentsToAdd["ACCESS_TOKEN"] = accessToken;
247
- if (loc === "env") {
248
- envContentsToAdd["CONTENSIS_CLIENT_ID"] = (existingDevKey == null ? void 0 : existingDevKey.id) || messages.devinit.dryRunKeyMessage(dryRun);
249
- envContentsToAdd["CONTENSIS_CLIENT_SECRET"] = (existingDevKey == null ? void 0 : existingDevKey.sharedSecret) || messages.devinit.dryRunKeyMessage(dryRun);
250
- }
251
- const removeEnvItems = (items) => {
252
- const indexesToRemove = [];
253
- for (let i = 0; i < existingEnvFileArray.length; i++) {
254
- for (const item of items) {
255
- if (existingEnvFileArray[i].includes(item)) {
256
- indexesToRemove.push(i);
257
- break;
258
- }
259
- }
260
- }
261
- for (let i = indexesToRemove.length - 1; i >= 0; i--) {
262
- existingEnvFileArray.splice(indexesToRemove[i], 1);
263
- }
264
- };
265
- if (loc === "git") {
266
- removeEnvItems(["CONTENSIS_CLIENT_ID", "CONTENSIS_CLIENT_SECRET"]);
267
- }
268
- const envFileLines = (0, import_dotenv.mergeDotEnvFileContents)(
269
- existingEnvFileArray,
270
- envContentsToAdd
271
- );
272
- const newEnvFileContent = envFileLines.join("\n");
273
- const envDiff = (0, import_diff.diffFileContent)(existingEnvFile || "", newEnvFileContent);
274
- if (dryRun) {
275
- if (envDiff) {
276
- log.info(`Updating .env file ${(0, import_os.winSlash)(envFilePath)}:
277
- ${envDiff}`);
278
- log.raw("");
279
- }
280
- checkpoint("skip .env file update (dry-run)");
281
- } else {
282
- if (envDiff) log.info(`Updating .env file ${(0, import_os.winSlash)(envFilePath)}`);
283
- (0, import_file_provider.writeFile)(envFilePath, envFileLines.join("\n"));
284
- checkpoint(".env file updated");
285
- log.success(messages.devinit.writeEnvFile());
286
- }
287
- if (dryRun) {
288
- checkpoint("skip .gitignore file update (dry-run)");
289
- } else {
290
- (0, import_gitignore.mergeContentsToAddWithGitignore)(`${projectHome}/.gitignore`, [".env"]);
291
- log.raw("");
292
- }
293
- const mappedWorkflow = await (0, import_DevInit_to_CIWorkflow.mapCIWorkflowContent)(this, loc);
294
- if (mappedWorkflow == null ? void 0 : mappedWorkflow.diff) {
295
- log.info(
296
- `Updating ${(0, import_os.winSlash)(ciFileName)} file:
297
- ${mappedWorkflow.diff}`
298
- );
299
- log.raw("");
300
- }
301
- if (dryRun) {
302
- checkpoint("skip CI file update (dry-run)");
303
- } else {
304
- if (mappedWorkflow == null ? void 0 : mappedWorkflow.newWorkflow) {
305
- if (mappedWorkflow == null ? void 0 : mappedWorkflow.diff) {
306
- (0, import_file_provider.writeFile)(git.ciFilePath, mappedWorkflow.newWorkflow);
307
- log.success(messages.devinit.writeCiFile(`./${ciFileName}`));
308
- log.info(
309
- messages.devinit.ciBlockTip(blockId, currentEnv, currentProject)
310
- );
311
- } else {
312
- log.info(messages.devinit.ciFileNoChanges(`./${ciFileName}`));
313
- }
314
- log.raw("");
315
- checkpoint("CI file updated");
316
- }
317
- }
318
- if (loc === "git") {
319
- log.warning(messages.devinit.addGitSecretsIntro());
320
- log.help(
321
- messages.devinit.addGitSecretsHelp(
322
- git,
323
- (existingDeployKey == null ? void 0 : existingDeployKey.id) || messages.devinit.dryRunKeyMessage(dryRun),
324
- (existingDeployKey == null ? void 0 : existingDeployKey.sharedSecret) || messages.devinit.dryRunKeyMessage(dryRun)
325
- )
326
- );
327
- }
328
- if (dryRun) {
329
- log.success(messages.devinit.dryRun());
330
- log.help(messages.devinit.noChanges());
331
- } else {
332
- log.success(messages.devinit.success());
333
- log.help(messages.devinit.startProjectTip());
334
- const classicToken = await ((_a = this.auth) == null ? void 0 : _a.ClassicToken());
335
- log.help(
336
- import_ansi_escapes.default.link(
337
- `Open Contensis`,
338
- `${(_b = this.urls) == null ? void 0 : _b.cms}${classicToken ? `?SecurityToken=${classicToken}` : ""}`
339
- )
340
- );
341
- }
342
- }
343
- };
344
- ExecRequestHandler = async (blockId, overrideArgs = [], version) => {
345
- var _a;
346
- const { debug, log, messages } = this;
347
- const spinner = !debug ? (0, import_nanospinner.createSpinner)(messages.devrequests.launch()) : log.info(messages.devrequests.launch());
348
- const requestHandler = await (0, import_RequestHandlerFactory.createRequestHandler)(version);
349
- const args = new import_DevRequests_to_RequestHanderCliArgs.default(this);
350
- spinner == null ? void 0 : spinner.start();
351
- await args.Create();
352
- spinner == null ? void 0 : spinner.success();
353
- const blockIdChoices = ((_a = args.siteConfig) == null ? void 0 : _a.blocks.map((block) => block.id)) || [];
354
- blockIdChoices.push("none");
355
- const defaultDeveloperUri = "http://localhost:3000";
356
- const { overrideBlockId, overrideUri } = blockId.length ? {
357
- overrideBlockId: blockId[0],
358
- overrideUri: (blockId == null ? void 0 : blockId[1]) || defaultDeveloperUri
359
- } : await import_inquirer.default.prompt([
360
- {
361
- type: "list",
362
- prefix: "\u{1F9F1}",
363
- message: messages.devrequests.overrideBlock(),
364
- name: "overrideBlockId",
365
- choices: blockIdChoices
366
- },
367
- {
368
- type: "input",
369
- prefix: "\u{1F517}",
370
- message: messages.devrequests.overrideUri(),
371
- name: "overrideUri",
372
- default: defaultDeveloperUri
373
- }
374
- ]);
375
- args.overrideBlock(overrideBlockId, overrideUri);
376
- await requestHandler(args.getArgs(overrideArgs));
377
- };
378
- }
379
- const devCommand = (commandArgs, outputOpts, contensisOpts = {}) => {
380
- return new ContensisDev(["", "", ...commandArgs], outputOpts, contensisOpts);
381
- };
382
- var ContensisDevService_default = ContensisDev;
383
- // Annotate the CommonJS export names for ESM import in node:
384
- 0 && (module.exports = {
385
- devCommand
386
- });
387
- //# sourceMappingURL=ContensisDevService.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/services/ContensisDevService.ts"],
4
- "sourcesContent": ["import 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 overrideArgs: string[] = [],\n version?: string\n ) => {\n const { 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 // Generate args for request handler using CLI methods\n const args = new RequestHandlerArgs(this);\n spinner?.start();\n await args.Create();\n spinner?.success();\n\n // Prompt block id and dev uri to run locally (if not supplied)\n const blockIdChoices = args.siteConfig?.blocks.map(block => block.id) || [];\n blockIdChoices.push('none');\n const defaultDeveloperUri = 'http://localhost:3000';\n\n const { overrideBlockId, overrideUri } = blockId.length\n ? {\n overrideBlockId: blockId[0],\n overrideUri: blockId?.[1] || defaultDeveloperUri,\n }\n : await inquirer.prompt([\n {\n type: 'list',\n prefix: '\uD83E\uDDF1',\n message: messages.devrequests.overrideBlock(),\n name: 'overrideBlockId',\n choices: blockIdChoices,\n },\n {\n type: 'input',\n prefix: '\uD83D\uDD17',\n message: messages.devrequests.overrideUri(),\n name: 'overrideUri',\n default: defaultDeveloperUri,\n },\n ]);\n\n args.overrideBlock(overrideBlockId, overrideUri);\n\n // Launch request handler\n await requestHandler(args.getArgs(overrideArgs));\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", "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
- }