@rockcarver/frodo-cli 0.18.2-7 → 0.18.2-9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -1
- package/esm/app.js +2 -2
- package/esm/app.js.map +1 -1
- package/esm/cli/_template/something-delete.js +7 -4
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +7 -4
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +7 -4
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +7 -4
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +7 -4
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +7 -4
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +7 -4
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-else.js.map +1 -1
- package/esm/cli/_template/something-export.js +7 -4
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +7 -4
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +7 -4
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +7 -4
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +7 -4
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +7 -4
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +7 -4
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +7 -4
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/_template/something-other.js.map +1 -1
- package/esm/cli/_template/something.js +0 -2
- package/esm/cli/_template/something.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +5 -3
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +7 -11
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-get-access-token.js +5 -3
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +5 -3
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +5 -3
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +5 -3
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +5 -3
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-static-user-mappings.js +5 -3
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +5 -3
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +5 -3
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +5 -3
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +5 -3
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin.js +0 -2
- package/esm/cli/admin/admin.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +9 -7
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +7 -4
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +11 -6
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +9 -7
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +7 -4
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +11 -6
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +13 -7
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +5 -3
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-gateway.js.map +1 -1
- package/esm/cli/agent/agent-import.js +13 -7
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +9 -7
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +7 -4
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +11 -6
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +13 -7
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +5 -3
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-java.js.map +1 -1
- package/esm/cli/agent/agent-list.js +5 -3
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +9 -7
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +7 -4
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +11 -6
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +13 -7
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +5 -3
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/agent/agent-web.js.map +1 -1
- package/esm/cli/agent/agent.js +0 -2
- package/esm/cli/agent/agent.js.map +1 -1
- package/esm/cli/app/app-delete.js +7 -4
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +7 -4
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +11 -6
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +9 -5
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +5 -3
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/app/app.js +8 -5
- package/esm/cli/app/app.js.map +1 -1
- package/esm/cli/cmd_common.js +2 -1
- package/esm/cli/cmd_common.js.map +1 -1
- package/esm/cli/conn/conn-add.js +5 -5
- package/esm/cli/conn/conn-add.js.map +1 -1
- package/esm/cli/conn/conn-delete.js +5 -2
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-describe.js +5 -2
- package/esm/cli/conn/conn-describe.js.map +1 -1
- package/esm/cli/conn/conn-list.js +7 -3
- package/esm/cli/conn/conn-list.js.map +1 -1
- package/esm/cli/conn/conn.js +2 -3
- package/esm/cli/conn/conn.js.map +1 -1
- package/esm/cli/email/email-template-export.js +13 -12
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +15 -14
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +7 -7
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/email/email-template.js.map +1 -1
- package/esm/cli/email/email.js +0 -2
- package/esm/cli/email/email.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +9 -11
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +5 -3
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +9 -5
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +5 -3
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +7 -4
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +7 -4
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +5 -3
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +5 -3
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +7 -4
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +5 -3
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +7 -4
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +7 -4
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +5 -3
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-version.js.map +1 -1
- package/esm/cli/esv/esv-secret.js +4 -1
- package/esm/cli/esv/esv-secret.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +5 -3
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +9 -5
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +5 -3
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +7 -4
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +7 -4
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +5 -3
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +7 -4
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/esv/esv-variable.js +4 -1
- package/esm/cli/esv/esv-variable.js.map +1 -1
- package/esm/cli/esv/esv.js +0 -2
- package/esm/cli/esv/esv.js.map +1 -1
- package/esm/cli/idm/idm-count.js +5 -3
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +11 -6
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +11 -6
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +7 -4
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idm/idm.js +2 -3
- package/esm/cli/idm/idm.js.map +1 -1
- package/esm/cli/idp/idp-export.js +11 -6
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +13 -7
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +7 -4
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/idp/idp.js +0 -2
- package/esm/cli/idp/idp.js.map +1 -1
- package/esm/cli/info/info.js +0 -5
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.e2e.test_.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +9 -5
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +31 -28
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +9 -6
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +9 -6
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +11 -6
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +13 -7
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.e2e.test_.js.map +1 -1
- package/esm/cli/journey/journey-list.js +5 -3
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +5 -5
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/journey/journey.js +0 -2
- package/esm/cli/journey/journey.js.map +1 -1
- package/esm/cli/logging/logs-fetch.js +2 -11
- package/esm/cli/logging/logs-fetch.js.map +1 -1
- package/esm/cli/logging/logs-list.js +0 -5
- package/esm/cli/logging/logs-list.js.map +1 -1
- package/esm/cli/logging/logs-tail.js +0 -4
- package/esm/cli/logging/logs-tail.js.map +1 -1
- package/esm/cli/logging/logs.js +2 -4
- package/esm/cli/logging/logs.js.map +1 -1
- package/esm/cli/realm/realm-add-custom-domain.js +5 -3
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +5 -3
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +5 -3
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +5 -3
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm.js +5 -4
- package/esm/cli/realm/realm.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +11 -6
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +13 -7
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +5 -3
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-cot.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +11 -6
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +5 -3
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +13 -7
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +13 -7
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +5 -3
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +7 -4
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/saml/saml-metadata.js.map +1 -1
- package/esm/cli/saml/saml.js +0 -2
- package/esm/cli/saml/saml.js.map +1 -1
- package/esm/cli/script/script-delete.js +7 -4
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +7 -4
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +15 -8
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +7 -4
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +5 -3
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/script/script.js +6 -4
- package/esm/cli/script/script.js.map +1 -1
- package/esm/cli/service/service-delete.js +0 -1
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +11 -6
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +13 -6
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +0 -1
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/service/service.js +0 -2
- package/esm/cli/service/service.js.map +1 -1
- package/esm/cli/theme/theme-delete.e2e.test_.js.map +1 -1
- package/esm/cli/theme/theme-delete.js +16 -14
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +17 -15
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +19 -17
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.e2e.test_.js.map +1 -1
- package/esm/cli/theme/theme-list.js +7 -7
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/cli/theme/theme.js +0 -2
- package/esm/cli/theme/theme.js.map +1 -1
- package/esm/ops/AgentOps.js +48 -126
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +2 -2
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +270 -6
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdpOps.js +2 -2
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +96 -152
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/NodeOps.js +6 -12
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +25 -78
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/Saml2Ops.test_.js.map +1 -1
- package/esm/ops/ScriptOps.js +3 -3
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/ServiceOps.js +10 -31
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +331 -2
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/utils/Wordwrap.js.map +1 -1
- package/esm/storage/StaticStorage.js.map +1 -1
- package/esm/utils/Config.js +0 -9
- package/esm/utils/Config.js.map +1 -1
- package/esm/utils/Console.js +32 -79
- package/esm/utils/Console.js.map +1 -1
- package/esm/utils/ExportImportUtils.js +46 -0
- package/esm/utils/ExportImportUtils.js.map +1 -0
- package/esm/utils/Version.js +6 -24
- package/esm/utils/Version.js.map +1 -1
- package/package.json +18 -17
package/esm/ops/AgentOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentOps.js","names":["fs","printMessage","createTable","debugMessage","showSpinner","succeedSpinner","failSpinner","ExportImportUtils","Agent","Utils","state","AGENT_TYPE_IG","AGENT_TYPE_JAVA","AGENT_TYPE_WEB","createAgentExportTemplate","getAgents","getIdentityGatewayAgents","getJavaAgents","getWebAgents","exportAgents","exportIdentityGatewayAgents","exportJavaAgents","exportWebAgents","exportAgent","exportIdentityGatewayAgent","exportJavaAgent","exportWebAgent","importAgents","importIdentityGatewayAgents","importJavaAgents","importWebAgents","importAgent","importIdentityGatewayAgent","importJavaAgent","importWebAgent","getTypedFilename","saveJsonToFile","titleCase","getRealmName","agentTypeToFileIdMap","listAgents","long","agents","table","agent","status","_type","_id","push","name","toString","forEach","error","stack","listIdentityGatewayAgents","listJavaAgents","listWebAgents","exportAgentsToFile","file","exportData","fileName","default","session","getRealm","exportIdentityGatewayAgentsToFile","exportJavaAgentsToFile","exportWebAgentsToFile","exportAgentToFile","agentId","exportIdentityGatewayAgentToFile","exportJavaAgentToFile","exportWebAgentToFile","exportAgentsToFiles","length","exportIdentityGatewayAgentsToFiles","exportJavaAgentsToFiles","exportWebAgentsToFiles","importAgentFromFile","verbose","getVerbose","readFile","err","data","importData","JSON","parse","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":["ops/AgentOps.ts"],"sourcesContent":["import fs from 'fs';\nimport {\n printMessage,\n createTable,\n debugMessage,\n showSpinner,\n succeedSpinner,\n failSpinner,\n} from '../utils/Console';\nimport { ExportImportUtils, Agent, Utils, state } from '@rockcarver/frodo-lib';\nimport { AgentExportInterface } from '@rockcarver/frodo-lib/types/ops/OpsTypes';\n\nconst {\n AGENT_TYPE_IG,\n AGENT_TYPE_JAVA,\n AGENT_TYPE_WEB,\n createAgentExportTemplate,\n getAgents,\n getIdentityGatewayAgents,\n getJavaAgents,\n getWebAgents,\n exportAgents,\n exportIdentityGatewayAgents,\n exportJavaAgents,\n exportWebAgents,\n exportAgent,\n exportIdentityGatewayAgent,\n exportJavaAgent,\n exportWebAgent,\n importAgents,\n importIdentityGatewayAgents,\n importJavaAgents,\n importWebAgents,\n importAgent,\n importIdentityGatewayAgent,\n importJavaAgent,\n importWebAgent,\n} = Agent;\nconst { getTypedFilename, saveJsonToFile, titleCase } = ExportImportUtils;\nconst { getRealmName } = Utils;\n\nconst agentTypeToFileIdMap = {\n [AGENT_TYPE_IG]: 'gateway.agent',\n [AGENT_TYPE_JAVA]: 'java.agent',\n [AGENT_TYPE_WEB]: 'web.agent',\n};\n\n/**\n * List agents\n */\nexport async function listAgents(long = false) {\n try {\n const agents = await getAgents();\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 getIdentityGatewayAgents();\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 getJavaAgents();\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 getWebAgents();\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.default.session.getRealm()))}Agents`,\n 'agent'\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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.default.session.getRealm()))}Agents`,\n agentTypeToFileIdMap[AGENT_TYPE_IG]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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.default.session.getRealm()))}Agents`,\n agentTypeToFileIdMap[AGENT_TYPE_JAVA]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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.default.session.getRealm()))}Agents`,\n agentTypeToFileIdMap[AGENT_TYPE_WEB]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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, fileName);\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, fileName);\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, fileName);\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, fileName);\n}\n\n/**\n * Export all agents to separate files\n */\nexport async function exportAgentsToFiles() {\n const agents = await getAgents();\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 exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${fileName}`);\n saveJsonToFile(exportData, fileName);\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 getIdentityGatewayAgents();\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, fileName);\n }\n}\n\n/**\n * Export all java agents to separate files\n */\nexport async function exportJavaAgentsToFiles() {\n const agents = await getJavaAgents();\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, fileName);\n }\n}\n\n/**\n * Export all web agents to separate files\n */\nexport async function exportWebAgentsToFiles() {\n const agents = await getWebAgents();\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, fileName);\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`importAgentsFromFile: importing ${file}`);\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('.');\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importIdentityGatewayAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importIdentityGatewayAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${file}`\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('.');\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importJavaAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importJavaAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: importing ${file}`);\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('.');\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importWebAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importWebAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`caught it here ${importError}`);\n }\n break;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${file}`);\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('.');\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":["fs","printMessage","createTable","debugMessage","showSpinner","succeedSpinner","failSpinner","ExportImportUtils","Agent","Utils","state","AGENT_TYPE_IG","AGENT_TYPE_JAVA","AGENT_TYPE_WEB","createAgentExportTemplate","getAgents","getIdentityGatewayAgents","getJavaAgents","getWebAgents","exportAgents","exportIdentityGatewayAgents","exportJavaAgents","exportWebAgents","exportAgent","exportIdentityGatewayAgent","exportJavaAgent","exportWebAgent","importAgents","importIdentityGatewayAgents","importJavaAgents","importWebAgents","importAgent","importIdentityGatewayAgent","importJavaAgent","importWebAgent","getTypedFilename","saveJsonToFile","titleCase","getRealmName","agentTypeToFileIdMap","listAgents","long","agents","table","agent","status","_type","_id","push","name","toString","forEach","error","stack","listIdentityGatewayAgents","listJavaAgents","listWebAgents","exportAgentsToFile","file","exportData","fileName","default","session","getRealm","exportIdentityGatewayAgentsToFile","exportJavaAgentsToFile","exportWebAgentsToFile","exportAgentToFile","agentId","exportIdentityGatewayAgentToFile","exportJavaAgentToFile","exportWebAgentToFile","exportAgentsToFiles","length","exportIdentityGatewayAgentsToFiles","exportJavaAgentsToFiles","exportWebAgentsToFiles","importAgentFromFile","verbose","getVerbose","readFile","err","data","importData","JSON","parse","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":["ops/AgentOps.ts"],"sourcesContent":["import fs from 'fs';\nimport {\n printMessage,\n createTable,\n debugMessage,\n showSpinner,\n succeedSpinner,\n failSpinner,\n} from '../utils/Console';\nimport { ExportImportUtils, Agent, Utils, state } from '@rockcarver/frodo-lib';\nimport { AgentExportInterface } from '@rockcarver/frodo-lib/types/ops/OpsTypes';\n\nconst {\n AGENT_TYPE_IG,\n AGENT_TYPE_JAVA,\n AGENT_TYPE_WEB,\n createAgentExportTemplate,\n getAgents,\n getIdentityGatewayAgents,\n getJavaAgents,\n getWebAgents,\n exportAgents,\n exportIdentityGatewayAgents,\n exportJavaAgents,\n exportWebAgents,\n exportAgent,\n exportIdentityGatewayAgent,\n exportJavaAgent,\n exportWebAgent,\n importAgents,\n importIdentityGatewayAgents,\n importJavaAgents,\n importWebAgents,\n importAgent,\n importIdentityGatewayAgent,\n importJavaAgent,\n importWebAgent,\n} = Agent;\nconst { getTypedFilename, saveJsonToFile, titleCase } = ExportImportUtils;\nconst { getRealmName } = Utils;\n\nconst agentTypeToFileIdMap = {\n [AGENT_TYPE_IG]: 'gateway.agent',\n [AGENT_TYPE_JAVA]: 'java.agent',\n [AGENT_TYPE_WEB]: 'web.agent',\n};\n\n/**\n * List agents\n */\nexport async function listAgents(long = false) {\n try {\n const agents = await getAgents();\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 getIdentityGatewayAgents();\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 getJavaAgents();\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 getWebAgents();\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.default.session.getRealm()))}Agents`,\n 'agent'\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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.default.session.getRealm()))}Agents`,\n agentTypeToFileIdMap[AGENT_TYPE_IG]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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.default.session.getRealm()))}Agents`,\n agentTypeToFileIdMap[AGENT_TYPE_JAVA]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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.default.session.getRealm()))}Agents`,\n agentTypeToFileIdMap[AGENT_TYPE_WEB]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\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, fileName);\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, fileName);\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, fileName);\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, fileName);\n}\n\n/**\n * Export all agents to separate files\n */\nexport async function exportAgentsToFiles() {\n const agents = await getAgents();\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 exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${fileName}`);\n saveJsonToFile(exportData, fileName);\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 getIdentityGatewayAgents();\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, fileName);\n }\n}\n\n/**\n * Export all java agents to separate files\n */\nexport async function exportJavaAgentsToFiles() {\n const agents = await getJavaAgents();\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, fileName);\n }\n}\n\n/**\n * Export all web agents to separate files\n */\nexport async function exportWebAgentsToFiles() {\n const agents = await getWebAgents();\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, fileName);\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`importAgentsFromFile: importing ${file}`);\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('.');\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importIdentityGatewayAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importIdentityGatewayAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${file}`\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('.');\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importJavaAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importJavaAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: importing ${file}`);\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('.');\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let 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 importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await importWebAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\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.default.session.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await importWebAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`caught it here ${importError}`);\n }\n break;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\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 fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${file}`);\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('.');\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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"}
|
|
@@ -9,23 +9,23 @@ export function getOneLineDescription(cotObj) {
|
|
|
9
9
|
const description = `[${cotObj._id['brightCyan']}]`;
|
|
10
10
|
return description;
|
|
11
11
|
}
|
|
12
|
+
|
|
12
13
|
/**
|
|
13
14
|
* Get markdown table header
|
|
14
15
|
* @returns {string} markdown table header
|
|
15
16
|
*/
|
|
16
|
-
|
|
17
17
|
export function getTableHeaderMd() {
|
|
18
18
|
let markdown = '';
|
|
19
19
|
markdown += '| Name/Id | Status | Trusted Providers |\n';
|
|
20
20
|
markdown += '| ------- | ------ | ----------------- |';
|
|
21
21
|
return markdown;
|
|
22
22
|
}
|
|
23
|
+
|
|
23
24
|
/**
|
|
24
25
|
* Get a table-row of the circle of trust in markdown
|
|
25
26
|
* @param {SocialIdpSkeleton} cotObj circle of trust object to describe
|
|
26
27
|
* @returns {string} a table-row of the circle of trust in markdown
|
|
27
28
|
*/
|
|
28
|
-
|
|
29
29
|
export function getTableRowMd(cotObj) {
|
|
30
30
|
const row = `| ${cotObj._id} | ${cotObj.status === 'active' ? ':white_check_mark: `active`' : ':o: `inactive`'} | ${cotObj.trustedProviders.map(provider => provider.split('|')[0]).join('<br>')} |`;
|
|
31
31
|
return row;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CirclesOfTrustOps.js","names":["getOneLineDescription","cotObj","description","_id","getTableHeaderMd","markdown","getTableRowMd","row","status","trustedProviders","map","provider","split","join"],"sources":["ops/CirclesOfTrustOps.ts"],"sourcesContent":["// import { CircleOfTrustSkeleton } from \"@rockcarver/frodo-lib/types/api/ApiTypes\";\nimport { TypesRaw } from '@rockcarver/frodo-lib';\n\n/**\n * Get a one-line description of the circle of trust object\n * @param {CircleOfTrustSkeleton} cotObj circle of trust object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(\n cotObj: TypesRaw.CircleOfTrustSkeleton\n): string {\n const description = `[${cotObj._id['brightCyan']}]`;\n return description;\n}\n\n/**\n * Get markdown table header\n * @returns {string} markdown table header\n */\nexport function getTableHeaderMd(): string {\n let markdown = '';\n markdown += '| Name/Id | Status | Trusted Providers |\\n';\n markdown += '| ------- | ------ | ----------------- |';\n return markdown;\n}\n\n/**\n * Get a table-row of the circle of trust in markdown\n * @param {SocialIdpSkeleton} cotObj circle of trust object to describe\n * @returns {string} a table-row of the circle of trust in markdown\n */\nexport function getTableRowMd(cotObj: TypesRaw.CircleOfTrustSkeleton): string {\n const row = `| ${cotObj._id} | ${\n cotObj.status === 'active'\n ? ':white_check_mark: `active`'\n : ':o: `inactive`'\n } | ${cotObj.trustedProviders\n .map((provider) => provider.split('|')[0])\n .join('<br>')} |`;\n return row;\n}\n"],"mappings":"AAAA;;AAGA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,
|
|
1
|
+
{"version":3,"file":"CirclesOfTrustOps.js","names":["getOneLineDescription","cotObj","description","_id","getTableHeaderMd","markdown","getTableRowMd","row","status","trustedProviders","map","provider","split","join"],"sources":["ops/CirclesOfTrustOps.ts"],"sourcesContent":["// import { CircleOfTrustSkeleton } from \"@rockcarver/frodo-lib/types/api/ApiTypes\";\nimport { TypesRaw } from '@rockcarver/frodo-lib';\n\n/**\n * Get a one-line description of the circle of trust object\n * @param {CircleOfTrustSkeleton} cotObj circle of trust object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(\n cotObj: TypesRaw.CircleOfTrustSkeleton\n): string {\n const description = `[${cotObj._id['brightCyan']}]`;\n return description;\n}\n\n/**\n * Get markdown table header\n * @returns {string} markdown table header\n */\nexport function getTableHeaderMd(): string {\n let markdown = '';\n markdown += '| Name/Id | Status | Trusted Providers |\\n';\n markdown += '| ------- | ------ | ----------------- |';\n return markdown;\n}\n\n/**\n * Get a table-row of the circle of trust in markdown\n * @param {SocialIdpSkeleton} cotObj circle of trust object to describe\n * @returns {string} a table-row of the circle of trust in markdown\n */\nexport function getTableRowMd(cotObj: TypesRaw.CircleOfTrustSkeleton): string {\n const row = `| ${cotObj._id} | ${\n cotObj.status === 'active'\n ? ':white_check_mark: `active`'\n : ':o: `inactive`'\n } | ${cotObj.trustedProviders\n .map((provider) => provider.split('|')[0])\n .join('<br>')} |`;\n return row;\n}\n"],"mappings":"AAAA;;AAGA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,qBAAqB,CACnCC,MAAsC,EAC9B;EACR,MAAMC,WAAW,GAAI,IAAGD,MAAM,CAACE,GAAG,CAAC,YAAY,CAAE,GAAE;EACnD,OAAOD,WAAW;AACpB;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASE,gBAAgB,GAAW;EACzC,IAAIC,QAAQ,GAAG,EAAE;EACjBA,QAAQ,IAAI,4CAA4C;EACxDA,QAAQ,IAAI,0CAA0C;EACtD,OAAOA,QAAQ;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAa,CAACL,MAAsC,EAAU;EAC5E,MAAMM,GAAG,GAAI,KAAIN,MAAM,CAACE,GAAI,MAC1BF,MAAM,CAACO,MAAM,KAAK,QAAQ,GACtB,6BAA6B,GAC7B,gBACL,MAAKP,MAAM,CAACQ,gBAAgB,CAC1BC,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CACzCC,IAAI,CAAC,MAAM,CAAE,IAAG;EACnB,OAAON,GAAG;AACZ"}
|
|
@@ -1,36 +1,300 @@
|
|
|
1
|
-
import
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { EmailTemplate, ExportImportUtils } from '@rockcarver/frodo-lib';
|
|
3
|
+
import { getTypedFilename, saveJsonToFile } from '../utils/ExportImportUtils';
|
|
4
|
+
import { createProgressIndicator, updateProgressIndicator, stopProgressIndicator, printMessage, createTable } from '../utils/Console';
|
|
5
|
+
import wordwrap from './utils/Wordwrap';
|
|
6
|
+
const EMAIL_TEMPLATE_FILE_TYPE = 'template.email';
|
|
7
|
+
const {
|
|
8
|
+
EMAIL_TEMPLATE_TYPE,
|
|
9
|
+
getEmailTemplate,
|
|
10
|
+
getEmailTemplates,
|
|
11
|
+
putEmailTemplate
|
|
12
|
+
} = EmailTemplate;
|
|
13
|
+
const {
|
|
14
|
+
validateImport
|
|
15
|
+
} = ExportImportUtils;
|
|
16
|
+
const regexEmailTemplateType = new RegExp(`${EMAIL_TEMPLATE_TYPE}/`, 'g');
|
|
17
|
+
|
|
18
|
+
// use a function vs a template variable to avoid problems in loops
|
|
19
|
+
function getFileDataTemplate() {
|
|
20
|
+
return {
|
|
21
|
+
meta: {},
|
|
22
|
+
emailTemplate: {}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
2
26
|
/**
|
|
3
27
|
* Get a one-line description of the email template
|
|
4
28
|
* @param {EmailTemplateSkeleton} templateObj email template object to describe
|
|
5
29
|
* @returns {string} a one-line description
|
|
6
30
|
*/
|
|
7
|
-
|
|
8
31
|
export function getOneLineDescription(templateObj) {
|
|
9
32
|
const description = `[${templateObj._id.split('/')[1]['brightCyan']}] ${templateObj.displayName ? templateObj.displayName : ''} - ${templateObj.defaultLocale ? templateObj.subject[templateObj.defaultLocale] : Object.values(templateObj.subject)[0]}`;
|
|
10
33
|
return description;
|
|
11
34
|
}
|
|
35
|
+
|
|
12
36
|
/**
|
|
13
37
|
* Get markdown table header
|
|
14
38
|
* @returns {string} markdown table header
|
|
15
39
|
*/
|
|
16
|
-
|
|
17
40
|
export function getTableHeaderMd() {
|
|
18
41
|
let markdown = '';
|
|
19
42
|
markdown += '| Display Name | Locale(s) | Subject | Id |\n';
|
|
20
43
|
markdown += '| ------------ | --------- | ------- | ---|';
|
|
21
44
|
return markdown;
|
|
22
45
|
}
|
|
46
|
+
|
|
23
47
|
/**
|
|
24
48
|
* Get a table-row of the email template in markdown
|
|
25
49
|
* @param {EmailTemplateSkeleton} templateObj email template object to describe
|
|
26
50
|
* @returns {string} a table-row of the email template in markdown
|
|
27
51
|
*/
|
|
28
|
-
|
|
29
52
|
export function getTableRowMd(templateObj) {
|
|
30
|
-
const templateId = templateObj._id.replace(`${
|
|
31
|
-
|
|
53
|
+
const templateId = templateObj._id.replace(`${EMAIL_TEMPLATE_TYPE}/`, '');
|
|
32
54
|
const locales = `${templateObj.defaultLocale}${Object.keys(templateObj.subject).length > 1 ? ` (${Object.keys(templateObj.subject).filter(locale => locale !== templateObj.defaultLocale).join(',')})` : ''}`;
|
|
33
55
|
const row = `| ${templateObj.name ? templateObj.name : templateId} | ${locales} | ${templateObj.subject[templateObj.defaultLocale]} | \`${templateId}\` |`;
|
|
34
56
|
return row;
|
|
35
57
|
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* List email templates
|
|
61
|
+
* @param {boolean} long Long list format with details
|
|
62
|
+
* @return {Promise<unknown[]>} a promise that resolves to an array of email template objects
|
|
63
|
+
*/
|
|
64
|
+
export async function listEmailTemplates(long = false) {
|
|
65
|
+
let emailTemplates = [];
|
|
66
|
+
try {
|
|
67
|
+
emailTemplates = (await getEmailTemplates()).result;
|
|
68
|
+
} catch (error) {
|
|
69
|
+
printMessage(`Error retrieving email templates: ${error.message}`, 'error');
|
|
70
|
+
}
|
|
71
|
+
emailTemplates.sort((a, b) => a._id.localeCompare(b._id));
|
|
72
|
+
if (!long) {
|
|
73
|
+
for (const [, emailTemplate] of emailTemplates.entries()) {
|
|
74
|
+
printMessage(`${emailTemplate._id.replace(`${EMAIL_TEMPLATE_TYPE}/`, '')}`, 'data');
|
|
75
|
+
}
|
|
76
|
+
} else {
|
|
77
|
+
const table = createTable(['Id'['brightCyan'], 'Name'['brightCyan'], 'Status'['brightCyan'], 'Locale(s)'['brightCyan'], 'From'['brightCyan'], 'Subject'['brightCyan']]);
|
|
78
|
+
for (const emailTemplate of emailTemplates) {
|
|
79
|
+
table.push([
|
|
80
|
+
// Id
|
|
81
|
+
`${emailTemplate._id.replace(`${EMAIL_TEMPLATE_TYPE}/`, '')}`,
|
|
82
|
+
// Name
|
|
83
|
+
`${emailTemplate.displayName ? emailTemplate.displayName : ''}`,
|
|
84
|
+
// Status
|
|
85
|
+
emailTemplate.enabled === false ? 'disabled'['brightRed'] : 'enabled'['brightGreen'],
|
|
86
|
+
// Locale(s)
|
|
87
|
+
`${emailTemplate.defaultLocale}${Object.keys(emailTemplate.subject).length > 1 ? ` (${Object.keys(emailTemplate.subject).filter(locale => locale !== emailTemplate.defaultLocale).join(',')})` : ''}`,
|
|
88
|
+
// From
|
|
89
|
+
`${emailTemplate.from ? emailTemplate.from : ''}`,
|
|
90
|
+
// Subject
|
|
91
|
+
wordwrap(emailTemplate.subject[emailTemplate.defaultLocale], 40)]);
|
|
92
|
+
}
|
|
93
|
+
printMessage(table.toString(), 'data');
|
|
94
|
+
}
|
|
95
|
+
return emailTemplates;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Export single email template to a file
|
|
100
|
+
* @param {string} templateId email template id to export
|
|
101
|
+
* @param {string} file filename where to export the template data
|
|
102
|
+
*/
|
|
103
|
+
export async function exportEmailTemplateToFile(templateId, file) {
|
|
104
|
+
let fileName = file;
|
|
105
|
+
if (!fileName) {
|
|
106
|
+
fileName = getTypedFilename(templateId, EMAIL_TEMPLATE_FILE_TYPE);
|
|
107
|
+
}
|
|
108
|
+
createProgressIndicator('determinate', 1, `Exporting ${templateId}`);
|
|
109
|
+
try {
|
|
110
|
+
const templateData = await getEmailTemplate(templateId);
|
|
111
|
+
updateProgressIndicator(`Writing file ${fileName}`);
|
|
112
|
+
const fileData = getFileDataTemplate();
|
|
113
|
+
fileData.emailTemplate[templateId] = templateData;
|
|
114
|
+
saveJsonToFile(fileData, fileName);
|
|
115
|
+
stopProgressIndicator(`Exported ${templateId['brightCyan']} to ${fileName['brightCyan']}.`);
|
|
116
|
+
} catch (err) {
|
|
117
|
+
stopProgressIndicator(`${err}`);
|
|
118
|
+
printMessage(err, 'error');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Export all email templates to file
|
|
124
|
+
* @param {String} file optional filename
|
|
125
|
+
*/
|
|
126
|
+
export async function exportEmailTemplatesToFile(file) {
|
|
127
|
+
let fileName = file;
|
|
128
|
+
if (!fileName) {
|
|
129
|
+
fileName = getTypedFilename(`allEmailTemplates`, EMAIL_TEMPLATE_FILE_TYPE);
|
|
130
|
+
}
|
|
131
|
+
try {
|
|
132
|
+
const fileData = getFileDataTemplate();
|
|
133
|
+
const response = await getEmailTemplates();
|
|
134
|
+
const templates = response.result;
|
|
135
|
+
createProgressIndicator('determinate', response.resultCount, 'Exporting email templates');
|
|
136
|
+
for (const template of templates) {
|
|
137
|
+
const templateId = template._id.replace(`${EMAIL_TEMPLATE_TYPE}/`, '');
|
|
138
|
+
updateProgressIndicator(`Exporting ${templateId}`);
|
|
139
|
+
fileData.emailTemplate[templateId] = template;
|
|
140
|
+
}
|
|
141
|
+
saveJsonToFile(fileData, fileName);
|
|
142
|
+
stopProgressIndicator(`${response.resultCount} templates exported to ${fileName}.`);
|
|
143
|
+
} catch (err) {
|
|
144
|
+
stopProgressIndicator(`${err}`);
|
|
145
|
+
printMessage(err, 'error');
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Export all email templates to separate files
|
|
151
|
+
*/
|
|
152
|
+
export async function exportEmailTemplatesToFiles() {
|
|
153
|
+
try {
|
|
154
|
+
const response = await getEmailTemplates();
|
|
155
|
+
const templates = response.result;
|
|
156
|
+
createProgressIndicator('determinate', response.resultCount, 'Exporting email templates');
|
|
157
|
+
for (const template of templates) {
|
|
158
|
+
const templateId = template._id.replace(`${EMAIL_TEMPLATE_TYPE}/`, '');
|
|
159
|
+
const fileName = getTypedFilename(templateId, EMAIL_TEMPLATE_FILE_TYPE);
|
|
160
|
+
const fileData = getFileDataTemplate();
|
|
161
|
+
updateProgressIndicator(`Exporting ${templateId}`);
|
|
162
|
+
fileData.emailTemplate[templateId] = template;
|
|
163
|
+
saveJsonToFile(fileData, fileName);
|
|
164
|
+
}
|
|
165
|
+
stopProgressIndicator(`${response.resultCount} templates exported.`);
|
|
166
|
+
} catch (err) {
|
|
167
|
+
stopProgressIndicator(`${err}`);
|
|
168
|
+
printMessage(err, 'error');
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Import email template by id from file
|
|
174
|
+
* @param {String} templateId email template id
|
|
175
|
+
* @param {String} file optional filename
|
|
176
|
+
*/
|
|
177
|
+
export async function importEmailTemplateFromFile(templateId, file) {
|
|
178
|
+
// eslint-disable-next-line no-param-reassign
|
|
179
|
+
templateId = templateId.replaceAll(`${EMAIL_TEMPLATE_TYPE}/`, '');
|
|
180
|
+
fs.readFile(file, 'utf8', async (err, data) => {
|
|
181
|
+
if (err) throw err;
|
|
182
|
+
const fileData = JSON.parse(data);
|
|
183
|
+
if (validateImport(fileData.meta)) {
|
|
184
|
+
createProgressIndicator('determinate', 1, `Importing ${templateId}`);
|
|
185
|
+
if (fileData.emailTemplate[templateId]) {
|
|
186
|
+
try {
|
|
187
|
+
await putEmailTemplate(templateId, fileData.emailTemplate[templateId]);
|
|
188
|
+
updateProgressIndicator(`Importing ${templateId}`);
|
|
189
|
+
stopProgressIndicator(`Imported ${templateId}`);
|
|
190
|
+
} catch (putEmailTemplateError) {
|
|
191
|
+
stopProgressIndicator(`${putEmailTemplateError}`);
|
|
192
|
+
printMessage(putEmailTemplateError, 'error');
|
|
193
|
+
}
|
|
194
|
+
} else {
|
|
195
|
+
stopProgressIndicator(`Email template ${templateId.brightCyan} not found in ${file.brightCyan}!`);
|
|
196
|
+
printMessage(`Email template ${templateId.brightCyan} not found in ${file.brightCyan}!`, 'error');
|
|
197
|
+
}
|
|
198
|
+
} else {
|
|
199
|
+
printMessage('Import validation failed...', 'error');
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Import all email templates from file
|
|
206
|
+
* @param {String} file optional filename
|
|
207
|
+
*/
|
|
208
|
+
export async function importEmailTemplatesFromFile(file) {
|
|
209
|
+
fs.readFile(file, 'utf8', async (err, data) => {
|
|
210
|
+
if (err) throw err;
|
|
211
|
+
const fileData = JSON.parse(data);
|
|
212
|
+
if (validateImport(fileData.meta)) {
|
|
213
|
+
createProgressIndicator('determinate', Object.keys(fileData.emailTemplate).length, `Importing email templates`);
|
|
214
|
+
for (const id in fileData.emailTemplate) {
|
|
215
|
+
if ({}.hasOwnProperty.call(fileData.emailTemplate, id)) {
|
|
216
|
+
const templateId = id.replace(regexEmailTemplateType, '');
|
|
217
|
+
try {
|
|
218
|
+
// eslint-disable-next-line no-await-in-loop
|
|
219
|
+
await putEmailTemplate(templateId, fileData.emailTemplate[templateId]);
|
|
220
|
+
updateProgressIndicator(`Imported ${templateId}`);
|
|
221
|
+
} catch (putEmailTemplateError) {
|
|
222
|
+
printMessage(`\nError importing ${templateId}`, 'error');
|
|
223
|
+
printMessage(putEmailTemplateError.response.data, 'error');
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
stopProgressIndicator(`Done.`);
|
|
228
|
+
} else {
|
|
229
|
+
printMessage('Import validation failed...', 'error');
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Import all email templates from separate files
|
|
236
|
+
*/
|
|
237
|
+
export async function importEmailTemplatesFromFiles() {
|
|
238
|
+
const names = fs.readdirSync('.');
|
|
239
|
+
const jsonFiles = names.filter(name => name.toLowerCase().endsWith(`${EMAIL_TEMPLATE_FILE_TYPE}.json`));
|
|
240
|
+
createProgressIndicator('determinate', jsonFiles.length, 'Importing email templates...');
|
|
241
|
+
let total = 0;
|
|
242
|
+
let totalErrors = 0;
|
|
243
|
+
for (const file of jsonFiles) {
|
|
244
|
+
const data = fs.readFileSync(file, 'utf8');
|
|
245
|
+
const fileData = JSON.parse(data);
|
|
246
|
+
if (validateImport(fileData.meta)) {
|
|
247
|
+
total += Object.keys(fileData.emailTemplate).length;
|
|
248
|
+
let errors = 0;
|
|
249
|
+
for (const id in fileData.emailTemplate) {
|
|
250
|
+
if ({}.hasOwnProperty.call(fileData.emailTemplate, id)) {
|
|
251
|
+
const templateId = id.replace(regexEmailTemplateType, '');
|
|
252
|
+
try {
|
|
253
|
+
// eslint-disable-next-line no-await-in-loop
|
|
254
|
+
await putEmailTemplate(templateId, fileData.emailTemplate[templateId]);
|
|
255
|
+
} catch (putEmailTemplateError) {
|
|
256
|
+
errors += 1;
|
|
257
|
+
printMessage(`\nError importing ${templateId}`, 'error');
|
|
258
|
+
printMessage(putEmailTemplateError.response.data, 'error');
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
totalErrors += errors;
|
|
263
|
+
updateProgressIndicator(`Imported ${file}`);
|
|
264
|
+
} else {
|
|
265
|
+
printMessage(`Validation of ${file} failed!`, 'error');
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
stopProgressIndicator(`Imported ${total - totalErrors} of ${total} email template(s) from ${jsonFiles.length} file(s).`);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Import first email template from file
|
|
273
|
+
* @param {String} file optional filename
|
|
274
|
+
*/
|
|
275
|
+
export async function importFirstEmailTemplateFromFile(file) {
|
|
276
|
+
fs.readFile(file, 'utf8', async (err, data) => {
|
|
277
|
+
if (err) throw err;
|
|
278
|
+
const fileData = JSON.parse(data);
|
|
279
|
+
if (validateImport(fileData.meta)) {
|
|
280
|
+
createProgressIndicator('determinate', 1, `Importing first email template`);
|
|
281
|
+
for (const id in fileData.emailTemplate) {
|
|
282
|
+
if ({}.hasOwnProperty.call(fileData.emailTemplate, id)) {
|
|
283
|
+
try {
|
|
284
|
+
await putEmailTemplate(id.replace(regexEmailTemplateType, ''), fileData.emailTemplate[id]);
|
|
285
|
+
updateProgressIndicator(`Imported ${id}`);
|
|
286
|
+
stopProgressIndicator(`Imported ${id}`);
|
|
287
|
+
} catch (putEmailTemplateError) {
|
|
288
|
+
stopProgressIndicator(`Error importing email template ${id}`);
|
|
289
|
+
printMessage(`\nError importing email template ${id}`, 'error');
|
|
290
|
+
printMessage(putEmailTemplateError.response.data, 'error');
|
|
291
|
+
}
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
} else {
|
|
296
|
+
printMessage('Import validation failed...', 'error');
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
}
|
|
36
300
|
//# sourceMappingURL=EmailTemplateOps.js.map
|