@rockcarver/frodo-lib 0.12.5 → 0.12.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/CHANGELOG.md +23 -8
  2. package/cjs/api/ApiTypes.js +42 -0
  3. package/cjs/api/ApiTypes.js.map +1 -0
  4. package/cjs/api/Saml2Api.js +1 -1
  5. package/cjs/api/Saml2Api.js.map +1 -1
  6. package/cjs/index.js +9 -1
  7. package/cjs/index.js.map +1 -1
  8. package/cjs/ops/CirclesOfTrustOps.js +12 -1
  9. package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
  10. package/cjs/ops/EmailTemplateOps.js +12 -0
  11. package/cjs/ops/EmailTemplateOps.js.map +1 -1
  12. package/cjs/ops/IdpOps.js +12 -1
  13. package/cjs/ops/IdpOps.js.map +1 -1
  14. package/cjs/ops/JourneyOps.js +388 -140
  15. package/cjs/ops/JourneyOps.js.map +1 -1
  16. package/cjs/ops/NodeOps.js +13 -0
  17. package/cjs/ops/NodeOps.js.map +1 -1
  18. package/cjs/ops/OpsTypes.js +6 -0
  19. package/cjs/ops/OpsTypes.js.map +1 -0
  20. package/cjs/ops/Saml2Ops.js +24 -1
  21. package/cjs/ops/Saml2Ops.js.map +1 -1
  22. package/cjs/ops/ScriptOps.js +12 -0
  23. package/cjs/ops/ScriptOps.js.map +1 -1
  24. package/cjs/ops/ThemeOps.js +12 -0
  25. package/cjs/ops/ThemeOps.js.map +1 -1
  26. package/cjs/ops/utils/Console.js +18 -1
  27. package/cjs/ops/utils/Console.js.map +1 -1
  28. package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
  29. package/cjs/storage/SessionStorage.js +4 -0
  30. package/cjs/storage/SessionStorage.js.map +1 -1
  31. package/esm/api/ApiTypes.mjs +33 -0
  32. package/esm/api/Saml2Api.mjs +1 -1
  33. package/esm/index.mjs +2 -0
  34. package/esm/ops/CirclesOfTrustOps.mjs +11 -1
  35. package/esm/ops/EmailTemplateOps.mjs +11 -1
  36. package/esm/ops/IdpOps.mjs +11 -1
  37. package/esm/ops/JourneyOps.mjs +269 -82
  38. package/esm/ops/NodeOps.mjs +11 -0
  39. package/esm/ops/OpsTypes.mjs +2 -0
  40. package/esm/ops/Saml2Ops.mjs +20 -2
  41. package/esm/ops/ScriptOps.mjs +10 -0
  42. package/esm/ops/ThemeOps.mjs +10 -0
  43. package/esm/ops/utils/Console.mjs +16 -1
  44. package/esm/storage/SessionStorage.mjs +4 -0
  45. package/package.json +1 -1
  46. package/types/api/ApiTypes.d.ts +102 -0
  47. package/types/api/ApiTypes.d.ts.map +1 -0
  48. package/types/api/Saml2Api.d.ts +1 -1
  49. package/types/api/Saml2Api.d.ts.map +1 -1
  50. package/types/index.d.ts +2 -0
  51. package/types/index.d.ts.map +1 -1
  52. package/types/ops/CirclesOfTrustOps.d.ts +7 -0
  53. package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
  54. package/types/ops/EmailTemplateOps.d.ts +7 -0
  55. package/types/ops/EmailTemplateOps.d.ts.map +1 -1
  56. package/types/ops/IdpOps.d.ts +7 -0
  57. package/types/ops/IdpOps.d.ts.map +1 -1
  58. package/types/ops/JourneyOps.d.ts +107 -89
  59. package/types/ops/JourneyOps.d.ts.map +1 -1
  60. package/types/ops/NodeOps.d.ts +8 -0
  61. package/types/ops/NodeOps.d.ts.map +1 -1
  62. package/types/ops/OpsTypes.d.ts +66 -0
  63. package/types/ops/OpsTypes.d.ts.map +1 -0
  64. package/types/ops/Saml2Ops.d.ts +13 -0
  65. package/types/ops/Saml2Ops.d.ts.map +1 -1
  66. package/types/ops/ScriptOps.d.ts +7 -0
  67. package/types/ops/ScriptOps.d.ts.map +1 -1
  68. package/types/ops/ThemeOps.d.ts +7 -0
  69. package/types/ops/ThemeOps.d.ts.map +1 -1
  70. package/types/ops/utils/Console.d.ts +9 -1
  71. package/types/ops/utils/Console.d.ts.map +1 -1
  72. package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
  73. package/types/storage/SessionStorage.d.ts +4 -0
  74. package/types/storage/SessionStorage.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeOps.js","names":["listThemes","long","themeList","getThemes","sort","a","b","name","localeCompare","forEach","theme","printMessage","isDefault","brightCyan","table","createTable","push","_id","toString","exportThemeByName","file","fileName","getTypedFilename","createProgressIndicator","themeData","getThemeByName","length","stopProgressIndicator","updateProgressIndicator","saveToFile","exportThemeById","id","getTheme","exportThemesToFile","getRealmString","allThemesData","exportThemesToFiles","importThemeByName","fs","readFile","err","data","JSON","parse","validateImport","meta","found","hasOwnProperty","call","putThemeByName","then","result","importThemeById","themeId","putTheme","importThemesFromFile","fileData","Object","keys","putThemes","importThemesFromFiles","names","readdirSync","jsonFiles","filter","toLowerCase","endsWith","count","total","files","readFileSync","importFirstThemeFromFile","deleteThemeCmd","undefined","deleteTheme","error","message","deleteThemeByNameCmd","deleteThemeByName","deleteThemesCmd","deleteThemes"],"sources":["ops/ThemeOps.ts"],"sourcesContent":["import fs from 'fs';\nimport {\n deleteTheme,\n deleteThemeByName,\n deleteThemes,\n getTheme,\n getThemeByName,\n getThemes,\n putTheme,\n putThemeByName,\n putThemes,\n} from '../api/ThemeApi';\nimport {\n createProgressIndicator,\n createTable,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from './utils/Console';\nimport {\n getRealmString,\n getTypedFilename,\n saveToFile,\n validateImport,\n} from './utils/ExportImportUtils';\n\n/**\n * List all the themes\n * @param {boolean} long Long version, more fields\n */\nexport async function listThemes(long = false) {\n const themeList = await getThemes();\n themeList.sort((a, b) => a.name.localeCompare(b.name));\n if (!long) {\n themeList.forEach((theme) => {\n printMessage(\n `${theme.isDefault ? theme.name.brightCyan : theme.name}`,\n 'data'\n );\n });\n } else {\n const table = createTable([\n 'Name'['brightCyan'],\n 'Id'['brightCyan'],\n 'Default'['brightCyan'],\n ]);\n themeList.forEach((theme) => {\n table.push([\n `${theme.name}`,\n `${theme._id}`,\n `${theme.isDefault ? 'Yes'['brightGreen'] : ''}`,\n ]);\n });\n printMessage(table.toString(), 'data');\n }\n}\n\n/**\n * Export theme by name to file\n * @param {String} name theme name\n * @param {String} file optional export file name\n */\nexport async function exportThemeByName(name, file) {\n let fileName = getTypedFilename(name, 'theme');\n if (file) {\n fileName = file;\n }\n createProgressIndicator(1, `Exporting ${name}`);\n const themeData = await getThemeByName(name);\n if (themeData.length === 0) {\n stopProgressIndicator(`Theme ${name} not found!`);\n printMessage(`Theme ${name} not found!`, 'error');\n } else {\n updateProgressIndicator(`Writing file ${fileName}`);\n saveToFile('theme', themeData, '_id', fileName);\n stopProgressIndicator(`Successfully exported theme ${name}.`);\n }\n}\n\n/**\n * Export theme by uuid to file\n * @param {String} id theme uuid\n * @param {String} file optional export file name\n */\nexport async function exportThemeById(id, file) {\n let fileName = getTypedFilename(id, 'theme');\n if (file) {\n fileName = file;\n }\n createProgressIndicator(1, `Exporting ${id}`);\n const themeData = await getTheme(id);\n if (themeData.length === 0) {\n stopProgressIndicator(`Theme ${id} not found!`);\n printMessage(`Theme ${id} not found!`, 'error');\n } else {\n updateProgressIndicator(`Writing file ${fileName}`);\n saveToFile('theme', themeData, '_id', fileName);\n stopProgressIndicator(`Successfully exported theme ${id}.`);\n }\n}\n\n/**\n * Export all themes to file\n * @param {String} file optional export file name\n */\nexport async function exportThemesToFile(file) {\n let fileName = getTypedFilename(`all${getRealmString()}Themes`, 'theme');\n if (file) {\n fileName = file;\n }\n const allThemesData = await getThemes();\n createProgressIndicator(allThemesData.length, 'Exporting themes');\n for (const themeData of allThemesData) {\n updateProgressIndicator(`Exporting theme ${themeData.name}`);\n }\n saveToFile('theme', allThemesData, '_id', fileName);\n stopProgressIndicator(\n `${allThemesData.length} themes exported to ${fileName}.`\n );\n}\n\n/**\n * Export all themes to separate files\n */\nexport async function exportThemesToFiles() {\n const allThemesData = await getThemes();\n createProgressIndicator(allThemesData.length, 'Exporting themes');\n for (const themeData of allThemesData) {\n updateProgressIndicator(`Writing theme ${themeData.name}`);\n const fileName = getTypedFilename(themeData.name, 'theme');\n saveToFile('theme', themeData, '_id', fileName);\n }\n stopProgressIndicator(`${allThemesData.length} themes exported.`);\n}\n\n/**\n * Import theme by name from file\n * @param {String} name theme name\n * @param {String} file import file name\n */\nexport async function importThemeByName(name, file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (validateImport(themeData.meta)) {\n createProgressIndicator(1, 'Importing theme...');\n let found = false;\n for (const id in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, id)) {\n if (themeData.theme[id].name === name) {\n found = true;\n updateProgressIndicator(`Importing ${themeData.theme[id].name}`);\n putThemeByName(name, themeData.theme[id]).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[id].name}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[id].name}`,\n 'error'\n );\n } else {\n stopProgressIndicator(`Successfully imported theme ${name}.`);\n }\n });\n break;\n }\n }\n }\n if (!found) {\n stopProgressIndicator(`Theme ${name} not found!`);\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import theme by uuid from file\n * @param {String} id theme uuid\n * @param {String} file import file name\n */\nexport async function importThemeById(id, file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (validateImport(themeData.meta)) {\n createProgressIndicator(1, 'Importing theme...');\n let found = false;\n for (const themeId in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, themeId)) {\n if (themeId === id) {\n found = true;\n updateProgressIndicator(\n `Importing ${themeData.theme[themeId]._id}`\n );\n putTheme(themeId, themeData.theme[themeId]).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[themeId]._id}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[themeId]._id}`,\n 'error'\n );\n } else {\n stopProgressIndicator(`Successfully imported theme ${id}.`);\n }\n });\n break;\n }\n }\n }\n if (!found) {\n stopProgressIndicator(`Theme ${id} not found!`);\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import all themes from single file\n * @param {String} file import file name\n */\nexport async function importThemesFromFile(file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n createProgressIndicator(\n Object.keys(fileData.theme).length,\n 'Importing themes...'\n );\n for (const id in fileData.theme) {\n if ({}.hasOwnProperty.call(fileData.theme, id)) {\n updateProgressIndicator(`Importing ${fileData.theme[id].name}`);\n }\n }\n putThemes(fileData.theme).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing ${Object.keys(fileData.theme).length} themes!`\n );\n printMessage(\n `Error importing ${\n Object.keys(fileData.theme).length\n } themes from ${file}`,\n 'error'\n );\n } else {\n stopProgressIndicator(\n `Successfully imported ${\n Object.keys(fileData.theme).length\n } themes.`\n );\n }\n });\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import themes from separate files\n */\nexport async function importThemesFromFiles() {\n const names = fs.readdirSync('.');\n const jsonFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.theme.json')\n );\n\n createProgressIndicator(jsonFiles.length, 'Importing themes...');\n let fileData = null;\n let count = 0;\n let total = 0;\n let files = 0;\n for (const file of jsonFiles) {\n const data = fs.readFileSync(file, 'utf8');\n fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n count = Object.keys(fileData.theme).length;\n // eslint-disable-next-line no-await-in-loop\n const result = await putThemes(fileData.theme);\n if (result == null) {\n printMessage(`Error importing ${count} themes from ${file}`, 'error');\n } else {\n files += 1;\n total += count;\n updateProgressIndicator(`Imported ${count} theme(s) from ${file}`);\n }\n } else {\n printMessage(`Validation of ${file} failed!`, 'error');\n }\n }\n stopProgressIndicator(\n `Finished importing ${total} theme(s) from ${files} file(s).`\n );\n}\n\n/**\n * Import first theme from file\n * @param {String} file import file name\n */\nexport async function importFirstThemeFromFile(file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (validateImport(themeData.meta)) {\n createProgressIndicator(1, 'Importing theme...');\n for (const id in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, id)) {\n updateProgressIndicator(`Importing ${themeData.theme[id].name}`);\n putTheme(id, themeData.theme[id]).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[id].name}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[id].name}`,\n 'error'\n );\n } else {\n stopProgressIndicator(\n `Successfully imported theme ${themeData.theme[id].name}`\n );\n }\n });\n break;\n }\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Delete theme by id\n * @param {String} id theme id\n */\nexport async function deleteThemeCmd(id) {\n createProgressIndicator(undefined, `Deleting ${id}...`, 'indeterminate');\n try {\n await deleteTheme(id);\n stopProgressIndicator(`Deleted ${id}.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete theme by name\n * @param {String} name theme name\n */\nexport async function deleteThemeByNameCmd(name) {\n createProgressIndicator(undefined, `Deleting ${name}...`, 'indeterminate');\n try {\n await deleteThemeByName(name);\n stopProgressIndicator(`Deleted ${name}.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete all themes\n */\nexport async function deleteThemesCmd() {\n createProgressIndicator(\n undefined,\n `Deleting all realm themes...`,\n 'indeterminate'\n );\n try {\n await deleteThemes();\n stopProgressIndicator(`Deleted all realm themes.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ThemeOps.js","names":["getOneLineDescription","themeObj","description","_id","name","linkedTrees","join","listThemes","long","themeList","getThemes","sort","a","b","localeCompare","forEach","theme","printMessage","isDefault","brightCyan","table","createTable","push","toString","exportThemeByName","file","fileName","getTypedFilename","createProgressIndicator","themeData","getThemeByName","length","stopProgressIndicator","updateProgressIndicator","saveToFile","exportThemeById","id","getTheme","exportThemesToFile","getRealmString","allThemesData","exportThemesToFiles","importThemeByName","fs","readFile","err","data","JSON","parse","validateImport","meta","found","hasOwnProperty","call","putThemeByName","then","result","importThemeById","themeId","putTheme","importThemesFromFile","fileData","Object","keys","putThemes","importThemesFromFiles","names","readdirSync","jsonFiles","filter","toLowerCase","endsWith","count","total","files","readFileSync","importFirstThemeFromFile","deleteThemeCmd","undefined","deleteTheme","error","message","deleteThemeByNameCmd","deleteThemeByName","deleteThemesCmd","deleteThemes"],"sources":["ops/ThemeOps.ts"],"sourcesContent":["import fs from 'fs';\nimport { ThemeSkeleton } from '../api/ApiTypes';\nimport {\n deleteTheme,\n deleteThemeByName,\n deleteThemes,\n getTheme,\n getThemeByName,\n getThemes,\n putTheme,\n putThemeByName,\n putThemes,\n} from '../api/ThemeApi';\nimport {\n createProgressIndicator,\n createTable,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from './utils/Console';\nimport {\n getRealmString,\n getTypedFilename,\n saveToFile,\n validateImport,\n} from './utils/ExportImportUtils';\n\n/**\n * Get a one-line description of the theme\n * @param {ThemeSkeleton} themeObj theme object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(themeObj: ThemeSkeleton): string {\n const description = `[${themeObj._id['brightCyan']}] ${\n themeObj.name['brightYellow']\n }${\n themeObj.linkedTrees\n ? ' (' + themeObj.linkedTrees.join(', ')['brightCyan'] + ')'\n : ''\n }`;\n return description;\n}\n\n/**\n * List all the themes\n * @param {boolean} long Long version, more fields\n */\nexport async function listThemes(long = false) {\n const themeList = await getThemes();\n themeList.sort((a, b) => a.name.localeCompare(b.name));\n if (!long) {\n themeList.forEach((theme) => {\n printMessage(\n `${theme.isDefault ? theme.name.brightCyan : theme.name}`,\n 'data'\n );\n });\n } else {\n const table = createTable([\n 'Name'['brightCyan'],\n 'Id'['brightCyan'],\n 'Default'['brightCyan'],\n ]);\n themeList.forEach((theme) => {\n table.push([\n `${theme.name}`,\n `${theme._id}`,\n `${theme.isDefault ? 'Yes'['brightGreen'] : ''}`,\n ]);\n });\n printMessage(table.toString(), 'data');\n }\n}\n\n/**\n * Export theme by name to file\n * @param {String} name theme name\n * @param {String} file optional export file name\n */\nexport async function exportThemeByName(name, file) {\n let fileName = getTypedFilename(name, 'theme');\n if (file) {\n fileName = file;\n }\n createProgressIndicator(1, `Exporting ${name}`);\n const themeData = await getThemeByName(name);\n if (themeData.length === 0) {\n stopProgressIndicator(`Theme ${name} not found!`);\n printMessage(`Theme ${name} not found!`, 'error');\n } else {\n updateProgressIndicator(`Writing file ${fileName}`);\n saveToFile('theme', themeData, '_id', fileName);\n stopProgressIndicator(`Successfully exported theme ${name}.`);\n }\n}\n\n/**\n * Export theme by uuid to file\n * @param {String} id theme uuid\n * @param {String} file optional export file name\n */\nexport async function exportThemeById(id, file) {\n let fileName = getTypedFilename(id, 'theme');\n if (file) {\n fileName = file;\n }\n createProgressIndicator(1, `Exporting ${id}`);\n const themeData = await getTheme(id);\n if (themeData.length === 0) {\n stopProgressIndicator(`Theme ${id} not found!`);\n printMessage(`Theme ${id} not found!`, 'error');\n } else {\n updateProgressIndicator(`Writing file ${fileName}`);\n saveToFile('theme', themeData, '_id', fileName);\n stopProgressIndicator(`Successfully exported theme ${id}.`);\n }\n}\n\n/**\n * Export all themes to file\n * @param {String} file optional export file name\n */\nexport async function exportThemesToFile(file) {\n let fileName = getTypedFilename(`all${getRealmString()}Themes`, 'theme');\n if (file) {\n fileName = file;\n }\n const allThemesData = await getThemes();\n createProgressIndicator(allThemesData.length, 'Exporting themes');\n for (const themeData of allThemesData) {\n updateProgressIndicator(`Exporting theme ${themeData.name}`);\n }\n saveToFile('theme', allThemesData, '_id', fileName);\n stopProgressIndicator(\n `${allThemesData.length} themes exported to ${fileName}.`\n );\n}\n\n/**\n * Export all themes to separate files\n */\nexport async function exportThemesToFiles() {\n const allThemesData = await getThemes();\n createProgressIndicator(allThemesData.length, 'Exporting themes');\n for (const themeData of allThemesData) {\n updateProgressIndicator(`Writing theme ${themeData.name}`);\n const fileName = getTypedFilename(themeData.name, 'theme');\n saveToFile('theme', themeData, '_id', fileName);\n }\n stopProgressIndicator(`${allThemesData.length} themes exported.`);\n}\n\n/**\n * Import theme by name from file\n * @param {String} name theme name\n * @param {String} file import file name\n */\nexport async function importThemeByName(name, file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (validateImport(themeData.meta)) {\n createProgressIndicator(1, 'Importing theme...');\n let found = false;\n for (const id in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, id)) {\n if (themeData.theme[id].name === name) {\n found = true;\n updateProgressIndicator(`Importing ${themeData.theme[id].name}`);\n putThemeByName(name, themeData.theme[id]).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[id].name}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[id].name}`,\n 'error'\n );\n } else {\n stopProgressIndicator(`Successfully imported theme ${name}.`);\n }\n });\n break;\n }\n }\n }\n if (!found) {\n stopProgressIndicator(`Theme ${name} not found!`);\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import theme by uuid from file\n * @param {String} id theme uuid\n * @param {String} file import file name\n */\nexport async function importThemeById(id, file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (validateImport(themeData.meta)) {\n createProgressIndicator(1, 'Importing theme...');\n let found = false;\n for (const themeId in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, themeId)) {\n if (themeId === id) {\n found = true;\n updateProgressIndicator(\n `Importing ${themeData.theme[themeId]._id}`\n );\n putTheme(themeId, themeData.theme[themeId]).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[themeId]._id}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[themeId]._id}`,\n 'error'\n );\n } else {\n stopProgressIndicator(`Successfully imported theme ${id}.`);\n }\n });\n break;\n }\n }\n }\n if (!found) {\n stopProgressIndicator(`Theme ${id} not found!`);\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import all themes from single file\n * @param {String} file import file name\n */\nexport async function importThemesFromFile(file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n createProgressIndicator(\n Object.keys(fileData.theme).length,\n 'Importing themes...'\n );\n for (const id in fileData.theme) {\n if ({}.hasOwnProperty.call(fileData.theme, id)) {\n updateProgressIndicator(`Importing ${fileData.theme[id].name}`);\n }\n }\n putThemes(fileData.theme).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing ${Object.keys(fileData.theme).length} themes!`\n );\n printMessage(\n `Error importing ${\n Object.keys(fileData.theme).length\n } themes from ${file}`,\n 'error'\n );\n } else {\n stopProgressIndicator(\n `Successfully imported ${\n Object.keys(fileData.theme).length\n } themes.`\n );\n }\n });\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import themes from separate files\n */\nexport async function importThemesFromFiles() {\n const names = fs.readdirSync('.');\n const jsonFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.theme.json')\n );\n\n createProgressIndicator(jsonFiles.length, 'Importing themes...');\n let fileData = null;\n let count = 0;\n let total = 0;\n let files = 0;\n for (const file of jsonFiles) {\n const data = fs.readFileSync(file, 'utf8');\n fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n count = Object.keys(fileData.theme).length;\n // eslint-disable-next-line no-await-in-loop\n const result = await putThemes(fileData.theme);\n if (result == null) {\n printMessage(`Error importing ${count} themes from ${file}`, 'error');\n } else {\n files += 1;\n total += count;\n updateProgressIndicator(`Imported ${count} theme(s) from ${file}`);\n }\n } else {\n printMessage(`Validation of ${file} failed!`, 'error');\n }\n }\n stopProgressIndicator(\n `Finished importing ${total} theme(s) from ${files} file(s).`\n );\n}\n\n/**\n * Import first theme from file\n * @param {String} file import file name\n */\nexport async function importFirstThemeFromFile(file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (validateImport(themeData.meta)) {\n createProgressIndicator(1, 'Importing theme...');\n for (const id in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, id)) {\n updateProgressIndicator(`Importing ${themeData.theme[id].name}`);\n putTheme(id, themeData.theme[id]).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[id].name}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[id].name}`,\n 'error'\n );\n } else {\n stopProgressIndicator(\n `Successfully imported theme ${themeData.theme[id].name}`\n );\n }\n });\n break;\n }\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Delete theme by id\n * @param {String} id theme id\n */\nexport async function deleteThemeCmd(id) {\n createProgressIndicator(undefined, `Deleting ${id}...`, 'indeterminate');\n try {\n await deleteTheme(id);\n stopProgressIndicator(`Deleted ${id}.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete theme by name\n * @param {String} name theme name\n */\nexport async function deleteThemeByNameCmd(name) {\n createProgressIndicator(undefined, `Deleting ${name}...`, 'indeterminate');\n try {\n await deleteThemeByName(name);\n stopProgressIndicator(`Deleted ${name}.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete all themes\n */\nexport async function deleteThemesCmd() {\n createProgressIndicator(\n undefined,\n `Deleting all realm themes...`,\n 'indeterminate'\n );\n try {\n await deleteThemes();\n stopProgressIndicator(`Deleted all realm themes.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n"],"mappings":"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"}
@@ -7,6 +7,7 @@ exports.createKeyValueTable = createKeyValueTable;
7
7
  exports.createObjectTable = createObjectTable;
8
8
  exports.createProgressIndicator = createProgressIndicator;
9
9
  exports.createTable = createTable;
10
+ exports.debugMessage = debugMessage;
10
11
  exports.printMessage = printMessage;
11
12
  exports.stopProgressIndicator = stopProgressIndicator;
12
13
  exports.updateProgressIndicator = updateProgressIndicator;
@@ -28,7 +29,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
28
29
  * type="data" will be written to stderr.
29
30
  * @param {boolean} [newline=true] Whether to add a newline at the end of message
30
31
  * messages returned
31
- *
32
32
  */
33
33
  function printMessage(message) {
34
34
  var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text';
@@ -40,6 +40,23 @@ function printMessage(message) {
40
40
  handler(message, type, newline);
41
41
  }
42
42
  }
43
+ /**
44
+ * Handles debug output. The caller decides and implements how
45
+ * the messages are handled, by implementing the handler function
46
+ * on its side. `handler` is optional, and if not included by the caller,
47
+ * the data and messages will be lost.
48
+ *
49
+ * @param {string | unknown} message The string message to return
50
+ */
51
+
52
+
53
+ function debugMessage(message) {
54
+ var handler = _SessionStorage.default.session.getDebugHandler();
55
+
56
+ if (handler) {
57
+ handler(message);
58
+ }
59
+ }
43
60
  /**
44
61
  * Calls a callback on client to create a progress indicator.
45
62
  * The actual implementation of the indicator is left to the client
@@ -1 +1 @@
1
- {"version":3,"file":"Console.js","names":["printMessage","message","type","newline","handler","storage","session","getPrintHandler","createProgressIndicator","total","getCreateProgressHandler","updateProgressIndicator","getUpdateProgressHandler","stopProgressIndicator","status","getStopProgressHandler","createTable","head","Table","chars","top","bottom","left","mid","right","style","createKeyValueTable","wordWrap","getObjectDepth","object","Object","Math","max","values","map","hasValues","has","keys","key","addRows","depth","level","table","keyMap","space","push","hAlign","content","indention","Array","fill","join","concat","createObjectTable"],"sources":["ops/utils/Console.ts"],"sourcesContent":["import Table from 'cli-table3';\nimport storage from '../../storage/SessionStorage';\n\n/**\n * Handles data / messages output. The caller decides and implements how\n * the data and messages are handled, by implementing the handler function\n * on its side. `handler` is optional, and if not included by the caller,\n * the data and messages will be lost.\n *\n * @param {string | unknown} message The string message to return\n * @param {string} [type=text] \"text\", \"info\", \"warn\", \"error\" or \"data\". All but\n * type=\"data\" will be written to stderr.\n * @param {boolean} [newline=true] Whether to add a newline at the end of message\n * messages returned\n *\n */\nexport function printMessage(\n message: string | unknown,\n type = 'text',\n newline = true\n) {\n const handler = storage.session.getPrintHandler();\n if (handler) {\n handler(message, type, newline);\n }\n}\n\n/**\n * Calls a callback on client to create a progress indicator.\n * The actual implementation of the indicator is left to the client\n * Two types of indicators are supported:\n * - determinate: should be used when the process completion rate\n * can be detected (example: progress bar showing percentage or count)\n * - indeterminate: used when progress isn’t detectable, or if\n * it’s not necessary to indicate how long an activity will take.\n * (example: spinner showing progress, but not quantifying the progress)\n *\n * Example:\n * [========================================] 100% | 49/49 | Analyzing journey - transactional_auth\n *\n * @param {Number} total The total number of entries to track progress for\n * @param {String} message optional progress bar message\n * @param {String} type optional type of progress indicator. default is 'determinate'\n *\n */\nexport function createProgressIndicator(\n total,\n message: string = null,\n type = 'determinate'\n) {\n const handler = storage.session.getCreateProgressHandler();\n if (handler) {\n handler(type, total, message);\n }\n}\n\n/**\n * Updates the progress indicator with new data/updated status.\n * @param {string} message optional message to show with the indicator\n *\n */\nexport function updateProgressIndicator(message: string = null) {\n const handler = storage.session.getUpdateProgressHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Stop and hide the progress indicator\n * @param {string} message optional message to show with the indicator\n * @param {string} status one of 'none', 'success', 'warn', 'fail'\n */\nexport function stopProgressIndicator(message: string = null, status = 'none') {\n const handler = storage.session.getStopProgressHandler();\n if (handler) {\n handler(message, status);\n }\n}\n\n/**\n * Create an empty table\n * @param {[String]} head header row as an array of strings\n * @returns {CliTable3} an empty table\n */\nexport function createTable(head) {\n return new Table({\n head,\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n}\n\n/**\n * Create a new key/value table\n * @returns {CliTable3} an empty key/value table\n */\nexport function createKeyValueTable() {\n return new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n}\n\n/**\n * Helper function to determine the total depth of an object\n * @param {Object} object input object\n * @returns {Number} total depth of the input object\n */\nfunction getObjectDepth(object) {\n return Object(object) === object\n ? 1 + Math.max(-1, ...Object.values(object).map(getObjectDepth))\n : 0;\n}\n\n/**\n * Helper function to determine if an object has values\n * @param {Object} object input object\n * @returns {boolean} true of the object or any of its sub-objects contain values, false otherwise\n */\nfunction hasValues(object) {\n let has = false;\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n return true;\n }\n has = has || hasValues(object[key]);\n }\n return has;\n}\n\n/**\n * Helper function (recursive) to add rows to an object table\n * @param {Object} object object to render\n * @param {Number} depth total depth of initial object\n * @param {Number} level current level\n * @param {CliTable3} table the object table to add the rows to\n * @returns the updated object table\n */\nfunction addRows(object, depth, level, table, keyMap) {\n const space = ' ';\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n if (level === 1) {\n table.push([\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan'],\n object[key],\n ]);\n } else {\n table.push([\n {\n hAlign: 'right',\n content: keyMap[key] ? keyMap[key]['gray'] : key['gray'],\n },\n object[key],\n ]);\n }\n }\n }\n for (const key of keys) {\n if (Object(object[key]) === object[key]) {\n // only print header if there are any values below\n if (hasValues(object[key])) {\n let indention = new Array(level).fill(space).join('');\n if (level < 3) indention = `\\n${indention}`;\n table.push([\n indention.concat(\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan']\n ),\n '',\n ]);\n }\n // eslint-disable-next-line no-param-reassign\n table = addRows(object[key], depth, level + 1, table, keyMap);\n }\n }\n return table;\n}\n\n/**\n * Create and populate an object table from any JSON object. Use for describe commands.\n * @param {Object} object JSON object to create\n * @returns {CliTable3} a table that can be printed to the console\n */\nexport function createObjectTable(object, keyMap = {}) {\n // eslint-disable-next-line no-param-reassign\n const depth = getObjectDepth(object);\n // eslint-disable-next-line no-param-reassign\n const level = 0;\n // eslint-disable-next-line no-param-reassign\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n addRows(object, depth, level + 1, table, keyMap);\n return table;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Console.js","names":["printMessage","message","type","newline","handler","storage","session","getPrintHandler","debugMessage","getDebugHandler","createProgressIndicator","total","getCreateProgressHandler","updateProgressIndicator","getUpdateProgressHandler","stopProgressIndicator","status","getStopProgressHandler","createTable","head","Table","chars","top","bottom","left","mid","right","style","createKeyValueTable","wordWrap","getObjectDepth","object","Object","Math","max","values","map","hasValues","has","keys","key","addRows","depth","level","table","keyMap","space","push","hAlign","content","indention","Array","fill","join","concat","createObjectTable"],"sources":["ops/utils/Console.ts"],"sourcesContent":["import Table from 'cli-table3';\nimport storage from '../../storage/SessionStorage';\n\n/**\n * Handles data / messages output. The caller decides and implements how\n * the data and messages are handled, by implementing the handler function\n * on its side. `handler` is optional, and if not included by the caller,\n * the data and messages will be lost.\n *\n * @param {string | unknown} message The string message to return\n * @param {string} [type=text] \"text\", \"info\", \"warn\", \"error\" or \"data\". All but\n * type=\"data\" will be written to stderr.\n * @param {boolean} [newline=true] Whether to add a newline at the end of message\n * messages returned\n */\nexport function printMessage(\n message: string | unknown,\n type = 'text',\n newline = true\n) {\n const handler = storage.session.getPrintHandler();\n if (handler) {\n handler(message, type, newline);\n }\n}\n\n/**\n * Handles debug output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. `handler` is optional, and if not included by the caller,\n * the data and messages will be lost.\n *\n * @param {string | unknown} message The string message to return\n */\nexport function debugMessage(message: string | unknown) {\n const handler = storage.session.getDebugHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Calls a callback on client to create a progress indicator.\n * The actual implementation of the indicator is left to the client\n * Two types of indicators are supported:\n * - determinate: should be used when the process completion rate\n * can be detected (example: progress bar showing percentage or count)\n * - indeterminate: used when progress isn’t detectable, or if\n * it’s not necessary to indicate how long an activity will take.\n * (example: spinner showing progress, but not quantifying the progress)\n *\n * Example:\n * [========================================] 100% | 49/49 | Analyzing journey - transactional_auth\n *\n * @param {Number} total The total number of entries to track progress for\n * @param {String} message optional progress bar message\n * @param {String} type optional type of progress indicator. default is 'determinate'\n *\n */\nexport function createProgressIndicator(\n total,\n message: string = null,\n type = 'determinate'\n) {\n const handler = storage.session.getCreateProgressHandler();\n if (handler) {\n handler(type, total, message);\n }\n}\n\n/**\n * Updates the progress indicator with new data/updated status.\n * @param {string} message optional message to show with the indicator\n *\n */\nexport function updateProgressIndicator(message: string = null) {\n const handler = storage.session.getUpdateProgressHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Stop and hide the progress indicator\n * @param {string} message optional message to show with the indicator\n * @param {string} status one of 'none', 'success', 'warn', 'fail'\n */\nexport function stopProgressIndicator(message: string = null, status = 'none') {\n const handler = storage.session.getStopProgressHandler();\n if (handler) {\n handler(message, status);\n }\n}\n\n/**\n * Create an empty table\n * @param {[String]} head header row as an array of strings\n * @returns {CliTable3} an empty table\n */\nexport function createTable(head) {\n return new Table({\n head,\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n}\n\n/**\n * Create a new key/value table\n * @returns {CliTable3} an empty key/value table\n */\nexport function createKeyValueTable() {\n return new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n}\n\n/**\n * Helper function to determine the total depth of an object\n * @param {Object} object input object\n * @returns {Number} total depth of the input object\n */\nfunction getObjectDepth(object) {\n return Object(object) === object\n ? 1 + Math.max(-1, ...Object.values(object).map(getObjectDepth))\n : 0;\n}\n\n/**\n * Helper function to determine if an object has values\n * @param {Object} object input object\n * @returns {boolean} true of the object or any of its sub-objects contain values, false otherwise\n */\nfunction hasValues(object) {\n let has = false;\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n return true;\n }\n has = has || hasValues(object[key]);\n }\n return has;\n}\n\n/**\n * Helper function (recursive) to add rows to an object table\n * @param {Object} object object to render\n * @param {Number} depth total depth of initial object\n * @param {Number} level current level\n * @param {CliTable3} table the object table to add the rows to\n * @returns the updated object table\n */\nfunction addRows(object, depth, level, table, keyMap) {\n const space = ' ';\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n if (level === 1) {\n table.push([\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan'],\n object[key],\n ]);\n } else {\n table.push([\n {\n hAlign: 'right',\n content: keyMap[key] ? keyMap[key]['gray'] : key['gray'],\n },\n object[key],\n ]);\n }\n }\n }\n for (const key of keys) {\n if (Object(object[key]) === object[key]) {\n // only print header if there are any values below\n if (hasValues(object[key])) {\n let indention = new Array(level).fill(space).join('');\n if (level < 3) indention = `\\n${indention}`;\n table.push([\n indention.concat(\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan']\n ),\n '',\n ]);\n }\n // eslint-disable-next-line no-param-reassign\n table = addRows(object[key], depth, level + 1, table, keyMap);\n }\n }\n return table;\n}\n\n/**\n * Create and populate an object table from any JSON object. Use for describe commands.\n * @param {Object} object JSON object to create\n * @returns {CliTable3} a table that can be printed to the console\n */\nexport function createObjectTable(object, keyMap = {}) {\n // eslint-disable-next-line no-param-reassign\n const depth = getObjectDepth(object);\n // eslint-disable-next-line no-param-reassign\n const level = 0;\n // eslint-disable-next-line no-param-reassign\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n addRows(object, depth, level + 1, table, keyMap);\n return table;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExportImportUtils.js","names":["getCurrentTimestamp","ts","Date","toISOString","getMetadata","metadata","origin","storage","session","getTenant","originAmVersion","getAmVersion","exportedBy","getUsername","exportDate","exportTool","FRODO_METADATA_ID","exportToolVersion","getFrodoVersion","titleCase","input","str","toString","splitStr","toLowerCase","split","i","length","charAt","toUpperCase","slice","join","getRealmString","realm","getRealm","reduce","result","item","convertBase64TextToArray","b64text","arrayOut","plainText","decode","replace","convertBase64UrlTextToArray","b64UTF8Text","decodeBase64Url","convertTextArrayToBase64","textArray","joinedText","b64encodedScript","encode","convertTextArrayToBase64Url","encodeBase64Url","validateImport","getTypedFilename","name","type","suffix","slug","slugify","saveToFile","data","identifier","filename","exportData","Array","isArray","forEach","element","fs","writeFile","JSON","stringify","err","printMessage","saveJsonToFile","meta","saveTextToFile"],"sources":["ops/utils/ExportImportUtils.ts"],"sourcesContent":["import fs from 'fs';\nimport slugify from 'slugify';\nimport storage from '../../storage/SessionStorage';\nimport { FRODO_METADATA_ID } from '../../storage/StaticStorage';\nimport {\n encode,\n decode,\n encodeBase64Url,\n decodeBase64Url,\n} from '../../api/utils/Base64';\nimport { printMessage } from './Console';\n\nexport function getCurrentTimestamp() {\n const ts = new Date();\n return ts.toISOString();\n}\n\nfunction getMetadata() {\n const metadata = {\n origin: storage.session.getTenant(),\n originAmVersion: storage.session.getAmVersion(),\n exportedBy: storage.session.getUsername(),\n exportDate: getCurrentTimestamp(),\n exportTool: FRODO_METADATA_ID,\n exportToolVersion: storage.session.getFrodoVersion(),\n };\n return metadata;\n}\n\n/*\n * Output str in title case\n *\n * e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'\n */\nexport function titleCase(input) {\n const str = input.toString();\n const splitStr = str.toLowerCase().split(' ');\n for (let i = 0; i < splitStr.length; i += 1) {\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].slice(1);\n }\n return splitStr.join(' ');\n}\n\nexport function getRealmString() {\n const realm = storage.session.getRealm();\n return realm\n .split('/')\n .reduce((result, item) => `${result}${titleCase(item)}`, '');\n}\n\nexport function convertBase64TextToArray(b64text) {\n let arrayOut = [];\n let plainText = decode(b64text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertBase64UrlTextToArray(b64UTF8Text) {\n let arrayOut = [];\n let plainText = decodeBase64Url(b64UTF8Text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertTextArrayToBase64(textArray) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encode(joinedText);\n return b64encodedScript;\n}\n\nexport function convertTextArrayToBase64Url(textArray) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encodeBase64Url(joinedText);\n return b64encodedScript;\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function validateImport(metadata): boolean {\n return metadata || true;\n}\n\nexport function getTypedFilename(name, type, suffix = 'json') {\n const slug = slugify(name.replace(/^http(s?):\\/\\//, ''));\n return `${slug}.${type}.${suffix}`;\n}\n\nexport function saveToFile(type, data, identifier, filename) {\n const exportData = {};\n exportData['meta'] = getMetadata();\n exportData[type] = {};\n if (Array.isArray(data)) {\n data.forEach((element) => {\n exportData[type][element[identifier]] = element;\n });\n } else {\n exportData[type][data[identifier]] = data;\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${type} to file`, 'error');\n }\n return '';\n });\n}\n\n/**\n * Save JSON object to file\n * @param {Object} data data object\n * @param {String} filename file name\n */\nexport function saveJsonToFile(data, filename) {\n const exportData = data;\n exportData.meta = getMetadata();\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${filename}`, 'error');\n }\n return '';\n });\n}\n\n/**\n * Save text data to file\n * @param {String} data text data\n * @param {String} filename file name\n */\nexport function saveTextToFile(data, filename) {\n fs.writeFile(filename, data, (err) => {\n if (err) {\n printMessage(`ERROR - can't save ${filename}`, 'error');\n return false;\n }\n return true;\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ExportImportUtils.js","names":["getCurrentTimestamp","ts","Date","toISOString","getMetadata","metadata","origin","storage","session","getTenant","originAmVersion","getAmVersion","exportedBy","getUsername","exportDate","exportTool","FRODO_METADATA_ID","exportToolVersion","getFrodoVersion","titleCase","input","str","toString","splitStr","toLowerCase","split","i","length","charAt","toUpperCase","slice","join","getRealmString","realm","getRealm","reduce","result","item","convertBase64TextToArray","b64text","arrayOut","plainText","decode","replace","convertBase64UrlTextToArray","b64UTF8Text","decodeBase64Url","convertTextArrayToBase64","textArray","joinedText","b64encodedScript","encode","convertTextArrayToBase64Url","encodeBase64Url","validateImport","getTypedFilename","name","type","suffix","slug","slugify","saveToFile","data","identifier","filename","exportData","Array","isArray","forEach","element","fs","writeFile","JSON","stringify","err","printMessage","saveJsonToFile","meta","saveTextToFile"],"sources":["ops/utils/ExportImportUtils.ts"],"sourcesContent":["import fs from 'fs';\nimport slugify from 'slugify';\nimport storage from '../../storage/SessionStorage';\nimport { FRODO_METADATA_ID } from '../../storage/StaticStorage';\nimport {\n encode,\n decode,\n encodeBase64Url,\n decodeBase64Url,\n} from '../../api/utils/Base64';\nimport { printMessage } from './Console';\nimport { ExportMetaData } from '../OpsTypes';\n\nexport function getCurrentTimestamp() {\n const ts = new Date();\n return ts.toISOString();\n}\n\nfunction getMetadata(): ExportMetaData {\n const metadata: ExportMetaData = {\n origin: storage.session.getTenant(),\n originAmVersion: storage.session.getAmVersion(),\n exportedBy: storage.session.getUsername(),\n exportDate: getCurrentTimestamp(),\n exportTool: FRODO_METADATA_ID,\n exportToolVersion: storage.session.getFrodoVersion(),\n };\n return metadata;\n}\n\n/*\n * Output str in title case\n *\n * e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'\n */\nexport function titleCase(input) {\n const str = input.toString();\n const splitStr = str.toLowerCase().split(' ');\n for (let i = 0; i < splitStr.length; i += 1) {\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].slice(1);\n }\n return splitStr.join(' ');\n}\n\nexport function getRealmString() {\n const realm = storage.session.getRealm();\n return realm\n .split('/')\n .reduce((result, item) => `${result}${titleCase(item)}`, '');\n}\n\nexport function convertBase64TextToArray(b64text) {\n let arrayOut = [];\n let plainText = decode(b64text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertBase64UrlTextToArray(b64UTF8Text) {\n let arrayOut = [];\n let plainText = decodeBase64Url(b64UTF8Text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertTextArrayToBase64(textArray) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encode(joinedText);\n return b64encodedScript;\n}\n\nexport function convertTextArrayToBase64Url(textArray) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encodeBase64Url(joinedText);\n return b64encodedScript;\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function validateImport(metadata): boolean {\n return metadata || true;\n}\n\nexport function getTypedFilename(name, type, suffix = 'json') {\n const slug = slugify(name.replace(/^http(s?):\\/\\//, ''));\n return `${slug}.${type}.${suffix}`;\n}\n\nexport function saveToFile(type, data, identifier, filename) {\n const exportData = {};\n exportData['meta'] = getMetadata();\n exportData[type] = {};\n if (Array.isArray(data)) {\n data.forEach((element) => {\n exportData[type][element[identifier]] = element;\n });\n } else {\n exportData[type][data[identifier]] = data;\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${type} to file`, 'error');\n }\n return '';\n });\n}\n\n/**\n * Save JSON object to file\n * @param {Object} data data object\n * @param {String} filename file name\n */\nexport function saveJsonToFile(data, filename) {\n const exportData = data;\n exportData.meta = getMetadata();\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${filename}`, 'error');\n }\n return '';\n });\n}\n\n/**\n * Save text data to file\n * @param {String} data text data\n * @param {String} filename file name\n */\nexport function saveTextToFile(data, filename) {\n fs.writeFile(filename, data, (err) => {\n if (err) {\n printMessage(`ERROR - can't save ${filename}`, 'error');\n return false;\n }\n return true;\n });\n}\n"],"mappings":"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"}
@@ -61,6 +61,10 @@ var _default = {
61
61
  getMasterKeyPath: () => _sessionStorage['masterKeyPath'],
62
62
  setPrintHandler: printHandler => _sessionStorage['printHandler'] = printHandler,
63
63
  getPrintHandler: () => _sessionStorage['printHandler'],
64
+ setErrorHandler: errorHandler => _sessionStorage['errorHandler'] = errorHandler,
65
+ getErrorHandler: () => _sessionStorage['errorHandler'],
66
+ setDebugHandler: debugHandler => _sessionStorage['debugHandler'] = debugHandler,
67
+ getDebugHandler: () => _sessionStorage['debugHandler'],
64
68
  setCreateProgressHandler: handler => _sessionStorage['createProgressHandler'] = handler,
65
69
  getCreateProgressHandler: () => _sessionStorage['createProgressHandler'],
66
70
  setUpdateProgressHandler: handler => _sessionStorage['updateProgressHandler'] = handler,
@@ -1 +1 @@
1
- {"version":3,"file":"SessionStorage.js","names":["__dirname","path","dirname","fileURLToPath","pkg","JSON","parse","fs","readFileSync","resolve","_sessionStorage","authenticationHeaderOverrides","session","setItem","key","value","getItem","removeItem","raw","setUsername","getUsername","setPassword","getPassword","setTenant","getTenant","setDeploymentType","getDeploymentType","setRealm","getRealm","setCookieName","getCookieName","setCookieValue","getCookieValue","setAuthenticationService","getAuthenticationService","setAuthenticationHeaderOverrides","getAuthenticationHeaderOverrides","setBearerToken","getBearerToken","setLogApiKey","getLogApiKey","setLogApiSecret","getLogApiSecret","setAmVersion","getAmVersion","setFrodoVersion","getFrodoVersion","version","process","setAllowInsecureConnection","getAllowInsecureConnection","setConnectionProfilesPath","getConnectionProfilesPath","setMasterKeyPath","getMasterKeyPath","setPrintHandler","printHandler","getPrintHandler","setCreateProgressHandler","handler","getCreateProgressHandler","setUpdateProgressHandler","getUpdateProgressHandler","setStopProgressHandler","getStopProgressHandler"],"sources":["storage/SessionStorage.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst pkg = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, '../../package.json'), 'utf8')\n);\n\nconst _sessionStorage = {\n authenticationHeaderOverrides: {},\n};\n\nexport default {\n session: {\n setItem: (key, value) => (_sessionStorage[key] = value),\n getItem: (key) => _sessionStorage[key],\n removeItem: (key) => delete _sessionStorage[key],\n raw: _sessionStorage,\n setUsername: (value) => (_sessionStorage['username'] = value),\n getUsername: () => _sessionStorage['username'],\n setPassword: (value) => (_sessionStorage['password'] = value),\n getPassword: () => _sessionStorage['password'],\n setTenant: (value) => (_sessionStorage['tenant'] = value),\n getTenant: () => _sessionStorage['tenant'],\n setDeploymentType: (value) => (_sessionStorage['deploymentType'] = value),\n getDeploymentType: () => _sessionStorage['deploymentType'],\n setRealm: (value) => (_sessionStorage['realm'] = value),\n getRealm: () => _sessionStorage['realm'],\n setCookieName: (value) => (_sessionStorage['cookieName'] = value),\n getCookieName: () => _sessionStorage['cookieName'],\n setCookieValue: (value) => (_sessionStorage['cookieValue'] = value),\n getCookieValue: () => _sessionStorage['cookieValue'],\n setAuthenticationService: (value) =>\n (_sessionStorage['authenticationService'] = value),\n getAuthenticationService: () => _sessionStorage['authenticationService'],\n setAuthenticationHeaderOverrides: (value) =>\n (_sessionStorage['authenticationHeaderOverrides'] = value),\n getAuthenticationHeaderOverrides: () =>\n _sessionStorage['authenticationHeaderOverrides'],\n setBearerToken: (value) => (_sessionStorage['bearerToken'] = value),\n getBearerToken: () => _sessionStorage['bearerToken'],\n setLogApiKey: (value) => (_sessionStorage['logApiKey'] = value),\n getLogApiKey: () => _sessionStorage['logApiKey'],\n setLogApiSecret: (value) => (_sessionStorage['logApiSecret'] = value),\n getLogApiSecret: () => _sessionStorage['logApiSecret'],\n setAmVersion: (value) => (_sessionStorage['amVersion'] = value),\n getAmVersion: () => _sessionStorage['amVersion'],\n setFrodoVersion: (value) => (_sessionStorage['frodoVersion'] = value),\n getFrodoVersion: () =>\n _sessionStorage['frodoVersion'] || `v${pkg.version} [${process.version}]`,\n setAllowInsecureConnection: (value) =>\n (_sessionStorage['insecure'] = value),\n getAllowInsecureConnection: () => _sessionStorage['insecure'],\n setConnectionProfilesPath: (value) =>\n (_sessionStorage['connectionProfilesPath'] = value),\n getConnectionProfilesPath: () => _sessionStorage['connectionProfilesPath'],\n setMasterKeyPath: (value) => (_sessionStorage['masterKeyPath'] = value),\n getMasterKeyPath: () => _sessionStorage['masterKeyPath'],\n setPrintHandler: (printHandler) =>\n (_sessionStorage['printHandler'] = printHandler),\n getPrintHandler: () => _sessionStorage['printHandler'],\n setCreateProgressHandler: (handler) =>\n (_sessionStorage['createProgressHandler'] = handler),\n getCreateProgressHandler: () => _sessionStorage['createProgressHandler'],\n setUpdateProgressHandler: (handler) =>\n (_sessionStorage['updateProgressHandler'] = handler),\n getUpdateProgressHandler: () => _sessionStorage['updateProgressHandler'],\n setStopProgressHandler: (handler) =>\n (_sessionStorage['stopProgressHandler'] = handler),\n getStopProgressHandler: () => _sessionStorage['stopProgressHandler'],\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"SessionStorage.js","names":["__dirname","path","dirname","fileURLToPath","pkg","JSON","parse","fs","readFileSync","resolve","_sessionStorage","authenticationHeaderOverrides","session","setItem","key","value","getItem","removeItem","raw","setUsername","getUsername","setPassword","getPassword","setTenant","getTenant","setDeploymentType","getDeploymentType","setRealm","getRealm","setCookieName","getCookieName","setCookieValue","getCookieValue","setAuthenticationService","getAuthenticationService","setAuthenticationHeaderOverrides","getAuthenticationHeaderOverrides","setBearerToken","getBearerToken","setLogApiKey","getLogApiKey","setLogApiSecret","getLogApiSecret","setAmVersion","getAmVersion","setFrodoVersion","getFrodoVersion","version","process","setAllowInsecureConnection","getAllowInsecureConnection","setConnectionProfilesPath","getConnectionProfilesPath","setMasterKeyPath","getMasterKeyPath","setPrintHandler","printHandler","getPrintHandler","setErrorHandler","errorHandler","getErrorHandler","setDebugHandler","debugHandler","getDebugHandler","setCreateProgressHandler","handler","getCreateProgressHandler","setUpdateProgressHandler","getUpdateProgressHandler","setStopProgressHandler","getStopProgressHandler"],"sources":["storage/SessionStorage.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst pkg = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, '../../package.json'), 'utf8')\n);\n\nconst _sessionStorage = {\n authenticationHeaderOverrides: {},\n};\n\nexport default {\n session: {\n setItem: (key, value) => (_sessionStorage[key] = value),\n getItem: (key) => _sessionStorage[key],\n removeItem: (key) => delete _sessionStorage[key],\n raw: _sessionStorage,\n setUsername: (value) => (_sessionStorage['username'] = value),\n getUsername: () => _sessionStorage['username'],\n setPassword: (value) => (_sessionStorage['password'] = value),\n getPassword: () => _sessionStorage['password'],\n setTenant: (value) => (_sessionStorage['tenant'] = value),\n getTenant: () => _sessionStorage['tenant'],\n setDeploymentType: (value) => (_sessionStorage['deploymentType'] = value),\n getDeploymentType: () => _sessionStorage['deploymentType'],\n setRealm: (value) => (_sessionStorage['realm'] = value),\n getRealm: () => _sessionStorage['realm'],\n setCookieName: (value) => (_sessionStorage['cookieName'] = value),\n getCookieName: () => _sessionStorage['cookieName'],\n setCookieValue: (value) => (_sessionStorage['cookieValue'] = value),\n getCookieValue: () => _sessionStorage['cookieValue'],\n setAuthenticationService: (value) =>\n (_sessionStorage['authenticationService'] = value),\n getAuthenticationService: () => _sessionStorage['authenticationService'],\n setAuthenticationHeaderOverrides: (value) =>\n (_sessionStorage['authenticationHeaderOverrides'] = value),\n getAuthenticationHeaderOverrides: () =>\n _sessionStorage['authenticationHeaderOverrides'],\n setBearerToken: (value) => (_sessionStorage['bearerToken'] = value),\n getBearerToken: () => _sessionStorage['bearerToken'],\n setLogApiKey: (value) => (_sessionStorage['logApiKey'] = value),\n getLogApiKey: () => _sessionStorage['logApiKey'],\n setLogApiSecret: (value) => (_sessionStorage['logApiSecret'] = value),\n getLogApiSecret: () => _sessionStorage['logApiSecret'],\n setAmVersion: (value) => (_sessionStorage['amVersion'] = value),\n getAmVersion: () => _sessionStorage['amVersion'],\n setFrodoVersion: (value) => (_sessionStorage['frodoVersion'] = value),\n getFrodoVersion: () =>\n _sessionStorage['frodoVersion'] || `v${pkg.version} [${process.version}]`,\n setAllowInsecureConnection: (value) =>\n (_sessionStorage['insecure'] = value),\n getAllowInsecureConnection: () => _sessionStorage['insecure'],\n setConnectionProfilesPath: (value) =>\n (_sessionStorage['connectionProfilesPath'] = value),\n getConnectionProfilesPath: () => _sessionStorage['connectionProfilesPath'],\n setMasterKeyPath: (value) => (_sessionStorage['masterKeyPath'] = value),\n getMasterKeyPath: () => _sessionStorage['masterKeyPath'],\n setPrintHandler: (printHandler) =>\n (_sessionStorage['printHandler'] = printHandler),\n getPrintHandler: () => _sessionStorage['printHandler'],\n setErrorHandler: (errorHandler) =>\n (_sessionStorage['errorHandler'] = errorHandler),\n getErrorHandler: () => _sessionStorage['errorHandler'],\n setDebugHandler: (debugHandler) =>\n (_sessionStorage['debugHandler'] = debugHandler),\n getDebugHandler: () => _sessionStorage['debugHandler'],\n setCreateProgressHandler: (handler) =>\n (_sessionStorage['createProgressHandler'] = handler),\n getCreateProgressHandler: () => _sessionStorage['createProgressHandler'],\n setUpdateProgressHandler: (handler) =>\n (_sessionStorage['updateProgressHandler'] = handler),\n getUpdateProgressHandler: () => _sessionStorage['updateProgressHandler'],\n setStopProgressHandler: (handler) =>\n (_sessionStorage['stopProgressHandler'] = handler),\n getStopProgressHandler: () => _sessionStorage['stopProgressHandler'],\n },\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAEA,IAAMA,QAAS,GAAGC,aAAA,CAAKC,OAAL,CAAa,IAAAC,kBAAA,sDAAb,CAAlB;;AAEA,IAAMC,GAAG,GAAGC,IAAI,CAACC,KAAL,CACVC,WAAA,CAAGC,YAAH,CAAgBP,aAAA,CAAKQ,OAAL,CAAaT,QAAb,EAAwB,oBAAxB,CAAhB,EAA+D,MAA/D,CADU,CAAZ;AAIA,IAAMU,eAAe,GAAG;EACtBC,6BAA6B,EAAE;AADT,CAAxB;eAIe;EACbC,OAAO,EAAE;IACPC,OAAO,EAAE,CAACC,GAAD,EAAMC,KAAN,KAAiBL,eAAe,CAACI,GAAD,CAAf,GAAuBC,KAD1C;IAEPC,OAAO,EAAGF,GAAD,IAASJ,eAAe,CAACI,GAAD,CAF1B;IAGPG,UAAU,EAAGH,GAAD,IAAS,OAAOJ,eAAe,CAACI,GAAD,CAHpC;IAIPI,GAAG,EAAER,eAJE;IAKPS,WAAW,EAAGJ,KAAD,IAAYL,eAAe,CAAC,UAAD,CAAf,GAA8BK,KALhD;IAMPK,WAAW,EAAE,MAAMV,eAAe,CAAC,UAAD,CAN3B;IAOPW,WAAW,EAAGN,KAAD,IAAYL,eAAe,CAAC,UAAD,CAAf,GAA8BK,KAPhD;IAQPO,WAAW,EAAE,MAAMZ,eAAe,CAAC,UAAD,CAR3B;IASPa,SAAS,EAAGR,KAAD,IAAYL,eAAe,CAAC,QAAD,CAAf,GAA4BK,KAT5C;IAUPS,SAAS,EAAE,MAAMd,eAAe,CAAC,QAAD,CAVzB;IAWPe,iBAAiB,EAAGV,KAAD,IAAYL,eAAe,CAAC,gBAAD,CAAf,GAAoCK,KAX5D;IAYPW,iBAAiB,EAAE,MAAMhB,eAAe,CAAC,gBAAD,CAZjC;IAaPiB,QAAQ,EAAGZ,KAAD,IAAYL,eAAe,CAAC,OAAD,CAAf,GAA2BK,KAb1C;IAcPa,QAAQ,EAAE,MAAMlB,eAAe,CAAC,OAAD,CAdxB;IAePmB,aAAa,EAAGd,KAAD,IAAYL,eAAe,CAAC,YAAD,CAAf,GAAgCK,KAfpD;IAgBPe,aAAa,EAAE,MAAMpB,eAAe,CAAC,YAAD,CAhB7B;IAiBPqB,cAAc,EAAGhB,KAAD,IAAYL,eAAe,CAAC,aAAD,CAAf,GAAiCK,KAjBtD;IAkBPiB,cAAc,EAAE,MAAMtB,eAAe,CAAC,aAAD,CAlB9B;IAmBPuB,wBAAwB,EAAGlB,KAAD,IACvBL,eAAe,CAAC,uBAAD,CAAf,GAA2CK,KApBvC;IAqBPmB,wBAAwB,EAAE,MAAMxB,eAAe,CAAC,uBAAD,CArBxC;IAsBPyB,gCAAgC,EAAGpB,KAAD,IAC/BL,eAAe,CAAC,+BAAD,CAAf,GAAmDK,KAvB/C;IAwBPqB,gCAAgC,EAAE,MAChC1B,eAAe,CAAC,+BAAD,CAzBV;IA0BP2B,cAAc,EAAGtB,KAAD,IAAYL,eAAe,CAAC,aAAD,CAAf,GAAiCK,KA1BtD;IA2BPuB,cAAc,EAAE,MAAM5B,eAAe,CAAC,aAAD,CA3B9B;IA4BP6B,YAAY,EAAGxB,KAAD,IAAYL,eAAe,CAAC,WAAD,CAAf,GAA+BK,KA5BlD;IA6BPyB,YAAY,EAAE,MAAM9B,eAAe,CAAC,WAAD,CA7B5B;IA8BP+B,eAAe,EAAG1B,KAAD,IAAYL,eAAe,CAAC,cAAD,CAAf,GAAkCK,KA9BxD;IA+BP2B,eAAe,EAAE,MAAMhC,eAAe,CAAC,cAAD,CA/B/B;IAgCPiC,YAAY,EAAG5B,KAAD,IAAYL,eAAe,CAAC,WAAD,CAAf,GAA+BK,KAhClD;IAiCP6B,YAAY,EAAE,MAAMlC,eAAe,CAAC,WAAD,CAjC5B;IAkCPmC,eAAe,EAAG9B,KAAD,IAAYL,eAAe,CAAC,cAAD,CAAf,GAAkCK,KAlCxD;IAmCP+B,eAAe,EAAE,MACfpC,eAAe,CAAC,cAAD,CAAf,eAAuCN,GAAG,CAAC2C,OAA3C,eAAuDC,OAAO,CAACD,OAA/D,MApCK;IAqCPE,0BAA0B,EAAGlC,KAAD,IACzBL,eAAe,CAAC,UAAD,CAAf,GAA8BK,KAtC1B;IAuCPmC,0BAA0B,EAAE,MAAMxC,eAAe,CAAC,UAAD,CAvC1C;IAwCPyC,yBAAyB,EAAGpC,KAAD,IACxBL,eAAe,CAAC,wBAAD,CAAf,GAA4CK,KAzCxC;IA0CPqC,yBAAyB,EAAE,MAAM1C,eAAe,CAAC,wBAAD,CA1CzC;IA2CP2C,gBAAgB,EAAGtC,KAAD,IAAYL,eAAe,CAAC,eAAD,CAAf,GAAmCK,KA3C1D;IA4CPuC,gBAAgB,EAAE,MAAM5C,eAAe,CAAC,eAAD,CA5ChC;IA6CP6C,eAAe,EAAGC,YAAD,IACd9C,eAAe,CAAC,cAAD,CAAf,GAAkC8C,YA9C9B;IA+CPC,eAAe,EAAE,MAAM/C,eAAe,CAAC,cAAD,CA/C/B;IAgDPgD,eAAe,EAAGC,YAAD,IACdjD,eAAe,CAAC,cAAD,CAAf,GAAkCiD,YAjD9B;IAkDPC,eAAe,EAAE,MAAMlD,eAAe,CAAC,cAAD,CAlD/B;IAmDPmD,eAAe,EAAGC,YAAD,IACdpD,eAAe,CAAC,cAAD,CAAf,GAAkCoD,YApD9B;IAqDPC,eAAe,EAAE,MAAMrD,eAAe,CAAC,cAAD,CArD/B;IAsDPsD,wBAAwB,EAAGC,OAAD,IACvBvD,eAAe,CAAC,uBAAD,CAAf,GAA2CuD,OAvDvC;IAwDPC,wBAAwB,EAAE,MAAMxD,eAAe,CAAC,uBAAD,CAxDxC;IAyDPyD,wBAAwB,EAAGF,OAAD,IACvBvD,eAAe,CAAC,uBAAD,CAAf,GAA2CuD,OA1DvC;IA2DPG,wBAAwB,EAAE,MAAM1D,eAAe,CAAC,uBAAD,CA3DxC;IA4DP2D,sBAAsB,EAAGJ,OAAD,IACrBvD,eAAe,CAAC,qBAAD,CAAf,GAAyCuD,OA7DrC;IA8DPK,sBAAsB,EAAE,MAAM5D,eAAe,CAAC,qBAAD;EA9DtC;AADI,C"}
@@ -0,0 +1,33 @@
1
+ export let ScriptLanguage;
2
+
3
+ (function (ScriptLanguage) {
4
+ ScriptLanguage["GROOVY"] = "GROOVY";
5
+ ScriptLanguage["JAVASCRIPT"] = "JAVASCRIPT";
6
+ })(ScriptLanguage || (ScriptLanguage = {}));
7
+
8
+ export let ScriptContext;
9
+
10
+ (function (ScriptContext) {
11
+ ScriptContext["OAUTH2_ACCESS_TOKEN_MODIFICATION"] = "OAUTH2_ACCESS_TOKEN_MODIFICATION";
12
+ ScriptContext["AUTHENTICATION_CLIENT_SIDE"] = "AUTHENTICATION_CLIENT_SIDE";
13
+ ScriptContext["AUTHENTICATION_TREE_DECISION_NODE"] = "AUTHENTICATION_TREE_DECISION_NODE";
14
+ ScriptContext["AUTHENTICATION_SERVER_SIDE"] = "AUTHENTICATION_SERVER_SIDE";
15
+ ScriptContext["SOCIAL_IDP_PROFILE_TRANSFORMATION"] = "SOCIAL_IDP_PROFILE_TRANSFORMATION";
16
+ ScriptContext["OAUTH2_VALIDATE_SCOPE"] = "OAUTH2_VALIDATE_SCOPE";
17
+ ScriptContext["CONFIG_PROVIDER_NODE"] = "CONFIG_PROVIDER_NODE";
18
+ ScriptContext["OAUTH2_AUTHORIZE_ENDPOINT_DATA_PROVIDER"] = "OAUTH2_AUTHORIZE_ENDPOINT_DATA_PROVIDER";
19
+ ScriptContext["OAUTH2_EVALUATE_SCOPE"] = "OAUTH2_EVALUATE_SCOPE";
20
+ ScriptContext["POLICY_CONDITION"] = "POLICY_CONDITION";
21
+ ScriptContext["OIDC_CLAIMS"] = "OIDC_CLAIMS";
22
+ ScriptContext["SAML2_IDP_ADAPTER"] = "SAML2_IDP_ADAPTER";
23
+ ScriptContext["SAML2_IDP_ATTRIBUTE_MAPPER"] = "SAML2_IDP_ATTRIBUTE_MAPPER";
24
+ ScriptContext["OAUTH2_MAY_ACT"] = "OAUTH2_MAY_ACT";
25
+ })(ScriptContext || (ScriptContext = {}));
26
+
27
+ export let Saml2ProiderLocation;
28
+
29
+ (function (Saml2ProiderLocation) {
30
+ Saml2ProiderLocation["HOSTED"] = "hosted";
31
+ Saml2ProiderLocation["REMOTE"] = "remote";
32
+ })(Saml2ProiderLocation || (Saml2ProiderLocation = {}));
33
+ //# sourceMappingURL=ApiTypes.js.map
@@ -35,7 +35,7 @@ export async function getProviders() {
35
35
  }
36
36
  /**
37
37
  * Find all providers matching the filter and return the requested fields
38
- * @param {string} filter CREST filter string, eg "entityId+eq+'${entityId}'"
38
+ * @param {string} filter CREST filter string, eg "entityId+eq+'${entityId}'" or "true" for all providers
39
39
  * @param {string} fields Comma-delimited list of fields to include in the response
40
40
  * @returns {Promise} a promise that resolves to an object containing an array of saml2 entities
41
41
  */
package/esm/index.mjs CHANGED
@@ -9,12 +9,14 @@ export function getVersion() {
9
9
  return `v${pkg.version}`;
10
10
  } // Api Layer
11
11
 
12
+ export * as TypesRaw from './api/ApiTypes';
12
13
  export * as NodeRaw from './api/NodeApi';
13
14
  export * as TreeRaw from './api/TreeApi';
14
15
  export * as StartupRaw from './api/StartupApi';
15
16
  export * as SecretsRaw from './api/SecretsApi';
16
17
  export * as VariablesRaw from './api/VariablesApi'; // Ops Layer
17
18
 
19
+ export * as Types from './ops/OpsTypes';
18
20
  export * as Admin from './ops/AdminOps';
19
21
  export * as Authenticate from './ops/AuthenticateOps';
20
22
  export * as CirclesOfTrust from './ops/CirclesOfTrustOps';
@@ -2,7 +2,17 @@ import fs from 'fs';
2
2
  import _ from 'lodash';
3
3
  import { createTable, printMessage, createProgressIndicator, updateProgressIndicator, stopProgressIndicator } from './utils/Console';
4
4
  import { getCirclesOfTrust, getCircleOfTrust, createCircleOfTrust } from '../api/CirclesOfTrustApi';
5
- import { getRealmString, getTypedFilename, saveJsonToFile, validateImport } from './utils/ExportImportUtils'; // use a function vs a template variable to avoid problems in loops
5
+ import { getRealmString, getTypedFilename, saveJsonToFile, validateImport } from './utils/ExportImportUtils';
6
+
7
+ /**
8
+ * Get a one-line description of the circle of trust object
9
+ * @param {CircleOfTrustSkeleton} cotObj circle of trust object to describe
10
+ * @returns {string} a one-line description
11
+ */
12
+ export function getOneLineDescription(cotObj) {
13
+ const description = `[${cotObj._id['brightCyan']}]`;
14
+ return description;
15
+ } // use a function vs a template variable to avoid problems in loops
6
16
 
7
17
  function getFileDataTemplate() {
8
18
  return {
@@ -20,13 +20,23 @@ function getFileDataTemplate() {
20
20
  emailTemplate: {}
21
21
  };
22
22
  }
23
+ /**
24
+ * Get a one-line description of the email template
25
+ * @param {EmailTemplateSkeleton} templateObj email template object to describe
26
+ * @returns {string} a one-line description
27
+ */
28
+
29
+
30
+ export function getOneLineDescription(templateObj) {
31
+ const description = `[${templateObj._id.split('/')[1]['brightCyan']}] ${templateObj.displayName['brightYellow']} - ${templateObj.subject[templateObj.defaultLocale]['brightYellow']}`;
32
+ return description;
33
+ }
23
34
  /**
24
35
  * List email templates
25
36
  * @param {boolean} long Long list format with details
26
37
  * @return {Promise<unknown[]>} a promise that resolves to an array of email template objects
27
38
  */
28
39
 
29
-
30
40
  export async function listEmailTemplates(long = false) {
31
41
  let emailTemplates = [];
32
42
 
@@ -3,7 +3,17 @@ import { getSocialIdentityProviders, putProviderByTypeAndId } from '../api/Socia
3
3
  import { getScript } from '../api/ScriptApi';
4
4
  import { createOrUpdateScript } from './ScriptOps';
5
5
  import { convertBase64TextToArray, convertTextArrayToBase64, getRealmString, getTypedFilename, saveJsonToFile, validateImport } from './utils/ExportImportUtils';
6
- import { printMessage, createProgressIndicator, updateProgressIndicator, stopProgressIndicator } from './utils/Console'; // use a function vs a template variable to avoid problems in loops
6
+ import { printMessage, createProgressIndicator, updateProgressIndicator, stopProgressIndicator } from './utils/Console';
7
+
8
+ /**
9
+ * Get a one-line description of the social idp object
10
+ * @param {SocialIdpSkeleton} socialIdpObj social idp object to describe
11
+ * @returns {string} a one-line description
12
+ */
13
+ export function getOneLineDescription(socialIdpObj) {
14
+ const description = `[${socialIdpObj._id['brightCyan']}] ${socialIdpObj._type._id}`;
15
+ return description;
16
+ } // use a function vs a template variable to avoid problems in loops
7
17
 
8
18
  function getFileDataTemplate() {
9
19
  return {