@rockcarver/frodo-cli 2.0.0-38 → 2.0.0-39

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 (98) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/esm/cli/_template/something-else-export.js +1 -1
  3. package/esm/cli/_template/something-else-export.js.map +1 -1
  4. package/esm/cli/_template/something-export.js +1 -1
  5. package/esm/cli/_template/something-export.js.map +1 -1
  6. package/esm/cli/_template/something-other-export.js +1 -1
  7. package/esm/cli/_template/something-other-export.js.map +1 -1
  8. package/esm/cli/admin/admin-federation-export.js +4 -4
  9. package/esm/cli/admin/admin-federation-export.js.map +1 -1
  10. package/esm/cli/agent/agent-export.js +4 -4
  11. package/esm/cli/agent/agent-export.js.map +1 -1
  12. package/esm/cli/agent/agent-gateway-export.js +4 -4
  13. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  14. package/esm/cli/agent/agent-java-export.js +4 -4
  15. package/esm/cli/agent/agent-java-export.js.map +1 -1
  16. package/esm/cli/agent/agent-web-export.js +4 -4
  17. package/esm/cli/agent/agent-web-export.js.map +1 -1
  18. package/esm/cli/app/app-export.js +4 -4
  19. package/esm/cli/app/app-export.js.map +1 -1
  20. package/esm/cli/authn/authn-export.js +2 -2
  21. package/esm/cli/authn/authn-export.js.map +1 -1
  22. package/esm/cli/authz/authz-policy-export.js +6 -6
  23. package/esm/cli/authz/authz-policy-export.js.map +1 -1
  24. package/esm/cli/authz/authz-set-export.js +4 -4
  25. package/esm/cli/authz/authz-set-export.js.map +1 -1
  26. package/esm/cli/authz/authz-type-export.js +5 -5
  27. package/esm/cli/authz/authz-type-export.js.map +1 -1
  28. package/esm/cli/config/config-export.js +3 -3
  29. package/esm/cli/config/config-export.js.map +1 -1
  30. package/esm/cli/email/email-template-export.js +4 -4
  31. package/esm/cli/email/email-template-export.js.map +1 -1
  32. package/esm/cli/esv/esv-secret-export.js +4 -4
  33. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  34. package/esm/cli/esv/esv-variable-export.js +4 -4
  35. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  36. package/esm/cli/idp/idp-export.js +4 -4
  37. package/esm/cli/idp/idp-export.js.map +1 -1
  38. package/esm/cli/journey/journey-describe.js +3 -1
  39. package/esm/cli/journey/journey-describe.js.map +1 -1
  40. package/esm/cli/journey/journey-export.js +4 -4
  41. package/esm/cli/journey/journey-export.js.map +1 -1
  42. package/esm/cli/oauth/oauth-client-export.js +4 -4
  43. package/esm/cli/oauth/oauth-client-export.js.map +1 -1
  44. package/esm/cli/saml/saml-cot-export.js +4 -4
  45. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  46. package/esm/cli/saml/saml-export.js +4 -4
  47. package/esm/cli/saml/saml-export.js.map +1 -1
  48. package/esm/cli/script/script-export.js +4 -4
  49. package/esm/cli/script/script-export.js.map +1 -1
  50. package/esm/cli/service/service-export.js +4 -4
  51. package/esm/cli/service/service-export.js.map +1 -1
  52. package/esm/cli/theme/theme-export.js +5 -5
  53. package/esm/cli/theme/theme-export.js.map +1 -1
  54. package/esm/ops/AdminFederationOps.js +11 -7
  55. package/esm/ops/AdminFederationOps.js.map +1 -1
  56. package/esm/ops/AgentOps.js +39 -25
  57. package/esm/ops/AgentOps.js.map +1 -1
  58. package/esm/ops/ApplicationOps.js +11 -8
  59. package/esm/ops/ApplicationOps.js.map +1 -1
  60. package/esm/ops/AuthenticationSettingsOps.js +4 -3
  61. package/esm/ops/AuthenticationSettingsOps.js.map +1 -1
  62. package/esm/ops/CirclesOfTrustOps.js +12 -7
  63. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  64. package/esm/ops/ConfigOps.js +9 -7
  65. package/esm/ops/ConfigOps.js.map +1 -1
  66. package/esm/ops/EmailTemplateOps.js +11 -7
  67. package/esm/ops/EmailTemplateOps.js.map +1 -1
  68. package/esm/ops/IdmOps.js +3 -2
  69. package/esm/ops/IdmOps.js.map +1 -1
  70. package/esm/ops/IdpOps.js +14 -7
  71. package/esm/ops/IdpOps.js.map +1 -1
  72. package/esm/ops/JourneyOps.js +15 -6
  73. package/esm/ops/JourneyOps.js.map +1 -1
  74. package/esm/ops/OAuth2ClientOps.js +10 -7
  75. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  76. package/esm/ops/PolicyOps.js +18 -11
  77. package/esm/ops/PolicyOps.js.map +1 -1
  78. package/esm/ops/PolicySetOps.js +12 -7
  79. package/esm/ops/PolicySetOps.js.map +1 -1
  80. package/esm/ops/ResourceTypeOps.js +15 -9
  81. package/esm/ops/ResourceTypeOps.js.map +1 -1
  82. package/esm/ops/Saml2Ops.js +10 -7
  83. package/esm/ops/Saml2Ops.js.map +1 -1
  84. package/esm/ops/ScriptOps.js +22 -14
  85. package/esm/ops/ScriptOps.js.map +1 -1
  86. package/esm/ops/SecretsOps.js +14 -8
  87. package/esm/ops/SecretsOps.js.map +1 -1
  88. package/esm/ops/ServiceOps.js +10 -9
  89. package/esm/ops/ServiceOps.js.map +1 -1
  90. package/esm/ops/ThemeOps.js +15 -9
  91. package/esm/ops/ThemeOps.js.map +1 -1
  92. package/esm/ops/VariablesOps.js +14 -8
  93. package/esm/ops/VariablesOps.js.map +1 -1
  94. package/esm/utils/Config.js +2 -2
  95. package/esm/utils/Config.js.map +1 -1
  96. package/package.json +2 -2
  97. package/esm/utils/ExportImportUtils.js +0 -48
  98. package/esm/utils/ExportImportUtils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AdminFederationOps.js","names":["frodo","fs","createProgressIndicator","debugMessage","printMessage","stopProgressIndicator","updateProgressIndicator","getTypedFilename","saveJsonToFile","readAdminFederationProviders","exportAdminFederationProvider","exportAdminFederationProviders","importAdminFederationProvider","importAdminFederationProviders","importFirstAdminFederationProvider","cloud","adminFed","getFilePath","getWorkingDirectory","utils","listAdminFederationProviders","outcome","providers","sort","a","b","_id","localeCompare","forEach","socialIdentityProvider","err","message","exportAdminFederationProviderToFile","providerId","file","fileName","filePath","indicatorId","fileData","exportAdminFederationProvidersToFile","spinnerId","error","_error$response","response","data","exportAdminFederationProvidersToFiles","allIdpsData","length","idpData","_error$response2","importAdminFederationProviderFromFile","readFileSync","JSON","parse","_error$response3","importFirstAdminFederationProviderFromFile","_error$response4","importAdminFederationProvidersFromFile","_error$response5","importAdminFederationProvidersFromFiles","errors","names","readdirSync","files","filter","name","toLowerCase","endsWith","map","total","count","Object","keys","idp","push"],"sources":["../../src/ops/AdminFederationOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\n\nimport {\n createProgressIndicator,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from '../utils/Console';\nimport { getTypedFilename, saveJsonToFile } from '../utils/ExportImportUtils';\n\nconst {\n readAdminFederationProviders,\n exportAdminFederationProvider,\n exportAdminFederationProviders,\n importAdminFederationProvider,\n importAdminFederationProviders,\n importFirstAdminFederationProvider,\n} = frodo.cloud.adminFed;\n\nconst { getFilePath, getWorkingDirectory } = frodo.utils;\n\n/**\n * List providers\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listAdminFederationProviders(): Promise<boolean> {\n let outcome = false;\n try {\n const providers = await readAdminFederationProviders();\n providers.sort((a, b) => a._id.localeCompare(b._id));\n providers.forEach((socialIdentityProvider) => {\n printMessage(`${socialIdentityProvider._id}`, 'data');\n });\n outcome = true;\n } catch (err) {\n printMessage(`listAdminFederationProviders ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Export provider by id\n * @param {string} providerId provider id/name\n * @param {string} file optional export file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAdminFederationProviderToFile(\n providerId: string,\n file = ''\n): Promise<boolean> {\n let outcome = false;\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(providerId, 'admin.federation');\n }\n const filePath = getFilePath(fileName, true);\n const indicatorId = createProgressIndicator(\n 'determinate',\n 1,\n `Exporting ${providerId}`\n );\n try {\n updateProgressIndicator(indicatorId, `Writing file ${filePath}`);\n const fileData = await exportAdminFederationProvider(providerId);\n saveJsonToFile(fileData, filePath);\n stopProgressIndicator(\n indicatorId,\n `Exported ${providerId['brightCyan']} to ${filePath['brightCyan']}.`\n );\n outcome = true;\n } catch (err) {\n stopProgressIndicator(indicatorId, `${err}`);\n printMessage(`${err}`, 'error');\n }\n return outcome;\n}\n\n/**\n * Export all providers\n * @param {string} file optional export file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAdminFederationProvidersToFile(\n file = ''\n): Promise<boolean> {\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Exporting all providers...`\n );\n try {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(`allProviders`, 'admin.federation');\n }\n const filePath = getFilePath(fileName, true);\n const fileData = await exportAdminFederationProviders();\n saveJsonToFile(fileData, filePath);\n stopProgressIndicator(\n spinnerId,\n `Exported all providers to ${filePath}`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(spinnerId, `Error exporting all providers.`, 'fail');\n printMessage(error.response?.data || error, 'error');\n }\n return outcome;\n}\n\n/**\n * Export all providers to individual files\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAdminFederationProvidersToFiles(): Promise<boolean> {\n let outcome = false;\n let indicatorId: string;\n try {\n const allIdpsData = await readAdminFederationProviders();\n indicatorId = createProgressIndicator(\n 'determinate',\n allIdpsData.length,\n 'Exporting providers'\n );\n for (const idpData of allIdpsData) {\n updateProgressIndicator(indicatorId, `Writing provider ${idpData._id}`);\n const fileName = getTypedFilename(idpData._id, 'admin.federation');\n const fileData = await exportAdminFederationProvider(idpData._id);\n saveJsonToFile(fileData, getFilePath(fileName, true));\n }\n stopProgressIndicator(\n indicatorId,\n `${allIdpsData.length} providers exported.`\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n indicatorId,\n `Error exporting all providers.`,\n 'fail'\n );\n printMessage(error.response?.data || error, 'error');\n }\n return outcome;\n}\n\n/**\n * Import provider by id/name\n * @param {string} providerId provider id/name\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAdminFederationProviderFromFile(\n providerId: string,\n file: string\n): Promise<boolean> {\n let outcome = false;\n const filePath = getFilePath(file);\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing provider ${providerId} from ${filePath}...`\n );\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importAdminFederationProvider(providerId, fileData);\n stopProgressIndicator(\n spinnerId,\n `Successfully imported provider ${providerId} from ${filePath}.`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error importing provider ${providerId} from ${filePath}.`,\n 'fail'\n );\n printMessage(error.response?.data || error, 'error');\n }\n return outcome;\n}\n\n/**\n * Import first provider from file\n * @param {String} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstAdminFederationProviderFromFile(\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(\n `cli.AdminFederationOps.importFirstAdminFederationProviderFromFile: begin`\n );\n const filePath = getFilePath(file);\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing first provider from ${filePath}...`\n );\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstAdminFederationProvider(fileData);\n stopProgressIndicator(\n spinnerId,\n `Successfully imported first provider from ${filePath}.`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error importing first provider from ${filePath}.`,\n 'fail'\n );\n printMessage(error.response?.data || error, 'error');\n }\n debugMessage(\n `cli.AdminFederationOps.importFirstAdminFederationProviderFromFile: end`\n );\n return outcome;\n}\n\n/**\n * Import all providers from file\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAdminFederationProvidersFromFile(\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(\n `cli.AdminFederationOps.importAdminFederationProvidersFromFile: begin`\n );\n const filePath = getFilePath(file);\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing providers from ${filePath}...`\n );\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importAdminFederationProviders(fileData);\n stopProgressIndicator(\n spinnerId,\n `Imported providers from ${filePath}.`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(spinnerId, `Error importing ${filePath}.`, 'fail');\n printMessage(error.response?.data || error, 'error');\n }\n debugMessage(\n `cli.AdminFederationOps.importAdminFederationProvidersFromFile: end`\n );\n return outcome;\n}\n\n/**\n * Import providers from *.idp.json files in current working directory\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAdminFederationProvidersFromFiles(): Promise<boolean> {\n const errors = [];\n let indicatorId: string;\n try {\n debugMessage(\n `cli.AdminFederationOps.importAdminFederationProvidersFromFiles: begin`\n );\n const names = fs.readdirSync(getWorkingDirectory());\n const files = names\n .filter((name) => name.toLowerCase().endsWith('.admin.federation.json'))\n .map((name) => getFilePath(name));\n indicatorId = createProgressIndicator(\n 'determinate',\n files.length,\n 'Importing providers...'\n );\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n const count = Object.keys(fileData.idp).length;\n total += count;\n await importAdminFederationProviders(fileData);\n updateProgressIndicator(\n indicatorId,\n `Imported ${count} provider(s) from ${file}`\n );\n } catch (error) {\n errors.push(error);\n updateProgressIndicator(\n indicatorId,\n `Error importing provider(s) from ${file}`\n );\n printMessage(error, 'error');\n }\n }\n stopProgressIndicator(\n indicatorId,\n `Finished importing ${total} provider(s) from ${files.length} file(s).`\n );\n } catch (error) {\n errors.push(error);\n stopProgressIndicator(\n indicatorId,\n `Error importing provider(s) from file(s).`\n );\n printMessage(error, 'error');\n }\n debugMessage(\n `cli.AdminFederationOps.importAdminFederationProvidersFromFiles: end`\n );\n return 0 === errors.length;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AdminFederationOps.js","names":["frodo","fs","createProgressIndicator","debugMessage","printMessage","stopProgressIndicator","updateProgressIndicator","readAdminFederationProviders","exportAdminFederationProvider","exportAdminFederationProviders","importAdminFederationProvider","importAdminFederationProviders","importFirstAdminFederationProvider","cloud","adminFed","getTypedFilename","saveJsonToFile","getFilePath","getWorkingDirectory","utils","listAdminFederationProviders","outcome","providers","sort","a","b","_id","localeCompare","forEach","socialIdentityProvider","err","message","exportAdminFederationProviderToFile","providerId","file","includeMeta","fileName","filePath","indicatorId","fileData","exportAdminFederationProvidersToFile","spinnerId","error","_error$response","response","data","exportAdminFederationProvidersToFiles","allIdpsData","length","idpData","_error$response2","importAdminFederationProviderFromFile","readFileSync","JSON","parse","_error$response3","importFirstAdminFederationProviderFromFile","_error$response4","importAdminFederationProvidersFromFile","_error$response5","importAdminFederationProvidersFromFiles","errors","names","readdirSync","files","filter","name","toLowerCase","endsWith","map","total","count","Object","keys","idp","push"],"sources":["../../src/ops/AdminFederationOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\n\nimport {\n createProgressIndicator,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from '../utils/Console';\n\nconst {\n readAdminFederationProviders,\n exportAdminFederationProvider,\n exportAdminFederationProviders,\n importAdminFederationProvider,\n importAdminFederationProviders,\n importFirstAdminFederationProvider,\n} = frodo.cloud.adminFed;\n\nconst { getTypedFilename, saveJsonToFile, getFilePath, getWorkingDirectory } =\n frodo.utils;\n\n/**\n * List providers\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listAdminFederationProviders(): Promise<boolean> {\n let outcome = false;\n try {\n const providers = await readAdminFederationProviders();\n providers.sort((a, b) => a._id.localeCompare(b._id));\n providers.forEach((socialIdentityProvider) => {\n printMessage(`${socialIdentityProvider._id}`, 'data');\n });\n outcome = true;\n } catch (err) {\n printMessage(`listAdminFederationProviders ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Export provider by id\n * @param {string} providerId provider id/name\n * @param {string} file optional export file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAdminFederationProviderToFile(\n providerId: string,\n file = '',\n includeMeta = true\n): Promise<boolean> {\n let outcome = false;\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(providerId, 'admin.federation');\n }\n const filePath = getFilePath(fileName, true);\n const indicatorId = createProgressIndicator(\n 'determinate',\n 1,\n `Exporting ${providerId}`\n );\n try {\n updateProgressIndicator(indicatorId, `Writing file ${filePath}`);\n const fileData = await exportAdminFederationProvider(providerId);\n saveJsonToFile(fileData, filePath, includeMeta);\n stopProgressIndicator(\n indicatorId,\n `Exported ${providerId['brightCyan']} to ${filePath['brightCyan']}.`\n );\n outcome = true;\n } catch (err) {\n stopProgressIndicator(indicatorId, `${err}`);\n printMessage(`${err}`, 'error');\n }\n return outcome;\n}\n\n/**\n * Export all providers\n * @param {string} file optional export file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAdminFederationProvidersToFile(\n file = '',\n includeMeta = true\n): Promise<boolean> {\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Exporting all providers...`\n );\n try {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(`allProviders`, 'admin.federation');\n }\n const filePath = getFilePath(fileName, true);\n const fileData = await exportAdminFederationProviders();\n saveJsonToFile(fileData, filePath, includeMeta);\n stopProgressIndicator(\n spinnerId,\n `Exported all providers to ${filePath}`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(spinnerId, `Error exporting all providers.`, 'fail');\n printMessage(error.response?.data || error, 'error');\n }\n return outcome;\n}\n\n/**\n * Export all providers to individual files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAdminFederationProvidersToFiles(\n includeMeta = true\n): Promise<boolean> {\n let outcome = false;\n let indicatorId: string;\n try {\n const allIdpsData = await readAdminFederationProviders();\n indicatorId = createProgressIndicator(\n 'determinate',\n allIdpsData.length,\n 'Exporting providers'\n );\n for (const idpData of allIdpsData) {\n updateProgressIndicator(indicatorId, `Writing provider ${idpData._id}`);\n const fileName = getTypedFilename(idpData._id, 'admin.federation');\n const fileData = await exportAdminFederationProvider(idpData._id);\n saveJsonToFile(fileData, getFilePath(fileName, true), includeMeta);\n }\n stopProgressIndicator(\n indicatorId,\n `${allIdpsData.length} providers exported.`\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n indicatorId,\n `Error exporting all providers.`,\n 'fail'\n );\n printMessage(error.response?.data || error, 'error');\n }\n return outcome;\n}\n\n/**\n * Import provider by id/name\n * @param {string} providerId provider id/name\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAdminFederationProviderFromFile(\n providerId: string,\n file: string\n): Promise<boolean> {\n let outcome = false;\n const filePath = getFilePath(file);\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing provider ${providerId} from ${filePath}...`\n );\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importAdminFederationProvider(providerId, fileData);\n stopProgressIndicator(\n spinnerId,\n `Successfully imported provider ${providerId} from ${filePath}.`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error importing provider ${providerId} from ${filePath}.`,\n 'fail'\n );\n printMessage(error.response?.data || error, 'error');\n }\n return outcome;\n}\n\n/**\n * Import first provider from file\n * @param {String} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstAdminFederationProviderFromFile(\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(\n `cli.AdminFederationOps.importFirstAdminFederationProviderFromFile: begin`\n );\n const filePath = getFilePath(file);\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing first provider from ${filePath}...`\n );\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstAdminFederationProvider(fileData);\n stopProgressIndicator(\n spinnerId,\n `Successfully imported first provider from ${filePath}.`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error importing first provider from ${filePath}.`,\n 'fail'\n );\n printMessage(error.response?.data || error, 'error');\n }\n debugMessage(\n `cli.AdminFederationOps.importFirstAdminFederationProviderFromFile: end`\n );\n return outcome;\n}\n\n/**\n * Import all providers from file\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAdminFederationProvidersFromFile(\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(\n `cli.AdminFederationOps.importAdminFederationProvidersFromFile: begin`\n );\n const filePath = getFilePath(file);\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing providers from ${filePath}...`\n );\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importAdminFederationProviders(fileData);\n stopProgressIndicator(\n spinnerId,\n `Imported providers from ${filePath}.`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(spinnerId, `Error importing ${filePath}.`, 'fail');\n printMessage(error.response?.data || error, 'error');\n }\n debugMessage(\n `cli.AdminFederationOps.importAdminFederationProvidersFromFile: end`\n );\n return outcome;\n}\n\n/**\n * Import providers from *.idp.json files in current working directory\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAdminFederationProvidersFromFiles(): Promise<boolean> {\n const errors = [];\n let indicatorId: string;\n try {\n debugMessage(\n `cli.AdminFederationOps.importAdminFederationProvidersFromFiles: begin`\n );\n const names = fs.readdirSync(getWorkingDirectory());\n const files = names\n .filter((name) => name.toLowerCase().endsWith('.admin.federation.json'))\n .map((name) => getFilePath(name));\n indicatorId = createProgressIndicator(\n 'determinate',\n files.length,\n 'Importing providers...'\n );\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n const count = Object.keys(fileData.idp).length;\n total += count;\n await importAdminFederationProviders(fileData);\n updateProgressIndicator(\n indicatorId,\n `Imported ${count} provider(s) from ${file}`\n );\n } catch (error) {\n errors.push(error);\n updateProgressIndicator(\n indicatorId,\n `Error importing provider(s) from ${file}`\n );\n printMessage(error, 'error');\n }\n }\n stopProgressIndicator(\n indicatorId,\n `Finished importing ${total} provider(s) from ${files.length} file(s).`\n );\n } catch (error) {\n errors.push(error);\n stopProgressIndicator(\n indicatorId,\n `Error importing provider(s) from file(s).`\n );\n printMessage(error, 'error');\n }\n debugMessage(\n `cli.AdminFederationOps.importAdminFederationProvidersFromFiles: end`\n );\n return 0 === errors.length;\n}\n"],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import { frodo, state } from '@rockcarver/frodo-lib';
2
2
  import fs from 'fs';
3
3
  import { createProgressIndicator, createTable, debugMessage, printMessage, stopProgressIndicator } from '../utils/Console';
4
- import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImportUtils';
5
4
  const {
6
5
  getRealmName,
6
+ getTypedFilename,
7
+ saveJsonToFile,
8
+ titleCase,
7
9
  getFilePath,
8
10
  getWorkingDirectory
9
11
  } = frodo.utils;
@@ -143,115 +145,124 @@ export async function listWebAgents(long = false) {
143
145
  /**
144
146
  * Export all agents to file
145
147
  * @param {string} file file name
148
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
146
149
  */
147
- export async function exportAgentsToFile(file) {
150
+ export async function exportAgentsToFile(file, includeMeta = true) {
148
151
  const exportData = await exportAgents();
149
152
  let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}Agents`, 'agent');
150
153
  if (file) {
151
154
  fileName = file;
152
155
  }
153
- saveJsonToFile(exportData, getFilePath(fileName, true));
156
+ saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);
154
157
  }
155
158
 
156
159
  /**
157
160
  * Export all identity gateway agents to file
158
161
  * @param {string} file file name
162
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
159
163
  */
160
- export async function exportIdentityGatewayAgentsToFile(file) {
164
+ export async function exportIdentityGatewayAgentsToFile(file, includeMeta = true) {
161
165
  const exportData = await exportIdentityGatewayAgents();
162
166
  let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}Agents`, agentTypeToFileIdMap['IdentityGatewayAgent']);
163
167
  if (file) {
164
168
  fileName = file;
165
169
  }
166
- saveJsonToFile(exportData, getFilePath(fileName, true));
170
+ saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);
167
171
  }
168
172
 
169
173
  /**
170
174
  * Export all java agents to file
171
175
  * @param {string} file file name
176
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
172
177
  */
173
- export async function exportJavaAgentsToFile(file) {
178
+ export async function exportJavaAgentsToFile(file, includeMeta = true) {
174
179
  const exportData = await exportJavaAgents();
175
180
  let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}Agents`, agentTypeToFileIdMap['J2EEAgent']);
176
181
  if (file) {
177
182
  fileName = file;
178
183
  }
179
- saveJsonToFile(exportData, getFilePath(fileName, true));
184
+ saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);
180
185
  }
181
186
 
182
187
  /**
183
188
  * Export all web agents to file
184
189
  * @param {string} file file name
190
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
185
191
  */
186
- export async function exportWebAgentsToFile(file) {
192
+ export async function exportWebAgentsToFile(file, includeMeta = true) {
187
193
  const exportData = await exportWebAgents();
188
194
  let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}Agents`, agentTypeToFileIdMap['WebAgent']);
189
195
  if (file) {
190
196
  fileName = file;
191
197
  }
192
- saveJsonToFile(exportData, getFilePath(fileName, true));
198
+ saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);
193
199
  }
194
200
 
195
201
  /**
196
202
  * Export agent to file
197
203
  * @param {string} agentId agent id
198
204
  * @param {string} file file name
205
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
199
206
  */
200
- export async function exportAgentToFile(agentId, file) {
207
+ export async function exportAgentToFile(agentId, file, includeMeta = true) {
201
208
  const exportData = await exportAgent(agentId);
202
209
  let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
203
210
  if (file) {
204
211
  fileName = file;
205
212
  }
206
- saveJsonToFile(exportData, getFilePath(fileName, true));
213
+ saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);
207
214
  }
208
215
 
209
216
  /**
210
217
  * Export identity gateway agent to file
211
218
  * @param {string} agentId agent id
212
219
  * @param {string} file file name
220
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
213
221
  */
214
- export async function exportIdentityGatewayAgentToFile(agentId, file) {
222
+ export async function exportIdentityGatewayAgentToFile(agentId, file, includeMeta = true) {
215
223
  const exportData = await exportIdentityGatewayAgent(agentId);
216
224
  let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
217
225
  if (file) {
218
226
  fileName = file;
219
227
  }
220
- saveJsonToFile(exportData, getFilePath(fileName, true));
228
+ saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);
221
229
  }
222
230
 
223
231
  /**
224
232
  * Export java agent to file
225
233
  * @param {string} agentId agent id
226
234
  * @param {string} file file name
235
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
227
236
  */
228
- export async function exportJavaAgentToFile(agentId, file) {
237
+ export async function exportJavaAgentToFile(agentId, file, includeMeta = true) {
229
238
  const exportData = await exportJavaAgent(agentId);
230
239
  let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
231
240
  if (file) {
232
241
  fileName = file;
233
242
  }
234
- saveJsonToFile(exportData, getFilePath(fileName, true));
243
+ saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);
235
244
  }
236
245
 
237
246
  /**
238
247
  * Export web agent to file
239
248
  * @param {string} agentId agent id
240
249
  * @param {string} file file name
250
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
241
251
  */
242
- export async function exportWebAgentToFile(agentId, file) {
252
+ export async function exportWebAgentToFile(agentId, file, includeMeta = true) {
243
253
  const exportData = await exportWebAgent(agentId);
244
254
  let fileName = getTypedFilename(agentId, agentTypeToFileIdMap[exportData.agents[agentId]._type._id]);
245
255
  if (file) {
246
256
  fileName = file;
247
257
  }
248
- saveJsonToFile(exportData, getFilePath(fileName, true));
258
+ saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);
249
259
  }
250
260
 
251
261
  /**
252
262
  * Export all agents to separate files
263
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
253
264
  */
254
- export async function exportAgentsToFiles() {
265
+ export async function exportAgentsToFiles(includeMeta = true) {
255
266
  const agents = await readAgents();
256
267
  debugMessage(`exportAgentsToFiles: ${agents.length} agents`);
257
268
  for (const agent of agents) {
@@ -260,47 +271,50 @@ export async function exportAgentsToFiles() {
260
271
  const exportData = createAgentExportTemplate();
261
272
  exportData.agents[agent._id] = agent;
262
273
  debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${filePath}`);
263
- saveJsonToFile(exportData, filePath);
274
+ saveJsonToFile(exportData, filePath, includeMeta);
264
275
  }
265
276
  debugMessage(`exportAgentsToFiles: done.`);
266
277
  }
267
278
 
268
279
  /**
269
280
  * Export all identity gateway agents to separate files
281
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
270
282
  */
271
- export async function exportIdentityGatewayAgentsToFiles() {
283
+ export async function exportIdentityGatewayAgentsToFiles(includeMeta = true) {
272
284
  const agents = await readIdentityGatewayAgents();
273
285
  for (const agent of agents) {
274
286
  const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
275
287
  const exportData = createAgentExportTemplate();
276
288
  exportData.agents[agent._id] = agent;
277
- saveJsonToFile(exportData, getFilePath(fileName, true));
289
+ saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);
278
290
  }
279
291
  }
280
292
 
281
293
  /**
282
294
  * Export all java agents to separate files
295
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
283
296
  */
284
- export async function exportJavaAgentsToFiles() {
297
+ export async function exportJavaAgentsToFiles(includeMeta = true) {
285
298
  const agents = await readJavaAgents();
286
299
  for (const agent of agents) {
287
300
  const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
288
301
  const exportData = createAgentExportTemplate();
289
302
  exportData.agents[agent._id] = agent;
290
- saveJsonToFile(exportData, getFilePath(fileName, true));
303
+ saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);
291
304
  }
292
305
  }
293
306
 
294
307
  /**
295
308
  * Export all web agents to separate files
309
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
296
310
  */
297
- export async function exportWebAgentsToFiles() {
311
+ export async function exportWebAgentsToFiles(includeMeta = true) {
298
312
  const agents = await readWebAgents();
299
313
  for (const agent of agents) {
300
314
  const fileName = getTypedFilename(agent._id, agentTypeToFileIdMap[agent._type._id]);
301
315
  const exportData = createAgentExportTemplate();
302
316
  exportData.agents[agent._id] = agent;
303
- saveJsonToFile(exportData, getFilePath(fileName, true));
317
+ saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);
304
318
  }
305
319
  }
306
320
 
@@ -1 +1 @@
1
- {"version":3,"file":"AgentOps.js","names":["frodo","state","fs","createProgressIndicator","createTable","debugMessage","printMessage","stopProgressIndicator","getTypedFilename","saveJsonToFile","titleCase","getRealmName","getFilePath","getWorkingDirectory","utils","createAgentExportTemplate","readAgents","readIdentityGatewayAgents","readJavaAgents","readWebAgents","exportAgents","exportIdentityGatewayAgents","exportJavaAgents","exportWebAgents","exportAgent","exportIdentityGatewayAgent","exportJavaAgent","exportWebAgent","importAgent","importIdentityGatewayAgent","importJavaAgent","importWebAgent","importAgents","importIdentityGatewayAgents","importJavaAgents","importWebAgents","agent","agentTypeToFileIdMap","IdentityGatewayAgent","J2EEAgent","WebAgent","listAgents","long","agents","table","status","_type","_id","push","name","toString","forEach","error","stack","listIdentityGatewayAgents","listJavaAgents","listWebAgents","exportAgentsToFile","file","exportData","fileName","getRealm","exportIdentityGatewayAgentsToFile","exportJavaAgentsToFile","exportWebAgentsToFile","exportAgentToFile","agentId","exportIdentityGatewayAgentToFile","exportJavaAgentToFile","exportWebAgentToFile","exportAgentsToFiles","length","filePath","exportIdentityGatewayAgentsToFiles","exportJavaAgentsToFiles","exportWebAgentsToFiles","importAgentFromFile","verbose","getVerbose","readFile","err","data","importData","JSON","parse","spinnerId","importError","importFirstAgentFromFile","Object","keys","values","importAgentsFromFile","message","response","importAgentsFromFiles","names","readdirSync","agentFiles","filter","toLowerCase","endsWith","importIdentityGatewayAgentFromFile","importFirstIdentityGatewayAgentFromFile","importIdentityGatewayAgentsFromFile","importIdentityGatewayAgentsFromFiles","importJavaAgentFromFile","importFirstJavaAgentFromFile","importJavaAgentsFromFile","importJavaAgentsFromFiles","importWebAgentFromFile","importFirstWebAgentFromFile","importWebAgentsFromFile","importWebAgentsFromFiles"],"sources":["../../src/ops/AgentOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { type AgentExportInterface } from '@rockcarver/frodo-lib/types/ops/AgentOps';\nimport fs from 'fs';\n\nimport {\n createProgressIndicator,\n createTable,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\n\nconst { getRealmName, getFilePath, getWorkingDirectory } = frodo.utils;\nconst {\n createAgentExportTemplate,\n readAgents,\n readIdentityGatewayAgents,\n readJavaAgents,\n readWebAgents,\n exportAgents,\n exportIdentityGatewayAgents,\n exportJavaAgents,\n exportWebAgents,\n exportAgent,\n exportIdentityGatewayAgent,\n exportJavaAgent,\n exportWebAgent,\n importAgent,\n importIdentityGatewayAgent,\n importJavaAgent,\n importWebAgent,\n importAgents,\n importIdentityGatewayAgents,\n importJavaAgents,\n importWebAgents,\n} = frodo.agent;\n\nconst agentTypeToFileIdMap = {\n IdentityGatewayAgent: 'gateway.agent',\n J2EEAgent: 'java.agent',\n WebAgent: 'web.agent',\n};\n\n/**\n * List agents\n */\nexport async function listAgents(long = false) {\n try {\n const agents = await readAgents();\n if (long) {\n const table = createTable(['Agent Id', 'Status', 'Agent Type']);\n for (const agent of agents) {\n let status = 'Unknown';\n switch (agent._type._id) {\n case 'J2EEAgent':\n status = agent['globalJ2EEAgentConfig']['status'];\n break;\n case 'WebAgent':\n status = agent['globalWebAgentConfig']['status'];\n break;\n default:\n status = agent.status as string;\n break;\n }\n table.push([\n agent._id,\n status === 'Active' ? 'Active'['brightGreen'] : status['brightRed'],\n agent._type.name,\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List identity gateway agents\n */\nexport async function listIdentityGatewayAgents(long = false) {\n try {\n const agents = await readIdentityGatewayAgents();\n if (long) {\n const table = createTable(['Gateway Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent.status === 'Active'\n ? 'Active'['brightGreen']\n : agent.status['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing gateway agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List java agents\n */\nexport async function listJavaAgents(long = false) {\n try {\n const agents = await readJavaAgents();\n if (long) {\n const table = createTable(['Java Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalJ2EEAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalJ2EEAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing java agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List web agents\n */\nexport async function listWebAgents(long = false) {\n try {\n const agents = await readWebAgents();\n if (long) {\n const table = createTable(['Web Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalWebAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalWebAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing web agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * Export all agents to file\n * @param {string} file file name\n */\nexport async function exportAgentsToFile(file) {\n const exportData = await exportAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n 'agent'\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export all identity gateway agents to file\n * @param {string} file file name\n */\nexport async function exportIdentityGatewayAgentsToFile(file) {\n const exportData = await exportIdentityGatewayAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['IdentityGatewayAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export all java agents to file\n * @param {string} file file name\n */\nexport async function exportJavaAgentsToFile(file) {\n const exportData = await exportJavaAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['J2EEAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export all web agents to file\n * @param {string} file file name\n */\nexport async function exportWebAgentsToFile(file) {\n const exportData = await exportWebAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['WebAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportAgentToFile(agentId, file) {\n const exportData = await exportAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export identity gateway agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportIdentityGatewayAgentToFile(agentId, file) {\n const exportData = await exportIdentityGatewayAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export java agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportJavaAgentToFile(agentId, file) {\n const exportData = await exportJavaAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export web agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportWebAgentToFile(agentId, file) {\n const exportData = await exportWebAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true));\n}\n\n/**\n * Export all agents to separate files\n */\nexport async function exportAgentsToFiles() {\n const agents = await readAgents();\n debugMessage(`exportAgentsToFiles: ${agents.length} agents`);\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const filePath = getFilePath(fileName, true);\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${filePath}`);\n saveJsonToFile(exportData, filePath);\n }\n debugMessage(`exportAgentsToFiles: done.`);\n}\n\n/**\n * Export all identity gateway agents to separate files\n */\nexport async function exportIdentityGatewayAgentsToFiles() {\n const agents = await readIdentityGatewayAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true));\n }\n}\n\n/**\n * Export all java agents to separate files\n */\nexport async function exportJavaAgentsToFiles() {\n const agents = await readJavaAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true));\n }\n}\n\n/**\n * Export all web agents to separate files\n */\nexport async function exportWebAgentsToFiles() {\n const agents = await readWebAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true));\n }\n}\n\n/**\n * Import an agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importAgentFromFile(agentId: string, file: string) {\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n });\n}\n\n/**\n * Import first agent from file\n * @param {string} file import file name\n */\nexport async function importFirstAgentFromFile(file: string) {\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n });\n}\n\n/**\n * Import agents from file\n * @param {String} file file name\n */\nexport async function importAgentsFromFile(file) {\n debugMessage(`importAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`importAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`importAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all agents from separate files\n */\nexport async function importAgentsFromFiles() {\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importAgentsFromFile(file);\n }\n}\n\n/**\n * Import an identity gateway agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importIdentityGatewayAgentFromFile(\n agentId: string,\n file: string\n) {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importIdentityGatewayAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: end`);\n });\n}\n\n/**\n * Import first identity gateway agent from file\n * @param {string} file import file name\n */\nexport async function importFirstIdentityGatewayAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importIdentityGatewayAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: end`);\n });\n}\n\n/**\n * Import identity gateway agents from file\n * @param {String} file file name\n */\nexport async function importIdentityGatewayAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importIdentityGatewayAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all identity gateway agents from separate files\n */\nexport async function importIdentityGatewayAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importIdentityGatewayAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: end`);\n}\n\n/**\n * Import an java agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importJavaAgentFromFile(agentId: string, file: string) {\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importJavaAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: end`);\n });\n}\n\n/**\n * Import first java agent from file\n * @param {string} file import file name\n */\nexport async function importFirstJavaAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importJavaAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: end`);\n });\n}\n\n/**\n * Import java agents from file\n * @param {String} file file name\n */\nexport async function importJavaAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importJavaAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importJavaAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all java agents from separate files\n */\nexport async function importJavaAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importJavaAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: end`);\n}\n\n/**\n * Import an web agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importWebAgentFromFile(agentId: string, file: string) {\n debugMessage(`cli.AgentOps.importWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importWebAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importWebAgentFromFile: end`);\n });\n}\n\n/**\n * Import web gateway agent from file\n * @param {string} file import file name\n */\nexport async function importFirstWebAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importWebAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(\n spinnerId,\n `caught it here ${importError}`,\n 'fail'\n );\n }\n break;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: end`);\n });\n}\n\n/**\n * Import web agents from file\n * @param {String} file file name\n */\nexport async function importWebAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importWebAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all web agents from separate files\n */\nexport async function importWebAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importWebAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: end`);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AgentOps.js","names":["frodo","state","fs","createProgressIndicator","createTable","debugMessage","printMessage","stopProgressIndicator","getRealmName","getTypedFilename","saveJsonToFile","titleCase","getFilePath","getWorkingDirectory","utils","createAgentExportTemplate","readAgents","readIdentityGatewayAgents","readJavaAgents","readWebAgents","exportAgents","exportIdentityGatewayAgents","exportJavaAgents","exportWebAgents","exportAgent","exportIdentityGatewayAgent","exportJavaAgent","exportWebAgent","importAgent","importIdentityGatewayAgent","importJavaAgent","importWebAgent","importAgents","importIdentityGatewayAgents","importJavaAgents","importWebAgents","agent","agentTypeToFileIdMap","IdentityGatewayAgent","J2EEAgent","WebAgent","listAgents","long","agents","table","status","_type","_id","push","name","toString","forEach","error","stack","listIdentityGatewayAgents","listJavaAgents","listWebAgents","exportAgentsToFile","file","includeMeta","exportData","fileName","getRealm","exportIdentityGatewayAgentsToFile","exportJavaAgentsToFile","exportWebAgentsToFile","exportAgentToFile","agentId","exportIdentityGatewayAgentToFile","exportJavaAgentToFile","exportWebAgentToFile","exportAgentsToFiles","length","filePath","exportIdentityGatewayAgentsToFiles","exportJavaAgentsToFiles","exportWebAgentsToFiles","importAgentFromFile","verbose","getVerbose","readFile","err","data","importData","JSON","parse","spinnerId","importError","importFirstAgentFromFile","Object","keys","values","importAgentsFromFile","message","response","importAgentsFromFiles","names","readdirSync","agentFiles","filter","toLowerCase","endsWith","importIdentityGatewayAgentFromFile","importFirstIdentityGatewayAgentFromFile","importIdentityGatewayAgentsFromFile","importIdentityGatewayAgentsFromFiles","importJavaAgentFromFile","importFirstJavaAgentFromFile","importJavaAgentsFromFile","importJavaAgentsFromFiles","importWebAgentFromFile","importFirstWebAgentFromFile","importWebAgentsFromFile","importWebAgentsFromFiles"],"sources":["../../src/ops/AgentOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { type AgentExportInterface } from '@rockcarver/frodo-lib/types/ops/AgentOps';\nimport fs from 'fs';\n\nimport {\n createProgressIndicator,\n createTable,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n} from '../utils/Console';\n\nconst {\n getRealmName,\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n getFilePath,\n getWorkingDirectory,\n} = frodo.utils;\nconst {\n createAgentExportTemplate,\n readAgents,\n readIdentityGatewayAgents,\n readJavaAgents,\n readWebAgents,\n exportAgents,\n exportIdentityGatewayAgents,\n exportJavaAgents,\n exportWebAgents,\n exportAgent,\n exportIdentityGatewayAgent,\n exportJavaAgent,\n exportWebAgent,\n importAgent,\n importIdentityGatewayAgent,\n importJavaAgent,\n importWebAgent,\n importAgents,\n importIdentityGatewayAgents,\n importJavaAgents,\n importWebAgents,\n} = frodo.agent;\n\nconst agentTypeToFileIdMap = {\n IdentityGatewayAgent: 'gateway.agent',\n J2EEAgent: 'java.agent',\n WebAgent: 'web.agent',\n};\n\n/**\n * List agents\n */\nexport async function listAgents(long = false) {\n try {\n const agents = await readAgents();\n if (long) {\n const table = createTable(['Agent Id', 'Status', 'Agent Type']);\n for (const agent of agents) {\n let status = 'Unknown';\n switch (agent._type._id) {\n case 'J2EEAgent':\n status = agent['globalJ2EEAgentConfig']['status'];\n break;\n case 'WebAgent':\n status = agent['globalWebAgentConfig']['status'];\n break;\n default:\n status = agent.status as string;\n break;\n }\n table.push([\n agent._id,\n status === 'Active' ? 'Active'['brightGreen'] : status['brightRed'],\n agent._type.name,\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List identity gateway agents\n */\nexport async function listIdentityGatewayAgents(long = false) {\n try {\n const agents = await readIdentityGatewayAgents();\n if (long) {\n const table = createTable(['Gateway Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent.status === 'Active'\n ? 'Active'['brightGreen']\n : agent.status['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing gateway agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List java agents\n */\nexport async function listJavaAgents(long = false) {\n try {\n const agents = await readJavaAgents();\n if (long) {\n const table = createTable(['Java Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalJ2EEAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalJ2EEAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing java agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List web agents\n */\nexport async function listWebAgents(long = false) {\n try {\n const agents = await readWebAgents();\n if (long) {\n const table = createTable(['Web Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalWebAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalWebAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing web agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * Export all agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportAgentsToFile(file, includeMeta = true) {\n const exportData = await exportAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n 'agent'\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export all identity gateway agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportIdentityGatewayAgentsToFile(\n file,\n includeMeta = true\n) {\n const exportData = await exportIdentityGatewayAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['IdentityGatewayAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export all java agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportJavaAgentsToFile(file, includeMeta = true) {\n const exportData = await exportJavaAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['J2EEAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export all web agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportWebAgentsToFile(file, includeMeta = true) {\n const exportData = await exportWebAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['WebAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportAgentToFile(agentId, file, includeMeta = true) {\n const exportData = await exportAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export identity gateway agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportIdentityGatewayAgentToFile(\n agentId,\n file,\n includeMeta = true\n) {\n const exportData = await exportIdentityGatewayAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export java agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportJavaAgentToFile(agentId, file, includeMeta = true) {\n const exportData = await exportJavaAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export web agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportWebAgentToFile(agentId, file, includeMeta = true) {\n const exportData = await exportWebAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export all agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportAgentsToFiles(includeMeta = true) {\n const agents = await readAgents();\n debugMessage(`exportAgentsToFiles: ${agents.length} agents`);\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const filePath = getFilePath(fileName, true);\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${filePath}`);\n saveJsonToFile(exportData, filePath, includeMeta);\n }\n debugMessage(`exportAgentsToFiles: done.`);\n}\n\n/**\n * Export all identity gateway agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportIdentityGatewayAgentsToFiles(includeMeta = true) {\n const agents = await readIdentityGatewayAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n }\n}\n\n/**\n * Export all java agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportJavaAgentsToFiles(includeMeta = true) {\n const agents = await readJavaAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n }\n}\n\n/**\n * Export all web agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportWebAgentsToFiles(includeMeta = true) {\n const agents = await readWebAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n }\n}\n\n/**\n * Import an agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importAgentFromFile(agentId: string, file: string) {\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n });\n}\n\n/**\n * Import first agent from file\n * @param {string} file import file name\n */\nexport async function importFirstAgentFromFile(file: string) {\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n });\n}\n\n/**\n * Import agents from file\n * @param {String} file file name\n */\nexport async function importAgentsFromFile(file) {\n debugMessage(`importAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`importAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`importAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all agents from separate files\n */\nexport async function importAgentsFromFiles() {\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importAgentsFromFile(file);\n }\n}\n\n/**\n * Import an identity gateway agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importIdentityGatewayAgentFromFile(\n agentId: string,\n file: string\n) {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importIdentityGatewayAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: end`);\n });\n}\n\n/**\n * Import first identity gateway agent from file\n * @param {string} file import file name\n */\nexport async function importFirstIdentityGatewayAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importIdentityGatewayAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: end`);\n });\n}\n\n/**\n * Import identity gateway agents from file\n * @param {String} file file name\n */\nexport async function importIdentityGatewayAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importIdentityGatewayAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all identity gateway agents from separate files\n */\nexport async function importIdentityGatewayAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importIdentityGatewayAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: end`);\n}\n\n/**\n * Import an java agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importJavaAgentFromFile(agentId: string, file: string) {\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importJavaAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: end`);\n });\n}\n\n/**\n * Import first java agent from file\n * @param {string} file import file name\n */\nexport async function importFirstJavaAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importJavaAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: end`);\n });\n}\n\n/**\n * Import java agents from file\n * @param {String} file file name\n */\nexport async function importJavaAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importJavaAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importJavaAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all java agents from separate files\n */\nexport async function importJavaAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importJavaAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: end`);\n}\n\n/**\n * Import an web agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importWebAgentFromFile(agentId: string, file: string) {\n debugMessage(`cli.AgentOps.importWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importWebAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importWebAgentFromFile: end`);\n });\n}\n\n/**\n * Import web gateway agent from file\n * @param {string} file import file name\n */\nexport async function importFirstWebAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importWebAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(\n spinnerId,\n `caught it here ${importError}`,\n 'fail'\n );\n }\n break;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: end`);\n });\n}\n\n/**\n * Import web agents from file\n * @param {String} file file name\n */\nexport async function importWebAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importWebAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all web agents from separate files\n */\nexport async function importWebAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importWebAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: end`);\n}\n"],"mappings":"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"}