@rockcarver/frodo-lib 2.0.0-2 → 2.0.0-4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/cjs/api/AgentApi.js +64 -16
  3. package/cjs/api/AgentApi.js.map +1 -1
  4. package/cjs/api/ApiTypes.js +0 -55
  5. package/cjs/api/ApiTypes.js.map +1 -1
  6. package/cjs/api/BaseApi.js +21 -11
  7. package/cjs/api/BaseApi.js.map +1 -1
  8. package/cjs/api/cloud/SecretsApi.js +7 -14
  9. package/cjs/api/cloud/SecretsApi.js.map +1 -1
  10. package/cjs/api/cloud/SecretsApi.test.js.map +1 -1
  11. package/cjs/index.js +6 -0
  12. package/cjs/index.js.map +1 -1
  13. package/cjs/ops/AdminOps.js +254 -60
  14. package/cjs/ops/AdminOps.js.map +1 -1
  15. package/cjs/ops/AgentOps.js +352 -108
  16. package/cjs/ops/AgentOps.js.map +1 -1
  17. package/cjs/ops/AuthenticateOps.js +262 -65
  18. package/cjs/ops/AuthenticateOps.js.map +1 -1
  19. package/cjs/ops/CirclesOfTrustOps.js +16 -4
  20. package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
  21. package/cjs/ops/ConnectionProfileOps.js +163 -40
  22. package/cjs/ops/ConnectionProfileOps.js.map +1 -1
  23. package/cjs/ops/EmailTemplateOps.js +7 -1
  24. package/cjs/ops/EmailTemplateOps.js.map +1 -1
  25. package/cjs/ops/IdpOps.js +55 -12
  26. package/cjs/ops/IdpOps.js.map +1 -1
  27. package/cjs/ops/JourneyOps.js +645 -136
  28. package/cjs/ops/JourneyOps.js.map +1 -1
  29. package/cjs/ops/NodeOps.js +96 -24
  30. package/cjs/ops/NodeOps.js.map +1 -1
  31. package/cjs/ops/OAuth2ClientOps.js +45 -11
  32. package/cjs/ops/OAuth2ClientOps.js.map +1 -1
  33. package/cjs/ops/OpsTypes.js +0 -23
  34. package/cjs/ops/OpsTypes.js.map +1 -1
  35. package/cjs/ops/OrganizationOps.js +44 -10
  36. package/cjs/ops/OrganizationOps.js.map +1 -1
  37. package/cjs/ops/PolicyOps.js +86 -24
  38. package/cjs/ops/PolicyOps.js.map +1 -1
  39. package/cjs/ops/PolicySetOps.js +72 -18
  40. package/cjs/ops/PolicySetOps.js.map +1 -1
  41. package/cjs/ops/ResourceTypeOps.js +24 -6
  42. package/cjs/ops/ResourceTypeOps.js.map +1 -1
  43. package/cjs/ops/Saml2Ops.js +121 -42
  44. package/cjs/ops/Saml2Ops.js.map +1 -1
  45. package/cjs/ops/Saml2Ops.test.js.map +1 -1
  46. package/cjs/ops/ScriptOps.js +73 -17
  47. package/cjs/ops/ScriptOps.js.map +1 -1
  48. package/cjs/ops/ServiceOps.js +152 -35
  49. package/cjs/ops/ServiceOps.js.map +1 -1
  50. package/cjs/ops/ThemeOps.js +20 -5
  51. package/cjs/ops/ThemeOps.js.map +1 -1
  52. package/cjs/ops/cloud/FeatureOps.js +4 -1
  53. package/cjs/ops/cloud/FeatureOps.js.map +1 -1
  54. package/cjs/ops/cloud/SecretsOps.js.map +1 -1
  55. package/cjs/ops/cloud/ServiceAccountOps.js +24 -6
  56. package/cjs/ops/cloud/ServiceAccountOps.js.map +1 -1
  57. package/cjs/ops/cloud/StartupOps.js +55 -11
  58. package/cjs/ops/cloud/StartupOps.js.map +1 -1
  59. package/cjs/ops/utils/Console.js +47 -22
  60. package/cjs/ops/utils/Console.js.map +1 -1
  61. package/cjs/ops/utils/DataProtection.js +12 -5
  62. package/cjs/ops/utils/DataProtection.js.map +1 -1
  63. package/cjs/ops/utils/DataProtection.test.js.map +1 -1
  64. package/cjs/ops/utils/ExportImportUtils.js +15 -8
  65. package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
  66. package/cjs/ops/utils/ScriptValidationUtils.js +33 -8
  67. package/cjs/ops/utils/ScriptValidationUtils.js.map +1 -1
  68. package/cjs/ops/utils/ScriptValidationUtils.test.js.map +1 -1
  69. package/cjs/utils/SetupPollyForFrodoLib.js +67 -19
  70. package/cjs/utils/SetupPollyForFrodoLib.js.map +1 -1
  71. package/esm/api/AgentApi.mjs +64 -16
  72. package/esm/api/ApiTypes.mjs +1 -50
  73. package/esm/api/BaseApi.mjs +21 -11
  74. package/esm/api/cloud/SecretsApi.mjs +0 -5
  75. package/esm/api/cloud/SecretsApi.test.mjs +3 -3
  76. package/esm/index.mjs +1 -1
  77. package/esm/ops/AdminOps.mjs +254 -60
  78. package/esm/ops/AgentOps.mjs +352 -104
  79. package/esm/ops/AuthenticateOps.mjs +262 -65
  80. package/esm/ops/CirclesOfTrustOps.mjs +16 -4
  81. package/esm/ops/ConnectionProfileOps.mjs +163 -40
  82. package/esm/ops/EmailTemplateOps.mjs +5 -0
  83. package/esm/ops/IdpOps.mjs +55 -12
  84. package/esm/ops/JourneyOps.mjs +639 -132
  85. package/esm/ops/NodeOps.mjs +90 -19
  86. package/esm/ops/OAuth2ClientOps.mjs +45 -11
  87. package/esm/ops/OpsTypes.mjs +1 -22
  88. package/esm/ops/OrganizationOps.mjs +44 -10
  89. package/esm/ops/PolicyOps.mjs +86 -24
  90. package/esm/ops/PolicySetOps.mjs +72 -18
  91. package/esm/ops/ResourceTypeOps.mjs +24 -6
  92. package/esm/ops/Saml2Ops.mjs +120 -39
  93. package/esm/ops/Saml2Ops.test.mjs +10 -11
  94. package/esm/ops/ScriptOps.mjs +73 -17
  95. package/esm/ops/ServiceOps.mjs +152 -35
  96. package/esm/ops/ThemeOps.mjs +20 -5
  97. package/esm/ops/cloud/FeatureOps.mjs +4 -1
  98. package/esm/ops/cloud/ServiceAccountOps.mjs +24 -6
  99. package/esm/ops/cloud/StartupOps.mjs +55 -11
  100. package/esm/ops/utils/Console.mjs +33 -9
  101. package/esm/ops/utils/DataProtection.mjs +9 -2
  102. package/esm/ops/utils/DataProtection.test.mjs +8 -2
  103. package/esm/ops/utils/ExportImportUtils.mjs +15 -8
  104. package/esm/ops/utils/ScriptValidationUtils.mjs +30 -8
  105. package/esm/ops/utils/ScriptValidationUtils.test.mjs +14 -3
  106. package/esm/utils/SetupPollyForFrodoLib.mjs +64 -18
  107. package/package.json +1 -1
  108. package/types/api/AgentApi.d.ts +6 -6
  109. package/types/api/AgentApi.d.ts.map +1 -1
  110. package/types/api/ApiTypes.d.ts +12 -49
  111. package/types/api/ApiTypes.d.ts.map +1 -1
  112. package/types/api/BaseApi.d.ts.map +1 -1
  113. package/types/api/cloud/SecretsApi.d.ts +1 -4
  114. package/types/api/cloud/SecretsApi.d.ts.map +1 -1
  115. package/types/index.d.ts +1 -1
  116. package/types/index.d.ts.map +1 -1
  117. package/types/ops/AdminOps.d.ts.map +1 -1
  118. package/types/ops/AgentOps.d.ts +3 -6
  119. package/types/ops/AgentOps.d.ts.map +1 -1
  120. package/types/ops/AuthenticateOps.d.ts.map +1 -1
  121. package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
  122. package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
  123. package/types/ops/EmailTemplateOps.d.ts +4 -0
  124. package/types/ops/EmailTemplateOps.d.ts.map +1 -1
  125. package/types/ops/IdpOps.d.ts.map +1 -1
  126. package/types/ops/JourneyOps.d.ts +10 -5
  127. package/types/ops/JourneyOps.d.ts.map +1 -1
  128. package/types/ops/NodeOps.d.ts +10 -4
  129. package/types/ops/NodeOps.d.ts.map +1 -1
  130. package/types/ops/OAuth2ClientOps.d.ts.map +1 -1
  131. package/types/ops/OpsTypes.d.ts +2 -12
  132. package/types/ops/OpsTypes.d.ts.map +1 -1
  133. package/types/ops/OrganizationOps.d.ts.map +1 -1
  134. package/types/ops/PolicyOps.d.ts.map +1 -1
  135. package/types/ops/PolicySetOps.d.ts.map +1 -1
  136. package/types/ops/ResourceTypeOps.d.ts.map +1 -1
  137. package/types/ops/Saml2Ops.d.ts +0 -6
  138. package/types/ops/Saml2Ops.d.ts.map +1 -1
  139. package/types/ops/ScriptOps.d.ts.map +1 -1
  140. package/types/ops/ServiceOps.d.ts.map +1 -1
  141. package/types/ops/ThemeOps.d.ts.map +1 -1
  142. package/types/ops/cloud/FeatureOps.d.ts.map +1 -1
  143. package/types/ops/cloud/SecretsOps.d.ts +1 -1
  144. package/types/ops/cloud/SecretsOps.d.ts.map +1 -1
  145. package/types/ops/cloud/ServiceAccountOps.d.ts.map +1 -1
  146. package/types/ops/cloud/StartupOps.d.ts.map +1 -1
  147. package/types/ops/utils/Console.d.ts +34 -7
  148. package/types/ops/utils/Console.d.ts.map +1 -1
  149. package/types/ops/utils/DataProtection.d.ts +5 -1
  150. package/types/ops/utils/DataProtection.d.ts.map +1 -1
  151. package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
  152. package/types/ops/utils/ScriptValidationUtils.d.ts +14 -4
  153. package/types/ops/utils/ScriptValidationUtils.d.ts.map +1 -1
  154. package/types/utils/SetupPollyForFrodoLib.d.ts +5 -1
  155. package/types/utils/SetupPollyForFrodoLib.d.ts.map +1 -1
@@ -17,9 +17,7 @@ exports.getSaml2ProviderStub = getSaml2ProviderStub;
17
17
  exports.getSaml2ProviderStubs = getSaml2ProviderStubs;
18
18
  exports.importSaml2Provider = importSaml2Provider;
19
19
  exports.importSaml2Providers = importSaml2Providers;
20
- exports.roleMap = void 0;
21
20
  var _lodash = _interopRequireDefault(require("lodash"));
22
- var _ApiTypes = require("../api/ApiTypes");
23
21
  var _Saml2Api = require("../api/Saml2Api");
24
22
  var _ScriptApi = require("../api/ScriptApi");
25
23
  var _Base = require("../api/utils/Base64");
@@ -207,16 +205,9 @@ class Saml2Ops {
207
205
  })();
208
206
  }
209
207
  }
210
- exports.default = Saml2Ops;
211
- var roleMap = {
212
- identityProvider: 'IDP',
213
- serviceProvider: 'SP',
214
- attributeQueryProvider: 'AttrQuery',
215
- xacmlPolicyEnforcementPoint: 'XACML PEP'
216
- };
217
208
 
218
209
  // use a function vs a template variable to avoid problems in loops
219
- exports.roleMap = roleMap;
210
+ exports.default = Saml2Ops;
220
211
  function createSaml2ExportTemplate(_ref) {
221
212
  var {
222
213
  state
@@ -382,7 +373,10 @@ function _getSaml2ProviderStub() {
382
373
  entityId,
383
374
  state
384
375
  } = _ref7;
385
- (0, _Console.debugMessage)("Saml2Ops.getSaml2ProviderStub: start [entityId=".concat(entityId, "]"));
376
+ (0, _Console.debugMessage)({
377
+ message: "Saml2Ops.getSaml2ProviderStub: start [entityId=".concat(entityId, "]"),
378
+ state
379
+ });
386
380
  var found = yield (0, _Saml2Api.findProviders)({
387
381
  filter: "entityId eq '".concat(entityId, "'"),
388
382
  state
@@ -392,7 +386,10 @@ function _getSaml2ProviderStub() {
392
386
  throw new Error("No provider with entity id '".concat(entityId, "' found"));
393
387
  case 1:
394
388
  {
395
- (0, _Console.debugMessage)("Saml2Ops.getSaml2ProviderStub: end [entityId=".concat(entityId, "]"));
389
+ (0, _Console.debugMessage)({
390
+ message: "Saml2Ops.getSaml2ProviderStub: end [entityId=".concat(entityId, "]"),
391
+ state
392
+ });
396
393
  return found.result[0];
397
394
  }
398
395
  default:
@@ -415,7 +412,10 @@ function _getSaml2Provider() {
415
412
  entityId,
416
413
  state
417
414
  } = _ref8;
418
- (0, _Console.debugMessage)("Saml2Ops.getSaml2Provider: start [entityId=".concat(entityId, "]"));
415
+ (0, _Console.debugMessage)({
416
+ message: "Saml2Ops.getSaml2Provider: start [entityId=".concat(entityId, "]"),
417
+ state
418
+ });
419
419
  var stub = yield getSaml2ProviderStub({
420
420
  entityId,
421
421
  state
@@ -429,7 +429,10 @@ function _getSaml2Provider() {
429
429
  entityId64: id,
430
430
  state
431
431
  });
432
- (0, _Console.debugMessage)("Saml2Ops.getSaml2Provider: end [entityId=".concat(entityId, "]"));
432
+ (0, _Console.debugMessage)({
433
+ message: "Saml2Ops.getSaml2Provider: end [entityId=".concat(entityId, "]"),
434
+ state
435
+ });
433
436
  return providerData;
434
437
  });
435
438
  return _getSaml2Provider.apply(this, arguments);
@@ -447,7 +450,10 @@ function _deleteSaml2Provider() {
447
450
  entityId,
448
451
  state
449
452
  } = _ref9;
450
- (0, _Console.debugMessage)("Saml2Ops.deleteSaml2Provider: start [entityId=".concat(entityId, "]"));
453
+ (0, _Console.debugMessage)({
454
+ message: "Saml2Ops.deleteSaml2Provider: start [entityId=".concat(entityId, "]"),
455
+ state
456
+ });
451
457
  var stub = yield getSaml2ProviderStub({
452
458
  entityId,
453
459
  state
@@ -461,7 +467,10 @@ function _deleteSaml2Provider() {
461
467
  entityId64: id,
462
468
  state
463
469
  });
464
- (0, _Console.debugMessage)("Saml2Ops.deleteSaml2Provider: end [entityId=".concat(entityId, "]"));
470
+ (0, _Console.debugMessage)({
471
+ message: "Saml2Ops.deleteSaml2Provider: end [entityId=".concat(entityId, "]"),
472
+ state
473
+ });
465
474
  return providerData;
466
475
  });
467
476
  return _deleteSaml2Provider.apply(this, arguments);
@@ -479,7 +488,10 @@ function _deleteSaml2Providers() {
479
488
  var {
480
489
  state
481
490
  } = _ref10;
482
- (0, _Console.debugMessage)("Saml2Ops.deleteSaml2Providers: start");
491
+ (0, _Console.debugMessage)({
492
+ message: "Saml2Ops.deleteSaml2Providers: start",
493
+ state
494
+ });
483
495
  var providers = [];
484
496
  var stubs = yield getSaml2ProviderStubs({
485
497
  state
@@ -492,7 +504,10 @@ function _deleteSaml2Providers() {
492
504
  });
493
505
  providers.push(provider);
494
506
  }
495
- (0, _Console.debugMessage)("Saml2Ops.deleteSaml2Providers: end [deleted ".concat(providers.length, " providers]"));
507
+ (0, _Console.debugMessage)({
508
+ message: "Saml2Ops.deleteSaml2Providers: end [deleted ".concat(providers.length, " providers]"),
509
+ state
510
+ });
496
511
  return providers;
497
512
  });
498
513
  return _deleteSaml2Providers.apply(this, arguments);
@@ -510,7 +525,10 @@ function _exportSaml2Provider() {
510
525
  entityId,
511
526
  state
512
527
  } = _ref11;
513
- (0, _Console.debugMessage)("Saml2Ops.exportSaml2Provider: start [entityId=".concat(entityId, "]"));
528
+ (0, _Console.debugMessage)({
529
+ message: "Saml2Ops.exportSaml2Provider: start [entityId=".concat(entityId, "]"),
530
+ state
531
+ });
514
532
  var exportData = createSaml2ExportTemplate({
515
533
  state
516
534
  });
@@ -535,9 +553,16 @@ function _exportSaml2Provider() {
535
553
  state
536
554
  });
537
555
  } catch (error) {
538
- (0, _Console.printMessage)(error.message, 'error');
556
+ (0, _Console.printMessage)({
557
+ message: error.message,
558
+ type: 'error',
559
+ state
560
+ });
539
561
  }
540
- (0, _Console.debugMessage)("Saml2Ops.exportSaml2Provider: end [entityId=".concat(entityId, "]"));
562
+ (0, _Console.debugMessage)({
563
+ message: "Saml2Ops.exportSaml2Provider: end [entityId=".concat(entityId, "]"),
564
+ state
565
+ });
541
566
  return exportData;
542
567
  });
543
568
  return _exportSaml2Provider.apply(this, arguments);
@@ -574,7 +599,11 @@ function _exportSaml2Providers() {
574
599
  state
575
600
  });
576
601
  } catch (error) {
577
- (0, _Console.printMessage)(error, 'error');
602
+ (0, _Console.printMessage)({
603
+ message: error,
604
+ type: 'error',
605
+ state
606
+ });
578
607
  }
579
608
  fileData.saml[stub.location][providerData._id] = providerData;
580
609
  }
@@ -598,10 +627,16 @@ function _importDependencies() {
598
627
  fileData,
599
628
  state
600
629
  } = _ref13;
601
- (0, _Console.debugMessage)("Saml2Ops.importDependencies: start");
630
+ (0, _Console.debugMessage)({
631
+ message: "Saml2Ops.importDependencies: start",
632
+ state
633
+ });
602
634
  var attrMapperScriptId = _lodash.default.get(providerData, ['identityProvider', 'assertionProcessing', 'attributeMapper', 'attributeMapperScript']);
603
635
  if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {
604
- (0, _Console.debugMessage)("Saml2Ops.importDependencies: attributeMapperScript=".concat(attrMapperScriptId));
636
+ (0, _Console.debugMessage)({
637
+ message: "Saml2Ops.importDependencies: attributeMapperScript=".concat(attrMapperScriptId),
638
+ state
639
+ });
605
640
  var scriptData = _lodash.default.get(fileData, ['script', attrMapperScriptId]);
606
641
  scriptData.script = (0, _ExportImportUtils.convertTextArrayToBase64)(scriptData.script);
607
642
  yield (0, _ScriptOps.putScript)({
@@ -612,7 +647,10 @@ function _importDependencies() {
612
647
  }
613
648
  var idpAdapterScriptId = _lodash.default.get(providerData, ['identityProvider', 'advanced', 'idpAdapter', 'idpAdapterScript']);
614
649
  if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {
615
- (0, _Console.debugMessage)("Saml2Ops.importDependencies: idpAdapterScript=".concat(idpAdapterScriptId));
650
+ (0, _Console.debugMessage)({
651
+ message: "Saml2Ops.importDependencies: idpAdapterScript=".concat(idpAdapterScriptId),
652
+ state
653
+ });
616
654
  var _scriptData2 = _lodash.default.get(fileData, ['script', idpAdapterScriptId]);
617
655
  _scriptData2.script = (0, _ExportImportUtils.convertTextArrayToBase64)(_scriptData2.script);
618
656
  yield (0, _ScriptOps.putScript)({
@@ -621,16 +659,19 @@ function _importDependencies() {
621
659
  state
622
660
  });
623
661
  }
624
- (0, _Console.debugMessage)("Saml2Ops.importDependencies: end");
662
+ (0, _Console.debugMessage)({
663
+ message: "Saml2Ops.importDependencies: end",
664
+ state
665
+ });
625
666
  });
626
667
  return _importDependencies.apply(this, arguments);
627
668
  }
628
669
  function getLocation(entityId64, data) {
629
670
  if (data.saml.hosted[entityId64]) {
630
- return _ApiTypes.Saml2ProiderLocation.HOSTED;
671
+ return 'hosted';
631
672
  }
632
673
  if (data.saml.remote[entityId64]) {
633
- return _ApiTypes.Saml2ProiderLocation.REMOTE;
674
+ return 'remote';
634
675
  }
635
676
  return undefined;
636
677
  }
@@ -654,10 +695,16 @@ function _importSaml2Provider() {
654
695
  importData,
655
696
  state
656
697
  } = _ref14;
657
- (0, _Console.debugMessage)("Saml2Ops.importSaml2Provider: start");
698
+ (0, _Console.debugMessage)({
699
+ message: "Saml2Ops.importSaml2Provider: start",
700
+ state
701
+ });
658
702
  var entityId64 = (0, _Base.encode)(entityId, false);
659
703
  var location = getLocation(entityId64, importData);
660
- (0, _Console.debugMessage)("Saml2Ops.importSaml2Provider: entityId=".concat(entityId, ", entityId64=").concat(entityId64, ", location=").concat(location));
704
+ (0, _Console.debugMessage)({
705
+ message: "Saml2Ops.importSaml2Provider: entityId=".concat(entityId, ", entityId64=").concat(entityId64, ", location=").concat(location),
706
+ state
707
+ });
661
708
  if (location) {
662
709
  var providerData = importData.saml[location][entityId64];
663
710
  yield importDependencies({
@@ -666,7 +713,7 @@ function _importSaml2Provider() {
666
713
  state
667
714
  });
668
715
  var metaData = null;
669
- if (location === _ApiTypes.Saml2ProiderLocation.REMOTE) {
716
+ if (location === 'remote') {
670
717
  metaData = (0, _ExportImportUtils.convertTextArrayToBase64Url)(importData.saml.metadata[entityId64]);
671
718
  }
672
719
  try {
@@ -686,7 +733,10 @@ function _importSaml2Provider() {
686
733
  } else {
687
734
  throw new Error("Provider ".concat(entityId, " not found in import data!"));
688
735
  }
689
- (0, _Console.debugMessage)("Saml2Ops.importSaml2Provider: end");
736
+ (0, _Console.debugMessage)({
737
+ message: "Saml2Ops.importSaml2Provider: end",
738
+ state
739
+ });
690
740
  return true;
691
741
  });
692
742
  return _importSaml2Provider.apply(this, arguments);
@@ -700,7 +750,10 @@ function _importSaml2Providers() {
700
750
  importData,
701
751
  state
702
752
  } = _ref15;
703
- (0, _Console.debugMessage)("Saml2Ops.importSaml2Providers: start");
753
+ (0, _Console.debugMessage)({
754
+ message: "Saml2Ops.importSaml2Providers: start",
755
+ state
756
+ });
704
757
  var myStatus = {
705
758
  total: 0,
706
759
  successes: 0,
@@ -714,8 +767,11 @@ function _importSaml2Providers() {
714
767
  var providerIds = hostedIds.concat(remoteIds);
715
768
  myStatus.total = providerIds.length;
716
769
  for (var entityId64 of providerIds) {
717
- (0, _Console.debugMessage)("Saml2Ops.importSaml2Providers: entityId=".concat((0, _Base.decodeBase64Url)(entityId64)));
718
- var location = hostedIds.includes(entityId64) ? _ApiTypes.Saml2ProiderLocation.HOSTED : _ApiTypes.Saml2ProiderLocation.REMOTE;
770
+ (0, _Console.debugMessage)({
771
+ message: "Saml2Ops.importSaml2Providers: entityId=".concat((0, _Base.decodeBase64Url)(entityId64)),
772
+ state
773
+ });
774
+ var location = hostedIds.includes(entityId64) ? 'hosted' : 'remote';
719
775
  var entityId = (0, _Base.decode)(entityId64);
720
776
  var providerData = importData.saml[location][entityId64];
721
777
  try {
@@ -726,11 +782,19 @@ function _importSaml2Providers() {
726
782
  });
727
783
  } catch (importDependenciesErr) {
728
784
  myStatus.warnings += 1;
729
- (0, _Console.printMessage)("\nWarning importing dependencies for ".concat(entityId), 'warn');
730
- (0, _Console.printMessage)(importDependenciesErr.response.data, 'error');
785
+ (0, _Console.printMessage)({
786
+ message: "\nWarning importing dependencies for ".concat(entityId),
787
+ state,
788
+ type: 'warn'
789
+ });
790
+ (0, _Console.printMessage)({
791
+ message: importDependenciesErr.response.data,
792
+ type: 'error',
793
+ state
794
+ });
731
795
  }
732
796
  var metaData = null;
733
- if (location === _ApiTypes.Saml2ProiderLocation.REMOTE) {
797
+ if (location === 'remote') {
734
798
  metaData = (0, _ExportImportUtils.convertTextArrayToBase64Url)(importData.saml.metadata[entityId64]);
735
799
  }
736
800
  try {
@@ -752,17 +816,32 @@ function _importSaml2Providers() {
752
816
  } catch (updateProviderError) {
753
817
  var _updateProviderError$;
754
818
  myStatus.failures += 1;
755
- (0, _Console.printMessage)("\nError importing provider ".concat(entityId, ": ").concat(updateProviderError.message), 'error');
756
- (0, _Console.printMessage)((_updateProviderError$ = updateProviderError.response) === null || _updateProviderError$ === void 0 ? void 0 : _updateProviderError$.data, 'error');
819
+ (0, _Console.printMessage)({
820
+ message: "\nError importing provider ".concat(entityId, ": ").concat(updateProviderError.message),
821
+ state,
822
+ type: 'error'
823
+ });
824
+ (0, _Console.printMessage)({
825
+ message: (_updateProviderError$ = updateProviderError.response) === null || _updateProviderError$ === void 0 ? void 0 : _updateProviderError$.data,
826
+ type: 'error',
827
+ state
828
+ });
757
829
  }
758
830
  }
759
831
  }
760
832
  myStatus.message = "".concat(myStatus.successes, "/").concat(myStatus.total, " providers imported.");
761
833
  } catch (error) {
762
834
  myStatus.failures += 1;
763
- (0, _Console.printMessage)("\nError importing providers ".concat(error.message), 'error');
835
+ (0, _Console.printMessage)({
836
+ message: "\nError importing providers ".concat(error.message),
837
+ type: 'error',
838
+ state
839
+ });
764
840
  }
765
- (0, _Console.debugMessage)("Saml2Ops.importSaml2Providers: end");
841
+ (0, _Console.debugMessage)({
842
+ message: "Saml2Ops.importSaml2Providers: end",
843
+ state
844
+ });
766
845
  return myStatus;
767
846
  });
768
847
  return _importSaml2Providers.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"Saml2Ops.js","names":["_lodash","_interopRequireDefault","require","_ApiTypes","_Saml2Api","_ScriptApi","_Base","_ScriptOps","_Console","_ExportImportUtils","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","Saml2Ops","constructor","state","getSaml2ProviderStubs","_this","getProviderByLocationAndId","location","entityId64","_this2","getProviderMetadataUrl","entityId","getProviderMetadata","_this3","getSaml2ProviderStub","_this4","getSaml2Provider","_this5","deleteSaml2Provider","_this6","deleteSaml2Providers","_this7","exportSaml2Provider","_this8","exportSaml2Providers","_this9","importSaml2Provider","importData","_this10","importSaml2Providers","_this11","exports","roleMap","identityProvider","serviceProvider","attributeQueryProvider","xacmlPolicyEnforcementPoint","createSaml2ExportTemplate","_ref","meta","getMetadata","script","saml","hosted","remote","metadata","_x","_getSaml2ProviderStubs","_ref2","result","getProviders","_x2","_getProviderByLocationAndId2","_ref3","_getProviderByLocationAndId","_ref4","_getProviderMetadataUrl","_x3","_getProviderMetadata2","_ref5","_getProviderMetadata","exportDependencies","_x4","_exportDependencies","_ref6","providerData","fileData","attrMapperScriptId","_","get","scriptData","getScript","scriptId","convertBase64TextToArray","idpAdapterScriptId","metaDataResponse","Error","concat","_id","convertBase64UrlTextToArray","encodeBase64Url","_x5","_getSaml2ProviderStub","_ref7","debugMessage","found","findProviders","filter","resultCount","_x6","_getSaml2Provider","_ref8","stub","id","_x7","_deleteSaml2Provider","_ref9","deleteProviderByLocationAndId","_x8","_deleteSaml2Providers","_ref10","providers","stubs","provider","push","length","_x9","_exportSaml2Provider","_ref11","exportData","printMessage","message","_x10","_exportSaml2Providers","_ref12","importDependencies","_x11","_importDependencies","_ref13","convertTextArrayToBase64","putScript","getLocation","data","Saml2ProiderLocation","HOSTED","REMOTE","_x12","_importSaml2Provider","_ref14","encode","metaData","convertTextArrayToBase64Url","createProvider","updateProvider","_x13","_importSaml2Providers","_ref15","myStatus","total","successes","warnings","failures","hostedIds","Object","keys","remoteIds","providerIds","decodeBase64Url","includes","decode","importDependenciesErr","response","createProviderErr","updateProviderError","_updateProviderError$"],"sources":["ops/Saml2Ops.ts"],"sourcesContent":["import _ from 'lodash';\nimport {\n Saml2ProiderLocation,\n Saml2ProviderSkeleton,\n Saml2ProviderStub,\n} from '../api/ApiTypes';\nimport {\n createProvider,\n updateProvider,\n findProviders,\n getProviderByLocationAndId as _getProviderByLocationAndId,\n getProviderMetadata as _getProviderMetadata,\n getProviderMetadataUrl as _getProviderMetadataUrl,\n getProviders,\n deleteProviderByLocationAndId,\n} from '../api/Saml2Api';\nimport { getScript } from '../api/ScriptApi';\nimport {\n decode,\n decodeBase64Url,\n encode,\n encodeBase64Url,\n} from '../api/utils/Base64';\nimport { MultiOpStatusInterface, Saml2ExportInterface } from './OpsTypes';\nimport { putScript } from './ScriptOps';\nimport { debugMessage, printMessage } from './utils/Console';\nimport {\n convertBase64TextToArray,\n convertBase64UrlTextToArray,\n convertTextArrayToBase64,\n convertTextArrayToBase64Url,\n getMetadata,\n} from './utils/ExportImportUtils';\nimport State from '../shared/State';\n\nexport default class Saml2Ops {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\n async getSaml2ProviderStubs(): Promise<Saml2ProviderStub[]> {\n return getSaml2ProviderStubs({ state: this.state });\n }\n\n /**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded-without-padding provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\n async getProviderByLocationAndId(location: string, entityId64: string) {\n return getProviderByLocationAndId({\n location,\n entityId64,\n state: this.state,\n });\n }\n\n /**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\n getProviderMetadataUrl(entityId: string): string {\n return getProviderMetadataUrl({ entityId, state: this.state });\n }\n\n /**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {Promise<object>} a promise that resolves to an object containing a SAML2 metadata\n */\n async getProviderMetadata(entityId: string) {\n return getProviderMetadata({ entityId, state: this.state });\n }\n\n /**\n *\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\n async getSaml2ProviderStub(entityId: string): Promise<Saml2ProviderStub> {\n return getSaml2ProviderStub({ entityId, state: this.state });\n }\n\n /**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\n async getSaml2Provider(entityId: string): Promise<Saml2ProviderSkeleton> {\n return getSaml2Provider({ entityId, state: this.state });\n }\n\n /**\n * Delete an entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\n async deleteSaml2Provider(entityId: string): Promise<Saml2ProviderSkeleton> {\n return deleteSaml2Provider({ entityId, state: this.state });\n }\n\n /**\n * Delete all entity providers.\n * @returns {Promise<Saml2ProviderSkeleton[]>} Promise resolving to an array of Saml2ProviderSkeleton objects.\n */\n async deleteSaml2Providers(): Promise<Saml2ProviderSkeleton[]> {\n return deleteSaml2Providers({ state: this.state });\n }\n\n /**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\n async exportSaml2Provider(entityId: string): Promise<Saml2ExportInterface> {\n return exportSaml2Provider({ entityId, state: this.state });\n }\n\n /**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\n async exportSaml2Providers(): Promise<Saml2ExportInterface> {\n return exportSaml2Providers({ state: this.state });\n }\n\n /**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\n async importSaml2Provider(\n entityId: string,\n importData: Saml2ExportInterface\n ): Promise<boolean> {\n return importSaml2Provider({ entityId, importData, state: this.state });\n }\n\n /**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\n async importSaml2Providers(\n importData: Saml2ExportInterface\n ): Promise<MultiOpStatusInterface> {\n return importSaml2Providers({ importData, state: this.state });\n }\n}\n\nexport const roleMap = {\n identityProvider: 'IDP',\n serviceProvider: 'SP',\n attributeQueryProvider: 'AttrQuery',\n xacmlPolicyEnforcementPoint: 'XACML PEP',\n};\n\n// use a function vs a template variable to avoid problems in loops\nexport function createSaml2ExportTemplate({\n state,\n}: {\n state: State;\n}): Saml2ExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n saml: {\n hosted: {},\n remote: {},\n metadata: {},\n },\n } as Saml2ExportInterface;\n}\n\n/**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\nexport async function getSaml2ProviderStubs({\n state,\n}: {\n state: State;\n}): Promise<Saml2ProviderStub[]> {\n const { result } = await getProviders({ state });\n return result;\n}\n\n/**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded-without-padding provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\nexport async function getProviderByLocationAndId({\n location,\n entityId64,\n state,\n}: {\n location: string;\n entityId64: string;\n state: State;\n}) {\n return _getProviderByLocationAndId({ location, entityId64, state });\n}\n\n/**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\nexport function getProviderMetadataUrl({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): string {\n return _getProviderMetadataUrl({ entityId, state });\n}\n\n/**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {Promise<object>} a promise that resolves to an object containing a SAML2 metadata\n */\nexport async function getProviderMetadata({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}) {\n return _getProviderMetadata({ entityId, state });\n}\n\n/**\n * Include dependencies in the export file\n * @param {object} providerData Object representing a SAML entity provider\n * @param {object} fileData File data object to add dependencies to\n */\nasync function exportDependencies({\n providerData,\n fileData,\n state,\n}: {\n providerData: Saml2ProviderSkeleton;\n fileData: Saml2ExportInterface;\n state: State;\n}) {\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n const scriptData = await getScript({ scriptId: attrMapperScriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[attrMapperScriptId] = scriptData;\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n const scriptData = await getScript({ scriptId: idpAdapterScriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[idpAdapterScriptId] = scriptData;\n }\n const metaDataResponse = await getProviderMetadata({\n entityId: providerData.entityId,\n state,\n });\n if (!metaDataResponse) {\n throw new Error(\n `Unable to obtain metadata from ${getProviderMetadataUrl({\n entityId: providerData.entityId,\n state,\n })}`\n );\n }\n fileData.saml.metadata[providerData._id] = convertBase64UrlTextToArray(\n encodeBase64Url(metaDataResponse)\n );\n}\n\n/**\n *\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2ProviderStub({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderStub> {\n debugMessage(`Saml2Ops.getSaml2ProviderStub: start [entityId=${entityId}]`);\n const found = await findProviders({\n filter: `entityId eq '${entityId}'`,\n state,\n });\n switch (found.resultCount) {\n case 0:\n throw new Error(`No provider with entity id '${entityId}' found`);\n case 1: {\n debugMessage(`Saml2Ops.getSaml2ProviderStub: end [entityId=${entityId}]`);\n return found.result[0];\n }\n default:\n throw new Error(`Multiple providers with entity id '${entityId}' found`);\n }\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderSkeleton> {\n debugMessage(`Saml2Ops.getSaml2Provider: start [entityId=${entityId}]`);\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n debugMessage(`Saml2Ops.getSaml2Provider: end [entityId=${entityId}]`);\n return providerData;\n}\n\n/**\n * Delete an entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function deleteSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderSkeleton> {\n debugMessage(`Saml2Ops.deleteSaml2Provider: start [entityId=${entityId}]`);\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await deleteProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n debugMessage(`Saml2Ops.deleteSaml2Provider: end [entityId=${entityId}]`);\n return providerData;\n}\n\n/**\n * Delete all entity providers.\n * @returns {Promise<Saml2ProviderSkeleton[]>} Promise resolving to an array of Saml2ProviderSkeleton objects.\n */\nexport async function deleteSaml2Providers({\n state,\n}: {\n state: State;\n}): Promise<Saml2ProviderSkeleton[]> {\n debugMessage(`Saml2Ops.deleteSaml2Providers: start`);\n const providers: Saml2ProviderSkeleton[] = [];\n const stubs = await getSaml2ProviderStubs({ state });\n for (const stub of stubs) {\n const provider = await deleteProviderByLocationAndId({\n location: stub.location,\n entityId64: stub._id,\n state,\n });\n providers.push(provider);\n }\n debugMessage(\n `Saml2Ops.deleteSaml2Providers: end [deleted ${providers.length} providers]`\n );\n return providers;\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ExportInterface> {\n debugMessage(`Saml2Ops.exportSaml2Provider: start [entityId=${entityId}]`);\n const exportData = createSaml2ExportTemplate({ state });\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n exportData.saml[stub.location][providerData._id] = providerData;\n try {\n await exportDependencies({ providerData, fileData: exportData, state });\n } catch (error) {\n printMessage(error.message, 'error');\n }\n debugMessage(`Saml2Ops.exportSaml2Provider: end [entityId=${entityId}]`);\n return exportData;\n}\n\n/**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Providers({\n state,\n}: {\n state: State;\n}): Promise<Saml2ExportInterface> {\n const fileData = createSaml2ExportTemplate({ state });\n const stubs = await getSaml2ProviderStubs({ state });\n for (const stub of stubs) {\n const providerData = await getProviderByLocationAndId({\n location: stub.location,\n entityId64: stub._id,\n state,\n });\n try {\n await exportDependencies({ providerData, fileData, state });\n } catch (error) {\n printMessage(error, 'error');\n }\n fileData.saml[stub.location][providerData._id] = providerData;\n }\n return fileData;\n}\n\n/**\n * Include dependencies from the import file\n * @param {object} providerData Object representing a SAML entity provider\n * @param {object} fileData File data object to read dependencies from\n */\nasync function importDependencies({\n providerData,\n fileData,\n state,\n}: {\n providerData: Saml2ProviderSkeleton;\n fileData: Saml2ExportInterface;\n state: State;\n}) {\n debugMessage(`Saml2Ops.importDependencies: start`);\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n debugMessage(\n `Saml2Ops.importDependencies: attributeMapperScript=${attrMapperScriptId}`\n );\n const scriptData = _.get(fileData, ['script', attrMapperScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script as string[]);\n await putScript({ scriptId: attrMapperScriptId, scriptData, state });\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n debugMessage(\n `Saml2Ops.importDependencies: idpAdapterScript=${idpAdapterScriptId}`\n );\n const scriptData = _.get(fileData, ['script', idpAdapterScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script as string[]);\n await putScript({ scriptId: idpAdapterScriptId, scriptData, state });\n }\n debugMessage(`Saml2Ops.importDependencies: end`);\n}\n\n/**\n * Find provider in import file and return its location\n * @param {string} entityId64 Base64-encoded provider entity id\n * @param {Saml2ExportInterface} data Import file json data\n * @returns {string} 'hosted' or 'remote' if found, undefined otherwise\n */\nfunction getLocation(\n entityId64: string,\n data: Saml2ExportInterface\n): Saml2ProiderLocation {\n if (data.saml.hosted[entityId64]) {\n return Saml2ProiderLocation.HOSTED;\n }\n if (data.saml.remote[entityId64]) {\n return Saml2ProiderLocation.REMOTE;\n }\n return undefined;\n}\n\n/**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Provider({\n entityId,\n importData,\n state,\n}: {\n entityId: string;\n importData: Saml2ExportInterface;\n state: State;\n}): Promise<boolean> {\n debugMessage(`Saml2Ops.importSaml2Provider: start`);\n const entityId64 = encode(entityId, false);\n const location = getLocation(entityId64, importData);\n debugMessage(\n `Saml2Ops.importSaml2Provider: entityId=${entityId}, entityId64=${entityId64}, location=${location}`\n );\n if (location) {\n const providerData = importData.saml[location][entityId64];\n await importDependencies({ providerData, fileData: importData, state });\n let metaData = null;\n if (location === Saml2ProiderLocation.REMOTE) {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n try {\n await createProvider({ location, providerData, metaData, state });\n } catch (error) {\n await updateProvider({ location, providerData, state });\n }\n } else {\n throw new Error(`Provider ${entityId} not found in import data!`);\n }\n debugMessage(`Saml2Ops.importSaml2Provider: end`);\n return true;\n}\n\n/**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Providers({\n importData,\n state,\n}: {\n importData: Saml2ExportInterface;\n state: State;\n}): Promise<MultiOpStatusInterface> {\n debugMessage(`Saml2Ops.importSaml2Providers: start`);\n const myStatus: MultiOpStatusInterface = {\n total: 0,\n successes: 0,\n warnings: 0,\n failures: 0,\n };\n try {\n // find providers in hosted and in remote and map locations\n const hostedIds = Object.keys(importData.saml.hosted);\n const remoteIds = Object.keys(importData.saml.remote);\n const providerIds = hostedIds.concat(remoteIds);\n myStatus.total = providerIds.length;\n for (const entityId64 of providerIds) {\n debugMessage(\n `Saml2Ops.importSaml2Providers: entityId=${decodeBase64Url(entityId64)}`\n );\n const location = hostedIds.includes(entityId64)\n ? Saml2ProiderLocation.HOSTED\n : Saml2ProiderLocation.REMOTE;\n const entityId = decode(entityId64);\n const providerData = importData.saml[location][entityId64];\n try {\n await importDependencies({ providerData, fileData: importData, state });\n } catch (importDependenciesErr) {\n myStatus.warnings += 1;\n printMessage(\n `\\nWarning importing dependencies for ${entityId}`,\n 'warn'\n );\n printMessage(importDependenciesErr.response.data, 'error');\n }\n let metaData = null;\n if (location === Saml2ProiderLocation.REMOTE) {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n try {\n await createProvider({ location, providerData, metaData, state });\n myStatus.successes += 1;\n } catch (createProviderErr) {\n try {\n await updateProvider({ location, providerData, state });\n myStatus.successes += 1;\n } catch (updateProviderError) {\n myStatus.failures += 1;\n printMessage(\n `\\nError importing provider ${entityId}: ${updateProviderError.message}`,\n 'error'\n );\n printMessage(updateProviderError.response?.data, 'error');\n }\n }\n }\n myStatus.message = `${myStatus.successes}/${myStatus.total} providers imported.`;\n } catch (error) {\n myStatus.failures += 1;\n printMessage(`\\nError importing providers ${error.message}`, 'error');\n }\n debugMessage(`Saml2Ops.importSaml2Providers: end`);\n return myStatus;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAKA,IAAAE,SAAA,GAAAF,OAAA;AAUA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAOA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,kBAAA,GAAAP,OAAA;AAMmC,SAAAD,uBAAAS,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,mBAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,GAAA,EAAAC,GAAA,cAAAC,IAAA,GAAAP,GAAA,CAAAK,GAAA,EAAAC,GAAA,OAAAE,KAAA,GAAAD,IAAA,CAAAC,KAAA,WAAAC,KAAA,IAAAP,MAAA,CAAAO,KAAA,iBAAAF,IAAA,CAAAG,IAAA,IAAAT,OAAA,CAAAO,KAAA,YAAAG,OAAA,CAAAV,OAAA,CAAAO,KAAA,EAAAI,IAAA,CAAAT,KAAA,EAAAC,MAAA;AAAA,SAAAS,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAAN,OAAA,WAAAV,OAAA,EAAAC,MAAA,QAAAF,GAAA,GAAAc,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAb,MAAAK,KAAA,IAAAT,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAI,KAAA,cAAAJ,OAAAe,GAAA,IAAApB,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAe,GAAA,KAAAhB,KAAA,CAAAiB,SAAA;AAGpB,MAAMC,QAAQ,CAAC;EAE5BC,WAAWA,CAACC,KAAY,EAAE;IACxB,IAAI,CAACA,KAAK,GAAGA,KAAK;EACpB;;EAEA;AACF;AACA;AACA;EACQC,qBAAqBA,CAAA,EAAiC;IAAA,IAAAC,KAAA;IAAA,OAAAZ,iBAAA;MAC1D,OAAOW,qBAAqB,CAAC;QAAED,KAAK,EAAEE,KAAI,CAACF;MAAM,CAAC,CAAC;IAAC;EACtD;;EAEA;AACF;AACA;AACA;AACA;AACA;EACQG,0BAA0BA,CAACC,QAAgB,EAAEC,UAAkB,EAAE;IAAA,IAAAC,MAAA;IAAA,OAAAhB,iBAAA;MACrE,OAAOa,0BAA0B,CAAC;QAChCC,QAAQ;QACRC,UAAU;QACVL,KAAK,EAAEM,MAAI,CAACN;MACd,CAAC,CAAC;IAAC;EACL;;EAEA;AACF;AACA;AACA;AACA;EACEO,sBAAsBA,CAACC,QAAgB,EAAU;IAC/C,OAAOD,sBAAsB,CAAC;MAAEC,QAAQ;MAAER,KAAK,EAAE,IAAI,CAACA;IAAM,CAAC,CAAC;EAChE;;EAEA;AACF;AACA;AACA;AACA;EACQS,mBAAmBA,CAACD,QAAgB,EAAE;IAAA,IAAAE,MAAA;IAAA,OAAApB,iBAAA;MAC1C,OAAOmB,mBAAmB,CAAC;QAAED,QAAQ;QAAER,KAAK,EAAEU,MAAI,CAACV;MAAM,CAAC,CAAC;IAAC;EAC9D;;EAEA;AACF;AACA;AACA;AACA;EACQW,oBAAoBA,CAACH,QAAgB,EAA8B;IAAA,IAAAI,MAAA;IAAA,OAAAtB,iBAAA;MACvE,OAAOqB,oBAAoB,CAAC;QAAEH,QAAQ;QAAER,KAAK,EAAEY,MAAI,CAACZ;MAAM,CAAC,CAAC;IAAC;EAC/D;;EAEA;AACF;AACA;AACA;AACA;EACQa,gBAAgBA,CAACL,QAAgB,EAAkC;IAAA,IAAAM,MAAA;IAAA,OAAAxB,iBAAA;MACvE,OAAOuB,gBAAgB,CAAC;QAAEL,QAAQ;QAAER,KAAK,EAAEc,MAAI,CAACd;MAAM,CAAC,CAAC;IAAC;EAC3D;;EAEA;AACF;AACA;AACA;AACA;EACQe,mBAAmBA,CAACP,QAAgB,EAAkC;IAAA,IAAAQ,MAAA;IAAA,OAAA1B,iBAAA;MAC1E,OAAOyB,mBAAmB,CAAC;QAAEP,QAAQ;QAAER,KAAK,EAAEgB,MAAI,CAAChB;MAAM,CAAC,CAAC;IAAC;EAC9D;;EAEA;AACF;AACA;AACA;EACQiB,oBAAoBA,CAAA,EAAqC;IAAA,IAAAC,MAAA;IAAA,OAAA5B,iBAAA;MAC7D,OAAO2B,oBAAoB,CAAC;QAAEjB,KAAK,EAAEkB,MAAI,CAAClB;MAAM,CAAC,CAAC;IAAC;EACrD;;EAEA;AACF;AACA;AACA;AACA;EACQmB,mBAAmBA,CAACX,QAAgB,EAAiC;IAAA,IAAAY,MAAA;IAAA,OAAA9B,iBAAA;MACzE,OAAO6B,mBAAmB,CAAC;QAAEX,QAAQ;QAAER,KAAK,EAAEoB,MAAI,CAACpB;MAAM,CAAC,CAAC;IAAC;EAC9D;;EAEA;AACF;AACA;AACA;EACQqB,oBAAoBA,CAAA,EAAkC;IAAA,IAAAC,MAAA;IAAA,OAAAhC,iBAAA;MAC1D,OAAO+B,oBAAoB,CAAC;QAAErB,KAAK,EAAEsB,MAAI,CAACtB;MAAM,CAAC,CAAC;IAAC;EACrD;;EAEA;AACF;AACA;AACA;AACA;EACQuB,mBAAmBA,CACvBf,QAAgB,EAChBgB,UAAgC,EACd;IAAA,IAAAC,OAAA;IAAA,OAAAnC,iBAAA;MAClB,OAAOiC,mBAAmB,CAAC;QAAEf,QAAQ;QAAEgB,UAAU;QAAExB,KAAK,EAAEyB,OAAI,CAACzB;MAAM,CAAC,CAAC;IAAC;EAC1E;;EAEA;AACF;AACA;AACA;EACQ0B,oBAAoBA,CACxBF,UAAgC,EACC;IAAA,IAAAG,OAAA;IAAA,OAAArC,iBAAA;MACjC,OAAOoC,oBAAoB,CAAC;QAAEF,UAAU;QAAExB,KAAK,EAAE2B,OAAI,CAAC3B;MAAM,CAAC,CAAC;IAAC;EACjE;AACF;AAAC4B,OAAA,CAAArD,OAAA,GAAAuB,QAAA;AAEM,IAAM+B,OAAO,GAAG;EACrBC,gBAAgB,EAAE,KAAK;EACvBC,eAAe,EAAE,IAAI;EACrBC,sBAAsB,EAAE,WAAW;EACnCC,2BAA2B,EAAE;AAC/B,CAAC;;AAED;AAAAL,OAAA,CAAAC,OAAA,GAAAA,OAAA;AACO,SAASK,yBAAyBA,CAAAC,IAAA,EAIhB;EAAA,IAJiB;IACxCnC;EAGF,CAAC,GAAAmC,IAAA;EACC,OAAO;IACLC,IAAI,EAAE,IAAAC,8BAAW,EAAC;MAAErC;IAAM,CAAC,CAAC;IAC5BsC,MAAM,EAAE,CAAC,CAAC;IACVC,IAAI,EAAE;MACJC,MAAM,EAAE,CAAC,CAAC;MACVC,MAAM,EAAE,CAAC,CAAC;MACVC,QAAQ,EAAE,CAAC;IACb;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AAHA,SAIsBzC,qBAAqBA,CAAA0C,EAAA;EAAA,OAAAC,sBAAA,CAAAjD,KAAA,OAAAD,SAAA;AAAA;AAS3C;AACA;AACA;AACA;AACA;AACA;AALA,SAAAkD,uBAAA;EAAAA,sBAAA,GAAAtD,iBAAA,CATO,WAAAuD,KAAA,EAI0B;IAAA,IAJW;MAC1C7C;IAGF,CAAC,GAAA6C,KAAA;IACC,IAAM;MAAEC;IAAO,CAAC,SAAS,IAAAC,sBAAY,EAAC;MAAE/C;IAAM,CAAC,CAAC;IAChD,OAAO8C,MAAM;EACf,CAAC;EAAA,OAAAF,sBAAA,CAAAjD,KAAA,OAAAD,SAAA;AAAA;AAAA,SAQqBS,0BAA0BA,CAAA6C,GAAA;EAAA,OAAAC,4BAAA,CAAAtD,KAAA,OAAAD,SAAA;AAAA;AAYhD;AACA;AACA;AACA;AACA;AAJA,SAAAuD,6BAAA;EAAAA,4BAAA,GAAA3D,iBAAA,CAZO,WAAA4D,KAAA,EAQJ;IAAA,IAR8C;MAC/C9C,QAAQ;MACRC,UAAU;MACVL;IAKF,CAAC,GAAAkD,KAAA;IACC,OAAO,IAAAC,oCAA2B,EAAC;MAAE/C,QAAQ;MAAEC,UAAU;MAAEL;IAAM,CAAC,CAAC;EACrE,CAAC;EAAA,OAAAiD,4BAAA,CAAAtD,KAAA,OAAAD,SAAA;AAAA;AAOM,SAASa,sBAAsBA,CAAA6C,KAAA,EAM3B;EAAA,IAN4B;IACrC5C,QAAQ;IACRR;EAIF,CAAC,GAAAoD,KAAA;EACC,OAAO,IAAAC,gCAAuB,EAAC;IAAE7C,QAAQ;IAAER;EAAM,CAAC,CAAC;AACrD;;AAEA;AACA;AACA;AACA;AACA;AAJA,SAKsBS,mBAAmBA,CAAA6C,GAAA;EAAA,OAAAC,qBAAA,CAAA5D,KAAA,OAAAD,SAAA;AAAA;AAUzC;AACA;AACA;AACA;AACA;AAJA,SAAA6D,sBAAA;EAAAA,qBAAA,GAAAjE,iBAAA,CAVO,WAAAkE,KAAA,EAMJ;IAAA,IANuC;MACxChD,QAAQ;MACRR;IAIF,CAAC,GAAAwD,KAAA;IACC,OAAO,IAAAC,6BAAoB,EAAC;MAAEjD,QAAQ;MAAER;IAAM,CAAC,CAAC;EAClD,CAAC;EAAA,OAAAuD,qBAAA,CAAA5D,KAAA,OAAAD,SAAA;AAAA;AAAA,SAOcgE,kBAAkBA,CAAAC,GAAA;EAAA,OAAAC,mBAAA,CAAAjE,KAAA,OAAAD,SAAA;AAAA;AAgDjC;AACA;AACA;AACA;AACA;AAJA,SAAAkE,oBAAA;EAAAA,mBAAA,GAAAtE,iBAAA,CAhDA,WAAAuE,KAAA,EAQG;IAAA,IAR+B;MAChCC,YAAY;MACZC,QAAQ;MACR/D;IAKF,CAAC,GAAA6D,KAAA;IACC,IAAMG,kBAAkB,GAAGC,eAAC,CAACC,GAAG,CAACJ,YAAY,EAAE,CAC7C,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,CACxB,CAAC;IACF,IAAIE,kBAAkB,IAAIA,kBAAkB,KAAK,SAAS,EAAE;MAC1D,IAAMG,UAAU,SAAS,IAAAC,oBAAS,EAAC;QAAEC,QAAQ,EAAEL,kBAAkB;QAAEhE;MAAM,CAAC,CAAC;MAC3EmE,UAAU,CAAC7B,MAAM,GAAG,IAAAgC,2CAAwB,EAACH,UAAU,CAAC7B,MAAM,CAAC;MAC/DyB,QAAQ,CAACzB,MAAM,CAAC0B,kBAAkB,CAAC,GAAGG,UAAU;IAClD;IACA,IAAMI,kBAAkB,GAAGN,eAAC,CAACC,GAAG,CAACJ,YAAY,EAAE,CAC7C,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,kBAAkB,CACnB,CAAC;IACF,IAAIS,kBAAkB,IAAIA,kBAAkB,KAAK,SAAS,EAAE;MAC1D,IAAMJ,WAAU,SAAS,IAAAC,oBAAS,EAAC;QAAEC,QAAQ,EAAEE,kBAAkB;QAAEvE;MAAM,CAAC,CAAC;MAC3EmE,WAAU,CAAC7B,MAAM,GAAG,IAAAgC,2CAAwB,EAACH,WAAU,CAAC7B,MAAM,CAAC;MAC/DyB,QAAQ,CAACzB,MAAM,CAACiC,kBAAkB,CAAC,GAAGJ,WAAU;IAClD;IACA,IAAMK,gBAAgB,SAAS/D,mBAAmB,CAAC;MACjDD,QAAQ,EAAEsD,YAAY,CAACtD,QAAQ;MAC/BR;IACF,CAAC,CAAC;IACF,IAAI,CAACwE,gBAAgB,EAAE;MACrB,MAAM,IAAIC,KAAK,mCAAAC,MAAA,CACqBnE,sBAAsB,CAAC;QACvDC,QAAQ,EAAEsD,YAAY,CAACtD,QAAQ;QAC/BR;MACF,CAAC,CAAC,CACJ,CAAC;IACH;IACA+D,QAAQ,CAACxB,IAAI,CAACG,QAAQ,CAACoB,YAAY,CAACa,GAAG,CAAC,GAAG,IAAAC,8CAA2B,EACpE,IAAAC,qBAAe,EAACL,gBAAgB,CAClC,CAAC;EACH,CAAC;EAAA,OAAAZ,mBAAA,CAAAjE,KAAA,OAAAD,SAAA;AAAA;AAAA,SAOqBiB,oBAAoBA,CAAAmE,GAAA;EAAA,OAAAC,qBAAA,CAAApF,KAAA,OAAAD,SAAA;AAAA;AAwB1C;AACA;AACA;AACA;AACA;AAJA,SAAAqF,sBAAA;EAAAA,qBAAA,GAAAzF,iBAAA,CAxBO,WAAA0F,KAAA,EAMwB;IAAA,IANY;MACzCxE,QAAQ;MACRR;IAIF,CAAC,GAAAgF,KAAA;IACC,IAAAC,qBAAY,oDAAAP,MAAA,CAAmDlE,QAAQ,MAAG,CAAC;IAC3E,IAAM0E,KAAK,SAAS,IAAAC,uBAAa,EAAC;MAChCC,MAAM,kBAAAV,MAAA,CAAkBlE,QAAQ,MAAG;MACnCR;IACF,CAAC,CAAC;IACF,QAAQkF,KAAK,CAACG,WAAW;MACvB,KAAK,CAAC;QACJ,MAAM,IAAIZ,KAAK,gCAAAC,MAAA,CAAgClE,QAAQ,YAAS,CAAC;MACnE,KAAK,CAAC;QAAE;UACN,IAAAyE,qBAAY,kDAAAP,MAAA,CAAiDlE,QAAQ,MAAG,CAAC;UACzE,OAAO0E,KAAK,CAACpC,MAAM,CAAC,CAAC,CAAC;QACxB;MACA;QACE,MAAM,IAAI2B,KAAK,uCAAAC,MAAA,CAAuClE,QAAQ,YAAS,CAAC;IAC5E;EACF,CAAC;EAAA,OAAAuE,qBAAA,CAAApF,KAAA,OAAAD,SAAA;AAAA;AAAA,SAOqBmB,gBAAgBA,CAAAyE,GAAA;EAAA,OAAAC,iBAAA,CAAA5F,KAAA,OAAAD,SAAA;AAAA;AAoBtC;AACA;AACA;AACA;AACA;AAJA,SAAA6F,kBAAA;EAAAA,iBAAA,GAAAjG,iBAAA,CApBO,WAAAkG,KAAA,EAM4B;IAAA,IANI;MACrChF,QAAQ;MACRR;IAIF,CAAC,GAAAwF,KAAA;IACC,IAAAP,qBAAY,gDAAAP,MAAA,CAA+ClE,QAAQ,MAAG,CAAC;IACvE,IAAMiF,IAAI,SAAS9E,oBAAoB,CAAC;MAAEH,QAAQ;MAAER;IAAM,CAAC,CAAC;IAC5D,IAAM;MAAEI;IAAS,CAAC,GAAGqF,IAAI;IACzB,IAAMC,EAAE,GAAGD,IAAI,CAACd,GAAG;IACnB,IAAMb,YAAY,SAAS3D,0BAA0B,CAAC;MACpDC,QAAQ;MACRC,UAAU,EAAEqF,EAAE;MACd1F;IACF,CAAC,CAAC;IACF,IAAAiF,qBAAY,8CAAAP,MAAA,CAA6ClE,QAAQ,MAAG,CAAC;IACrE,OAAOsD,YAAY;EACrB,CAAC;EAAA,OAAAyB,iBAAA,CAAA5F,KAAA,OAAAD,SAAA;AAAA;AAAA,SAOqBqB,mBAAmBA,CAAA4E,GAAA;EAAA,OAAAC,oBAAA,CAAAjG,KAAA,OAAAD,SAAA;AAAA;AAoBzC;AACA;AACA;AACA;AAHA,SAAAkG,qBAAA;EAAAA,oBAAA,GAAAtG,iBAAA,CApBO,WAAAuG,KAAA,EAM4B;IAAA,IANO;MACxCrF,QAAQ;MACRR;IAIF,CAAC,GAAA6F,KAAA;IACC,IAAAZ,qBAAY,mDAAAP,MAAA,CAAkDlE,QAAQ,MAAG,CAAC;IAC1E,IAAMiF,IAAI,SAAS9E,oBAAoB,CAAC;MAAEH,QAAQ;MAAER;IAAM,CAAC,CAAC;IAC5D,IAAM;MAAEI;IAAS,CAAC,GAAGqF,IAAI;IACzB,IAAMC,EAAE,GAAGD,IAAI,CAACd,GAAG;IACnB,IAAMb,YAAY,SAAS,IAAAgC,uCAA6B,EAAC;MACvD1F,QAAQ;MACRC,UAAU,EAAEqF,EAAE;MACd1F;IACF,CAAC,CAAC;IACF,IAAAiF,qBAAY,iDAAAP,MAAA,CAAgDlE,QAAQ,MAAG,CAAC;IACxE,OAAOsD,YAAY;EACrB,CAAC;EAAA,OAAA8B,oBAAA,CAAAjG,KAAA,OAAAD,SAAA;AAAA;AAAA,SAMqBuB,oBAAoBA,CAAA8E,GAAA;EAAA,OAAAC,qBAAA,CAAArG,KAAA,OAAAD,SAAA;AAAA;AAsB1C;AACA;AACA;AACA;AACA;AAJA,SAAAsG,sBAAA;EAAAA,qBAAA,GAAA1G,iBAAA,CAtBO,WAAA2G,MAAA,EAI8B;IAAA,IAJM;MACzCjG;IAGF,CAAC,GAAAiG,MAAA;IACC,IAAAhB,qBAAY,wCAAuC,CAAC;IACpD,IAAMiB,SAAkC,GAAG,EAAE;IAC7C,IAAMC,KAAK,SAASlG,qBAAqB,CAAC;MAAED;IAAM,CAAC,CAAC;IACpD,KAAK,IAAMyF,IAAI,IAAIU,KAAK,EAAE;MACxB,IAAMC,QAAQ,SAAS,IAAAN,uCAA6B,EAAC;QACnD1F,QAAQ,EAAEqF,IAAI,CAACrF,QAAQ;QACvBC,UAAU,EAAEoF,IAAI,CAACd,GAAG;QACpB3E;MACF,CAAC,CAAC;MACFkG,SAAS,CAACG,IAAI,CAACD,QAAQ,CAAC;IAC1B;IACA,IAAAnB,qBAAY,iDAAAP,MAAA,CACqCwB,SAAS,CAACI,MAAM,gBACjE,CAAC;IACD,OAAOJ,SAAS;EAClB,CAAC;EAAA,OAAAF,qBAAA,CAAArG,KAAA,OAAAD,SAAA;AAAA;AAAA,SAOqByB,mBAAmBA,CAAAoF,GAAA;EAAA,OAAAC,oBAAA,CAAA7G,KAAA,OAAAD,SAAA;AAAA;AA2BzC;AACA;AACA;AACA;AAHA,SAAA8G,qBAAA;EAAAA,oBAAA,GAAAlH,iBAAA,CA3BO,WAAAmH,MAAA,EAM2B;IAAA,IANQ;MACxCjG,QAAQ;MACRR;IAIF,CAAC,GAAAyG,MAAA;IACC,IAAAxB,qBAAY,mDAAAP,MAAA,CAAkDlE,QAAQ,MAAG,CAAC;IAC1E,IAAMkG,UAAU,GAAGxE,yBAAyB,CAAC;MAAElC;IAAM,CAAC,CAAC;IACvD,IAAMyF,IAAI,SAAS9E,oBAAoB,CAAC;MAAEH,QAAQ;MAAER;IAAM,CAAC,CAAC;IAC5D,IAAM;MAAEI;IAAS,CAAC,GAAGqF,IAAI;IACzB,IAAMC,EAAE,GAAGD,IAAI,CAACd,GAAG;IACnB,IAAMb,YAAY,SAAS3D,0BAA0B,CAAC;MACpDC,QAAQ;MACRC,UAAU,EAAEqF,EAAE;MACd1F;IACF,CAAC,CAAC;IACF0G,UAAU,CAACnE,IAAI,CAACkD,IAAI,CAACrF,QAAQ,CAAC,CAAC0D,YAAY,CAACa,GAAG,CAAC,GAAGb,YAAY;IAC/D,IAAI;MACF,MAAMJ,kBAAkB,CAAC;QAAEI,YAAY;QAAEC,QAAQ,EAAE2C,UAAU;QAAE1G;MAAM,CAAC,CAAC;IACzE,CAAC,CAAC,OAAOd,KAAK,EAAE;MACd,IAAAyH,qBAAY,EAACzH,KAAK,CAAC0H,OAAO,EAAE,OAAO,CAAC;IACtC;IACA,IAAA3B,qBAAY,iDAAAP,MAAA,CAAgDlE,QAAQ,MAAG,CAAC;IACxE,OAAOkG,UAAU;EACnB,CAAC;EAAA,OAAAF,oBAAA,CAAA7G,KAAA,OAAAD,SAAA;AAAA;AAAA,SAMqB2B,oBAAoBA,CAAAwF,IAAA;EAAA,OAAAC,qBAAA,CAAAnH,KAAA,OAAAD,SAAA;AAAA;AAuB1C;AACA;AACA;AACA;AACA;AAJA,SAAAoH,sBAAA;EAAAA,qBAAA,GAAAxH,iBAAA,CAvBO,WAAAyH,MAAA,EAI2B;IAAA,IAJS;MACzC/G;IAGF,CAAC,GAAA+G,MAAA;IACC,IAAMhD,QAAQ,GAAG7B,yBAAyB,CAAC;MAAElC;IAAM,CAAC,CAAC;IACrD,IAAMmG,KAAK,SAASlG,qBAAqB,CAAC;MAAED;IAAM,CAAC,CAAC;IACpD,KAAK,IAAMyF,IAAI,IAAIU,KAAK,EAAE;MACxB,IAAMrC,YAAY,SAAS3D,0BAA0B,CAAC;QACpDC,QAAQ,EAAEqF,IAAI,CAACrF,QAAQ;QACvBC,UAAU,EAAEoF,IAAI,CAACd,GAAG;QACpB3E;MACF,CAAC,CAAC;MACF,IAAI;QACF,MAAM0D,kBAAkB,CAAC;UAAEI,YAAY;UAAEC,QAAQ;UAAE/D;QAAM,CAAC,CAAC;MAC7D,CAAC,CAAC,OAAOd,KAAK,EAAE;QACd,IAAAyH,qBAAY,EAACzH,KAAK,EAAE,OAAO,CAAC;MAC9B;MACA6E,QAAQ,CAACxB,IAAI,CAACkD,IAAI,CAACrF,QAAQ,CAAC,CAAC0D,YAAY,CAACa,GAAG,CAAC,GAAGb,YAAY;IAC/D;IACA,OAAOC,QAAQ;EACjB,CAAC;EAAA,OAAA+C,qBAAA,CAAAnH,KAAA,OAAAD,SAAA;AAAA;AAAA,SAOcsH,kBAAkBA,CAAAC,IAAA;EAAA,OAAAC,mBAAA,CAAAvH,KAAA,OAAAD,SAAA;AAAA;AAyCjC;AACA;AACA;AACA;AACA;AACA;AALA,SAAAwH,oBAAA;EAAAA,mBAAA,GAAA5H,iBAAA,CAzCA,WAAA6H,MAAA,EAQG;IAAA,IAR+B;MAChCrD,YAAY;MACZC,QAAQ;MACR/D;IAKF,CAAC,GAAAmH,MAAA;IACC,IAAAlC,qBAAY,sCAAqC,CAAC;IAClD,IAAMjB,kBAAkB,GAAGC,eAAC,CAACC,GAAG,CAACJ,YAAY,EAAE,CAC7C,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,CACxB,CAAC;IACF,IAAIE,kBAAkB,IAAIA,kBAAkB,KAAK,SAAS,EAAE;MAC1D,IAAAiB,qBAAY,wDAAAP,MAAA,CAC4CV,kBAAkB,CAC1E,CAAC;MACD,IAAMG,UAAU,GAAGF,eAAC,CAACC,GAAG,CAACH,QAAQ,EAAE,CAAC,QAAQ,EAAEC,kBAAkB,CAAC,CAAC;MAClEG,UAAU,CAAC7B,MAAM,GAAG,IAAA8E,2CAAwB,EAACjD,UAAU,CAAC7B,MAAkB,CAAC;MAC3E,MAAM,IAAA+E,oBAAS,EAAC;QAAEhD,QAAQ,EAAEL,kBAAkB;QAAEG,UAAU;QAAEnE;MAAM,CAAC,CAAC;IACtE;IACA,IAAMuE,kBAAkB,GAAGN,eAAC,CAACC,GAAG,CAACJ,YAAY,EAAE,CAC7C,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,kBAAkB,CACnB,CAAC;IACF,IAAIS,kBAAkB,IAAIA,kBAAkB,KAAK,SAAS,EAAE;MAC1D,IAAAU,qBAAY,mDAAAP,MAAA,CACuCH,kBAAkB,CACrE,CAAC;MACD,IAAMJ,YAAU,GAAGF,eAAC,CAACC,GAAG,CAACH,QAAQ,EAAE,CAAC,QAAQ,EAAEQ,kBAAkB,CAAC,CAAC;MAClEJ,YAAU,CAAC7B,MAAM,GAAG,IAAA8E,2CAAwB,EAACjD,YAAU,CAAC7B,MAAkB,CAAC;MAC3E,MAAM,IAAA+E,oBAAS,EAAC;QAAEhD,QAAQ,EAAEE,kBAAkB;QAAEJ,UAAU,EAAVA,YAAU;QAAEnE;MAAM,CAAC,CAAC;IACtE;IACA,IAAAiF,qBAAY,oCAAmC,CAAC;EAClD,CAAC;EAAA,OAAAiC,mBAAA,CAAAvH,KAAA,OAAAD,SAAA;AAAA;AAQD,SAAS4H,WAAWA,CAClBjH,UAAkB,EAClBkH,IAA0B,EACJ;EACtB,IAAIA,IAAI,CAAChF,IAAI,CAACC,MAAM,CAACnC,UAAU,CAAC,EAAE;IAChC,OAAOmH,8BAAoB,CAACC,MAAM;EACpC;EACA,IAAIF,IAAI,CAAChF,IAAI,CAACE,MAAM,CAACpC,UAAU,CAAC,EAAE;IAChC,OAAOmH,8BAAoB,CAACE,MAAM;EACpC;EACA,OAAO7H,SAAS;AAClB;;AAEA;AACA;AACA;AACA;AACA;AAJA,SAKsB0B,mBAAmBA,CAAAoG,IAAA;EAAA,OAAAC,oBAAA,CAAAjI,KAAA,OAAAD,SAAA;AAAA;AAoCzC;AACA;AACA;AACA;AAHA,SAAAkI,qBAAA;EAAAA,oBAAA,GAAAtI,iBAAA,CApCO,WAAAuI,MAAA,EAQc;IAAA,IARqB;MACxCrH,QAAQ;MACRgB,UAAU;MACVxB;IAKF,CAAC,GAAA6H,MAAA;IACC,IAAA5C,qBAAY,uCAAsC,CAAC;IACnD,IAAM5E,UAAU,GAAG,IAAAyH,YAAM,EAACtH,QAAQ,EAAE,KAAK,CAAC;IAC1C,IAAMJ,QAAQ,GAAGkH,WAAW,CAACjH,UAAU,EAAEmB,UAAU,CAAC;IACpD,IAAAyD,qBAAY,4CAAAP,MAAA,CACgClE,QAAQ,mBAAAkE,MAAA,CAAgBrE,UAAU,iBAAAqE,MAAA,CAActE,QAAQ,CACpG,CAAC;IACD,IAAIA,QAAQ,EAAE;MACZ,IAAM0D,YAAY,GAAGtC,UAAU,CAACe,IAAI,CAACnC,QAAQ,CAAC,CAACC,UAAU,CAAC;MAC1D,MAAM2G,kBAAkB,CAAC;QAAElD,YAAY;QAAEC,QAAQ,EAAEvC,UAAU;QAAExB;MAAM,CAAC,CAAC;MACvE,IAAI+H,QAAQ,GAAG,IAAI;MACnB,IAAI3H,QAAQ,KAAKoH,8BAAoB,CAACE,MAAM,EAAE;QAC5CK,QAAQ,GAAG,IAAAC,8CAA2B,EACpCxG,UAAU,CAACe,IAAI,CAACG,QAAQ,CAACrC,UAAU,CACrC,CAAC;MACH;MACA,IAAI;QACF,MAAM,IAAA4H,wBAAc,EAAC;UAAE7H,QAAQ;UAAE0D,YAAY;UAAEiE,QAAQ;UAAE/H;QAAM,CAAC,CAAC;MACnE,CAAC,CAAC,OAAOd,KAAK,EAAE;QACd,MAAM,IAAAgJ,wBAAc,EAAC;UAAE9H,QAAQ;UAAE0D,YAAY;UAAE9D;QAAM,CAAC,CAAC;MACzD;IACF,CAAC,MAAM;MACL,MAAM,IAAIyE,KAAK,aAAAC,MAAA,CAAalE,QAAQ,+BAA4B,CAAC;IACnE;IACA,IAAAyE,qBAAY,qCAAoC,CAAC;IACjD,OAAO,IAAI;EACb,CAAC;EAAA,OAAA2C,oBAAA,CAAAjI,KAAA,OAAAD,SAAA;AAAA;AAAA,SAMqBgC,oBAAoBA,CAAAyG,IAAA;EAAA,OAAAC,qBAAA,CAAAzI,KAAA,OAAAD,SAAA;AAAA;AAAA,SAAA0I,sBAAA;EAAAA,qBAAA,GAAA9I,iBAAA,CAAnC,WAAA+I,MAAA,EAM6B;IAAA,IANO;MACzC7G,UAAU;MACVxB;IAIF,CAAC,GAAAqI,MAAA;IACC,IAAApD,qBAAY,wCAAuC,CAAC;IACpD,IAAMqD,QAAgC,GAAG;MACvCC,KAAK,EAAE,CAAC;MACRC,SAAS,EAAE,CAAC;MACZC,QAAQ,EAAE,CAAC;MACXC,QAAQ,EAAE;IACZ,CAAC;IACD,IAAI;MACF;MACA,IAAMC,SAAS,GAAGC,MAAM,CAACC,IAAI,CAACrH,UAAU,CAACe,IAAI,CAACC,MAAM,CAAC;MACrD,IAAMsG,SAAS,GAAGF,MAAM,CAACC,IAAI,CAACrH,UAAU,CAACe,IAAI,CAACE,MAAM,CAAC;MACrD,IAAMsG,WAAW,GAAGJ,SAAS,CAACjE,MAAM,CAACoE,SAAS,CAAC;MAC/CR,QAAQ,CAACC,KAAK,GAAGQ,WAAW,CAACzC,MAAM;MACnC,KAAK,IAAMjG,UAAU,IAAI0I,WAAW,EAAE;QACpC,IAAA9D,qBAAY,6CAAAP,MAAA,CACiC,IAAAsE,qBAAe,EAAC3I,UAAU,CAAC,CACxE,CAAC;QACD,IAAMD,QAAQ,GAAGuI,SAAS,CAACM,QAAQ,CAAC5I,UAAU,CAAC,GAC3CmH,8BAAoB,CAACC,MAAM,GAC3BD,8BAAoB,CAACE,MAAM;QAC/B,IAAMlH,QAAQ,GAAG,IAAA0I,YAAM,EAAC7I,UAAU,CAAC;QACnC,IAAMyD,YAAY,GAAGtC,UAAU,CAACe,IAAI,CAACnC,QAAQ,CAAC,CAACC,UAAU,CAAC;QAC1D,IAAI;UACF,MAAM2G,kBAAkB,CAAC;YAAElD,YAAY;YAAEC,QAAQ,EAAEvC,UAAU;YAAExB;UAAM,CAAC,CAAC;QACzE,CAAC,CAAC,OAAOmJ,qBAAqB,EAAE;UAC9Bb,QAAQ,CAACG,QAAQ,IAAI,CAAC;UACtB,IAAA9B,qBAAY,0CAAAjC,MAAA,CAC8BlE,QAAQ,GAChD,MACF,CAAC;UACD,IAAAmG,qBAAY,EAACwC,qBAAqB,CAACC,QAAQ,CAAC7B,IAAI,EAAE,OAAO,CAAC;QAC5D;QACA,IAAIQ,QAAQ,GAAG,IAAI;QACnB,IAAI3H,QAAQ,KAAKoH,8BAAoB,CAACE,MAAM,EAAE;UAC5CK,QAAQ,GAAG,IAAAC,8CAA2B,EACpCxG,UAAU,CAACe,IAAI,CAACG,QAAQ,CAACrC,UAAU,CACrC,CAAC;QACH;QACA,IAAI;UACF,MAAM,IAAA4H,wBAAc,EAAC;YAAE7H,QAAQ;YAAE0D,YAAY;YAAEiE,QAAQ;YAAE/H;UAAM,CAAC,CAAC;UACjEsI,QAAQ,CAACE,SAAS,IAAI,CAAC;QACzB,CAAC,CAAC,OAAOa,iBAAiB,EAAE;UAC1B,IAAI;YACF,MAAM,IAAAnB,wBAAc,EAAC;cAAE9H,QAAQ;cAAE0D,YAAY;cAAE9D;YAAM,CAAC,CAAC;YACvDsI,QAAQ,CAACE,SAAS,IAAI,CAAC;UACzB,CAAC,CAAC,OAAOc,mBAAmB,EAAE;YAAA,IAAAC,qBAAA;YAC5BjB,QAAQ,CAACI,QAAQ,IAAI,CAAC;YACtB,IAAA/B,qBAAY,gCAAAjC,MAAA,CACoBlE,QAAQ,QAAAkE,MAAA,CAAK4E,mBAAmB,CAAC1C,OAAO,GACtE,OACF,CAAC;YACD,IAAAD,qBAAY,GAAA4C,qBAAA,GAACD,mBAAmB,CAACF,QAAQ,cAAAG,qBAAA,uBAA5BA,qBAAA,CAA8BhC,IAAI,EAAE,OAAO,CAAC;UAC3D;QACF;MACF;MACAe,QAAQ,CAAC1B,OAAO,MAAAlC,MAAA,CAAM4D,QAAQ,CAACE,SAAS,OAAA9D,MAAA,CAAI4D,QAAQ,CAACC,KAAK,yBAAsB;IAClF,CAAC,CAAC,OAAOrJ,KAAK,EAAE;MACdoJ,QAAQ,CAACI,QAAQ,IAAI,CAAC;MACtB,IAAA/B,qBAAY,iCAAAjC,MAAA,CAAgCxF,KAAK,CAAC0H,OAAO,GAAI,OAAO,CAAC;IACvE;IACA,IAAA3B,qBAAY,sCAAqC,CAAC;IAClD,OAAOqD,QAAQ;EACjB,CAAC;EAAA,OAAAF,qBAAA,CAAAzI,KAAA,OAAAD,SAAA;AAAA"}
1
+ {"version":3,"file":"Saml2Ops.js","names":["_lodash","_interopRequireDefault","require","_Saml2Api","_ScriptApi","_Base","_ScriptOps","_Console","_ExportImportUtils","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","Saml2Ops","constructor","state","getSaml2ProviderStubs","_this","getProviderByLocationAndId","location","entityId64","_this2","getProviderMetadataUrl","entityId","getProviderMetadata","_this3","getSaml2ProviderStub","_this4","getSaml2Provider","_this5","deleteSaml2Provider","_this6","deleteSaml2Providers","_this7","exportSaml2Provider","_this8","exportSaml2Providers","_this9","importSaml2Provider","importData","_this10","importSaml2Providers","_this11","exports","createSaml2ExportTemplate","_ref","meta","getMetadata","script","saml","hosted","remote","metadata","_x","_getSaml2ProviderStubs","_ref2","result","getProviders","_x2","_getProviderByLocationAndId2","_ref3","_getProviderByLocationAndId","_ref4","_getProviderMetadataUrl","_x3","_getProviderMetadata2","_ref5","_getProviderMetadata","exportDependencies","_x4","_exportDependencies","_ref6","providerData","fileData","attrMapperScriptId","_","get","scriptData","getScript","scriptId","convertBase64TextToArray","idpAdapterScriptId","metaDataResponse","Error","concat","_id","convertBase64UrlTextToArray","encodeBase64Url","_x5","_getSaml2ProviderStub","_ref7","debugMessage","message","found","findProviders","filter","resultCount","_x6","_getSaml2Provider","_ref8","stub","id","_x7","_deleteSaml2Provider","_ref9","deleteProviderByLocationAndId","_x8","_deleteSaml2Providers","_ref10","providers","stubs","provider","push","length","_x9","_exportSaml2Provider","_ref11","exportData","printMessage","type","_x10","_exportSaml2Providers","_ref12","importDependencies","_x11","_importDependencies","_ref13","convertTextArrayToBase64","putScript","getLocation","data","_x12","_importSaml2Provider","_ref14","encode","metaData","convertTextArrayToBase64Url","createProvider","updateProvider","_x13","_importSaml2Providers","_ref15","myStatus","total","successes","warnings","failures","hostedIds","Object","keys","remoteIds","providerIds","decodeBase64Url","includes","decode","importDependenciesErr","response","createProviderErr","updateProviderError","_updateProviderError$"],"sources":["ops/Saml2Ops.ts"],"sourcesContent":["import _ from 'lodash';\nimport {\n Saml2ProiderLocation,\n Saml2ProviderSkeleton,\n Saml2ProviderStub,\n} from '../api/ApiTypes';\nimport {\n createProvider,\n updateProvider,\n findProviders,\n getProviderByLocationAndId as _getProviderByLocationAndId,\n getProviderMetadata as _getProviderMetadata,\n getProviderMetadataUrl as _getProviderMetadataUrl,\n getProviders,\n deleteProviderByLocationAndId,\n} from '../api/Saml2Api';\nimport { getScript } from '../api/ScriptApi';\nimport {\n decode,\n decodeBase64Url,\n encode,\n encodeBase64Url,\n} from '../api/utils/Base64';\nimport { MultiOpStatusInterface, Saml2ExportInterface } from './OpsTypes';\nimport { putScript } from './ScriptOps';\nimport { debugMessage, printMessage } from './utils/Console';\nimport {\n convertBase64TextToArray,\n convertBase64UrlTextToArray,\n convertTextArrayToBase64,\n convertTextArrayToBase64Url,\n getMetadata,\n} from './utils/ExportImportUtils';\nimport State from '../shared/State';\n\nexport default class Saml2Ops {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n /**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\n async getSaml2ProviderStubs(): Promise<Saml2ProviderStub[]> {\n return getSaml2ProviderStubs({ state: this.state });\n }\n\n /**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded-without-padding provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\n async getProviderByLocationAndId(location: string, entityId64: string) {\n return getProviderByLocationAndId({\n location,\n entityId64,\n state: this.state,\n });\n }\n\n /**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\n getProviderMetadataUrl(entityId: string): string {\n return getProviderMetadataUrl({ entityId, state: this.state });\n }\n\n /**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {Promise<object>} a promise that resolves to an object containing a SAML2 metadata\n */\n async getProviderMetadata(entityId: string) {\n return getProviderMetadata({ entityId, state: this.state });\n }\n\n /**\n *\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\n async getSaml2ProviderStub(entityId: string): Promise<Saml2ProviderStub> {\n return getSaml2ProviderStub({ entityId, state: this.state });\n }\n\n /**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\n async getSaml2Provider(entityId: string): Promise<Saml2ProviderSkeleton> {\n return getSaml2Provider({ entityId, state: this.state });\n }\n\n /**\n * Delete an entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\n async deleteSaml2Provider(entityId: string): Promise<Saml2ProviderSkeleton> {\n return deleteSaml2Provider({ entityId, state: this.state });\n }\n\n /**\n * Delete all entity providers.\n * @returns {Promise<Saml2ProviderSkeleton[]>} Promise resolving to an array of Saml2ProviderSkeleton objects.\n */\n async deleteSaml2Providers(): Promise<Saml2ProviderSkeleton[]> {\n return deleteSaml2Providers({ state: this.state });\n }\n\n /**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\n async exportSaml2Provider(entityId: string): Promise<Saml2ExportInterface> {\n return exportSaml2Provider({ entityId, state: this.state });\n }\n\n /**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\n async exportSaml2Providers(): Promise<Saml2ExportInterface> {\n return exportSaml2Providers({ state: this.state });\n }\n\n /**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\n async importSaml2Provider(\n entityId: string,\n importData: Saml2ExportInterface\n ): Promise<boolean> {\n return importSaml2Provider({ entityId, importData, state: this.state });\n }\n\n /**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\n async importSaml2Providers(\n importData: Saml2ExportInterface\n ): Promise<MultiOpStatusInterface> {\n return importSaml2Providers({ importData, state: this.state });\n }\n}\n\n// use a function vs a template variable to avoid problems in loops\nexport function createSaml2ExportTemplate({\n state,\n}: {\n state: State;\n}): Saml2ExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n saml: {\n hosted: {},\n remote: {},\n metadata: {},\n },\n } as Saml2ExportInterface;\n}\n\n/**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\nexport async function getSaml2ProviderStubs({\n state,\n}: {\n state: State;\n}): Promise<Saml2ProviderStub[]> {\n const { result } = await getProviders({ state });\n return result;\n}\n\n/**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded-without-padding provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\nexport async function getProviderByLocationAndId({\n location,\n entityId64,\n state,\n}: {\n location: string;\n entityId64: string;\n state: State;\n}) {\n return _getProviderByLocationAndId({ location, entityId64, state });\n}\n\n/**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\nexport function getProviderMetadataUrl({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): string {\n return _getProviderMetadataUrl({ entityId, state });\n}\n\n/**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {Promise<object>} a promise that resolves to an object containing a SAML2 metadata\n */\nexport async function getProviderMetadata({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}) {\n return _getProviderMetadata({ entityId, state });\n}\n\n/**\n * Include dependencies in the export file\n * @param {object} providerData Object representing a SAML entity provider\n * @param {object} fileData File data object to add dependencies to\n */\nasync function exportDependencies({\n providerData,\n fileData,\n state,\n}: {\n providerData: Saml2ProviderSkeleton;\n fileData: Saml2ExportInterface;\n state: State;\n}) {\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n const scriptData = await getScript({ scriptId: attrMapperScriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[attrMapperScriptId] = scriptData;\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n const scriptData = await getScript({ scriptId: idpAdapterScriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[idpAdapterScriptId] = scriptData;\n }\n const metaDataResponse = await getProviderMetadata({\n entityId: providerData.entityId,\n state,\n });\n if (!metaDataResponse) {\n throw new Error(\n `Unable to obtain metadata from ${getProviderMetadataUrl({\n entityId: providerData.entityId,\n state,\n })}`\n );\n }\n fileData.saml.metadata[providerData._id] = convertBase64UrlTextToArray(\n encodeBase64Url(metaDataResponse)\n );\n}\n\n/**\n *\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2ProviderStub({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderStub> {\n debugMessage({\n message: `Saml2Ops.getSaml2ProviderStub: start [entityId=${entityId}]`,\n state,\n });\n const found = await findProviders({\n filter: `entityId eq '${entityId}'`,\n state,\n });\n switch (found.resultCount) {\n case 0:\n throw new Error(`No provider with entity id '${entityId}' found`);\n case 1: {\n debugMessage({\n message: `Saml2Ops.getSaml2ProviderStub: end [entityId=${entityId}]`,\n state,\n });\n return found.result[0];\n }\n default:\n throw new Error(`Multiple providers with entity id '${entityId}' found`);\n }\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderSkeleton> {\n debugMessage({\n message: `Saml2Ops.getSaml2Provider: start [entityId=${entityId}]`,\n state,\n });\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n debugMessage({\n message: `Saml2Ops.getSaml2Provider: end [entityId=${entityId}]`,\n state,\n });\n return providerData;\n}\n\n/**\n * Delete an entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function deleteSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderSkeleton> {\n debugMessage({\n message: `Saml2Ops.deleteSaml2Provider: start [entityId=${entityId}]`,\n state,\n });\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await deleteProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n debugMessage({\n message: `Saml2Ops.deleteSaml2Provider: end [entityId=${entityId}]`,\n state,\n });\n return providerData;\n}\n\n/**\n * Delete all entity providers.\n * @returns {Promise<Saml2ProviderSkeleton[]>} Promise resolving to an array of Saml2ProviderSkeleton objects.\n */\nexport async function deleteSaml2Providers({\n state,\n}: {\n state: State;\n}): Promise<Saml2ProviderSkeleton[]> {\n debugMessage({ message: `Saml2Ops.deleteSaml2Providers: start`, state });\n const providers: Saml2ProviderSkeleton[] = [];\n const stubs = await getSaml2ProviderStubs({ state });\n for (const stub of stubs) {\n const provider = await deleteProviderByLocationAndId({\n location: stub.location,\n entityId64: stub._id,\n state,\n });\n providers.push(provider);\n }\n debugMessage({\n message: `Saml2Ops.deleteSaml2Providers: end [deleted ${providers.length} providers]`,\n state,\n });\n return providers;\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ExportInterface> {\n debugMessage({\n message: `Saml2Ops.exportSaml2Provider: start [entityId=${entityId}]`,\n state,\n });\n const exportData = createSaml2ExportTemplate({ state });\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n exportData.saml[stub.location][providerData._id] = providerData;\n try {\n await exportDependencies({ providerData, fileData: exportData, state });\n } catch (error) {\n printMessage({ message: error.message, type: 'error', state });\n }\n debugMessage({\n message: `Saml2Ops.exportSaml2Provider: end [entityId=${entityId}]`,\n state,\n });\n return exportData;\n}\n\n/**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Providers({\n state,\n}: {\n state: State;\n}): Promise<Saml2ExportInterface> {\n const fileData = createSaml2ExportTemplate({ state });\n const stubs = await getSaml2ProviderStubs({ state });\n for (const stub of stubs) {\n const providerData = await getProviderByLocationAndId({\n location: stub.location,\n entityId64: stub._id,\n state,\n });\n try {\n await exportDependencies({ providerData, fileData, state });\n } catch (error) {\n printMessage({ message: error, type: 'error', state });\n }\n fileData.saml[stub.location][providerData._id] = providerData;\n }\n return fileData;\n}\n\n/**\n * Include dependencies from the import file\n * @param {object} providerData Object representing a SAML entity provider\n * @param {object} fileData File data object to read dependencies from\n */\nasync function importDependencies({\n providerData,\n fileData,\n state,\n}: {\n providerData: Saml2ProviderSkeleton;\n fileData: Saml2ExportInterface;\n state: State;\n}) {\n debugMessage({ message: `Saml2Ops.importDependencies: start`, state });\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n debugMessage({\n message: `Saml2Ops.importDependencies: attributeMapperScript=${attrMapperScriptId}`,\n state,\n });\n const scriptData = _.get(fileData, ['script', attrMapperScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script as string[]);\n await putScript({ scriptId: attrMapperScriptId, scriptData, state });\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n debugMessage({\n message: `Saml2Ops.importDependencies: idpAdapterScript=${idpAdapterScriptId}`,\n state,\n });\n const scriptData = _.get(fileData, ['script', idpAdapterScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script as string[]);\n await putScript({ scriptId: idpAdapterScriptId, scriptData, state });\n }\n debugMessage({ message: `Saml2Ops.importDependencies: end`, state });\n}\n\n/**\n * Find provider in import file and return its location\n * @param {string} entityId64 Base64-encoded provider entity id\n * @param {Saml2ExportInterface} data Import file json data\n * @returns {string} 'hosted' or 'remote' if found, undefined otherwise\n */\nfunction getLocation(\n entityId64: string,\n data: Saml2ExportInterface\n): Saml2ProiderLocation {\n if (data.saml.hosted[entityId64]) {\n return 'hosted';\n }\n if (data.saml.remote[entityId64]) {\n return 'remote';\n }\n return undefined;\n}\n\n/**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Provider({\n entityId,\n importData,\n state,\n}: {\n entityId: string;\n importData: Saml2ExportInterface;\n state: State;\n}): Promise<boolean> {\n debugMessage({ message: `Saml2Ops.importSaml2Provider: start`, state });\n const entityId64 = encode(entityId, false);\n const location = getLocation(entityId64, importData);\n debugMessage({\n message: `Saml2Ops.importSaml2Provider: entityId=${entityId}, entityId64=${entityId64}, location=${location}`,\n state,\n });\n if (location) {\n const providerData = importData.saml[location][entityId64];\n await importDependencies({ providerData, fileData: importData, state });\n let metaData = null;\n if (location === 'remote') {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n try {\n await createProvider({ location, providerData, metaData, state });\n } catch (error) {\n await updateProvider({ location, providerData, state });\n }\n } else {\n throw new Error(`Provider ${entityId} not found in import data!`);\n }\n debugMessage({ message: `Saml2Ops.importSaml2Provider: end`, state });\n return true;\n}\n\n/**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Providers({\n importData,\n state,\n}: {\n importData: Saml2ExportInterface;\n state: State;\n}): Promise<MultiOpStatusInterface> {\n debugMessage({ message: `Saml2Ops.importSaml2Providers: start`, state });\n const myStatus: MultiOpStatusInterface = {\n total: 0,\n successes: 0,\n warnings: 0,\n failures: 0,\n };\n try {\n // find providers in hosted and in remote and map locations\n const hostedIds = Object.keys(importData.saml.hosted);\n const remoteIds = Object.keys(importData.saml.remote);\n const providerIds = hostedIds.concat(remoteIds);\n myStatus.total = providerIds.length;\n for (const entityId64 of providerIds) {\n debugMessage({\n message: `Saml2Ops.importSaml2Providers: entityId=${decodeBase64Url(\n entityId64\n )}`,\n state,\n });\n const location: Saml2ProiderLocation = hostedIds.includes(entityId64)\n ? 'hosted'\n : 'remote';\n const entityId = decode(entityId64);\n const providerData = importData.saml[location][entityId64];\n try {\n await importDependencies({ providerData, fileData: importData, state });\n } catch (importDependenciesErr) {\n myStatus.warnings += 1;\n printMessage({\n message: `\\nWarning importing dependencies for ${entityId}`,\n state,\n type: 'warn',\n });\n printMessage({\n message: importDependenciesErr.response.data,\n type: 'error',\n state,\n });\n }\n let metaData = null;\n if (location === 'remote') {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n try {\n await createProvider({ location, providerData, metaData, state });\n myStatus.successes += 1;\n } catch (createProviderErr) {\n try {\n await updateProvider({ location, providerData, state });\n myStatus.successes += 1;\n } catch (updateProviderError) {\n myStatus.failures += 1;\n printMessage({\n message: `\\nError importing provider ${entityId}: ${updateProviderError.message}`,\n state,\n type: 'error',\n });\n printMessage({\n message: updateProviderError.response?.data,\n type: 'error',\n state,\n });\n }\n }\n }\n myStatus.message = `${myStatus.successes}/${myStatus.total} providers imported.`;\n } catch (error) {\n myStatus.failures += 1;\n printMessage({\n message: `\\nError importing providers ${error.message}`,\n type: 'error',\n state,\n });\n }\n debugMessage({ message: `Saml2Ops.importSaml2Providers: end`, state });\n return myStatus;\n}\n"],"mappings":"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"}