@rockcarver/frodo-cli 1.0.1 → 2.0.0-10
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/.vscode/launch.json +15 -0
- package/CHANGELOG.md +49 -4
- package/esm/app.js +4 -4
- package/esm/app.js.map +1 -1
- package/esm/cli/FrodoCommand.js +13 -10
- package/esm/cli/FrodoCommand.js.map +1 -1
- package/esm/cli/_template/something-delete.js +2 -2
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +2 -2
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +2 -2
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +2 -2
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +2 -2
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +2 -2
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +2 -2
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-export.js +2 -2
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +2 -2
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +2 -2
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +2 -2
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +2 -2
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +2 -2
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +2 -2
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +2 -2
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +3 -3
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +5 -5
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-federation-export.js +2 -2
- package/esm/cli/admin/admin-federation-export.js.map +1 -1
- package/esm/cli/admin/admin-federation-import.js +2 -2
- package/esm/cli/admin/admin-federation-import.js.map +1 -1
- package/esm/cli/admin/admin-federation-list.js +2 -2
- package/esm/cli/admin/admin-federation-list.js.map +1 -1
- package/esm/cli/admin/admin-get-access-token.js +6 -6
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +3 -3
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +3 -3
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +5 -5
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +5 -5
- 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 +3 -3
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +3 -3
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +3 -3
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +3 -3
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +5 -5
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +5 -5
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +2 -2
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +2 -2
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +3 -3
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +2 -2
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +2 -2
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +2 -2
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +2 -2
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-import.js +2 -2
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +3 -3
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +2 -2
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +2 -2
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +2 -2
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +2 -2
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-list.js +2 -2
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +3 -3
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +2 -2
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +2 -2
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +2 -2
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +2 -2
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/app/app-delete.js +2 -2
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +2 -2
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +2 -2
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +2 -2
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +3 -3
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/authz/authz-policy-delete.js +2 -2
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-policy-describe.js +2 -2
- package/esm/cli/authz/authz-policy-describe.js.map +1 -1
- package/esm/cli/authz/authz-policy-export.js +2 -2
- package/esm/cli/authz/authz-policy-export.js.map +1 -1
- package/esm/cli/authz/authz-policy-import.js +2 -2
- package/esm/cli/authz/authz-policy-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-list.js +2 -2
- package/esm/cli/authz/authz-policy-list.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js +2 -2
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-describe.js +2 -2
- package/esm/cli/authz/authz-set-describe.js.map +1 -1
- package/esm/cli/authz/authz-set-export.js +2 -2
- package/esm/cli/authz/authz-set-export.js.map +1 -1
- package/esm/cli/authz/authz-set-import.js +2 -2
- package/esm/cli/authz/authz-set-import.js.map +1 -1
- package/esm/cli/authz/authz-set-list.js +2 -2
- package/esm/cli/authz/authz-set-list.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +2 -2
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-describe.js +2 -2
- package/esm/cli/authz/authz-type-describe.js.map +1 -1
- package/esm/cli/authz/authz-type-export.js +2 -2
- package/esm/cli/authz/authz-type-export.js.map +1 -1
- package/esm/cli/authz/authz-type-import.js +2 -2
- package/esm/cli/authz/authz-type-import.js.map +1 -1
- package/esm/cli/authz/authz-type-list.js +2 -2
- package/esm/cli/authz/authz-type-list.js.map +1 -1
- package/esm/cli/conn/conn-delete.js +2 -5
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-describe.js +1 -4
- package/esm/cli/conn/conn-describe.js.map +1 -1
- package/esm/cli/conn/conn-list.js +1 -4
- package/esm/cli/conn/conn-list.js.map +1 -1
- package/esm/cli/conn/conn-save.js +13 -9
- package/esm/cli/conn/conn-save.js.map +1 -1
- package/esm/cli/email/email-template-export.js +2 -2
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +2 -2
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +2 -2
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +6 -6
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +3 -5
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +5 -8
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +3 -5
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +2 -2
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +2 -2
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +3 -5
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +4 -6
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +3 -5
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +4 -6
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +3 -5
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +4 -6
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +4 -6
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +3 -5
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +5 -8
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +3 -5
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +2 -2
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +2 -2
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +3 -5
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +4 -7
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/idm/idm-count.js +2 -2
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +2 -2
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +2 -2
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +2 -2
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idp/idp-export.js +2 -2
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +2 -2
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +2 -2
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/info/info.js +8 -8
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +4 -8
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +5 -5
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +3 -3
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +3 -3
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +2 -2
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +2 -2
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +2 -2
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +3 -3
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/{logging/logs-fetch.js → log/log-fetch.js} +9 -9
- package/esm/cli/log/log-fetch.js.map +1 -0
- package/esm/cli/log/log-key-delete.js +35 -0
- package/esm/cli/log/log-key-delete.js.map +1 -0
- package/esm/cli/log/log-key-describe.js +22 -0
- package/esm/cli/log/log-key-describe.js.map +1 -0
- package/esm/cli/log/log-key-list.js +26 -0
- package/esm/cli/log/log-key-list.js.map +1 -0
- package/esm/cli/log/log-key.js +8 -0
- package/esm/cli/log/log-key.js.map +1 -0
- package/esm/cli/{logging/logs-list.js → log/log-list.js} +8 -8
- package/esm/cli/log/log-list.js.map +1 -0
- package/esm/cli/{logging/logs-tail.js → log/log-tail.js} +9 -9
- package/esm/cli/log/log-tail.js.map +1 -0
- package/esm/cli/{logging/logs.js → log/log.js} +5 -2
- package/esm/cli/log/log.js.map +1 -0
- package/esm/cli/realm/realm-add-custom-domain.js +3 -5
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +4 -9
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +3 -5
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +3 -3
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +9 -10
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +12 -13
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +5 -6
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +3 -3
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +2 -2
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +10 -25
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +12 -30
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +6 -11
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +2 -2
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/script/script-delete.js +2 -2
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +2 -2
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +2 -2
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +4 -3
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +4 -3
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/service/service-delete.js +2 -2
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +2 -2
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +2 -2
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +2 -2
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/theme/theme-delete.js +2 -2
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +2 -2
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +2 -2
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +2 -2
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/help/SampleData.js +7 -0
- package/esm/help/SampleData.js.map +1 -0
- package/esm/launch.js +4 -3
- package/esm/launch.js.map +1 -1
- package/esm/ops/AdminFederationOps.js +4 -4
- package/esm/ops/AdminFederationOps.js.map +1 -1
- package/esm/ops/AgentOps.js +26 -33
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +228 -1
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +101 -5
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +7 -8
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js +16 -17
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js +25 -13
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +40 -40
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/LogOps.js +85 -31
- package/esm/ops/LogOps.js.map +1 -1
- package/esm/ops/NodeOps.js +14 -11
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +5 -8
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/OrganizationOps.js +34 -0
- package/esm/ops/OrganizationOps.js.map +1 -0
- package/esm/ops/PolicyOps.js +9 -10
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +11 -12
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/RealmOps.js +116 -0
- package/esm/ops/RealmOps.js.map +1 -0
- package/esm/ops/ResourceTypeOps.js +8 -10
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +22 -223
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/ScriptOps.js +6 -5
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/SecretsOps.js +237 -0
- package/esm/ops/SecretsOps.js.map +1 -0
- package/esm/ops/ServiceOps.js +19 -19
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +8 -7
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/VariablesOps.js +144 -0
- package/esm/ops/VariablesOps.js.map +1 -0
- package/esm/utils/Config.js +2 -2
- package/esm/utils/Config.js.map +1 -1
- package/esm/utils/Console.js +2 -2
- package/esm/utils/Console.js.map +1 -1
- package/esm/utils/ExportImportUtils.js +3 -2
- 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
- package/esm/cli/logging/logs-fetch.js.map +0 -1
- package/esm/cli/logging/logs-list.js.map +0 -1
- package/esm/cli/logging/logs-tail.js.map +0 -1
- package/esm/cli/logging/logs.js.map +0 -1
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { frodo } from '@rockcarver/frodo-lib';
|
|
2
|
+
import { createKeyValueTable, createProgressBar, createTable, failSpinner, printMessage, showSpinner, stopProgressBar, succeedSpinner, updateProgressBar } from '../utils/Console';
|
|
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;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* List variables
|
|
18
|
+
* @param {boolean} long Long version, all the fields
|
|
19
|
+
*/
|
|
20
|
+
export async function listVariables(long) {
|
|
21
|
+
let variables = [];
|
|
22
|
+
try {
|
|
23
|
+
variables = (await getVariables()).result;
|
|
24
|
+
variables.sort((a, b) => a._id.localeCompare(b._id));
|
|
25
|
+
} catch (error) {
|
|
26
|
+
printMessage(`${error.message}`, 'error');
|
|
27
|
+
printMessage(error.response.data, 'error');
|
|
28
|
+
}
|
|
29
|
+
if (long) {
|
|
30
|
+
const table = createTable(['Id'['brightCyan'], 'Value'['brightCyan'], 'Status'['brightCyan'], 'Description'['brightCyan'], 'Modifier'['brightCyan'], 'Modified'['brightCyan']]);
|
|
31
|
+
for (const variable of variables) {
|
|
32
|
+
table.push([variable._id, wordwrap(decode(variable.valueBase64), 40), variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'], wordwrap(variable.description, 40),
|
|
33
|
+
// eslint-disable-next-line no-await-in-loop
|
|
34
|
+
await resolveUserName('teammember', variable.lastChangedBy), new Date(variable.lastChangeDate).toLocaleString()]);
|
|
35
|
+
}
|
|
36
|
+
printMessage(table.toString(), 'data');
|
|
37
|
+
} else {
|
|
38
|
+
variables.forEach(secret => {
|
|
39
|
+
printMessage(secret._id, 'data');
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Create variable
|
|
46
|
+
* @param {String} variableId variable id
|
|
47
|
+
* @param {String} value variable value
|
|
48
|
+
* @param {String} description variable description
|
|
49
|
+
*/
|
|
50
|
+
export async function createVariable(variableId, value, description) {
|
|
51
|
+
showSpinner(`Creating variable ${variableId}...`);
|
|
52
|
+
try {
|
|
53
|
+
await putVariable(variableId, value, description);
|
|
54
|
+
succeedSpinner(`Created variable ${variableId}`);
|
|
55
|
+
} catch (error) {
|
|
56
|
+
failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Update variable
|
|
62
|
+
* @param {String} variableId variable id
|
|
63
|
+
* @param {String} value variable value
|
|
64
|
+
* @param {String} description variable description
|
|
65
|
+
*/
|
|
66
|
+
export async function updateVariable(variableId, value, description) {
|
|
67
|
+
showSpinner(`Updating variable ${variableId}...`);
|
|
68
|
+
try {
|
|
69
|
+
await putVariable(variableId, value, description);
|
|
70
|
+
succeedSpinner(`Updated variable ${variableId}`);
|
|
71
|
+
} catch (error) {
|
|
72
|
+
failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Set description of variable
|
|
78
|
+
* @param {String} variableId variable id
|
|
79
|
+
* @param {String} description variable description
|
|
80
|
+
*/
|
|
81
|
+
export async function setVariableDescription(variableId, description) {
|
|
82
|
+
showSpinner(`Setting description of variable ${variableId}...`);
|
|
83
|
+
try {
|
|
84
|
+
await setVariableDescription(variableId, description);
|
|
85
|
+
succeedSpinner(`Set description of variable ${variableId}`);
|
|
86
|
+
} catch (error) {
|
|
87
|
+
failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Delete a variable
|
|
93
|
+
* @param {String} variableId variable id
|
|
94
|
+
*/
|
|
95
|
+
export async function deleteVariable(variableId) {
|
|
96
|
+
showSpinner(`Deleting variable ${variableId}...`);
|
|
97
|
+
try {
|
|
98
|
+
await deleteVariable(variableId);
|
|
99
|
+
succeedSpinner(`Deleted variable ${variableId}`);
|
|
100
|
+
} catch (error) {
|
|
101
|
+
failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Delete all variables
|
|
107
|
+
*/
|
|
108
|
+
export async function deleteVariables() {
|
|
109
|
+
try {
|
|
110
|
+
const variables = (await getVariables()).result;
|
|
111
|
+
createProgressBar(variables.length, `Deleting variable...`);
|
|
112
|
+
for (const variable of variables) {
|
|
113
|
+
try {
|
|
114
|
+
// eslint-disable-next-line no-await-in-loop
|
|
115
|
+
await deleteVariable(variable._id);
|
|
116
|
+
updateProgressBar(`Deleted variable ${variable._id}`);
|
|
117
|
+
} catch (error) {
|
|
118
|
+
printMessage(`Error: ${error.response.data.code} - ${error.response.data.message}`, 'error');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
stopProgressBar(`Variables deleted.`);
|
|
122
|
+
} catch (error) {
|
|
123
|
+
stopProgressBar(`Error: ${error.response.data.code} - ${error.response.data.message}`);
|
|
124
|
+
printMessage(`Error: ${error.response.data.code} - ${error.response.data.message}`, 'error');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Describe a variable
|
|
130
|
+
* @param {String} variableId variable id
|
|
131
|
+
*/
|
|
132
|
+
export async function describeVariable(variableId) {
|
|
133
|
+
const variable = await getVariable(variableId);
|
|
134
|
+
const table = createKeyValueTable();
|
|
135
|
+
table.push(['Name'['brightCyan'], variable._id]);
|
|
136
|
+
table.push(['Value'['brightCyan'], wordwrap(decode(variable.valueBase64), 40)]);
|
|
137
|
+
table.push(['Status'['brightCyan'], variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed']]);
|
|
138
|
+
table.push(['Description'['brightCyan'], wordwrap(variable.description, 60)]);
|
|
139
|
+
table.push(['Modified'['brightCyan'], new Date(variable.lastChangeDate).toLocaleString()]);
|
|
140
|
+
table.push(['Modifier'['brightCyan'], await resolveUserName('teammember', variable.lastChangedBy)]);
|
|
141
|
+
table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);
|
|
142
|
+
printMessage(table.toString());
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=VariablesOps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":["../../src/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,10 +1,10 @@
|
|
|
1
|
+
import { frodo } from '@rockcarver/frodo-lib';
|
|
1
2
|
import fs from 'fs';
|
|
2
3
|
import os from 'os';
|
|
3
|
-
import { Log } from '@rockcarver/frodo-lib';
|
|
4
4
|
import { printMessage } from './Console';
|
|
5
5
|
const {
|
|
6
6
|
getDefaultNoiseFilter
|
|
7
|
-
} =
|
|
7
|
+
} = frodo.cloud.log;
|
|
8
8
|
export const FRODO_CONFIG_PATH_KEY = 'FRODO_CONFIG_PATH';
|
|
9
9
|
export const FRODO_LOG_NOISEFILTER_FILENAME = 'LoggingNoiseFilter.json';
|
|
10
10
|
export function getConfigPath() {
|
package/esm/utils/Config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.js","names":["
|
|
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":["../../src/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"}
|
package/esm/utils/Console.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
|
+
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
2
3
|
import { MultiBar, Presets } from 'cli-progress';
|
|
3
4
|
import { createSpinner } from 'nanospinner';
|
|
4
5
|
import Table from 'cli-table3';
|
|
5
|
-
import { ExportImportUtils, state } from '@rockcarver/frodo-lib';
|
|
6
6
|
import Color from 'colors';
|
|
7
7
|
Color.enable();
|
|
8
8
|
const {
|
|
9
9
|
appendTextToFile
|
|
10
|
-
} =
|
|
10
|
+
} = frodo.utils.impex;
|
|
11
11
|
let multiBarContainer = null;
|
|
12
12
|
let progressBar = null;
|
|
13
13
|
let spinner = null;
|
package/esm/utils/Console.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Console.js","names":["MultiBar","Presets","createSpinner","Table","ExportImportUtils","state","Color","enable","appendTextToFile","multiBarContainer","progressBar","spinner","data","message","newline","getOutputFile","JSON","stringify","console","dir","depth","log","process","stdout","write","text","error","stderr","info","warn","debug","curlirize","verboseMessage","getVerbose","debugMessage","getDebug","curlirizeMessage","getCurlirize","printMessage","type","createProgressBar","total","options","format","noTTYOutput","opt","legacy","create","updateProgressBar","increment","stopProgressBar","update","stop","showSpinner","start","stopSpinner","succeedSpinner","success","warnSpinner","failSpinner","spinSpinner","spin","createProgressIndicator","updateProgressIndicator","stopProgressIndicator","status","createTable","head","table","chars","top","bottom","left","mid","right","style","createKeyValueTable","wordWrap","getObjectDepth","object","Object","Math","max","values","map","hasValues","has","keys","key","addRows","level","keyMap","space","push","brightCyan","hAlign","content","gray","indention","Array","fill","join","concat","createObjectTable"],"sources":["../../src/utils/Console.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport { MultiBar, Presets } from 'cli-progress';\nimport { createSpinner } from 'nanospinner';\nimport Table from 'cli-table3';\nimport { ExportImportUtils, state } from '@rockcarver/frodo-lib';\nimport Color from 'colors';\n\nColor.enable();\n\nconst { appendTextToFile } = ExportImportUtils;\n\nlet multiBarContainer = null;\nlet progressBar = null;\nlet spinner = null;\n\n/**\n * Output a message in default color to stdout or append to `state.getOutputFile()`\n * @param {string | object} message the message\n */\nfunction data(message: string | object, newline = true) {\n if (!message) return;\n if (state.getOutputFile()) {\n if (typeof message === 'object') {\n message = JSON.stringify(message, null, 2);\n }\n if (newline) {\n message += '\\n';\n }\n appendTextToFile(message, state.getOutputFile());\n } else if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.log(message);\n } else {\n process.stdout.write(message);\n }\n}\n\n/**\n * Output a default color message to stderr\n * @param {Object} message the message\n */\nfunction text(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message);\n } else {\n process.stderr.write(message);\n }\n}\n\n/**\n * Output a message in bright cyan to stderr\n * @param {Object} message the message\n */\nfunction info(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message['brightCyan']);\n } else {\n process.stderr.write(message['brightCyan']);\n }\n}\n\n/**\n * Output a message in yellow to stderr\n * @param {Object} message the message\n */\nfunction warn(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message['yellow']);\n } else {\n process.stderr.write(message['yellow']);\n }\n}\n\n/**\n * Output a message in bright red to stderr\n * @param {Object} message the message\n */\nfunction error(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message['brightRed']);\n } else {\n process.stderr.write(message['brightRed']);\n }\n}\n\n/**\n * Output a debug message\n * @param {string | object} message the message\n */\nfunction debug(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 6 });\n } else if (newline) {\n console.error(message['brightMagenta']);\n } else {\n process.stderr.write(message['brightMagenta']);\n }\n}\n\n/**\n * Output a curlirize message\n * @param {string} message the message\n */\nfunction curlirize(message: string) {\n if (!message) return;\n console.error(message['brightBlue']);\n}\n\n/**\n * Output a message in default color to stderr\n * @param {Object} message the message\n */\nexport function verboseMessage(message) {\n if (!message) return;\n if (state.getVerbose()) {\n text(message);\n }\n}\n\n/**\n * Output a debug message\n * @param {Object} message the message\n */\nexport function debugMessage(message) {\n if (!message) return;\n if (state.getDebug()) {\n debug(message);\n }\n}\n\n/**\n * Output a curlirize message\n * @param {Object} message the message\n */\nexport function curlirizeMessage(message) {\n if (!message) return;\n if (state.getCurlirize()) {\n curlirize(message);\n }\n}\n\n/**\n * Prints a string message to console\n *\n * @param {string} message The string message to print\n * @param {string} [type=text] \"text\", \"info\", \"warn\", \"error\" or \"data\". All but\n * type=\"data\" will be written to stderr.\n * @param {boolean} [newline=true] Whether to add a newline at the end of message\n *\n */\nexport function printMessage(message, type = 'text', newline = true) {\n switch (type) {\n case 'data':\n data(message, newline);\n break;\n case 'text':\n text(message, newline);\n break;\n case 'info':\n info(message, newline);\n break;\n case 'warn':\n warn(message, newline);\n break;\n case 'error':\n error(message, newline);\n break;\n default:\n text(message, newline);\n }\n}\n\n/**\n * Creates a progress bar on stderr\n *\n * Example:\n * [========================================] 100% | 49/49 | Analyzing journey - transactional_auth\n *\n * @param {Number} total The total number of entries to track progress for\n * @param {String} message optional progress bar message\n * @param {Object} options progress bar configuration options\n *\n */\nexport function createProgressBar(\n total,\n message = null,\n options = {\n format: '[{bar}] {percentage}% | {value}/{total} | {data}',\n noTTYOutput: true,\n }\n) {\n let opt = options;\n if (message == null) {\n opt = {\n format: '[{bar}] {percentage}% | {value}/{total}',\n noTTYOutput: true,\n };\n }\n // progressBar = new SingleBar(opt, Presets.legacy); // create only when needed\n // progressBar.start(total, 0, {\n // data: message,\n // });\n multiBarContainer = new MultiBar(opt, Presets.legacy);\n progressBar = multiBarContainer.create(total, 0, {\n data: message,\n });\n}\n\n/**\n * Updates the progress bar by 1\n * @param {string} message optional message to update the progress bar\n *\n */\nexport function updateProgressBar(message = null) {\n if (message)\n progressBar.increment({\n data: message,\n });\n else progressBar.increment();\n}\n\n/**\n * Stop and hide the progress bar\n * @param {*} message optional message to update the progress bar\n */\nexport function stopProgressBar(message = null) {\n if (message)\n progressBar.update({\n data: message,\n });\n // progressBar.stop();\n multiBarContainer.stop();\n multiBarContainer = null;\n}\n\n/**\n * Create the spinner\n * @param {String} message optional spinner message\n */\nexport function showSpinner(message) {\n spinner = createSpinner(message).start();\n}\n\n/**\n * Stop the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function stopSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.stop(options);\n }\n}\n\n/**\n * Succeed the spinner. Stop and render success checkmark with optional message.\n * @param {String} message optional message to update the spinner\n */\nexport function succeedSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.success(options);\n }\n}\n\n/**\n * Warn the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function warnSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.warn(options);\n }\n}\n\n/**\n * Fail the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function failSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.error(options);\n }\n}\n\n/**\n * Spin the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function spinSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.update(options);\n spinner.spin();\n }\n}\n\nexport function createProgressIndicator(\n type = 'determinate',\n total = 0,\n message = null\n) {\n if (type === 'determinate') {\n createProgressBar(total, message);\n } else {\n showSpinner(message);\n }\n}\n\nexport function updateProgressIndicator(message) {\n if (!progressBar) {\n spinSpinner(message);\n } else {\n updateProgressBar(message);\n }\n}\n\nexport function stopProgressIndicator(message, status = 'none') {\n if (!progressBar) {\n switch (status) {\n case 'none':\n stopSpinner(message);\n break;\n case 'success':\n succeedSpinner(message);\n break;\n case 'warn':\n warnSpinner(message);\n break;\n case 'fail':\n failSpinner(message);\n break;\n default:\n stopSpinner(message);\n break;\n }\n } else {\n stopProgressBar(message);\n }\n}\n\n/**\n * Create an empty table\n * @param {string[]} head header row as an array of strings\n * @returns {any} an empty table\n */\nexport function createTable(head) {\n const table = new Table({\n head,\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n return table;\n}\n\n/**\n * Create a new key/value table\n * @returns {any} an empty key/value table\n */\nexport function createKeyValueTable() {\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n return table;\n}\n\n/**\n * Helper function to determine the total depth of an object\n * @param {Object} object input object\n * @returns {Number} total depth of the input object\n */\nfunction getObjectDepth(object) {\n return Object(object) === object\n ? 1 + Math.max(-1, ...Object.values(object).map(getObjectDepth))\n : 0;\n}\n\n/**\n * Helper function to determine if an object has values\n * @param {Object} object input object\n * @returns {boolean} true of the object or any of its sub-objects contain values, false otherwise\n */\nfunction hasValues(object) {\n let has = false;\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n return true;\n }\n has = has || hasValues(object[key]);\n }\n return has;\n}\n\n/**\n * Helper function (recursive) to add rows to an object table\n * @param {object} object object to render\n * @param {number} depth total depth of initial object\n * @param {number} level current level\n * @param {any} table the object table to add the rows to\n * @param {Object} keyMap optional JSON map to map raw config names to human readable names {'raw': 'readable'}\n * @returns the updated object table\n */\nfunction addRows(object, depth, level, table, keyMap) {\n const space = ' ';\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n if (level === 1) {\n table.push([\n keyMap[key] ? keyMap[key].brightCyan : key['brightCyan'],\n object[key],\n ]);\n } else {\n table.push([\n {\n hAlign: 'right',\n content: keyMap[key] ? keyMap[key].gray : key.gray,\n },\n object[key],\n ]);\n }\n }\n }\n for (const key of keys) {\n if (Object(object[key]) === object[key]) {\n // only print header if there are any values below\n if (hasValues(object[key])) {\n let indention = new Array(level).fill(space).join('');\n if (level < 3) indention = `\\n${indention}`;\n table.push([\n indention.concat(\n keyMap[key] ? keyMap[key].brightCyan : key['brightCyan']\n ),\n '',\n ]);\n }\n // eslint-disable-next-line no-param-reassign\n table = addRows(object[key], depth, level + 1, table, keyMap);\n }\n }\n return table;\n}\n\n/**\n * Create and populate an object table from any JSON object. Use for describe commands.\n * @param {Object} object JSON object to create\n * @param {Object} keyMap optional JSON map to map raw config names to human readable names {'raw': 'readable'}\n * @returns {any} a table that can be printed to the console\n */\nexport function createObjectTable(object, keyMap = {}) {\n // eslint-disable-next-line no-param-reassign\n const depth = getObjectDepth(object);\n // eslint-disable-next-line no-param-reassign\n const level = 0;\n // eslint-disable-next-line no-param-reassign\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n addRows(object, depth, level + 1, table, keyMap);\n return table;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Console.js","names":["frodo","state","MultiBar","Presets","createSpinner","Table","Color","enable","appendTextToFile","utils","impex","multiBarContainer","progressBar","spinner","data","message","newline","getOutputFile","JSON","stringify","console","dir","depth","log","process","stdout","write","text","error","stderr","info","warn","debug","curlirize","verboseMessage","getVerbose","debugMessage","getDebug","curlirizeMessage","getCurlirize","printMessage","type","createProgressBar","total","options","format","noTTYOutput","opt","legacy","create","updateProgressBar","increment","stopProgressBar","update","stop","showSpinner","start","stopSpinner","succeedSpinner","success","warnSpinner","failSpinner","spinSpinner","spin","createProgressIndicator","updateProgressIndicator","stopProgressIndicator","status","createTable","head","table","chars","top","bottom","left","mid","right","style","createKeyValueTable","wordWrap","getObjectDepth","object","Object","Math","max","values","map","hasValues","has","keys","key","addRows","level","keyMap","space","push","brightCyan","hAlign","content","gray","indention","Array","fill","join","concat","createObjectTable"],"sources":["../../src/utils/Console.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { MultiBar, Presets } from 'cli-progress';\nimport { createSpinner } from 'nanospinner';\nimport Table from 'cli-table3';\nimport Color from 'colors';\n\nColor.enable();\n\nconst { appendTextToFile } = frodo.utils.impex;\n\nlet multiBarContainer = null;\nlet progressBar = null;\nlet spinner = null;\n\n/**\n * Output a message in default color to stdout or append to `state.getOutputFile()`\n * @param {string | object} message the message\n */\nfunction data(message: string | object, newline = true) {\n if (!message) return;\n if (state.getOutputFile()) {\n if (typeof message === 'object') {\n message = JSON.stringify(message, null, 2);\n }\n if (newline) {\n message += '\\n';\n }\n appendTextToFile(message, state.getOutputFile());\n } else if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.log(message);\n } else {\n process.stdout.write(message);\n }\n}\n\n/**\n * Output a default color message to stderr\n * @param {Object} message the message\n */\nfunction text(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message);\n } else {\n process.stderr.write(message);\n }\n}\n\n/**\n * Output a message in bright cyan to stderr\n * @param {Object} message the message\n */\nfunction info(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message['brightCyan']);\n } else {\n process.stderr.write(message['brightCyan']);\n }\n}\n\n/**\n * Output a message in yellow to stderr\n * @param {Object} message the message\n */\nfunction warn(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message['yellow']);\n } else {\n process.stderr.write(message['yellow']);\n }\n}\n\n/**\n * Output a message in bright red to stderr\n * @param {Object} message the message\n */\nfunction error(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message['brightRed']);\n } else {\n process.stderr.write(message['brightRed']);\n }\n}\n\n/**\n * Output a debug message\n * @param {string | object} message the message\n */\nfunction debug(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 6 });\n } else if (newline) {\n console.error(message['brightMagenta']);\n } else {\n process.stderr.write(message['brightMagenta']);\n }\n}\n\n/**\n * Output a curlirize message\n * @param {string} message the message\n */\nfunction curlirize(message: string) {\n if (!message) return;\n console.error(message['brightBlue']);\n}\n\n/**\n * Output a message in default color to stderr\n * @param {Object} message the message\n */\nexport function verboseMessage(message) {\n if (!message) return;\n if (state.getVerbose()) {\n text(message);\n }\n}\n\n/**\n * Output a debug message\n * @param {Object} message the message\n */\nexport function debugMessage(message) {\n if (!message) return;\n if (state.getDebug()) {\n debug(message);\n }\n}\n\n/**\n * Output a curlirize message\n * @param {Object} message the message\n */\nexport function curlirizeMessage(message) {\n if (!message) return;\n if (state.getCurlirize()) {\n curlirize(message);\n }\n}\n\n/**\n * Prints a string message to console\n *\n * @param {string} message The string message to print\n * @param {string} [type=text] \"text\", \"info\", \"warn\", \"error\" or \"data\". All but\n * type=\"data\" will be written to stderr.\n * @param {boolean} [newline=true] Whether to add a newline at the end of message\n *\n */\nexport function printMessage(message, type = 'text', newline = true) {\n switch (type) {\n case 'data':\n data(message, newline);\n break;\n case 'text':\n text(message, newline);\n break;\n case 'info':\n info(message, newline);\n break;\n case 'warn':\n warn(message, newline);\n break;\n case 'error':\n error(message, newline);\n break;\n default:\n text(message, newline);\n }\n}\n\n/**\n * Creates a progress bar on stderr\n *\n * Example:\n * [========================================] 100% | 49/49 | Analyzing journey - transactional_auth\n *\n * @param {Number} total The total number of entries to track progress for\n * @param {String} message optional progress bar message\n * @param {Object} options progress bar configuration options\n *\n */\nexport function createProgressBar(\n total,\n message = null,\n options = {\n format: '[{bar}] {percentage}% | {value}/{total} | {data}',\n noTTYOutput: true,\n }\n) {\n let opt = options;\n if (message == null) {\n opt = {\n format: '[{bar}] {percentage}% | {value}/{total}',\n noTTYOutput: true,\n };\n }\n // progressBar = new SingleBar(opt, Presets.legacy); // create only when needed\n // progressBar.start(total, 0, {\n // data: message,\n // });\n multiBarContainer = new MultiBar(opt, Presets.legacy);\n progressBar = multiBarContainer.create(total, 0, {\n data: message,\n });\n}\n\n/**\n * Updates the progress bar by 1\n * @param {string} message optional message to update the progress bar\n *\n */\nexport function updateProgressBar(message = null) {\n if (message)\n progressBar.increment({\n data: message,\n });\n else progressBar.increment();\n}\n\n/**\n * Stop and hide the progress bar\n * @param {*} message optional message to update the progress bar\n */\nexport function stopProgressBar(message = null) {\n if (message)\n progressBar.update({\n data: message,\n });\n // progressBar.stop();\n multiBarContainer.stop();\n multiBarContainer = null;\n}\n\n/**\n * Create the spinner\n * @param {String} message optional spinner message\n */\nexport function showSpinner(message) {\n spinner = createSpinner(message).start();\n}\n\n/**\n * Stop the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function stopSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.stop(options);\n }\n}\n\n/**\n * Succeed the spinner. Stop and render success checkmark with optional message.\n * @param {String} message optional message to update the spinner\n */\nexport function succeedSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.success(options);\n }\n}\n\n/**\n * Warn the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function warnSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.warn(options);\n }\n}\n\n/**\n * Fail the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function failSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.error(options);\n }\n}\n\n/**\n * Spin the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function spinSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.update(options);\n spinner.spin();\n }\n}\n\nexport function createProgressIndicator(\n type = 'determinate',\n total = 0,\n message = null\n) {\n if (type === 'determinate') {\n createProgressBar(total, message);\n } else {\n showSpinner(message);\n }\n}\n\nexport function updateProgressIndicator(message) {\n if (!progressBar) {\n spinSpinner(message);\n } else {\n updateProgressBar(message);\n }\n}\n\nexport function stopProgressIndicator(message, status = 'none') {\n if (!progressBar) {\n switch (status) {\n case 'none':\n stopSpinner(message);\n break;\n case 'success':\n succeedSpinner(message);\n break;\n case 'warn':\n warnSpinner(message);\n break;\n case 'fail':\n failSpinner(message);\n break;\n default:\n stopSpinner(message);\n break;\n }\n } else {\n stopProgressBar(message);\n }\n}\n\n/**\n * Create an empty table\n * @param {string[]} head header row as an array of strings\n * @returns {any} an empty table\n */\nexport function createTable(head) {\n const table = new Table({\n head,\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n return table;\n}\n\n/**\n * Create a new key/value table\n * @returns {any} an empty key/value table\n */\nexport function createKeyValueTable() {\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n return table;\n}\n\n/**\n * Helper function to determine the total depth of an object\n * @param {Object} object input object\n * @returns {Number} total depth of the input object\n */\nfunction getObjectDepth(object) {\n return Object(object) === object\n ? 1 + Math.max(-1, ...Object.values(object).map(getObjectDepth))\n : 0;\n}\n\n/**\n * Helper function to determine if an object has values\n * @param {Object} object input object\n * @returns {boolean} true of the object or any of its sub-objects contain values, false otherwise\n */\nfunction hasValues(object) {\n let has = false;\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n return true;\n }\n has = has || hasValues(object[key]);\n }\n return has;\n}\n\n/**\n * Helper function (recursive) to add rows to an object table\n * @param {object} object object to render\n * @param {number} depth total depth of initial object\n * @param {number} level current level\n * @param {any} table the object table to add the rows to\n * @param {Object} keyMap optional JSON map to map raw config names to human readable names {'raw': 'readable'}\n * @returns the updated object table\n */\nfunction addRows(object, depth, level, table, keyMap) {\n const space = ' ';\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n if (level === 1) {\n table.push([\n keyMap[key] ? keyMap[key].brightCyan : key['brightCyan'],\n object[key],\n ]);\n } else {\n table.push([\n {\n hAlign: 'right',\n content: keyMap[key] ? keyMap[key].gray : key.gray,\n },\n object[key],\n ]);\n }\n }\n }\n for (const key of keys) {\n if (Object(object[key]) === object[key]) {\n // only print header if there are any values below\n if (hasValues(object[key])) {\n let indention = new Array(level).fill(space).join('');\n if (level < 3) indention = `\\n${indention}`;\n table.push([\n indention.concat(\n keyMap[key] ? keyMap[key].brightCyan : key['brightCyan']\n ),\n '',\n ]);\n }\n // eslint-disable-next-line no-param-reassign\n table = addRows(object[key], depth, level + 1, table, keyMap);\n }\n }\n return table;\n}\n\n/**\n * Create and populate an object table from any JSON object. Use for describe commands.\n * @param {Object} object JSON object to create\n * @param {Object} keyMap optional JSON map to map raw config names to human readable names {'raw': 'readable'}\n * @returns {any} a table that can be printed to the console\n */\nexport function createObjectTable(object, keyMap = {}) {\n // eslint-disable-next-line no-param-reassign\n const depth = getObjectDepth(object);\n // eslint-disable-next-line no-param-reassign\n const level = 0;\n // eslint-disable-next-line no-param-reassign\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n addRows(object, depth, level + 1, table, keyMap);\n return table;\n}\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
1
2
|
import fs from 'fs';
|
|
2
3
|
import slugify from 'slugify';
|
|
3
|
-
import { ExportImportUtils, state } from '@rockcarver/frodo-lib';
|
|
4
4
|
import { printMessage } from './Console';
|
|
5
5
|
const {
|
|
6
6
|
getMetadata
|
|
7
|
-
} =
|
|
7
|
+
} = frodo.utils.impex;
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Get a typed filename. E.g. "my-script.script.json"
|
|
@@ -25,6 +25,7 @@ export function getTypedFilename(name, type, suffix = 'json') {
|
|
|
25
25
|
* @param data data object
|
|
26
26
|
* @param filename file name
|
|
27
27
|
*/
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
29
|
export function saveJsonToFile(data, filename) {
|
|
29
30
|
const exportData = data;
|
|
30
31
|
if (!exportData.meta) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExportImportUtils.js","names":["
|
|
1
|
+
{"version":3,"file":"ExportImportUtils.js","names":["frodo","state","fs","slugify","printMessage","getMetadata","utils","impex","getTypedFilename","name","type","suffix","slug","replace","saveJsonToFile","data","filename","exportData","meta","writeFile","JSON","stringify","err","saveToFile","identifier","Array","isArray","forEach","element","saveTextToFile","writeFileSync","error","titleCase","input","str","toString","splitStr","toLowerCase","split","i","length","charAt","toUpperCase","slice","join","getRealmString","realm","getRealm","reduce","result","item"],"sources":["../../src/utils/ExportImportUtils.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport slugify from 'slugify';\nimport { printMessage } from './Console';\n\nconst { getMetadata } = frodo.utils.impex;\n\n/**\n * Get a typed filename. E.g. \"my-script.script.json\"\n *\n * @param name The name of the file\n * @param type The type of the file, e.g. script, idp, etc.\n * @param suffix The suffix of the file, e.g. json, xml, etc. Defaults to json.\n * @returns The typed filename\n */\nexport function getTypedFilename(\n name: string,\n type: string,\n suffix = 'json'\n): string {\n const slug = slugify(name.replace(/^http(s?):\\/\\//, ''));\n return `${slug}.${type}.${suffix}`;\n}\n\n/**\n * Save JSON object to file\n *\n * @param data data object\n * @param filename file name\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function saveJsonToFile(data: any, filename: string) {\n const exportData = data;\n if (!exportData.meta) {\n exportData.meta = getMetadata();\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${filename}`, 'error');\n }\n return '';\n });\n}\n\nexport function saveToFile(type, data, identifier, filename) {\n const exportData = {};\n exportData['meta'] = getMetadata();\n exportData[type] = {};\n\n if (Array.isArray(data)) {\n data.forEach((element) => {\n exportData[type][element[identifier]] = element;\n });\n } else {\n exportData[type][data[identifier]] = data;\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${type} to file`, 'error');\n }\n return '';\n });\n}\n\n/**\n * Save text data to file\n * @param data text data\n * @param filename file name\n * @return true if successful, false otherwise\n */\nexport function saveTextToFile(data: string, filename: string): boolean {\n try {\n fs.writeFileSync(filename, data);\n return true;\n } catch (error) {\n printMessage(`ERROR - can't save ${filename}`, 'error');\n return false;\n }\n}\n\n/*\n * Output str in title case\n *\n * e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'\n */\nexport function titleCase(input) {\n const str = input.toString();\n const splitStr = str.toLowerCase().split(' ');\n for (let i = 0; i < splitStr.length; i += 1) {\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].slice(1);\n }\n return splitStr.join(' ');\n}\n\nexport function getRealmString() {\n const realm = state.getRealm();\n return realm\n .split('/')\n .reduce((result, item) => `${result}${titleCase(item)}`, '');\n}\n"],"mappings":"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"}
|
package/esm/utils/Version.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
import { frodo } from '@rockcarver/frodo-lib';
|
|
1
2
|
import fs from 'fs';
|
|
2
3
|
import path from 'path';
|
|
3
4
|
import os from 'os';
|
|
4
5
|
import { fileURLToPath } from 'url';
|
|
5
6
|
import { compareVersions } from 'compare-versions';
|
|
6
7
|
import Color from 'colors';
|
|
7
|
-
|
|
8
|
+
const {
|
|
9
|
+
getVersion,
|
|
10
|
+
getAllVersions
|
|
11
|
+
} = frodo.utils.version;
|
|
8
12
|
const VERSION_CACHE_FILE = `${os.homedir()}/.frodo/Versions.json`;
|
|
9
13
|
const VERSION_CHECK_INTERVAL = 3600;
|
|
10
14
|
const GITHUB_REPOS_URL = `https://api.github.com`;
|
|
@@ -30,7 +34,7 @@ function getCliVersion() {
|
|
|
30
34
|
return `${pkg.version}`;
|
|
31
35
|
}
|
|
32
36
|
function getLibVersion() {
|
|
33
|
-
return
|
|
37
|
+
return getVersion();
|
|
34
38
|
}
|
|
35
39
|
function extractGithubReleaseInfo(data) {
|
|
36
40
|
const release = {
|
|
@@ -68,7 +72,7 @@ async function getRemoteVersionData() {
|
|
|
68
72
|
}
|
|
69
73
|
if (!useCache) {
|
|
70
74
|
const allVersions = [];
|
|
71
|
-
const result = await
|
|
75
|
+
const result = await getAllVersions(ENDPOINTS);
|
|
72
76
|
result.forEach(item => {
|
|
73
77
|
if (Array.isArray(item['value'].data)) {
|
|
74
78
|
allVersions.push(extractGithubReleaseInfo(item['value'].data));
|
package/esm/utils/Version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Version.js","names":["fs","path","os","fileURLToPath","compareVersions","Color","LibVersion","VERSION_CACHE_FILE","homedir","VERSION_CHECK_INTERVAL","GITHUB_REPOS_URL","GITHUB_RELEASES_PATH_CLI","NPM_BASE_URL","NPM_PACKAGE_PATH_CLI","ENDPOINTS","base","versionObject","last_checked","github","npm","__dirname","dirname","import","meta","url","enable","pkg","JSON","parse","readFileSync","resolve","getCliVersion","version","getLibVersion","getVersion","extractGithubReleaseInfo","data","release","type","published_at","r","find","rel","prerelease","tag_name","replace","extractNpmReleaseInfo","latest","time","getRemoteVersionData","useCache","existsSync","Math","floor","Date","now","allVersions","result","getAllVersions","forEach","item","Array","isArray","push","element","writeFileSync","stringify","getBinaryName","basename","process","execPath","getVersions","checkOnly","updateAvailable","usingBinary","e","versionString","newVersionString","green"],"sources":["../../src/utils/Version.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { fileURLToPath } from 'url';\nimport { compareVersions } from 'compare-versions';\n\nimport Color from 'colors';\n\nimport { LibVersion } from '@rockcarver/frodo-lib';\n\nconst VERSION_CACHE_FILE = `${os.homedir()}/.frodo/Versions.json`;\nconst VERSION_CHECK_INTERVAL = 3600;\n\nconst GITHUB_REPOS_URL = `https://api.github.com`;\nconst GITHUB_RELEASES_PATH_CLI = `/repos/rockcarver/frodo-cli/releases`;\n\nconst NPM_BASE_URL = `https://registry.npmjs.org`;\nconst NPM_PACKAGE_PATH_CLI = `/@rockcarver/frodo-cli`;\n\nconst ENDPOINTS = [\n {\n base: GITHUB_REPOS_URL,\n path: GITHUB_RELEASES_PATH_CLI,\n },\n {\n base: NPM_BASE_URL,\n path: NPM_PACKAGE_PATH_CLI,\n },\n];\n\nlet versionObject = {\n last_checked: 0,\n github: '',\n npm: '',\n};\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nColor.enable();\n\nconst pkg = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, '../../package.json'), 'utf8')\n);\n\nfunction getCliVersion() {\n return `${pkg.version}`;\n}\n\nfunction getLibVersion() {\n return LibVersion.getVersion();\n}\n\nfunction extractGithubReleaseInfo(data) {\n const release = {\n type: 'github',\n version: '',\n published_at: '',\n };\n // find first stable release\n const r = data.find((rel) => rel.prerelease == false);\n release.version = r.tag_name.replace('v', '');\n release.published_at = r.published_at;\n return release;\n}\n\nfunction extractNpmReleaseInfo(data) {\n const release = {\n type: 'npm',\n version: '',\n published_at: '',\n };\n // stable release\n release.version = data[`dist-tags`].latest;\n release.published_at = data.time[data[`dist-tags`].latest];\n return release;\n}\n\nasync function getRemoteVersionData() {\n let useCache = true;\n if (fs.existsSync(VERSION_CACHE_FILE)) {\n const data = fs.readFileSync(VERSION_CACHE_FILE, 'utf8');\n versionObject = JSON.parse(data);\n if (\n versionObject.last_checked + VERSION_CHECK_INTERVAL <\n Math.floor(Date.now() / 1000)\n ) {\n useCache = false;\n }\n } else {\n useCache = false;\n }\n\n if (!useCache) {\n const allVersions = [];\n const result = await LibVersion.getAllVersions(ENDPOINTS);\n result.forEach((item) => {\n if (Array.isArray(item['value'].data)) {\n allVersions.push(extractGithubReleaseInfo(item['value'].data));\n } else {\n allVersions.push(extractNpmReleaseInfo(item['value'].data));\n }\n });\n allVersions.forEach((element) => {\n // cli\n if (element.type == 'github') {\n versionObject.github = element.version;\n } else {\n versionObject.npm = element.version;\n }\n });\n versionObject.last_checked = Math.floor(Date.now() / 1000);\n fs.writeFileSync(\n VERSION_CACHE_FILE,\n JSON.stringify(versionObject, null, 2)\n );\n }\n}\n\nfunction getBinaryName() {\n return path.basename(process.execPath);\n}\n\nexport async function getVersions(checkOnly: boolean) {\n let updateAvailable = false;\n let usingBinary = false;\n if (getBinaryName() === 'frodo' || getBinaryName() === 'frodo.exe') {\n usingBinary = true;\n }\n try {\n await getRemoteVersionData();\n } catch (e) {\n // Do not report error if remote version can not be obtained.\n // Just silently report installed version\n versionObject = {\n last_checked: 0,\n github: null,\n npm: null,\n };\n }\n\n let versionString = `You are running the ${\n usingBinary ? 'binary release' : 'NPM package'\n }.`;\n\n versionString += `\\nInstalled versions:`;\n versionString += `\\ncli: v${getCliVersion()}\\nlib: v${getLibVersion()}\\nnode: ${\n process.version\n }`;\n let newVersionString = '';\n if (\n (usingBinary &&\n versionObject.github != null &&\n compareVersions(getCliVersion(), versionObject.github) == -1) ||\n (!usingBinary &&\n versionObject.npm != null &&\n compareVersions(getCliVersion(), versionObject.npm) == -1)\n ) {\n updateAvailable = true;\n newVersionString += `\\n\\nNewer version(s) available`;\n if (usingBinary) {\n newVersionString +=\n compareVersions(getCliVersion(), versionObject.github) == -1\n ? `\\ncli (github): v${versionObject.github}`.green\n : ``;\n } else {\n newVersionString +=\n compareVersions(getCliVersion(), versionObject.npm) == -1\n ? `\\ncli (npm): v${versionObject.npm}`.green\n : ``;\n }\n }\n if (checkOnly) {\n if (updateAvailable) {\n return `A new version of frodo is available.\\nPlease run 'frodo -v' for more details.\\n`\n .green;\n } else {\n return ``;\n }\n } else {\n return versionString + newVersionString;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Version.js","names":["frodo","fs","path","os","fileURLToPath","compareVersions","Color","getVersion","getAllVersions","utils","version","VERSION_CACHE_FILE","homedir","VERSION_CHECK_INTERVAL","GITHUB_REPOS_URL","GITHUB_RELEASES_PATH_CLI","NPM_BASE_URL","NPM_PACKAGE_PATH_CLI","ENDPOINTS","base","versionObject","last_checked","github","npm","__dirname","dirname","import","meta","url","enable","pkg","JSON","parse","readFileSync","resolve","getCliVersion","getLibVersion","extractGithubReleaseInfo","data","release","type","published_at","r","find","rel","prerelease","tag_name","replace","extractNpmReleaseInfo","latest","time","getRemoteVersionData","useCache","existsSync","Math","floor","Date","now","allVersions","result","forEach","item","Array","isArray","push","element","writeFileSync","stringify","getBinaryName","basename","process","execPath","getVersions","checkOnly","updateAvailable","usingBinary","e","versionString","newVersionString","green"],"sources":["../../src/utils/Version.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { fileURLToPath } from 'url';\nimport { compareVersions } from 'compare-versions';\nimport Color from 'colors';\n\nconst { getVersion, getAllVersions } = frodo.utils.version;\n\nconst VERSION_CACHE_FILE = `${os.homedir()}/.frodo/Versions.json`;\nconst VERSION_CHECK_INTERVAL = 3600;\n\nconst GITHUB_REPOS_URL = `https://api.github.com`;\nconst GITHUB_RELEASES_PATH_CLI = `/repos/rockcarver/frodo-cli/releases`;\n\nconst NPM_BASE_URL = `https://registry.npmjs.org`;\nconst NPM_PACKAGE_PATH_CLI = `/@rockcarver/frodo-cli`;\n\nconst ENDPOINTS = [\n {\n base: GITHUB_REPOS_URL,\n path: GITHUB_RELEASES_PATH_CLI,\n },\n {\n base: NPM_BASE_URL,\n path: NPM_PACKAGE_PATH_CLI,\n },\n];\n\nlet versionObject = {\n last_checked: 0,\n github: '',\n npm: '',\n};\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nColor.enable();\n\nconst pkg = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, '../../package.json'), 'utf8')\n);\n\nfunction getCliVersion() {\n return `${pkg.version}`;\n}\n\nfunction getLibVersion() {\n return getVersion();\n}\n\nfunction extractGithubReleaseInfo(data) {\n const release = {\n type: 'github',\n version: '',\n published_at: '',\n };\n // find first stable release\n const r = data.find((rel) => rel.prerelease == false);\n release.version = r.tag_name.replace('v', '');\n release.published_at = r.published_at;\n return release;\n}\n\nfunction extractNpmReleaseInfo(data) {\n const release = {\n type: 'npm',\n version: '',\n published_at: '',\n };\n // stable release\n release.version = data[`dist-tags`].latest;\n release.published_at = data.time[data[`dist-tags`].latest];\n return release;\n}\n\nasync function getRemoteVersionData() {\n let useCache = true;\n if (fs.existsSync(VERSION_CACHE_FILE)) {\n const data = fs.readFileSync(VERSION_CACHE_FILE, 'utf8');\n versionObject = JSON.parse(data);\n if (\n versionObject.last_checked + VERSION_CHECK_INTERVAL <\n Math.floor(Date.now() / 1000)\n ) {\n useCache = false;\n }\n } else {\n useCache = false;\n }\n\n if (!useCache) {\n const allVersions = [];\n const result = await getAllVersions(ENDPOINTS);\n result.forEach((item) => {\n if (Array.isArray(item['value'].data)) {\n allVersions.push(extractGithubReleaseInfo(item['value'].data));\n } else {\n allVersions.push(extractNpmReleaseInfo(item['value'].data));\n }\n });\n allVersions.forEach((element) => {\n // cli\n if (element.type == 'github') {\n versionObject.github = element.version;\n } else {\n versionObject.npm = element.version;\n }\n });\n versionObject.last_checked = Math.floor(Date.now() / 1000);\n fs.writeFileSync(\n VERSION_CACHE_FILE,\n JSON.stringify(versionObject, null, 2)\n );\n }\n}\n\nfunction getBinaryName() {\n return path.basename(process.execPath);\n}\n\nexport async function getVersions(checkOnly: boolean) {\n let updateAvailable = false;\n let usingBinary = false;\n if (getBinaryName() === 'frodo' || getBinaryName() === 'frodo.exe') {\n usingBinary = true;\n }\n try {\n await getRemoteVersionData();\n } catch (e) {\n // Do not report error if remote version can not be obtained.\n // Just silently report installed version\n versionObject = {\n last_checked: 0,\n github: null,\n npm: null,\n };\n }\n\n let versionString = `You are running the ${\n usingBinary ? 'binary release' : 'NPM package'\n }.`;\n\n versionString += `\\nInstalled versions:`;\n versionString += `\\ncli: v${getCliVersion()}\\nlib: v${getLibVersion()}\\nnode: ${\n process.version\n }`;\n let newVersionString = '';\n if (\n (usingBinary &&\n versionObject.github != null &&\n compareVersions(getCliVersion(), versionObject.github) == -1) ||\n (!usingBinary &&\n versionObject.npm != null &&\n compareVersions(getCliVersion(), versionObject.npm) == -1)\n ) {\n updateAvailable = true;\n newVersionString += `\\n\\nNewer version(s) available`;\n if (usingBinary) {\n newVersionString +=\n compareVersions(getCliVersion(), versionObject.github) == -1\n ? `\\ncli (github): v${versionObject.github}`.green\n : ``;\n } else {\n newVersionString +=\n compareVersions(getCliVersion(), versionObject.npm) == -1\n ? `\\ncli (npm): v${versionObject.npm}`.green\n : ``;\n }\n }\n if (checkOnly) {\n if (updateAvailable) {\n return `A new version of frodo is available.\\nPlease run 'frodo -v' for more details.\\n`\n .green;\n } else {\n return ``;\n }\n } else {\n return versionString + newVersionString;\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rockcarver/frodo-cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A command line interface to manage ForgeRock Identity Cloud tenants, ForgeOps deployments, and classic deployments.",
|
|
6
6
|
"keywords": [
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
]
|
|
102
102
|
},
|
|
103
103
|
"dependencies": {
|
|
104
|
-
"@rockcarver/frodo-lib": "
|
|
104
|
+
"@rockcarver/frodo-lib": "2.0.0-12",
|
|
105
105
|
"chokidar": "^3.5.3",
|
|
106
106
|
"cli-progress": "^3.11.2",
|
|
107
107
|
"cli-table3": "^0.6.3",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logs-fetch.js","names":["FrodoCommand","sourcesOptionM","Option","Authenticate","ConnectionProfile","Log","state","config","printMessage","fetchLogs","provisionCreds","resolveLevel","getConnectionProfile","saveConnectionProfile","getTokens","SECONDS_IN_30_DAYS","SECONDS_IN_1_HOUR","LOG_TIME_WINDOW_MAX","LOG_TIME_WINDOW_INCREMENT","program","description","addOption","default","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","handleDefaultArgsAndOpts","credsFromParameters","conn","setHost","tenant","logApiKey","logApiSecret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","setUsername","setPassword","creds","api_key_id","api_key_secret","now","Date","nowString","toISOString","beginTimestamp","tempStartDate","setTime","tempEndDate","endTimestamp","beginTs","parse","endTs","intermediateEndTs","opts","sources","level","timeIncrement","transactionId","searchString","getNoiseFilters","defaults"],"sources":["../../../src/cli/logging/logs-fetch.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { sourcesOptionM } from './logs';\nimport { Option } from 'commander';\nimport {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport * as config from '../../utils/Config';\nimport { printMessage } from '../../utils/Console';\nimport { fetchLogs, provisionCreds } from '../../ops/LogOps';\n\nconst { resolveLevel } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst SECONDS_IN_30_DAYS = 2592000;\nconst SECONDS_IN_1_HOUR = 3600;\nconst LOG_TIME_WINDOW_MAX = SECONDS_IN_30_DAYS;\nconst LOG_TIME_WINDOW_INCREMENT = 1;\n\nconst program = new FrodoCommand('frodo logs fetch', ['realm', 'type']);\nprogram\n .description(\n 'Fetch Identity Cloud logs between a specified begin and end time period.\\\n WARNING: depending on filters and time period specified, this could take substantial time to complete.'\n )\n .addOption(sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option(\n '-b, --begin-timestamp <beginTs>',\n 'Begin timestamp for period (in ISO8601, example: \"2022-10-13T19:06:28Z\", or \"2022-09.30\". \\\nCannot be more than 30 days in the past. If not specified, logs from one hour ago are fetched \\\n(-e is ignored)'\n )\n )\n .addOption(\n new Option(\n '-e, --end-timestamp <endTs>',\n 'End timestamp for period. Default: \"now\"'\n )\n )\n .addOption(\n new Option(\n '-s, --search-string <ss>',\n 'Filter by a specific string (ANDed with transactionID filter)'\n )\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in $HOME/${config.FRODO_LOG_NOISEFILTER_FILENAME}`\n )\n )\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n let credsFromParameters = true;\n const conn = await getConnectionProfile();\n if (conn) {\n state.setHost(conn.tenant);\n if (conn.logApiKey != null && conn.logApiSecret != null) {\n credsFromParameters = false;\n state.setLogApiKey(conn.logApiKey);\n state.setLogApiSecret(conn.logApiSecret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (!state.getUsername() && !state.getPassword()) {\n credsFromParameters = false;\n printMessage(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.setUsername(conn.username);\n state.setPassword(conn.password);\n }\n if (await getTokens(true)) {\n const creds = await provisionCreds();\n state.setLogApiKey(creds.api_key_id);\n state.setLogApiSecret(creds.api_key_secret);\n }\n }\n const now = Date.now() / 1000;\n const nowString = new Date(now * 1000).toISOString();\n if (\n typeof options.beginTimestamp === 'undefined' ||\n !options.beginTimestamp\n ) {\n // no beginTimestamp value specified, default is 1 hour ago\n const tempStartDate = new Date();\n tempStartDate.setTime((now - SECONDS_IN_1_HOUR) * 1000);\n options.beginTimestamp = tempStartDate.toISOString();\n // also override endTimestamp to now\n const tempEndDate = new Date();\n tempEndDate.setTime(now * 1000);\n options.endTimestamp = tempEndDate;\n printMessage(\n 'No timestamps specified, defaulting to logs from 1 hour ago',\n 'info'\n );\n }\n if (\n typeof options.endTimestamp === 'undefined' ||\n !options.endTimestamp\n ) {\n // no endTimestamp value specified, default is now\n options.endTimestamp = nowString;\n printMessage(\n 'No end timestamp specified, defaulting end timestamp to \"now\"',\n 'info'\n );\n }\n let beginTs = Date.parse(options.beginTimestamp) / 1000;\n const endTs = Date.parse(options.endTimestamp) / 1000;\n if (endTs < beginTs) {\n printMessage(\n 'End timestamp can not be before begin timestamp',\n 'error'\n );\n return;\n }\n if (now - beginTs > LOG_TIME_WINDOW_MAX) {\n printMessage(\n 'Begin timestamp can not be more than 30 days in the past',\n 'error'\n );\n return;\n }\n let intermediateEndTs = 0;\n printMessage(\n `Fetching ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${resolveLevel(command.opts().level)}] of ${\n conn.tenant\n }...`\n );\n if (credsFromParameters) await saveConnectionProfile(host); // save new values if they were specified on CLI\n\n let timeIncrement = LOG_TIME_WINDOW_INCREMENT;\n if (endTs - beginTs > 30) {\n timeIncrement = timeIncrement * 30;\n }\n do {\n intermediateEndTs = beginTs + timeIncrement;\n await fetchLogs(\n command.opts().sources,\n new Date(beginTs * 1000).toISOString(),\n new Date(intermediateEndTs * 1000).toISOString(),\n resolveLevel(command.opts().level),\n command.opts().transactionId,\n command.opts().searchString,\n null,\n config.getNoiseFilters(options.defaults)\n );\n beginTs = intermediateEndTs;\n } while (intermediateEndTs < endTs);\n }\n });\n\nprogram.parse();\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logs-list.js","names":["FrodoCommand","Authenticate","ConnectionProfile","Log","state","printMessage","verboseMessage","provisionCreds","getLogSources","getConnectionProfile","saveConnectionProfile","getTokens","program","description","action","host","user","password","options","command","handleDefaultArgsAndOpts","credsFromParameters","conn","setHost","tenant","logApiKey","logApiSecret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","setUsername","setPassword","creds","api_key_id","api_key_secret","sources","length","forEach","source","parse"],"sources":["../../../src/cli/logging/logs-list.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { provisionCreds } from '../../ops/LogOps';\n\nconst { getLogSources } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo logs list', ['realm', 'type']);\nprogram\n .description('List available ID Cloud log sources.')\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n let credsFromParameters = true;\n verboseMessage('Listing available ID Cloud log sources...');\n const conn = await getConnectionProfile();\n if (conn) {\n state.setHost(conn.tenant);\n if (conn.logApiKey != null && conn.logApiSecret != null) {\n credsFromParameters = false;\n state.setLogApiKey(conn.logApiKey);\n state.setLogApiSecret(conn.logApiSecret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (!state.getUsername() && !state.getPassword()) {\n credsFromParameters = false;\n printMessage(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.setUsername(conn.username);\n state.setPassword(conn.password);\n }\n if (await getTokens(true)) {\n const creds = await provisionCreds();\n state.setLogApiKey(creds.api_key_id);\n state.setLogApiSecret(creds.api_key_secret);\n }\n }\n\n const sources = await getLogSources();\n if (sources.length === 0) {\n printMessage(\n \"Can't get sources, possible cause - wrong API key or secret\",\n 'error'\n );\n } else {\n if (credsFromParameters) await saveConnectionProfile(host); // save new values if they were specified on CLI\n printMessage(`Log sources from ${conn.tenant}`);\n sources.forEach((source) => {\n printMessage(`${source}`, 'data');\n });\n printMessage(\n 'Use any combination of comma separated sources, example:',\n 'info'\n );\n printMessage(`$ frodo logs tail -c am-core,idm-core ${host}`, 'text');\n }\n }\n });\n\nprogram.parse();\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logs-tail.js","names":["FrodoCommand","sourcesOptionM","Option","Authenticate","ConnectionProfile","Log","state","config","printMessage","provisionCreds","tailLogs","resolveLevel","getConnectionProfile","saveConnectionProfile","getTokens","program","description","addOption","default","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","handleDefaultArgsAndOpts","credsFromParameters","conn","setHost","tenant","logApiKey","logApiSecret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","setUsername","setPassword","creds","api_key_id","api_key_secret","opts","sources","level","transactionId","getNoiseFilters","defaults","parse"],"sources":["../../../src/cli/logging/logs-tail.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { sourcesOptionM } from './logs';\nimport { Option } from 'commander';\nimport {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport * as config from '../../utils/Config';\nimport { printMessage } from '../../utils/Console';\nimport { provisionCreds, tailLogs } from '../../ops/LogOps';\n\nconst { resolveLevel } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo logs tail', ['realm', 'type']);\nprogram\n .description('Tail Identity Cloud logs.')\n .addOption(sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in $HOME/${config.FRODO_LOG_NOISEFILTER_FILENAME}`\n )\n )\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n let credsFromParameters = true;\n const conn = await getConnectionProfile();\n if (conn) {\n state.setHost(conn.tenant);\n if (conn.logApiKey != null && conn.logApiSecret != null) {\n credsFromParameters = false;\n state.setLogApiKey(conn.logApiKey);\n state.setLogApiSecret(conn.logApiSecret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (!state.getUsername() && !state.getPassword()) {\n credsFromParameters = false;\n printMessage(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.setUsername(conn.username);\n state.setPassword(conn.password);\n }\n if (await getTokens(true)) {\n const creds = await provisionCreds();\n state.setLogApiKey(creds.api_key_id);\n state.setLogApiSecret(creds.api_key_secret);\n }\n }\n printMessage(\n `Tailing ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${resolveLevel(command.opts().level)}] of ${\n conn.tenant\n }...`\n );\n if (credsFromParameters) await saveConnectionProfile(host); // save new values if they were specified on CLI\n await tailLogs(\n command.opts().sources,\n resolveLevel(command.opts().level),\n command.opts().transactionId,\n null,\n config.getNoiseFilters(options.defaults)\n );\n }\n });\n\nprogram.parse();\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","names":["FrodoStubCommand","Option","path","fileURLToPath","__dirname","dirname","import","meta","url","sourcesOptionM","makeOptionMandatory","default","setup","program","summary","description","executableDir","command"],"sources":["../../../src/cli/logging/logs.ts"],"sourcesContent":["import { FrodoStubCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport const sourcesOptionM = new Option(\n '-c, --sources <sources>',\n 'Comma separated list of log sources'\n)\n .makeOptionMandatory()\n .default('am-everything,idm-everything', 'Log everything');\n\nexport default function setup() {\n const program = new FrodoStubCommand('logs')\n .summary('List/View Identity Cloud logs')\n .description(\n `View Identity Cloud logs. If valid tenant admin credentials are specified, a log API key and secret are automatically created for that admin user.`\n )\n .executableDir(__dirname);\n\n program.command('list', 'List available ID Cloud log sources.');\n\n program.command('tail', 'Tail Identity Cloud logs.');\n\n program.command('fetch', 'Fetch Identity Cloud logs for a time window.');\n\n return program;\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,iBAAiB;AAClD,SAASC,MAAM,QAAQ,WAAW;AAClC,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,aAAa,QAAQ,KAAK;AAEnC,MAAMC,SAAS,GAAGF,IAAI,CAACG,OAAO,CAACF,aAAa,CAACG,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC;AAE9D,OAAO,MAAMC,cAAc,GAAG,IAAIR,MAAM,CACtC,yBAAyB,EACzB,qCACF,CAAC,CACES,mBAAmB,CAAC,CAAC,CACrBC,OAAO,CAAC,8BAA8B,EAAE,gBAAgB,CAAC;AAE5D,eAAe,SAASC,KAAKA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIb,gBAAgB,CAAC,MAAM,CAAC,CACzCc,OAAO,CAAC,+BAA+B,CAAC,CACxCC,WAAW,CACT,oJACH,CAAC,CACAC,aAAa,CAACZ,SAAS,CAAC;EAE3BS,OAAO,CAACI,OAAO,CAAC,MAAM,EAAE,sCAAsC,CAAC;EAE/DJ,OAAO,CAACI,OAAO,CAAC,MAAM,EAAE,2BAA2B,CAAC;EAEpDJ,OAAO,CAACI,OAAO,CAAC,OAAO,EAAE,8CAA8C,CAAC;EAExE,OAAOJ,OAAO;AAChB"}
|