@rockcarver/frodo-lib 0.19.0 → 0.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -52,7 +52,7 @@ function getPolicySets() {
52
52
  }
53
53
  /**
54
54
  * Get policy set
55
- * @param {string} policySetId policy set id/name
55
+ * @param {string} policySetName policy set name
56
56
  * @returns {Promise<PolicySetSkeleton>} a promise that resolves to a policy set object
57
57
  */
58
58
  function _getPolicySets2() {
@@ -73,8 +73,8 @@ function getPolicySet(_x) {
73
73
  * @returns {Promise<PolicySetSkeleton>} a promise that resolves to a policy set object
74
74
  */
75
75
  function _getPolicySet2() {
76
- _getPolicySet2 = _asyncToGenerator(function* (policySetId) {
77
- return (0, _PolicySetApi.getPolicySet)(policySetId);
76
+ _getPolicySet2 = _asyncToGenerator(function* (policySetName) {
77
+ return (0, _PolicySetApi.getPolicySet)(policySetName);
78
78
  });
79
79
  return _getPolicySet2.apply(this, arguments);
80
80
  }
@@ -97,7 +97,7 @@ function updatePolicySet(_x3) {
97
97
  }
98
98
  /**
99
99
  * Delete policy set
100
- * @param {string} policySetId policy set id/name
100
+ * @param {string} policySetName policy set name
101
101
  * @returns {Promise<PolicySetSkeleton>} Promise resolvig to a policy set object
102
102
  */
103
103
  function _updatePolicySet2() {
@@ -110,29 +110,28 @@ function deletePolicySet(_x4) {
110
110
  return _deletePolicySet2.apply(this, arguments);
111
111
  }
112
112
  /**
113
- * Helper function to export dependencies of a policy set
114
- * @param {unknown} policySetData policy set data
115
- * @param {PolicySetExportOptions} options export options
113
+ * Helper function to export prerequisites of a policy set
114
+ * @param {PolicySetSkeleton} policySetData policy set object
116
115
  * @param {PolicySetExportInterface} exportData export data
117
116
  */
118
117
  function _deletePolicySet2() {
119
- _deletePolicySet2 = _asyncToGenerator(function* (policySetId) {
120
- return (0, _PolicySetApi.deletePolicySet)(policySetId);
118
+ _deletePolicySet2 = _asyncToGenerator(function* (policySetName) {
119
+ return (0, _PolicySetApi.deletePolicySet)(policySetName);
121
120
  });
122
121
  return _deletePolicySet2.apply(this, arguments);
123
122
  }
124
- function exportPolicySetDependencies(_x5, _x6, _x7) {
125
- return _exportPolicySetDependencies.apply(this, arguments);
123
+ function exportPolicySetPrerequisites(_x5, _x6) {
124
+ return _exportPolicySetPrerequisites.apply(this, arguments);
126
125
  }
127
126
  /**
128
- * Export policy set
129
- * @param {string} policySetId policy set id
127
+ * Helper function to export dependencies of a policy set
128
+ * @param {PolicySetSkeleton} policySetData policy set object
130
129
  * @param {PolicySetExportOptions} options export options
131
- * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object
130
+ * @param {PolicySetExportInterface} exportData export data
132
131
  */
133
- function _exportPolicySetDependencies() {
134
- _exportPolicySetDependencies = _asyncToGenerator(function* (policySetData, options, exportData) {
135
- (0, _Console.debugMessage)("PolicySetOps.exportPolicySetDependencies: start [policySet=".concat(policySetData['name'], "]"));
132
+ function _exportPolicySetPrerequisites() {
133
+ _exportPolicySetPrerequisites = _asyncToGenerator(function* (policySetData, exportData) {
134
+ (0, _Console.debugMessage)("PolicySetOps.exportPolicySetPrerequisites: start [policySet=".concat(policySetData['name'], "]"));
136
135
  var errors = [];
137
136
  // resource types
138
137
  for (var resourceTypeUuid of policySetData.resourceTypeUuids) {
@@ -144,6 +143,27 @@ function _exportPolicySetDependencies() {
144
143
  errors.push(error);
145
144
  }
146
145
  }
146
+ if (errors.length) {
147
+ var errorMessages = errors.map(error => error.message).join('\n');
148
+ throw new Error("Export dependencies error:\n".concat(errorMessages));
149
+ }
150
+ (0, _Console.debugMessage)("PolicySetOps.exportPolicySetPrerequisites: end");
151
+ });
152
+ return _exportPolicySetPrerequisites.apply(this, arguments);
153
+ }
154
+ function exportPolicySetDependencies(_x7, _x8, _x9) {
155
+ return _exportPolicySetDependencies.apply(this, arguments);
156
+ }
157
+ /**
158
+ * Export policy set
159
+ * @param {string} policySetName policy set name
160
+ * @param {PolicySetExportOptions} options export options
161
+ * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object
162
+ */
163
+ function _exportPolicySetDependencies() {
164
+ _exportPolicySetDependencies = _asyncToGenerator(function* (policySetData, options, exportData) {
165
+ (0, _Console.debugMessage)("PolicySetOps.exportPolicySetDependencies: start [policySet=".concat(policySetData['name'], "]"));
166
+ var errors = [];
147
167
  // policies
148
168
  try {
149
169
  var policies = yield (0, _PolicyOps.getPoliciesByPolicySet)(policySetData.name);
@@ -174,7 +194,7 @@ function _exportPolicySetDependencies() {
174
194
  });
175
195
  return _exportPolicySetDependencies.apply(this, arguments);
176
196
  }
177
- function exportPolicySet(_x8, _x9) {
197
+ function exportPolicySet(_x10) {
178
198
  return _exportPolicySet.apply(this, arguments);
179
199
  }
180
200
  /**
@@ -183,15 +203,31 @@ function exportPolicySet(_x8, _x9) {
183
203
  * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object
184
204
  */
185
205
  function _exportPolicySet() {
186
- _exportPolicySet = _asyncToGenerator(function* (policySetId, options) {
206
+ _exportPolicySet = _asyncToGenerator(function* (policySetName) {
207
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
208
+ deps: true,
209
+ prereqs: false,
210
+ useStringArrays: true
211
+ };
187
212
  (0, _Console.debugMessage)("PolicySetOps.exportPolicySet: start");
188
213
  var exportData = createPolicySetExportTemplate();
189
214
  var errors = [];
190
215
  try {
191
- var policySetData = yield getPolicySet(policySetId);
216
+ var policySetData = yield getPolicySet(policySetName);
192
217
  exportData.policyset[policySetData.name] = policySetData;
218
+ if (options.prereqs) {
219
+ try {
220
+ yield exportPolicySetPrerequisites(policySetData, exportData);
221
+ } catch (error) {
222
+ errors.push(error);
223
+ }
224
+ }
193
225
  if (options.deps) {
194
- yield exportPolicySetDependencies(policySetData, options, exportData);
226
+ try {
227
+ yield exportPolicySetDependencies(policySetData, options, exportData);
228
+ } catch (error) {
229
+ errors.push(error);
230
+ }
195
231
  }
196
232
  } catch (error) {
197
233
  errors.push(error);
@@ -205,16 +241,21 @@ function _exportPolicySet() {
205
241
  });
206
242
  return _exportPolicySet.apply(this, arguments);
207
243
  }
208
- function exportPolicySets(_x10) {
244
+ function exportPolicySets() {
209
245
  return _exportPolicySets.apply(this, arguments);
210
246
  }
211
247
  /**
212
- * Helper function to import hard dependencies of a policy set
248
+ * Helper function to import prerequisites of a policy set (resource types)
213
249
  * @param {PolicySetSkeleton} policySetData policy set data
214
250
  * @param {PolicySetExportInterface} exportData export data
215
251
  */
216
252
  function _exportPolicySets() {
217
- _exportPolicySets = _asyncToGenerator(function* (options) {
253
+ _exportPolicySets = _asyncToGenerator(function* () {
254
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
255
+ deps: true,
256
+ prereqs: false,
257
+ useStringArrays: true
258
+ };
218
259
  (0, _Console.debugMessage)("PolicySetOps.exportPolicySet: start");
219
260
  var exportData = createPolicySetExportTemplate();
220
261
  var errors = [];
@@ -222,6 +263,13 @@ function _exportPolicySets() {
222
263
  var policySets = yield getPolicySets();
223
264
  for (var policySetData of policySets) {
224
265
  exportData.policyset[policySetData.name] = policySetData;
266
+ if (options.prereqs) {
267
+ try {
268
+ yield exportPolicySetPrerequisites(policySetData, exportData);
269
+ } catch (error) {
270
+ errors.push(error);
271
+ }
272
+ }
225
273
  if (options.deps) {
226
274
  try {
227
275
  yield exportPolicySetDependencies(policySetData, options, exportData);
@@ -242,16 +290,16 @@ function _exportPolicySets() {
242
290
  });
243
291
  return _exportPolicySets.apply(this, arguments);
244
292
  }
245
- function importPolicySetHardDependencies(_x11, _x12) {
246
- return _importPolicySetHardDependencies.apply(this, arguments);
293
+ function importPolicySetPrerequisites(_x11, _x12) {
294
+ return _importPolicySetPrerequisites.apply(this, arguments);
247
295
  }
248
296
  /**
249
- * Helper function to import soft dependencies of a policy set
297
+ * Helper function to import dependencies of a policy set (policies and scripts)
250
298
  * @param {PolicySetSkeleton} policySetData policy set data
251
299
  * @param {PolicySetExportInterface} exportData export data
252
300
  */
253
- function _importPolicySetHardDependencies() {
254
- _importPolicySetHardDependencies = _asyncToGenerator(function* (policySetData, exportData) {
301
+ function _importPolicySetPrerequisites() {
302
+ _importPolicySetPrerequisites = _asyncToGenerator(function* (policySetData, exportData) {
255
303
  (0, _Console.debugMessage)("PolicySetOps.importPolicySetHardDependencies: start [policySet=".concat(policySetData['name'], "]"));
256
304
  var errors = [];
257
305
  try {
@@ -280,19 +328,19 @@ function _importPolicySetHardDependencies() {
280
328
  }
281
329
  (0, _Console.debugMessage)("PolicySetOps.importPolicySetHardDependencies: end");
282
330
  });
283
- return _importPolicySetHardDependencies.apply(this, arguments);
331
+ return _importPolicySetPrerequisites.apply(this, arguments);
284
332
  }
285
- function importPolicySetSoftDependencies(_x13, _x14) {
286
- return _importPolicySetSoftDependencies.apply(this, arguments);
333
+ function importPolicySetDependencies(_x13, _x14) {
334
+ return _importPolicySetDependencies.apply(this, arguments);
287
335
  }
288
336
  /**
289
337
  * Import policy set
290
- * @param {string} policySetId client id
338
+ * @param {string} policySetName policy set name
291
339
  * @param {PolicySetExportInterface} importData import data
292
340
  * @param {PolicySetImportOptions} options import options
293
341
  */
294
- function _importPolicySetSoftDependencies() {
295
- _importPolicySetSoftDependencies = _asyncToGenerator(function* (policySetData, exportData) {
342
+ function _importPolicySetDependencies() {
343
+ _importPolicySetDependencies = _asyncToGenerator(function* (policySetData, exportData) {
296
344
  (0, _Console.debugMessage)("PolicySetOps.importPolicySetSoftDependencies: start [policySet=".concat(policySetData['name'], "]"));
297
345
  var errors = [];
298
346
  try {
@@ -338,7 +386,7 @@ function _importPolicySetSoftDependencies() {
338
386
  }
339
387
  (0, _Console.debugMessage)("PolicySetOps.importPolicySetSoftDependencies: end");
340
388
  });
341
- return _importPolicySetSoftDependencies.apply(this, arguments);
389
+ return _importPolicySetDependencies.apply(this, arguments);
342
390
  }
343
391
  function importPolicySet(_x15, _x16) {
344
392
  return _importPolicySet.apply(this, arguments);
@@ -349,21 +397,22 @@ function importPolicySet(_x15, _x16) {
349
397
  * @param {PolicySetImportOptions} options import options
350
398
  */
351
399
  function _importPolicySet() {
352
- _importPolicySet = _asyncToGenerator(function* (policySetId, importData) {
400
+ _importPolicySet = _asyncToGenerator(function* (policySetName, importData) {
353
401
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
354
- deps: true
402
+ deps: true,
403
+ prereqs: false
355
404
  };
356
405
  var response = null;
357
406
  var errors = [];
358
407
  var imported = [];
359
408
  for (var id of Object.keys(importData.policyset)) {
360
- if (id === policySetId) {
409
+ if (id === policySetName) {
361
410
  try {
362
411
  var policySetData = importData.policyset[id];
363
412
  delete policySetData._rev;
364
- if (options.deps) {
413
+ if (options.prereqs) {
365
414
  try {
366
- yield importPolicySetHardDependencies(policySetData, importData);
415
+ yield importPolicySetPrerequisites(policySetData, importData);
367
416
  } catch (error) {
368
417
  errors.push(error);
369
418
  }
@@ -380,7 +429,7 @@ function _importPolicySet() {
380
429
  }
381
430
  if (options.deps) {
382
431
  try {
383
- yield importPolicySetSoftDependencies(policySetData, importData);
432
+ yield importPolicySetDependencies(policySetData, importData);
384
433
  } catch (error) {
385
434
  errors.push(error);
386
435
  }
@@ -395,7 +444,7 @@ function _importPolicySet() {
395
444
  throw new Error("Import error:\n".concat(errorMessages));
396
445
  }
397
446
  if (0 === imported.length) {
398
- throw new Error("Import error:\n".concat(policySetId, " not found in import data!"));
447
+ throw new Error("Import error:\n".concat(policySetName, " not found in import data!"));
399
448
  }
400
449
  return response;
401
450
  });
@@ -412,7 +461,8 @@ function importFirstPolicySet(_x17) {
412
461
  function _importFirstPolicySet() {
413
462
  _importFirstPolicySet = _asyncToGenerator(function* (importData) {
414
463
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
415
- deps: true
464
+ deps: true,
465
+ prereqs: false
416
466
  };
417
467
  var response = null;
418
468
  var errors = [];
@@ -422,9 +472,9 @@ function _importFirstPolicySet() {
422
472
  var policySetData = importData.policyset[id];
423
473
  delete policySetData._provider;
424
474
  delete policySetData._rev;
425
- if (options.deps) {
475
+ if (options.prereqs) {
426
476
  try {
427
- yield importPolicySetHardDependencies(policySetData, importData);
477
+ yield importPolicySetPrerequisites(policySetData, importData);
428
478
  } catch (error) {
429
479
  errors.push(error);
430
480
  }
@@ -441,7 +491,7 @@ function _importFirstPolicySet() {
441
491
  }
442
492
  if (options.deps) {
443
493
  try {
444
- yield importPolicySetSoftDependencies(policySetData, importData);
494
+ yield importPolicySetDependencies(policySetData, importData);
445
495
  } catch (error) {
446
496
  errors.push(error);
447
497
  }
@@ -468,7 +518,8 @@ function importPolicySets(_x18) {
468
518
  function _importPolicySets() {
469
519
  _importPolicySets = _asyncToGenerator(function* (importData) {
470
520
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
471
- deps: true
521
+ deps: true,
522
+ prereqs: false
472
523
  };
473
524
  var response = null;
474
525
  var errors = [];
@@ -477,9 +528,9 @@ function _importPolicySets() {
477
528
  try {
478
529
  var policySetData = importData.policyset[id];
479
530
  delete policySetData._rev;
480
- if (options.deps) {
531
+ if (options.prereqs) {
481
532
  try {
482
- yield importPolicySetHardDependencies(policySetData, importData);
533
+ yield importPolicySetPrerequisites(policySetData, importData);
483
534
  } catch (error) {
484
535
  errors.push(error);
485
536
  }
@@ -496,7 +547,7 @@ function _importPolicySets() {
496
547
  }
497
548
  if (options.deps) {
498
549
  try {
499
- yield importPolicySetSoftDependencies(policySetData, importData);
550
+ yield importPolicySetDependencies(policySetData, importData);
500
551
  } catch (error) {
501
552
  errors.push(error);
502
553
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PolicySetOps.js","names":["_PolicySetApi","require","_ScriptOps","_ExportImportUtils","_Console","_ResourceTypesApi","_PolicyOps","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","createPolicySetExportTemplate","meta","getMetadata","script","policy","resourcetype","policyset","getPolicySets","_getPolicySets2","result","_getPolicySets","getPolicySet","_x","_getPolicySet2","policySetId","_getPolicySet","createPolicySet","_x2","_createPolicySet2","policySetData","_createPolicySet","updatePolicySet","_x3","_updatePolicySet2","_updatePolicySet","deletePolicySet","_x4","_deletePolicySet2","_deletePolicySet","exportPolicySetDependencies","_x5","_x6","_x7","_exportPolicySetDependencies","options","exportData","debugMessage","concat","errors","resourceTypeUuid","resourceTypeUuids","resourceType","getResourceType","message","name","push","policies","getPoliciesByPolicySet","scripts","getScripts","scriptData","useStringArrays","convertBase64TextToArray","_id","length","errorMessages","map","join","Error","exportPolicySet","_x8","_x9","_exportPolicySet","deps","exportPolicySets","_x10","_exportPolicySets","policySets","importPolicySetHardDependencies","_x11","_x12","_importPolicySetHardDependencies","putResourceType","_error$response","response","data","importPolicySetSoftDependencies","_x13","_x14","_importPolicySetSoftDependencies","Object","values","filter","applicationName","policyData","putPolicy","_error$response2","scriptUuids","findScriptUuids","condition","scriptUuid","putScript","_error$response3","importPolicySet","_x15","_x16","_importPolicySet","importData","imported","id","keys","_rev","_error$response4","status","importFirstPolicySet","_x17","_importFirstPolicySet","_provider","_error$response5","importPolicySets","_x18","_importPolicySets","_error$response6"],"sources":["ops/PolicySetOps.ts"],"sourcesContent":["import {\n deletePolicySet as _deletePolicySet,\n getPolicySets as _getPolicySets,\n getPolicySet as _getPolicySet,\n createPolicySet as _createPolicySet,\n updatePolicySet as _updatePolicySet,\n} from '../api/PolicySetApi';\nimport { putScript } from './ScriptOps';\nimport { convertBase64TextToArray } from './utils/ExportImportUtils';\nimport { ExportMetaData } from './OpsTypes';\nimport {\n PolicySetSkeleton,\n PolicySkeleton,\n ResourceTypeSkeleton,\n ScriptSkeleton,\n} from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport { debugMessage } from './utils/Console';\nimport { getResourceType, putResourceType } from '../api/ResourceTypesApi';\nimport {\n findScriptUuids,\n getPoliciesByPolicySet,\n getScripts,\n putPolicy,\n} from './PolicyOps';\n\nexport interface PolicySetExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n resourcetype: Record<string, ResourceTypeSkeleton>;\n policy: Record<string, PolicySkeleton>;\n policyset: Record<string, PolicySetSkeleton>;\n}\n\n/**\n * Application/policy set export options\n */\nexport interface PolicySetExportOptions {\n /**\n * Use string arrays to store multi-line text in scripts.\n */\n useStringArrays: boolean;\n /**\n * Include any dependencies (policies, scripts, resource types).\n */\n deps: boolean;\n}\n\n/**\n * Policy set import options\n */\nexport interface PolicySetImportOptions {\n /**\n * Include any dependencies (policies, scripts, resource types).\n */\n deps: boolean;\n}\n\n/**\n * Create an empty export template\n * @returns {PolicySetExportInterface} an empty export template\n */\nfunction createPolicySetExportTemplate(): PolicySetExportInterface {\n return {\n meta: getMetadata(),\n script: {},\n policy: {},\n resourcetype: {},\n policyset: {},\n } as PolicySetExportInterface;\n}\n\n/**\n * Get all policy sets\n * @returns {Promise} a promise that resolves to an array of policy set objects\n */\nexport async function getPolicySets(): Promise<PolicySetSkeleton[]> {\n const { result } = await _getPolicySets();\n return result;\n}\n\n/**\n * Get policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<PolicySetSkeleton>} a promise that resolves to a policy set object\n */\nexport async function getPolicySet(\n policySetId: string\n): Promise<PolicySetSkeleton> {\n return _getPolicySet(policySetId);\n}\n\n/**\n * Create policy set\n * @param {PolicySetSkeleton} policySetData policy set object\n * @returns {Promise<PolicySetSkeleton>} a promise that resolves to a policy set object\n */\nexport async function createPolicySet(\n policySetData: PolicySetSkeleton\n): Promise<PolicySetSkeleton> {\n return _createPolicySet(policySetData);\n}\n\n/**\n * Update policy set\n * @param {PolicySetSkeleton} policySetData policy set object\n * @returns {Promise<PolicySetSkeleton>} a promise that resolves to a policy set object\n */\nexport async function updatePolicySet(\n policySetData: PolicySetSkeleton\n): Promise<PolicySetSkeleton> {\n return _updatePolicySet(policySetData);\n}\n\n/**\n * Delete policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<PolicySetSkeleton>} Promise resolvig to a policy set object\n */\nexport async function deletePolicySet(\n policySetId: string\n): Promise<PolicySetSkeleton> {\n return _deletePolicySet(policySetId);\n}\n\n/**\n * Helper function to export dependencies of a policy set\n * @param {unknown} policySetData policy set data\n * @param {PolicySetExportOptions} options export options\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function exportPolicySetDependencies(\n policySetData: PolicySetSkeleton,\n options: PolicySetExportOptions,\n exportData: PolicySetExportInterface\n) {\n debugMessage(\n `PolicySetOps.exportPolicySetDependencies: start [policySet=${policySetData['name']}]`\n );\n const errors = [];\n // resource types\n for (const resourceTypeUuid of policySetData.resourceTypeUuids) {\n try {\n const resourceType = await getResourceType(resourceTypeUuid);\n exportData.resourcetype[resourceTypeUuid] = resourceType;\n } catch (error) {\n error.message = `Error retrieving resource type ${resourceTypeUuid} for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n }\n // policies\n try {\n const policies = await getPoliciesByPolicySet(policySetData.name);\n for (const policy of policies) {\n exportData.policy[policy.name] = policy;\n // scripts\n try {\n const scripts = await getScripts(policy);\n for (const scriptData of scripts) {\n if (options.useStringArrays) {\n scriptData.script = convertBase64TextToArray(scriptData.script);\n }\n exportData.script[scriptData._id] = scriptData;\n }\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error retrieving policies in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export dependencies error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.exportPolicySetDependencies: end`);\n}\n\n/**\n * Export policy set\n * @param {string} policySetId policy set id\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\nexport async function exportPolicySet(\n policySetId: string,\n options: PolicySetExportOptions\n): Promise<PolicySetExportInterface> {\n debugMessage(`PolicySetOps.exportPolicySet: start`);\n const exportData = createPolicySetExportTemplate();\n const errors = [];\n try {\n const policySetData = await getPolicySet(policySetId);\n exportData.policyset[policySetData.name] = policySetData;\n if (options.deps) {\n await exportPolicySetDependencies(policySetData, options, exportData);\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.exportPolicySet: end`);\n return exportData;\n}\n\n/**\n * Export policy sets\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\nexport async function exportPolicySets(\n options: PolicySetExportOptions\n): Promise<PolicySetExportInterface> {\n debugMessage(`PolicySetOps.exportPolicySet: start`);\n const exportData = createPolicySetExportTemplate();\n const errors = [];\n try {\n const policySets = await getPolicySets();\n for (const policySetData of policySets) {\n exportData.policyset[policySetData.name] = policySetData;\n if (options.deps) {\n try {\n await exportPolicySetDependencies(policySetData, options, exportData);\n } catch (error) {\n errors.push(error);\n }\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.exportPolicySet: end`);\n return exportData;\n}\n\n/**\n * Helper function to import hard dependencies of a policy set\n * @param {PolicySetSkeleton} policySetData policy set data\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function importPolicySetHardDependencies(\n policySetData: PolicySetSkeleton,\n exportData: PolicySetExportInterface\n) {\n debugMessage(\n `PolicySetOps.importPolicySetHardDependencies: start [policySet=${policySetData['name']}]`\n );\n const errors = [];\n try {\n // resource types\n for (const resourceTypeUuid of policySetData.resourceTypeUuids) {\n if (exportData.resourcetype[resourceTypeUuid]) {\n try {\n debugMessage(`Importing resource type ${resourceTypeUuid}`);\n await putResourceType(\n resourceTypeUuid,\n exportData.resourcetype[resourceTypeUuid]\n );\n } catch (error) {\n debugMessage(error.response?.data);\n errors.push(error);\n }\n } else {\n errors.push(\n new Error(\n `No resource type definition with id ${resourceTypeUuid} found in import data.`\n )\n );\n }\n }\n } catch (error) {\n error.message = `Error importing hard dependencies for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import hard dependencies error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.importPolicySetHardDependencies: end`);\n}\n\n/**\n * Helper function to import soft dependencies of a policy set\n * @param {PolicySetSkeleton} policySetData policy set data\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function importPolicySetSoftDependencies(\n policySetData: PolicySetSkeleton,\n exportData: PolicySetExportInterface\n) {\n debugMessage(\n `PolicySetOps.importPolicySetSoftDependencies: start [policySet=${policySetData['name']}]`\n );\n const errors = [];\n try {\n // policies\n try {\n const policies = Object.values(exportData.policy).filter(\n (policy) => policy.applicationName === policySetData.name\n );\n for (const policyData of policies) {\n try {\n debugMessage(`Importing policy ${policyData._id}`);\n await putPolicy(policyData._id, policyData);\n } catch (error) {\n debugMessage(error.response?.data);\n error.message = `Error importing policy ${policyData._id} in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n // scripts\n const scriptUuids = findScriptUuids(policyData.condition);\n for (const scriptUuid of scriptUuids) {\n try {\n const scriptData = exportData.script[scriptUuid];\n debugMessage(`Importing script ${scriptUuid}`);\n await putScript(scriptUuid, scriptData);\n } catch (error) {\n debugMessage(error.response?.data);\n error.message = `Error importing script ${scriptUuid} for policy ${policyData._id} in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n }\n }\n } catch (error) {\n error.message = `Error importing policies in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n } catch (error) {\n error.message = `Error importing soft dependencies for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import soft dependencies error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.importPolicySetSoftDependencies: end`);\n}\n\n/**\n * Import policy set\n * @param {string} policySetId client id\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importPolicySet(\n policySetId: string,\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true }\n) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n if (id === policySetId) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._rev;\n if (options.deps) {\n try {\n await importPolicySetHardDependencies(policySetData, importData);\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet(policySetData);\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet(policySetData);\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetSoftDependencies(policySetData, importData);\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\n${policySetId} not found in import data!`);\n }\n return response;\n}\n\n/**\n * Import first policy set\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importFirstPolicySet(\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true }\n) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._provider;\n delete policySetData._rev;\n if (options.deps) {\n try {\n await importPolicySetHardDependencies(policySetData, importData);\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet(policySetData);\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet(policySetData);\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetSoftDependencies(policySetData, importData);\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n break;\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policy sets found in import data!`);\n }\n return response;\n}\n\n/**\n * Import policy sets\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importPolicySets(\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true }\n) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._rev;\n if (options.deps) {\n try {\n await importPolicySetHardDependencies(policySetData, importData);\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet(policySetData);\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet(policySetData);\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetSoftDependencies(policySetData, importData);\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policy sets found in import data!`);\n }\n return response;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PolicySetOps.js","names":["_PolicySetApi","require","_ScriptOps","_ExportImportUtils","_Console","_ResourceTypesApi","_PolicyOps","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","createPolicySetExportTemplate","meta","getMetadata","script","policy","resourcetype","policyset","getPolicySets","_getPolicySets2","result","_getPolicySets","getPolicySet","_x","_getPolicySet2","policySetName","_getPolicySet","createPolicySet","_x2","_createPolicySet2","policySetData","_createPolicySet","updatePolicySet","_x3","_updatePolicySet2","_updatePolicySet","deletePolicySet","_x4","_deletePolicySet2","_deletePolicySet","exportPolicySetPrerequisites","_x5","_x6","_exportPolicySetPrerequisites","exportData","debugMessage","concat","errors","resourceTypeUuid","resourceTypeUuids","resourceType","getResourceType","message","name","push","length","errorMessages","map","join","Error","exportPolicySetDependencies","_x7","_x8","_x9","_exportPolicySetDependencies","options","policies","getPoliciesByPolicySet","scripts","getScripts","scriptData","useStringArrays","convertBase64TextToArray","_id","exportPolicySet","_x10","_exportPolicySet","deps","prereqs","exportPolicySets","_exportPolicySets","policySets","importPolicySetPrerequisites","_x11","_x12","_importPolicySetPrerequisites","putResourceType","_error$response","response","data","importPolicySetDependencies","_x13","_x14","_importPolicySetDependencies","Object","values","filter","applicationName","policyData","putPolicy","_error$response2","scriptUuids","findScriptUuids","condition","scriptUuid","putScript","_error$response3","importPolicySet","_x15","_x16","_importPolicySet","importData","imported","id","keys","_rev","_error$response4","status","importFirstPolicySet","_x17","_importFirstPolicySet","_provider","_error$response5","importPolicySets","_x18","_importPolicySets","_error$response6"],"sources":["ops/PolicySetOps.ts"],"sourcesContent":["import {\n deletePolicySet as _deletePolicySet,\n getPolicySets as _getPolicySets,\n getPolicySet as _getPolicySet,\n createPolicySet as _createPolicySet,\n updatePolicySet as _updatePolicySet,\n} from '../api/PolicySetApi';\nimport { putScript } from './ScriptOps';\nimport { convertBase64TextToArray } from './utils/ExportImportUtils';\nimport { ExportMetaData } from './OpsTypes';\nimport {\n PolicySetSkeleton,\n PolicySkeleton,\n ResourceTypeSkeleton,\n ScriptSkeleton,\n} from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport { debugMessage } from './utils/Console';\nimport { getResourceType, putResourceType } from '../api/ResourceTypesApi';\nimport {\n findScriptUuids,\n getPoliciesByPolicySet,\n getScripts,\n putPolicy,\n} from './PolicyOps';\n\nexport interface PolicySetExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n resourcetype: Record<string, ResourceTypeSkeleton>;\n policy: Record<string, PolicySkeleton>;\n policyset: Record<string, PolicySetSkeleton>;\n}\n\n/**\n * Application/policy set export options\n */\nexport interface PolicySetExportOptions {\n /**\n * Include any dependencies (policies, scripts, resource types).\n */\n deps: boolean;\n /**\n * Include any prerequisites (policy sets, resource types).\n */\n prereqs: boolean;\n /**\n * Use string arrays to store multi-line text in scripts.\n */\n useStringArrays: boolean;\n}\n\n/**\n * Policy set import options\n */\nexport interface PolicySetImportOptions {\n /**\n * Include any dependencies (policies, scripts, resource types).\n */\n deps: boolean;\n /**\n * Include any prerequisites (policy sets, resource types).\n */\n prereqs: boolean;\n}\n\n/**\n * Create an empty export template\n * @returns {PolicySetExportInterface} an empty export template\n */\nfunction createPolicySetExportTemplate(): PolicySetExportInterface {\n return {\n meta: getMetadata(),\n script: {},\n policy: {},\n resourcetype: {},\n policyset: {},\n } as PolicySetExportInterface;\n}\n\n/**\n * Get all policy sets\n * @returns {Promise} a promise that resolves to an array of policy set objects\n */\nexport async function getPolicySets(): Promise<PolicySetSkeleton[]> {\n const { result } = await _getPolicySets();\n return result;\n}\n\n/**\n * Get policy set\n * @param {string} policySetName policy set name\n * @returns {Promise<PolicySetSkeleton>} a promise that resolves to a policy set object\n */\nexport async function getPolicySet(\n policySetName: string\n): Promise<PolicySetSkeleton> {\n return _getPolicySet(policySetName);\n}\n\n/**\n * Create policy set\n * @param {PolicySetSkeleton} policySetData policy set object\n * @returns {Promise<PolicySetSkeleton>} a promise that resolves to a policy set object\n */\nexport async function createPolicySet(\n policySetData: PolicySetSkeleton\n): Promise<PolicySetSkeleton> {\n return _createPolicySet(policySetData);\n}\n\n/**\n * Update policy set\n * @param {PolicySetSkeleton} policySetData policy set object\n * @returns {Promise<PolicySetSkeleton>} a promise that resolves to a policy set object\n */\nexport async function updatePolicySet(\n policySetData: PolicySetSkeleton\n): Promise<PolicySetSkeleton> {\n return _updatePolicySet(policySetData);\n}\n\n/**\n * Delete policy set\n * @param {string} policySetName policy set name\n * @returns {Promise<PolicySetSkeleton>} Promise resolvig to a policy set object\n */\nexport async function deletePolicySet(\n policySetName: string\n): Promise<PolicySetSkeleton> {\n return _deletePolicySet(policySetName);\n}\n\n/**\n * Helper function to export prerequisites of a policy set\n * @param {PolicySetSkeleton} policySetData policy set object\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function exportPolicySetPrerequisites(\n policySetData: PolicySetSkeleton,\n exportData: PolicySetExportInterface\n) {\n debugMessage(\n `PolicySetOps.exportPolicySetPrerequisites: start [policySet=${policySetData['name']}]`\n );\n const errors = [];\n // resource types\n for (const resourceTypeUuid of policySetData.resourceTypeUuids) {\n try {\n const resourceType = await getResourceType(resourceTypeUuid);\n exportData.resourcetype[resourceTypeUuid] = resourceType;\n } catch (error) {\n error.message = `Error retrieving resource type ${resourceTypeUuid} for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export dependencies error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.exportPolicySetPrerequisites: end`);\n}\n\n/**\n * Helper function to export dependencies of a policy set\n * @param {PolicySetSkeleton} policySetData policy set object\n * @param {PolicySetExportOptions} options export options\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function exportPolicySetDependencies(\n policySetData: PolicySetSkeleton,\n options: PolicySetExportOptions,\n exportData: PolicySetExportInterface\n) {\n debugMessage(\n `PolicySetOps.exportPolicySetDependencies: start [policySet=${policySetData['name']}]`\n );\n const errors = [];\n // policies\n try {\n const policies = await getPoliciesByPolicySet(policySetData.name);\n for (const policy of policies) {\n exportData.policy[policy.name] = policy;\n // scripts\n try {\n const scripts = await getScripts(policy);\n for (const scriptData of scripts) {\n if (options.useStringArrays) {\n scriptData.script = convertBase64TextToArray(scriptData.script);\n }\n exportData.script[scriptData._id] = scriptData;\n }\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error retrieving policies in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export dependencies error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.exportPolicySetDependencies: end`);\n}\n\n/**\n * Export policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\nexport async function exportPolicySet(\n policySetName: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<PolicySetExportInterface> {\n debugMessage(`PolicySetOps.exportPolicySet: start`);\n const exportData = createPolicySetExportTemplate();\n const errors = [];\n try {\n const policySetData = await getPolicySet(policySetName);\n exportData.policyset[policySetData.name] = policySetData;\n if (options.prereqs) {\n try {\n await exportPolicySetPrerequisites(policySetData, exportData);\n } catch (error) {\n errors.push(error);\n }\n }\n if (options.deps) {\n try {\n await exportPolicySetDependencies(policySetData, options, exportData);\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.exportPolicySet: end`);\n return exportData;\n}\n\n/**\n * Export policy sets\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<PolicySetExportInterface>} a promise that resolves to an PolicySetExportInterface object\n */\nexport async function exportPolicySets(\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<PolicySetExportInterface> {\n debugMessage(`PolicySetOps.exportPolicySet: start`);\n const exportData = createPolicySetExportTemplate();\n const errors = [];\n try {\n const policySets = await getPolicySets();\n for (const policySetData of policySets) {\n exportData.policyset[policySetData.name] = policySetData;\n if (options.prereqs) {\n try {\n await exportPolicySetPrerequisites(policySetData, exportData);\n } catch (error) {\n errors.push(error);\n }\n }\n if (options.deps) {\n try {\n await exportPolicySetDependencies(policySetData, options, exportData);\n } catch (error) {\n errors.push(error);\n }\n }\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.exportPolicySet: end`);\n return exportData;\n}\n\n/**\n * Helper function to import prerequisites of a policy set (resource types)\n * @param {PolicySetSkeleton} policySetData policy set data\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function importPolicySetPrerequisites(\n policySetData: PolicySetSkeleton,\n exportData: PolicySetExportInterface\n) {\n debugMessage(\n `PolicySetOps.importPolicySetHardDependencies: start [policySet=${policySetData['name']}]`\n );\n const errors = [];\n try {\n // resource types\n for (const resourceTypeUuid of policySetData.resourceTypeUuids) {\n if (exportData.resourcetype[resourceTypeUuid]) {\n try {\n debugMessage(`Importing resource type ${resourceTypeUuid}`);\n await putResourceType(\n resourceTypeUuid,\n exportData.resourcetype[resourceTypeUuid]\n );\n } catch (error) {\n debugMessage(error.response?.data);\n errors.push(error);\n }\n } else {\n errors.push(\n new Error(\n `No resource type definition with id ${resourceTypeUuid} found in import data.`\n )\n );\n }\n }\n } catch (error) {\n error.message = `Error importing hard dependencies for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import hard dependencies error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.importPolicySetHardDependencies: end`);\n}\n\n/**\n * Helper function to import dependencies of a policy set (policies and scripts)\n * @param {PolicySetSkeleton} policySetData policy set data\n * @param {PolicySetExportInterface} exportData export data\n */\nasync function importPolicySetDependencies(\n policySetData: PolicySetSkeleton,\n exportData: PolicySetExportInterface\n) {\n debugMessage(\n `PolicySetOps.importPolicySetSoftDependencies: start [policySet=${policySetData['name']}]`\n );\n const errors = [];\n try {\n // policies\n try {\n const policies = Object.values(exportData.policy).filter(\n (policy) => policy.applicationName === policySetData.name\n );\n for (const policyData of policies) {\n try {\n debugMessage(`Importing policy ${policyData._id}`);\n await putPolicy(policyData._id, policyData);\n } catch (error) {\n debugMessage(error.response?.data);\n error.message = `Error importing policy ${policyData._id} in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n // scripts\n const scriptUuids = findScriptUuids(policyData.condition);\n for (const scriptUuid of scriptUuids) {\n try {\n const scriptData = exportData.script[scriptUuid];\n debugMessage(`Importing script ${scriptUuid}`);\n await putScript(scriptUuid, scriptData);\n } catch (error) {\n debugMessage(error.response?.data);\n error.message = `Error importing script ${scriptUuid} for policy ${policyData._id} in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n }\n }\n } catch (error) {\n error.message = `Error importing policies in policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n } catch (error) {\n error.message = `Error importing soft dependencies for policy set ${policySetData.name}: ${error.message}`;\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import soft dependencies error:\\n${errorMessages}`);\n }\n debugMessage(`PolicySetOps.importPolicySetSoftDependencies: end`);\n}\n\n/**\n * Import policy set\n * @param {string} policySetName policy set name\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importPolicySet(\n policySetName: string,\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n if (id === policySetName) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites(policySetData, importData);\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet(policySetData);\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet(policySetData);\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies(policySetData, importData);\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(\n `Import error:\\n${policySetName} not found in import data!`\n );\n }\n return response;\n}\n\n/**\n * Import first policy set\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importFirstPolicySet(\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._provider;\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites(policySetData, importData);\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet(policySetData);\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet(policySetData);\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies(policySetData, importData);\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n break;\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policy sets found in import data!`);\n }\n return response;\n}\n\n/**\n * Import policy sets\n * @param {PolicySetExportInterface} importData import data\n * @param {PolicySetImportOptions} options import options\n */\nexport async function importPolicySets(\n importData: PolicySetExportInterface,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.policyset)) {\n try {\n const policySetData = importData.policyset[id];\n delete policySetData._rev;\n if (options.prereqs) {\n try {\n await importPolicySetPrerequisites(policySetData, importData);\n } catch (error) {\n errors.push(error);\n }\n }\n try {\n response = await createPolicySet(policySetData);\n imported.push(id);\n } catch (error) {\n if (error.response?.status === 409) {\n response = await updatePolicySet(policySetData);\n imported.push(id);\n } else throw error;\n }\n if (options.deps) {\n try {\n await importPolicySetDependencies(policySetData, importData);\n } catch (error) {\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo policy sets found in import data!`);\n }\n return response;\n}\n"],"mappings":"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"}