auth0-deploy-cli 8.13.0 → 8.14.0-beta.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.
- package/.circleci/config.yml +42 -1
- package/CHANGELOG.md +9 -1
- package/README.md +1 -0
- package/lib/args.d.ts +1 -0
- package/lib/args.js +6 -0
- package/lib/args.js.map +1 -1
- package/lib/commands/import.js +10 -3
- package/lib/commands/import.js.map +1 -1
- package/lib/context/directory/handlers/connections.js +1 -1
- package/lib/context/directory/handlers/connections.js.map +1 -1
- package/lib/context/directory/handlers/guardianFactors.js +3 -1
- package/lib/context/directory/handlers/guardianFactors.js.map +1 -1
- package/lib/context/directory/handlers/prompts.js +9 -2
- package/lib/context/directory/handlers/prompts.js.map +1 -1
- package/lib/context/directory/handlers/tenant.d.ts +0 -3
- package/lib/context/directory/handlers/tenant.js +4 -18
- package/lib/context/directory/handlers/tenant.js.map +1 -1
- package/lib/context/yaml/handlers/connections.js +1 -11
- package/lib/context/yaml/handlers/connections.js.map +1 -1
- package/lib/context/yaml/handlers/guardianFactors.js +3 -1
- package/lib/context/yaml/handlers/guardianFactors.js.map +1 -1
- package/lib/context/yaml/handlers/tenant.js +3 -16
- package/lib/context/yaml/handlers/tenant.js.map +1 -1
- package/lib/sessionDurationsToMinutes.d.ts +3 -4
- package/lib/sessionDurationsToMinutes.js +5 -5
- package/lib/sessionDurationsToMinutes.js.map +1 -1
- package/lib/tools/auth0/handlers/attackProtection.js +7 -0
- package/lib/tools/auth0/handlers/attackProtection.js.map +1 -1
- package/lib/tools/auth0/handlers/branding.js +7 -0
- package/lib/tools/auth0/handlers/branding.js.map +1 -1
- package/lib/tools/auth0/handlers/connections.d.ts +0 -5
- package/lib/tools/auth0/handlers/connections.js +1 -11
- package/lib/tools/auth0/handlers/connections.js.map +1 -1
- package/lib/tools/auth0/handlers/customDomains.js +10 -1
- package/lib/tools/auth0/handlers/customDomains.js.map +1 -1
- package/lib/tools/auth0/handlers/default.d.ts +4 -0
- package/lib/tools/auth0/handlers/default.js +75 -1
- package/lib/tools/auth0/handlers/default.js.map +1 -1
- package/lib/tools/auth0/handlers/emailProvider.js +8 -1
- package/lib/tools/auth0/handlers/emailProvider.js.map +1 -1
- package/lib/tools/auth0/handlers/emailTemplates.js +7 -0
- package/lib/tools/auth0/handlers/emailTemplates.js.map +1 -1
- package/lib/tools/auth0/handlers/flowVaultConnections.js +6 -1
- package/lib/tools/auth0/handlers/flowVaultConnections.js.map +1 -1
- package/lib/tools/auth0/handlers/flows.js +14 -6
- package/lib/tools/auth0/handlers/flows.js.map +1 -1
- package/lib/tools/auth0/handlers/forms.js +14 -6
- package/lib/tools/auth0/handlers/forms.js.map +1 -1
- package/lib/tools/auth0/handlers/guardianFactors.js +7 -1
- package/lib/tools/auth0/handlers/guardianFactors.js.map +1 -1
- package/lib/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js +8 -1
- package/lib/tools/auth0/handlers/guardianPhoneFactorMessageTypes.js.map +1 -1
- package/lib/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js +8 -1
- package/lib/tools/auth0/handlers/guardianPhoneFactorSelectedProvider.js.map +1 -1
- package/lib/tools/auth0/handlers/guardianPolicies.js +8 -1
- package/lib/tools/auth0/handlers/guardianPolicies.js.map +1 -1
- package/lib/tools/auth0/handlers/organizations.js +7 -0
- package/lib/tools/auth0/handlers/organizations.js.map +1 -1
- package/lib/tools/auth0/handlers/pages.js +7 -0
- package/lib/tools/auth0/handlers/pages.js.map +1 -1
- package/lib/tools/auth0/handlers/phoneProvider.js +7 -0
- package/lib/tools/auth0/handlers/phoneProvider.js.map +1 -1
- package/lib/tools/auth0/handlers/prompts.js +7 -0
- package/lib/tools/auth0/handlers/prompts.js.map +1 -1
- package/lib/tools/auth0/handlers/resourceServers.d.ts +2 -2
- package/lib/tools/auth0/handlers/resourceServers.js +45 -20
- package/lib/tools/auth0/handlers/resourceServers.js.map +1 -1
- package/lib/tools/auth0/handlers/roles.js +7 -0
- package/lib/tools/auth0/handlers/roles.js.map +1 -1
- package/lib/tools/auth0/handlers/scimHandler.js +8 -1
- package/lib/tools/auth0/handlers/scimHandler.js.map +1 -1
- package/lib/tools/auth0/handlers/selfServiceProfiles.js +9 -17
- package/lib/tools/auth0/handlers/selfServiceProfiles.js.map +1 -1
- package/lib/tools/auth0/handlers/tenant.js +25 -3
- package/lib/tools/auth0/handlers/tenant.js.map +1 -1
- package/lib/tools/auth0/handlers/themes.js +12 -3
- package/lib/tools/auth0/handlers/themes.js.map +1 -1
- package/lib/tools/auth0/handlers/triggers.js +6 -0
- package/lib/tools/auth0/handlers/triggers.js.map +1 -1
- package/lib/tools/auth0/index.d.ts +2 -1
- package/lib/tools/auth0/index.js +62 -0
- package/lib/tools/auth0/index.js.map +1 -1
- package/lib/tools/calculateChanges.d.ts +53 -3
- package/lib/tools/calculateChanges.js +347 -6
- package/lib/tools/calculateChanges.js.map +1 -1
- package/lib/tools/deploy.d.ts +1 -1
- package/lib/tools/deploy.js +134 -3
- package/lib/tools/deploy.js.map +1 -1
- package/lib/tools/utils.d.ts +4 -0
- package/lib/tools/utils.js +26 -0
- package/lib/tools/utils.js.map +1 -1
- package/lib/types.d.ts +14 -0
- package/lib/types.js.map +1 -1
- package/lib/utils.d.ts +6 -0
- package/lib/utils.js +23 -1
- package/lib/utils.js.map +1 -1
- package/package.json +6 -4
- package/.github/workflows/semgrep.yml +0 -18
|
@@ -1,11 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
13
|
};
|
|
5
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.exportDiffLog = void 0;
|
|
6
16
|
exports.processChangedObjectFields = processChangedObjectFields;
|
|
7
17
|
exports.calculateChanges = calculateChanges;
|
|
18
|
+
exports.getObjectDifferences = getObjectDifferences;
|
|
19
|
+
exports.hasObjectDifferences = hasObjectDifferences;
|
|
20
|
+
exports.calculateDryRunChanges = calculateDryRunChanges;
|
|
21
|
+
exports.dryRunFormatAssets = dryRunFormatAssets;
|
|
22
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
23
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
8
24
|
const logger_1 = __importDefault(require("../logger"));
|
|
25
|
+
const utils_1 = require("./utils");
|
|
26
|
+
const client_1 = require("./auth0/client");
|
|
27
|
+
const utils_2 = require("../utils");
|
|
9
28
|
/**
|
|
10
29
|
* @template T
|
|
11
30
|
* @param {typeof import('./auth0/handlers/default').default} handler
|
|
@@ -67,8 +86,14 @@ function processChangedObjectFields({ handler, desiredAssetState, currentAssetSt
|
|
|
67
86
|
function calculateChanges({ handler, assets, existing, identifiers = ['id', 'name'], allowDelete, }) {
|
|
68
87
|
// Calculate the changes required between two sets of assets.
|
|
69
88
|
const update = [];
|
|
70
|
-
let del = [
|
|
71
|
-
|
|
89
|
+
let del = [];
|
|
90
|
+
if (existing) {
|
|
91
|
+
del = Array.isArray(existing) ? [...existing] : [existing];
|
|
92
|
+
}
|
|
93
|
+
let create = [];
|
|
94
|
+
if (assets) {
|
|
95
|
+
create = Array.isArray(assets) ? [...assets] : [assets];
|
|
96
|
+
}
|
|
72
97
|
const conflicts = [];
|
|
73
98
|
const findByKeyValue = (key, value, arr) => arr.find((e) => {
|
|
74
99
|
if (Array.isArray(key)) {
|
|
@@ -117,10 +142,9 @@ function calculateChanges({ handler, assets, existing, identifiers = ['id', 'nam
|
|
|
117
142
|
// Loop through identifiers (in order) to try match assets to existing
|
|
118
143
|
// If existing then update if not create
|
|
119
144
|
// The remainder will be deleted
|
|
120
|
-
|
|
121
|
-
// eslint-disable-line
|
|
145
|
+
identifiers.forEach((id) => {
|
|
122
146
|
processAssets(id, [...create]);
|
|
123
|
-
}
|
|
147
|
+
});
|
|
124
148
|
// Check if there are assets with names that will conflict with existing names during the update process
|
|
125
149
|
// This will rename those assets to a temp random name first
|
|
126
150
|
// This assumes the first identifiers is the unique identifier
|
|
@@ -131,7 +155,17 @@ function calculateChanges({ handler, assets, existing, identifiers = ['id', 'nam
|
|
|
131
155
|
// If the conflicting item is going to be deleted then skip
|
|
132
156
|
const inDeleted = del.filter((e) => e.name === a.name && e[uniqueID] !== a[uniqueID])[0];
|
|
133
157
|
if (!inDeleted) {
|
|
134
|
-
|
|
158
|
+
let existingArray;
|
|
159
|
+
if (Array.isArray(existing)) {
|
|
160
|
+
existingArray = existing;
|
|
161
|
+
}
|
|
162
|
+
else if (existing) {
|
|
163
|
+
existingArray = [existing];
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
existingArray = [];
|
|
167
|
+
}
|
|
168
|
+
const conflict = existingArray.filter((e) => e.name === a.name && e[uniqueID] !== a[uniqueID])[0];
|
|
135
169
|
if (conflict) {
|
|
136
170
|
const temp = Math.random().toString(36).substr(2, 5);
|
|
137
171
|
conflicts.push(Object.assign(Object.assign({}, conflict), { name: `${conflict.name}-${temp}` }));
|
|
@@ -146,4 +180,311 @@ function calculateChanges({ handler, assets, existing, identifiers = ['id', 'nam
|
|
|
146
180
|
create,
|
|
147
181
|
};
|
|
148
182
|
}
|
|
183
|
+
const logStore = {};
|
|
184
|
+
const diffLog = (resourceTypeName, message) => {
|
|
185
|
+
if (!logStore[resourceTypeName]) {
|
|
186
|
+
logStore[resourceTypeName] = [];
|
|
187
|
+
}
|
|
188
|
+
logStore[resourceTypeName].push(...message);
|
|
189
|
+
};
|
|
190
|
+
const getDiffLog = (resourceTypeName) => resourceTypeName ? logStore[resourceTypeName] || [] : logStore;
|
|
191
|
+
const exportDiffLog = (fileName, resourceTypeName) => __awaiter(void 0, void 0, void 0, function* () {
|
|
192
|
+
const diffLogData = getDiffLog(resourceTypeName);
|
|
193
|
+
try {
|
|
194
|
+
yield promises_1.default.writeFile(`./${fileName}`, JSON.stringify(diffLogData, null, 2));
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
logger_1.default.error(`Failed to export diff log: ${String(error)}`);
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
exports.exportDiffLog = exportDiffLog;
|
|
201
|
+
/**
|
|
202
|
+
* Compares two objects and returns an array of differences found.
|
|
203
|
+
* Only considers keys that exist in obj1 - extra keys in obj2 are ignored.
|
|
204
|
+
* @param localObj - The first object (preferred values)
|
|
205
|
+
* @param remoteObj - The second object to compare against
|
|
206
|
+
* @param keyObjPath - The current JSON path for nested object tracking
|
|
207
|
+
* @param resourceTypeName - The resource type name for logging
|
|
208
|
+
* @returns Array of difference descriptions, empty array if no differences
|
|
209
|
+
*/
|
|
210
|
+
function getObjectDifferences(localObj, remoteObj, keyObjPath = '', resourceTypeName = '', ignoreDryRunFields = []) {
|
|
211
|
+
const differences = [];
|
|
212
|
+
Object.keys(localObj).forEach((key) => {
|
|
213
|
+
const localValue = localObj[key];
|
|
214
|
+
const remoteValue = remoteObj[key];
|
|
215
|
+
const currentPath = keyObjPath ? `${keyObjPath}.${key}` : key;
|
|
216
|
+
// If key doesn't exist in remoteObj, there's a difference
|
|
217
|
+
if (!(key in remoteObj)) {
|
|
218
|
+
if (ignoreDryRunFields.includes(currentPath)) {
|
|
219
|
+
logger_1.default.debug(`[${chalk_1.default.blue(resourceTypeName)}] Ignoring key ${chalk_1.default.yellow(`"${currentPath}"`)} due to ignoreDryRunFields configuration.`);
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
const message = `Key [${currentPath}] found in 'localObj' but not in 'remoteObj'.`;
|
|
223
|
+
logger_1.default.debug(`[${chalk_1.default.blue(resourceTypeName)}] Key ${chalk_1.default.yellow(`"${currentPath}"`)} found in 'localObj' but not in 'remoteObj'.`);
|
|
224
|
+
differences.push(message);
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
// Handle arrays
|
|
228
|
+
if (Array.isArray(localValue) && Array.isArray(remoteValue)) {
|
|
229
|
+
if (localValue.length !== remoteValue.length) {
|
|
230
|
+
const message = `Array length difference for [${currentPath}]: local:${localValue.length} vs remote:${remoteValue.length}`;
|
|
231
|
+
logger_1.default.debug(`[${chalk_1.default.blue(resourceTypeName)}] Array length difference for ${chalk_1.default.yellow(`"${currentPath}"`)}: local:${localValue.length} vs remote:${remoteValue.length}`);
|
|
232
|
+
differences.push(message);
|
|
233
|
+
}
|
|
234
|
+
// For arrays with objects, compare in order; for primitive arrays, ignore order
|
|
235
|
+
const hasObjects = localValue.some((item) => typeof item === 'object' && item !== null);
|
|
236
|
+
if (hasObjects) {
|
|
237
|
+
localValue.forEach((item, index) => {
|
|
238
|
+
if (typeof item === 'object' &&
|
|
239
|
+
item !== null &&
|
|
240
|
+
typeof remoteValue[index] === 'object' &&
|
|
241
|
+
remoteValue[index] !== null) {
|
|
242
|
+
const nestedDifferences = getObjectDifferences(item, remoteValue[index], `${currentPath}[${index}]`, resourceTypeName, ignoreDryRunFields);
|
|
243
|
+
differences.push(...nestedDifferences);
|
|
244
|
+
}
|
|
245
|
+
else if (item !== remoteValue[index]) {
|
|
246
|
+
const message = `Array item difference at [${currentPath}[${index}]]: local:${item} vs remote:${remoteValue[index]}`;
|
|
247
|
+
differences.push(message);
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
// Compare primitive arrays ignoring order
|
|
253
|
+
const sorted1 = [...localValue].sort();
|
|
254
|
+
const sorted2 = [...remoteValue].sort();
|
|
255
|
+
const isDifferent = sorted1.some((item, index) => item !== sorted2[index]);
|
|
256
|
+
if (isDifferent) {
|
|
257
|
+
const message = `Array content difference found for key [${currentPath}]`;
|
|
258
|
+
logger_1.default.debug(`[${chalk_1.default.blue(resourceTypeName)}] Array content difference found for key ${chalk_1.default.yellow(`"${currentPath}"`)}`);
|
|
259
|
+
differences.push(message);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
// Handle nested objects
|
|
265
|
+
if (typeof localValue === 'object' &&
|
|
266
|
+
localValue !== null &&
|
|
267
|
+
typeof remoteValue === 'object' &&
|
|
268
|
+
remoteValue !== null) {
|
|
269
|
+
const nestedDifferences = getObjectDifferences(localValue, remoteValue, currentPath, resourceTypeName, ignoreDryRunFields);
|
|
270
|
+
differences.push(...nestedDifferences);
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
// Compare primitive values
|
|
274
|
+
if (localValue !== remoteValue) {
|
|
275
|
+
const message = `Value difference for [${currentPath}]: local:${localValue} vs remote:${remoteValue}`;
|
|
276
|
+
logger_1.default.debug(`[${chalk_1.default.blue(resourceTypeName)}] Value difference for ${chalk_1.default.yellow(`"${currentPath}"`)}: local:${localValue} vs remote:${remoteValue}`);
|
|
277
|
+
differences.push(message);
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
return differences;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Compares two objects and returns true if there are differences.
|
|
284
|
+
* Only considers keys that exist in obj1 - extra keys in obj2 are ignored.
|
|
285
|
+
* @param obj1 - The first object (preferred values)
|
|
286
|
+
* @param obj2 - The second object to compare against
|
|
287
|
+
* @param keyObjPath - The current JSON path for nested object tracking
|
|
288
|
+
* @returns true if objects differ, false if they are the same
|
|
289
|
+
*/
|
|
290
|
+
function hasObjectDifferences(localObj, remoteObj, keyObjPath = '', resourceTypeName = '', ignoreDryRunFields = []) {
|
|
291
|
+
const differences = getObjectDifferences(localObj, remoteObj, keyObjPath, resourceTypeName, ignoreDryRunFields);
|
|
292
|
+
diffLog(resourceTypeName, differences);
|
|
293
|
+
return differences.length > 0;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Calculates the changes required between local and remote asset sets for dry run operations.
|
|
297
|
+
*
|
|
298
|
+
* This function compares local assets with existing remote assets to determine what operations
|
|
299
|
+
* need to be performed: create new assets, update existing ones, or delete removed assets.
|
|
300
|
+
* Assets are matched using configurable identifier fields.
|
|
301
|
+
*
|
|
302
|
+
* @param params - The configuration object for calculating changes
|
|
303
|
+
* @param params.type - The type of assets being compared (used for logging)
|
|
304
|
+
* @param params.assets - Array of local assets to be deployed
|
|
305
|
+
* @param params.existing - Array of existing remote assets, or null if none exist
|
|
306
|
+
* @param params.identifiers - Array of field names or field name arrays used to match assets between local and remote sets. Default is ['id', 'name']
|
|
307
|
+
*
|
|
308
|
+
*/
|
|
309
|
+
function calculateDryRunChanges({ type, assets, existing, identifiers = ['id', 'name'], ignoreDryRunFields = [], }) {
|
|
310
|
+
// Calculate the changes required between two sets of assets.
|
|
311
|
+
const update = [];
|
|
312
|
+
const del = [];
|
|
313
|
+
const create = [];
|
|
314
|
+
const conflicts = [];
|
|
315
|
+
const localAssets = Array.isArray(assets) ? [...assets] : [assets]; // Local assets (what we have locally)
|
|
316
|
+
const remoteAssets = Array.isArray(existing) ? [...existing] : [existing]; // Remote assets (what exists remotely)
|
|
317
|
+
// identify created
|
|
318
|
+
const createdAssets = localAssets.filter((localAsset) => !remoteAssets.some((remoteAsset) => identifiers.some((id) => {
|
|
319
|
+
if (Array.isArray(id)) {
|
|
320
|
+
const localValues = id.map((i) => localAsset[i]);
|
|
321
|
+
const remoteValues = id.map((i) => remoteAsset[i]);
|
|
322
|
+
return (localValues.every((v) => v) &&
|
|
323
|
+
remoteValues.every((v) => v) &&
|
|
324
|
+
localValues.join('-') === remoteValues.join('-'));
|
|
325
|
+
}
|
|
326
|
+
return localAsset[id] === remoteAsset[id];
|
|
327
|
+
})));
|
|
328
|
+
create.push(...createdAssets);
|
|
329
|
+
// identify updated
|
|
330
|
+
const updatedAssets = localAssets.filter((localAsset) => {
|
|
331
|
+
var _a;
|
|
332
|
+
const matchingRemoteAsset = remoteAssets.find((remoteAsset) => identifiers.some((id) => {
|
|
333
|
+
if (Array.isArray(id)) {
|
|
334
|
+
const localValues = id.map((i) => localAsset[i]);
|
|
335
|
+
const remoteValues = id.map((i) => remoteAsset[i]);
|
|
336
|
+
return (localValues.every((v) => v !== undefined && v !== null) &&
|
|
337
|
+
remoteValues.every((v) => v !== undefined && v !== null) &&
|
|
338
|
+
localValues.join('-') === remoteValues.join('-'));
|
|
339
|
+
}
|
|
340
|
+
return (localAsset[id] !== undefined &&
|
|
341
|
+
remoteAsset[id] !== undefined &&
|
|
342
|
+
localAsset[id] === remoteAsset[id]);
|
|
343
|
+
}));
|
|
344
|
+
if (matchingRemoteAsset) {
|
|
345
|
+
// Add missing identifiers from remote asset to local asset
|
|
346
|
+
identifiers.forEach((id) => {
|
|
347
|
+
if (Array.isArray(id)) {
|
|
348
|
+
// Handle array identifiers - ensure all parts exist
|
|
349
|
+
id.forEach((idPart) => {
|
|
350
|
+
if (!localAsset[idPart] && matchingRemoteAsset[idPart]) {
|
|
351
|
+
localAsset[idPart] = matchingRemoteAsset[idPart];
|
|
352
|
+
}
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
else if (!localAsset[id] && matchingRemoteAsset[id]) {
|
|
356
|
+
// Handle single identifier
|
|
357
|
+
localAsset[id] = matchingRemoteAsset[id];
|
|
358
|
+
}
|
|
359
|
+
});
|
|
360
|
+
return hasObjectDifferences(localAsset, matchingRemoteAsset, (_a = matchingRemoteAsset.name) !== null && _a !== void 0 ? _a : '', type, ignoreDryRunFields);
|
|
361
|
+
}
|
|
362
|
+
// If no match found, check with hasObjectDifferences against all remote assets
|
|
363
|
+
return remoteAssets.some((remoteAsset) => {
|
|
364
|
+
var _a;
|
|
365
|
+
return hasObjectDifferences(localAsset, remoteAsset, (_a = remoteAsset.name) !== null && _a !== void 0 ? _a : '', type, ignoreDryRunFields);
|
|
366
|
+
});
|
|
367
|
+
});
|
|
368
|
+
update.push(...updatedAssets);
|
|
369
|
+
// identify deleted
|
|
370
|
+
const deletedAssets = remoteAssets
|
|
371
|
+
.filter((remoteAsset) => !localAssets.some((localAsset) => identifiers.some((id) => {
|
|
372
|
+
if (Array.isArray(id)) {
|
|
373
|
+
const localValues = id.map((i) => localAsset[i]);
|
|
374
|
+
const remoteValues = id.map((i) => remoteAsset[i]);
|
|
375
|
+
return (localValues.every((v) => v) &&
|
|
376
|
+
remoteValues.every((v) => v) &&
|
|
377
|
+
localValues.join('-') === remoteValues.join('-'));
|
|
378
|
+
}
|
|
379
|
+
return localAsset[id] === remoteAsset[id];
|
|
380
|
+
})))
|
|
381
|
+
.map((remoteAsset) => {
|
|
382
|
+
// Add missing identifiers from remote asset for proper tracking
|
|
383
|
+
const assetWithIdentifiers = Object.assign({}, remoteAsset);
|
|
384
|
+
identifiers.forEach((id) => {
|
|
385
|
+
if (Array.isArray(id)) {
|
|
386
|
+
// Handle array identifiers - ensure all parts exist
|
|
387
|
+
id.forEach((idPart) => {
|
|
388
|
+
if (remoteAsset[idPart]) {
|
|
389
|
+
assetWithIdentifiers[idPart] = remoteAsset[idPart];
|
|
390
|
+
}
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
else if (remoteAsset[id]) {
|
|
394
|
+
// Handle single identifier
|
|
395
|
+
assetWithIdentifiers[id] = remoteAsset[id];
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
return assetWithIdentifiers;
|
|
399
|
+
});
|
|
400
|
+
del.push(...deletedAssets);
|
|
401
|
+
const hasChanges = del.length > 0 || create.length > 0 || conflicts.length > 0 || update.length > 0;
|
|
402
|
+
if (hasChanges) {
|
|
403
|
+
logger_1.default.debug(`[DryRun] calculated changes for [${type}]:${JSON.stringify({
|
|
404
|
+
create: create.length,
|
|
405
|
+
update: update.length,
|
|
406
|
+
del: del.length,
|
|
407
|
+
conflicts: conflicts.length,
|
|
408
|
+
})}`);
|
|
409
|
+
}
|
|
410
|
+
return {
|
|
411
|
+
del,
|
|
412
|
+
create,
|
|
413
|
+
conflicts,
|
|
414
|
+
update,
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Performs a dry run formatting of assets for dry run compare.
|
|
419
|
+
* - converting client names to client IDs or vice versa
|
|
420
|
+
*
|
|
421
|
+
* @param assets - The assets object containing databases and clients configurations
|
|
422
|
+
* @param authAPIclient - The Auth0 API client instance used to fetch remote client data
|
|
423
|
+
* @returns A Promise that resolves to the formatted assets object with client names converted to IDs
|
|
424
|
+
*/
|
|
425
|
+
function dryRunFormatAssets(localAssets, authAPIclient) {
|
|
426
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
427
|
+
// get client remote data
|
|
428
|
+
const clientsRemoteData = yield (0, client_1.paginate)(authAPIclient.clients.getAll, {
|
|
429
|
+
paginate: true,
|
|
430
|
+
include_totals: true,
|
|
431
|
+
});
|
|
432
|
+
// check assets clientGrants and clients together and have values
|
|
433
|
+
if (localAssets.clientGrants) {
|
|
434
|
+
const { clientGrants } = localAssets;
|
|
435
|
+
localAssets.clientGrants = clientGrants.map((clientGrant) => {
|
|
436
|
+
if (clientGrant.client_id) {
|
|
437
|
+
clientGrant.client_id = (0, utils_1.convertClientNameToId)(clientGrant.client_id, clientsRemoteData);
|
|
438
|
+
}
|
|
439
|
+
return clientGrant;
|
|
440
|
+
});
|
|
441
|
+
}
|
|
442
|
+
// check assets databases and clients together and have values
|
|
443
|
+
if (localAssets.databases && localAssets.clients) {
|
|
444
|
+
const { databases } = localAssets;
|
|
445
|
+
localAssets.databases = databases.map((db) => {
|
|
446
|
+
if (db.enabled_clients && db.enabled_clients.length > 0) {
|
|
447
|
+
db.enabled_clients = db.enabled_clients.map((enabledClientName) => (0, utils_1.convertClientNameToId)(enabledClientName, clientsRemoteData));
|
|
448
|
+
}
|
|
449
|
+
return db;
|
|
450
|
+
});
|
|
451
|
+
}
|
|
452
|
+
// format assets actions
|
|
453
|
+
if (localAssets.actions) {
|
|
454
|
+
const { actions } = localAssets;
|
|
455
|
+
localAssets.actions = actions.map((action) => {
|
|
456
|
+
if ('deployed' in action) {
|
|
457
|
+
action.all_changes_deployed = action.deployed;
|
|
458
|
+
delete action.deployed;
|
|
459
|
+
}
|
|
460
|
+
return action;
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
// format assets connections
|
|
464
|
+
if (localAssets.connections) {
|
|
465
|
+
const { connections } = localAssets;
|
|
466
|
+
localAssets.connections = connections.map((connection) => {
|
|
467
|
+
if (connection.strategy === 'samlp' && connection.options) {
|
|
468
|
+
if ('cert' in connection.options) {
|
|
469
|
+
connection.options.cert = (0, utils_2.decodeBase64ToCertString)(connection.options.cert);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
if (localAssets.clients && connection.enabled_clients) {
|
|
473
|
+
connection.enabled_clients = connection.enabled_clients.map((clientName) => (0, utils_1.convertClientNameToId)(clientName, clientsRemoteData));
|
|
474
|
+
}
|
|
475
|
+
return connection;
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
// format assets branding
|
|
479
|
+
if (localAssets.branding) {
|
|
480
|
+
const { branding } = localAssets;
|
|
481
|
+
// if empty templates do not compare with remote
|
|
482
|
+
if (branding.templates && branding.templates.length === 0) {
|
|
483
|
+
delete branding.templates;
|
|
484
|
+
}
|
|
485
|
+
localAssets.branding = branding;
|
|
486
|
+
}
|
|
487
|
+
return localAssets;
|
|
488
|
+
});
|
|
489
|
+
}
|
|
149
490
|
//# sourceMappingURL=calculateChanges.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculateChanges.js","sourceRoot":"","sources":["../../src/tools/calculateChanges.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calculateChanges.js","sourceRoot":"","sources":["../../src/tools/calculateChanges.ts"],"names":[],"mappings":"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"}
|
package/lib/tools/deploy.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ConfigFunction } from '../configFactory';
|
|
2
2
|
import { Assets, Auth0APIClient } from '../types';
|
|
3
|
-
export default function deploy(assets: Assets, client: Auth0APIClient, config: ConfigFunction): Promise<{}>;
|
|
3
|
+
export default function deploy(assets: Assets, client: Auth0APIClient, config: ConfigFunction): Promise<{} | undefined>;
|
package/lib/tools/deploy.js
CHANGED
|
@@ -13,18 +13,149 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.default = deploy;
|
|
16
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
+
const prompts_1 = require("@clack/prompts");
|
|
16
18
|
const auth0_1 = __importDefault(require("./auth0"));
|
|
17
19
|
const logger_1 = __importDefault(require("../logger"));
|
|
20
|
+
const calculateChanges_1 = require("./calculateChanges");
|
|
21
|
+
const utils_1 = require("./utils");
|
|
18
22
|
function deploy(assets, client, config) {
|
|
19
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20
24
|
// Setup log level
|
|
21
|
-
|
|
25
|
+
const isDebug = process.env.AUTH0_DEBUG === 'true';
|
|
26
|
+
logger_1.default.level = isDebug ? 'debug' : 'info';
|
|
27
|
+
const isDryRun = config('AUTH0_DRY_RUN') === true || config('AUTH0_DRY_RUN') === 'true';
|
|
22
28
|
logger_1.default.info(`Getting access token for ${config('AUTH0_CLIENT_ID') !== undefined ? `${config('AUTH0_CLIENT_ID')}/` : ''}${config('AUTH0_DOMAIN')}`);
|
|
23
29
|
const auth0 = new auth0_1.default(client, assets, config);
|
|
24
30
|
// Validate Assets
|
|
25
31
|
yield auth0.validate();
|
|
26
|
-
|
|
27
|
-
|
|
32
|
+
if (isDryRun) {
|
|
33
|
+
const s = (0, prompts_1.spinner)();
|
|
34
|
+
if (isDebug) {
|
|
35
|
+
prompts_1.log.info('Preparing dry run preview...\n');
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
s.start('Preparing dry run preview...');
|
|
39
|
+
}
|
|
40
|
+
// In dry run mode, perform a dry run instead of processing changes
|
|
41
|
+
const allChanges = yield auth0.dryRun();
|
|
42
|
+
if (!isDebug) {
|
|
43
|
+
(0, utils_1.printCLIMessage)('');
|
|
44
|
+
s.stop('Done\n');
|
|
45
|
+
}
|
|
46
|
+
// Build formatted output
|
|
47
|
+
const allowDelete = config('AUTH0_ALLOW_DELETE') === 'true' || config('AUTH0_ALLOW_DELETE') === true;
|
|
48
|
+
// Get tenant domain and input path for header
|
|
49
|
+
const tenantDomain = config('AUTH0_DOMAIN');
|
|
50
|
+
const inputPath = config('AUTH0_INPUT_FILE') || './tenant-config-directory/';
|
|
51
|
+
let output = '\n';
|
|
52
|
+
output += chalk_1.default.bold('Auth0 Deploy CLI - Dry Run Preview\n\n');
|
|
53
|
+
output += chalk_1.default.bold('Tenant:') + ` ${tenantDomain}\n`;
|
|
54
|
+
output += chalk_1.default.bold('Input:') + ` ${inputPath}\n\n`;
|
|
55
|
+
output += 'Simulating deployment... The following changes are proposed:\n\n';
|
|
56
|
+
const tableData = [];
|
|
57
|
+
const resourceTypes = Object.keys(allChanges).sort();
|
|
58
|
+
resourceTypes.forEach((type) => {
|
|
59
|
+
const typeChanges = allChanges[type];
|
|
60
|
+
if (typeChanges.changes.length > 0) {
|
|
61
|
+
// Format type name for display
|
|
62
|
+
const typeName = type.charAt(0).toUpperCase() + type.slice(1);
|
|
63
|
+
// Add each change to table data
|
|
64
|
+
typeChanges.changes.forEach((change, index) => {
|
|
65
|
+
const deleteNote = change.action === 'DELETE' && !allowDelete ? ' *' : '';
|
|
66
|
+
tableData.push({
|
|
67
|
+
resource: index === 0 ? typeName : '', // Only show resource name for first item in group
|
|
68
|
+
status: change.action + deleteNote,
|
|
69
|
+
name: change.identifier,
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
// Create table
|
|
75
|
+
if (tableData.length > 0) {
|
|
76
|
+
// Calculate column widths
|
|
77
|
+
const resourceWidth = Math.max(10, ...tableData.map((d) => d.resource.length));
|
|
78
|
+
const statusWidth = Math.max(8, ...tableData.map((d) => d.status.length));
|
|
79
|
+
const nameWidth = Math.max(25, ...tableData.map((d) => d.name.length));
|
|
80
|
+
// Table header
|
|
81
|
+
const separator = `|${'-'.repeat(resourceWidth + 2)}|${'-'.repeat(statusWidth + 2)}|${'-'.repeat(nameWidth + 2)}|`;
|
|
82
|
+
output += `| ${chalk_1.default.bold('Resource'.padEnd(resourceWidth))} | ${chalk_1.default.bold('Status'.padEnd(statusWidth))} | ${chalk_1.default.bold('Name / Identifier'.padEnd(nameWidth))} |\n`;
|
|
83
|
+
output += `${separator}\n`;
|
|
84
|
+
// Table rows
|
|
85
|
+
tableData.forEach((row) => {
|
|
86
|
+
let statusColor;
|
|
87
|
+
const baseStatus = row.status.replace(' *', '');
|
|
88
|
+
switch (baseStatus) {
|
|
89
|
+
case 'CREATE':
|
|
90
|
+
statusColor = chalk_1.default.green;
|
|
91
|
+
break;
|
|
92
|
+
case 'UPDATE':
|
|
93
|
+
statusColor = chalk_1.default.yellow;
|
|
94
|
+
break;
|
|
95
|
+
case 'DELETE':
|
|
96
|
+
statusColor = chalk_1.default.red;
|
|
97
|
+
break;
|
|
98
|
+
default:
|
|
99
|
+
statusColor = chalk_1.default.white;
|
|
100
|
+
}
|
|
101
|
+
const status = row.status.includes('*')
|
|
102
|
+
? statusColor(baseStatus) + chalk_1.default.dim(' *')
|
|
103
|
+
: statusColor(baseStatus);
|
|
104
|
+
output += `| ${row.resource.padEnd(resourceWidth)} | ${status.padEnd(statusWidth + (row.status.includes('*') ? 10 : 10))} | ${row.name.padEnd(nameWidth)} |\n`;
|
|
105
|
+
});
|
|
106
|
+
if (!allowDelete && tableData.some((d) => d.status.includes('*'))) {
|
|
107
|
+
output += '\n' + chalk_1.default.dim('* Requires AUTH0_ALLOW_DELETE to be enabled');
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
output += chalk_1.default.dim('No changes detected.');
|
|
112
|
+
}
|
|
113
|
+
output += '\n\n';
|
|
114
|
+
output += chalk_1.default.green('Dry Run completed successfully.') + '\n';
|
|
115
|
+
// Print the complete formatted output
|
|
116
|
+
(0, utils_1.printCLIMessage)(output);
|
|
117
|
+
if (tableData.length === 0) {
|
|
118
|
+
// Exit early if no changes are detected
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
(0, prompts_1.intro)(chalk_1.default.inverse(' dry-run '));
|
|
122
|
+
const selectedType = yield (0, prompts_1.select)({
|
|
123
|
+
message: 'What would you like to do?',
|
|
124
|
+
options: [
|
|
125
|
+
{ value: 'dry-run-apply', label: 'Apply changes' },
|
|
126
|
+
{
|
|
127
|
+
value: 'dry-run-export',
|
|
128
|
+
label: 'Export changes in a file',
|
|
129
|
+
hint: 'No Apply',
|
|
130
|
+
},
|
|
131
|
+
{ value: 'dry-run-exit', label: 'Exit', hint: '' },
|
|
132
|
+
],
|
|
133
|
+
});
|
|
134
|
+
// Handle selectedType
|
|
135
|
+
switch (selectedType) {
|
|
136
|
+
case 'dry-run-apply':
|
|
137
|
+
(0, utils_1.printCLIMessage)('\n' + chalk_1.default.green('Applying changes...') + '\n');
|
|
138
|
+
yield auth0.processChanges();
|
|
139
|
+
break;
|
|
140
|
+
case 'dry-run-export': {
|
|
141
|
+
const fileName = 'dry-run-diff-log.json';
|
|
142
|
+
yield (0, calculateChanges_1.exportDiffLog)(fileName);
|
|
143
|
+
(0, utils_1.printCLIMessage)('\n' + chalk_1.default.cyan(`Exported on ./${fileName}`) + '\n');
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
case 'dry-run-exit':
|
|
147
|
+
(0, utils_1.printCLIMessage)('\n' + chalk_1.default.yellow('Deployment cancelled. No changes were made.') + '\n');
|
|
148
|
+
process.exit(0);
|
|
149
|
+
break;
|
|
150
|
+
default:
|
|
151
|
+
(0, utils_1.printCLIMessage)(chalk_1.default.red('Invalid option selected.'));
|
|
152
|
+
process.exit(1);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
// Process changes normally
|
|
157
|
+
yield auth0.processChanges();
|
|
158
|
+
}
|
|
28
159
|
return auth0.handlers.reduce((accum, h) => {
|
|
29
160
|
accum[h.type] = {
|
|
30
161
|
deleted: h.deleted,
|
package/lib/tools/deploy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/tools/deploy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/tools/deploy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AASA,yBA8LC;AAvMD,kDAA0B;AAC1B,4CAA2E;AAC3E,oDAA4B;AAC5B,uDAA4B;AAG5B,yDAAmD;AACnD,mCAA0C;AAE1C,SAA8B,MAAM,CAClC,MAAc,EACd,MAAsB,EACtB,MAAsB;;QAEtB,kBAAkB;QAElB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC;QACnD,gBAAG,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAEvC,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,MAAM,CAAC;QAExF,gBAAG,CAAC,IAAI,CACN,4BACE,MAAM,CAAC,iBAAiB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAC9E,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAC5B,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAEhD,kBAAkB;QAClB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEvB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,IAAA,iBAAO,GAAE,CAAC;YAEpB,IAAI,OAAO,EAAE,CAAC;gBACZ,aAAU,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC1C,CAAC;YAED,mEAAmE;YACnE,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;YAExC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAA,uBAAe,EAAC,EAAE,CAAC,CAAC;gBACpB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnB,CAAC;YAED,yBAAyB;YACzB,MAAM,WAAW,GACf,MAAM,CAAC,oBAAoB,CAAC,KAAK,MAAM,IAAI,MAAM,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC;YAEnF,8CAA8C;YAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,4BAA4B,CAAC;YAE7E,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,MAAM,IAAI,eAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAC/D,MAAM,IAAI,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,YAAY,IAAI,CAAC;YACvD,MAAM,IAAI,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,SAAS,MAAM,CAAC;YACrD,MAAM,IAAI,kEAAkE,CAAC;YAQ7E,MAAM,SAAS,GAAe,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;YAErD,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC7B,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnC,+BAA+B;oBAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAE9D,gCAAgC;oBAChC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC1E,SAAS,CAAC,IAAI,CAAC;4BACb,QAAQ,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,kDAAkD;4BACzF,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU;4BAClC,IAAI,EAAE,MAAM,CAAC,UAAU;yBACxB,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,eAAe;YACf,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,0BAA0B;gBAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC/E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAEvE,eAAe;gBACf,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAC/D,WAAW,GAAG,CAAC,CAChB,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC;gBAElC,MAAM,IAAI,KAAK,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,eAAK,CAAC,IAAI,CACzE,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAC7B,MAAM,eAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;gBAC/D,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC;gBAE3B,aAAa;gBACb,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACxB,IAAI,WAAW,CAAC;oBAChB,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAChD,QAAQ,UAAU,EAAE,CAAC;wBACnB,KAAK,QAAQ;4BACX,WAAW,GAAG,eAAK,CAAC,KAAK,CAAC;4BAC1B,MAAM;wBACR,KAAK,QAAQ;4BACX,WAAW,GAAG,eAAK,CAAC,MAAM,CAAC;4BAC3B,MAAM;wBACR,KAAK,QAAQ;4BACX,WAAW,GAAG,eAAK,CAAC,GAAG,CAAC;4BACxB,MAAM;wBACR;4BACE,WAAW,GAAG,eAAK,CAAC,KAAK,CAAC;oBAC9B,CAAC;oBAED,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;wBACrC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC;wBAC3C,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAE5B,MAAM,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,MAAM,CAAC,MAAM,CAClE,WAAW,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACnD,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC1C,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBAClE,MAAM,IAAI,IAAI,GAAG,eAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,eAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM,IAAI,MAAM,CAAC;YACjB,MAAM,IAAI,eAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,GAAG,IAAI,CAAC;YAEhE,sCAAsC;YACtC,IAAA,uBAAe,EAAC,MAAM,CAAC,CAAC;YAExB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,wCAAwC;gBACxC,OAAO;YACT,CAAC;YAED,IAAA,eAAK,EAAC,eAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;YAClC,MAAM,YAAY,GAAG,MAAM,IAAA,gBAAM,EAAC;gBAChC,OAAO,EAAE,4BAA4B;gBACrC,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;oBAClD;wBACE,KAAK,EAAE,gBAAgB;wBACvB,KAAK,EAAE,0BAA0B;wBACjC,IAAI,EAAE,UAAU;qBACjB;oBACD,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;iBACnD;aACF,CAAC,CAAC;YAEH,sBAAsB;YACtB,QAAQ,YAAY,EAAE,CAAC;gBACrB,KAAK,eAAe;oBAClB,IAAA,uBAAe,EAAC,IAAI,GAAG,eAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,CAAC;oBAClE,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;oBAC7B,MAAM;gBACR,KAAK,gBAAgB,CAAC,CAAC,CAAC;oBACtB,MAAM,QAAQ,GAAG,uBAAuB,CAAC;oBACzC,MAAM,IAAA,gCAAa,EAAC,QAAQ,CAAC,CAAC;oBAC9B,IAAA,uBAAe,EAAC,IAAI,GAAG,eAAK,CAAC,IAAI,CAAC,iBAAiB,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;oBACvE,MAAM;gBACR,CAAC;gBACD,KAAK,cAAc;oBACjB,IAAA,uBAAe,EAAC,IAAI,GAAG,eAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,GAAG,IAAI,CAAC,CAAC;oBAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,MAAM;gBACR;oBACE,IAAA,uBAAe,EAAC,eAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;oBACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,2BAA2B;YAC3B,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;QAC/B,CAAC;QAED,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACxC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;gBACd,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;CAAA"}
|
package/lib/tools/utils.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Asset, Assets, CalculatedChanges, KeywordMappings } from '../types';
|
|
2
|
+
import { ConfigFunction } from '../configFactory';
|
|
2
3
|
export declare const keywordReplaceArrayRegExp: (key: any) => RegExp;
|
|
3
4
|
export declare const keywordReplaceStringRegExp: (key: any) => RegExp;
|
|
4
5
|
export declare function keywordArrayReplace(input: string, mappings: KeywordMappings): string;
|
|
@@ -43,3 +44,6 @@ export declare function maskSecretAtPath({ resourceTypeName, maskedKeyName, mask
|
|
|
43
44
|
maskOnObj: object;
|
|
44
45
|
keyJsonPath: string;
|
|
45
46
|
}): any;
|
|
47
|
+
export declare function sortGuardianFactors(factors: Asset[]): Asset[];
|
|
48
|
+
export declare function isDryRun(config: ConfigFunction): boolean;
|
|
49
|
+
export declare function printCLIMessage(message: string): void;
|