@rockcarver/frodo-lib 0.12.2 → 0.12.3

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 CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.12.3] - 2022-09-16
11
+
12
+ ### Fixed
13
+
14
+ - \#92: `frodo email template list <host>` now runs properly
15
+
10
16
  ## [0.12.2] - 2022-09-15
11
17
 
12
18
  ### Added
@@ -495,7 +501,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
495
501
  - Fixed problem with adding connection profiles
496
502
  - Miscellaneous bug fixes
497
503
 
498
- [Unreleased]: https://github.com/rockcarver/frodo-lib/compare/v0.12.2...HEAD
504
+ [Unreleased]: https://github.com/rockcarver/frodo-lib/compare/v0.12.3...HEAD
505
+
506
+ [0.12.3]: https://github.com/rockcarver/frodo-lib/compare/v0.12.2...v0.12.3
499
507
 
500
508
  [0.12.2]: https://github.com/rockcarver/frodo-lib/compare/v0.12.2-10...v0.12.2
501
509
 
@@ -47,6 +47,7 @@ function getFileDataTemplate() {
47
47
  /**
48
48
  * List email templates
49
49
  * @param {boolean} long Long list format with details
50
+ * @return {Promise<unknown[]>} a promise that resolves to an array of email template objects
50
51
  */
51
52
 
52
53
 
@@ -66,10 +67,9 @@ function _listEmailTemplates() {
66
67
  var emailTemplates = [];
67
68
 
68
69
  try {
69
- emailTemplates = (yield (0, _EmailTemplateApi.getEmailTemplates)()).data.result;
70
+ emailTemplates = (yield (0, _EmailTemplateApi.getEmailTemplates)()).result;
70
71
  } catch (error) {
71
- (0, _Console.printMessage)("".concat(error.message), 'error');
72
- (0, _Console.printMessage)(error.response.data, 'error');
72
+ (0, _Console.printMessage)("Error retrieving email templates: ".concat(error.message), 'error');
73
73
  }
74
74
 
75
75
  emailTemplates.sort((a, b) => a._id.localeCompare(b._id));
@@ -97,6 +97,8 @@ function _listEmailTemplates() {
97
97
 
98
98
  (0, _Console.printMessage)(table.toString(), 'data');
99
99
  }
100
+
101
+ return emailTemplates;
100
102
  });
101
103
  return _listEmailTemplates.apply(this, arguments);
102
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EmailTemplateOps.js","names":["regexEmailTemplateType","RegExp","EMAIL_TEMPLATE_TYPE","EMAIL_TEMPLATE_FILE_TYPE","getFileDataTemplate","meta","emailTemplate","listEmailTemplates","long","emailTemplates","getEmailTemplates","data","result","error","printMessage","message","response","sort","a","b","_id","localeCompare","entries","replace","table","createTable","push","displayName","enabled","defaultLocale","Object","keys","subject","length","filter","locale","join","from","wordwrap","toString","exportEmailTemplateToFile","templateId","file","fileName","getTypedFilename","createProgressIndicator","templateData","getEmailTemplate","updateProgressIndicator","fileData","saveJsonToFile","stopProgressIndicator","brightCyan","err","exportEmailTemplatesToFile","templates","resultCount","template","exportEmailTemplatesToFiles","importEmailTemplateFromFile","replaceAll","fs","readFile","JSON","parse","validateImport","putEmailTemplate","putEmailTemplateError","importEmailTemplatesFromFile","id","hasOwnProperty","call","importEmailTemplatesFromFiles","names","readdirSync","jsonFiles","name","toLowerCase","endsWith","total","totalErrors","readFileSync","errors","importFirstEmailTemplateFromFile"],"sources":["ops/EmailTemplateOps.ts"],"sourcesContent":["import fs from 'fs';\nimport {\n EMAIL_TEMPLATE_TYPE,\n getEmailTemplate,\n getEmailTemplates,\n putEmailTemplate,\n} from '../api/EmailTemplateApi';\nimport {\n createProgressIndicator,\n createTable,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from './utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n validateImport,\n} from './utils/ExportImportUtils';\nimport wordwrap from './utils/Wordwrap';\n\n/**\n * Regex to remove email template type from id\n */\nconst regexEmailTemplateType = new RegExp(`${EMAIL_TEMPLATE_TYPE}/`, 'g');\n\n/**\n * Maintain the file type centrally\n */\nconst EMAIL_TEMPLATE_FILE_TYPE = 'template.email';\n\n// use a function vs a template variable to avoid problems in loops\nfunction getFileDataTemplate() {\n return {\n meta: {},\n emailTemplate: {},\n };\n}\n\n/**\n * List email templates\n * @param {boolean} long Long list format with details\n */\nexport async function listEmailTemplates(long = false) {\n let emailTemplates = [];\n try {\n emailTemplates = (await getEmailTemplates()).data.result;\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n }\n emailTemplates.sort((a, b) => a._id.localeCompare(b._id));\n if (!long) {\n for (const [, emailTemplate] of emailTemplates.entries()) {\n printMessage(\n `${emailTemplate._id.replace(`${EMAIL_TEMPLATE_TYPE}/`, '')}`,\n 'data'\n );\n }\n } else {\n const table = createTable([\n 'Id'['brightCyan'],\n 'Name'['brightCyan'],\n 'Status'['brightCyan'],\n 'Locale(s)'['brightCyan'],\n 'From'['brightCyan'],\n 'Subject'['brightCyan'],\n ]);\n for (const emailTemplate of emailTemplates) {\n table.push([\n // Id\n `${emailTemplate._id.replace(`${EMAIL_TEMPLATE_TYPE}/`, '')}`,\n // Name\n `${emailTemplate.displayName ? emailTemplate.displayName : ''}`,\n // Status\n emailTemplate.enabled === false\n ? 'disabled'['brightRed']\n : 'enabled'['brightGreen'],\n // Locale(s)\n `${emailTemplate.defaultLocale}${\n Object.keys(emailTemplate.subject).length > 1\n ? ` (${Object.keys(emailTemplate.subject)\n .filter((locale) => locale !== emailTemplate.defaultLocale)\n .join(',')})`\n : ''\n }`,\n // From\n `${emailTemplate.from ? emailTemplate.from : ''}`,\n // Subject\n wordwrap(emailTemplate.subject[emailTemplate.defaultLocale], 40),\n ]);\n }\n printMessage(table.toString(), 'data');\n }\n}\n\n/**\n * Export a single email template to file\n * @param {String} templateId email template id\n * @param {String} file optional filename\n */\nexport async function exportEmailTemplateToFile(templateId, file) {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(templateId, EMAIL_TEMPLATE_FILE_TYPE);\n }\n createProgressIndicator(1, `Exporting ${templateId}`);\n try {\n const templateData = await getEmailTemplate(templateId);\n updateProgressIndicator(`Writing file ${fileName}`);\n const fileData = getFileDataTemplate();\n fileData.emailTemplate[templateId] = templateData;\n saveJsonToFile(fileData, fileName);\n stopProgressIndicator(\n `Exported ${templateId.brightCyan} to ${fileName.brightCyan}.`\n );\n } catch (err) {\n stopProgressIndicator(`${err}`);\n printMessage(err, 'error');\n }\n}\n\n/**\n * Export all email templates to file\n * @param {String} file optional filename\n */\nexport async function exportEmailTemplatesToFile(file) {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(`allEmailTemplates`, EMAIL_TEMPLATE_FILE_TYPE);\n }\n try {\n const fileData = getFileDataTemplate();\n const response = await getEmailTemplates();\n const templates = response.result;\n createProgressIndicator(response.resultCount, 'Exporting email templates');\n for (const template of templates) {\n const templateId = template._id.replace(`${EMAIL_TEMPLATE_TYPE}/`, '');\n updateProgressIndicator(`Exporting ${templateId}`);\n fileData.emailTemplate[templateId] = template;\n }\n saveJsonToFile(fileData, fileName);\n stopProgressIndicator(\n `${response.resultCount} templates exported to ${fileName}.`\n );\n } catch (err) {\n stopProgressIndicator(`${err}`);\n printMessage(err, 'error');\n }\n}\n\n/**\n * Export all email templates to separate files\n */\nexport async function exportEmailTemplatesToFiles() {\n try {\n const response = await getEmailTemplates();\n const templates = response.result;\n createProgressIndicator(response.resultCount, 'Exporting email templates');\n for (const template of templates) {\n const templateId = template._id.replace(`${EMAIL_TEMPLATE_TYPE}/`, '');\n const fileName = getTypedFilename(templateId, EMAIL_TEMPLATE_FILE_TYPE);\n const fileData = getFileDataTemplate();\n updateProgressIndicator(`Exporting ${templateId}`);\n fileData.emailTemplate[templateId] = template;\n saveJsonToFile(fileData, fileName);\n }\n stopProgressIndicator(`${response.resultCount} templates exported.`);\n } catch (err) {\n stopProgressIndicator(`${err}`);\n printMessage(err, 'error');\n }\n}\n\n/**\n * Import email template by id from file\n * @param {String} templateId email template id\n * @param {String} file optional filename\n */\nexport async function importEmailTemplateFromFile(templateId, file) {\n // eslint-disable-next-line no-param-reassign\n templateId = templateId.replaceAll(`${EMAIL_TEMPLATE_TYPE}/`, '');\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 ${templateId}`);\n if (fileData.emailTemplate[templateId]) {\n try {\n await putEmailTemplate(\n templateId,\n fileData.emailTemplate[templateId]\n );\n updateProgressIndicator(`Importing ${templateId}`);\n stopProgressIndicator(`Imported ${templateId}`);\n } catch (putEmailTemplateError) {\n stopProgressIndicator(`${putEmailTemplateError}`);\n printMessage(putEmailTemplateError, 'error');\n }\n } else {\n stopProgressIndicator(\n `Email template ${templateId.brightCyan} not found in ${file.brightCyan}!`\n );\n printMessage(\n `Email template ${templateId.brightCyan} not found in ${file.brightCyan}!`,\n 'error'\n );\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import all email templates from file\n * @param {String} file optional filename\n */\nexport async function importEmailTemplatesFromFile(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(\n Object.keys(fileData.emailTemplate).length,\n `Importing email templates`\n );\n for (const id in fileData.emailTemplate) {\n if ({}.hasOwnProperty.call(fileData.emailTemplate, id)) {\n const templateId = id.replace(regexEmailTemplateType, '');\n try {\n // eslint-disable-next-line no-await-in-loop\n await putEmailTemplate(\n templateId,\n fileData.emailTemplate[templateId]\n );\n updateProgressIndicator(`Imported ${templateId}`);\n } catch (putEmailTemplateError) {\n printMessage(`\\nError importing ${templateId}`, 'error');\n printMessage(putEmailTemplateError.response.data, 'error');\n }\n }\n }\n stopProgressIndicator(`Done.`);\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import all email templates from separate files\n */\nexport async function importEmailTemplatesFromFiles() {\n const names = fs.readdirSync('.');\n const jsonFiles = names.filter((name) =>\n name.toLowerCase().endsWith(`${EMAIL_TEMPLATE_FILE_TYPE}.json`)\n );\n createProgressIndicator(jsonFiles.length, 'Importing email templates...');\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 total += Object.keys(fileData.emailTemplate).length;\n let errors = 0;\n for (const id in fileData.emailTemplate) {\n if ({}.hasOwnProperty.call(fileData.emailTemplate, id)) {\n const templateId = id.replace(regexEmailTemplateType, '');\n try {\n // eslint-disable-next-line no-await-in-loop\n await putEmailTemplate(\n templateId,\n fileData.emailTemplate[templateId]\n );\n } catch (putEmailTemplateError) {\n errors += 1;\n printMessage(`\\nError importing ${templateId}`, 'error');\n printMessage(putEmailTemplateError.response.data, 'error');\n }\n }\n }\n totalErrors += errors;\n updateProgressIndicator(`Imported ${file}`);\n } else {\n printMessage(`Validation of ${file} failed!`, 'error');\n }\n }\n stopProgressIndicator(\n `Imported ${total - totalErrors} of ${total} email template(s) from ${\n jsonFiles.length\n } file(s).`\n );\n}\n\n/**\n * Import first email template from file\n * @param {String} file optional filename\n */\nexport async function importFirstEmailTemplateFromFile(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 first email template`);\n for (const id in fileData.emailTemplate) {\n if ({}.hasOwnProperty.call(fileData.emailTemplate, id)) {\n try {\n await putEmailTemplate(\n id.replace(regexEmailTemplateType, ''),\n fileData.emailTemplate[id]\n );\n updateProgressIndicator(`Imported ${id}`);\n stopProgressIndicator(`Imported ${id}`);\n } catch (putEmailTemplateError) {\n stopProgressIndicator(`Error importing email template ${id}`);\n printMessage(`\\nError importing email template ${id}`, 'error');\n printMessage(putEmailTemplateError.response.data, 'error');\n }\n break;\n }\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"EmailTemplateOps.js","names":["regexEmailTemplateType","RegExp","EMAIL_TEMPLATE_TYPE","EMAIL_TEMPLATE_FILE_TYPE","getFileDataTemplate","meta","emailTemplate","listEmailTemplates","long","emailTemplates","getEmailTemplates","result","error","printMessage","message","sort","a","b","_id","localeCompare","entries","replace","table","createTable","push","displayName","enabled","defaultLocale","Object","keys","subject","length","filter","locale","join","from","wordwrap","toString","exportEmailTemplateToFile","templateId","file","fileName","getTypedFilename","createProgressIndicator","templateData","getEmailTemplate","updateProgressIndicator","fileData","saveJsonToFile","stopProgressIndicator","brightCyan","err","exportEmailTemplatesToFile","response","templates","resultCount","template","exportEmailTemplatesToFiles","importEmailTemplateFromFile","replaceAll","fs","readFile","data","JSON","parse","validateImport","putEmailTemplate","putEmailTemplateError","importEmailTemplatesFromFile","id","hasOwnProperty","call","importEmailTemplatesFromFiles","names","readdirSync","jsonFiles","name","toLowerCase","endsWith","total","totalErrors","readFileSync","errors","importFirstEmailTemplateFromFile"],"sources":["ops/EmailTemplateOps.ts"],"sourcesContent":["import fs from 'fs';\nimport {\n EMAIL_TEMPLATE_TYPE,\n getEmailTemplate,\n getEmailTemplates,\n putEmailTemplate,\n} from '../api/EmailTemplateApi';\nimport {\n createProgressIndicator,\n createTable,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from './utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n validateImport,\n} from './utils/ExportImportUtils';\nimport wordwrap from './utils/Wordwrap';\n\n/**\n * Regex to remove email template type from id\n */\nconst regexEmailTemplateType = new RegExp(`${EMAIL_TEMPLATE_TYPE}/`, 'g');\n\n/**\n * Maintain the file type centrally\n */\nconst EMAIL_TEMPLATE_FILE_TYPE = 'template.email';\n\n// use a function vs a template variable to avoid problems in loops\nfunction getFileDataTemplate() {\n return {\n meta: {},\n emailTemplate: {},\n };\n}\n\n/**\n * List email templates\n * @param {boolean} long Long list format with details\n * @return {Promise<unknown[]>} a promise that resolves to an array of email template objects\n */\nexport async function listEmailTemplates(long = false): Promise<unknown[]> {\n let emailTemplates = [];\n try {\n emailTemplates = (await getEmailTemplates()).result;\n } catch (error) {\n printMessage(`Error retrieving email templates: ${error.message}`, 'error');\n }\n emailTemplates.sort((a, b) => a._id.localeCompare(b._id));\n if (!long) {\n for (const [, emailTemplate] of emailTemplates.entries()) {\n printMessage(\n `${emailTemplate._id.replace(`${EMAIL_TEMPLATE_TYPE}/`, '')}`,\n 'data'\n );\n }\n } else {\n const table = createTable([\n 'Id'['brightCyan'],\n 'Name'['brightCyan'],\n 'Status'['brightCyan'],\n 'Locale(s)'['brightCyan'],\n 'From'['brightCyan'],\n 'Subject'['brightCyan'],\n ]);\n for (const emailTemplate of emailTemplates) {\n table.push([\n // Id\n `${emailTemplate._id.replace(`${EMAIL_TEMPLATE_TYPE}/`, '')}`,\n // Name\n `${emailTemplate.displayName ? emailTemplate.displayName : ''}`,\n // Status\n emailTemplate.enabled === false\n ? 'disabled'['brightRed']\n : 'enabled'['brightGreen'],\n // Locale(s)\n `${emailTemplate.defaultLocale}${\n Object.keys(emailTemplate.subject).length > 1\n ? ` (${Object.keys(emailTemplate.subject)\n .filter((locale) => locale !== emailTemplate.defaultLocale)\n .join(',')})`\n : ''\n }`,\n // From\n `${emailTemplate.from ? emailTemplate.from : ''}`,\n // Subject\n wordwrap(emailTemplate.subject[emailTemplate.defaultLocale], 40),\n ]);\n }\n printMessage(table.toString(), 'data');\n }\n return emailTemplates;\n}\n\n/**\n * Export a single email template to file\n * @param {String} templateId email template id\n * @param {String} file optional filename\n */\nexport async function exportEmailTemplateToFile(templateId, file) {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(templateId, EMAIL_TEMPLATE_FILE_TYPE);\n }\n createProgressIndicator(1, `Exporting ${templateId}`);\n try {\n const templateData = await getEmailTemplate(templateId);\n updateProgressIndicator(`Writing file ${fileName}`);\n const fileData = getFileDataTemplate();\n fileData.emailTemplate[templateId] = templateData;\n saveJsonToFile(fileData, fileName);\n stopProgressIndicator(\n `Exported ${templateId.brightCyan} to ${fileName.brightCyan}.`\n );\n } catch (err) {\n stopProgressIndicator(`${err}`);\n printMessage(err, 'error');\n }\n}\n\n/**\n * Export all email templates to file\n * @param {String} file optional filename\n */\nexport async function exportEmailTemplatesToFile(file) {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(`allEmailTemplates`, EMAIL_TEMPLATE_FILE_TYPE);\n }\n try {\n const fileData = getFileDataTemplate();\n const response = await getEmailTemplates();\n const templates = response.result;\n createProgressIndicator(response.resultCount, 'Exporting email templates');\n for (const template of templates) {\n const templateId = template._id.replace(`${EMAIL_TEMPLATE_TYPE}/`, '');\n updateProgressIndicator(`Exporting ${templateId}`);\n fileData.emailTemplate[templateId] = template;\n }\n saveJsonToFile(fileData, fileName);\n stopProgressIndicator(\n `${response.resultCount} templates exported to ${fileName}.`\n );\n } catch (err) {\n stopProgressIndicator(`${err}`);\n printMessage(err, 'error');\n }\n}\n\n/**\n * Export all email templates to separate files\n */\nexport async function exportEmailTemplatesToFiles() {\n try {\n const response = await getEmailTemplates();\n const templates = response.result;\n createProgressIndicator(response.resultCount, 'Exporting email templates');\n for (const template of templates) {\n const templateId = template._id.replace(`${EMAIL_TEMPLATE_TYPE}/`, '');\n const fileName = getTypedFilename(templateId, EMAIL_TEMPLATE_FILE_TYPE);\n const fileData = getFileDataTemplate();\n updateProgressIndicator(`Exporting ${templateId}`);\n fileData.emailTemplate[templateId] = template;\n saveJsonToFile(fileData, fileName);\n }\n stopProgressIndicator(`${response.resultCount} templates exported.`);\n } catch (err) {\n stopProgressIndicator(`${err}`);\n printMessage(err, 'error');\n }\n}\n\n/**\n * Import email template by id from file\n * @param {String} templateId email template id\n * @param {String} file optional filename\n */\nexport async function importEmailTemplateFromFile(templateId, file) {\n // eslint-disable-next-line no-param-reassign\n templateId = templateId.replaceAll(`${EMAIL_TEMPLATE_TYPE}/`, '');\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 ${templateId}`);\n if (fileData.emailTemplate[templateId]) {\n try {\n await putEmailTemplate(\n templateId,\n fileData.emailTemplate[templateId]\n );\n updateProgressIndicator(`Importing ${templateId}`);\n stopProgressIndicator(`Imported ${templateId}`);\n } catch (putEmailTemplateError) {\n stopProgressIndicator(`${putEmailTemplateError}`);\n printMessage(putEmailTemplateError, 'error');\n }\n } else {\n stopProgressIndicator(\n `Email template ${templateId.brightCyan} not found in ${file.brightCyan}!`\n );\n printMessage(\n `Email template ${templateId.brightCyan} not found in ${file.brightCyan}!`,\n 'error'\n );\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import all email templates from file\n * @param {String} file optional filename\n */\nexport async function importEmailTemplatesFromFile(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(\n Object.keys(fileData.emailTemplate).length,\n `Importing email templates`\n );\n for (const id in fileData.emailTemplate) {\n if ({}.hasOwnProperty.call(fileData.emailTemplate, id)) {\n const templateId = id.replace(regexEmailTemplateType, '');\n try {\n // eslint-disable-next-line no-await-in-loop\n await putEmailTemplate(\n templateId,\n fileData.emailTemplate[templateId]\n );\n updateProgressIndicator(`Imported ${templateId}`);\n } catch (putEmailTemplateError) {\n printMessage(`\\nError importing ${templateId}`, 'error');\n printMessage(putEmailTemplateError.response.data, 'error');\n }\n }\n }\n stopProgressIndicator(`Done.`);\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import all email templates from separate files\n */\nexport async function importEmailTemplatesFromFiles() {\n const names = fs.readdirSync('.');\n const jsonFiles = names.filter((name) =>\n name.toLowerCase().endsWith(`${EMAIL_TEMPLATE_FILE_TYPE}.json`)\n );\n createProgressIndicator(jsonFiles.length, 'Importing email templates...');\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 total += Object.keys(fileData.emailTemplate).length;\n let errors = 0;\n for (const id in fileData.emailTemplate) {\n if ({}.hasOwnProperty.call(fileData.emailTemplate, id)) {\n const templateId = id.replace(regexEmailTemplateType, '');\n try {\n // eslint-disable-next-line no-await-in-loop\n await putEmailTemplate(\n templateId,\n fileData.emailTemplate[templateId]\n );\n } catch (putEmailTemplateError) {\n errors += 1;\n printMessage(`\\nError importing ${templateId}`, 'error');\n printMessage(putEmailTemplateError.response.data, 'error');\n }\n }\n }\n totalErrors += errors;\n updateProgressIndicator(`Imported ${file}`);\n } else {\n printMessage(`Validation of ${file} failed!`, 'error');\n }\n }\n stopProgressIndicator(\n `Imported ${total - totalErrors} of ${total} email template(s) from ${\n jsonFiles.length\n } file(s).`\n );\n}\n\n/**\n * Import first email template from file\n * @param {String} file optional filename\n */\nexport async function importFirstEmailTemplateFromFile(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 first email template`);\n for (const id in fileData.emailTemplate) {\n if ({}.hasOwnProperty.call(fileData.emailTemplate, id)) {\n try {\n await putEmailTemplate(\n id.replace(regexEmailTemplateType, ''),\n fileData.emailTemplate[id]\n );\n updateProgressIndicator(`Imported ${id}`);\n stopProgressIndicator(`Imported ${id}`);\n } catch (putEmailTemplateError) {\n stopProgressIndicator(`Error importing email template ${id}`);\n printMessage(`\\nError importing email template ${id}`, 'error');\n printMessage(putEmailTemplateError.response.data, 'error');\n }\n break;\n }\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailTemplateOps.test.js","names":["mock","MockAdapter","axios","state","default","session","setTenant","setRealm","setCookieName","setCookieValue","setDeploymentType","global","CLOUD_DEPLOYMENT_TYPE_KEY","describe","test","expect","EmailTemplate","exportEmailTemplateToFile","toBeDefined","exportEmailTemplatesToFile","exportEmailTemplatesToFiles","importEmailTemplateFromFile","importEmailTemplatesFromFile","importEmailTemplatesFromFiles","importFirstEmailTemplateFromFile","listEmailTemplates","mockGetConfigEntitiesByType","assertions","emailTemplates","toBeTruthy","length","toBe"],"sources":["ops/EmailTemplateOps.test.ts"],"sourcesContent":["import axios from 'axios';\nimport MockAdapter from 'axios-mock-adapter';\nimport { EmailTemplate, state } from '../index';\nimport * as global from '../storage/StaticStorage';\nimport { mockGetConfigEntitiesByType } 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('EmailTemplateOps - exportEmailTemplateToFile()', () => {\n test('exportEmailTemplateToFile() 0: Method is implemented', async () => {\n expect(EmailTemplate.exportEmailTemplateToFile).toBeDefined();\n });\n});\n\ndescribe('EmailTemplateOps - exportEmailTemplatesToFile()', () => {\n test('exportEmailTemplatesToFile() 0: Method is implemented', async () => {\n expect(EmailTemplate.exportEmailTemplatesToFile).toBeDefined();\n });\n});\n\ndescribe('EmailTemplateOps - exportEmailTemplatesToFiles()', () => {\n test('exportEmailTemplatesToFiles() 0: Method is implemented', async () => {\n expect(EmailTemplate.exportEmailTemplatesToFiles).toBeDefined();\n });\n});\n\ndescribe('EmailTemplateOps - importEmailTemplateFromFile()', () => {\n test('importEmailTemplateFromFile() 0: Method is implemented', async () => {\n expect(EmailTemplate.importEmailTemplateFromFile).toBeDefined();\n });\n});\n\ndescribe('EmailTemplateOps - importEmailTemplatesFromFile()', () => {\n test('importEmailTemplatesFromFile() 0: Method is implemented', async () => {\n expect(EmailTemplate.importEmailTemplatesFromFile).toBeDefined();\n });\n});\n\ndescribe('EmailTemplateOps - importEmailTemplatesFromFiles()', () => {\n test('importEmailTemplatesFromFiles() 0: Method is implemented', async () => {\n expect(EmailTemplate.importEmailTemplatesFromFiles).toBeDefined();\n });\n});\n\ndescribe('EmailTemplateOps - importFirstEmailTemplateFromFile()', () => {\n test('importFirstEmailTemplateFromFile() 0: Method is implemented', async () => {\n expect(EmailTemplate.importFirstEmailTemplateFromFile).toBeDefined();\n });\n});\n\ndescribe('EmailTemplateOps - listEmailTemplates()', () => {\n test('listEmailTemplates() 0: Method is implemented', async () => {\n expect(EmailTemplate.listEmailTemplates).toBeDefined();\n });\n\n test('listEmailTemplates() 1: List email templates', async () => {\n mockGetConfigEntitiesByType(mock);\n expect.assertions(2);\n const emailTemplates = await EmailTemplate.listEmailTemplates();\n expect(emailTemplates).toBeTruthy();\n expect(emailTemplates.length).toBe(17);\n });\n});\n"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;AAEA,IAAMA,IAAI,GAAG,IAAIC,yBAAJ,CAAgBC,cAAhB,CAAb;;AAEAC,YAAA,CAAMC,OAAN,CAAcC,OAAd,CAAsBC,SAAtB,CAAgC,6CAAhC;;AACAH,YAAA,CAAMC,OAAN,CAAcC,OAAd,CAAsBE,QAAtB,CAA+B,OAA/B;;AACAJ,YAAA,CAAMC,OAAN,CAAcC,OAAd,CAAsBG,aAAtB,CAAoC,YAApC;;AACAL,YAAA,CAAMC,OAAN,CAAcC,OAAd,CAAsBI,cAAtB,CAAqC,aAArC;;AACAN,YAAA,CAAMC,OAAN,CAAcC,OAAd,CAAsBK,iBAAtB,CAAwCC,MAAM,CAACC,yBAA/C;;AAEAC,QAAQ,CAAC,gDAAD,EAAmD,MAAM;EAC/DC,IAAI,CAAC,sDAAD,iCAAyD,aAAY;IACvEC,MAAM,CAACC,oBAAA,CAAcC,yBAAf,CAAN,CAAgDC,WAAhD;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,iDAAD,EAAoD,MAAM;EAChEC,IAAI,CAAC,uDAAD,iCAA0D,aAAY;IACxEC,MAAM,CAACC,oBAAA,CAAcG,0BAAf,CAAN,CAAiDD,WAAjD;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,kDAAD,EAAqD,MAAM;EACjEC,IAAI,CAAC,wDAAD,iCAA2D,aAAY;IACzEC,MAAM,CAACC,oBAAA,CAAcI,2BAAf,CAAN,CAAkDF,WAAlD;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,kDAAD,EAAqD,MAAM;EACjEC,IAAI,CAAC,wDAAD,iCAA2D,aAAY;IACzEC,MAAM,CAACC,oBAAA,CAAcK,2BAAf,CAAN,CAAkDH,WAAlD;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,mDAAD,EAAsD,MAAM;EAClEC,IAAI,CAAC,yDAAD,iCAA4D,aAAY;IAC1EC,MAAM,CAACC,oBAAA,CAAcM,4BAAf,CAAN,CAAmDJ,WAAnD;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,oDAAD,EAAuD,MAAM;EACnEC,IAAI,CAAC,0DAAD,iCAA6D,aAAY;IAC3EC,MAAM,CAACC,oBAAA,CAAcO,6BAAf,CAAN,CAAoDL,WAApD;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,uDAAD,EAA0D,MAAM;EACtEC,IAAI,CAAC,6DAAD,iCAAgE,aAAY;IAC9EC,MAAM,CAACC,oBAAA,CAAcQ,gCAAf,CAAN,CAAuDN,WAAvD;EACD,CAFG,EAAJ;AAGD,CAJO,CAAR;AAMAL,QAAQ,CAAC,yCAAD,EAA4C,MAAM;EACxDC,IAAI,CAAC,+CAAD,iCAAkD,aAAY;IAChEC,MAAM,CAACC,oBAAA,CAAcS,kBAAf,CAAN,CAAyCP,WAAzC;EACD,CAFG,EAAJ;EAIAJ,IAAI,CAAC,8CAAD,iCAAiD,aAAY;IAC/D,IAAAY,mDAAA,EAA4B1B,IAA5B;IACAe,MAAM,CAACY,UAAP,CAAkB,CAAlB;IACA,IAAMC,cAAc,SAASZ,oBAAA,CAAcS,kBAAd,EAA7B;IACAV,MAAM,CAACa,cAAD,CAAN,CAAuBC,UAAvB;IACAd,MAAM,CAACa,cAAc,CAACE,MAAhB,CAAN,CAA8BC,IAA9B,CAAmC,EAAnC;EACD,CANG,EAAJ;AAOD,CAZO,CAAR"}
@@ -14,6 +14,7 @@ exports.mockCreateCircleOfTrust = mockCreateCircleOfTrust;
14
14
  exports.mockCreateSaml2Provider = mockCreateSaml2Provider;
15
15
  exports.mockFindSaml2Providers = mockFindSaml2Providers;
16
16
  exports.mockGetCirclesOfTrust = mockGetCirclesOfTrust;
17
+ exports.mockGetConfigEntitiesByType = mockGetConfigEntitiesByType;
17
18
  exports.mockGetConfigEntity = mockGetConfigEntity;
18
19
  exports.mockGetNode = mockGetNode;
19
20
  exports.mockGetSaml2ProviderByLocationAndId = mockGetSaml2ProviderByLocationAndId;
@@ -347,4 +348,15 @@ function mockPutConfigEntity(mock, callback) {
347
348
  return [mockStatus, mockResponse];
348
349
  });
349
350
  }
351
+
352
+ function mockGetConfigEntitiesByType(mock) {
353
+ mock.onGet(/.*?\/openidm\/config\?_queryFilter=_id%20sw%20'.+?'/).reply(function (config) {
354
+ console.log('config.url=' + config.url);
355
+ var entityType = config.url ? config.url.match(/.*?\/openidm\/config\?_queryFilter=_id%20sw%20'(.+?)'/)[1] : '';
356
+ var mockStatus = 200;
357
+ console.log('entityType=' + entityType);
358
+ var mockResponse = JSON.parse(_fs.default.readFileSync(_path.default.resolve(_dirname, "./IdmConfigApi/getConfigEntitiesByType/".concat(entityType, ".json")), 'utf8'));
359
+ return [mockStatus, mockResponse];
360
+ });
361
+ }
350
362
  //# sourceMappingURL=ForgeRockApiMockEngine.js.map
@@ -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","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,yBAAT,CAAmC7E,IAAnC,EAAsD;EAC3DA,IAAI,CAACC,KAAL,CAAW,uBAAX,EAAoCC,KAApC,CAA0C,YAAY;IACpD,IAAMC,UAAU,GAAG,GAAnB;IACA,IAAMC,YAAY,GAAGZ,IAAI,CAACC,KAAL,CACnBC,WAAA,CAAGC,YAAH,CACET,aAAA,CAAKU,OAAL,CACEX,QADF,sDADF,EAKE,MALF,CADmB,CAArB;IASA,OAAO,CAACkB,UAAD,EAAaC,YAAb,CAAP;EACD,CAZD;AAaD;;AAEM,SAAS0E,mBAAT,CAA6B9E,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,CAAWkE,SAAX,CAAqBpE,MAAM,CAACE,GAAP,CAAWmE,OAAX,CAAmB,UAAnB,IAAiC,CAAtD,CADa,GAEb,EAFJ;IAGA,IAAM7E,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,SAAS6E,mBAAT,CACLjF,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,CAAWkE,SAAX,CAAqBpE,MAAM,CAACE,GAAP,CAAWmE,OAAX,CAAmB,UAAnB,IAAiC,CAAtD,CADa,GAEb,EAFJ;IAGA,IAAM7E,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","mockGetConfigEntitiesByType","console","log","entityType"],"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\nexport function mockGetConfigEntitiesByType(mock: MockAdapter) {\n mock\n .onGet(/.*?\\/openidm\\/config\\?_queryFilter=_id%20sw%20'.+?'/)\n .reply(function (config) {\n console.log('config.url=' + config.url);\n const entityType = config.url\n ? config.url.match(\n /.*?\\/openidm\\/config\\?_queryFilter=_id%20sw%20'(.+?)'/\n )[1]\n : '';\n const mockStatus = 200;\n console.log('entityType=' + entityType);\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n `./IdmConfigApi/getConfigEntitiesByType/${entityType}.json`\n ),\n 'utf8'\n )\n );\n return [mockStatus, mockResponse];\n });\n}\n"],"mappings":"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"}