@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceOps.js","names":["frodo","state","fs","printMessage","createTable","debugMessage","showSpinner","succeedSpinner","failSpinner","listServices","long","globalConfig","services","service","getListOfServices","sort","a","b","_id","localeCompare","table","push","name","toString","error","stack","exportServicesToFile","file","exportData","exportServices","fileName","utils","impex","getTypedFilename","titleCase","helper","getRealmName","getRealm","saveJsonToFile","exportServiceToFile","serviceId","exportService","exportServicesToFiles","getFullServices","_type","createServiceExportTemplate","importServiceFromFile","clean","verbose","getVerbose","readFile","err","data","importData","JSON","parse","importService","importError","_importError$response","_importError$response2","_importError$response3","_importError$response4","message","response","detail","importFirstServiceFromFile","Object","keys","length","_importError$response5","_importError$response6","_importError$response7","_importError$response8","importServicesFromFile","importServices","status","importServicesFromFiles","names","readdirSync","getWorkingDirectory","agentFiles","filter","toLowerCase","endsWith","deleteService","deleteFullService","_error$response","_error$response$data","deleteServices","deleteFullServices"],"sources":["ops/ServiceOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport {\n printMessage,\n createTable,\n debugMessage,\n showSpinner,\n succeedSpinner,\n failSpinner,\n} from '../utils/Console';\nimport type { ServiceExportInterface } from '@rockcarver/frodo-lib/types/ops/OpsTypes';\n\n/**\n * List services\n */\nexport async function listServices(long = false, globalConfig = false) {\n try {\n const services = await frodo.service.getListOfServices(globalConfig);\n services.sort((a, b) => a._id.localeCompare(b._id));\n if (long) {\n const table = createTable(['Service Id', 'Service Name']);\n for (const service of services) {\n table.push([service._id, service.name]);\n }\n printMessage(table.toString(), 'data');\n } else {\n for (const service of services) {\n printMessage(`${service._id}`, 'data');\n }\n }\n } catch (error) {\n printMessage(`Error listing agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * Export all services to file\n * @param {string} file file name\n */\nexport async function exportServicesToFile(file, globalConfig = false) {\n const exportData = await frodo.service.exportServices(globalConfig);\n let fileName = frodo.utils.impex.getTypedFilename(\n `all${frodo.utils.impex.titleCase(\n frodo.helper.utils.getRealmName(state.getRealm())\n )}Services`,\n `service`\n );\n if (file) {\n fileName = file;\n }\n frodo.utils.impex.saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export service to file\n * @param {string} serviceId service id\n * @param {string} file file name\n */\nexport async function exportServiceToFile(\n serviceId: string,\n file: string,\n globalConfig = false\n) {\n const exportData = await frodo.service.exportService(serviceId, globalConfig);\n let fileName = frodo.utils.impex.getTypedFilename(serviceId, `service`);\n if (file) {\n fileName = file;\n }\n frodo.utils.impex.saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export all services to separate files\n */\nexport async function exportServicesToFiles(globalConfig = false) {\n debugMessage(`cli.ServiceOps.exportServicesToFiles: start`);\n const services = await frodo.service.getFullServices(globalConfig);\n for (const service of services) {\n const fileName = frodo.utils.impex.getTypedFilename(\n service._type._id,\n `service`\n );\n const exportData = frodo.service.createServiceExportTemplate();\n exportData.service[service._type._id] = service;\n debugMessage(\n `cli.ServiceOps.exportServicesToFiles: exporting ${service._type._id} to ${fileName}`\n );\n frodo.utils.impex.saveJsonToFile(exportData, fileName);\n }\n debugMessage(`cli.ServiceOps.exportServicesToFiles: end.`);\n}\n\n/**\n * Import a service from file\n * @param {string} serviceId service id/name\n * @param {string} file import file name\n * @param {boolean} clean remove existing service\n */\nexport async function importServiceFromFile(\n serviceId: string,\n file: string,\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(\n `cli.ServiceOps.importServiceFromFile: start [serviceId=${serviceId}, file=${file}]`\n );\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (importData && importData.service[serviceId]) {\n if (!verbose) showSpinner(`Importing ${serviceId}...`);\n try {\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n await frodo.service.importService(\n serviceId,\n importData,\n clean,\n globalConfig\n );\n succeedSpinner(`Imported ${serviceId}.`);\n } catch (importError) {\n const message = importError.response?.data?.message;\n const detail = importError.response?.data?.detail;\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n failSpinner(`${detail ? message + ' - ' + detail : message}`);\n }\n } else {\n showSpinner(`Importing ${serviceId}...`);\n failSpinner(`${serviceId} not found!`);\n }\n });\n debugMessage(\n `cli.ServiceOps.importServiceFromFile: end [serviceId=${serviceId}, file=${file}]`\n );\n}\n\n/**\n * Import first service from file\n * @param {string} file import file name\n * @param {boolean} clean remove existing service\n */\nexport async function importFirstServiceFromFile(\n file: string,\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(\n `cli.ServiceOps.importFirstServiceFromFile: start [file=${file}]`\n );\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (importData && Object.keys(importData.service).length) {\n const serviceId = Object.keys(importData.service)[0];\n if (!verbose) showSpinner(`Importing ${serviceId}...`);\n try {\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n await frodo.service.importService(\n serviceId,\n importData,\n clean,\n globalConfig\n );\n succeedSpinner(`Imported ${serviceId}.`);\n } catch (importError) {\n const message = importError.response?.data?.message;\n const detail = importError.response?.data?.detail;\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n failSpinner(`${detail ? message + ' - ' + detail : message}`);\n }\n } else {\n showSpinner(`Importing service...`);\n failSpinner(`No service found in ${file}!`);\n }\n debugMessage(\n `cli.ServiceOps.importFirstServiceFromFile: end [file=${file}]`\n );\n });\n}\n\n/**\n * Import services from file\n * @param {String} file file name\n * @param {boolean} clean remove existing service\n */\nexport async function importServicesFromFile(\n file: string,\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(`cli.ServiceOps.importServiceFromFile: start [file=${file}]`);\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.ServiceOps.importServiceFromFile: importing ${file}`);\n const importData = JSON.parse(data) as ServiceExportInterface;\n try {\n await frodo.service.importServices(importData, clean, globalConfig);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.ServiceOps.importServiceFromFile: end [file=${file}]`);\n });\n}\n\n/**\n * Import all services from separate files\n * @param {boolean} clean remove existing service\n */\nexport async function importServicesFromFiles(\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(`cli.ServiceOps.importServicesFromFiles: start`);\n const names = fs.readdirSync(frodo.utils.impex.getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.service.json')\n );\n for (const file of agentFiles) {\n await importServicesFromFile(file, clean, globalConfig);\n }\n debugMessage(`cli.ServiceOps.importServicesFromFiles: end`);\n}\n\n/**\n * Delete a service by id/name\n * @param {string} serviceId Reference to the service to delete\n */\nexport async function deleteService(serviceId: string, globalConfig = false) {\n try {\n await frodo.service.deleteFullService(serviceId, globalConfig);\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Delete service '${serviceId}': ${message}`, 'error');\n }\n}\n\n/**\n * Delete all services\n */\nexport async function deleteServices(globalConfig = false) {\n await frodo.service.deleteFullServices(globalConfig);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ServiceOps.js","names":["frodo","state","fs","printMessage","createTable","debugMessage","showSpinner","succeedSpinner","failSpinner","getRealmName","helper","utils","getTypedFilename","titleCase","saveJsonToFile","getWorkingDirectory","impex","getListOfServices","exportServices","exportService","getFullServices","createServiceExportTemplate","importService","importServices","deleteFullService","deleteFullServices","service","listServices","long","globalConfig","services","sort","a","b","_id","localeCompare","table","push","name","toString","error","stack","exportServicesToFile","file","exportData","fileName","getRealm","exportServiceToFile","serviceId","exportServicesToFiles","_type","importServiceFromFile","clean","verbose","getVerbose","readFile","err","data","importData","JSON","parse","importError","_importError$response","_importError$response2","_importError$response3","_importError$response4","message","response","detail","importFirstServiceFromFile","Object","keys","length","_importError$response5","_importError$response6","_importError$response7","_importError$response8","importServicesFromFile","status","importServicesFromFiles","names","readdirSync","agentFiles","filter","toLowerCase","endsWith","deleteService","_error$response","_error$response$data","deleteServices"],"sources":["ops/ServiceOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport {\n printMessage,\n createTable,\n debugMessage,\n showSpinner,\n succeedSpinner,\n failSpinner,\n} from '../utils/Console';\nimport type { ServiceExportInterface } from '@rockcarver/frodo-lib/types/ops/OpsTypes';\n\nconst { getRealmName } = frodo.helper.utils;\nconst { getTypedFilename, titleCase, saveJsonToFile, getWorkingDirectory } =\n frodo.utils.impex;\nconst {\n getListOfServices,\n exportServices,\n exportService,\n getFullServices,\n createServiceExportTemplate,\n importService,\n importServices,\n deleteFullService,\n deleteFullServices,\n} = frodo.service;\n\n/**\n * List services\n */\nexport async function listServices(long = false, globalConfig = false) {\n try {\n const services = await getListOfServices(globalConfig);\n services.sort((a, b) => a._id.localeCompare(b._id));\n if (long) {\n const table = createTable(['Service Id', 'Service Name']);\n for (const service of services) {\n table.push([service._id, service.name]);\n }\n printMessage(table.toString(), 'data');\n } else {\n for (const service of services) {\n printMessage(`${service._id}`, 'data');\n }\n }\n } catch (error) {\n printMessage(`Error listing agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * Export all services to file\n * @param {string} file file name\n */\nexport async function exportServicesToFile(file, globalConfig = false) {\n const exportData = await exportServices(globalConfig);\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Services`,\n `service`\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export service to file\n * @param {string} serviceId service id\n * @param {string} file file name\n */\nexport async function exportServiceToFile(\n serviceId: string,\n file: string,\n globalConfig = false\n) {\n const exportData = await exportService(serviceId, globalConfig);\n let fileName = getTypedFilename(serviceId, `service`);\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export all services to separate files\n */\nexport async function exportServicesToFiles(globalConfig = false) {\n debugMessage(`cli.ServiceOps.exportServicesToFiles: start`);\n const services = await getFullServices(globalConfig);\n for (const service of services) {\n const fileName = getTypedFilename(service._type._id, `service`);\n const exportData = createServiceExportTemplate();\n exportData.service[service._type._id] = service;\n debugMessage(\n `cli.ServiceOps.exportServicesToFiles: exporting ${service._type._id} to ${fileName}`\n );\n saveJsonToFile(exportData, fileName);\n }\n debugMessage(`cli.ServiceOps.exportServicesToFiles: end.`);\n}\n\n/**\n * Import a service from file\n * @param {string} serviceId service id/name\n * @param {string} file import file name\n * @param {boolean} clean remove existing service\n */\nexport async function importServiceFromFile(\n serviceId: string,\n file: string,\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(\n `cli.ServiceOps.importServiceFromFile: start [serviceId=${serviceId}, file=${file}]`\n );\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (importData && importData.service[serviceId]) {\n if (!verbose) showSpinner(`Importing ${serviceId}...`);\n try {\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n await importService(serviceId, importData, clean, globalConfig);\n succeedSpinner(`Imported ${serviceId}.`);\n } catch (importError) {\n const message = importError.response?.data?.message;\n const detail = importError.response?.data?.detail;\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n failSpinner(`${detail ? message + ' - ' + detail : message}`);\n }\n } else {\n showSpinner(`Importing ${serviceId}...`);\n failSpinner(`${serviceId} not found!`);\n }\n });\n debugMessage(\n `cli.ServiceOps.importServiceFromFile: end [serviceId=${serviceId}, file=${file}]`\n );\n}\n\n/**\n * Import first service from file\n * @param {string} file import file name\n * @param {boolean} clean remove existing service\n */\nexport async function importFirstServiceFromFile(\n file: string,\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(\n `cli.ServiceOps.importFirstServiceFromFile: start [file=${file}]`\n );\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (importData && Object.keys(importData.service).length) {\n const serviceId = Object.keys(importData.service)[0];\n if (!verbose) showSpinner(`Importing ${serviceId}...`);\n try {\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n await importService(serviceId, importData, clean, globalConfig);\n succeedSpinner(`Imported ${serviceId}.`);\n } catch (importError) {\n const message = importError.response?.data?.message;\n const detail = importError.response?.data?.detail;\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n failSpinner(`${detail ? message + ' - ' + detail : message}`);\n }\n } else {\n showSpinner(`Importing service...`);\n failSpinner(`No service found in ${file}!`);\n }\n debugMessage(\n `cli.ServiceOps.importFirstServiceFromFile: end [file=${file}]`\n );\n });\n}\n\n/**\n * Import services from file\n * @param {String} file file name\n * @param {boolean} clean remove existing service\n */\nexport async function importServicesFromFile(\n file: string,\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(`cli.ServiceOps.importServiceFromFile: start [file=${file}]`);\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.ServiceOps.importServiceFromFile: importing ${file}`);\n const importData = JSON.parse(data) as ServiceExportInterface;\n try {\n await importServices(importData, clean, globalConfig);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.ServiceOps.importServiceFromFile: end [file=${file}]`);\n });\n}\n\n/**\n * Import all services from separate files\n * @param {boolean} clean remove existing service\n */\nexport async function importServicesFromFiles(\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(`cli.ServiceOps.importServicesFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.service.json')\n );\n for (const file of agentFiles) {\n await importServicesFromFile(file, clean, globalConfig);\n }\n debugMessage(`cli.ServiceOps.importServicesFromFiles: end`);\n}\n\n/**\n * Delete a service by id/name\n * @param {string} serviceId Reference to the service to delete\n */\nexport async function deleteService(serviceId: string, globalConfig = false) {\n try {\n await deleteFullService(serviceId, globalConfig);\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Delete service '${serviceId}': ${message}`, 'error');\n }\n}\n\n/**\n * Delete all services\n */\nexport async function deleteServices(globalConfig = false) {\n await deleteFullServices(globalConfig);\n}\n"],"mappings":"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"}
|
package/esm/ops/ThemeOps.js
CHANGED
|
@@ -2,6 +2,22 @@ import { frodo } from '@rockcarver/frodo-lib';
|
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import { printMessage, createTable, createProgressIndicator, updateProgressIndicator, stopProgressIndicator } from '../utils/Console';
|
|
4
4
|
import { saveToFile, getTypedFilename } from '../utils/ExportImportUtils';
|
|
5
|
+
const {
|
|
6
|
+
getRealmString,
|
|
7
|
+
validateImport
|
|
8
|
+
} = frodo.utils.impex;
|
|
9
|
+
const {
|
|
10
|
+
getThemes,
|
|
11
|
+
getThemeByName,
|
|
12
|
+
getTheme,
|
|
13
|
+
putThemeByName,
|
|
14
|
+
putTheme,
|
|
15
|
+
putThemes,
|
|
16
|
+
deleteTheme,
|
|
17
|
+
deleteThemeByName,
|
|
18
|
+
deleteThemes
|
|
19
|
+
} = frodo.theme;
|
|
20
|
+
|
|
5
21
|
/**
|
|
6
22
|
* Get a one-line description of the theme
|
|
7
23
|
* @param {ThemeSkeleton} themeObj theme object to describe
|
|
@@ -38,7 +54,7 @@ export function getTableRowMd(themeObj) {
|
|
|
38
54
|
* @param {boolean} long Long version, more fields
|
|
39
55
|
*/
|
|
40
56
|
export async function listThemes(long = false) {
|
|
41
|
-
const themeList = await
|
|
57
|
+
const themeList = await getThemes();
|
|
42
58
|
themeList.sort((a, b) => a.name.localeCompare(b.name));
|
|
43
59
|
if (!long) {
|
|
44
60
|
themeList.forEach(theme => {
|
|
@@ -65,7 +81,7 @@ export async function exportThemeByName(name, file) {
|
|
|
65
81
|
}
|
|
66
82
|
createProgressIndicator('determinate', 1, `Exporting ${name}`);
|
|
67
83
|
try {
|
|
68
|
-
const themeData = await
|
|
84
|
+
const themeData = await getThemeByName(name);
|
|
69
85
|
updateProgressIndicator(`Writing file ${fileName}`);
|
|
70
86
|
saveToFile('theme', [themeData], '_id', fileName);
|
|
71
87
|
stopProgressIndicator(`Successfully exported theme ${name}.`);
|
|
@@ -87,7 +103,7 @@ export async function exportThemeById(id, file) {
|
|
|
87
103
|
}
|
|
88
104
|
createProgressIndicator('determinate', 1, `Exporting ${id}`);
|
|
89
105
|
try {
|
|
90
|
-
const themeData = await
|
|
106
|
+
const themeData = await getTheme(id);
|
|
91
107
|
updateProgressIndicator(`Writing file ${fileName}`);
|
|
92
108
|
saveToFile('theme', [themeData], '_id', fileName);
|
|
93
109
|
stopProgressIndicator(`Successfully exported theme ${id}.`);
|
|
@@ -102,11 +118,11 @@ export async function exportThemeById(id, file) {
|
|
|
102
118
|
* @param {String} file optional export file name
|
|
103
119
|
*/
|
|
104
120
|
export async function exportThemesToFile(file) {
|
|
105
|
-
let fileName = getTypedFilename(`all${
|
|
121
|
+
let fileName = getTypedFilename(`all${getRealmString()}Themes`, 'theme');
|
|
106
122
|
if (file) {
|
|
107
123
|
fileName = file;
|
|
108
124
|
}
|
|
109
|
-
const allThemesData = await
|
|
125
|
+
const allThemesData = await getThemes();
|
|
110
126
|
createProgressIndicator('determinate', allThemesData.length, 'Exporting themes');
|
|
111
127
|
for (const themeData of allThemesData) {
|
|
112
128
|
updateProgressIndicator(`Exporting theme ${themeData.name}`);
|
|
@@ -119,7 +135,7 @@ export async function exportThemesToFile(file) {
|
|
|
119
135
|
* Export all themes to separate files
|
|
120
136
|
*/
|
|
121
137
|
export async function exportThemesToFiles() {
|
|
122
|
-
const allThemesData = await
|
|
138
|
+
const allThemesData = await getThemes();
|
|
123
139
|
createProgressIndicator('determinate', allThemesData.length, 'Exporting themes');
|
|
124
140
|
for (const themeData of allThemesData) {
|
|
125
141
|
updateProgressIndicator(`Writing theme ${themeData.name}`);
|
|
@@ -138,7 +154,7 @@ export async function importThemeByName(name, file) {
|
|
|
138
154
|
fs.readFile(file, 'utf8', async (err, data) => {
|
|
139
155
|
if (err) throw err;
|
|
140
156
|
const themeData = JSON.parse(data);
|
|
141
|
-
if (
|
|
157
|
+
if (validateImport(themeData.meta)) {
|
|
142
158
|
createProgressIndicator('determinate', 1, 'Importing theme...');
|
|
143
159
|
let found = false;
|
|
144
160
|
for (const id in themeData.theme) {
|
|
@@ -147,7 +163,7 @@ export async function importThemeByName(name, file) {
|
|
|
147
163
|
found = true;
|
|
148
164
|
updateProgressIndicator(`Importing ${themeData.theme[id].name}`);
|
|
149
165
|
try {
|
|
150
|
-
await
|
|
166
|
+
await putThemeByName(name, themeData.theme[id]);
|
|
151
167
|
stopProgressIndicator(`Successfully imported theme ${name}.`);
|
|
152
168
|
} catch (error) {
|
|
153
169
|
stopProgressIndicator(`Error importing theme ${themeData.theme[id].name}: ${error.message}`);
|
|
@@ -175,7 +191,7 @@ export async function importThemeById(id, file) {
|
|
|
175
191
|
fs.readFile(file, 'utf8', async (err, data) => {
|
|
176
192
|
if (err) throw err;
|
|
177
193
|
const themeData = JSON.parse(data);
|
|
178
|
-
if (
|
|
194
|
+
if (validateImport(themeData.meta)) {
|
|
179
195
|
createProgressIndicator('determinate', 1, 'Importing theme...');
|
|
180
196
|
let found = false;
|
|
181
197
|
for (const themeId in themeData.theme) {
|
|
@@ -184,7 +200,7 @@ export async function importThemeById(id, file) {
|
|
|
184
200
|
found = true;
|
|
185
201
|
updateProgressIndicator(`Importing ${themeData.theme[themeId]._id}`);
|
|
186
202
|
try {
|
|
187
|
-
await
|
|
203
|
+
await putTheme(themeId, themeData.theme[themeId]);
|
|
188
204
|
stopProgressIndicator(`Successfully imported theme ${id}.`);
|
|
189
205
|
} catch (error) {
|
|
190
206
|
stopProgressIndicator(`Error importing theme ${themeData.theme[themeId]._id}: ${error.message}`);
|
|
@@ -211,14 +227,14 @@ export async function importThemesFromFile(file) {
|
|
|
211
227
|
fs.readFile(file, 'utf8', (err, data) => {
|
|
212
228
|
if (err) throw err;
|
|
213
229
|
const fileData = JSON.parse(data);
|
|
214
|
-
if (
|
|
230
|
+
if (validateImport(fileData.meta)) {
|
|
215
231
|
createProgressIndicator('determinate', Object.keys(fileData.theme).length, 'Importing themes...');
|
|
216
232
|
for (const id in fileData.theme) {
|
|
217
233
|
if ({}.hasOwnProperty.call(fileData.theme, id)) {
|
|
218
234
|
updateProgressIndicator(`Importing ${fileData.theme[id].name}`);
|
|
219
235
|
}
|
|
220
236
|
}
|
|
221
|
-
|
|
237
|
+
putThemes(fileData.theme).then(result => {
|
|
222
238
|
if (result == null) {
|
|
223
239
|
stopProgressIndicator(`Error importing ${Object.keys(fileData.theme).length} themes!`);
|
|
224
240
|
printMessage(`Error importing ${Object.keys(fileData.theme).length} themes from ${file}`, 'error');
|
|
@@ -246,10 +262,10 @@ export async function importThemesFromFiles() {
|
|
|
246
262
|
for (const file of jsonFiles) {
|
|
247
263
|
const data = fs.readFileSync(file, 'utf8');
|
|
248
264
|
fileData = JSON.parse(data);
|
|
249
|
-
if (
|
|
265
|
+
if (validateImport(fileData.meta)) {
|
|
250
266
|
count = Object.keys(fileData.theme).length;
|
|
251
267
|
// eslint-disable-next-line no-await-in-loop
|
|
252
|
-
const result = await
|
|
268
|
+
const result = await putThemes(fileData.theme);
|
|
253
269
|
if (result == null) {
|
|
254
270
|
printMessage(`Error importing ${count} themes from ${file}`, 'error');
|
|
255
271
|
} else {
|
|
@@ -272,12 +288,12 @@ export async function importFirstThemeFromFile(file) {
|
|
|
272
288
|
fs.readFile(file, 'utf8', (err, data) => {
|
|
273
289
|
if (err) throw err;
|
|
274
290
|
const themeData = JSON.parse(data);
|
|
275
|
-
if (
|
|
291
|
+
if (validateImport(themeData.meta)) {
|
|
276
292
|
createProgressIndicator('determinate', 1, 'Importing theme...');
|
|
277
293
|
for (const id in themeData.theme) {
|
|
278
294
|
if ({}.hasOwnProperty.call(themeData.theme, id)) {
|
|
279
295
|
updateProgressIndicator(`Importing ${themeData.theme[id].name}`);
|
|
280
|
-
|
|
296
|
+
putTheme(id, themeData.theme[id]).then(result => {
|
|
281
297
|
if (result == null) {
|
|
282
298
|
stopProgressIndicator(`Error importing theme ${themeData.theme[id].name}`);
|
|
283
299
|
printMessage(`Error importing theme ${themeData.theme[id].name}`, 'error');
|
|
@@ -301,7 +317,7 @@ export async function importFirstThemeFromFile(file) {
|
|
|
301
317
|
export async function deleteThemeCmd(id) {
|
|
302
318
|
createProgressIndicator('indeterminate', undefined, `Deleting ${id}...`);
|
|
303
319
|
try {
|
|
304
|
-
await
|
|
320
|
+
await deleteTheme(id);
|
|
305
321
|
stopProgressIndicator(`Deleted ${id}.`, 'success');
|
|
306
322
|
} catch (error) {
|
|
307
323
|
stopProgressIndicator(`Error: ${error.message}`, 'fail');
|
|
@@ -315,7 +331,7 @@ export async function deleteThemeCmd(id) {
|
|
|
315
331
|
export async function deleteThemeByNameCmd(name) {
|
|
316
332
|
createProgressIndicator('indeterminate', undefined, `Deleting ${name}...`);
|
|
317
333
|
try {
|
|
318
|
-
await
|
|
334
|
+
await deleteThemeByName(name);
|
|
319
335
|
stopProgressIndicator(`Deleted ${name}.`, 'success');
|
|
320
336
|
} catch (error) {
|
|
321
337
|
stopProgressIndicator(`Error: ${error.message}`, 'fail');
|
|
@@ -328,7 +344,7 @@ export async function deleteThemeByNameCmd(name) {
|
|
|
328
344
|
export async function deleteAllThemes() {
|
|
329
345
|
createProgressIndicator('indeterminate', undefined, `Deleting all realm themes...`);
|
|
330
346
|
try {
|
|
331
|
-
await
|
|
347
|
+
await deleteThemes();
|
|
332
348
|
stopProgressIndicator(`Deleted all realm themes.`, 'success');
|
|
333
349
|
} catch (error) {
|
|
334
350
|
stopProgressIndicator(`Error: ${error.message}`, 'fail');
|
package/esm/ops/ThemeOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeOps.js","names":["frodo","fs","printMessage","createTable","createProgressIndicator","updateProgressIndicator","stopProgressIndicator","saveToFile","getTypedFilename","getOneLineDescription","themeObj","description","_id","name","linkedTrees","join","getTableHeaderMd","markdown","getTableRowMd","row","listThemes","long","themeList","theme","getThemes","sort","a","b","localeCompare","forEach","isDefault","table","push","toString","exportThemeByName","file","fileName","themeData","getThemeByName","error","message","exportThemeById","id","getTheme","exportThemesToFile","utils","impex","getRealmString","allThemesData","length","exportThemesToFiles","importThemeByName","readFile","err","data","JSON","parse","validateImport","meta","found","hasOwnProperty","call","putThemeByName","importThemeById","themeId","putTheme","importThemesFromFile","fileData","Object","keys","putThemes","then","result","importThemesFromFiles","names","readdirSync","jsonFiles","filter","toLowerCase","endsWith","count","total","files","readFileSync","importFirstThemeFromFile","deleteThemeCmd","undefined","deleteTheme","deleteThemeByNameCmd","deleteThemeByName","deleteAllThemes","deleteThemes","deleteThemesCmd"],"sources":["ops/ThemeOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport type { ThemeSkeleton } from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport {\n printMessage,\n createTable,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from '../utils/Console';\nimport { saveToFile, getTypedFilename } from '../utils/ExportImportUtils';\n/**\n * Get a one-line description of the theme\n * @param {ThemeSkeleton} themeObj theme object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(themeObj: ThemeSkeleton): string {\n const description = `[${themeObj._id['brightCyan']}] ${themeObj.name}${\n themeObj.linkedTrees\n ? ' (' + themeObj.linkedTrees.join(', ')['brightCyan'] + ')'\n : ''\n }`;\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 | Linked Journey(s) | Id |\\n';\n markdown += '| ---- | ----------------- | ---|';\n return markdown;\n}\n\n/**\n * Get a table-row of the theme in markdown\n * @param {ThemeSkeleton} themeObj theme object to describe\n * @returns {string} a table-row of the theme in markdown\n */\nexport function getTableRowMd(themeObj: ThemeSkeleton): string {\n const row = `| ${themeObj.name} | ${\n themeObj.linkedTrees ? themeObj.linkedTrees.join(', ') : ''\n } | \\`${themeObj._id}\\` |`;\n return row;\n}\n\n/**\n * List all the themes\n * @param {boolean} long Long version, more fields\n */\nexport async function listThemes(long = false) {\n const themeList = await frodo.theme.getThemes();\n themeList.sort((a, b) => a.name.localeCompare(b.name));\n if (!long) {\n themeList.forEach((theme) => {\n printMessage(\n `${theme.isDefault ? theme.name['brightCyan'] : theme.name}`,\n 'data'\n );\n });\n } else {\n const table = createTable([\n 'Name'['brightCyan'],\n 'Id'['brightCyan'],\n 'Default'['brightCyan'],\n ]);\n themeList.forEach((theme) => {\n table.push([\n `${theme.name}`,\n `${theme._id}`,\n `${theme.isDefault ? 'Yes'['brightGreen'] : ''}`,\n ]);\n });\n printMessage(table.toString(), 'data');\n }\n}\n\n/**\n * Export theme by name to file\n * @param {String} name theme name\n * @param {String} file optional export file name\n */\nexport async function exportThemeByName(name, file) {\n let fileName = getTypedFilename(name, 'theme');\n if (file) {\n fileName = file;\n }\n createProgressIndicator('determinate', 1, `Exporting ${name}`);\n try {\n const themeData = await frodo.theme.getThemeByName(name);\n updateProgressIndicator(`Writing file ${fileName}`);\n saveToFile('theme', [themeData], '_id', fileName);\n stopProgressIndicator(`Successfully exported theme ${name}.`);\n } catch (error) {\n stopProgressIndicator(`${error.message}`);\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Export theme by uuid to file\n * @param {String} id theme uuid\n * @param {String} file optional export file name\n */\nexport async function exportThemeById(id, file) {\n let fileName = getTypedFilename(id, 'theme');\n if (file) {\n fileName = file;\n }\n createProgressIndicator('determinate', 1, `Exporting ${id}`);\n try {\n const themeData = await frodo.theme.getTheme(id);\n updateProgressIndicator(`Writing file ${fileName}`);\n saveToFile('theme', [themeData], '_id', fileName);\n stopProgressIndicator(`Successfully exported theme ${id}.`);\n } catch (error) {\n stopProgressIndicator(`${error.message}`);\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Export all themes to file\n * @param {String} file optional export file name\n */\nexport async function exportThemesToFile(file) {\n let fileName = getTypedFilename(\n `all${frodo.utils.impex.getRealmString()}Themes`,\n 'theme'\n );\n if (file) {\n fileName = file;\n }\n const allThemesData = await frodo.theme.getThemes();\n createProgressIndicator(\n 'determinate',\n allThemesData.length,\n 'Exporting themes'\n );\n for (const themeData of allThemesData) {\n updateProgressIndicator(`Exporting theme ${themeData.name}`);\n }\n saveToFile('theme', allThemesData, '_id', fileName);\n stopProgressIndicator(\n `${allThemesData.length} themes exported to ${fileName}.`\n );\n}\n\n/**\n * Export all themes to separate files\n */\nexport async function exportThemesToFiles() {\n const allThemesData = await frodo.theme.getThemes();\n createProgressIndicator(\n 'determinate',\n allThemesData.length,\n 'Exporting themes'\n );\n for (const themeData of allThemesData) {\n updateProgressIndicator(`Writing theme ${themeData.name}`);\n const fileName = getTypedFilename(themeData.name, 'theme');\n saveToFile('theme', themeData, '_id', fileName);\n }\n stopProgressIndicator(`${allThemesData.length} themes exported.`);\n}\n\n/**\n * Import theme by name from file\n * @param {String} name theme name\n * @param {String} file import file name\n */\nexport async function importThemeByName(name, file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (frodo.utils.impex.validateImport(themeData.meta)) {\n createProgressIndicator('determinate', 1, 'Importing theme...');\n let found = false;\n for (const id in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, id)) {\n if (themeData.theme[id].name === name) {\n found = true;\n updateProgressIndicator(`Importing ${themeData.theme[id].name}`);\n try {\n await frodo.theme.putThemeByName(name, themeData.theme[id]);\n stopProgressIndicator(`Successfully imported theme ${name}.`);\n } catch (error) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[id].name}: ${error.message}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[id].name}: ${error.message}`,\n 'error'\n );\n }\n break;\n }\n }\n }\n if (!found) {\n stopProgressIndicator(`Theme ${name} not found!`);\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import theme by uuid from file\n * @param {String} id theme uuid\n * @param {String} file import file name\n */\nexport async function importThemeById(id, file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (frodo.utils.impex.validateImport(themeData.meta)) {\n createProgressIndicator('determinate', 1, 'Importing theme...');\n let found = false;\n for (const themeId in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, themeId)) {\n if (themeId === id) {\n found = true;\n updateProgressIndicator(\n `Importing ${themeData.theme[themeId]._id}`\n );\n try {\n await frodo.theme.putTheme(themeId, themeData.theme[themeId]);\n stopProgressIndicator(`Successfully imported theme ${id}.`);\n } catch (error) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[themeId]._id}: ${error.message}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[themeId]._id}: ${error.message}`,\n 'error'\n );\n }\n break;\n }\n }\n }\n if (!found) {\n stopProgressIndicator(`Theme ${id} not found!`);\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import all themes from single file\n * @param {String} file import file name\n */\nexport async function importThemesFromFile(file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (frodo.utils.impex.validateImport(fileData.meta)) {\n createProgressIndicator(\n 'determinate',\n Object.keys(fileData.theme).length,\n 'Importing themes...'\n );\n for (const id in fileData.theme) {\n if ({}.hasOwnProperty.call(fileData.theme, id)) {\n updateProgressIndicator(`Importing ${fileData.theme[id].name}`);\n }\n }\n frodo.theme.putThemes(fileData.theme).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing ${Object.keys(fileData.theme).length} themes!`\n );\n printMessage(\n `Error importing ${\n Object.keys(fileData.theme).length\n } themes from ${file}`,\n 'error'\n );\n } else {\n stopProgressIndicator(\n `Successfully imported ${\n Object.keys(fileData.theme).length\n } themes.`\n );\n }\n });\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import themes from separate files\n */\nexport async function importThemesFromFiles() {\n const names = fs.readdirSync('.');\n const jsonFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.theme.json')\n );\n\n createProgressIndicator(\n 'determinate',\n jsonFiles.length,\n 'Importing themes...'\n );\n let fileData = null;\n let count = 0;\n let total = 0;\n let files = 0;\n for (const file of jsonFiles) {\n const data = fs.readFileSync(file, 'utf8');\n fileData = JSON.parse(data);\n if (frodo.utils.impex.validateImport(fileData.meta)) {\n count = Object.keys(fileData.theme).length;\n // eslint-disable-next-line no-await-in-loop\n const result = await frodo.theme.putThemes(fileData.theme);\n if (result == null) {\n printMessage(`Error importing ${count} themes from ${file}`, 'error');\n } else {\n files += 1;\n total += count;\n updateProgressIndicator(`Imported ${count} theme(s) from ${file}`);\n }\n } else {\n printMessage(`Validation of ${file} failed!`, 'error');\n }\n }\n stopProgressIndicator(\n `Finished importing ${total} theme(s) from ${files} file(s).`\n );\n}\n\n/**\n * Import first theme from file\n * @param {String} file import file name\n */\nexport async function importFirstThemeFromFile(file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (frodo.utils.impex.validateImport(themeData.meta)) {\n createProgressIndicator('determinate', 1, 'Importing theme...');\n for (const id in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, id)) {\n updateProgressIndicator(`Importing ${themeData.theme[id].name}`);\n frodo.theme.putTheme(id, themeData.theme[id]).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[id].name}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[id].name}`,\n 'error'\n );\n } else {\n stopProgressIndicator(\n `Successfully imported theme ${themeData.theme[id].name}`\n );\n }\n });\n break;\n }\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Delete theme by id\n * @param {String} id theme id\n */\nexport async function deleteThemeCmd(id) {\n createProgressIndicator('indeterminate', undefined, `Deleting ${id}...`);\n try {\n await frodo.theme.deleteTheme(id);\n stopProgressIndicator(`Deleted ${id}.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete theme by name\n * @param {String} name theme name\n */\nexport async function deleteThemeByNameCmd(name) {\n createProgressIndicator('indeterminate', undefined, `Deleting ${name}...`);\n try {\n await frodo.theme.deleteThemeByName(name);\n stopProgressIndicator(`Deleted ${name}.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete all themes\n */\nexport async function deleteAllThemes() {\n createProgressIndicator(\n 'indeterminate',\n undefined,\n `Deleting all realm themes...`\n );\n try {\n await frodo.theme.deleteThemes();\n stopProgressIndicator(`Deleted all realm themes.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete all themes\n * @deprecated since version 0.14.0\n */\nexport async function deleteThemesCmd() {\n return deleteAllThemes();\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ThemeOps.js","names":["frodo","fs","printMessage","createTable","createProgressIndicator","updateProgressIndicator","stopProgressIndicator","saveToFile","getTypedFilename","getRealmString","validateImport","utils","impex","getThemes","getThemeByName","getTheme","putThemeByName","putTheme","putThemes","deleteTheme","deleteThemeByName","deleteThemes","theme","getOneLineDescription","themeObj","description","_id","name","linkedTrees","join","getTableHeaderMd","markdown","getTableRowMd","row","listThemes","long","themeList","sort","a","b","localeCompare","forEach","isDefault","table","push","toString","exportThemeByName","file","fileName","themeData","error","message","exportThemeById","id","exportThemesToFile","allThemesData","length","exportThemesToFiles","importThemeByName","readFile","err","data","JSON","parse","meta","found","hasOwnProperty","call","importThemeById","themeId","importThemesFromFile","fileData","Object","keys","then","result","importThemesFromFiles","names","readdirSync","jsonFiles","filter","toLowerCase","endsWith","count","total","files","readFileSync","importFirstThemeFromFile","deleteThemeCmd","undefined","deleteThemeByNameCmd","deleteAllThemes","deleteThemesCmd"],"sources":["ops/ThemeOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport type { ThemeSkeleton } from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport {\n printMessage,\n createTable,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from '../utils/Console';\nimport { saveToFile, getTypedFilename } from '../utils/ExportImportUtils';\n\nconst { getRealmString, validateImport } = frodo.utils.impex;\nconst {\n getThemes,\n getThemeByName,\n getTheme,\n putThemeByName,\n putTheme,\n putThemes,\n deleteTheme,\n deleteThemeByName,\n deleteThemes,\n} = frodo.theme;\n\n/**\n * Get a one-line description of the theme\n * @param {ThemeSkeleton} themeObj theme object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(themeObj: ThemeSkeleton): string {\n const description = `[${themeObj._id['brightCyan']}] ${themeObj.name}${\n themeObj.linkedTrees\n ? ' (' + themeObj.linkedTrees.join(', ')['brightCyan'] + ')'\n : ''\n }`;\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 | Linked Journey(s) | Id |\\n';\n markdown += '| ---- | ----------------- | ---|';\n return markdown;\n}\n\n/**\n * Get a table-row of the theme in markdown\n * @param {ThemeSkeleton} themeObj theme object to describe\n * @returns {string} a table-row of the theme in markdown\n */\nexport function getTableRowMd(themeObj: ThemeSkeleton): string {\n const row = `| ${themeObj.name} | ${\n themeObj.linkedTrees ? themeObj.linkedTrees.join(', ') : ''\n } | \\`${themeObj._id}\\` |`;\n return row;\n}\n\n/**\n * List all the themes\n * @param {boolean} long Long version, more fields\n */\nexport async function listThemes(long = false) {\n const themeList = await getThemes();\n themeList.sort((a, b) => a.name.localeCompare(b.name));\n if (!long) {\n themeList.forEach((theme) => {\n printMessage(\n `${theme.isDefault ? theme.name['brightCyan'] : theme.name}`,\n 'data'\n );\n });\n } else {\n const table = createTable([\n 'Name'['brightCyan'],\n 'Id'['brightCyan'],\n 'Default'['brightCyan'],\n ]);\n themeList.forEach((theme) => {\n table.push([\n `${theme.name}`,\n `${theme._id}`,\n `${theme.isDefault ? 'Yes'['brightGreen'] : ''}`,\n ]);\n });\n printMessage(table.toString(), 'data');\n }\n}\n\n/**\n * Export theme by name to file\n * @param {String} name theme name\n * @param {String} file optional export file name\n */\nexport async function exportThemeByName(name, file) {\n let fileName = getTypedFilename(name, 'theme');\n if (file) {\n fileName = file;\n }\n createProgressIndicator('determinate', 1, `Exporting ${name}`);\n try {\n const themeData = await getThemeByName(name);\n updateProgressIndicator(`Writing file ${fileName}`);\n saveToFile('theme', [themeData], '_id', fileName);\n stopProgressIndicator(`Successfully exported theme ${name}.`);\n } catch (error) {\n stopProgressIndicator(`${error.message}`);\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Export theme by uuid to file\n * @param {String} id theme uuid\n * @param {String} file optional export file name\n */\nexport async function exportThemeById(id, file) {\n let fileName = getTypedFilename(id, 'theme');\n if (file) {\n fileName = file;\n }\n createProgressIndicator('determinate', 1, `Exporting ${id}`);\n try {\n const themeData = await getTheme(id);\n updateProgressIndicator(`Writing file ${fileName}`);\n saveToFile('theme', [themeData], '_id', fileName);\n stopProgressIndicator(`Successfully exported theme ${id}.`);\n } catch (error) {\n stopProgressIndicator(`${error.message}`);\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Export all themes to file\n * @param {String} file optional export file name\n */\nexport async function exportThemesToFile(file) {\n let fileName = getTypedFilename(`all${getRealmString()}Themes`, 'theme');\n if (file) {\n fileName = file;\n }\n const allThemesData = await getThemes();\n createProgressIndicator(\n 'determinate',\n allThemesData.length,\n 'Exporting themes'\n );\n for (const themeData of allThemesData) {\n updateProgressIndicator(`Exporting theme ${themeData.name}`);\n }\n saveToFile('theme', allThemesData, '_id', fileName);\n stopProgressIndicator(\n `${allThemesData.length} themes exported to ${fileName}.`\n );\n}\n\n/**\n * Export all themes to separate files\n */\nexport async function exportThemesToFiles() {\n const allThemesData = await getThemes();\n createProgressIndicator(\n 'determinate',\n allThemesData.length,\n 'Exporting themes'\n );\n for (const themeData of allThemesData) {\n updateProgressIndicator(`Writing theme ${themeData.name}`);\n const fileName = getTypedFilename(themeData.name, 'theme');\n saveToFile('theme', themeData, '_id', fileName);\n }\n stopProgressIndicator(`${allThemesData.length} themes exported.`);\n}\n\n/**\n * Import theme by name from file\n * @param {String} name theme name\n * @param {String} file import file name\n */\nexport async function importThemeByName(name, file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (validateImport(themeData.meta)) {\n createProgressIndicator('determinate', 1, 'Importing theme...');\n let found = false;\n for (const id in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, id)) {\n if (themeData.theme[id].name === name) {\n found = true;\n updateProgressIndicator(`Importing ${themeData.theme[id].name}`);\n try {\n await putThemeByName(name, themeData.theme[id]);\n stopProgressIndicator(`Successfully imported theme ${name}.`);\n } catch (error) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[id].name}: ${error.message}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[id].name}: ${error.message}`,\n 'error'\n );\n }\n break;\n }\n }\n }\n if (!found) {\n stopProgressIndicator(`Theme ${name} not found!`);\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import theme by uuid from file\n * @param {String} id theme uuid\n * @param {String} file import file name\n */\nexport async function importThemeById(id, file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (validateImport(themeData.meta)) {\n createProgressIndicator('determinate', 1, 'Importing theme...');\n let found = false;\n for (const themeId in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, themeId)) {\n if (themeId === id) {\n found = true;\n updateProgressIndicator(\n `Importing ${themeData.theme[themeId]._id}`\n );\n try {\n await putTheme(themeId, themeData.theme[themeId]);\n stopProgressIndicator(`Successfully imported theme ${id}.`);\n } catch (error) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[themeId]._id}: ${error.message}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[themeId]._id}: ${error.message}`,\n 'error'\n );\n }\n break;\n }\n }\n }\n if (!found) {\n stopProgressIndicator(`Theme ${id} not found!`);\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import all themes from single file\n * @param {String} file import file name\n */\nexport async function importThemesFromFile(file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n createProgressIndicator(\n 'determinate',\n Object.keys(fileData.theme).length,\n 'Importing themes...'\n );\n for (const id in fileData.theme) {\n if ({}.hasOwnProperty.call(fileData.theme, id)) {\n updateProgressIndicator(`Importing ${fileData.theme[id].name}`);\n }\n }\n putThemes(fileData.theme).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing ${Object.keys(fileData.theme).length} themes!`\n );\n printMessage(\n `Error importing ${\n Object.keys(fileData.theme).length\n } themes from ${file}`,\n 'error'\n );\n } else {\n stopProgressIndicator(\n `Successfully imported ${\n Object.keys(fileData.theme).length\n } themes.`\n );\n }\n });\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import themes from separate files\n */\nexport async function importThemesFromFiles() {\n const names = fs.readdirSync('.');\n const jsonFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.theme.json')\n );\n\n createProgressIndicator(\n 'determinate',\n jsonFiles.length,\n 'Importing themes...'\n );\n let fileData = null;\n let count = 0;\n let total = 0;\n let files = 0;\n for (const file of jsonFiles) {\n const data = fs.readFileSync(file, 'utf8');\n fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n count = Object.keys(fileData.theme).length;\n // eslint-disable-next-line no-await-in-loop\n const result = await putThemes(fileData.theme);\n if (result == null) {\n printMessage(`Error importing ${count} themes from ${file}`, 'error');\n } else {\n files += 1;\n total += count;\n updateProgressIndicator(`Imported ${count} theme(s) from ${file}`);\n }\n } else {\n printMessage(`Validation of ${file} failed!`, 'error');\n }\n }\n stopProgressIndicator(\n `Finished importing ${total} theme(s) from ${files} file(s).`\n );\n}\n\n/**\n * Import first theme from file\n * @param {String} file import file name\n */\nexport async function importFirstThemeFromFile(file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (validateImport(themeData.meta)) {\n createProgressIndicator('determinate', 1, 'Importing theme...');\n for (const id in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, id)) {\n updateProgressIndicator(`Importing ${themeData.theme[id].name}`);\n putTheme(id, themeData.theme[id]).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[id].name}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[id].name}`,\n 'error'\n );\n } else {\n stopProgressIndicator(\n `Successfully imported theme ${themeData.theme[id].name}`\n );\n }\n });\n break;\n }\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Delete theme by id\n * @param {String} id theme id\n */\nexport async function deleteThemeCmd(id) {\n createProgressIndicator('indeterminate', undefined, `Deleting ${id}...`);\n try {\n await deleteTheme(id);\n stopProgressIndicator(`Deleted ${id}.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete theme by name\n * @param {String} name theme name\n */\nexport async function deleteThemeByNameCmd(name) {\n createProgressIndicator('indeterminate', undefined, `Deleting ${name}...`);\n try {\n await deleteThemeByName(name);\n stopProgressIndicator(`Deleted ${name}.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete all themes\n */\nexport async function deleteAllThemes() {\n createProgressIndicator(\n 'indeterminate',\n undefined,\n `Deleting all realm themes...`\n );\n try {\n await deleteThemes();\n stopProgressIndicator(`Deleted all realm themes.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete all themes\n * @deprecated since version 0.14.0\n */\nexport async function deleteThemesCmd() {\n return deleteAllThemes();\n}\n"],"mappings":"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"}
|
package/esm/ops/VariablesOps.js
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import { frodo } from '@rockcarver/frodo-lib';
|
|
2
2
|
import { createKeyValueTable, createProgressBar, createTable, failSpinner, printMessage, showSpinner, stopProgressBar, succeedSpinner, updateProgressBar } from '../utils/Console';
|
|
3
3
|
import wordwrap from './utils/Wordwrap';
|
|
4
|
+
const {
|
|
5
|
+
decode
|
|
6
|
+
} = frodo.helper.base64;
|
|
7
|
+
const {
|
|
8
|
+
resolveUserName
|
|
9
|
+
} = frodo.idm.managed;
|
|
10
|
+
const {
|
|
11
|
+
getVariables,
|
|
12
|
+
getVariable,
|
|
13
|
+
putVariable
|
|
14
|
+
} = frodo.cloud.variable;
|
|
4
15
|
|
|
5
16
|
/**
|
|
6
17
|
* List variables
|
|
@@ -9,7 +20,7 @@ import wordwrap from './utils/Wordwrap';
|
|
|
9
20
|
export async function listVariables(long) {
|
|
10
21
|
let variables = [];
|
|
11
22
|
try {
|
|
12
|
-
variables = (await
|
|
23
|
+
variables = (await getVariables()).result;
|
|
13
24
|
variables.sort((a, b) => a._id.localeCompare(b._id));
|
|
14
25
|
} catch (error) {
|
|
15
26
|
printMessage(`${error.message}`, 'error');
|
|
@@ -18,9 +29,9 @@ export async function listVariables(long) {
|
|
|
18
29
|
if (long) {
|
|
19
30
|
const table = createTable(['Id'['brightCyan'], 'Value'['brightCyan'], 'Status'['brightCyan'], 'Description'['brightCyan'], 'Modifier'['brightCyan'], 'Modified'['brightCyan']]);
|
|
20
31
|
for (const variable of variables) {
|
|
21
|
-
table.push([variable._id, wordwrap(
|
|
32
|
+
table.push([variable._id, wordwrap(decode(variable.valueBase64), 40), variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'], wordwrap(variable.description, 40),
|
|
22
33
|
// eslint-disable-next-line no-await-in-loop
|
|
23
|
-
await
|
|
34
|
+
await resolveUserName('teammember', variable.lastChangedBy), new Date(variable.lastChangeDate).toLocaleString()]);
|
|
24
35
|
}
|
|
25
36
|
printMessage(table.toString(), 'data');
|
|
26
37
|
} else {
|
|
@@ -39,7 +50,7 @@ export async function listVariables(long) {
|
|
|
39
50
|
export async function createVariable(variableId, value, description) {
|
|
40
51
|
showSpinner(`Creating variable ${variableId}...`);
|
|
41
52
|
try {
|
|
42
|
-
await
|
|
53
|
+
await putVariable(variableId, value, description);
|
|
43
54
|
succeedSpinner(`Created variable ${variableId}`);
|
|
44
55
|
} catch (error) {
|
|
45
56
|
failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
|
|
@@ -55,7 +66,7 @@ export async function createVariable(variableId, value, description) {
|
|
|
55
66
|
export async function updateVariable(variableId, value, description) {
|
|
56
67
|
showSpinner(`Updating variable ${variableId}...`);
|
|
57
68
|
try {
|
|
58
|
-
await
|
|
69
|
+
await putVariable(variableId, value, description);
|
|
59
70
|
succeedSpinner(`Updated variable ${variableId}`);
|
|
60
71
|
} catch (error) {
|
|
61
72
|
failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
|
|
@@ -70,7 +81,7 @@ export async function updateVariable(variableId, value, description) {
|
|
|
70
81
|
export async function setVariableDescription(variableId, description) {
|
|
71
82
|
showSpinner(`Setting description of variable ${variableId}...`);
|
|
72
83
|
try {
|
|
73
|
-
await
|
|
84
|
+
await setVariableDescription(variableId, description);
|
|
74
85
|
succeedSpinner(`Set description of variable ${variableId}`);
|
|
75
86
|
} catch (error) {
|
|
76
87
|
failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
|
|
@@ -84,7 +95,7 @@ export async function setVariableDescription(variableId, description) {
|
|
|
84
95
|
export async function deleteVariable(variableId) {
|
|
85
96
|
showSpinner(`Deleting variable ${variableId}...`);
|
|
86
97
|
try {
|
|
87
|
-
await
|
|
98
|
+
await deleteVariable(variableId);
|
|
88
99
|
succeedSpinner(`Deleted variable ${variableId}`);
|
|
89
100
|
} catch (error) {
|
|
90
101
|
failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
|
|
@@ -96,12 +107,12 @@ export async function deleteVariable(variableId) {
|
|
|
96
107
|
*/
|
|
97
108
|
export async function deleteVariables() {
|
|
98
109
|
try {
|
|
99
|
-
const variables = (await
|
|
110
|
+
const variables = (await getVariables()).result;
|
|
100
111
|
createProgressBar(variables.length, `Deleting variable...`);
|
|
101
112
|
for (const variable of variables) {
|
|
102
113
|
try {
|
|
103
114
|
// eslint-disable-next-line no-await-in-loop
|
|
104
|
-
await
|
|
115
|
+
await deleteVariable(variable._id);
|
|
105
116
|
updateProgressBar(`Deleted variable ${variable._id}`);
|
|
106
117
|
} catch (error) {
|
|
107
118
|
printMessage(`Error: ${error.response.data.code} - ${error.response.data.message}`, 'error');
|
|
@@ -119,14 +130,14 @@ export async function deleteVariables() {
|
|
|
119
130
|
* @param {String} variableId variable id
|
|
120
131
|
*/
|
|
121
132
|
export async function describeVariable(variableId) {
|
|
122
|
-
const variable = await
|
|
133
|
+
const variable = await getVariable(variableId);
|
|
123
134
|
const table = createKeyValueTable();
|
|
124
135
|
table.push(['Name'['brightCyan'], variable._id]);
|
|
125
|
-
table.push(['Value'['brightCyan'], wordwrap(
|
|
136
|
+
table.push(['Value'['brightCyan'], wordwrap(decode(variable.valueBase64), 40)]);
|
|
126
137
|
table.push(['Status'['brightCyan'], variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed']]);
|
|
127
138
|
table.push(['Description'['brightCyan'], wordwrap(variable.description, 60)]);
|
|
128
139
|
table.push(['Modified'['brightCyan'], new Date(variable.lastChangeDate).toLocaleString()]);
|
|
129
|
-
table.push(['Modifier'['brightCyan'], await
|
|
140
|
+
table.push(['Modifier'['brightCyan'], await resolveUserName('teammember', variable.lastChangedBy)]);
|
|
130
141
|
table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);
|
|
131
142
|
printMessage(table.toString());
|
|
132
143
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariablesOps.js","names":["frodo","createKeyValueTable","createProgressBar","createTable","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","wordwrap","listVariables","long","variables","cloud","variable","getVariables","result","sort","a","b","_id","localeCompare","error","message","response","data","table","push","helper","base64","decode","valueBase64","loaded","description","idm","managed","resolveUserName","lastChangedBy","Date","lastChangeDate","toLocaleString","toString","forEach","secret","createVariable","variableId","value","putVariable","code","updateVariable","setVariableDescription","deleteVariable","deleteVariables","length","describeVariable","getVariable"],"sources":["ops/VariablesOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport {\n createKeyValueTable,\n createProgressBar,\n createTable,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport wordwrap from './utils/Wordwrap';\n\n/**\n * List variables\n * @param {boolean} long Long version, all the fields\n */\nexport async function listVariables(long) {\n let variables = [];\n try {\n variables = (await frodo.cloud.variable.getVariables()).result;\n variables.sort((a, b) => a._id.localeCompare(b._id));\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n }\n if (long) {\n const table = createTable([\n 'Id'['brightCyan'],\n 'Value'['brightCyan'],\n 'Status'['brightCyan'],\n 'Description'['brightCyan'],\n 'Modifier'['brightCyan'],\n 'Modified'['brightCyan'],\n ]);\n for (const variable of variables) {\n table.push([\n variable._id,\n wordwrap(frodo.helper.base64.decode(variable.valueBase64), 40),\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n wordwrap(variable.description, 40),\n // eslint-disable-next-line no-await-in-loop\n await frodo.idm.managed.resolveUserName(\n 'teammember',\n variable.lastChangedBy\n ),\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n variables.forEach((secret) => {\n printMessage(secret._id, 'data');\n });\n }\n}\n\n/**\n * Create variable\n * @param {String} variableId variable id\n * @param {String} value variable value\n * @param {String} description variable description\n */\nexport async function createVariable(variableId, value, description) {\n showSpinner(`Creating variable ${variableId}...`);\n try {\n await frodo.cloud.variable.putVariable(variableId, value, description);\n succeedSpinner(`Created variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Update variable\n * @param {String} variableId variable id\n * @param {String} value variable value\n * @param {String} description variable description\n */\nexport async function updateVariable(variableId, value, description) {\n showSpinner(`Updating variable ${variableId}...`);\n try {\n await frodo.cloud.variable.putVariable(variableId, value, description);\n succeedSpinner(`Updated variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Set description of variable\n * @param {String} variableId variable id\n * @param {String} description variable description\n */\nexport async function setVariableDescription(variableId, description) {\n showSpinner(`Setting description of variable ${variableId}...`);\n try {\n await frodo.cloud.variable.setVariableDescription(variableId, description);\n succeedSpinner(`Set description of variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Delete a variable\n * @param {String} variableId variable id\n */\nexport async function deleteVariable(variableId) {\n showSpinner(`Deleting variable ${variableId}...`);\n try {\n await frodo.cloud.variable.deleteVariable(variableId);\n succeedSpinner(`Deleted variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Delete all variables\n */\nexport async function deleteVariables() {\n try {\n const variables = (await frodo.cloud.variable.getVariables()).result;\n createProgressBar(variables.length, `Deleting variable...`);\n for (const variable of variables) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await frodo.cloud.variable.deleteVariable(variable._id);\n updateProgressBar(`Deleted variable ${variable._id}`);\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n }\n stopProgressBar(`Variables deleted.`);\n } catch (error) {\n stopProgressBar(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n}\n\n/**\n * Describe a variable\n * @param {String} variableId variable id\n */\nexport async function describeVariable(variableId) {\n const variable = await frodo.cloud.variable.getVariable(variableId);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], variable._id]);\n table.push([\n 'Value'['brightCyan'],\n wordwrap(frodo.helper.base64.decode(variable.valueBase64), 40),\n ]);\n table.push([\n 'Status'['brightCyan'],\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n ]);\n table.push(['Description'['brightCyan'], wordwrap(variable.description, 60)]);\n table.push([\n 'Modified'['brightCyan'],\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n table.push([\n 'Modifier'['brightCyan'],\n await frodo.idm.managed.resolveUserName(\n 'teammember',\n variable.lastChangedBy\n ),\n ]);\n table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);\n printMessage(table.toString());\n}\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SACEC,mBAAmB,EACnBC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,eAAe,EACfC,cAAc,EACdC,iBAAiB,QACZ,kBAAkB;AACzB,OAAOC,QAAQ,MAAM,kBAAkB;;AAEvC;AACA;AACA;AACA;AACA,OAAO,eAAeC,aAAaA,CAACC,IAAI,EAAE;EACxC,IAAIC,SAAS,GAAG,EAAE;EAClB,IAAI;IACFA,SAAS,GAAG,CAAC,MAAMb,KAAK,CAACc,KAAK,CAACC,QAAQ,CAACC,YAAY,CAAC,CAAC,EAAEC,MAAM;IAC9DJ,SAAS,CAACK,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,GAAG,CAACC,aAAa,CAACF,CAAC,CAACC,GAAG,CAAC,CAAC;EACtD,CAAC,CAAC,OAAOE,KAAK,EAAE;IACdlB,YAAY,CAAE,GAAEkB,KAAK,CAACC,OAAQ,EAAC,EAAE,OAAO,CAAC;IACzCnB,YAAY,CAACkB,KAAK,CAACE,QAAQ,CAACC,IAAI,EAAE,OAAO,CAAC;EAC5C;EACA,IAAId,IAAI,EAAE;IACR,MAAMe,KAAK,GAAGxB,WAAW,CAAC,CACxB,IAAI,CAAC,YAAY,CAAC,EAClB,OAAO,CAAC,YAAY,CAAC,EACrB,QAAQ,CAAC,YAAY,CAAC,EACtB,aAAa,CAAC,YAAY,CAAC,EAC3B,UAAU,CAAC,YAAY,CAAC,EACxB,UAAU,CAAC,YAAY,CAAC,CACzB,CAAC;IACF,KAAK,MAAMY,QAAQ,IAAIF,SAAS,EAAE;MAChCc,KAAK,CAACC,IAAI,CAAC,CACTb,QAAQ,CAACM,GAAG,EACZX,QAAQ,CAACV,KAAK,CAAC6B,MAAM,CAACC,MAAM,CAACC,MAAM,CAAChB,QAAQ,CAACiB,WAAW,CAAC,EAAE,EAAE,CAAC,EAC9DjB,QAAQ,CAACkB,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,EACnEvB,QAAQ,CAACK,QAAQ,CAACmB,WAAW,EAAE,EAAE,CAAC;MAClC;MACA,MAAMlC,KAAK,CAACmC,GAAG,CAACC,OAAO,CAACC,eAAe,CACrC,YAAY,EACZtB,QAAQ,CAACuB,aACX,CAAC,EACD,IAAIC,IAAI,CAACxB,QAAQ,CAACyB,cAAc,CAAC,CAACC,cAAc,CAAC,CAAC,CACnD,CAAC;IACJ;IACApC,YAAY,CAACsB,KAAK,CAACe,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;EACxC,CAAC,MAAM;IACL7B,SAAS,CAAC8B,OAAO,CAAEC,MAAM,IAAK;MAC5BvC,YAAY,CAACuC,MAAM,CAACvB,GAAG,EAAE,MAAM,CAAC;IAClC,CAAC,CAAC;EACJ;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAewB,cAAcA,CAACC,UAAU,EAAEC,KAAK,EAAEb,WAAW,EAAE;EACnE5B,WAAW,CAAE,qBAAoBwC,UAAW,KAAI,CAAC;EACjD,IAAI;IACF,MAAM9C,KAAK,CAACc,KAAK,CAACC,QAAQ,CAACiC,WAAW,CAACF,UAAU,EAAEC,KAAK,EAAEb,WAAW,CAAC;IACtE1B,cAAc,CAAE,oBAAmBsC,UAAW,EAAC,CAAC;EAClD,CAAC,CAAC,OAAOvB,KAAK,EAAE;IACdnB,WAAW,CACR,UAASmB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACuB,IAAK,MAAK1B,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EACtE,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAe0B,cAAcA,CAACJ,UAAU,EAAEC,KAAK,EAAEb,WAAW,EAAE;EACnE5B,WAAW,CAAE,qBAAoBwC,UAAW,KAAI,CAAC;EACjD,IAAI;IACF,MAAM9C,KAAK,CAACc,KAAK,CAACC,QAAQ,CAACiC,WAAW,CAACF,UAAU,EAAEC,KAAK,EAAEb,WAAW,CAAC;IACtE1B,cAAc,CAAE,oBAAmBsC,UAAW,EAAC,CAAC;EAClD,CAAC,CAAC,OAAOvB,KAAK,EAAE;IACdnB,WAAW,CACR,UAASmB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACuB,IAAK,MAAK1B,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EACtE,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAe2B,sBAAsBA,CAACL,UAAU,EAAEZ,WAAW,EAAE;EACpE5B,WAAW,CAAE,mCAAkCwC,UAAW,KAAI,CAAC;EAC/D,IAAI;IACF,MAAM9C,KAAK,CAACc,KAAK,CAACC,QAAQ,CAACoC,sBAAsB,CAACL,UAAU,EAAEZ,WAAW,CAAC;IAC1E1B,cAAc,CAAE,+BAA8BsC,UAAW,EAAC,CAAC;EAC7D,CAAC,CAAC,OAAOvB,KAAK,EAAE;IACdnB,WAAW,CACR,UAASmB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACuB,IAAK,MAAK1B,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EACtE,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAe4B,cAAcA,CAACN,UAAU,EAAE;EAC/CxC,WAAW,CAAE,qBAAoBwC,UAAW,KAAI,CAAC;EACjD,IAAI;IACF,MAAM9C,KAAK,CAACc,KAAK,CAACC,QAAQ,CAACqC,cAAc,CAACN,UAAU,CAAC;IACrDtC,cAAc,CAAE,oBAAmBsC,UAAW,EAAC,CAAC;EAClD,CAAC,CAAC,OAAOvB,KAAK,EAAE;IACdnB,WAAW,CACR,UAASmB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACuB,IAAK,MAAK1B,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EACtE,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA,OAAO,eAAe6B,eAAeA,CAAA,EAAG;EACtC,IAAI;IACF,MAAMxC,SAAS,GAAG,CAAC,MAAMb,KAAK,CAACc,KAAK,CAACC,QAAQ,CAACC,YAAY,CAAC,CAAC,EAAEC,MAAM;IACpEf,iBAAiB,CAACW,SAAS,CAACyC,MAAM,EAAG,sBAAqB,CAAC;IAC3D,KAAK,MAAMvC,QAAQ,IAAIF,SAAS,EAAE;MAChC,IAAI;QACF;QACA,MAAMb,KAAK,CAACc,KAAK,CAACC,QAAQ,CAACqC,cAAc,CAACrC,QAAQ,CAACM,GAAG,CAAC;QACvDZ,iBAAiB,CAAE,oBAAmBM,QAAQ,CAACM,GAAI,EAAC,CAAC;MACvD,CAAC,CAAC,OAAOE,KAAK,EAAE;QACdlB,YAAY,CACT,UAASkB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACuB,IAAK,MAAK1B,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EAAC,EACrE,OACF,CAAC;MACH;IACF;IACAjB,eAAe,CAAE,oBAAmB,CAAC;EACvC,CAAC,CAAC,OAAOgB,KAAK,EAAE;IACdhB,eAAe,CACZ,UAASgB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACuB,IAAK,MAAK1B,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EACtE,CAAC;IACDnB,YAAY,CACT,UAASkB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACuB,IAAK,MAAK1B,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EAAC,EACrE,OACF,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAe+B,gBAAgBA,CAACT,UAAU,EAAE;EACjD,MAAM/B,QAAQ,GAAG,MAAMf,KAAK,CAACc,KAAK,CAACC,QAAQ,CAACyC,WAAW,CAACV,UAAU,CAAC;EACnE,MAAMnB,KAAK,GAAG1B,mBAAmB,CAAC,CAAC;EACnC0B,KAAK,CAACC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAEb,QAAQ,CAACM,GAAG,CAAC,CAAC;EAChDM,KAAK,CAACC,IAAI,CAAC,CACT,OAAO,CAAC,YAAY,CAAC,EACrBlB,QAAQ,CAACV,KAAK,CAAC6B,MAAM,CAACC,MAAM,CAACC,MAAM,CAAChB,QAAQ,CAACiB,WAAW,CAAC,EAAE,EAAE,CAAC,CAC/D,CAAC;EACFL,KAAK,CAACC,IAAI,CAAC,CACT,QAAQ,CAAC,YAAY,CAAC,EACtBb,QAAQ,CAACkB,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CACpE,CAAC;EACFN,KAAK,CAACC,IAAI,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,EAAElB,QAAQ,CAACK,QAAQ,CAACmB,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;EAC7EP,KAAK,CAACC,IAAI,CAAC,CACT,UAAU,CAAC,YAAY,CAAC,EACxB,IAAIW,IAAI,CAACxB,QAAQ,CAACyB,cAAc,CAAC,CAACC,cAAc,CAAC,CAAC,CACnD,CAAC;EACFd,KAAK,CAACC,IAAI,CAAC,CACT,UAAU,CAAC,YAAY,CAAC,EACxB,MAAM5B,KAAK,CAACmC,GAAG,CAACC,OAAO,CAACC,eAAe,CACrC,YAAY,EACZtB,QAAQ,CAACuB,aACX,CAAC,CACF,CAAC;EACFX,KAAK,CAACC,IAAI,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,EAAEb,QAAQ,CAACuB,aAAa,CAAC,CAAC;EACnEjC,YAAY,CAACsB,KAAK,CAACe,QAAQ,CAAC,CAAC,CAAC;AAChC"}
|
|
1
|
+
{"version":3,"file":"VariablesOps.js","names":["frodo","createKeyValueTable","createProgressBar","createTable","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","wordwrap","decode","helper","base64","resolveUserName","idm","managed","getVariables","getVariable","putVariable","cloud","variable","listVariables","long","variables","result","sort","a","b","_id","localeCompare","error","message","response","data","table","push","valueBase64","loaded","description","lastChangedBy","Date","lastChangeDate","toLocaleString","toString","forEach","secret","createVariable","variableId","value","code","updateVariable","setVariableDescription","deleteVariable","deleteVariables","length","describeVariable"],"sources":["ops/VariablesOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport {\n createKeyValueTable,\n createProgressBar,\n createTable,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport wordwrap from './utils/Wordwrap';\n\nconst { decode } = frodo.helper.base64;\nconst { resolveUserName } = frodo.idm.managed;\nconst { getVariables, getVariable, putVariable } = frodo.cloud.variable;\n\n/**\n * List variables\n * @param {boolean} long Long version, all the fields\n */\nexport async function listVariables(long) {\n let variables = [];\n try {\n variables = (await getVariables()).result;\n variables.sort((a, b) => a._id.localeCompare(b._id));\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n }\n if (long) {\n const table = createTable([\n 'Id'['brightCyan'],\n 'Value'['brightCyan'],\n 'Status'['brightCyan'],\n 'Description'['brightCyan'],\n 'Modifier'['brightCyan'],\n 'Modified'['brightCyan'],\n ]);\n for (const variable of variables) {\n table.push([\n variable._id,\n wordwrap(decode(variable.valueBase64), 40),\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n wordwrap(variable.description, 40),\n // eslint-disable-next-line no-await-in-loop\n await resolveUserName('teammember', variable.lastChangedBy),\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n variables.forEach((secret) => {\n printMessage(secret._id, 'data');\n });\n }\n}\n\n/**\n * Create variable\n * @param {String} variableId variable id\n * @param {String} value variable value\n * @param {String} description variable description\n */\nexport async function createVariable(variableId, value, description) {\n showSpinner(`Creating variable ${variableId}...`);\n try {\n await putVariable(variableId, value, description);\n succeedSpinner(`Created variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Update variable\n * @param {String} variableId variable id\n * @param {String} value variable value\n * @param {String} description variable description\n */\nexport async function updateVariable(variableId, value, description) {\n showSpinner(`Updating variable ${variableId}...`);\n try {\n await putVariable(variableId, value, description);\n succeedSpinner(`Updated variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Set description of variable\n * @param {String} variableId variable id\n * @param {String} description variable description\n */\nexport async function setVariableDescription(variableId, description) {\n showSpinner(`Setting description of variable ${variableId}...`);\n try {\n await setVariableDescription(variableId, description);\n succeedSpinner(`Set description of variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Delete a variable\n * @param {String} variableId variable id\n */\nexport async function deleteVariable(variableId) {\n showSpinner(`Deleting variable ${variableId}...`);\n try {\n await deleteVariable(variableId);\n succeedSpinner(`Deleted variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Delete all variables\n */\nexport async function deleteVariables() {\n try {\n const variables = (await getVariables()).result;\n createProgressBar(variables.length, `Deleting variable...`);\n for (const variable of variables) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await deleteVariable(variable._id);\n updateProgressBar(`Deleted variable ${variable._id}`);\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n }\n stopProgressBar(`Variables deleted.`);\n } catch (error) {\n stopProgressBar(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n}\n\n/**\n * Describe a variable\n * @param {String} variableId variable id\n */\nexport async function describeVariable(variableId) {\n const variable = await getVariable(variableId);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], variable._id]);\n table.push([\n 'Value'['brightCyan'],\n wordwrap(decode(variable.valueBase64), 40),\n ]);\n table.push([\n 'Status'['brightCyan'],\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n ]);\n table.push(['Description'['brightCyan'], wordwrap(variable.description, 60)]);\n table.push([\n 'Modified'['brightCyan'],\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n table.push([\n 'Modifier'['brightCyan'],\n await resolveUserName('teammember', variable.lastChangedBy),\n ]);\n table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);\n printMessage(table.toString());\n}\n"],"mappings":"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"}
|
package/esm/utils/Config.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { frodo } from '@rockcarver/frodo-lib';
|
|
1
2
|
import fs from 'fs';
|
|
2
3
|
import os from 'os';
|
|
3
|
-
import { frodo } from '@rockcarver/frodo-lib';
|
|
4
4
|
import { printMessage } from './Console';
|
|
5
|
+
const {
|
|
6
|
+
getDefaultNoiseFilter
|
|
7
|
+
} = frodo.cloud.log;
|
|
5
8
|
export const FRODO_CONFIG_PATH_KEY = 'FRODO_CONFIG_PATH';
|
|
6
9
|
export const FRODO_LOG_NOISEFILTER_FILENAME = 'LoggingNoiseFilter.json';
|
|
7
10
|
export function getConfigPath() {
|
|
@@ -22,12 +25,12 @@ export function getNoiseFilters(defaults) {
|
|
|
22
25
|
const filename = `${getConfigPath()}/${FRODO_LOG_NOISEFILTER_FILENAME}`;
|
|
23
26
|
if (defaults) {
|
|
24
27
|
printMessage(`Using default logging noise filters.`, 'info');
|
|
25
|
-
return
|
|
28
|
+
return getDefaultNoiseFilter();
|
|
26
29
|
}
|
|
27
30
|
let noiseFilter = getCustomNoiseFilters();
|
|
28
31
|
if (noiseFilter.length == 0) {
|
|
29
32
|
printMessage(`No custom noise filters defined. Using defaults.`, 'info');
|
|
30
|
-
noiseFilter =
|
|
33
|
+
noiseFilter = getDefaultNoiseFilter();
|
|
31
34
|
try {
|
|
32
35
|
fs.writeFileSync(filename, JSON.stringify(noiseFilter, null, 2));
|
|
33
36
|
printMessage(`The default filters were saved in ${filename}. You can change the filters as needed.`, 'info');
|
package/esm/utils/Config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.js","names":["fs","os","
|
|
1
|
+
{"version":3,"file":"Config.js","names":["frodo","fs","os","printMessage","getDefaultNoiseFilter","cloud","log","FRODO_CONFIG_PATH_KEY","FRODO_LOG_NOISEFILTER_FILENAME","getConfigPath","process","env","homedir","getCustomNoiseFilters","filename","noiseFilter","data","readFileSync","JSON","parse","e","message","getNoiseFilters","defaults","length","writeFileSync","stringify"],"sources":["utils/Config.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport os from 'os';\nimport { printMessage } from './Console';\n\nconst { getDefaultNoiseFilter } = frodo.cloud.log;\n\nexport const FRODO_CONFIG_PATH_KEY = 'FRODO_CONFIG_PATH';\nexport const FRODO_LOG_NOISEFILTER_FILENAME = 'LoggingNoiseFilter.json';\n\nexport function getConfigPath(): string {\n return process.env[FRODO_CONFIG_PATH_KEY] || `${os.homedir()}/.frodo`;\n}\n\nfunction getCustomNoiseFilters(): Array<string> {\n const filename = `${getConfigPath()}/${FRODO_LOG_NOISEFILTER_FILENAME}`;\n let noiseFilter = [];\n try {\n const data = fs.readFileSync(filename, 'utf8');\n noiseFilter = JSON.parse(data);\n } catch (e) {\n printMessage(`Error reading ${filename} (${e.message})`, 'error');\n }\n return noiseFilter;\n}\n\nexport function getNoiseFilters(defaults: boolean): Array<string> {\n const filename = `${getConfigPath()}/${FRODO_LOG_NOISEFILTER_FILENAME}`;\n if (defaults) {\n printMessage(`Using default logging noise filters.`, 'info');\n return getDefaultNoiseFilter();\n }\n let noiseFilter = getCustomNoiseFilters();\n if (noiseFilter.length == 0) {\n printMessage(`No custom noise filters defined. Using defaults.`, 'info');\n noiseFilter = getDefaultNoiseFilter();\n try {\n fs.writeFileSync(filename, JSON.stringify(noiseFilter, null, 2));\n printMessage(\n `The default filters were saved in ${filename}. You can change the filters as needed.`,\n 'info'\n );\n } catch (e) {\n printMessage(\n `Error creating noise filter configuration with default values.`,\n 'error'\n );\n }\n }\n return noiseFilter;\n}\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,OAAOC,EAAE,MAAM,IAAI;AACnB,OAAOC,EAAE,MAAM,IAAI;AACnB,SAASC,YAAY,QAAQ,WAAW;AAExC,MAAM;EAAEC;AAAsB,CAAC,GAAGJ,KAAK,CAACK,KAAK,CAACC,GAAG;AAEjD,OAAO,MAAMC,qBAAqB,GAAG,mBAAmB;AACxD,OAAO,MAAMC,8BAA8B,GAAG,yBAAyB;AAEvE,OAAO,SAASC,aAAaA,CAAA,EAAW;EACtC,OAAOC,OAAO,CAACC,GAAG,CAACJ,qBAAqB,CAAC,IAAK,GAAEL,EAAE,CAACU,OAAO,CAAC,CAAE,SAAQ;AACvE;AAEA,SAASC,qBAAqBA,CAAA,EAAkB;EAC9C,MAAMC,QAAQ,GAAI,GAAEL,aAAa,CAAC,CAAE,IAAGD,8BAA+B,EAAC;EACvE,IAAIO,WAAW,GAAG,EAAE;EACpB,IAAI;IACF,MAAMC,IAAI,GAAGf,EAAE,CAACgB,YAAY,CAACH,QAAQ,EAAE,MAAM,CAAC;IAC9CC,WAAW,GAAGG,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;EAChC,CAAC,CAAC,OAAOI,CAAC,EAAE;IACVjB,YAAY,CAAE,iBAAgBW,QAAS,KAAIM,CAAC,CAACC,OAAQ,GAAE,EAAE,OAAO,CAAC;EACnE;EACA,OAAON,WAAW;AACpB;AAEA,OAAO,SAASO,eAAeA,CAACC,QAAiB,EAAiB;EAChE,MAAMT,QAAQ,GAAI,GAAEL,aAAa,CAAC,CAAE,IAAGD,8BAA+B,EAAC;EACvE,IAAIe,QAAQ,EAAE;IACZpB,YAAY,CAAE,sCAAqC,EAAE,MAAM,CAAC;IAC5D,OAAOC,qBAAqB,CAAC,CAAC;EAChC;EACA,IAAIW,WAAW,GAAGF,qBAAqB,CAAC,CAAC;EACzC,IAAIE,WAAW,CAACS,MAAM,IAAI,CAAC,EAAE;IAC3BrB,YAAY,CAAE,kDAAiD,EAAE,MAAM,CAAC;IACxEY,WAAW,GAAGX,qBAAqB,CAAC,CAAC;IACrC,IAAI;MACFH,EAAE,CAACwB,aAAa,CAACX,QAAQ,EAAEI,IAAI,CAACQ,SAAS,CAACX,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;MAChEZ,YAAY,CACT,qCAAoCW,QAAS,yCAAwC,EACtF,MACF,CAAC;IACH,CAAC,CAAC,OAAOM,CAAC,EAAE;MACVjB,YAAY,CACT,gEAA+D,EAChE,OACF,CAAC;IACH;EACF;EACA,OAAOY,WAAW;AACpB"}
|