@rockcarver/frodo-cli 2.0.0-4 → 2.0.0-41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +312 -5
- package/esm/app.js +22 -5
- package/esm/app.js.map +1 -1
- package/esm/cli/FrodoCommand.js +33 -7
- package/esm/cli/FrodoCommand.js.map +1 -1
- package/esm/cli/_template/something-delete.js +7 -5
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +7 -5
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +7 -5
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +7 -5
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +8 -6
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +7 -5
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +7 -5
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-else.js +1 -1
- package/esm/cli/_template/something-else.js.map +1 -1
- package/esm/cli/_template/something-export.js +8 -6
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +7 -5
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +7 -5
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +7 -5
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +7 -5
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +8 -6
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +7 -5
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +7 -5
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/_template/something-other.js +1 -1
- package/esm/cli/_template/something-other.js.map +1 -1
- package/esm/cli/_template/something.js +2 -2
- package/esm/cli/_template/something.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +10 -5
- 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 +14 -8
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js +41 -0
- package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +1 -0
- package/esm/cli/admin/admin-federation-export.js +44 -0
- package/esm/cli/admin/admin-federation-export.js.map +1 -0
- package/esm/cli/admin/admin-federation-import.js +48 -0
- package/esm/cli/admin/admin-federation-import.js.map +1 -0
- package/esm/cli/admin/admin-federation-list.js +28 -0
- package/esm/cli/admin/admin-federation-list.js.map +1 -0
- package/esm/cli/admin/admin-federation.js +13 -0
- package/esm/cli/admin/admin-federation.js.map +1 -0
- package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js +43 -0
- package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +1 -0
- package/esm/cli/admin/admin-get-access-token.js +12 -7
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +13 -8
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +11 -6
- 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 +11 -6
- 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 +11 -6
- 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 +12 -7
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +12 -6
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +11 -6
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +12 -7
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +11 -6
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin-train-auto-access-model.js +32 -0
- package/esm/cli/admin/admin-train-auto-access-model.js.map +1 -0
- package/esm/cli/admin/admin.js +8 -2
- package/esm/cli/admin/admin.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +13 -7
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +7 -5
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +12 -10
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +13 -7
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +7 -5
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +12 -10
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +8 -6
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +7 -5
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-gateway.js +1 -1
- package/esm/cli/agent/agent-gateway.js.map +1 -1
- package/esm/cli/agent/agent-import.js +8 -6
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +13 -7
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +7 -5
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +12 -10
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +8 -6
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +7 -5
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-java.js +1 -1
- package/esm/cli/agent/agent-java.js.map +1 -1
- package/esm/cli/agent/agent-list.js +7 -5
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +13 -7
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +7 -5
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +12 -10
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +8 -6
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +7 -5
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/agent/agent-web.js +3 -3
- package/esm/cli/agent/agent-web.js.map +1 -1
- package/esm/cli/agent/agent.js +2 -2
- package/esm/cli/agent/agent.js.map +1 -1
- package/esm/cli/app/app-delete.js +27 -9
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +9 -6
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +17 -14
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +21 -18
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +12 -9
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/app/app.js +8 -12
- package/esm/cli/app/app.js.map +1 -1
- package/esm/cli/authn/authn-describe.js +29 -0
- package/esm/cli/authn/authn-describe.js.map +1 -0
- package/esm/cli/authn/authn-export.js +25 -0
- package/esm/cli/authn/authn-export.js.map +1 -0
- package/esm/cli/authn/authn-import.js +25 -0
- package/esm/cli/authn/authn-import.js.map +1 -0
- package/esm/cli/authn/authn.js +12 -0
- package/esm/cli/authn/authn.js.map +1 -0
- package/esm/cli/authz/authz-policy-delete.js +11 -9
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-policy-describe.js +8 -6
- package/esm/cli/authz/authz-policy-describe.js.map +1 -1
- package/esm/cli/authz/authz-policy-export.js +18 -16
- package/esm/cli/authz/authz-policy-export.js.map +1 -1
- package/esm/cli/authz/authz-policy-import.js +11 -9
- package/esm/cli/authz/authz-policy-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-list.js +11 -9
- package/esm/cli/authz/authz-policy-list.js.map +1 -1
- package/esm/cli/authz/authz-policy.js +1 -1
- package/esm/cli/authz/authz-policy.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js +11 -9
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-describe.js +8 -6
- package/esm/cli/authz/authz-set-describe.js.map +1 -1
- package/esm/cli/authz/authz-set-export.js +14 -12
- package/esm/cli/authz/authz-set-export.js.map +1 -1
- package/esm/cli/authz/authz-set-import.js +11 -9
- package/esm/cli/authz/authz-set-import.js.map +1 -1
- package/esm/cli/authz/authz-set-list.js +8 -6
- package/esm/cli/authz/authz-set-list.js.map +1 -1
- package/esm/cli/authz/authz-set.js +1 -1
- package/esm/cli/authz/authz-set.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +13 -11
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-describe.js +9 -7
- package/esm/cli/authz/authz-type-describe.js.map +1 -1
- package/esm/cli/authz/authz-type-export.js +16 -14
- package/esm/cli/authz/authz-type-export.js.map +1 -1
- package/esm/cli/authz/authz-type-import.js +14 -12
- package/esm/cli/authz/authz-type-import.js.map +1 -1
- package/esm/cli/authz/authz-type-list.js +9 -7
- package/esm/cli/authz/authz-type-list.js.map +1 -1
- package/esm/cli/authz/authz-type.js +1 -1
- package/esm/cli/authz/authz-type.js.map +1 -1
- package/esm/cli/authz/authz.js +2 -2
- package/esm/cli/authz/authz.js.map +1 -1
- package/esm/cli/config/config-delete.js +21 -0
- package/esm/cli/config/config-delete.js.map +1 -0
- package/esm/cli/config/config-describe.js +21 -0
- package/esm/cli/config/config-describe.js.map +1 -0
- package/esm/cli/config/config-export.js +43 -0
- package/esm/cli/config/config-export.js.map +1 -0
- package/esm/cli/config/config-import.js +54 -0
- package/esm/cli/config/config-import.js.map +1 -0
- package/esm/cli/config/config-list.js +21 -0
- package/esm/cli/config/config-list.js.map +1 -0
- package/esm/cli/config/config.js +19 -0
- package/esm/cli/config/config.js.map +1 -0
- package/esm/cli/conn/conn-delete.js +2 -3
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-describe.js +2 -3
- package/esm/cli/conn/conn-describe.js.map +1 -1
- package/esm/cli/conn/conn-list.js +2 -3
- package/esm/cli/conn/conn-list.js.map +1 -1
- package/esm/cli/conn/conn-save.js +31 -16
- package/esm/cli/conn/conn-save.js.map +1 -1
- package/esm/cli/conn/conn.js +2 -2
- package/esm/cli/conn/conn.js.map +1 -1
- package/esm/cli/email/email-template-export.js +14 -12
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +15 -13
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +9 -7
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/email/email-template.js +1 -1
- package/esm/cli/email/email-template.js.map +1 -1
- package/esm/cli/email/email.js +2 -2
- package/esm/cli/email/email.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +18 -9
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +10 -7
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +13 -10
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +10 -7
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +22 -7
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +7 -5
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +11 -8
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +10 -7
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +10 -8
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +10 -7
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +10 -8
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +13 -10
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +10 -7
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-version.js +1 -1
- package/esm/cli/esv/esv-secret-version.js.map +1 -1
- package/esm/cli/esv/esv-secret.js +2 -3
- package/esm/cli/esv/esv-secret.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +11 -7
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +13 -9
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +11 -8
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +23 -7
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +7 -5
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +11 -8
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +12 -8
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/esv/esv-variable.js +2 -3
- package/esm/cli/esv/esv-variable.js.map +1 -1
- package/esm/cli/esv/esv.js +2 -2
- package/esm/cli/esv/esv.js.map +1 -1
- package/esm/cli/idm/idm-count.js +10 -8
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +24 -16
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +22 -14
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +9 -7
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idm/idm.js +2 -2
- package/esm/cli/idm/idm.js.map +1 -1
- package/esm/cli/idp/idp-export.js +12 -10
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +24 -14
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +8 -6
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/idp/idp.js +2 -2
- package/esm/cli/idp/idp.js.map +1 -1
- package/esm/cli/info/info.js +13 -8
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +14 -8
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +22 -12
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +11 -12
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +11 -12
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +24 -13
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +15 -13
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +7 -5
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +23 -13
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/journey/journey.js +2 -2
- package/esm/cli/journey/journey.js.map +1 -1
- package/esm/cli/{logging/logs-fetch.js → log/log-fetch.js} +68 -36
- package/esm/cli/log/log-fetch.js.map +1 -0
- package/esm/cli/log/log-key-delete.js +34 -0
- package/esm/cli/log/log-key-delete.js.map +1 -0
- package/esm/cli/log/log-key-describe.js +21 -0
- package/esm/cli/log/log-key-describe.js.map +1 -0
- package/esm/cli/log/log-key-list.js +25 -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/log/log-list.js +80 -0
- package/esm/cli/log/log-list.js.map +1 -0
- package/esm/cli/log/log-tail.js +77 -0
- package/esm/cli/log/log-tail.js.map +1 -0
- package/esm/cli/{logging/logs.js → log/log.js} +6 -3
- package/esm/cli/log/log.js.map +1 -0
- package/esm/cli/oauth/oauth-client-delete.js +21 -0
- package/esm/cli/oauth/oauth-client-delete.js.map +1 -0
- package/esm/cli/oauth/oauth-client-describe.js +21 -0
- package/esm/cli/oauth/oauth-client-describe.js.map +1 -0
- package/esm/cli/oauth/oauth-client-export.js +51 -0
- package/esm/cli/oauth/oauth-client-export.js.map +1 -0
- package/esm/cli/oauth/oauth-client-import.js +56 -0
- package/esm/cli/oauth/oauth-client-import.js.map +1 -0
- package/esm/cli/oauth/oauth-client-list.js +24 -0
- package/esm/cli/oauth/oauth-client-list.js.map +1 -0
- package/esm/cli/oauth/oauth-client.js +14 -0
- package/esm/cli/oauth/oauth-client.js.map +1 -0
- package/esm/cli/oauth/oauth.js +13 -0
- package/esm/cli/oauth/oauth.js.map +1 -0
- package/esm/cli/realm/realm-add-custom-domain.js +8 -6
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +8 -6
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +8 -6
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +11 -6
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm.js +2 -2
- package/esm/cli/realm/realm.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +14 -12
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +15 -13
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +9 -7
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-cot.js +1 -1
- package/esm/cli/saml/saml-cot.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +14 -8
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +9 -7
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +14 -12
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +24 -14
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +9 -7
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +10 -8
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/saml/saml-metadata.js +1 -1
- package/esm/cli/saml/saml-metadata.js.map +1 -1
- package/esm/cli/saml/saml.js +2 -2
- package/esm/cli/saml/saml.js.map +1 -1
- package/esm/cli/script/script-delete.js +21 -8
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +7 -5
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +12 -14
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +9 -7
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +10 -8
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/script/script.js +3 -5
- package/esm/cli/script/script.js.map +1 -1
- package/esm/cli/service/service-delete.js +8 -5
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +13 -11
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +32 -14
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +7 -4
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/service/service.js +2 -2
- package/esm/cli/service/service.js.map +1 -1
- package/esm/cli/shell/shell.js +57 -0
- package/esm/cli/shell/shell.js.map +1 -0
- package/esm/cli/theme/theme-delete.js +13 -11
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +16 -14
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +16 -14
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +8 -6
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/cli/theme/theme.js +2 -2
- package/esm/cli/theme/theme.js.map +1 -1
- package/esm/help/SampleData.js +7 -0
- package/esm/help/SampleData.js.map +1 -0
- package/esm/launch.js +1 -1
- package/esm/launch.js.map +1 -1
- package/esm/loader.js +2 -2
- package/esm/loader.js.map +1 -1
- package/esm/ops/AdminFederationOps.js +231 -0
- package/esm/ops/AdminFederationOps.js.map +1 -0
- package/esm/ops/AdminOps.js +151 -0
- package/esm/ops/AdminOps.js.map +1 -0
- package/esm/ops/AgentOps.js +213 -150
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/ApplicationOps.js +324 -0
- package/esm/ops/ApplicationOps.js.map +1 -0
- package/esm/ops/AuthenticationSettingsOps.js +90 -0
- package/esm/ops/AuthenticationSettingsOps.js.map +1 -0
- package/esm/ops/CirclesOfTrustOps.js +98 -78
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConfigOps.js +162 -0
- package/esm/ops/ConfigOps.js.map +1 -0
- package/esm/ops/ConnectionProfileOps.js +12 -6
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +122 -127
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js +101 -182
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js +118 -73
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +176 -114
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/LogOps.js +92 -30
- package/esm/ops/LogOps.js.map +1 -1
- package/esm/ops/NodeOps.js +6 -3
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +71 -49
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/OrganizationOps.js +14 -22
- package/esm/ops/OrganizationOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +127 -86
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +108 -76
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/RealmOps.js +18 -11
- package/esm/ops/RealmOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js +105 -87
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +132 -91
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/Saml2Ops.test_.js.map +1 -1
- package/esm/ops/ScriptOps.js +205 -82
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/SecretsOps.js +289 -79
- package/esm/ops/SecretsOps.js.map +1 -1
- package/esm/ops/ServiceOps.js +97 -54
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +164 -158
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/VariablesOps.js +252 -65
- package/esm/ops/VariablesOps.js.map +1 -1
- package/esm/ops/utils/OpsUtils.js +1 -1
- package/esm/ops/utils/OpsUtils.js.map +1 -1
- package/esm/ops/utils/Wordwrap.js +1 -1
- package/esm/ops/utils/Wordwrap.js.map +1 -1
- package/esm/storage/StaticStorage.js +1 -1
- package/esm/storage/StaticStorage.js.map +1 -1
- package/esm/utils/Config.js +162 -4
- package/esm/utils/Config.js.map +1 -1
- package/esm/utils/Console.js +78 -35
- package/esm/utils/Console.js.map +1 -1
- package/esm/utils/Version.js +19 -16
- package/esm/utils/Version.js.map +1 -1
- package/global-jest-setup.js +4 -0
- package/package.json +55 -37
- package/esm/cli/logging/logs-fetch.js.map +0 -1
- package/esm/cli/logging/logs-list.js +0 -49
- package/esm/cli/logging/logs-list.js.map +0 -1
- package/esm/cli/logging/logs-tail.js +0 -46
- package/esm/cli/logging/logs-tail.js.map +0 -1
- package/esm/cli/logging/logs.js.map +0 -1
- package/esm/cli/theme/theme-delete.e2e.test_.js.map +0 -1
- package/esm/cli/theme/theme-list.e2e.test_.js.map +0 -1
- package/esm/utils/ExportImportUtils.js +0 -90
- package/esm/utils/ExportImportUtils.js.map +0 -1
package/esm/ops/VariablesOps.js
CHANGED
|
@@ -1,133 +1,320 @@
|
|
|
1
|
-
import { frodo } from '@rockcarver/frodo-lib';
|
|
2
|
-
import {
|
|
1
|
+
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
2
|
+
import { getFullExportConfig, isIdUsed } from '../utils/Config';
|
|
3
|
+
import { createKeyValueTable, createProgressIndicator, createTable, debugMessage, printMessage, stopProgressIndicator, updateProgressIndicator } from '../utils/Console';
|
|
3
4
|
import wordwrap from './utils/Wordwrap';
|
|
5
|
+
const {
|
|
6
|
+
decodeBase64,
|
|
7
|
+
getFilePath,
|
|
8
|
+
getTypedFilename,
|
|
9
|
+
saveJsonToFile,
|
|
10
|
+
saveToFile,
|
|
11
|
+
titleCase
|
|
12
|
+
} = frodo.utils;
|
|
13
|
+
const {
|
|
14
|
+
resolvePerpetratorUuid
|
|
15
|
+
} = frodo.idm.managed;
|
|
16
|
+
const {
|
|
17
|
+
readVariables,
|
|
18
|
+
readVariable,
|
|
19
|
+
exportVariable,
|
|
20
|
+
exportVariables,
|
|
21
|
+
deleteVariable,
|
|
22
|
+
updateVariableDescription,
|
|
23
|
+
updateVariable: _updateVariable
|
|
24
|
+
} = frodo.cloud.variable;
|
|
4
25
|
|
|
5
26
|
/**
|
|
6
27
|
* List variables
|
|
7
|
-
* @param {boolean} long Long version, all the fields
|
|
28
|
+
* @param {boolean} long Long version, all the fields besides usage
|
|
29
|
+
* @param {boolean} usage Display usage field
|
|
30
|
+
* @param {String | null} file Optional filename to determine usage
|
|
31
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
8
32
|
*/
|
|
9
|
-
export async function listVariables(long) {
|
|
33
|
+
export async function listVariables(long = false, usage = false, file = null) {
|
|
34
|
+
let spinnerId;
|
|
10
35
|
let variables = [];
|
|
11
36
|
try {
|
|
12
|
-
|
|
37
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Reading variables...`);
|
|
38
|
+
variables = await readVariables();
|
|
13
39
|
variables.sort((a, b) => a._id.localeCompare(b._id));
|
|
40
|
+
stopProgressIndicator(spinnerId, `Successfully read ${variables.length} variables.`, 'success');
|
|
14
41
|
} catch (error) {
|
|
15
|
-
|
|
16
|
-
|
|
42
|
+
var _error$response;
|
|
43
|
+
stopProgressIndicator(spinnerId, `Error reading variables: ${((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data) || error.message}`, 'fail');
|
|
44
|
+
return false;
|
|
17
45
|
}
|
|
18
|
-
if (long) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
table.push([variable._id, wordwrap(frodo.helper.base64.decode(variable.valueBase64), 40), variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'], wordwrap(variable.description, 40),
|
|
22
|
-
// eslint-disable-next-line no-await-in-loop
|
|
23
|
-
await frodo.idm.managed.resolveUserName('teammember', variable.lastChangedBy), new Date(variable.lastChangeDate).toLocaleString()]);
|
|
24
|
-
}
|
|
25
|
-
printMessage(table.toString(), 'data');
|
|
26
|
-
} else {
|
|
27
|
-
variables.forEach(secret => {
|
|
28
|
-
printMessage(secret._id, 'data');
|
|
46
|
+
if (!long && !usage) {
|
|
47
|
+
variables.forEach(variable => {
|
|
48
|
+
printMessage(variable._id, 'data');
|
|
29
49
|
});
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
let fullExport = null;
|
|
53
|
+
const headers = long ? ['Id'['brightCyan'], 'Value'['brightCyan'], 'Status'['brightCyan'], 'Description'['brightCyan'], 'Modifier'['brightCyan'], 'Modified (UTC)'['brightCyan']] : ['Id'['brightCyan']];
|
|
54
|
+
if (usage) {
|
|
55
|
+
try {
|
|
56
|
+
fullExport = await getFullExportConfig(file);
|
|
57
|
+
} catch (error) {
|
|
58
|
+
var _error$response2;
|
|
59
|
+
printMessage(`Error getting full export: ${((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data) || error.message}`, 'error');
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
//Delete variables from full export so they aren't mistakenly used for determining usage
|
|
63
|
+
delete fullExport.variables;
|
|
64
|
+
headers.push('Used'['brightCyan']);
|
|
65
|
+
}
|
|
66
|
+
const table = createTable(headers);
|
|
67
|
+
for (const variable of variables) {
|
|
68
|
+
const values = long ? [variable._id, wordwrap(decodeBase64(variable.valueBase64), 40), variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'], wordwrap(variable.description, 40), state.getUseBearerTokenForAmApis() ? variable.lastChangedBy : await resolvePerpetratorUuid(variable.lastChangedBy), new Date(variable.lastChangeDate).toUTCString()] : [variable._id];
|
|
69
|
+
if (usage) {
|
|
70
|
+
const isEsvUsed = isIdUsed(fullExport, variable._id, true);
|
|
71
|
+
values.push(isEsvUsed.used ? `${'yes'['brightGreen']} (at ${isEsvUsed.location})` : 'no'['brightRed']);
|
|
72
|
+
}
|
|
73
|
+
table.push(values);
|
|
30
74
|
}
|
|
75
|
+
printMessage(table.toString(), 'data');
|
|
76
|
+
return true;
|
|
31
77
|
}
|
|
32
78
|
|
|
33
79
|
/**
|
|
34
80
|
* Create variable
|
|
35
|
-
* @param {
|
|
36
|
-
* @param {
|
|
37
|
-
* @param {
|
|
81
|
+
* @param {string} variableId variable id
|
|
82
|
+
* @param {string} value variable value
|
|
83
|
+
* @param {string} description variable description
|
|
84
|
+
* @param {VariableExpressionType} type variable type
|
|
85
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
38
86
|
*/
|
|
39
|
-
export async function createVariable(variableId, value, description) {
|
|
40
|
-
|
|
87
|
+
export async function createVariable(variableId, value, description, type = 'string') {
|
|
88
|
+
let outcome = false;
|
|
89
|
+
const spinnerId = createProgressIndicator('indeterminate', 0, `Creating variable ${variableId}...`);
|
|
41
90
|
try {
|
|
42
|
-
await
|
|
43
|
-
|
|
91
|
+
await _updateVariable(variableId, value, description, type);
|
|
92
|
+
stopProgressIndicator(spinnerId, `Created variable ${variableId}`, 'success');
|
|
93
|
+
outcome = true;
|
|
44
94
|
} catch (error) {
|
|
45
|
-
|
|
95
|
+
stopProgressIndicator(spinnerId, error.response ? `Error: ${error.response.data.code} - ${error.response.data.message}` : error, 'fail');
|
|
46
96
|
}
|
|
97
|
+
return outcome;
|
|
47
98
|
}
|
|
48
99
|
|
|
49
100
|
/**
|
|
50
101
|
* Update variable
|
|
51
|
-
* @param {
|
|
52
|
-
* @param {
|
|
53
|
-
* @param {
|
|
102
|
+
* @param {string} variableId variable id
|
|
103
|
+
* @param {string} value variable value
|
|
104
|
+
* @param {string} description variable description
|
|
105
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
54
106
|
*/
|
|
55
107
|
export async function updateVariable(variableId, value, description) {
|
|
56
|
-
|
|
108
|
+
let outcome = false;
|
|
109
|
+
const spinnerId = createProgressIndicator('indeterminate', 0, `Updating variable ${variableId}...`);
|
|
57
110
|
try {
|
|
58
|
-
await
|
|
59
|
-
|
|
111
|
+
await _updateVariable(variableId, value, description);
|
|
112
|
+
stopProgressIndicator(spinnerId, `Updated variable ${variableId}`, 'success');
|
|
113
|
+
outcome = true;
|
|
60
114
|
} catch (error) {
|
|
61
|
-
|
|
115
|
+
stopProgressIndicator(spinnerId, `Error: ${error.response.data.code} - ${error.response.data.message}`, 'fail');
|
|
62
116
|
}
|
|
117
|
+
return outcome;
|
|
63
118
|
}
|
|
64
119
|
|
|
65
120
|
/**
|
|
66
121
|
* Set description of variable
|
|
67
|
-
* @param {
|
|
68
|
-
* @param {
|
|
122
|
+
* @param {string} variableId variable id
|
|
123
|
+
* @param {string} description variable description
|
|
124
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
69
125
|
*/
|
|
70
126
|
export async function setVariableDescription(variableId, description) {
|
|
71
|
-
|
|
127
|
+
let outcome = false;
|
|
128
|
+
const spinnerId = createProgressIndicator('indeterminate', 0, `Setting description of variable ${variableId}...`);
|
|
72
129
|
try {
|
|
73
|
-
await
|
|
74
|
-
|
|
130
|
+
await updateVariableDescription(variableId, description);
|
|
131
|
+
stopProgressIndicator(spinnerId, `Set description of variable ${variableId}`, 'success');
|
|
132
|
+
outcome = true;
|
|
75
133
|
} catch (error) {
|
|
76
|
-
|
|
134
|
+
stopProgressIndicator(spinnerId, `Error: ${error.response.data.code} - ${error.response.data.message}`, 'fail');
|
|
77
135
|
}
|
|
136
|
+
return outcome;
|
|
78
137
|
}
|
|
79
138
|
|
|
80
139
|
/**
|
|
81
140
|
* Delete a variable
|
|
82
|
-
* @param {
|
|
141
|
+
* @param {string} variableId variable id
|
|
142
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
83
143
|
*/
|
|
84
|
-
export async function
|
|
85
|
-
|
|
144
|
+
export async function deleteVariableById(variableId) {
|
|
145
|
+
let outcome = false;
|
|
146
|
+
const spinnerId = createProgressIndicator('indeterminate', 0, `Deleting variable ${variableId}...`);
|
|
86
147
|
try {
|
|
87
|
-
await
|
|
88
|
-
|
|
148
|
+
await deleteVariable(variableId);
|
|
149
|
+
stopProgressIndicator(spinnerId, `Deleted variable ${variableId}`, 'success');
|
|
150
|
+
outcome = true;
|
|
89
151
|
} catch (error) {
|
|
90
|
-
|
|
152
|
+
stopProgressIndicator(spinnerId, `Error: ${error.response.data.code} - ${error.response.data.message}`, 'fail');
|
|
91
153
|
}
|
|
154
|
+
return outcome;
|
|
92
155
|
}
|
|
93
156
|
|
|
94
157
|
/**
|
|
95
158
|
* Delete all variables
|
|
159
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
96
160
|
*/
|
|
97
161
|
export async function deleteVariables() {
|
|
162
|
+
let outcome = false;
|
|
163
|
+
let indicatorId;
|
|
98
164
|
try {
|
|
99
|
-
const variables =
|
|
100
|
-
|
|
165
|
+
const variables = await readVariables();
|
|
166
|
+
indicatorId = createProgressIndicator('determinate', variables.length, `Deleting variable...`);
|
|
101
167
|
for (const variable of variables) {
|
|
102
168
|
try {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
updateProgressBar(`Deleted variable ${variable._id}`);
|
|
169
|
+
await deleteVariable(variable._id);
|
|
170
|
+
updateProgressIndicator(indicatorId, `Deleted variable ${variable._id}`);
|
|
106
171
|
} catch (error) {
|
|
107
172
|
printMessage(`Error: ${error.response.data.code} - ${error.response.data.message}`, 'error');
|
|
108
173
|
}
|
|
109
174
|
}
|
|
110
|
-
|
|
175
|
+
outcome = true;
|
|
176
|
+
stopProgressIndicator(indicatorId, `Variables deleted.`);
|
|
111
177
|
} catch (error) {
|
|
112
|
-
|
|
178
|
+
stopProgressIndicator(indicatorId, `Error: ${error.response.data.code} - ${error.response.data.message}`);
|
|
113
179
|
printMessage(`Error: ${error.response.data.code} - ${error.response.data.message}`, 'error');
|
|
114
180
|
}
|
|
181
|
+
return outcome;
|
|
115
182
|
}
|
|
116
183
|
|
|
117
184
|
/**
|
|
118
185
|
* Describe a variable
|
|
119
|
-
* @param {
|
|
186
|
+
* @param {string} variableId variable id
|
|
187
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
120
188
|
*/
|
|
121
|
-
export async function describeVariable(variableId) {
|
|
122
|
-
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
189
|
+
export async function describeVariable(variableId, json = false) {
|
|
190
|
+
let outcome = false;
|
|
191
|
+
const spinnerId = createProgressIndicator('indeterminate', 0, `Describing variable ${variableId}...`);
|
|
192
|
+
try {
|
|
193
|
+
const variable = await readVariable(variableId);
|
|
194
|
+
stopProgressIndicator(spinnerId, `Successfully retrieved variable ${variableId}`, 'success');
|
|
195
|
+
if (json) {
|
|
196
|
+
printMessage(variable, 'data');
|
|
197
|
+
} else {
|
|
198
|
+
const table = createKeyValueTable();
|
|
199
|
+
table.push(['Name'['brightCyan'], variable._id]);
|
|
200
|
+
table.push(['Value'['brightCyan'], wordwrap(decodeBase64(variable.valueBase64), 40)]);
|
|
201
|
+
table.push(['Type'['brightCyan'], variable.expressionType]);
|
|
202
|
+
table.push(['Status'['brightCyan'], variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed']]);
|
|
203
|
+
table.push(['Description'['brightCyan'], wordwrap(variable.description, 60)]);
|
|
204
|
+
table.push(['Modified'['brightCyan'], new Date(variable.lastChangeDate).toLocaleString()]);
|
|
205
|
+
let modifierName;
|
|
206
|
+
try {
|
|
207
|
+
modifierName = await resolvePerpetratorUuid(variable.lastChangedBy);
|
|
208
|
+
} catch (error) {
|
|
209
|
+
// ignore
|
|
210
|
+
}
|
|
211
|
+
if (modifierName && modifierName !== variable.lastChangedBy) {
|
|
212
|
+
table.push(['Modifier'['brightCyan'], modifierName]);
|
|
213
|
+
}
|
|
214
|
+
table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);
|
|
215
|
+
printMessage(table.toString(), 'data');
|
|
216
|
+
}
|
|
217
|
+
outcome = true;
|
|
218
|
+
} catch (error) {
|
|
219
|
+
stopProgressIndicator(spinnerId, `Error describing variable ${variableId}`, 'fail');
|
|
220
|
+
}
|
|
221
|
+
return outcome;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Export a single variable to file
|
|
226
|
+
* @param {String} variableId Variable id
|
|
227
|
+
* @param {String} file Optional filename
|
|
228
|
+
* @param {boolean} noDecode Do not include decoded variable value in export
|
|
229
|
+
* @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
|
|
230
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
231
|
+
*/
|
|
232
|
+
export async function exportVariableToFile(variableId, file, noDecode, includeMeta) {
|
|
233
|
+
debugMessage(`Cli.VariablesOps.exportVariableToFile: start [variableId=${variableId}, file=${file}]`);
|
|
234
|
+
let outcome = false;
|
|
235
|
+
let fileName = file;
|
|
236
|
+
if (!fileName) {
|
|
237
|
+
fileName = getTypedFilename(variableId, 'variable');
|
|
238
|
+
}
|
|
239
|
+
const filePath = getFilePath(fileName, true);
|
|
240
|
+
let indicatorId;
|
|
241
|
+
try {
|
|
242
|
+
indicatorId = createProgressIndicator('determinate', 1, `Exporting variable ${variableId}`);
|
|
243
|
+
const fileData = await exportVariable(variableId, noDecode);
|
|
244
|
+
saveJsonToFile(fileData, filePath, includeMeta);
|
|
245
|
+
updateProgressIndicator(indicatorId, `Exported variable ${variableId}`);
|
|
246
|
+
stopProgressIndicator(indicatorId,
|
|
247
|
+
// @ts-expect-error - brightCyan colors the string, even though it is not a property of string
|
|
248
|
+
`Exported ${variableId.brightCyan} to ${filePath.brightCyan}.`);
|
|
249
|
+
outcome = true;
|
|
250
|
+
} catch (err) {
|
|
251
|
+
stopProgressIndicator(indicatorId, `${err}`);
|
|
252
|
+
printMessage(err, 'error');
|
|
253
|
+
}
|
|
254
|
+
debugMessage(`Cli.VariablesOps.exportVariableToFile: end [variableId=${variableId}, file=${file}]`);
|
|
255
|
+
return outcome;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Export all variables to single file
|
|
260
|
+
* @param {string} file Optional filename
|
|
261
|
+
* @param {boolean} noDecode Do not include decoded variable value in export
|
|
262
|
+
* @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
|
|
263
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
264
|
+
*/
|
|
265
|
+
export async function exportVariablesToFile(file, noDecode, includeMeta) {
|
|
266
|
+
debugMessage(`Cli.VariablesOps.exportVariablesToFile: start [file=${file}]`);
|
|
267
|
+
let outcome = false;
|
|
268
|
+
const spinnerId = createProgressIndicator('indeterminate', 0, `Exporting variables...`);
|
|
269
|
+
if (!file) {
|
|
270
|
+
file = getTypedFilename(`all${titleCase(state.getRealm())}Variables`, 'variable');
|
|
271
|
+
}
|
|
272
|
+
try {
|
|
273
|
+
const variablesExport = await exportVariables(noDecode);
|
|
274
|
+
saveJsonToFile(variablesExport, getFilePath(file, true), includeMeta);
|
|
275
|
+
stopProgressIndicator(spinnerId, `Exported variables to ${file}`, 'success');
|
|
276
|
+
outcome = true;
|
|
277
|
+
} catch (error) {
|
|
278
|
+
var _error$response3;
|
|
279
|
+
stopProgressIndicator(spinnerId, `Error exporting variables: ${((_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : _error$response3.status) || error.message}`, 'fail');
|
|
280
|
+
}
|
|
281
|
+
debugMessage(`Cli.VariablesOps.exportVariablesToFile: end [outcome=${outcome}, file=${file}]`);
|
|
282
|
+
return outcome;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Export all variables to seperate files
|
|
287
|
+
* @param {boolean} noDecode Do not include decoded variable value in export
|
|
288
|
+
* @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
|
|
289
|
+
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
290
|
+
*/
|
|
291
|
+
export async function exportVariablesToFiles(noDecode, includeMeta) {
|
|
292
|
+
let outcome = false;
|
|
293
|
+
let spinnerId;
|
|
294
|
+
let indicatorId;
|
|
295
|
+
let variableList = [];
|
|
296
|
+
try {
|
|
297
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Retrieving variables...`);
|
|
298
|
+
variableList = await readVariables();
|
|
299
|
+
stopProgressIndicator(spinnerId, `Successfully retrieved ${variableList.length} variables`, 'success');
|
|
300
|
+
} catch (error) {
|
|
301
|
+
stopProgressIndicator(spinnerId, `Error retrieving variables: ${error.message}`, 'fail');
|
|
302
|
+
}
|
|
303
|
+
try {
|
|
304
|
+
const indicatorId = createProgressIndicator('determinate', variableList.length, 'Exporting variables');
|
|
305
|
+
for (const variable of variableList) {
|
|
306
|
+
if (!noDecode) {
|
|
307
|
+
variable.value = decodeBase64(variable.valueBase64);
|
|
308
|
+
}
|
|
309
|
+
updateProgressIndicator(indicatorId, `Writing variable ${variable._id}`);
|
|
310
|
+
const fileName = getTypedFilename(variable._id, 'variable');
|
|
311
|
+
saveToFile('variable', variable, '_id', getFilePath(fileName, true), includeMeta);
|
|
312
|
+
}
|
|
313
|
+
stopProgressIndicator(indicatorId, `${variableList.length} variables exported`);
|
|
314
|
+
outcome = true;
|
|
315
|
+
} catch (error) {
|
|
316
|
+
stopProgressIndicator(indicatorId, `Error exporting variables: ${error.message}`);
|
|
317
|
+
}
|
|
318
|
+
return outcome;
|
|
132
319
|
}
|
|
133
|
-
//# sourceMappingURL=VariablesOps.js.map
|
|
320
|
+
//# sourceMappingURL=VariablesOps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariablesOps.js","names":["frodo","createKeyValueTable","createProgressBar","createTable","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","wordwrap","listVariables","long","variables","cloud","variable","getVariables","result","sort","a","b","_id","localeCompare","error","message","response","data","table","push","helper","base64","decode","valueBase64","loaded","description","idm","managed","resolveUserName","lastChangedBy","Date","lastChangeDate","toLocaleString","toString","forEach","secret","createVariable","variableId","value","putVariable","code","updateVariable","setVariableDescription","deleteVariable","deleteVariables","length","describeVariable","getVariable"],"sources":["ops/VariablesOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport {\n createKeyValueTable,\n createProgressBar,\n createTable,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport wordwrap from './utils/Wordwrap';\n\n/**\n * List variables\n * @param {boolean} long Long version, all the fields\n */\nexport async function listVariables(long) {\n let variables = [];\n try {\n variables = (await frodo.cloud.variable.getVariables()).result;\n variables.sort((a, b) => a._id.localeCompare(b._id));\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n }\n if (long) {\n const table = createTable([\n 'Id'['brightCyan'],\n 'Value'['brightCyan'],\n 'Status'['brightCyan'],\n 'Description'['brightCyan'],\n 'Modifier'['brightCyan'],\n 'Modified'['brightCyan'],\n ]);\n for (const variable of variables) {\n table.push([\n variable._id,\n wordwrap(frodo.helper.base64.decode(variable.valueBase64), 40),\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n wordwrap(variable.description, 40),\n // eslint-disable-next-line no-await-in-loop\n await frodo.idm.managed.resolveUserName(\n 'teammember',\n variable.lastChangedBy\n ),\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n variables.forEach((secret) => {\n printMessage(secret._id, 'data');\n });\n }\n}\n\n/**\n * Create variable\n * @param {String} variableId variable id\n * @param {String} value variable value\n * @param {String} description variable description\n */\nexport async function createVariable(variableId, value, description) {\n showSpinner(`Creating variable ${variableId}...`);\n try {\n await frodo.cloud.variable.putVariable(variableId, value, description);\n succeedSpinner(`Created variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Update variable\n * @param {String} variableId variable id\n * @param {String} value variable value\n * @param {String} description variable description\n */\nexport async function updateVariable(variableId, value, description) {\n showSpinner(`Updating variable ${variableId}...`);\n try {\n await frodo.cloud.variable.putVariable(variableId, value, description);\n succeedSpinner(`Updated variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Set description of variable\n * @param {String} variableId variable id\n * @param {String} description variable description\n */\nexport async function setVariableDescription(variableId, description) {\n showSpinner(`Setting description of variable ${variableId}...`);\n try {\n await frodo.cloud.variable.setVariableDescription(variableId, description);\n succeedSpinner(`Set description of variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Delete a variable\n * @param {String} variableId variable id\n */\nexport async function deleteVariable(variableId) {\n showSpinner(`Deleting variable ${variableId}...`);\n try {\n await frodo.cloud.variable.deleteVariable(variableId);\n succeedSpinner(`Deleted variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Delete all variables\n */\nexport async function deleteVariables() {\n try {\n const variables = (await frodo.cloud.variable.getVariables()).result;\n createProgressBar(variables.length, `Deleting variable...`);\n for (const variable of variables) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await frodo.cloud.variable.deleteVariable(variable._id);\n updateProgressBar(`Deleted variable ${variable._id}`);\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n }\n stopProgressBar(`Variables deleted.`);\n } catch (error) {\n stopProgressBar(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n}\n\n/**\n * Describe a variable\n * @param {String} variableId variable id\n */\nexport async function describeVariable(variableId) {\n const variable = await frodo.cloud.variable.getVariable(variableId);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], variable._id]);\n table.push([\n 'Value'['brightCyan'],\n wordwrap(frodo.helper.base64.decode(variable.valueBase64), 40),\n ]);\n table.push([\n 'Status'['brightCyan'],\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n ]);\n table.push(['Description'['brightCyan'], wordwrap(variable.description, 60)]);\n table.push([\n 'Modified'['brightCyan'],\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n table.push([\n 'Modifier'['brightCyan'],\n await frodo.idm.managed.resolveUserName(\n 'teammember',\n variable.lastChangedBy\n ),\n ]);\n table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);\n printMessage(table.toString());\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VariablesOps.js","names":["frodo","state","getFullExportConfig","isIdUsed","createKeyValueTable","createProgressIndicator","createTable","debugMessage","printMessage","stopProgressIndicator","updateProgressIndicator","wordwrap","decodeBase64","getFilePath","getTypedFilename","saveJsonToFile","saveToFile","titleCase","utils","resolvePerpetratorUuid","idm","managed","readVariables","readVariable","exportVariable","exportVariables","deleteVariable","updateVariableDescription","updateVariable","_updateVariable","cloud","variable","listVariables","long","usage","file","spinnerId","variables","sort","a","b","_id","localeCompare","length","error","_error$response","response","data","message","forEach","fullExport","headers","_error$response2","push","table","values","valueBase64","loaded","description","getUseBearerTokenForAmApis","lastChangedBy","Date","lastChangeDate","toUTCString","isEsvUsed","used","location","toString","createVariable","variableId","value","type","outcome","code","setVariableDescription","deleteVariableById","deleteVariables","indicatorId","describeVariable","json","expressionType","toLocaleString","modifierName","exportVariableToFile","noDecode","includeMeta","fileName","filePath","fileData","brightCyan","err","exportVariablesToFile","getRealm","variablesExport","_error$response3","status","exportVariablesToFiles","variableList"],"sources":["../../src/ops/VariablesOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport {\n VariableExpressionType,\n VariableSkeleton,\n} from '@rockcarver/frodo-lib/types/api/cloud/VariablesApi';\n\nimport { getFullExportConfig, isIdUsed } from '../utils/Config';\nimport {\n createKeyValueTable,\n createProgressIndicator,\n createTable,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from '../utils/Console';\nimport wordwrap from './utils/Wordwrap';\n\nconst {\n decodeBase64,\n getFilePath,\n getTypedFilename,\n saveJsonToFile,\n saveToFile,\n titleCase,\n} = frodo.utils;\nconst { resolvePerpetratorUuid } = frodo.idm.managed;\nconst {\n readVariables,\n readVariable,\n exportVariable,\n exportVariables,\n deleteVariable,\n updateVariableDescription,\n updateVariable: _updateVariable,\n} = frodo.cloud.variable;\n\n/**\n * List variables\n * @param {boolean} long Long version, all the fields besides usage\n * @param {boolean} usage Display usage field\n * @param {String | null} file Optional filename to determine usage\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listVariables(\n long: boolean = false,\n usage: boolean = false,\n file: string | null = null\n): Promise<boolean> {\n let spinnerId: string;\n let variables: VariableSkeleton[] = [];\n try {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Reading variables...`\n );\n variables = await readVariables();\n variables.sort((a, b) => a._id.localeCompare(b._id));\n stopProgressIndicator(\n spinnerId,\n `Successfully read ${variables.length} variables.`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error reading variables: ${error.response?.data || error.message}`,\n 'fail'\n );\n return false;\n }\n if (!long && !usage) {\n variables.forEach((variable) => {\n printMessage(variable._id, 'data');\n });\n return true;\n }\n let fullExport = null;\n const headers = long\n ? [\n 'Id'['brightCyan'],\n 'Value'['brightCyan'],\n 'Status'['brightCyan'],\n 'Description'['brightCyan'],\n 'Modifier'['brightCyan'],\n 'Modified (UTC)'['brightCyan'],\n ]\n : ['Id'['brightCyan']];\n if (usage) {\n try {\n fullExport = await getFullExportConfig(file);\n } catch (error) {\n printMessage(\n `Error getting full export: ${error.response?.data || error.message}`,\n 'error'\n );\n return false;\n }\n //Delete variables from full export so they aren't mistakenly used for determining usage\n delete fullExport.variables;\n headers.push('Used'['brightCyan']);\n }\n const table = createTable(headers);\n for (const variable of variables) {\n const values = long\n ? [\n variable._id,\n wordwrap(decodeBase64(variable.valueBase64), 40),\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n wordwrap(variable.description, 40),\n state.getUseBearerTokenForAmApis()\n ? variable.lastChangedBy\n : await resolvePerpetratorUuid(variable.lastChangedBy),\n new Date(variable.lastChangeDate).toUTCString(),\n ]\n : [variable._id];\n if (usage) {\n const isEsvUsed = isIdUsed(fullExport, variable._id, true);\n values.push(\n isEsvUsed.used\n ? `${'yes'['brightGreen']} (at ${isEsvUsed.location})`\n : 'no'['brightRed']\n );\n }\n table.push(values);\n }\n printMessage(table.toString(), 'data');\n return true;\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 * @param {VariableExpressionType} type variable type\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function createVariable(\n variableId: string,\n value: string,\n description: string,\n type: VariableExpressionType = 'string'\n): Promise<boolean> {\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Creating variable ${variableId}...`\n );\n try {\n await _updateVariable(variableId, value, description, type);\n stopProgressIndicator(\n spinnerId,\n `Created variable ${variableId}`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n error.response\n ? `Error: ${error.response.data.code} - ${error.response.data.message}`\n : error,\n 'fail'\n );\n }\n return outcome;\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 * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function updateVariable(variableId, value, description) {\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Updating variable ${variableId}...`\n );\n try {\n await _updateVariable(variableId, value, description);\n stopProgressIndicator(\n spinnerId,\n `Updated variable ${variableId}`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n return outcome;\n}\n\n/**\n * Set description of variable\n * @param {string} variableId variable id\n * @param {string} description variable description\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function setVariableDescription(variableId, description) {\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Setting description of variable ${variableId}...`\n );\n try {\n await updateVariableDescription(variableId, description);\n stopProgressIndicator(\n spinnerId,\n `Set description of variable ${variableId}`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n return outcome;\n}\n\n/**\n * Delete a variable\n * @param {string} variableId variable id\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteVariableById(variableId) {\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Deleting variable ${variableId}...`\n );\n try {\n await deleteVariable(variableId);\n stopProgressIndicator(\n spinnerId,\n `Deleted variable ${variableId}`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n return outcome;\n}\n\n/**\n * Delete all variables\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteVariables() {\n let outcome = false;\n let indicatorId: string;\n try {\n const variables = await readVariables();\n indicatorId = createProgressIndicator(\n 'determinate',\n variables.length,\n `Deleting variable...`\n );\n for (const variable of variables) {\n try {\n await deleteVariable(variable._id);\n updateProgressIndicator(\n indicatorId,\n `Deleted variable ${variable._id}`\n );\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n }\n outcome = true;\n stopProgressIndicator(indicatorId, `Variables deleted.`);\n } catch (error) {\n stopProgressIndicator(\n indicatorId,\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 return outcome;\n}\n\n/**\n * Describe a variable\n * @param {string} variableId variable id\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describeVariable(variableId, json = false) {\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Describing variable ${variableId}...`\n );\n try {\n const variable = await readVariable(variableId);\n stopProgressIndicator(\n spinnerId,\n `Successfully retrieved variable ${variableId}`,\n 'success'\n );\n if (json) {\n printMessage(variable, 'data');\n } else {\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], variable._id]);\n table.push([\n 'Value'['brightCyan'],\n wordwrap(decodeBase64(variable.valueBase64), 40),\n ]);\n table.push(['Type'['brightCyan'], variable.expressionType]);\n table.push([\n 'Status'['brightCyan'],\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n ]);\n table.push([\n 'Description'['brightCyan'],\n wordwrap(variable.description, 60),\n ]);\n table.push([\n 'Modified'['brightCyan'],\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n let modifierName: string;\n try {\n modifierName = await resolvePerpetratorUuid(variable.lastChangedBy);\n } catch (error) {\n // ignore\n }\n if (modifierName && modifierName !== variable.lastChangedBy) {\n table.push(['Modifier'['brightCyan'], modifierName]);\n }\n table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);\n printMessage(table.toString(), 'data');\n }\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error describing variable ${variableId}`,\n 'fail'\n );\n }\n return outcome;\n}\n\n/**\n * Export a single variable to file\n * @param {String} variableId Variable id\n * @param {String} file Optional filename\n * @param {boolean} noDecode Do not include decoded variable value in export\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportVariableToFile(\n variableId: string,\n file: string | null,\n noDecode: boolean,\n includeMeta: boolean\n) {\n debugMessage(\n `Cli.VariablesOps.exportVariableToFile: start [variableId=${variableId}, file=${file}]`\n );\n let outcome = false;\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(variableId, 'variable');\n }\n const filePath = getFilePath(fileName, true);\n let indicatorId: string;\n try {\n indicatorId = createProgressIndicator(\n 'determinate',\n 1,\n `Exporting variable ${variableId}`\n );\n const fileData = await exportVariable(variableId, noDecode);\n saveJsonToFile(fileData, filePath, includeMeta);\n updateProgressIndicator(indicatorId, `Exported variable ${variableId}`);\n stopProgressIndicator(\n indicatorId,\n // @ts-expect-error - brightCyan colors the string, even though it is not a property of string\n `Exported ${variableId.brightCyan} to ${filePath.brightCyan}.`\n );\n outcome = true;\n } catch (err) {\n stopProgressIndicator(indicatorId, `${err}`);\n printMessage(err, 'error');\n }\n debugMessage(\n `Cli.VariablesOps.exportVariableToFile: end [variableId=${variableId}, file=${file}]`\n );\n return outcome;\n}\n\n/**\n * Export all variables to single file\n * @param {string} file Optional filename\n * @param {boolean} noDecode Do not include decoded variable value in export\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportVariablesToFile(\n file: string | null,\n noDecode: boolean,\n includeMeta: boolean\n) {\n debugMessage(`Cli.VariablesOps.exportVariablesToFile: start [file=${file}]`);\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Exporting variables...`\n );\n if (!file) {\n file = getTypedFilename(\n `all${titleCase(state.getRealm())}Variables`,\n 'variable'\n );\n }\n try {\n const variablesExport = await exportVariables(noDecode);\n saveJsonToFile(variablesExport, getFilePath(file, true), includeMeta);\n stopProgressIndicator(\n spinnerId,\n `Exported variables to ${file}`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error exporting variables: ${error.response?.status || error.message}`,\n 'fail'\n );\n }\n debugMessage(\n `Cli.VariablesOps.exportVariablesToFile: end [outcome=${outcome}, file=${file}]`\n );\n return outcome;\n}\n\n/**\n * Export all variables to seperate files\n * @param {boolean} noDecode Do not include decoded variable value in export\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportVariablesToFiles(\n noDecode: boolean,\n includeMeta: boolean\n) {\n let outcome = false;\n let spinnerId: string;\n let indicatorId: string;\n let variableList: VariableSkeleton[] = [];\n try {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Retrieving variables...`\n );\n variableList = await readVariables();\n stopProgressIndicator(\n spinnerId,\n `Successfully retrieved ${variableList.length} variables`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error retrieving variables: ${error.message}`,\n 'fail'\n );\n }\n try {\n const indicatorId = createProgressIndicator(\n 'determinate',\n variableList.length,\n 'Exporting variables'\n );\n for (const variable of variableList) {\n if (!noDecode) {\n variable.value = decodeBase64(variable.valueBase64);\n }\n updateProgressIndicator(indicatorId, `Writing variable ${variable._id}`);\n const fileName = getTypedFilename(variable._id, 'variable');\n saveToFile(\n 'variable',\n variable,\n '_id',\n getFilePath(fileName, true),\n includeMeta\n );\n }\n stopProgressIndicator(\n indicatorId,\n `${variableList.length} variables exported`\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n indicatorId,\n `Error exporting variables: ${error.message}`\n );\n }\n return outcome;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpsUtils.js","names":["cloneDeep","obj","JSON","parse","stringify"],"sources":["ops/utils/OpsUtils.ts"],"sourcesContent":["/**\n * Deep clone object\n * @param {any} obj object to deep clone\n * @returns {any} new object cloned from obj\n */\nexport function cloneDeep(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,SAASA,CAACC,GAAG,EAAE;EAC7B,OAAOC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACH,GAAG,CAAC,CAAC;AACxC"}
|
|
1
|
+
{"version":3,"file":"OpsUtils.js","names":["cloneDeep","obj","JSON","parse","stringify"],"sources":["../../../src/ops/utils/OpsUtils.ts"],"sourcesContent":["/**\n * Deep clone object\n * @param {any} obj object to deep clone\n * @returns {any} new object cloned from obj\n */\nexport function cloneDeep(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,SAASA,CAACC,GAAG,EAAE;EAC7B,OAAOC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACH,GAAG,CAAC,CAAC;AACxC"}
|
|
@@ -2,4 +2,4 @@ export default function wordwrap(str, len, indent = undefined) {
|
|
|
2
2
|
if (!str) return '';
|
|
3
3
|
return (str.match(new RegExp(`(\\S.{0,${len - 1 - (indent ? indent.length : 0)}})(?=\\s+|$)`, 'g')) || []).join(indent ? `\n${indent}` : '\n');
|
|
4
4
|
}
|
|
5
|
-
//# sourceMappingURL=Wordwrap.js.map
|
|
5
|
+
//# sourceMappingURL=Wordwrap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wordwrap.js","names":["wordwrap","str","len","indent","undefined","match","RegExp","length","join"],"sources":["ops/utils/Wordwrap.ts"],"sourcesContent":["export default function wordwrap(str
|
|
1
|
+
{"version":3,"file":"Wordwrap.js","names":["wordwrap","str","len","indent","undefined","match","RegExp","length","join"],"sources":["../../../src/ops/utils/Wordwrap.ts"],"sourcesContent":["export default function wordwrap(\n str: string,\n len: number,\n indent: string = undefined\n) {\n if (!str) return '';\n return (\n str.match(\n new RegExp(\n `(\\\\S.{0,${len - 1 - (indent ? indent.length : 0)}})(?=\\\\s+|$)`,\n 'g'\n )\n ) || []\n ).join(indent ? `\\n${indent}` : '\\n');\n}\n"],"mappings":"AAAA,eAAe,SAASA,QAAQA,CAC9BC,GAAW,EACXC,GAAW,EACXC,MAAc,GAAGC,SAAS,EAC1B;EACA,IAAI,CAACH,GAAG,EAAE,OAAO,EAAE;EACnB,OAAO,CACLA,GAAG,CAACI,KAAK,CACP,IAAIC,MAAM,CACP,WAAUJ,GAAG,GAAG,CAAC,IAAIC,MAAM,GAAGA,MAAM,CAACI,MAAM,GAAG,CAAC,CAAE,cAAa,EAC/D,GACF,CACF,CAAC,IAAI,EAAE,EACPC,IAAI,CAACL,MAAM,GAAI,KAAIA,MAAO,EAAC,GAAG,IAAI,CAAC;AACvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticStorage.js","names":["DEFAULT_REALM_KEY","CLASSIC_DEPLOYMENT_TYPE_KEY","CLOUD_DEPLOYMENT_TYPE_KEY","FORGEOPS_DEPLOYMENT_TYPE_KEY","DEPLOYMENT_TYPES","DEPLOYMENT_TYPE_REALM_MAP","FRODO_METADATA_ID"],"sources":["storage/StaticStorage.ts"],"sourcesContent":["export const DEFAULT_REALM_KEY = '__default__realm__';\nexport const CLASSIC_DEPLOYMENT_TYPE_KEY = 'classic';\nexport const CLOUD_DEPLOYMENT_TYPE_KEY = 'cloud';\nexport const FORGEOPS_DEPLOYMENT_TYPE_KEY = 'forgeops';\nexport const DEPLOYMENT_TYPES = [\n CLASSIC_DEPLOYMENT_TYPE_KEY,\n CLOUD_DEPLOYMENT_TYPE_KEY,\n FORGEOPS_DEPLOYMENT_TYPE_KEY,\n];\nexport const DEPLOYMENT_TYPE_REALM_MAP = {\n [CLASSIC_DEPLOYMENT_TYPE_KEY]: '/',\n [CLOUD_DEPLOYMENT_TYPE_KEY]: 'alpha',\n [FORGEOPS_DEPLOYMENT_TYPE_KEY]: '/',\n};\nexport const FRODO_METADATA_ID = 'frodo';\n"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB,GAAG,oBAAoB;AACrD,OAAO,MAAMC,2BAA2B,GAAG,SAAS;AACpD,OAAO,MAAMC,yBAAyB,GAAG,OAAO;AAChD,OAAO,MAAMC,4BAA4B,GAAG,UAAU;AACtD,OAAO,MAAMC,gBAAgB,GAAG,CAC9BH,2BAA2B,EAC3BC,yBAAyB,EACzBC,4BAA4B,CAC7B;AACD,OAAO,MAAME,yBAAyB,GAAG;EACvC,CAACJ,2BAA2B,GAAG,GAAG;EAClC,CAACC,yBAAyB,GAAG,OAAO;EACpC,CAACC,4BAA4B,GAAG;AAClC,CAAC;AACD,OAAO,MAAMG,iBAAiB,GAAG,OAAO"}
|
|
1
|
+
{"version":3,"file":"StaticStorage.js","names":["DEFAULT_REALM_KEY","CLASSIC_DEPLOYMENT_TYPE_KEY","CLOUD_DEPLOYMENT_TYPE_KEY","FORGEOPS_DEPLOYMENT_TYPE_KEY","DEPLOYMENT_TYPES","DEPLOYMENT_TYPE_REALM_MAP","FRODO_METADATA_ID"],"sources":["../../src/storage/StaticStorage.ts"],"sourcesContent":["export const DEFAULT_REALM_KEY = '__default__realm__';\nexport const CLASSIC_DEPLOYMENT_TYPE_KEY = 'classic';\nexport const CLOUD_DEPLOYMENT_TYPE_KEY = 'cloud';\nexport const FORGEOPS_DEPLOYMENT_TYPE_KEY = 'forgeops';\nexport const DEPLOYMENT_TYPES = [\n CLASSIC_DEPLOYMENT_TYPE_KEY,\n CLOUD_DEPLOYMENT_TYPE_KEY,\n FORGEOPS_DEPLOYMENT_TYPE_KEY,\n];\nexport const DEPLOYMENT_TYPE_REALM_MAP = {\n [CLASSIC_DEPLOYMENT_TYPE_KEY]: '/',\n [CLOUD_DEPLOYMENT_TYPE_KEY]: 'alpha',\n [FORGEOPS_DEPLOYMENT_TYPE_KEY]: '/',\n};\nexport const FRODO_METADATA_ID = 'frodo';\n"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB,GAAG,oBAAoB;AACrD,OAAO,MAAMC,2BAA2B,GAAG,SAAS;AACpD,OAAO,MAAMC,yBAAyB,GAAG,OAAO;AAChD,OAAO,MAAMC,4BAA4B,GAAG,UAAU;AACtD,OAAO,MAAMC,gBAAgB,GAAG,CAC9BH,2BAA2B,EAC3BC,yBAAyB,EACzBC,4BAA4B,CAC7B;AACD,OAAO,MAAME,yBAAyB,GAAG;EACvC,CAACJ,2BAA2B,GAAG,GAAG;EAClC,CAACC,yBAAyB,GAAG,OAAO;EACpC,CAACC,4BAA4B,GAAG;AAClC,CAAC;AACD,OAAO,MAAMG,iBAAiB,GAAG,OAAO"}
|