@rockcarver/frodo-cli 2.0.0-5 → 2.0.0-7
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 +39 -1
- package/esm/app.js +4 -1
- package/esm/app.js.map +1 -1
- package/esm/cli/_template/something-delete.js +4 -1
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +4 -1
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +4 -1
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +4 -1
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +4 -1
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +4 -1
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +4 -1
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-export.js +4 -1
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +4 -1
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +4 -1
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +4 -1
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +4 -1
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +4 -1
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +4 -1
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +4 -1
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +8 -2
- 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 +10 -3
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-federation-export.js +45 -0
- package/esm/cli/admin/admin-federation-export.js.map +1 -0
- package/esm/cli/admin/admin-federation-import.js +49 -0
- package/esm/cli/admin/admin-federation-import.js.map +1 -0
- package/esm/cli/admin/admin-federation-list.js +29 -0
- package/esm/cli/admin/admin-federation-list.js.map +1 -0
- package/esm/cli/admin/admin-federation.js +13 -0
- package/esm/cli/admin/admin-federation.js.map +1 -0
- package/esm/cli/admin/admin-get-access-token.js +8 -2
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +8 -2
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +8 -2
- 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 +8 -2
- 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 +8 -2
- 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 +8 -2
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +8 -2
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +8 -2
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +8 -2
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +8 -2
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin.js +1 -0
- package/esm/cli/admin/admin.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +10 -3
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +4 -1
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +4 -1
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +10 -3
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +4 -1
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +4 -1
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +4 -1
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +4 -1
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-import.js +4 -1
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +10 -3
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +4 -1
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +4 -1
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +4 -1
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +4 -1
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-list.js +4 -1
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +10 -3
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +4 -1
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +4 -1
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +4 -1
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +4 -1
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/app/app-delete.js +4 -1
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +4 -1
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +6 -3
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +7 -4
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +4 -1
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/authz/authz-policy-delete.js +6 -3
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-policy-describe.js +4 -1
- package/esm/cli/authz/authz-policy-describe.js.map +1 -1
- package/esm/cli/authz/authz-policy-export.js +8 -5
- package/esm/cli/authz/authz-policy-export.js.map +1 -1
- package/esm/cli/authz/authz-policy-import.js +7 -4
- package/esm/cli/authz/authz-policy-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-list.js +5 -2
- package/esm/cli/authz/authz-policy-list.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js +5 -2
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-describe.js +4 -1
- package/esm/cli/authz/authz-set-describe.js.map +1 -1
- package/esm/cli/authz/authz-set-export.js +6 -3
- package/esm/cli/authz/authz-set-export.js.map +1 -1
- package/esm/cli/authz/authz-set-import.js +7 -4
- package/esm/cli/authz/authz-set-import.js.map +1 -1
- package/esm/cli/authz/authz-set-list.js +4 -1
- package/esm/cli/authz/authz-set-list.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +6 -3
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-describe.js +5 -2
- package/esm/cli/authz/authz-type-describe.js.map +1 -1
- package/esm/cli/authz/authz-type-export.js +7 -4
- package/esm/cli/authz/authz-type-export.js.map +1 -1
- package/esm/cli/authz/authz-type-import.js +8 -5
- package/esm/cli/authz/authz-type-import.js.map +1 -1
- package/esm/cli/authz/authz-type-list.js +4 -1
- package/esm/cli/authz/authz-type-list.js.map +1 -1
- package/esm/cli/conn/conn-save.js +18 -5
- package/esm/cli/conn/conn-save.js.map +1 -1
- package/esm/cli/email/email-template-export.js +6 -3
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +7 -4
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +4 -1
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +15 -5
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +4 -1
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +5 -2
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +4 -1
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +4 -1
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +4 -1
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +4 -1
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +4 -1
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +4 -1
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +4 -1
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +4 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +5 -2
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +4 -1
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +4 -1
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +5 -2
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +4 -1
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +4 -1
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +4 -1
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +4 -1
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +5 -2
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/idm/idm-count.js +4 -1
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +6 -3
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +7 -4
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +4 -1
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idp/idp-export.js +4 -1
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +7 -4
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +4 -1
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/info/info.js +8 -2
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +5 -2
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +14 -6
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +8 -2
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +8 -2
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +6 -3
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +7 -4
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +4 -1
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +10 -3
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/log/log-fetch.js +16 -6
- package/esm/cli/log/log-fetch.js.map +1 -1
- package/esm/cli/log/log-key-delete.js +5 -2
- package/esm/cli/log/log-key-delete.js.map +1 -1
- package/esm/cli/log/log-key-describe.js +4 -1
- package/esm/cli/log/log-key-describe.js.map +1 -1
- package/esm/cli/log/log-key-list.js +4 -1
- package/esm/cli/log/log-key-list.js.map +1 -1
- package/esm/cli/log/log-list.js +14 -4
- package/esm/cli/log/log-list.js.map +1 -1
- package/esm/cli/log/log-tail.js +16 -6
- package/esm/cli/log/log-tail.js.map +1 -1
- package/esm/cli/realm/realm-add-custom-domain.js +4 -1
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +4 -1
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +4 -1
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +8 -2
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +6 -3
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +7 -4
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +4 -1
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +11 -4
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +4 -1
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +6 -3
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +7 -4
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +4 -1
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +5 -2
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/script/script-delete.js +4 -1
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +4 -1
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +4 -1
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +4 -1
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +4 -1
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/service/service-delete.js +5 -2
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +6 -3
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +7 -4
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +4 -1
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/theme/theme-delete.js +6 -3
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +7 -4
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +8 -5
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +4 -1
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/ops/AdminFederationOps.js +216 -0
- package/esm/ops/AdminFederationOps.js.map +1 -0
- package/esm/ops/AgentOps.js +62 -36
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +22 -10
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +10 -3
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +23 -15
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js +34 -21
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js +17 -9
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +46 -30
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/LogOps.js +21 -11
- package/esm/ops/LogOps.js.map +1 -1
- package/esm/ops/NodeOps.js +5 -2
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +26 -13
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/OrganizationOps.js +8 -2
- package/esm/ops/OrganizationOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +36 -21
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +35 -18
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/RealmOps.js +11 -6
- package/esm/ops/RealmOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js +34 -18
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +43 -23
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/ScriptOps.js +18 -10
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/SecretsOps.js +28 -14
- package/esm/ops/SecretsOps.js.map +1 -1
- package/esm/ops/ServiceOps.js +38 -17
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +35 -19
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/VariablesOps.js +23 -12
- package/esm/ops/VariablesOps.js.map +1 -1
- package/esm/utils/Config.js +6 -3
- package/esm/utils/Config.js.map +1 -1
- package/esm/utils/Console.js +5 -2
- package/esm/utils/Console.js.map +1 -1
- package/esm/utils/ExportImportUtils.js +6 -3
- package/esm/utils/ExportImportUtils.js.map +1 -1
- package/esm/utils/Version.js +7 -3
- package/esm/utils/Version.js.map +1 -1
- package/package.json +2 -2
|
@@ -3,23 +3,26 @@ import { Option } from 'commander';
|
|
|
3
3
|
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
4
4
|
import { printMessage, verboseMessage } from '../../utils/Console';
|
|
5
5
|
import { deleteThemeByNameCmd, deleteThemeCmd, deleteAllThemes } from '../../ops/ThemeOps';
|
|
6
|
+
const {
|
|
7
|
+
getTokens
|
|
8
|
+
} = frodo.login;
|
|
6
9
|
const program = new FrodoCommand('frodo theme delete');
|
|
7
10
|
program.description('Delete themes.').addOption(new Option('-n, --theme-name <name>', 'Name of the theme. If specified, -a and -A are ignored.')).addOption(new Option('-i, --theme-id <uuid>', 'Uuid of the theme. If specified, -a and -A are ignored.')).addOption(new Option('-a, --all', 'Delete all the themes in the realm. Ignored with -n and -i.')).action(
|
|
8
11
|
// implement command logic inside action handler
|
|
9
12
|
async (host, realm, user, password, options, command) => {
|
|
10
13
|
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
11
14
|
// delete by name
|
|
12
|
-
if (options.themeName && (await
|
|
15
|
+
if (options.themeName && (await getTokens())) {
|
|
13
16
|
verboseMessage(`Deleting theme with name "${options.themeName}" from realm "${state.getRealm()}"...`);
|
|
14
17
|
deleteThemeByNameCmd(options.themeName);
|
|
15
18
|
}
|
|
16
19
|
// delete by id
|
|
17
|
-
else if (options.themeId && (await
|
|
20
|
+
else if (options.themeId && (await getTokens())) {
|
|
18
21
|
verboseMessage(`Deleting theme with id "${options.themeId}" from realm "${state.getRealm()}"...`);
|
|
19
22
|
deleteThemeCmd(options.themeId);
|
|
20
23
|
}
|
|
21
24
|
// --all -a
|
|
22
|
-
else if (options.all && (await
|
|
25
|
+
else if (options.all && (await getTokens())) {
|
|
23
26
|
verboseMessage(`Deleting all themes from realm "${state.getRealm()}"...`);
|
|
24
27
|
deleteAllThemes();
|
|
25
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-delete.js","names":["FrodoCommand","Option","frodo","state","printMessage","verboseMessage","deleteThemeByNameCmd","deleteThemeCmd","deleteAllThemes","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","themeName","
|
|
1
|
+
{"version":3,"file":"theme-delete.js","names":["FrodoCommand","Option","frodo","state","printMessage","verboseMessage","deleteThemeByNameCmd","deleteThemeCmd","deleteAllThemes","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","themeName","getRealm","themeId","all","help","process","exitCode","parse"],"sources":["cli/theme/theme-delete.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n deleteThemeByNameCmd,\n deleteThemeCmd,\n deleteAllThemes,\n} from '../../ops/ThemeOps';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo theme delete');\n\nprogram\n .description('Delete themes.')\n .addOption(\n new Option(\n '-n, --theme-name <name>',\n 'Name of the theme. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-i, --theme-id <uuid>',\n 'Uuid of the theme. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Delete all the themes in the realm. Ignored with -n and -i.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by name\n if (options.themeName && (await getTokens())) {\n verboseMessage(\n `Deleting theme with name \"${\n options.themeName\n }\" from realm \"${state.getRealm()}\"...`\n );\n deleteThemeByNameCmd(options.themeName);\n }\n // delete by id\n else if (options.themeId && (await getTokens())) {\n verboseMessage(\n `Deleting theme with id \"${\n options.themeId\n }\" from realm \"${state.getRealm()}\"...`\n );\n deleteThemeCmd(options.themeId);\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage(\n `Deleting all themes from realm \"${state.getRealm()}\"...`\n );\n deleteAllThemes();\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SACEC,oBAAoB,EACpBC,cAAc,EACdC,eAAe,QACV,oBAAoB;AAE3B,MAAM;EAAEC;AAAU,CAAC,GAAGP,KAAK,CAACQ,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIX,YAAY,CAAC,oBAAoB,CAAC;AAEtDW,OAAO,CACJC,WAAW,CAAC,gBAAgB,CAAC,CAC7BC,SAAS,CACR,IAAIZ,MAAM,CACR,yBAAyB,EACzB,yDACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,uBAAuB,EACvB,yDACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,WAAW,EACX,6DACF,CACF,CAAC,CACAa,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,SAAS,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5CJ,cAAc,CACX,6BACCc,OAAO,CAACG,SACT,iBAAgBnB,KAAK,CAACoB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACDjB,oBAAoB,CAACa,OAAO,CAACG,SAAS,CAAC;EACzC;EACA;EAAA,KACK,IAAIH,OAAO,CAACK,OAAO,KAAK,MAAMf,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/CJ,cAAc,CACX,2BACCc,OAAO,CAACK,OACT,iBAAgBrB,KAAK,CAACoB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACDhB,cAAc,CAACY,OAAO,CAACK,OAAO,CAAC;EACjC;EACA;EAAA,KACK,IAAIL,OAAO,CAACM,GAAG,KAAK,MAAMhB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CJ,cAAc,CACX,mCAAkCF,KAAK,CAACoB,QAAQ,CAAC,CAAE,MACtD,CAAC;IACDf,eAAe,CAAC,CAAC;EACnB;EACA;EAAA,KACK;IACHJ,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDO,OAAO,CAACe,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHjB,OAAO,CAACkB,KAAK,CAAC,CAAC"}
|
|
@@ -3,28 +3,31 @@ import { Option } from 'commander';
|
|
|
3
3
|
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
4
4
|
import { printMessage, verboseMessage } from '../../utils/Console';
|
|
5
5
|
import { exportThemeById, exportThemeByName, exportThemesToFile, exportThemesToFiles } from '../../ops/ThemeOps';
|
|
6
|
+
const {
|
|
7
|
+
getTokens
|
|
8
|
+
} = frodo.login;
|
|
6
9
|
const program = new FrodoCommand('frodo theme export');
|
|
7
10
|
program.description('Export themes.').addOption(new Option('-n, --theme-name <name>', 'Name of the theme. If specified, -a and -A are ignored.')).addOption(new Option('-i, --theme-id <uuid>', 'Uuid of the theme. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file [file]', 'Name of the file to write the exported theme(s) to. Ignored with -A.')).addOption(new Option('-a, --all', 'Export all the themes in a realm to a single file. Ignored with -n and -i.')).addOption(new Option('-A, --all-separate', 'Export all the themes in a realm as separate files <theme name>.theme.json. Ignored with -n, -i, and -a.')).action(
|
|
8
11
|
// implement command logic inside action handler
|
|
9
12
|
async (host, realm, user, password, options, command) => {
|
|
10
13
|
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
11
14
|
// export by name
|
|
12
|
-
if (options.themeName && (await
|
|
15
|
+
if (options.themeName && (await getTokens())) {
|
|
13
16
|
verboseMessage(`Exporting theme "${options.themeName}" from realm "${state.getRealm()}"...`);
|
|
14
17
|
exportThemeByName(options.themeName, options.file);
|
|
15
18
|
}
|
|
16
19
|
// export by id
|
|
17
|
-
else if (options.themeId && (await
|
|
20
|
+
else if (options.themeId && (await getTokens())) {
|
|
18
21
|
verboseMessage(`Exporting theme "${options.themeId}" from realm "${state.getRealm()}"...`);
|
|
19
22
|
exportThemeById(options.themeId, options.file);
|
|
20
23
|
}
|
|
21
24
|
// --all -a
|
|
22
|
-
else if (options.all && (await
|
|
25
|
+
else if (options.all && (await getTokens())) {
|
|
23
26
|
verboseMessage('Exporting all themes to a single file...');
|
|
24
27
|
exportThemesToFile(options.file);
|
|
25
28
|
}
|
|
26
29
|
// --all-separate -A
|
|
27
|
-
else if (options.allSeparate && (await
|
|
30
|
+
else if (options.allSeparate && (await getTokens())) {
|
|
28
31
|
verboseMessage('Exporting all themes to separate files...');
|
|
29
32
|
exportThemesToFiles();
|
|
30
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-export.js","names":["FrodoCommand","Option","frodo","state","printMessage","verboseMessage","exportThemeById","exportThemeByName","exportThemesToFile","exportThemesToFiles","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","themeName","
|
|
1
|
+
{"version":3,"file":"theme-export.js","names":["FrodoCommand","Option","frodo","state","printMessage","verboseMessage","exportThemeById","exportThemeByName","exportThemesToFile","exportThemesToFiles","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","themeName","getRealm","file","themeId","all","allSeparate","help","process","exitCode","parse"],"sources":["cli/theme/theme-export.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n exportThemeById,\n exportThemeByName,\n exportThemesToFile,\n exportThemesToFiles,\n} from '../../ops/ThemeOps';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo theme export');\n\nprogram\n .description('Export themes.')\n .addOption(\n new Option(\n '-n, --theme-name <name>',\n 'Name of the theme. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-i, --theme-id <uuid>',\n 'Uuid of the theme. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file [file]',\n 'Name of the file to write the exported theme(s) to. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Export all the themes in a realm to a single file. Ignored with -n and -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all the themes in a realm as separate files <theme name>.theme.json. Ignored with -n, -i, and -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // export by name\n if (options.themeName && (await getTokens())) {\n verboseMessage(\n `Exporting theme \"${\n options.themeName\n }\" from realm \"${state.getRealm()}\"...`\n );\n exportThemeByName(options.themeName, options.file);\n }\n // export by id\n else if (options.themeId && (await getTokens())) {\n verboseMessage(\n `Exporting theme \"${\n options.themeId\n }\" from realm \"${state.getRealm()}\"...`\n );\n exportThemeById(options.themeId, options.file);\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Exporting all themes to a single file...');\n exportThemesToFile(options.file);\n }\n // --all-separate -A\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting all themes to separate files...');\n exportThemesToFiles();\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SACEC,eAAe,EACfC,iBAAiB,EACjBC,kBAAkB,EAClBC,mBAAmB,QACd,oBAAoB;AAE3B,MAAM;EAAEC;AAAU,CAAC,GAAGR,KAAK,CAACS,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIZ,YAAY,CAAC,oBAAoB,CAAC;AAEtDY,OAAO,CACJC,WAAW,CAAC,gBAAgB,CAAC,CAC7BC,SAAS,CACR,IAAIb,MAAM,CACR,yBAAyB,EACzB,yDACF,CACF,CAAC,CACAa,SAAS,CACR,IAAIb,MAAM,CACR,uBAAuB,EACvB,yDACF,CACF,CAAC,CACAa,SAAS,CACR,IAAIb,MAAM,CACR,mBAAmB,EACnB,sEACF,CACF,CAAC,CACAa,SAAS,CACR,IAAIb,MAAM,CACR,WAAW,EACX,4EACF,CACF,CAAC,CACAa,SAAS,CACR,IAAIb,MAAM,CACR,oBAAoB,EACpB,0GACF,CACF,CAAC,CACAc,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,SAAS,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5CL,cAAc,CACX,oBACCe,OAAO,CAACG,SACT,iBAAgBpB,KAAK,CAACqB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACDjB,iBAAiB,CAACa,OAAO,CAACG,SAAS,EAAEH,OAAO,CAACK,IAAI,CAAC;EACpD;EACA;EAAA,KACK,IAAIL,OAAO,CAACM,OAAO,KAAK,MAAMhB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/CL,cAAc,CACX,oBACCe,OAAO,CAACM,OACT,iBAAgBvB,KAAK,CAACqB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACDlB,eAAe,CAACc,OAAO,CAACM,OAAO,EAAEN,OAAO,CAACK,IAAI,CAAC;EAChD;EACA;EAAA,KACK,IAAIL,OAAO,CAACO,GAAG,KAAK,MAAMjB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CL,cAAc,CAAC,0CAA0C,CAAC;IAC1DG,kBAAkB,CAACY,OAAO,CAACK,IAAI,CAAC;EAClC;EACA;EAAA,KACK,IAAIL,OAAO,CAACQ,WAAW,KAAK,MAAMlB,SAAS,CAAC,CAAC,CAAC,EAAE;IACnDL,cAAc,CAAC,2CAA2C,CAAC;IAC3DI,mBAAmB,CAAC,CAAC;EACvB;EACA;EAAA,KACK;IACHL,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDQ,OAAO,CAACiB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHnB,OAAO,CAACoB,KAAK,CAAC,CAAC"}
|
|
@@ -3,33 +3,36 @@ import { Option } from 'commander';
|
|
|
3
3
|
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
4
4
|
import { printMessage, verboseMessage } from '../../utils/Console';
|
|
5
5
|
import { importFirstThemeFromFile, importThemeById, importThemeByName, importThemesFromFile, importThemesFromFiles } from '../../ops/ThemeOps';
|
|
6
|
+
const {
|
|
7
|
+
getTokens
|
|
8
|
+
} = frodo.login;
|
|
6
9
|
const program = new FrodoCommand('frodo theme import');
|
|
7
10
|
program.description('Import themes.').addOption(new Option('-n, --theme-name <name>', 'Name of the theme. If specified, -a and -A are ignored.')).addOption(new Option('-i, --theme-id <uuid>', 'Uuid of the theme. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to import the theme(s) from.')).addOption(new Option('-a, --all', 'Import all the themes from single file. Ignored with -n or -i.')).addOption(new Option('-A, --all-separate', 'Import all the themes from separate files (*.json) in the current directory. Ignored with -n or -i or -a.')).action(
|
|
8
11
|
// implement command logic inside action handler
|
|
9
12
|
async (host, realm, user, password, options, command) => {
|
|
10
13
|
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
11
14
|
// import by name
|
|
12
|
-
if (options.file && options.themeName && (await
|
|
15
|
+
if (options.file && options.themeName && (await getTokens())) {
|
|
13
16
|
verboseMessage(`Importing theme with name "${options.themeName}" into realm "${state.getRealm()}"...`);
|
|
14
17
|
importThemeByName(options.themeName, options.file);
|
|
15
18
|
}
|
|
16
19
|
// import by id
|
|
17
|
-
else if (options.file && options.themeId && (await
|
|
20
|
+
else if (options.file && options.themeId && (await getTokens())) {
|
|
18
21
|
verboseMessage(`Importing theme with id "${options.themeId}" into realm "${state.getRealm()}"...`);
|
|
19
22
|
importThemeById(options.themeId, options.file);
|
|
20
23
|
}
|
|
21
24
|
// --all -a
|
|
22
|
-
else if (options.all && options.file && (await
|
|
25
|
+
else if (options.all && options.file && (await getTokens())) {
|
|
23
26
|
verboseMessage(`Importing all themes from a single file (${options.file})...`);
|
|
24
27
|
importThemesFromFile(options.file);
|
|
25
28
|
}
|
|
26
29
|
// --all-separate -A
|
|
27
|
-
else if (options.allSeparate && !options.file && (await
|
|
30
|
+
else if (options.allSeparate && !options.file && (await getTokens())) {
|
|
28
31
|
verboseMessage('Importing all themes from separate files in current directory...');
|
|
29
32
|
importThemesFromFiles();
|
|
30
33
|
}
|
|
31
34
|
// import single theme from file
|
|
32
|
-
else if (options.file && (await
|
|
35
|
+
else if (options.file && (await getTokens())) {
|
|
33
36
|
verboseMessage(`Importing first theme from file "${options.file}" into realm "${state.getRealm()}"...`);
|
|
34
37
|
importFirstThemeFromFile(options.file);
|
|
35
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-import.js","names":["FrodoCommand","Option","frodo","state","printMessage","verboseMessage","importFirstThemeFromFile","importThemeById","importThemeByName","importThemesFromFile","importThemesFromFiles","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","themeName","
|
|
1
|
+
{"version":3,"file":"theme-import.js","names":["FrodoCommand","Option","frodo","state","printMessage","verboseMessage","importFirstThemeFromFile","importThemeById","importThemeByName","importThemesFromFile","importThemesFromFiles","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","themeName","getRealm","themeId","all","allSeparate","help","process","exitCode","parse"],"sources":["cli/theme/theme-import.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n importFirstThemeFromFile,\n importThemeById,\n importThemeByName,\n importThemesFromFile,\n importThemesFromFiles,\n} from '../../ops/ThemeOps';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo theme import');\n\nprogram\n .description('Import themes.')\n .addOption(\n new Option(\n '-n, --theme-name <name>',\n 'Name of the theme. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-i, --theme-id <uuid>',\n 'Uuid of the theme. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the file to import the theme(s) from.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Import all the themes from single file. Ignored with -n or -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all the themes from separate files (*.json) in the current directory. Ignored with -n or -i or -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // import by name\n if (options.file && options.themeName && (await getTokens())) {\n verboseMessage(\n `Importing theme with name \"${\n options.themeName\n }\" into realm \"${state.getRealm()}\"...`\n );\n importThemeByName(options.themeName, options.file);\n }\n // import by id\n else if (options.file && options.themeId && (await getTokens())) {\n verboseMessage(\n `Importing theme with id \"${\n options.themeId\n }\" into realm \"${state.getRealm()}\"...`\n );\n importThemeById(options.themeId, options.file);\n }\n // --all -a\n else if (options.all && options.file && (await getTokens())) {\n verboseMessage(\n `Importing all themes from a single file (${options.file})...`\n );\n importThemesFromFile(options.file);\n }\n // --all-separate -A\n else if (options.allSeparate && !options.file && (await getTokens())) {\n verboseMessage(\n 'Importing all themes from separate files in current directory...'\n );\n importThemesFromFiles();\n }\n // import single theme from file\n else if (options.file && (await getTokens())) {\n verboseMessage(\n `Importing first theme from file \"${\n options.file\n }\" into realm \"${state.getRealm()}\"...`\n );\n importFirstThemeFromFile(options.file);\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
|
|
@@ -3,12 +3,15 @@ import { Option } from 'commander';
|
|
|
3
3
|
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
4
4
|
import { listThemes } from '../../ops/ThemeOps';
|
|
5
5
|
import { verboseMessage } from '../../utils/Console';
|
|
6
|
+
const {
|
|
7
|
+
getTokens
|
|
8
|
+
} = frodo.login;
|
|
6
9
|
const program = new FrodoCommand('frodo theme list');
|
|
7
10
|
program.description('List themes.').addOption(new Option('-l, --long', 'Long with more fields.').default(false, 'false')).action(
|
|
8
11
|
// implement command logic inside action handler
|
|
9
12
|
async (host, realm, user, password, options, command) => {
|
|
10
13
|
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
11
|
-
if (await
|
|
14
|
+
if (await getTokens()) {
|
|
12
15
|
verboseMessage(`Listing themes in realm "${state.getRealm()}"...`);
|
|
13
16
|
listThemes(options.long);
|
|
14
17
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-list.js","names":["FrodoCommand","Option","frodo","state","listThemes","verboseMessage","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","
|
|
1
|
+
{"version":3,"file":"theme-list.js","names":["FrodoCommand","Option","frodo","state","listThemes","verboseMessage","getTokens","login","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","long","process","exitCode","parse"],"sources":["cli/theme/theme-list.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { listThemes } from '../../ops/ThemeOps';\nimport { verboseMessage } from '../../utils/Console';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo theme list');\n\nprogram\n .description('List themes.')\n .addOption(\n new Option('-l, --long', 'Long with more fields.').default(false, 'false')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage(`Listing themes in realm \"${state.getRealm()}\"...`);\n listThemes(options.long);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,MAAM;EAAEC;AAAU,CAAC,GAAGJ,KAAK,CAACK,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIR,YAAY,CAAC,kBAAkB,CAAC;AAEpDQ,OAAO,CACJC,WAAW,CAAC,cAAc,CAAC,CAC3BC,SAAS,CACR,IAAIT,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAACU,OAAO,CAAC,KAAK,EAAE,OAAO,CAC3E,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBD,cAAc,CAAE,4BAA2BF,KAAK,CAACiB,QAAQ,CAAC,CAAE,MAAK,CAAC;IAClEhB,UAAU,CAACa,OAAO,CAACI,IAAI,CAAC;EAC1B,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { frodo } from '@rockcarver/frodo-lib';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import { createProgressBar, debugMessage, failSpinner, printMessage, showSpinner, stopProgressBar, succeedSpinner, updateProgressBar } from '../utils/Console';
|
|
4
|
+
import { getTypedFilename, saveJsonToFile } from '../utils/ExportImportUtils';
|
|
5
|
+
const {
|
|
6
|
+
getAdminFederationProviders,
|
|
7
|
+
exportAdminFederationProvider,
|
|
8
|
+
exportAdminFederationProviders,
|
|
9
|
+
importAdminFederationProvider,
|
|
10
|
+
importAdminFederationProviders,
|
|
11
|
+
importFirstAdminFederationProvider
|
|
12
|
+
} = frodo.cloud.adminFed;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* List providers
|
|
16
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
17
|
+
*/
|
|
18
|
+
export async function listAdminFederationProviders() {
|
|
19
|
+
let outcome = false;
|
|
20
|
+
try {
|
|
21
|
+
const providers = await getAdminFederationProviders();
|
|
22
|
+
providers.sort((a, b) => a._id.localeCompare(b._id));
|
|
23
|
+
providers.forEach(socialIdentityProvider => {
|
|
24
|
+
printMessage(`${socialIdentityProvider._id}`, 'data');
|
|
25
|
+
});
|
|
26
|
+
outcome = true;
|
|
27
|
+
} catch (err) {
|
|
28
|
+
printMessage(`listAdminFederationProviders ERROR: ${err.message}`, 'error');
|
|
29
|
+
printMessage(err, 'error');
|
|
30
|
+
}
|
|
31
|
+
return outcome;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Export provider by id
|
|
36
|
+
* @param {string} providerId provider id/name
|
|
37
|
+
* @param {string} file optional export file name
|
|
38
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
39
|
+
*/
|
|
40
|
+
export async function exportAdminFederationProviderToFile(providerId, file = '') {
|
|
41
|
+
let outcome = false;
|
|
42
|
+
let fileName = file;
|
|
43
|
+
if (!fileName) {
|
|
44
|
+
fileName = getTypedFilename(providerId, 'admin.federation');
|
|
45
|
+
}
|
|
46
|
+
createProgressBar(1, `Exporting ${providerId}`);
|
|
47
|
+
try {
|
|
48
|
+
updateProgressBar(`Writing file ${fileName}`);
|
|
49
|
+
const fileData = await exportAdminFederationProvider(providerId);
|
|
50
|
+
saveJsonToFile(fileData, fileName);
|
|
51
|
+
stopProgressBar(`Exported ${providerId['brightCyan']} to ${fileName['brightCyan']}.`);
|
|
52
|
+
outcome = true;
|
|
53
|
+
} catch (err) {
|
|
54
|
+
stopProgressBar(`${err}`);
|
|
55
|
+
printMessage(`${err}`, 'error');
|
|
56
|
+
}
|
|
57
|
+
return outcome;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Export all providers
|
|
62
|
+
* @param {string} file optional export file name
|
|
63
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
64
|
+
*/
|
|
65
|
+
export async function exportAdminFederationProvidersToFile(file = '') {
|
|
66
|
+
let outcome = false;
|
|
67
|
+
showSpinner(`Exporting all providers...`);
|
|
68
|
+
try {
|
|
69
|
+
let fileName = file;
|
|
70
|
+
if (!fileName) {
|
|
71
|
+
fileName = getTypedFilename(`allProviders`, 'admin.federation');
|
|
72
|
+
}
|
|
73
|
+
const fileData = await exportAdminFederationProviders();
|
|
74
|
+
saveJsonToFile(fileData, fileName);
|
|
75
|
+
succeedSpinner(`Exported all providers to ${fileName}`);
|
|
76
|
+
outcome = true;
|
|
77
|
+
} catch (error) {
|
|
78
|
+
var _error$response;
|
|
79
|
+
failSpinner(`Error exporting all providers.`);
|
|
80
|
+
printMessage(((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data) || error, 'error');
|
|
81
|
+
}
|
|
82
|
+
return outcome;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Export all providers to individual files
|
|
87
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
88
|
+
*/
|
|
89
|
+
export async function exportAdminFederationProvidersToFiles() {
|
|
90
|
+
let outcome = false;
|
|
91
|
+
try {
|
|
92
|
+
const allIdpsData = await getAdminFederationProviders();
|
|
93
|
+
createProgressBar(allIdpsData.length, 'Exporting providers');
|
|
94
|
+
for (const idpData of allIdpsData) {
|
|
95
|
+
updateProgressBar(`Writing provider ${idpData._id}`);
|
|
96
|
+
const fileName = getTypedFilename(idpData._id, 'admin.federation');
|
|
97
|
+
const fileData = await exportAdminFederationProvider(idpData._id);
|
|
98
|
+
saveJsonToFile(fileData, fileName);
|
|
99
|
+
}
|
|
100
|
+
stopProgressBar(`${allIdpsData.length} providers exported.`);
|
|
101
|
+
outcome = true;
|
|
102
|
+
} catch (error) {
|
|
103
|
+
var _error$response2;
|
|
104
|
+
failSpinner(`Error exporting all providers.`);
|
|
105
|
+
printMessage(((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data) || error, 'error');
|
|
106
|
+
}
|
|
107
|
+
return outcome;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Import provider by id/name
|
|
112
|
+
* @param {string} providerId provider id/name
|
|
113
|
+
* @param {string} file import file name
|
|
114
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
115
|
+
*/
|
|
116
|
+
export async function importAdminFederationProviderFromFile(providerId, file) {
|
|
117
|
+
let outcome = false;
|
|
118
|
+
showSpinner(`Importing provider ${providerId} from ${file}...`);
|
|
119
|
+
try {
|
|
120
|
+
const data = fs.readFileSync(file, 'utf8');
|
|
121
|
+
const fileData = JSON.parse(data);
|
|
122
|
+
await importAdminFederationProvider(providerId, fileData);
|
|
123
|
+
succeedSpinner(`Successfully imported provider ${providerId} from ${file}.`);
|
|
124
|
+
outcome = true;
|
|
125
|
+
} catch (error) {
|
|
126
|
+
var _error$response3;
|
|
127
|
+
failSpinner(`Error importing provider ${providerId} from ${file}.`);
|
|
128
|
+
printMessage(((_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : _error$response3.data) || error, 'error');
|
|
129
|
+
}
|
|
130
|
+
return outcome;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Import first provider from file
|
|
135
|
+
* @param {String} file import file name
|
|
136
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
137
|
+
*/
|
|
138
|
+
export async function importFirstAdminFederationProviderFromFile(file) {
|
|
139
|
+
let outcome = false;
|
|
140
|
+
debugMessage(`cli.AdminFederationOps.importFirstAdminFederationProviderFromFile: begin`);
|
|
141
|
+
showSpinner(`Importing first provider from ${file}...`);
|
|
142
|
+
try {
|
|
143
|
+
const data = fs.readFileSync(file, 'utf8');
|
|
144
|
+
const fileData = JSON.parse(data);
|
|
145
|
+
await importFirstAdminFederationProvider(fileData);
|
|
146
|
+
succeedSpinner(`Successfully imported first provider from ${file}.`);
|
|
147
|
+
outcome = true;
|
|
148
|
+
} catch (error) {
|
|
149
|
+
var _error$response4;
|
|
150
|
+
failSpinner(`Error importing first provider from ${file}.`);
|
|
151
|
+
printMessage(((_error$response4 = error.response) === null || _error$response4 === void 0 ? void 0 : _error$response4.data) || error, 'error');
|
|
152
|
+
}
|
|
153
|
+
debugMessage(`cli.AdminFederationOps.importFirstAdminFederationProviderFromFile: end`);
|
|
154
|
+
return outcome;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Import all providers from file
|
|
159
|
+
* @param {string} file import file name
|
|
160
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
161
|
+
*/
|
|
162
|
+
export async function importAdminFederationProvidersFromFile(file) {
|
|
163
|
+
let outcome = false;
|
|
164
|
+
debugMessage(`cli.AdminFederationOps.importAdminFederationProvidersFromFile: begin`);
|
|
165
|
+
showSpinner(`Importing providers from ${file}...`);
|
|
166
|
+
try {
|
|
167
|
+
const data = fs.readFileSync(file, 'utf8');
|
|
168
|
+
const fileData = JSON.parse(data);
|
|
169
|
+
await importAdminFederationProviders(fileData);
|
|
170
|
+
succeedSpinner(`Imported providers from ${file}.`);
|
|
171
|
+
outcome = true;
|
|
172
|
+
} catch (error) {
|
|
173
|
+
var _error$response5;
|
|
174
|
+
failSpinner(`Error importing ${file}.`);
|
|
175
|
+
printMessage(((_error$response5 = error.response) === null || _error$response5 === void 0 ? void 0 : _error$response5.data) || error, 'error');
|
|
176
|
+
}
|
|
177
|
+
debugMessage(`cli.AdminFederationOps.importAdminFederationProvidersFromFile: end`);
|
|
178
|
+
return outcome;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Import providers from *.idp.json files in current working directory
|
|
183
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
184
|
+
*/
|
|
185
|
+
export async function importAdminFederationProvidersFromFiles() {
|
|
186
|
+
const errors = [];
|
|
187
|
+
try {
|
|
188
|
+
debugMessage(`cli.AdminFederationOps.importAdminFederationProvidersFromFiles: begin`);
|
|
189
|
+
const names = fs.readdirSync('.');
|
|
190
|
+
const files = names.filter(name => name.toLowerCase().endsWith('.admin.federation.json'));
|
|
191
|
+
createProgressBar(files.length, 'Importing providers...');
|
|
192
|
+
let total = 0;
|
|
193
|
+
for (const file of files) {
|
|
194
|
+
try {
|
|
195
|
+
const data = fs.readFileSync(file, 'utf8');
|
|
196
|
+
const fileData = JSON.parse(data);
|
|
197
|
+
const count = Object.keys(fileData.idp).length;
|
|
198
|
+
total += count;
|
|
199
|
+
await importAdminFederationProviders(fileData);
|
|
200
|
+
updateProgressBar(`Imported ${count} provider(s) from ${file}`);
|
|
201
|
+
} catch (error) {
|
|
202
|
+
errors.push(error);
|
|
203
|
+
updateProgressBar(`Error importing provider(s) from ${file}`);
|
|
204
|
+
printMessage(error, 'error');
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
stopProgressBar(`Finished importing ${total} provider(s) from ${files.length} file(s).`);
|
|
208
|
+
} catch (error) {
|
|
209
|
+
errors.push(error);
|
|
210
|
+
stopProgressBar(`Error importing provider(s) from file(s).`);
|
|
211
|
+
printMessage(error, 'error');
|
|
212
|
+
}
|
|
213
|
+
debugMessage(`cli.AdminFederationOps.importAdminFederationProvidersFromFiles: end`);
|
|
214
|
+
return 0 === errors.length;
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=AdminFederationOps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminFederationOps.js","names":["frodo","fs","createProgressBar","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","getAdminFederationProviders","exportAdminFederationProvider","exportAdminFederationProviders","importAdminFederationProvider","importAdminFederationProviders","importFirstAdminFederationProvider","cloud","adminFed","listAdminFederationProviders","outcome","providers","sort","a","b","_id","localeCompare","forEach","socialIdentityProvider","err","message","exportAdminFederationProviderToFile","providerId","file","fileName","fileData","exportAdminFederationProvidersToFile","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","total","count","Object","keys","idp","push"],"sources":["ops/AdminFederationOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport {\n createProgressBar,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport { getTypedFilename, saveJsonToFile } from '../utils/ExportImportUtils';\n\nconst {\n getAdminFederationProviders,\n exportAdminFederationProvider,\n exportAdminFederationProviders,\n importAdminFederationProvider,\n importAdminFederationProviders,\n importFirstAdminFederationProvider,\n} = frodo.cloud.adminFed;\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 getAdminFederationProviders();\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 createProgressBar(1, `Exporting ${providerId}`);\n try {\n updateProgressBar(`Writing file ${fileName}`);\n const fileData = await exportAdminFederationProvider(providerId);\n saveJsonToFile(fileData, fileName);\n stopProgressBar(\n `Exported ${providerId['brightCyan']} to ${fileName['brightCyan']}.`\n );\n outcome = true;\n } catch (err) {\n stopProgressBar(`${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 showSpinner(`Exporting all providers...`);\n try {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(`allProviders`, 'admin.federation');\n }\n const fileData = await exportAdminFederationProviders();\n saveJsonToFile(fileData, fileName);\n succeedSpinner(`Exported all providers to ${fileName}`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting all providers.`);\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 try {\n const allIdpsData = await getAdminFederationProviders();\n createProgressBar(allIdpsData.length, 'Exporting providers');\n for (const idpData of allIdpsData) {\n updateProgressBar(`Writing provider ${idpData._id}`);\n const fileName = getTypedFilename(idpData._id, 'admin.federation');\n const fileData = await exportAdminFederationProvider(idpData._id);\n saveJsonToFile(fileData, fileName);\n }\n stopProgressBar(`${allIdpsData.length} providers exported.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting all providers.`);\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 showSpinner(`Importing provider ${providerId} from ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importAdminFederationProvider(providerId, fileData);\n succeedSpinner(\n `Successfully imported provider ${providerId} from ${file}.`\n );\n outcome = true;\n } catch (error) {\n failSpinner(`Error importing provider ${providerId} from ${file}.`);\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 showSpinner(`Importing first provider from ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstAdminFederationProvider(fileData);\n succeedSpinner(`Successfully imported first provider from ${file}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error importing first provider from ${file}.`);\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 showSpinner(`Importing providers from ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await importAdminFederationProviders(fileData);\n succeedSpinner(`Imported providers from ${file}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\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 try {\n debugMessage(\n `cli.AdminFederationOps.importAdminFederationProvidersFromFiles: begin`\n );\n const names = fs.readdirSync('.');\n const files = names.filter((name) =>\n name.toLowerCase().endsWith('.admin.federation.json')\n );\n createProgressBar(files.length, 'Importing providers...');\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 updateProgressBar(`Imported ${count} provider(s) from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing provider(s) from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} provider(s) from ${files.length} file(s).`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing provider(s) from file(s).`);\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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"}
|