@rockcarver/frodo-lib 0.12.2-9 → 0.12.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.
- package/CHANGELOG.md +29 -1
- package/cjs/index.js +3 -3
- package/cjs/index.js.map +1 -1
- package/cjs/ops/AdminOps.js +63 -34
- package/cjs/ops/AdminOps.js.map +1 -1
- package/cjs/ops/IdmOps.test.js.map +1 -0
- package/cjs/ops/IdpOps.js +75 -74
- package/cjs/ops/IdpOps.js.map +1 -1
- package/cjs/ops/IdpOps.test.js.map +1 -0
- package/cjs/ops/JourneyOps.js +5 -2
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/{SamlOps.js → Saml2Ops.js} +61 -61
- package/cjs/ops/Saml2Ops.js.map +1 -0
- package/cjs/ops/Saml2Ops.test.js.map +1 -0
- package/cjs/test/mocks/ForgeRockApiMockEngine.js +9 -0
- package/cjs/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
- package/cjs/test/mocks/IdmConfigApi/getAllConfigEntities/entities.json +490 -0
- package/esm/index.mjs +1 -1
- package/esm/ops/AdminOps.mjs +32 -29
- package/esm/ops/IdmOps.test.mjs +43 -0
- package/esm/ops/IdpOps.mjs +30 -29
- package/esm/ops/IdpOps.test.mjs +63 -0
- package/esm/ops/JourneyOps.mjs +5 -2
- package/esm/ops/{SamlOps.mjs → Saml2Ops.mjs} +11 -11
- package/esm/ops/Saml2Ops.test.mjs +89 -0
- package/esm/test/mocks/ForgeRockApiMockEngine.mjs +7 -0
- package/esm/test/mocks/IdmConfigApi/getAllConfigEntities/entities.json +490 -0
- package/package.json +2 -2
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/ops/AdminOps.d.ts +1 -0
- package/types/ops/AdminOps.d.ts.map +1 -1
- package/types/ops/IdpOps.d.ts +12 -12
- package/types/ops/IdpOps.d.ts.map +1 -1
- package/types/ops/JourneyOps.d.ts.map +1 -1
- package/types/ops/{SamlOps.d.ts → Saml2Ops.d.ts} +10 -10
- package/types/ops/Saml2Ops.d.ts.map +1 -0
- package/types/test/mocks/ForgeRockApiMockEngine.d.ts +1 -0
- package/types/test/mocks/ForgeRockApiMockEngine.d.ts.map +1 -1
- package/cjs/ops/SamlOps.js.map +0 -1
- package/types/ops/SamlOps.d.ts.map +0 -1
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.
|
|
12
|
-
exports.
|
|
13
|
-
exports.
|
|
14
|
-
exports.
|
|
15
|
-
exports.
|
|
6
|
+
exports.describeSaml2Provider = describeSaml2Provider;
|
|
7
|
+
exports.exportSaml2Metadata = exportSaml2Metadata;
|
|
8
|
+
exports.exportSaml2ProviderToFile = exportSaml2ProviderToFile;
|
|
9
|
+
exports.exportSaml2ProvidersToFile = exportSaml2ProvidersToFile;
|
|
10
|
+
exports.exportSaml2ProvidersToFiles = exportSaml2ProvidersToFiles;
|
|
11
|
+
exports.importFirstSaml2ProviderFromFile = importFirstSaml2ProviderFromFile;
|
|
12
|
+
exports.importSaml2ProviderFromFile = importSaml2ProviderFromFile;
|
|
13
|
+
exports.importSaml2ProvidersFromFile = importSaml2ProvidersFromFile;
|
|
14
|
+
exports.importSaml2ProvidersFromFiles = importSaml2ProvidersFromFiles;
|
|
15
|
+
exports.listSaml2Providers = listSaml2Providers;
|
|
16
16
|
|
|
17
17
|
var _fs = _interopRequireDefault(require("fs"));
|
|
18
18
|
|
|
@@ -60,8 +60,8 @@ function getFileDataTemplate() {
|
|
|
60
60
|
*/
|
|
61
61
|
|
|
62
62
|
|
|
63
|
-
function
|
|
64
|
-
return
|
|
63
|
+
function listSaml2Providers() {
|
|
64
|
+
return _listSaml2Providers.apply(this, arguments);
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
67
|
* Include dependencies in the export file
|
|
@@ -70,8 +70,8 @@ function listProviders() {
|
|
|
70
70
|
*/
|
|
71
71
|
|
|
72
72
|
|
|
73
|
-
function
|
|
74
|
-
|
|
73
|
+
function _listSaml2Providers() {
|
|
74
|
+
_listSaml2Providers = _asyncToGenerator(function* () {
|
|
75
75
|
var long = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
76
76
|
var providerList = (yield (0, _Saml2Api.getProviders)()).result;
|
|
77
77
|
providerList.sort((a, b) => a._id.localeCompare(b._id));
|
|
@@ -90,7 +90,7 @@ function _listProviders() {
|
|
|
90
90
|
(0, _Console.printMessage)(table.toString());
|
|
91
91
|
}
|
|
92
92
|
});
|
|
93
|
-
return
|
|
93
|
+
return _listSaml2Providers.apply(this, arguments);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
function exportDependencies(_x, _x2) {
|
|
@@ -131,8 +131,8 @@ function _exportDependencies() {
|
|
|
131
131
|
return _exportDependencies.apply(this, arguments);
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
-
function
|
|
135
|
-
return
|
|
134
|
+
function exportSaml2ProviderToFile(_x3) {
|
|
135
|
+
return _exportSaml2ProviderToFile.apply(this, arguments);
|
|
136
136
|
}
|
|
137
137
|
/**
|
|
138
138
|
* Export provider metadata to file
|
|
@@ -141,8 +141,8 @@ function exportProvider(_x3) {
|
|
|
141
141
|
*/
|
|
142
142
|
|
|
143
143
|
|
|
144
|
-
function
|
|
145
|
-
|
|
144
|
+
function _exportSaml2ProviderToFile() {
|
|
145
|
+
_exportSaml2ProviderToFile = _asyncToGenerator(function* (entityId) {
|
|
146
146
|
var file = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
147
147
|
var fileName = file;
|
|
148
148
|
|
|
@@ -191,11 +191,11 @@ function _exportProvider() {
|
|
|
191
191
|
(0, _Console.printMessage)(error.message, 'error');
|
|
192
192
|
}
|
|
193
193
|
});
|
|
194
|
-
return
|
|
194
|
+
return _exportSaml2ProviderToFile.apply(this, arguments);
|
|
195
195
|
}
|
|
196
196
|
|
|
197
|
-
function
|
|
198
|
-
return
|
|
197
|
+
function exportSaml2Metadata(_x4) {
|
|
198
|
+
return _exportSaml2Metadata.apply(this, arguments);
|
|
199
199
|
}
|
|
200
200
|
/**
|
|
201
201
|
* Describe an entity provider's configuration
|
|
@@ -203,8 +203,8 @@ function exportMetadata(_x4) {
|
|
|
203
203
|
*/
|
|
204
204
|
|
|
205
205
|
|
|
206
|
-
function
|
|
207
|
-
|
|
206
|
+
function _exportSaml2Metadata() {
|
|
207
|
+
_exportSaml2Metadata = _asyncToGenerator(function* (entityId) {
|
|
208
208
|
var file = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
209
209
|
var fileName = file;
|
|
210
210
|
|
|
@@ -230,11 +230,11 @@ function _exportMetadata() {
|
|
|
230
230
|
(0, _Console.printMessage)(err, 'error');
|
|
231
231
|
});
|
|
232
232
|
});
|
|
233
|
-
return
|
|
233
|
+
return _exportSaml2Metadata.apply(this, arguments);
|
|
234
234
|
}
|
|
235
235
|
|
|
236
|
-
function
|
|
237
|
-
return
|
|
236
|
+
function describeSaml2Provider(_x5) {
|
|
237
|
+
return _describeSaml2Provider.apply(this, arguments);
|
|
238
238
|
}
|
|
239
239
|
/**
|
|
240
240
|
* Export all entity providers to one file
|
|
@@ -242,8 +242,8 @@ function describeProvider(_x5) {
|
|
|
242
242
|
*/
|
|
243
243
|
|
|
244
244
|
|
|
245
|
-
function
|
|
246
|
-
|
|
245
|
+
function _describeSaml2Provider() {
|
|
246
|
+
_describeSaml2Provider = _asyncToGenerator(function* (entityId) {
|
|
247
247
|
try {
|
|
248
248
|
var found = yield (0, _Saml2Api.findProviders)("entityId eq '".concat(entityId, "'"), 'location,roles');
|
|
249
249
|
|
|
@@ -287,19 +287,19 @@ function _describeProvider() {
|
|
|
287
287
|
(0, _Console.printMessage)(error.message, 'error');
|
|
288
288
|
}
|
|
289
289
|
});
|
|
290
|
-
return
|
|
290
|
+
return _describeSaml2Provider.apply(this, arguments);
|
|
291
291
|
}
|
|
292
292
|
|
|
293
|
-
function
|
|
294
|
-
return
|
|
293
|
+
function exportSaml2ProvidersToFile() {
|
|
294
|
+
return _exportSaml2ProvidersToFile.apply(this, arguments);
|
|
295
295
|
}
|
|
296
296
|
/**
|
|
297
297
|
* Export all entity providers to individual files
|
|
298
298
|
*/
|
|
299
299
|
|
|
300
300
|
|
|
301
|
-
function
|
|
302
|
-
|
|
301
|
+
function _exportSaml2ProvidersToFile() {
|
|
302
|
+
_exportSaml2ProvidersToFile = _asyncToGenerator(function* () {
|
|
303
303
|
var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
304
304
|
var fileName = file;
|
|
305
305
|
|
|
@@ -335,11 +335,11 @@ function _exportProvidersToFile() {
|
|
|
335
335
|
(0, _Console.printMessage)("exportProvidersToFile: ".concat((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status), 'error');
|
|
336
336
|
}
|
|
337
337
|
});
|
|
338
|
-
return
|
|
338
|
+
return _exportSaml2ProvidersToFile.apply(this, arguments);
|
|
339
339
|
}
|
|
340
340
|
|
|
341
|
-
function
|
|
342
|
-
return
|
|
341
|
+
function exportSaml2ProvidersToFiles() {
|
|
342
|
+
return _exportSaml2ProvidersToFiles.apply(this, arguments);
|
|
343
343
|
}
|
|
344
344
|
/**
|
|
345
345
|
* Include dependencies from the import file
|
|
@@ -348,8 +348,8 @@ function exportProvidersToFiles() {
|
|
|
348
348
|
*/
|
|
349
349
|
|
|
350
350
|
|
|
351
|
-
function
|
|
352
|
-
|
|
351
|
+
function _exportSaml2ProvidersToFiles() {
|
|
352
|
+
_exportSaml2ProvidersToFiles = _asyncToGenerator(function* () {
|
|
353
353
|
var found = yield (0, _Saml2Api.getProviders)();
|
|
354
354
|
|
|
355
355
|
if (found.resultCount > 0) {
|
|
@@ -372,7 +372,7 @@ function _exportProvidersToFiles() {
|
|
|
372
372
|
(0, _Console.printMessage)('No entity providers found.', 'info');
|
|
373
373
|
}
|
|
374
374
|
});
|
|
375
|
-
return
|
|
375
|
+
return _exportSaml2ProvidersToFiles.apply(this, arguments);
|
|
376
376
|
}
|
|
377
377
|
|
|
378
378
|
function importDependencies(_x6, _x7) {
|
|
@@ -427,8 +427,8 @@ function getLocation(entityId64, fileData) {
|
|
|
427
427
|
*/
|
|
428
428
|
|
|
429
429
|
|
|
430
|
-
function
|
|
431
|
-
return
|
|
430
|
+
function importSaml2ProviderFromFile(_x8, _x9) {
|
|
431
|
+
return _importSaml2ProviderFromFile.apply(this, arguments);
|
|
432
432
|
}
|
|
433
433
|
/**
|
|
434
434
|
* Import first SAML entity provider from file
|
|
@@ -436,8 +436,8 @@ function importProvider(_x8, _x9) {
|
|
|
436
436
|
*/
|
|
437
437
|
|
|
438
438
|
|
|
439
|
-
function
|
|
440
|
-
|
|
439
|
+
function _importSaml2ProviderFromFile() {
|
|
440
|
+
_importSaml2ProviderFromFile = _asyncToGenerator(function* (entityId, file) {
|
|
441
441
|
var entityId64 = (0, _Base.encode)(entityId, false);
|
|
442
442
|
|
|
443
443
|
_fs.default.readFile(file, 'utf8', /*#__PURE__*/function () {
|
|
@@ -479,11 +479,11 @@ function _importProvider() {
|
|
|
479
479
|
};
|
|
480
480
|
}());
|
|
481
481
|
});
|
|
482
|
-
return
|
|
482
|
+
return _importSaml2ProviderFromFile.apply(this, arguments);
|
|
483
483
|
}
|
|
484
484
|
|
|
485
|
-
function
|
|
486
|
-
return
|
|
485
|
+
function importFirstSaml2ProviderFromFile(_x10) {
|
|
486
|
+
return _importFirstSaml2ProviderFromFile.apply(this, arguments);
|
|
487
487
|
}
|
|
488
488
|
/**
|
|
489
489
|
* Import all SAML entity providers from file
|
|
@@ -491,8 +491,8 @@ function importFirstProvider(_x10) {
|
|
|
491
491
|
*/
|
|
492
492
|
|
|
493
493
|
|
|
494
|
-
function
|
|
495
|
-
|
|
494
|
+
function _importFirstSaml2ProviderFromFile() {
|
|
495
|
+
_importFirstSaml2ProviderFromFile = _asyncToGenerator(function* (file) {
|
|
496
496
|
_fs.default.readFile(file, 'utf8', /*#__PURE__*/function () {
|
|
497
497
|
var _ref3 = _asyncToGenerator(function* (err, data) {
|
|
498
498
|
if (err) throw err;
|
|
@@ -548,19 +548,19 @@ function _importFirstProvider() {
|
|
|
548
548
|
};
|
|
549
549
|
}());
|
|
550
550
|
});
|
|
551
|
-
return
|
|
551
|
+
return _importFirstSaml2ProviderFromFile.apply(this, arguments);
|
|
552
552
|
}
|
|
553
553
|
|
|
554
|
-
function
|
|
555
|
-
return
|
|
554
|
+
function importSaml2ProvidersFromFile(_x11) {
|
|
555
|
+
return _importSaml2ProvidersFromFile.apply(this, arguments);
|
|
556
556
|
}
|
|
557
557
|
/**
|
|
558
558
|
* Import all SAML entity providers from all *.saml.json files in the current directory
|
|
559
559
|
*/
|
|
560
560
|
|
|
561
561
|
|
|
562
|
-
function
|
|
563
|
-
|
|
562
|
+
function _importSaml2ProvidersFromFile() {
|
|
563
|
+
_importSaml2ProvidersFromFile = _asyncToGenerator(function* (file) {
|
|
564
564
|
_fs.default.readFile(file, 'utf8', /*#__PURE__*/function () {
|
|
565
565
|
var _ref4 = _asyncToGenerator(function* (err, data) {
|
|
566
566
|
if (err) throw err;
|
|
@@ -610,15 +610,15 @@ function _importProvidersFromFile() {
|
|
|
610
610
|
};
|
|
611
611
|
}());
|
|
612
612
|
});
|
|
613
|
-
return
|
|
613
|
+
return _importSaml2ProvidersFromFile.apply(this, arguments);
|
|
614
614
|
}
|
|
615
615
|
|
|
616
|
-
function
|
|
617
|
-
return
|
|
616
|
+
function importSaml2ProvidersFromFiles() {
|
|
617
|
+
return _importSaml2ProvidersFromFiles.apply(this, arguments);
|
|
618
618
|
}
|
|
619
619
|
|
|
620
|
-
function
|
|
621
|
-
|
|
620
|
+
function _importSaml2ProvidersFromFiles() {
|
|
621
|
+
_importSaml2ProvidersFromFiles = _asyncToGenerator(function* () {
|
|
622
622
|
var names = _fs.default.readdirSync('.');
|
|
623
623
|
|
|
624
624
|
var jsonFiles = names.filter(name => name.toLowerCase().endsWith('.saml.json'));
|
|
@@ -673,6 +673,6 @@ function _importProvidersFromFiles() {
|
|
|
673
673
|
|
|
674
674
|
(0, _Console.stopProgressIndicator)("Imported ".concat(total - totalErrors, " of ").concat(total, " provider(s) from ").concat(jsonFiles.length, " file(s)."));
|
|
675
675
|
});
|
|
676
|
-
return
|
|
676
|
+
return _importSaml2ProvidersFromFiles.apply(this, arguments);
|
|
677
677
|
}
|
|
678
|
-
//# sourceMappingURL=
|
|
678
|
+
//# sourceMappingURL=Saml2Ops.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Saml2Ops.js","names":["roleMap","identityProvider","serviceProvider","attributeQueryProvider","xacmlPolicyEnforcementPoint","getFileDataTemplate","meta","script","saml","hosted","remote","metadata","listSaml2Providers","long","providerList","getProviders","result","sort","a","b","_id","localeCompare","provider","printMessage","entityId","table","createTable","push","location","roles","map","role","join","toString","exportDependencies","providerData","fileData","attrMapperScriptId","_","get","scriptData","getScript","convertBase64TextToArray","idpAdapterScriptId","metaDataResponse","getProviderMetadata","convertBase64UrlTextToArray","encodeBase64Url","exportSaml2ProviderToFile","file","fileName","getTypedFilename","createProgressIndicator","found","findProviders","resultCount","id","response","getProviderByLocationAndId","updateProgressIndicator","saveJsonToFile","stopProgressIndicator","brightCyan","err","error","message","exportSaml2Metadata","then","metaData","saveTextToFile","catch","describeSaml2Provider","rawProviderData","_rev","metadataUrl","getProviderMetadataUrl","createObjectTable","exportSaml2ProvidersToFile","getRealmString","stubData","status","exportSaml2ProvidersToFiles","importDependencies","convertTextArrayToBase64","createOrUpdateScript","getLocation","entityId64","undefined","importSaml2ProviderFromFile","encode","fs","readFile","data","JSON","parse","validateImport","convertTextArrayToBase64Url","createProvider","createProviderErr","importFirstSaml2ProviderFromFile","providerIds","keys","length","decode","importSaml2ProvidersFromFile","hostedIds","remoteIds","concat","includes","importSaml2ProvidersFromFiles","names","readdirSync","jsonFiles","filter","name","toLowerCase","endsWith","total","totalErrors","readFileSync","errors"],"sources":["ops/Saml2Ops.ts"],"sourcesContent":["import fs from 'fs';\nimport _ from 'lodash';\nimport { decode, encode, encodeBase64Url } from '../api/utils/Base64';\nimport {\n createTable,\n printMessage,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n createObjectTable,\n} from './utils/Console';\nimport {\n getProviders,\n findProviders,\n getProviderByLocationAndId,\n getProviderMetadata,\n createProvider,\n getProviderMetadataUrl,\n} from '../api/Saml2Api';\nimport { getScript } from '../api/ScriptApi';\nimport {\n convertBase64TextToArray,\n convertBase64UrlTextToArray,\n convertTextArrayToBase64,\n convertTextArrayToBase64Url,\n getRealmString,\n getTypedFilename,\n saveJsonToFile,\n saveTextToFile,\n validateImport,\n} from './utils/ExportImportUtils';\nimport { createOrUpdateScript } from './ScriptOps';\n\nconst 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\nfunction getFileDataTemplate() {\n return {\n meta: {},\n script: {},\n saml: {\n hosted: {},\n remote: {},\n metadata: {},\n },\n };\n}\n\n/**\n * List entity providers\n * @param {boolean} long Long list format with details\n */\nexport async function listSaml2Providers(long = false) {\n const providerList = (await getProviders()).result;\n providerList.sort((a, b) => a._id.localeCompare(b._id));\n if (!long) {\n for (const provider of providerList) {\n printMessage(`${provider.entityId}`, 'data');\n }\n } else {\n const table = createTable([\n 'Entity Id'['brightCyan'],\n 'Location'['brightCyan'],\n 'Role(s)'['brightCyan'],\n ]);\n for (const provider of providerList) {\n table.push([\n provider.entityId,\n provider.location,\n provider.roles.map((role) => roleMap[role]).join(', '),\n ]);\n }\n printMessage(table.toString());\n }\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(providerData, fileData) {\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n const scriptData = await getScript(attrMapperScriptId);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n // eslint-disable-next-line no-param-reassign\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(idpAdapterScriptId);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n // eslint-disable-next-line no-param-reassign\n fileData.script[idpAdapterScriptId] = scriptData;\n }\n const metaDataResponse = await getProviderMetadata(providerData.entityId);\n // eslint-disable-next-line no-param-reassign\n fileData.saml.metadata[providerData._id] = convertBase64UrlTextToArray(\n encodeBase64Url(metaDataResponse)\n );\n}\n\n/**\n * Export a single entity provider to file\n * @param {String} entityId Provider entity id\n * @param {String} file Optional filename\n */\nexport async function exportSaml2ProviderToFile(entityId, file = null) {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(entityId, 'saml');\n }\n createProgressIndicator(1, `Exporting provider ${entityId}`);\n try {\n const found = await findProviders(`entityId eq '${entityId}'`, 'location');\n switch (found.resultCount) {\n case 0:\n printMessage(`No provider with entity id '${entityId}' found`, 'error');\n break;\n case 1:\n {\n const { location } = found.result[0];\n const id = found.result[0]._id;\n try {\n const response = await getProviderByLocationAndId(location, id);\n const providerData = response;\n updateProgressIndicator(`Writing file ${fileName}`);\n const fileData = getFileDataTemplate();\n fileData.saml[location][providerData._id] = providerData;\n await exportDependencies(providerData, fileData);\n saveJsonToFile(fileData, fileName);\n stopProgressIndicator(\n `Exported ${entityId.brightCyan} to ${fileName.brightCyan}.`\n );\n } catch (err) {\n stopProgressIndicator(`${err}`);\n printMessage(err, 'error');\n }\n }\n break;\n default:\n printMessage(\n `Multiple providers with entity id '${entityId}' found`,\n 'error'\n );\n }\n } catch (error) {\n stopProgressIndicator(`${error}`);\n printMessage(error.message, 'error');\n }\n}\n\n/**\n * Export provider metadata to file\n * @param {String} entityId Provider entity id\n * @param {String} file Optional filename\n */\nexport async function exportSaml2Metadata(entityId, file = null) {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(entityId, 'metadata', 'xml');\n }\n createProgressIndicator(1, `Exporting metadata for: ${entityId}`);\n getProviderMetadata(entityId)\n .then(async (response) => {\n updateProgressIndicator(`Writing file ${fileName}`);\n // printMessage(response.data, 'error');\n const metaData = response;\n saveTextToFile(metaData, fileName);\n stopProgressIndicator(\n `Exported ${entityId.brightCyan} metadata to ${fileName.brightCyan}.`\n );\n })\n .catch((err) => {\n stopProgressIndicator(`${err}`);\n printMessage(err, 'error');\n });\n}\n\n/**\n * Describe an entity provider's configuration\n * @param {String} entityId Provider entity id\n */\nexport async function describeSaml2Provider(entityId) {\n try {\n const found = await findProviders(\n `entityId eq '${entityId}'`,\n 'location,roles'\n );\n switch (found.resultCount) {\n case 0:\n printMessage(`No provider with entity id '${entityId}' found`, 'error');\n break;\n case 1:\n {\n try {\n const { location } = found.result[0];\n const id = found.result[0]._id;\n const roles = found.result[0].roles\n .map((role) => roleMap[role])\n .join(', ');\n const response = await getProviderByLocationAndId(location, id);\n const rawProviderData = response;\n delete rawProviderData._id;\n delete rawProviderData._rev;\n rawProviderData.location = location;\n rawProviderData.roles = roles;\n rawProviderData.metadataUrl = getProviderMetadataUrl(entityId);\n // const fullProviderData = getFileDataTemplate();\n // fullProviderData.saml[location][rawProviderData._id] =\n // rawProviderData;\n // await exportDependencies(rawProviderData, fullProviderData);\n // describe the provider\n const table = createObjectTable(rawProviderData);\n printMessage(table.toString());\n } catch (err) {\n printMessage(err, 'error');\n }\n }\n break;\n default:\n printMessage(\n `Multiple providers with entity id '${entityId}' found`,\n 'error'\n );\n }\n } catch (error) {\n printMessage(error.message, 'error');\n }\n}\n\n/**\n * Export all entity providers to one file\n * @param {String} file Optional filename\n */\nexport async function exportSaml2ProvidersToFile(file = null) {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(`all${getRealmString()}Providers`, 'saml');\n }\n try {\n const fileData = getFileDataTemplate();\n const found = await getProviders();\n if (found.resultCount > 0) {\n createProgressIndicator(found.resultCount, 'Exporting providers');\n for (const stubData of found.result) {\n updateProgressIndicator(`Exporting provider ${stubData.entityId}`);\n // eslint-disable-next-line no-await-in-loop\n const providerData = await getProviderByLocationAndId(\n stubData.location,\n stubData._id\n );\n // eslint-disable-next-line no-await-in-loop\n await exportDependencies(providerData, fileData);\n fileData.saml[stubData.location][providerData._id] = providerData;\n }\n saveJsonToFile(fileData, fileName);\n stopProgressIndicator(\n `${found.resultCount} providers exported to ${fileName}.`\n );\n } else {\n printMessage('No entity providers found.', 'info');\n }\n } catch (error) {\n printMessage(error.message, 'error');\n printMessage(`exportProvidersToFile: ${error.response?.status}`, 'error');\n }\n}\n\n/**\n * Export all entity providers to individual files\n */\nexport async function exportSaml2ProvidersToFiles() {\n const found = await getProviders();\n if (found.resultCount > 0) {\n createProgressIndicator(found.resultCount, 'Exporting providers');\n for (const stubData of found.result) {\n updateProgressIndicator(`Exporting provider ${stubData.entityId}`);\n const fileName = getTypedFilename(stubData.entityId, 'saml');\n const fileData = getFileDataTemplate();\n // eslint-disable-next-line no-await-in-loop\n const providerData = await getProviderByLocationAndId(\n stubData.location,\n stubData._id\n );\n // eslint-disable-next-line no-await-in-loop\n await exportDependencies(providerData, fileData);\n fileData.saml[stubData.location][providerData._id] = providerData;\n saveJsonToFile(fileData, fileName);\n }\n stopProgressIndicator(`${found.resultCount} providers exported.`);\n } else {\n printMessage('No entity providers found.', 'info');\n }\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(providerData, fileData) {\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n const scriptData = _.get(fileData, ['script', attrMapperScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n await createOrUpdateScript(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 = _.get(fileData, ['script', idpAdapterScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n await createOrUpdateScript(attrMapperScriptId, scriptData);\n }\n}\n\n/**\n * Find provider in import file and return its location\n * @param {String} entityId64 Base64-encoded provider entity id\n * @param {Object} fileData Import file json data\n * @returns {String} 'hosted' or 'remote' if found, undefined otherwise\n */\nfunction getLocation(entityId64, fileData) {\n if (_.get(fileData, ['saml', 'hosted', entityId64])) {\n return 'hosted';\n }\n if (_.get(fileData, ['saml', 'remote', entityId64])) {\n return 'remote';\n }\n return undefined;\n}\n\n/**\n * Import a SAML entity provider by entity id from file\n * @param {String} entityId Provider entity id\n * @param {String} file Import file name\n */\nexport async function importSaml2ProviderFromFile(entityId, file) {\n const entityId64 = encode(entityId, false);\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n createProgressIndicator(1, 'Importing provider...');\n const location = getLocation(entityId64, fileData);\n if (location) {\n const providerData = _.get(fileData, ['saml', location, entityId64]);\n updateProgressIndicator(`Importing ${entityId}`);\n await importDependencies(providerData, fileData);\n let metaData = null;\n if (location === 'remote') {\n metaData = convertTextArrayToBase64Url(\n fileData.saml.metadata[entityId64]\n );\n }\n createProvider(location, providerData, metaData)\n .then(() => {\n stopProgressIndicator(\n `Successfully imported provider ${entityId}.`\n );\n })\n .catch((createProviderErr) => {\n printMessage(`\\nError importing provider ${entityId}`, 'error');\n printMessage(createProviderErr.response, 'error');\n });\n } else {\n stopProgressIndicator(\n `Provider ${entityId.brightCyan} not found in ${file.brightCyan}!`\n );\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import first SAML entity provider from file\n * @param {String} file Import file name\n */\nexport async function importFirstSaml2ProviderFromFile(file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n createProgressIndicator(1, 'Importing provider...');\n // find providers in hosted and if none exist in remote\n let location = 'hosted';\n let providerIds = _.keys(fileData.saml[location]);\n if (providerIds.length === 0) {\n location = 'remote';\n providerIds = _.keys(fileData.saml[location]);\n if (providerIds.length === 0) {\n location = null;\n }\n }\n if (location) {\n const entityId64 = providerIds[0];\n const entityId = decode(entityId64);\n const providerData = _.get(fileData, ['saml', location, entityId64]);\n updateProgressIndicator(`Importing ${entityId}`);\n await importDependencies(providerData, fileData);\n let metaData = null;\n if (location === 'remote') {\n metaData = convertTextArrayToBase64Url(\n fileData.saml.metadata[entityId64]\n );\n }\n createProvider(location, providerData, metaData)\n .then(() => {\n stopProgressIndicator(\n `Successfully imported provider ${entityId}.`\n );\n })\n .catch((createProviderErr) => {\n stopProgressIndicator(`Error importing provider ${entityId}`);\n printMessage(`\\nError importing provider ${entityId}`, 'error');\n printMessage(createProviderErr.response.data, 'error');\n });\n } else {\n stopProgressIndicator(`No providers found in ${file.brightCyan}!`);\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import all SAML entity providers from file\n * @param {String} file Import file name\n */\nexport async function importSaml2ProvidersFromFile(file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n // find providers in hosted and in remote and map locations\n const hostedIds = _.keys(fileData.saml.hosted);\n const remoteIds = _.keys(fileData.saml.remote);\n const providerIds = hostedIds.concat(remoteIds);\n createProgressIndicator(providerIds.length, 'Importing providers...');\n for (const entityId64 of providerIds) {\n const location = hostedIds.includes(entityId64) ? 'hosted' : 'remote';\n const entityId = decode(entityId64);\n const providerData = _.get(fileData, ['saml', location, entityId64]);\n // eslint-disable-next-line no-await-in-loop\n await importDependencies(providerData, fileData);\n let metaData = null;\n if (location === 'remote') {\n metaData = convertTextArrayToBase64Url(\n fileData.saml.metadata[entityId64]\n );\n }\n try {\n // eslint-disable-next-line no-await-in-loop\n await createProvider(location, providerData, metaData);\n updateProgressIndicator(`Imported ${entityId}`);\n } catch (createProviderErr) {\n printMessage(`\\nError importing provider ${entityId}`, 'error');\n printMessage(createProviderErr.response.data, 'error');\n }\n }\n stopProgressIndicator(`Providers imported.`);\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import all SAML entity providers from all *.saml.json files in the current directory\n */\nexport async function importSaml2ProvidersFromFiles() {\n const names = fs.readdirSync('.');\n const jsonFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.saml.json')\n );\n createProgressIndicator(jsonFiles.length, 'Importing providers...');\n let total = 0;\n let totalErrors = 0;\n for (const file of jsonFiles) {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n // find providers in hosted and in remote and map locations\n const hostedIds = _.keys(fileData.saml.hosted);\n const remoteIds = _.keys(fileData.saml.remote);\n const providerIds = hostedIds.concat(remoteIds);\n total += providerIds.length;\n let errors = 0;\n for (const entityId64 of providerIds) {\n const location = hostedIds.includes(entityId64) ? 'hosted' : 'remote';\n const entityId = decode(entityId64);\n const providerData = _.get(fileData, ['saml', location, entityId64]);\n importDependencies(providerData, fileData);\n let metaData = null;\n if (location === 'remote') {\n metaData = convertTextArrayToBase64Url(\n fileData.saml.metadata[entityId64]\n );\n }\n try {\n // eslint-disable-next-line no-await-in-loop\n await createProvider(location, providerData, metaData);\n // updateProgressIndicator(`Imported ${entityId}`);\n } catch (createProviderErr) {\n errors += 1;\n printMessage(`\\nError importing provider ${entityId}`, 'error');\n printMessage(createProviderErr.response.data, 'error');\n }\n }\n totalErrors += errors;\n updateProgressIndicator(\n `Imported ${providerIds.length - errors} provider(s) from ${file}`\n );\n } else {\n printMessage(`Validation of ${file} failed!`, 'error');\n }\n }\n stopProgressIndicator(\n `Imported ${total - totalErrors} of ${total} provider(s) from ${\n jsonFiles.length\n } file(s).`\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAQA;;AAQA;;AACA;;AAWA;;;;;;;;AAEA,IAAMA,OAAO,GAAG;EACdC,gBAAgB,EAAE,KADJ;EAEdC,eAAe,EAAE,IAFH;EAGdC,sBAAsB,EAAE,WAHV;EAIdC,2BAA2B,EAAE;AAJf,CAAhB,C,CAOA;;AACA,SAASC,mBAAT,GAA+B;EAC7B,OAAO;IACLC,IAAI,EAAE,EADD;IAELC,MAAM,EAAE,EAFH;IAGLC,IAAI,EAAE;MACJC,MAAM,EAAE,EADJ;MAEJC,MAAM,EAAE,EAFJ;MAGJC,QAAQ,EAAE;IAHN;EAHD,CAAP;AASD;AAED;AACA;AACA;AACA;;;SACsBC,kB;;;AAwBtB;AACA;AACA;AACA;AACA;;;;0CA5BO,aAAgD;IAAA,IAAdC,IAAc,uEAAP,KAAO;IACrD,IAAMC,YAAY,GAAG,OAAO,IAAAC,sBAAA,GAAP,EAAuBC,MAA5C;IACAF,YAAY,CAACG,IAAb,CAAkB,CAACC,CAAD,EAAIC,CAAJ,KAAUD,CAAC,CAACE,GAAF,CAAMC,aAAN,CAAoBF,CAAC,CAACC,GAAtB,CAA5B;;IACA,IAAI,CAACP,IAAL,EAAW;MACT,KAAK,IAAMS,QAAX,IAAuBR,YAAvB,EAAqC;QACnC,IAAAS,qBAAA,YAAgBD,QAAQ,CAACE,QAAzB,GAAqC,MAArC;MACD;IACF,CAJD,MAIO;MACL,IAAMC,KAAK,GAAG,IAAAC,oBAAA,EAAY,CACxB,YAAY,YAAZ,CADwB,EAExB,WAAW,YAAX,CAFwB,EAGxB,UAAU,YAAV,CAHwB,CAAZ,CAAd;;MAKA,KAAK,IAAMJ,SAAX,IAAuBR,YAAvB,EAAqC;QACnCW,KAAK,CAACE,IAAN,CAAW,CACTL,SAAQ,CAACE,QADA,EAETF,SAAQ,CAACM,QAFA,EAGTN,SAAQ,CAACO,KAAT,CAAeC,GAAf,CAAoBC,IAAD,IAAU/B,OAAO,CAAC+B,IAAD,CAApC,EAA4CC,IAA5C,CAAiD,IAAjD,CAHS,CAAX;MAKD;;MACD,IAAAT,qBAAA,EAAaE,KAAK,CAACQ,QAAN,EAAb;IACD;EACF,C;;;;SAOcC,kB;;;AAgCf;AACA;AACA;AACA;AACA;;;;0CApCA,WAAkCC,YAAlC,EAAgDC,QAAhD,EAA0D;IACxD,IAAMC,kBAAkB,GAAGC,eAAA,CAAEC,GAAF,CAAMJ,YAAN,EAAoB,CAC7C,kBAD6C,EAE7C,qBAF6C,EAG7C,iBAH6C,EAI7C,uBAJ6C,CAApB,CAA3B;;IAMA,IAAIE,kBAAkB,IAAIA,kBAAkB,KAAK,SAAjD,EAA4D;MAC1D,IAAMG,UAAU,SAAS,IAAAC,oBAAA,EAAUJ,kBAAV,CAAzB;MACAG,UAAU,CAACjC,MAAX,GAAoB,IAAAmC,2CAAA,EAAyBF,UAAU,CAACjC,MAApC,CAApB,CAF0D,CAG1D;;MACA6B,QAAQ,CAAC7B,MAAT,CAAgB8B,kBAAhB,IAAsCG,UAAtC;IACD;;IACD,IAAMG,kBAAkB,GAAGL,eAAA,CAAEC,GAAF,CAAMJ,YAAN,EAAoB,CAC7C,kBAD6C,EAE7C,UAF6C,EAG7C,YAH6C,EAI7C,kBAJ6C,CAApB,CAA3B;;IAMA,IAAIQ,kBAAkB,IAAIA,kBAAkB,KAAK,SAAjD,EAA4D;MAC1D,IAAMH,WAAU,SAAS,IAAAC,oBAAA,EAAUE,kBAAV,CAAzB;;MACAH,WAAU,CAACjC,MAAX,GAAoB,IAAAmC,2CAAA,EAAyBF,WAAU,CAACjC,MAApC,CAApB,CAF0D,CAG1D;;MACA6B,QAAQ,CAAC7B,MAAT,CAAgBoC,kBAAhB,IAAsCH,WAAtC;IACD;;IACD,IAAMI,gBAAgB,SAAS,IAAAC,6BAAA,EAAoBV,YAAY,CAACX,QAAjC,CAA/B,CAzBwD,CA0BxD;;IACAY,QAAQ,CAAC5B,IAAT,CAAcG,QAAd,CAAuBwB,YAAY,CAACf,GAApC,IAA2C,IAAA0B,8CAAA,EACzC,IAAAC,qBAAA,EAAgBH,gBAAhB,CADyC,CAA3C;EAGD,C;;;;SAOqBI,yB;;;AA6CtB;AACA;AACA;AACA;AACA;;;;iDAjDO,WAAyCxB,QAAzC,EAAgE;IAAA,IAAbyB,IAAa,uEAAN,IAAM;IACrE,IAAIC,QAAQ,GAAGD,IAAf;;IACA,IAAI,CAACC,QAAL,EAAe;MACbA,QAAQ,GAAG,IAAAC,mCAAA,EAAiB3B,QAAjB,EAA2B,MAA3B,CAAX;IACD;;IACD,IAAA4B,gCAAA,EAAwB,CAAxB,+BAAiD5B,QAAjD;;IACA,IAAI;MACF,IAAM6B,KAAK,SAAS,IAAAC,uBAAA,yBAA8B9B,QAA9B,QAA2C,UAA3C,CAApB;;MACA,QAAQ6B,KAAK,CAACE,WAAd;QACE,KAAK,CAAL;UACE,IAAAhC,qBAAA,wCAA4CC,QAA5C,cAA+D,OAA/D;UACA;;QACF,KAAK,CAAL;UACE;YACE,IAAM;cAAEI;YAAF,IAAeyB,KAAK,CAACrC,MAAN,CAAa,CAAb,CAArB;YACA,IAAMwC,EAAE,GAAGH,KAAK,CAACrC,MAAN,CAAa,CAAb,EAAgBI,GAA3B;;YACA,IAAI;cACF,IAAMqC,QAAQ,SAAS,IAAAC,oCAAA,EAA2B9B,QAA3B,EAAqC4B,EAArC,CAAvB;cACA,IAAMrB,YAAY,GAAGsB,QAArB;cACA,IAAAE,gCAAA,yBAAwCT,QAAxC;cACA,IAAMd,QAAQ,GAAG/B,mBAAmB,EAApC;cACA+B,QAAQ,CAAC5B,IAAT,CAAcoB,QAAd,EAAwBO,YAAY,CAACf,GAArC,IAA4Ce,YAA5C;cACA,MAAMD,kBAAkB,CAACC,YAAD,EAAeC,QAAf,CAAxB;cACA,IAAAwB,iCAAA,EAAexB,QAAf,EAAyBc,QAAzB;cACA,IAAAW,8BAAA,qBACcrC,QAAQ,CAACsC,UADvB,iBACwCZ,QAAQ,CAACY,UADjD;YAGD,CAXD,CAWE,OAAOC,GAAP,EAAY;cACZ,IAAAF,8BAAA,YAAyBE,GAAzB;cACA,IAAAxC,qBAAA,EAAawC,GAAb,EAAkB,OAAlB;YACD;UACF;UACD;;QACF;UACE,IAAAxC,qBAAA,+CACwCC,QADxC,cAEE,OAFF;MA1BJ;IA+BD,CAjCD,CAiCE,OAAOwC,KAAP,EAAc;MACd,IAAAH,8BAAA,YAAyBG,KAAzB;MACA,IAAAzC,qBAAA,EAAayC,KAAK,CAACC,OAAnB,EAA4B,OAA5B;IACD;EACF,C;;;;SAOqBC,mB;;;AAsBtB;AACA;AACA;AACA;;;;2CAzBO,WAAmC1C,QAAnC,EAA0D;IAAA,IAAbyB,IAAa,uEAAN,IAAM;IAC/D,IAAIC,QAAQ,GAAGD,IAAf;;IACA,IAAI,CAACC,QAAL,EAAe;MACbA,QAAQ,GAAG,IAAAC,mCAAA,EAAiB3B,QAAjB,EAA2B,UAA3B,EAAuC,KAAvC,CAAX;IACD;;IACD,IAAA4B,gCAAA,EAAwB,CAAxB,oCAAsD5B,QAAtD;IACA,IAAAqB,6BAAA,EAAoBrB,QAApB,EACG2C,IADH;MAAA,6BACQ,WAAOV,QAAP,EAAoB;QACxB,IAAAE,gCAAA,yBAAwCT,QAAxC,GADwB,CAExB;;QACA,IAAMkB,QAAQ,GAAGX,QAAjB;QACA,IAAAY,iCAAA,EAAeD,QAAf,EAAyBlB,QAAzB;QACA,IAAAW,8BAAA,qBACcrC,QAAQ,CAACsC,UADvB,0BACiDZ,QAAQ,CAACY,UAD1D;MAGD,CATH;;MAAA;QAAA;MAAA;IAAA,KAUGQ,KAVH,CAUUP,GAAD,IAAS;MACd,IAAAF,8BAAA,YAAyBE,GAAzB;MACA,IAAAxC,qBAAA,EAAawC,GAAb,EAAkB,OAAlB;IACD,CAbH;EAcD,C;;;;SAMqBQ,qB;;;AAgDtB;AACA;AACA;AACA;;;;6CAnDO,WAAqC/C,QAArC,EAA+C;IACpD,IAAI;MACF,IAAM6B,KAAK,SAAS,IAAAC,uBAAA,yBACF9B,QADE,QAElB,gBAFkB,CAApB;;MAIA,QAAQ6B,KAAK,CAACE,WAAd;QACE,KAAK,CAAL;UACE,IAAAhC,qBAAA,wCAA4CC,QAA5C,cAA+D,OAA/D;UACA;;QACF,KAAK,CAAL;UACE;YACE,IAAI;cACF,IAAM;gBAAEI;cAAF,IAAeyB,KAAK,CAACrC,MAAN,CAAa,CAAb,CAArB;cACA,IAAMwC,EAAE,GAAGH,KAAK,CAACrC,MAAN,CAAa,CAAb,EAAgBI,GAA3B;cACA,IAAMS,KAAK,GAAGwB,KAAK,CAACrC,MAAN,CAAa,CAAb,EAAgBa,KAAhB,CACXC,GADW,CACNC,IAAD,IAAU/B,OAAO,CAAC+B,IAAD,CADV,EAEXC,IAFW,CAEN,IAFM,CAAd;cAGA,IAAMyB,QAAQ,SAAS,IAAAC,oCAAA,EAA2B9B,QAA3B,EAAqC4B,EAArC,CAAvB;cACA,IAAMgB,eAAe,GAAGf,QAAxB;cACA,OAAOe,eAAe,CAACpD,GAAvB;cACA,OAAOoD,eAAe,CAACC,IAAvB;cACAD,eAAe,CAAC5C,QAAhB,GAA2BA,QAA3B;cACA4C,eAAe,CAAC3C,KAAhB,GAAwBA,KAAxB;cACA2C,eAAe,CAACE,WAAhB,GAA8B,IAAAC,gCAAA,EAAuBnD,QAAvB,CAA9B,CAZE,CAaF;cACA;cACA;cACA;cACA;;cACA,IAAMC,KAAK,GAAG,IAAAmD,0BAAA,EAAkBJ,eAAlB,CAAd;cACA,IAAAjD,qBAAA,EAAaE,KAAK,CAACQ,QAAN,EAAb;YACD,CApBD,CAoBE,OAAO8B,GAAP,EAAY;cACZ,IAAAxC,qBAAA,EAAawC,GAAb,EAAkB,OAAlB;YACD;UACF;UACD;;QACF;UACE,IAAAxC,qBAAA,+CACwCC,QADxC,cAEE,OAFF;MAhCJ;IAqCD,CA1CD,CA0CE,OAAOwC,KAAP,EAAc;MACd,IAAAzC,qBAAA,EAAayC,KAAK,CAACC,OAAnB,EAA4B,OAA5B;IACD;EACF,C;;;;SAMqBY,0B;;;AAkCtB;AACA;AACA;;;;kDApCO,aAAuD;IAAA,IAAb5B,IAAa,uEAAN,IAAM;IAC5D,IAAIC,QAAQ,GAAGD,IAAf;;IACA,IAAI,CAACC,QAAL,EAAe;MACbA,QAAQ,GAAG,IAAAC,mCAAA,eAAuB,IAAA2B,iCAAA,GAAvB,gBAAoD,MAApD,CAAX;IACD;;IACD,IAAI;MACF,IAAM1C,QAAQ,GAAG/B,mBAAmB,EAApC;MACA,IAAMgD,KAAK,SAAS,IAAAtC,sBAAA,GAApB;;MACA,IAAIsC,KAAK,CAACE,WAAN,GAAoB,CAAxB,EAA2B;QACzB,IAAAH,gCAAA,EAAwBC,KAAK,CAACE,WAA9B,EAA2C,qBAA3C;;QACA,KAAK,IAAMwB,QAAX,IAAuB1B,KAAK,CAACrC,MAA7B,EAAqC;UACnC,IAAA2C,gCAAA,+BAA8CoB,QAAQ,CAACvD,QAAvD,GADmC,CAEnC;;UACA,IAAMW,YAAY,SAAS,IAAAuB,oCAAA,EACzBqB,QAAQ,CAACnD,QADgB,EAEzBmD,QAAQ,CAAC3D,GAFgB,CAA3B,CAHmC,CAOnC;;UACA,MAAMc,kBAAkB,CAACC,YAAD,EAAeC,QAAf,CAAxB;UACAA,QAAQ,CAAC5B,IAAT,CAAcuE,QAAQ,CAACnD,QAAvB,EAAiCO,YAAY,CAACf,GAA9C,IAAqDe,YAArD;QACD;;QACD,IAAAyB,iCAAA,EAAexB,QAAf,EAAyBc,QAAzB;QACA,IAAAW,8BAAA,YACKR,KAAK,CAACE,WADX,oCACgDL,QADhD;MAGD,CAjBD,MAiBO;QACL,IAAA3B,qBAAA,EAAa,4BAAb,EAA2C,MAA3C;MACD;IACF,CAvBD,CAuBE,OAAOyC,KAAP,EAAc;MAAA;;MACd,IAAAzC,qBAAA,EAAayC,KAAK,CAACC,OAAnB,EAA4B,OAA5B;MACA,IAAA1C,qBAAA,sDAAuCyC,KAAK,CAACP,QAA7C,oDAAuC,gBAAgBuB,MAAvD,GAAiE,OAAjE;IACD;EACF,C;;;;SAKqBC,2B;;;AAwBtB;AACA;AACA;AACA;AACA;;;;mDA5BO,aAA6C;IAClD,IAAM5B,KAAK,SAAS,IAAAtC,sBAAA,GAApB;;IACA,IAAIsC,KAAK,CAACE,WAAN,GAAoB,CAAxB,EAA2B;MACzB,IAAAH,gCAAA,EAAwBC,KAAK,CAACE,WAA9B,EAA2C,qBAA3C;;MACA,KAAK,IAAMwB,QAAX,IAAuB1B,KAAK,CAACrC,MAA7B,EAAqC;QACnC,IAAA2C,gCAAA,+BAA8CoB,QAAQ,CAACvD,QAAvD;QACA,IAAM0B,QAAQ,GAAG,IAAAC,mCAAA,EAAiB4B,QAAQ,CAACvD,QAA1B,EAAoC,MAApC,CAAjB;QACA,IAAMY,QAAQ,GAAG/B,mBAAmB,EAApC,CAHmC,CAInC;;QACA,IAAM8B,YAAY,SAAS,IAAAuB,oCAAA,EACzBqB,QAAQ,CAACnD,QADgB,EAEzBmD,QAAQ,CAAC3D,GAFgB,CAA3B,CALmC,CASnC;;QACA,MAAMc,kBAAkB,CAACC,YAAD,EAAeC,QAAf,CAAxB;QACAA,QAAQ,CAAC5B,IAAT,CAAcuE,QAAQ,CAACnD,QAAvB,EAAiCO,YAAY,CAACf,GAA9C,IAAqDe,YAArD;QACA,IAAAyB,iCAAA,EAAexB,QAAf,EAAyBc,QAAzB;MACD;;MACD,IAAAW,8BAAA,YAAyBR,KAAK,CAACE,WAA/B;IACD,CAjBD,MAiBO;MACL,IAAAhC,qBAAA,EAAa,4BAAb,EAA2C,MAA3C;IACD;EACF,C;;;;SAOc2D,kB;;;AAyBf;AACA;AACA;AACA;AACA;AACA;;;;0CA9BA,WAAkC/C,YAAlC,EAAgDC,QAAhD,EAA0D;IACxD,IAAMC,kBAAkB,GAAGC,eAAA,CAAEC,GAAF,CAAMJ,YAAN,EAAoB,CAC7C,kBAD6C,EAE7C,qBAF6C,EAG7C,iBAH6C,EAI7C,uBAJ6C,CAApB,CAA3B;;IAMA,IAAIE,kBAAkB,IAAIA,kBAAkB,KAAK,SAAjD,EAA4D;MAC1D,IAAMG,UAAU,GAAGF,eAAA,CAAEC,GAAF,CAAMH,QAAN,EAAgB,CAAC,QAAD,EAAWC,kBAAX,CAAhB,CAAnB;;MACAG,UAAU,CAACjC,MAAX,GAAoB,IAAA4E,2CAAA,EAAyB3C,UAAU,CAACjC,MAApC,CAApB;MACA,MAAM,IAAA6E,+BAAA,EAAqB/C,kBAArB,EAAyCG,UAAzC,CAAN;IACD;;IACD,IAAMG,kBAAkB,GAAGL,eAAA,CAAEC,GAAF,CAAMJ,YAAN,EAAoB,CAC7C,kBAD6C,EAE7C,UAF6C,EAG7C,YAH6C,EAI7C,kBAJ6C,CAApB,CAA3B;;IAMA,IAAIQ,kBAAkB,IAAIA,kBAAkB,KAAK,SAAjD,EAA4D;MAC1D,IAAMH,YAAU,GAAGF,eAAA,CAAEC,GAAF,CAAMH,QAAN,EAAgB,CAAC,QAAD,EAAWO,kBAAX,CAAhB,CAAnB;;MACAH,YAAU,CAACjC,MAAX,GAAoB,IAAA4E,2CAAA,EAAyB3C,YAAU,CAACjC,MAApC,CAApB;MACA,MAAM,IAAA6E,+BAAA,EAAqB/C,kBAArB,EAAyCG,YAAzC,CAAN;IACD;EACF,C;;;;AAQD,SAAS6C,WAAT,CAAqBC,UAArB,EAAiClD,QAAjC,EAA2C;EACzC,IAAIE,eAAA,CAAEC,GAAF,CAAMH,QAAN,EAAgB,CAAC,MAAD,EAAS,QAAT,EAAmBkD,UAAnB,CAAhB,CAAJ,EAAqD;IACnD,OAAO,QAAP;EACD;;EACD,IAAIhD,eAAA,CAAEC,GAAF,CAAMH,QAAN,EAAgB,CAAC,MAAD,EAAS,QAAT,EAAmBkD,UAAnB,CAAhB,CAAJ,EAAqD;IACnD,OAAO,QAAP;EACD;;EACD,OAAOC,SAAP;AACD;AAED;AACA;AACA;AACA;AACA;;;SACsBC,2B;;;AAuCtB;AACA;AACA;AACA;;;;mDA1CO,WAA2ChE,QAA3C,EAAqDyB,IAArD,EAA2D;IAChE,IAAMqC,UAAU,GAAG,IAAAG,YAAA,EAAOjE,QAAP,EAAiB,KAAjB,CAAnB;;IACAkE,WAAA,CAAGC,QAAH,CAAY1C,IAAZ,EAAkB,MAAlB;MAAA,8BAA0B,WAAOc,GAAP,EAAY6B,IAAZ,EAAqB;QAC7C,IAAI7B,GAAJ,EAAS,MAAMA,GAAN;QACT,IAAM3B,QAAQ,GAAGyD,IAAI,CAACC,KAAL,CAAWF,IAAX,CAAjB;;QACA,IAAI,IAAAG,iCAAA,EAAe3D,QAAQ,CAAC9B,IAAxB,CAAJ,EAAmC;UACjC,IAAA8C,gCAAA,EAAwB,CAAxB,EAA2B,uBAA3B;UACA,IAAMxB,QAAQ,GAAGyD,WAAW,CAACC,UAAD,EAAalD,QAAb,CAA5B;;UACA,IAAIR,QAAJ,EAAc;YACZ,IAAMO,YAAY,GAAGG,eAAA,CAAEC,GAAF,CAAMH,QAAN,EAAgB,CAAC,MAAD,EAASR,QAAT,EAAmB0D,UAAnB,CAAhB,CAArB;;YACA,IAAA3B,gCAAA,sBAAqCnC,QAArC;YACA,MAAM0D,kBAAkB,CAAC/C,YAAD,EAAeC,QAAf,CAAxB;YACA,IAAIgC,QAAQ,GAAG,IAAf;;YACA,IAAIxC,QAAQ,KAAK,QAAjB,EAA2B;cACzBwC,QAAQ,GAAG,IAAA4B,8CAAA,EACT5D,QAAQ,CAAC5B,IAAT,CAAcG,QAAd,CAAuB2E,UAAvB,CADS,CAAX;YAGD;;YACD,IAAAW,wBAAA,EAAerE,QAAf,EAAyBO,YAAzB,EAAuCiC,QAAvC,EACGD,IADH,CACQ,MAAM;cACV,IAAAN,8BAAA,2CACoCrC,QADpC;YAGD,CALH,EAMG8C,KANH,CAMU4B,iBAAD,IAAuB;cAC5B,IAAA3E,qBAAA,uCAA2CC,QAA3C,GAAuD,OAAvD;cACA,IAAAD,qBAAA,EAAa2E,iBAAiB,CAACzC,QAA/B,EAAyC,OAAzC;YACD,CATH;UAUD,CApBD,MAoBO;YACL,IAAAI,8BAAA,qBACcrC,QAAQ,CAACsC,UADvB,2BACkDb,IAAI,CAACa,UADvD;UAGD;QACF,CA5BD,MA4BO;UACL,IAAAvC,qBAAA,EAAa,6BAAb,EAA4C,OAA5C;QACD;MACF,CAlCD;;MAAA;QAAA;MAAA;IAAA;EAmCD,C;;;;SAMqB4E,gC;;;AAgDtB;AACA;AACA;AACA;;;;wDAnDO,WAAgDlD,IAAhD,EAAsD;IAC3DyC,WAAA,CAAGC,QAAH,CAAY1C,IAAZ,EAAkB,MAAlB;MAAA,8BAA0B,WAAOc,GAAP,EAAY6B,IAAZ,EAAqB;QAC7C,IAAI7B,GAAJ,EAAS,MAAMA,GAAN;QACT,IAAM3B,QAAQ,GAAGyD,IAAI,CAACC,KAAL,CAAWF,IAAX,CAAjB;;QACA,IAAI,IAAAG,iCAAA,EAAe3D,QAAQ,CAAC9B,IAAxB,CAAJ,EAAmC;UACjC,IAAA8C,gCAAA,EAAwB,CAAxB,EAA2B,uBAA3B,EADiC,CAEjC;;UACA,IAAIxB,QAAQ,GAAG,QAAf;;UACA,IAAIwE,WAAW,GAAG9D,eAAA,CAAE+D,IAAF,CAAOjE,QAAQ,CAAC5B,IAAT,CAAcoB,QAAd,CAAP,CAAlB;;UACA,IAAIwE,WAAW,CAACE,MAAZ,KAAuB,CAA3B,EAA8B;YAC5B1E,QAAQ,GAAG,QAAX;YACAwE,WAAW,GAAG9D,eAAA,CAAE+D,IAAF,CAAOjE,QAAQ,CAAC5B,IAAT,CAAcoB,QAAd,CAAP,CAAd;;YACA,IAAIwE,WAAW,CAACE,MAAZ,KAAuB,CAA3B,EAA8B;cAC5B1E,QAAQ,GAAG,IAAX;YACD;UACF;;UACD,IAAIA,QAAJ,EAAc;YACZ,IAAM0D,UAAU,GAAGc,WAAW,CAAC,CAAD,CAA9B;YACA,IAAM5E,QAAQ,GAAG,IAAA+E,YAAA,EAAOjB,UAAP,CAAjB;;YACA,IAAMnD,YAAY,GAAGG,eAAA,CAAEC,GAAF,CAAMH,QAAN,EAAgB,CAAC,MAAD,EAASR,QAAT,EAAmB0D,UAAnB,CAAhB,CAArB;;YACA,IAAA3B,gCAAA,sBAAqCnC,QAArC;YACA,MAAM0D,kBAAkB,CAAC/C,YAAD,EAAeC,QAAf,CAAxB;YACA,IAAIgC,QAAQ,GAAG,IAAf;;YACA,IAAIxC,QAAQ,KAAK,QAAjB,EAA2B;cACzBwC,QAAQ,GAAG,IAAA4B,8CAAA,EACT5D,QAAQ,CAAC5B,IAAT,CAAcG,QAAd,CAAuB2E,UAAvB,CADS,CAAX;YAGD;;YACD,IAAAW,wBAAA,EAAerE,QAAf,EAAyBO,YAAzB,EAAuCiC,QAAvC,EACGD,IADH,CACQ,MAAM;cACV,IAAAN,8BAAA,2CACoCrC,QADpC;YAGD,CALH,EAMG8C,KANH,CAMU4B,iBAAD,IAAuB;cAC5B,IAAArC,8BAAA,qCAAkDrC,QAAlD;cACA,IAAAD,qBAAA,uCAA2CC,QAA3C,GAAuD,OAAvD;cACA,IAAAD,qBAAA,EAAa2E,iBAAiB,CAACzC,QAAlB,CAA2BmC,IAAxC,EAA8C,OAA9C;YACD,CAVH;UAWD,CAvBD,MAuBO;YACL,IAAA/B,8BAAA,kCAA+CZ,IAAI,CAACa,UAApD;UACD;QACF,CAtCD,MAsCO;UACL,IAAAvC,qBAAA,EAAa,6BAAb,EAA4C,OAA5C;QACD;MACF,CA5CD;;MAAA;QAAA;MAAA;IAAA;EA6CD,C;;;;SAMqBiF,4B;;;AAsCtB;AACA;AACA;;;;oDAxCO,WAA4CvD,IAA5C,EAAkD;IACvDyC,WAAA,CAAGC,QAAH,CAAY1C,IAAZ,EAAkB,MAAlB;MAAA,8BAA0B,WAAOc,GAAP,EAAY6B,IAAZ,EAAqB;QAC7C,IAAI7B,GAAJ,EAAS,MAAMA,GAAN;QACT,IAAM3B,QAAQ,GAAGyD,IAAI,CAACC,KAAL,CAAWF,IAAX,CAAjB;;QACA,IAAI,IAAAG,iCAAA,EAAe3D,QAAQ,CAAC9B,IAAxB,CAAJ,EAAmC;UACjC;UACA,IAAMmG,SAAS,GAAGnE,eAAA,CAAE+D,IAAF,CAAOjE,QAAQ,CAAC5B,IAAT,CAAcC,MAArB,CAAlB;;UACA,IAAMiG,SAAS,GAAGpE,eAAA,CAAE+D,IAAF,CAAOjE,QAAQ,CAAC5B,IAAT,CAAcE,MAArB,CAAlB;;UACA,IAAM0F,WAAW,GAAGK,SAAS,CAACE,MAAV,CAAiBD,SAAjB,CAApB;UACA,IAAAtD,gCAAA,EAAwBgD,WAAW,CAACE,MAApC,EAA4C,wBAA5C;;UACA,KAAK,IAAMhB,UAAX,IAAyBc,WAAzB,EAAsC;YACpC,IAAMxE,QAAQ,GAAG6E,SAAS,CAACG,QAAV,CAAmBtB,UAAnB,IAAiC,QAAjC,GAA4C,QAA7D;YACA,IAAM9D,QAAQ,GAAG,IAAA+E,YAAA,EAAOjB,UAAP,CAAjB;;YACA,IAAMnD,YAAY,GAAGG,eAAA,CAAEC,GAAF,CAAMH,QAAN,EAAgB,CAAC,MAAD,EAASR,QAAT,EAAmB0D,UAAnB,CAAhB,CAArB,CAHoC,CAIpC;;;YACA,MAAMJ,kBAAkB,CAAC/C,YAAD,EAAeC,QAAf,CAAxB;YACA,IAAIgC,QAAQ,GAAG,IAAf;;YACA,IAAIxC,QAAQ,KAAK,QAAjB,EAA2B;cACzBwC,QAAQ,GAAG,IAAA4B,8CAAA,EACT5D,QAAQ,CAAC5B,IAAT,CAAcG,QAAd,CAAuB2E,UAAvB,CADS,CAAX;YAGD;;YACD,IAAI;cACF;cACA,MAAM,IAAAW,wBAAA,EAAerE,QAAf,EAAyBO,YAAzB,EAAuCiC,QAAvC,CAAN;cACA,IAAAT,gCAAA,qBAAoCnC,QAApC;YACD,CAJD,CAIE,OAAO0E,iBAAP,EAA0B;cAC1B,IAAA3E,qBAAA,uCAA2CC,QAA3C,GAAuD,OAAvD;cACA,IAAAD,qBAAA,EAAa2E,iBAAiB,CAACzC,QAAlB,CAA2BmC,IAAxC,EAA8C,OAA9C;YACD;UACF;;UACD,IAAA/B,8BAAA;QACD,CA5BD,MA4BO;UACL,IAAAtC,qBAAA,EAAa,6BAAb,EAA4C,OAA5C;QACD;MACF,CAlCD;;MAAA;QAAA;MAAA;IAAA;EAmCD,C;;;;SAKqBsF,6B;;;;;qDAAf,aAA+C;IACpD,IAAMC,KAAK,GAAGpB,WAAA,CAAGqB,WAAH,CAAe,GAAf,CAAd;;IACA,IAAMC,SAAS,GAAGF,KAAK,CAACG,MAAN,CAAcC,IAAD,IAC7BA,IAAI,CAACC,WAAL,GAAmBC,QAAnB,CAA4B,YAA5B,CADgB,CAAlB;IAGA,IAAAhE,gCAAA,EAAwB4D,SAAS,CAACV,MAAlC,EAA0C,wBAA1C;IACA,IAAIe,KAAK,GAAG,CAAZ;IACA,IAAIC,WAAW,GAAG,CAAlB;;IACA,KAAK,IAAMrE,IAAX,IAAmB+D,SAAnB,EAA8B;MAC5B,IAAMpB,IAAI,GAAGF,WAAA,CAAG6B,YAAH,CAAgBtE,IAAhB,EAAsB,MAAtB,CAAb;;MACA,IAAMb,QAAQ,GAAGyD,IAAI,CAACC,KAAL,CAAWF,IAAX,CAAjB;;MACA,IAAI,IAAAG,iCAAA,EAAe3D,QAAQ,CAAC9B,IAAxB,CAAJ,EAAmC;QACjC;QACA,IAAMmG,SAAS,GAAGnE,eAAA,CAAE+D,IAAF,CAAOjE,QAAQ,CAAC5B,IAAT,CAAcC,MAArB,CAAlB;;QACA,IAAMiG,SAAS,GAAGpE,eAAA,CAAE+D,IAAF,CAAOjE,QAAQ,CAAC5B,IAAT,CAAcE,MAArB,CAAlB;;QACA,IAAM0F,WAAW,GAAGK,SAAS,CAACE,MAAV,CAAiBD,SAAjB,CAApB;QACAW,KAAK,IAAIjB,WAAW,CAACE,MAArB;QACA,IAAIkB,MAAM,GAAG,CAAb;;QACA,KAAK,IAAMlC,UAAX,IAAyBc,WAAzB,EAAsC;UACpC,IAAMxE,QAAQ,GAAG6E,SAAS,CAACG,QAAV,CAAmBtB,UAAnB,IAAiC,QAAjC,GAA4C,QAA7D;UACA,IAAM9D,QAAQ,GAAG,IAAA+E,YAAA,EAAOjB,UAAP,CAAjB;;UACA,IAAMnD,YAAY,GAAGG,eAAA,CAAEC,GAAF,CAAMH,QAAN,EAAgB,CAAC,MAAD,EAASR,QAAT,EAAmB0D,UAAnB,CAAhB,CAArB;;UACAJ,kBAAkB,CAAC/C,YAAD,EAAeC,QAAf,CAAlB;UACA,IAAIgC,QAAQ,GAAG,IAAf;;UACA,IAAIxC,QAAQ,KAAK,QAAjB,EAA2B;YACzBwC,QAAQ,GAAG,IAAA4B,8CAAA,EACT5D,QAAQ,CAAC5B,IAAT,CAAcG,QAAd,CAAuB2E,UAAvB,CADS,CAAX;UAGD;;UACD,IAAI;YACF;YACA,MAAM,IAAAW,wBAAA,EAAerE,QAAf,EAAyBO,YAAzB,EAAuCiC,QAAvC,CAAN,CAFE,CAGF;UACD,CAJD,CAIE,OAAO8B,iBAAP,EAA0B;YAC1BsB,MAAM,IAAI,CAAV;YACA,IAAAjG,qBAAA,uCAA2CC,QAA3C,GAAuD,OAAvD;YACA,IAAAD,qBAAA,EAAa2E,iBAAiB,CAACzC,QAAlB,CAA2BmC,IAAxC,EAA8C,OAA9C;UACD;QACF;;QACD0B,WAAW,IAAIE,MAAf;QACA,IAAA7D,gCAAA,qBACcyC,WAAW,CAACE,MAAZ,GAAqBkB,MADnC,+BAC8DvE,IAD9D;MAGD,CAhCD,MAgCO;QACL,IAAA1B,qBAAA,0BAA8B0B,IAA9B,eAA8C,OAA9C;MACD;IACF;;IACD,IAAAY,8BAAA,qBACcwD,KAAK,GAAGC,WADtB,iBACwCD,KADxC,+BAEIL,SAAS,CAACV,MAFd;EAKD,C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Saml2Ops.test.js","names":["mock","MockAdapter","axios","state","default","session","setTenant","setRealm","setCookieName","setCookieValue","setDeploymentType","global","CLOUD_DEPLOYMENT_TYPE_KEY","describe","test","expect","Saml2","describeSaml2Provider","toBeDefined","mockFindSaml2Providers","mockGetSaml2ProviderByLocationAndId","mockGetSaml2ProviderMetadata","assertions","toBeTruthy","exportSaml2Metadata","exportSaml2ProviderToFile","exportSaml2ProvidersToFile","exportSaml2ProvidersToFiles","importFirstSaml2ProviderFromFile","importSaml2ProviderFromFile","importSaml2ProvidersFromFile","importSaml2ProvidersFromFiles","mockGetSaml2Providers","listSaml2Providers"],"sources":["ops/Saml2Ops.test.ts"],"sourcesContent":["import axios from 'axios';\nimport MockAdapter from 'axios-mock-adapter';\nimport { Saml2, state } from '../index';\nimport * as global from '../storage/StaticStorage';\nimport {\n mockGetSaml2Providers,\n mockFindSaml2Providers,\n mockGetSaml2ProviderByLocationAndId,\n mockGetSaml2ProviderMetadata,\n} from '../test/mocks/ForgeRockApiMockEngine';\n\nconst mock = new MockAdapter(axios);\n\nstate.default.session.setTenant('https://openam-frodo-dev.forgeblocks.com/am');\nstate.default.session.setRealm('alpha');\nstate.default.session.setCookieName('cookieName');\nstate.default.session.setCookieValue('cookieValue');\nstate.default.session.setDeploymentType(global.CLOUD_DEPLOYMENT_TYPE_KEY);\n\ndescribe('Saml2Ops - describeSaml2Provider()', () => {\n test('describeSaml2Provider() 0: Method is implemented', async () => {\n expect(Saml2.describeSaml2Provider).toBeDefined();\n });\n\n test('describeSaml2Provider() 1: Describe saml2 entity provider', async () => {\n mockFindSaml2Providers(mock);\n mockGetSaml2ProviderByLocationAndId(mock);\n mockGetSaml2ProviderMetadata(mock);\n expect.assertions(2);\n await Saml2.describeSaml2Provider('iSPAzure');\n expect(true).toBeTruthy();\n });\n});\n\ndescribe('Saml2Ops - exportSaml2Metadata()', () => {\n test('exportSaml2Metadata() 0: Method is implemented', async () => {\n expect(Saml2.exportSaml2Metadata).toBeDefined();\n });\n\n test('describeSaml2Provider() 1: Export hosted saml2 entity provider metadata', async () => {\n mockGetSaml2ProviderMetadata(mock);\n expect.assertions(2);\n await Saml2.exportSaml2Metadata('iSPAzure');\n expect(true).toBeTruthy();\n });\n\n test('describeSaml2Provider() 2: Export remote saml2 entity provider metadata', async () => {\n mockGetSaml2ProviderMetadata(mock);\n expect.assertions(2);\n await Saml2.exportSaml2Metadata('urn:federation:MicrosoftOnline');\n expect(true).toBeTruthy();\n });\n});\n\ndescribe('Saml2Ops - exportSaml2ProviderToFile()', () => {\n test('exportSaml2ProviderToFile() 0: Method is implemented', async () => {\n expect(Saml2.exportSaml2ProviderToFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - exportSaml2ProvidersToFile()', () => {\n test('exportSaml2ProvidersToFile() 0: Method is implemented', async () => {\n expect(Saml2.exportSaml2ProvidersToFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - exportSaml2ProvidersToFiles()', () => {\n test('exportSaml2ProvidersToFiles() 0: Method is implemented', async () => {\n expect(Saml2.exportSaml2ProvidersToFiles).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importFirstSaml2ProviderFromFile()', () => {\n test('importFirstSaml2ProviderFromFile() 0: Method is implemented', async () => {\n expect(Saml2.importFirstSaml2ProviderFromFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importSaml2ProviderFromFile()', () => {\n test('importSaml2ProviderFromFile() 0: Method is implemented', async () => {\n expect(Saml2.importSaml2ProviderFromFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importSaml2ProvidersFromFile()', () => {\n test('importSaml2ProvidersFromFile() 0: Method is implemented', async () => {\n expect(Saml2.importSaml2ProvidersFromFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importSaml2ProvidersFromFiles()', () => {\n test('importSaml2ProvidersFromFiles() 0: Method is implemented', async () => {\n expect(Saml2.importSaml2ProvidersFromFiles).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - listSaml2Providers()', () => {\n mockGetSaml2Providers(mock);\n test('listSaml2Providers() 0: Method is implemented', async () => {\n expect(Saml2.listSaml2Providers).toBeDefined();\n });\n\n test('listSaml2Providers() 1: List saml2 entity providers', async () => {\n mockGetSaml2Providers(mock);\n expect.assertions(2);\n await Saml2.listSaml2Providers();\n expect(true).toBeTruthy();\n });\n});\n"],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@ exports.mockGetScript = mockGetScript;
|
|
|
23
23
|
exports.mockGetSocialProviders = mockGetSocialProviders;
|
|
24
24
|
exports.mockGetTree = mockGetTree;
|
|
25
25
|
exports.mockGetTrees = mockGetTrees;
|
|
26
|
+
exports.mockListAllConfigEntities = mockListAllConfigEntities;
|
|
26
27
|
exports.mockPutConfigEntity = mockPutConfigEntity;
|
|
27
28
|
exports.mockPutNode = mockPutNode;
|
|
28
29
|
exports.mockPutScript = mockPutScript;
|
|
@@ -319,6 +320,14 @@ function mockPutSocialProviderByTypeAndId(mock, callback) {
|
|
|
319
320
|
*/
|
|
320
321
|
|
|
321
322
|
|
|
323
|
+
function mockListAllConfigEntities(mock) {
|
|
324
|
+
mock.onGet(/.*?\/openidm\/config$/).reply(function () {
|
|
325
|
+
var mockStatus = 200;
|
|
326
|
+
var mockResponse = JSON.parse(_fs.default.readFileSync(_path.default.resolve(_dirname, "./IdmConfigApi/getAllConfigEntities/entities.json"), 'utf8'));
|
|
327
|
+
return [mockStatus, mockResponse];
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
|
|
322
331
|
function mockGetConfigEntity(mock) {
|
|
323
332
|
mock.onGet(/.*?\/openidm\/config\/.+/).reply(function (config) {
|
|
324
333
|
var entityId = config.url ? config.url.substring(config.url.indexOf('/config/') + 8) : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForgeRockApiMockEngine.js","names":["__dirname","path","dirname","fileURLToPath","readJsonFile","file","json","JSON","parse","fs","readFileSync","resolve","getTrees","treeObjects","mockGetTrees","mock","onGet","reply","mockStatus","mockResponse","expect","toBeTruthy","getTree","treeId","treeObject","mockGetTree","config","elements","url","split","length","_id","toBe","mockPutTree","callback","onPut","mockTreeObj","data","mockGetNode","nodeType","nodeId","mockPutNode","mockNodeObj","getScript","scriptId","mockGetScript","mockPutScript","mockScriptObj","getScriptByName","scriptName","getSaml2Providers","mockGetSaml2Providers","mockFindSaml2Providers","result","resultCount","pagedResultsCookie","totalPagedResultsPolicy","totalPagedResults","remainingPagedResults","getCirclesOfTrust","mockGetCirclesOfTrust","mockCreateCircleOfTrust","onPost","mockCotObj","cotId","mockUpdateCircleOfTrust","mockGetSaml2ProviderByLocationAndId","location","providerId","mockCreateSaml2Provider","parseUrl","pathname","mockSaml2ProviderLocation","mockSaml2ProviderObj","mockSaml2ProviderId64","metaDataXml","decode","standardMetadata","encode","match","mockUpdateSaml2Provider","mockGetSaml2ProviderMetadata","parsed","realm","searchParam","entityId","getSocialProviders","mockGetSocialProviders","mockPutSocialProviderByTypeAndId","mockSocialProviderType","mockSocialProviderId","mockSocialProviderObj","mockGetConfigEntity","substring","indexOf","mockPutConfigEntity"],"sources":["test/mocks/ForgeRockApiMockEngine.ts"],"sourcesContent":["import MockAdapter from 'axios-mock-adapter';\nimport fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { encode, decode } from '../../api/utils/Base64';\nimport { parseUrl } from '../../api/utils/ApiUtils';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport function readJsonFile(file: string) {\n const json = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, `${file}`), 'utf8')\n );\n return json;\n}\n\n/**\n * AM Mocks and Utils\n */\n\nexport function getTrees() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './TreeApi/getTrees/trees.json'),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetTrees(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getTrees();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getTree(treeId: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./TreeApi/getTree/${treeId}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\nexport function mockGetTree(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const treeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getTree(treeId);\n expect(mockResponse._id).toBe(treeId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutTree(\n mock: MockAdapter,\n callback: (mockTreeId: string, mockTreeObj) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const treeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockTreeObj = JSON.parse(config.data);\n callback(treeId, mockTreeObj);\n return [mockStatus, mockTreeObj];\n });\n}\n\nexport function mockGetNode(mock: MockAdapter) {\n mock\n .onGet(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/nodes\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const nodeType = elements[elements?.length - 2];\n const nodeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./NodeApi/getNode/${nodeType}/${nodeId}.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse._id).toBe(nodeId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutNode(\n mock: MockAdapter,\n callback: (mockNodeId: string, mockNodeObj) => void\n) {\n mock\n .onPut(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/nodes\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const nodeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockNodeObj = JSON.parse(config.data);\n callback(nodeId, mockNodeObj);\n return [mockStatus, mockNodeObj];\n });\n}\n\nexport function getScript(scriptId: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./ScriptApi/getScript/${scriptId}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\nexport function mockGetScript(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\/.+/)\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const scriptId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getScript(scriptId);\n expect(mockResponse._id).toBe(scriptId);\n return [mockStatus, mockResponse];\n });\n}\n\n// mockPutScript(mock);\nexport function mockPutScript(\n mock: MockAdapter,\n callback: (mockScriptId: string, mockScriptObj) => void\n) {\n mock\n .onPut(/.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\/.+/)\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const scriptId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockScriptObj = JSON.parse(config.data);\n callback(scriptId, mockScriptObj);\n return [mockStatus, mockScriptObj];\n });\n}\n\nexport function getScriptByName(scriptName: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./ScriptApi/getScriptByName/${scriptName}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\n// export function mockGetScriptByName(mock: MockAdapter) {\n// mock\n// .onGet(\n// /\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\?_queryFilter=name\\+eq\\+'.+'/\n// )\n// .reply(function (config) {\n// const elements = config.url ? config.url.split('/') : [];\n// const scriptId = elements[elements?.length - 1];\n// const mockStatus = 200;\n// const mockResponse = getScript(scriptId);\n// expect(mockResponse._id).toBe(scriptId);\n// return [mockStatus, mockResponse];\n// });\n// }\n\nexport function getSaml2Providers() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './Saml2Api/getProviders/providers.json'),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetSaml2Providers(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getSaml2Providers();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockFindSaml2Providers(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\?_queryFilter=.+?&_fields=.+/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = {\n result: [],\n resultCount: 0,\n pagedResultsCookie: null,\n totalPagedResultsPolicy: 'EXACT',\n totalPagedResults: 1,\n remainingPagedResults: -1,\n };\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getCirclesOfTrust() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n './CirclesOfTrustApi/getCirclesOfTrust/cots.json'\n ),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetCirclesOfTrust(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getCirclesOfTrust();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockCreateCircleOfTrust(\n mock: MockAdapter,\n callback: (mockCotId: string, mockCotObj) => void\n) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\/\\?_action=create/\n )\n .reply(function (config) {\n const mockCotObj = JSON.parse(config.data);\n const cotId = mockCotObj._id;\n const mockStatus = 200;\n callback(cotId, mockCotObj);\n return [mockStatus, mockCotObj];\n });\n}\n\nexport function mockUpdateCircleOfTrust(\n mock: MockAdapter,\n callback: (mockCotId: string, mockCotObj) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const cotId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockCotObj = JSON.parse(config.data);\n callback(cotId, mockCotObj);\n return [mockStatus, mockCotObj];\n });\n}\n\nexport function mockGetSaml2ProviderByLocationAndId(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/.+?\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const location = elements[elements?.length - 2];\n const providerId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Api/getProviderByLocationAndId/${location}/${providerId}.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse._id).toBe(providerId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockCreateSaml2Provider(\n mock: MockAdapter,\n callback: (\n mockSaml2ProviderId64: string,\n mockSaml2ProviderLocation: string,\n mockSaml2ProviderObj\n ) => void\n) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/(hosted|remote)\\/\\?_action=(create|importEntity)/\n )\n .reply(function (config) {\n const elements = config.url\n ? parseUrl(config.url).pathname.split('/')\n : [];\n const mockSaml2ProviderLocation = elements[elements?.length - 1];\n const mockSaml2ProviderObj = JSON.parse(config.data);\n let mockSaml2ProviderId64 = '';\n if (mockSaml2ProviderObj._id) {\n mockSaml2ProviderId64 = mockSaml2ProviderObj._id;\n } else {\n const metaDataXml = decode(mockSaml2ProviderObj.standardMetadata);\n mockSaml2ProviderId64 = encode(\n metaDataXml.match(/entityID=\"(.+?)\"/)[1],\n false\n );\n }\n const mockStatus = 200;\n callback(\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n );\n return [mockStatus, mockSaml2ProviderObj];\n });\n}\n\nexport function mockUpdateSaml2Provider(\n mock: MockAdapter,\n callback: (\n mockSaml2ProviderId64: string,\n mockSaml2ProviderLocation: string,\n mockSaml2ProviderObj\n ) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/(hosted|remote)\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const mockSaml2ProviderLocation = elements[elements?.length - 2];\n const mockSaml2ProviderId64 = elements[elements?.length - 1];\n const mockSaml2ProviderObj = JSON.parse(config.data);\n const mockStatus = 200;\n callback(\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n );\n return [mockStatus, mockSaml2ProviderObj];\n });\n}\n\nexport function mockGetSaml2ProviderMetadata(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/saml2\\/jsp\\/exportmetadata.jsp\\?entityid=.+?&realm=.+/)\n .reply(function (config) {\n const parsed = parseUrl(config.url);\n const realm = parsed.searchParam['realm'];\n const entityId = parsed.searchParam['entityid'];\n const mockStatus = 200;\n const mockResponse = fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Api/getProviderMetadata/${realm}/${encode(\n entityId,\n false\n )}.xml`\n ),\n 'utf8'\n );\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getSocialProviders() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n './SocialIdentityProvidersApi/getSocialIdentityProviders/socialIdentityProviders.json'\n ),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetSocialProviders(mock: MockAdapter) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/services\\/SocialIdentityProviders\\?_action=nextdescendents/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getSocialProviders();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutSocialProviderByTypeAndId(\n mock: MockAdapter,\n callback: (\n mockSocialProviderId: string,\n mockSocialProviderType: string,\n mockSocialProviderObj\n ) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/services\\/SocialIdentityProviders\\/.+?\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const mockSocialProviderType = elements[elements?.length - 2];\n const mockSocialProviderId = elements[elements?.length - 1];\n const mockSocialProviderObj = JSON.parse(config.data);\n const mockStatus = 200;\n callback(\n mockSocialProviderId,\n mockSocialProviderType,\n mockSocialProviderObj\n );\n return [mockStatus, mockSocialProviderObj];\n });\n}\n\n/**\n * IDM Mocks and Utils\n */\n\nexport function mockGetConfigEntity(mock: MockAdapter) {\n mock.onGet(/.*?\\/openidm\\/config\\/.+/).reply(function (config) {\n const entityId = config.url\n ? config.url.substring(config.url.indexOf('/config/') + 8)\n : '';\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getConfigEntity/${entityId}.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse._id).toBe(entityId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutConfigEntity(\n mock: MockAdapter,\n callback: (mockEntityId: string, mockEntityObj) => void\n) {\n mock.onPut(/.*?\\/openidm\\/config\\/.+/).reply(function (config) {\n const entityId = config.url\n ? config.url.substring(config.url.indexOf('/config/') + 8)\n : '';\n const mockStatus = 200;\n const mockResponse = JSON.parse(config.data);\n callback(entityId, mockResponse);\n return [mockStatus, mockResponse];\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,QAAS,GAAGC,aAAA,CAAKC,OAAL,CAAa,IAAAC,kBAAA,sDAAb,CAAlB;;AAEO,SAASC,YAAT,CAAsBC,IAAtB,EAAoC;EACzC,IAAMC,IAAI,GAAGC,IAAI,CAACC,KAAL,CACXC,WAAA,CAAGC,YAAH,CAAgBT,aAAA,CAAKU,OAAL,CAAaX,QAAb,YAA2BK,IAA3B,EAAhB,EAAoD,MAApD,CADW,CAAb;EAGA,OAAOC,IAAP;AACD;AAED;AACA;AACA;;;AAEO,SAASM,QAAT,GAAoB;EACzB,IAAMC,WAAW,GAAGN,IAAI,CAACC,KAAL,CAClBC,WAAA,CAAGC,YAAH,CACET,aAAA,CAAKU,OAAL,CAAaX,QAAb,EAAwB,+BAAxB,CADF,EAEE,MAFF,CADkB,CAApB;EAMA,OAAOa,WAAP;AACD;;AAEM,SAASC,YAAT,CAAsBC,IAAtB,EAAyC;EAC9CA,IAAI,CACDC,KADH,CAEI,qHAFJ,EAIGC,KAJH,CAIS,YAAY;IACjB,IAAMC,UAAU,GAAG,GAAnB;IACA,IAAMC,YAAY,GAAGP,QAAQ,EAA7B;IACAQ,MAAM,CAACD,YAAD,CAAN,CAAqBE,UAArB;IACA,OAAO,CAACH,UAAD,EAAaC,YAAb,CAAP;EACD,CATH;AAUD;;AAEM,SAASG,OAAT,CAAiBC,MAAjB,EAAiC;EACtC,IAAMC,UAAU,GAAGjB,IAAI,CAACC,KAAL,CACjBC,WAAA,CAAGC,YAAH,CACET,aAAA,CAAKU,OAAL,CAAaX,QAAb,8BAA6CuB,MAA7C,WADF,EAEE,MAFF,CADiB,CAAnB;EAMA,OAAOC,UAAP;AACD;;AAEM,SAASC,WAAT,CAAqBV,IAArB,EAAwC;EAC7CA,IAAI,CACDC,KADH,CAEI,sGAFJ,EAIGC,KAJH,CAIS,UAAUS,MAAV,EAAkB;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAP,GAAaF,MAAM,CAACE,GAAP,CAAWC,KAAX,CAAiB,GAAjB,CAAb,GAAqC,EAAtD;IACA,IAAMN,MAAM,GAAGI,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAAvB;IACA,IAAMZ,UAAU,GAAG,GAAnB;IACA,IAAMC,YAAY,GAAGG,OAAO,CAACC,MAAD,CAA5B;IACAH,MAAM,CAACD,YAAY,CAACY,GAAd,CAAN,CAAyBC,IAAzB,CAA8BT,MAA9B;IACA,OAAO,CAACL,UAAD,EAAaC,YAAb,CAAP;EACD,CAXH;AAYD;;AAEM,SAASc,WAAT,CACLlB,IADK,EAELmB,QAFK,EAGL;EACAnB,IAAI,CACDoB,KADH,CAEI,sGAFJ,EAIGlB,KAJH,CAIS,UAAUS,MAAV,EAAkB;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAP,GAAaF,MAAM,CAACE,GAAP,CAAWC,KAAX,CAAiB,GAAjB,CAAb,GAAqC,EAAtD;IACA,IAAMN,MAAM,GAAGI,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAAvB;IACA,IAAMZ,UAAU,GAAG,GAAnB;IACA,IAAMkB,WAAW,GAAG7B,IAAI,CAACC,KAAL,CAAWkB,MAAM,CAACW,IAAlB,CAApB;IACAH,QAAQ,CAACX,MAAD,EAASa,WAAT,CAAR;IACA,OAAO,CAAClB,UAAD,EAAakB,WAAb,CAAP;EACD,CAXH;AAYD;;AAEM,SAASE,WAAT,CAAqBvB,IAArB,EAAwC;EAC7CA,IAAI,CACDC,KADH,CAEI,mGAFJ,EAIGC,KAJH,CAIS,UAAUS,MAAV,EAAkB;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAP,GAAaF,MAAM,CAACE,GAAP,CAAWC,KAAX,CAAiB,GAAjB,CAAb,GAAqC,EAAtD;IACA,IAAMU,QAAQ,GAAGZ,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAAzB;IACA,IAAMU,MAAM,GAAGb,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAAvB;IACA,IAAMZ,UAAU,GAAG,GAAnB;IACA,IAAMC,YAAY,GAAGZ,IAAI,CAACC,KAAL,CACnBC,WAAA,CAAGC,YAAH,CACET,aAAA,CAAKU,OAAL,CACEX,QADF,8BAEuBuC,QAFvB,cAEmCC,MAFnC,WADF,EAKE,MALF,CADmB,CAArB;IASApB,MAAM,CAACD,YAAY,CAACY,GAAd,CAAN,CAAyBC,IAAzB,CAA8BQ,MAA9B;IACA,OAAO,CAACtB,UAAD,EAAaC,YAAb,CAAP;EACD,CApBH;AAqBD;;AAEM,SAASsB,WAAT,CACL1B,IADK,EAELmB,QAFK,EAGL;EACAnB,IAAI,CACDoB,KADH,CAEI,mGAFJ,EAIGlB,KAJH,CAIS,UAAUS,MAAV,EAAkB;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAP,GAAaF,MAAM,CAACE,GAAP,CAAWC,KAAX,CAAiB,GAAjB,CAAb,GAAqC,EAAtD;IACA,IAAMW,MAAM,GAAGb,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAAvB;IACA,IAAMZ,UAAU,GAAG,GAAnB;IACA,IAAMwB,WAAW,GAAGnC,IAAI,CAACC,KAAL,CAAWkB,MAAM,CAACW,IAAlB,CAApB;IACAH,QAAQ,CAACM,MAAD,EAASE,WAAT,CAAR;IACA,OAAO,CAACxB,UAAD,EAAawB,WAAb,CAAP;EACD,CAXH;AAYD;;AAEM,SAASC,SAAT,CAAmBC,QAAnB,EAAqC;EAC1C,IAAMpB,UAAU,GAAGjB,IAAI,CAACC,KAAL,CACjBC,WAAA,CAAGC,YAAH,CACET,aAAA,CAAKU,OAAL,CAAaX,QAAb,kCAAiD4C,QAAjD,WADF,EAEE,MAFF,CADiB,CAAnB;EAMA,OAAOpB,UAAP;AACD;;AAEM,SAASqB,aAAT,CAAuB9B,IAAvB,EAA0C;EAC/CA,IAAI,CACDC,KADH,CACS,qDADT,EAEGC,KAFH,CAES,UAAUS,MAAV,EAAkB;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAP,GAAaF,MAAM,CAACE,GAAP,CAAWC,KAAX,CAAiB,GAAjB,CAAb,GAAqC,EAAtD;IACA,IAAMe,QAAQ,GAAGjB,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAAzB;IACA,IAAMZ,UAAU,GAAG,GAAnB;IACA,IAAMC,YAAY,GAAGwB,SAAS,CAACC,QAAD,CAA9B;IACAxB,MAAM,CAACD,YAAY,CAACY,GAAd,CAAN,CAAyBC,IAAzB,CAA8BY,QAA9B;IACA,OAAO,CAAC1B,UAAD,EAAaC,YAAb,CAAP;EACD,CATH;AAUD,C,CAED;;;AACO,SAAS2B,aAAT,CACL/B,IADK,EAELmB,QAFK,EAGL;EACAnB,IAAI,CACDoB,KADH,CACS,qDADT,EAEGlB,KAFH,CAES,UAAUS,MAAV,EAAkB;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAP,GAAaF,MAAM,CAACE,GAAP,CAAWC,KAAX,CAAiB,GAAjB,CAAb,GAAqC,EAAtD;IACA,IAAMe,QAAQ,GAAGjB,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAAzB;IACA,IAAMZ,UAAU,GAAG,GAAnB;IACA,IAAM6B,aAAa,GAAGxC,IAAI,CAACC,KAAL,CAAWkB,MAAM,CAACW,IAAlB,CAAtB;IACAH,QAAQ,CAACU,QAAD,EAAWG,aAAX,CAAR;IACA,OAAO,CAAC7B,UAAD,EAAa6B,aAAb,CAAP;EACD,CATH;AAUD;;AAEM,SAASC,eAAT,CAAyBC,UAAzB,EAA6C;EAClD,IAAMzB,UAAU,GAAGjB,IAAI,CAACC,KAAL,CACjBC,WAAA,CAAGC,YAAH,CACET,aAAA,CAAKU,OAAL,CAAaX,QAAb,wCAAuDiD,UAAvD,WADF,EAEE,MAFF,CADiB,CAAnB;EAMA,OAAOzB,UAAP;AACD,C,CAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEO,SAAS0B,iBAAT,GAA6B;EAClC,IAAMrC,WAAW,GAAGN,IAAI,CAACC,KAAL,CAClBC,WAAA,CAAGC,YAAH,CACET,aAAA,CAAKU,OAAL,CAAaX,QAAb,EAAwB,wCAAxB,CADF,EAEE,MAFF,CADkB,CAApB;EAMA,OAAOa,WAAP;AACD;;AAEM,SAASsC,qBAAT,CAA+BpC,IAA/B,EAAkD;EACvDA,IAAI,CACDC,KADH,CAEI,gFAFJ,EAIGC,KAJH,CAIS,YAAY;IACjB,IAAMC,UAAU,GAAG,GAAnB;IACA,IAAMC,YAAY,GAAG+B,iBAAiB,EAAtC;IACA9B,MAAM,CAACD,YAAD,CAAN,CAAqBE,UAArB;IACA,OAAO,CAACH,UAAD,EAAaC,YAAb,CAAP;EACD,CATH;AAUD;;AAEM,SAASiC,sBAAT,CAAgCrC,IAAhC,EAAmD;EACxDA,IAAI,CACDC,KADH,CAEI,0FAFJ,EAIGC,KAJH,CAIS,YAAY;IACjB,IAAMC,UAAU,GAAG,GAAnB;IACA,IAAMC,YAAY,GAAG;MACnBkC,MAAM,EAAE,EADW;MAEnBC,WAAW,EAAE,CAFM;MAGnBC,kBAAkB,EAAE,IAHD;MAInBC,uBAAuB,EAAE,OAJN;MAKnBC,iBAAiB,EAAE,CALA;MAMnBC,qBAAqB,EAAE,CAAC;IANL,CAArB;IAQAtC,MAAM,CAACD,YAAD,CAAN,CAAqBE,UAArB;IACA,OAAO,CAACH,UAAD,EAAaC,YAAb,CAAP;EACD,CAhBH;AAiBD;;AAEM,SAASwC,iBAAT,GAA6B;EAClC,IAAM9C,WAAW,GAAGN,IAAI,CAACC,KAAL,CAClBC,WAAA,CAAGC,YAAH,CACET,aAAA,CAAKU,OAAL,CACEX,QADF,EAEE,iDAFF,CADF,EAKE,MALF,CADkB,CAApB;EASA,OAAOa,WAAP;AACD;;AAEM,SAAS+C,qBAAT,CAA+B7C,IAA/B,EAAkD;EACvDA,IAAI,CACDC,KADH,CAEI,qGAFJ,EAIGC,KAJH,CAIS,YAAY;IACjB,IAAMC,UAAU,GAAG,GAAnB;IACA,IAAMC,YAAY,GAAGwC,iBAAiB,EAAtC;IACAvC,MAAM,CAACD,YAAD,CAAN,CAAqBE,UAArB;IACA,OAAO,CAACH,UAAD,EAAaC,YAAb,CAAP;EACD,CATH;AAUD;;AAEM,SAAS0C,uBAAT,CACL9C,IADK,EAELmB,QAFK,EAGL;EACAnB,IAAI,CACD+C,MADH,CAEI,oGAFJ,EAIG7C,KAJH,CAIS,UAAUS,MAAV,EAAkB;IACvB,IAAMqC,UAAU,GAAGxD,IAAI,CAACC,KAAL,CAAWkB,MAAM,CAACW,IAAlB,CAAnB;IACA,IAAM2B,KAAK,GAAGD,UAAU,CAAChC,GAAzB;IACA,IAAMb,UAAU,GAAG,GAAnB;IACAgB,QAAQ,CAAC8B,KAAD,EAAQD,UAAR,CAAR;IACA,OAAO,CAAC7C,UAAD,EAAa6C,UAAb,CAAP;EACD,CAVH;AAWD;;AAEM,SAASE,uBAAT,CACLlD,IADK,EAELmB,QAFK,EAGL;EACAnB,IAAI,CACDoB,KADH,CAEI,sFAFJ,EAIGlB,KAJH,CAIS,UAAUS,MAAV,EAAkB;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAP,GAAaF,MAAM,CAACE,GAAP,CAAWC,KAAX,CAAiB,GAAjB,CAAb,GAAqC,EAAtD;IACA,IAAMmC,KAAK,GAAGrC,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAAtB;IACA,IAAMZ,UAAU,GAAG,GAAnB;IACA,IAAM6C,UAAU,GAAGxD,IAAI,CAACC,KAAL,CAAWkB,MAAM,CAACW,IAAlB,CAAnB;IACAH,QAAQ,CAAC8B,KAAD,EAAQD,UAAR,CAAR;IACA,OAAO,CAAC7C,UAAD,EAAa6C,UAAb,CAAP;EACD,CAXH;AAYD;;AAEM,SAASG,mCAAT,CAA6CnD,IAA7C,EAAgE;EACrEA,IAAI,CACDC,KADH,CAEI,sEAFJ,EAIGC,KAJH,CAIS,UAAUS,MAAV,EAAkB;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAP,GAAaF,MAAM,CAACE,GAAP,CAAWC,KAAX,CAAiB,GAAjB,CAAb,GAAqC,EAAtD;IACA,IAAMsC,QAAQ,GAAGxC,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAAzB;IACA,IAAMsC,UAAU,GAAGzC,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAA3B;IACA,IAAMZ,UAAU,GAAG,GAAnB;IACA,IAAMC,YAAY,GAAGZ,IAAI,CAACC,KAAL,CACnBC,WAAA,CAAGC,YAAH,CACET,aAAA,CAAKU,OAAL,CACEX,QADF,kDAE2CmE,QAF3C,cAEuDC,UAFvD,WADF,EAKE,MALF,CADmB,CAArB;IASAhD,MAAM,CAACD,YAAY,CAACY,GAAd,CAAN,CAAyBC,IAAzB,CAA8BoC,UAA9B;IACA,OAAO,CAAClD,UAAD,EAAaC,YAAb,CAAP;EACD,CApBH;AAqBD;;AAEM,SAASkD,uBAAT,CACLtD,IADK,EAELmB,QAFK,EAOL;EACAnB,IAAI,CACD+C,MADH,CAEI,+GAFJ,EAIG7C,KAJH,CAIS,UAAUS,MAAV,EAAkB;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAP,GACb,IAAA0C,kBAAA,EAAS5C,MAAM,CAACE,GAAhB,EAAqB2C,QAArB,CAA8B1C,KAA9B,CAAoC,GAApC,CADa,GAEb,EAFJ;IAGA,IAAM2C,yBAAyB,GAAG7C,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAA1C;IACA,IAAM2C,oBAAoB,GAAGlE,IAAI,CAACC,KAAL,CAAWkB,MAAM,CAACW,IAAlB,CAA7B;IACA,IAAIqC,qBAAqB,GAAG,EAA5B;;IACA,IAAID,oBAAoB,CAAC1C,GAAzB,EAA8B;MAC5B2C,qBAAqB,GAAGD,oBAAoB,CAAC1C,GAA7C;IACD,CAFD,MAEO;MACL,IAAM4C,WAAW,GAAG,IAAAC,YAAA,EAAOH,oBAAoB,CAACI,gBAA5B,CAApB;MACAH,qBAAqB,GAAG,IAAAI,YAAA,EACtBH,WAAW,CAACI,KAAZ,CAAkB,kBAAlB,EAAsC,CAAtC,CADsB,EAEtB,KAFsB,CAAxB;IAID;;IACD,IAAM7D,UAAU,GAAG,GAAnB;IACAgB,QAAQ,CACNwC,qBADM,EAENF,yBAFM,EAGNC,oBAHM,CAAR;IAKA,OAAO,CAACvD,UAAD,EAAauD,oBAAb,CAAP;EACD,CA3BH;AA4BD;;AAEM,SAASO,uBAAT,CACLjE,IADK,EAELmB,QAFK,EAOL;EACAnB,IAAI,CACDoB,KADH,CAEI,kFAFJ,EAIGlB,KAJH,CAIS,UAAUS,MAAV,EAAkB;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAP,GAAaF,MAAM,CAACE,GAAP,CAAWC,KAAX,CAAiB,GAAjB,CAAb,GAAqC,EAAtD;IACA,IAAM2C,yBAAyB,GAAG7C,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAA1C;IACA,IAAM4C,qBAAqB,GAAG/C,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAAtC;IACA,IAAM2C,oBAAoB,GAAGlE,IAAI,CAACC,KAAL,CAAWkB,MAAM,CAACW,IAAlB,CAA7B;IACA,IAAMnB,UAAU,GAAG,GAAnB;IACAgB,QAAQ,CACNwC,qBADM,EAENF,yBAFM,EAGNC,oBAHM,CAAR;IAKA,OAAO,CAACvD,UAAD,EAAauD,oBAAb,CAAP;EACD,CAhBH;AAiBD;;AAEM,SAASQ,4BAAT,CAAsClE,IAAtC,EAAyD;EAC9DA,IAAI,CACDC,KADH,CACS,4DADT,EAEGC,KAFH,CAES,UAAUS,MAAV,EAAkB;IACvB,IAAMwD,MAAM,GAAG,IAAAZ,kBAAA,EAAS5C,MAAM,CAACE,GAAhB,CAAf;IACA,IAAMuD,KAAK,GAAGD,MAAM,CAACE,WAAP,CAAmB,OAAnB,CAAd;IACA,IAAMC,QAAQ,GAAGH,MAAM,CAACE,WAAP,CAAmB,UAAnB,CAAjB;IACA,IAAMlE,UAAU,GAAG,GAAnB;;IACA,IAAMC,YAAY,GAAGV,WAAA,CAAGC,YAAH,CACnBT,aAAA,CAAKU,OAAL,CACEX,QADF,2CAEoCmF,KAFpC,cAE6C,IAAAL,YAAA,EACzCO,QADyC,EAEzC,KAFyC,CAF7C,UADmB,EAQnB,MARmB,CAArB;;IAUAjE,MAAM,CAACD,YAAD,CAAN,CAAqBE,UAArB;IACA,OAAO,CAACH,UAAD,EAAaC,YAAb,CAAP;EACD,CAnBH;AAoBD;;AAEM,SAASmE,kBAAT,GAA8B;EACnC,IAAMzE,WAAW,GAAGN,IAAI,CAACC,KAAL,CAClBC,WAAA,CAAGC,YAAH,CACET,aAAA,CAAKU,OAAL,CACEX,QADF,EAEE,sFAFF,CADF,EAKE,MALF,CADkB,CAApB;EASA,OAAOa,WAAP;AACD;;AAEM,SAAS0E,sBAAT,CAAgCxE,IAAhC,EAAmD;EACxDA,IAAI,CACD+C,MADH,CAEI,kHAFJ,EAIG7C,KAJH,CAIS,YAAY;IACjB,IAAMC,UAAU,GAAG,GAAnB;IACA,IAAMC,YAAY,GAAGmE,kBAAkB,EAAvC;IACAlE,MAAM,CAACD,YAAD,CAAN,CAAqBE,UAArB;IACA,OAAO,CAACH,UAAD,EAAaC,YAAb,CAAP;EACD,CATH;AAUD;;AAEM,SAASqE,gCAAT,CACLzE,IADK,EAELmB,QAFK,EAOL;EACAnB,IAAI,CACDoB,KADH,CAEI,kGAFJ,EAIGlB,KAJH,CAIS,UAAUS,MAAV,EAAkB;IACvB,IAAMC,QAAQ,GAAGD,MAAM,CAACE,GAAP,GAAaF,MAAM,CAACE,GAAP,CAAWC,KAAX,CAAiB,GAAjB,CAAb,GAAqC,EAAtD;IACA,IAAM4D,sBAAsB,GAAG9D,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAAvC;IACA,IAAM4D,oBAAoB,GAAG/D,QAAQ,CAAC,CAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEG,MAAV,IAAmB,CAApB,CAArC;IACA,IAAM6D,qBAAqB,GAAGpF,IAAI,CAACC,KAAL,CAAWkB,MAAM,CAACW,IAAlB,CAA9B;IACA,IAAMnB,UAAU,GAAG,GAAnB;IACAgB,QAAQ,CACNwD,oBADM,EAEND,sBAFM,EAGNE,qBAHM,CAAR;IAKA,OAAO,CAACzE,UAAD,EAAayE,qBAAb,CAAP;EACD,CAhBH;AAiBD;AAED;AACA;AACA;;;AAEO,SAASC,mBAAT,CAA6B7E,IAA7B,EAAgD;EACrDA,IAAI,CAACC,KAAL,CAAW,0BAAX,EAAuCC,KAAvC,CAA6C,UAAUS,MAAV,EAAkB;IAC7D,IAAM2D,QAAQ,GAAG3D,MAAM,CAACE,GAAP,GACbF,MAAM,CAACE,GAAP,CAAWiE,SAAX,CAAqBnE,MAAM,CAACE,GAAP,CAAWkE,OAAX,CAAmB,UAAnB,IAAiC,CAAtD,CADa,GAEb,EAFJ;IAGA,IAAM5E,UAAU,GAAG,GAAnB;IACA,IAAMC,YAAY,GAAGZ,IAAI,CAACC,KAAL,CACnBC,WAAA,CAAGC,YAAH,CACET,aAAA,CAAKU,OAAL,CACEX,QADF,2CAEoCqF,QAFpC,WADF,EAKE,MALF,CADmB,CAArB;IASAjE,MAAM,CAACD,YAAY,CAACY,GAAd,CAAN,CAAyBC,IAAzB,CAA8BqD,QAA9B;IACA,OAAO,CAACnE,UAAD,EAAaC,YAAb,CAAP;EACD,CAhBD;AAiBD;;AAEM,SAAS4E,mBAAT,CACLhF,IADK,EAELmB,QAFK,EAGL;EACAnB,IAAI,CAACoB,KAAL,CAAW,0BAAX,EAAuClB,KAAvC,CAA6C,UAAUS,MAAV,EAAkB;IAC7D,IAAM2D,QAAQ,GAAG3D,MAAM,CAACE,GAAP,GACbF,MAAM,CAACE,GAAP,CAAWiE,SAAX,CAAqBnE,MAAM,CAACE,GAAP,CAAWkE,OAAX,CAAmB,UAAnB,IAAiC,CAAtD,CADa,GAEb,EAFJ;IAGA,IAAM5E,UAAU,GAAG,GAAnB;IACA,IAAMC,YAAY,GAAGZ,IAAI,CAACC,KAAL,CAAWkB,MAAM,CAACW,IAAlB,CAArB;IACAH,QAAQ,CAACmD,QAAD,EAAWlE,YAAX,CAAR;IACA,OAAO,CAACD,UAAD,EAAaC,YAAb,CAAP;EACD,CARD;AASD"}
|
|
1
|
+
{"version":3,"file":"ForgeRockApiMockEngine.js","names":["__dirname","path","dirname","fileURLToPath","readJsonFile","file","json","JSON","parse","fs","readFileSync","resolve","getTrees","treeObjects","mockGetTrees","mock","onGet","reply","mockStatus","mockResponse","expect","toBeTruthy","getTree","treeId","treeObject","mockGetTree","config","elements","url","split","length","_id","toBe","mockPutTree","callback","onPut","mockTreeObj","data","mockGetNode","nodeType","nodeId","mockPutNode","mockNodeObj","getScript","scriptId","mockGetScript","mockPutScript","mockScriptObj","getScriptByName","scriptName","getSaml2Providers","mockGetSaml2Providers","mockFindSaml2Providers","result","resultCount","pagedResultsCookie","totalPagedResultsPolicy","totalPagedResults","remainingPagedResults","getCirclesOfTrust","mockGetCirclesOfTrust","mockCreateCircleOfTrust","onPost","mockCotObj","cotId","mockUpdateCircleOfTrust","mockGetSaml2ProviderByLocationAndId","location","providerId","mockCreateSaml2Provider","parseUrl","pathname","mockSaml2ProviderLocation","mockSaml2ProviderObj","mockSaml2ProviderId64","metaDataXml","decode","standardMetadata","encode","match","mockUpdateSaml2Provider","mockGetSaml2ProviderMetadata","parsed","realm","searchParam","entityId","getSocialProviders","mockGetSocialProviders","mockPutSocialProviderByTypeAndId","mockSocialProviderType","mockSocialProviderId","mockSocialProviderObj","mockListAllConfigEntities","mockGetConfigEntity","substring","indexOf","mockPutConfigEntity"],"sources":["test/mocks/ForgeRockApiMockEngine.ts"],"sourcesContent":["import MockAdapter from 'axios-mock-adapter';\nimport fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { encode, decode } from '../../api/utils/Base64';\nimport { parseUrl } from '../../api/utils/ApiUtils';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport function readJsonFile(file: string) {\n const json = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, `${file}`), 'utf8')\n );\n return json;\n}\n\n/**\n * AM Mocks and Utils\n */\n\nexport function getTrees() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './TreeApi/getTrees/trees.json'),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetTrees(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getTrees();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getTree(treeId: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./TreeApi/getTree/${treeId}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\nexport function mockGetTree(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const treeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getTree(treeId);\n expect(mockResponse._id).toBe(treeId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutTree(\n mock: MockAdapter,\n callback: (mockTreeId: string, mockTreeObj) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/trees\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const treeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockTreeObj = JSON.parse(config.data);\n callback(treeId, mockTreeObj);\n return [mockStatus, mockTreeObj];\n });\n}\n\nexport function mockGetNode(mock: MockAdapter) {\n mock\n .onGet(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/nodes\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const nodeType = elements[elements?.length - 2];\n const nodeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./NodeApi/getNode/${nodeType}/${nodeId}.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse._id).toBe(nodeId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutNode(\n mock: MockAdapter,\n callback: (mockNodeId: string, mockNodeObj) => void\n) {\n mock\n .onPut(\n /\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/authentication\\/authenticationtrees\\/nodes\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const nodeId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockNodeObj = JSON.parse(config.data);\n callback(nodeId, mockNodeObj);\n return [mockStatus, mockNodeObj];\n });\n}\n\nexport function getScript(scriptId: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./ScriptApi/getScript/${scriptId}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\nexport function mockGetScript(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\/.+/)\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const scriptId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = getScript(scriptId);\n expect(mockResponse._id).toBe(scriptId);\n return [mockStatus, mockResponse];\n });\n}\n\n// mockPutScript(mock);\nexport function mockPutScript(\n mock: MockAdapter,\n callback: (mockScriptId: string, mockScriptObj) => void\n) {\n mock\n .onPut(/.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\/.+/)\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const scriptId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockScriptObj = JSON.parse(config.data);\n callback(scriptId, mockScriptObj);\n return [mockStatus, mockScriptObj];\n });\n}\n\nexport function getScriptByName(scriptName: string) {\n const treeObject = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, `./ScriptApi/getScriptByName/${scriptName}.json`),\n 'utf8'\n )\n );\n return treeObject;\n}\n\n// export function mockGetScriptByName(mock: MockAdapter) {\n// mock\n// .onGet(\n// /\\/json\\/realms\\/root\\/realms\\/alpha\\/scripts\\?_queryFilter=name\\+eq\\+'.+'/\n// )\n// .reply(function (config) {\n// const elements = config.url ? config.url.split('/') : [];\n// const scriptId = elements[elements?.length - 1];\n// const mockStatus = 200;\n// const mockResponse = getScript(scriptId);\n// expect(mockResponse._id).toBe(scriptId);\n// return [mockStatus, mockResponse];\n// });\n// }\n\nexport function getSaml2Providers() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, './Saml2Api/getProviders/providers.json'),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetSaml2Providers(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getSaml2Providers();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockFindSaml2Providers(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\?_queryFilter=.+?&_fields=.+/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = {\n result: [],\n resultCount: 0,\n pagedResultsCookie: null,\n totalPagedResultsPolicy: 'EXACT',\n totalPagedResults: 1,\n remainingPagedResults: -1,\n };\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getCirclesOfTrust() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n './CirclesOfTrustApi/getCirclesOfTrust/cots.json'\n ),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetCirclesOfTrust(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\?_queryFilter=true/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getCirclesOfTrust();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockCreateCircleOfTrust(\n mock: MockAdapter,\n callback: (mockCotId: string, mockCotObj) => void\n) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\/\\?_action=create/\n )\n .reply(function (config) {\n const mockCotObj = JSON.parse(config.data);\n const cotId = mockCotObj._id;\n const mockStatus = 200;\n callback(cotId, mockCotObj);\n return [mockStatus, mockCotObj];\n });\n}\n\nexport function mockUpdateCircleOfTrust(\n mock: MockAdapter,\n callback: (mockCotId: string, mockCotObj) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/federation\\/circlesoftrust\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const cotId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockCotObj = JSON.parse(config.data);\n callback(cotId, mockCotObj);\n return [mockStatus, mockCotObj];\n });\n}\n\nexport function mockGetSaml2ProviderByLocationAndId(mock: MockAdapter) {\n mock\n .onGet(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/.+?\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const location = elements[elements?.length - 2];\n const providerId = elements[elements?.length - 1];\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Api/getProviderByLocationAndId/${location}/${providerId}.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse._id).toBe(providerId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockCreateSaml2Provider(\n mock: MockAdapter,\n callback: (\n mockSaml2ProviderId64: string,\n mockSaml2ProviderLocation: string,\n mockSaml2ProviderObj\n ) => void\n) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/(hosted|remote)\\/\\?_action=(create|importEntity)/\n )\n .reply(function (config) {\n const elements = config.url\n ? parseUrl(config.url).pathname.split('/')\n : [];\n const mockSaml2ProviderLocation = elements[elements?.length - 1];\n const mockSaml2ProviderObj = JSON.parse(config.data);\n let mockSaml2ProviderId64 = '';\n if (mockSaml2ProviderObj._id) {\n mockSaml2ProviderId64 = mockSaml2ProviderObj._id;\n } else {\n const metaDataXml = decode(mockSaml2ProviderObj.standardMetadata);\n mockSaml2ProviderId64 = encode(\n metaDataXml.match(/entityID=\"(.+?)\"/)[1],\n false\n );\n }\n const mockStatus = 200;\n callback(\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n );\n return [mockStatus, mockSaml2ProviderObj];\n });\n}\n\nexport function mockUpdateSaml2Provider(\n mock: MockAdapter,\n callback: (\n mockSaml2ProviderId64: string,\n mockSaml2ProviderLocation: string,\n mockSaml2ProviderObj\n ) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/saml2\\/(hosted|remote)\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const mockSaml2ProviderLocation = elements[elements?.length - 2];\n const mockSaml2ProviderId64 = elements[elements?.length - 1];\n const mockSaml2ProviderObj = JSON.parse(config.data);\n const mockStatus = 200;\n callback(\n mockSaml2ProviderId64,\n mockSaml2ProviderLocation,\n mockSaml2ProviderObj\n );\n return [mockStatus, mockSaml2ProviderObj];\n });\n}\n\nexport function mockGetSaml2ProviderMetadata(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/saml2\\/jsp\\/exportmetadata.jsp\\?entityid=.+?&realm=.+/)\n .reply(function (config) {\n const parsed = parseUrl(config.url);\n const realm = parsed.searchParam['realm'];\n const entityId = parsed.searchParam['entityid'];\n const mockStatus = 200;\n const mockResponse = fs.readFileSync(\n path.resolve(\n __dirname,\n `./Saml2Api/getProviderMetadata/${realm}/${encode(\n entityId,\n false\n )}.xml`\n ),\n 'utf8'\n );\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function getSocialProviders() {\n const treeObjects = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n './SocialIdentityProvidersApi/getSocialIdentityProviders/socialIdentityProviders.json'\n ),\n 'utf8'\n )\n );\n return treeObjects;\n}\n\nexport function mockGetSocialProviders(mock: MockAdapter) {\n mock\n .onPost(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/services\\/SocialIdentityProviders\\?_action=nextdescendents/\n )\n .reply(function () {\n const mockStatus = 200;\n const mockResponse = getSocialProviders();\n expect(mockResponse).toBeTruthy();\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutSocialProviderByTypeAndId(\n mock: MockAdapter,\n callback: (\n mockSocialProviderId: string,\n mockSocialProviderType: string,\n mockSocialProviderObj\n ) => void\n) {\n mock\n .onPut(\n /.*?\\/json\\/realms\\/root\\/realms\\/alpha\\/realm-config\\/services\\/SocialIdentityProviders\\/.+?\\/.+/\n )\n .reply(function (config) {\n const elements = config.url ? config.url.split('/') : [];\n const mockSocialProviderType = elements[elements?.length - 2];\n const mockSocialProviderId = elements[elements?.length - 1];\n const mockSocialProviderObj = JSON.parse(config.data);\n const mockStatus = 200;\n callback(\n mockSocialProviderId,\n mockSocialProviderType,\n mockSocialProviderObj\n );\n return [mockStatus, mockSocialProviderObj];\n });\n}\n\n/**\n * IDM Mocks and Utils\n */\n\nexport function mockListAllConfigEntities(mock: MockAdapter) {\n mock.onGet(/.*?\\/openidm\\/config$/).reply(function () {\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getAllConfigEntities/entities.json`\n ),\n 'utf8'\n )\n );\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockGetConfigEntity(mock: MockAdapter) {\n mock.onGet(/.*?\\/openidm\\/config\\/.+/).reply(function (config) {\n const entityId = config.url\n ? config.url.substring(config.url.indexOf('/config/') + 8)\n : '';\n const mockStatus = 200;\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getConfigEntity/${entityId}.json`\n ),\n 'utf8'\n )\n );\n expect(mockResponse._id).toBe(entityId);\n return [mockStatus, mockResponse];\n });\n}\n\nexport function mockPutConfigEntity(\n mock: MockAdapter,\n callback: (mockEntityId: string, mockEntityObj) => void\n) {\n mock.onPut(/.*?\\/openidm\\/config\\/.+/).reply(function (config) {\n const entityId = config.url\n ? config.url.substring(config.url.indexOf('/config/') + 8)\n : '';\n const mockStatus = 200;\n const mockResponse = JSON.parse(config.data);\n callback(entityId, mockResponse);\n return [mockStatus, mockResponse];\n });\n}\n"],"mappings":"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"}
|