@rockcarver/frodo-cli 2.0.0-50 → 2.0.0-52
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 +14 -1
- package/esm/app.js +7 -2
- package/esm/app.js.map +1 -1
- package/esm/cli/_template/something-delete.js +1 -4
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +1 -4
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +1 -4
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +1 -4
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +1 -4
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +1 -4
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +1 -4
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-export.js +1 -4
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +1 -4
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +1 -4
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +1 -4
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +1 -4
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +1 -4
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +1 -4
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +1 -4
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +4 -9
- 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 +47 -54
- 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 +1 -4
- package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +1 -1
- package/esm/cli/admin/admin-federation-export.js +2 -5
- package/esm/cli/admin/admin-federation-export.js.map +1 -1
- package/esm/cli/admin/admin-federation-import.js +2 -5
- package/esm/cli/admin/admin-federation-import.js.map +1 -1
- package/esm/cli/admin/admin-federation-list.js +2 -5
- package/esm/cli/admin/admin-federation-list.js.map +1 -1
- package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js +2 -4
- package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +1 -1
- package/esm/cli/admin/admin-get-access-token.js +1 -3
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +5 -9
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +5 -9
- 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 -12
- 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 -12
- 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 +4 -12
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +4 -9
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +5 -9
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +5 -9
- 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 -9
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin-train-auto-access-model.js +1 -3
- package/esm/cli/admin/admin-train-auto-access-model.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +9 -24
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +1 -4
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +7 -7
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +8 -23
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +1 -4
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +7 -7
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +9 -8
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +3 -5
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-import.js +9 -8
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +8 -23
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +1 -4
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +7 -7
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +9 -8
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +3 -5
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-list.js +3 -5
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +8 -23
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +1 -4
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +7 -7
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +9 -8
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +3 -5
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/app/app-delete.js +5 -8
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +1 -4
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +7 -10
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +9 -12
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +3 -5
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/authn/authn-describe.js +1 -4
- package/esm/cli/authn/authn-describe.js.map +1 -1
- package/esm/cli/authn/authn-export.js +1 -4
- package/esm/cli/authn/authn-export.js.map +1 -1
- package/esm/cli/authn/authn-import.js +1 -4
- package/esm/cli/authn/authn-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-delete.js +1 -4
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-policy-describe.js +1 -4
- package/esm/cli/authz/authz-policy-describe.js.map +1 -1
- package/esm/cli/authz/authz-policy-export.js +1 -4
- package/esm/cli/authz/authz-policy-export.js.map +1 -1
- package/esm/cli/authz/authz-policy-import.js +1 -4
- package/esm/cli/authz/authz-policy-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-list.js +1 -4
- package/esm/cli/authz/authz-policy-list.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js +1 -4
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-describe.js +1 -4
- package/esm/cli/authz/authz-set-describe.js.map +1 -1
- package/esm/cli/authz/authz-set-export.js +1 -4
- package/esm/cli/authz/authz-set-export.js.map +1 -1
- package/esm/cli/authz/authz-set-import.js +1 -4
- package/esm/cli/authz/authz-set-import.js.map +1 -1
- package/esm/cli/authz/authz-set-list.js +1 -4
- package/esm/cli/authz/authz-set-list.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +1 -4
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-describe.js +1 -4
- package/esm/cli/authz/authz-type-describe.js.map +1 -1
- package/esm/cli/authz/authz-type-export.js +1 -4
- package/esm/cli/authz/authz-type-export.js.map +1 -1
- package/esm/cli/authz/authz-type-import.js +1 -4
- package/esm/cli/authz/authz-type-import.js.map +1 -1
- package/esm/cli/authz/authz-type-list.js +1 -4
- package/esm/cli/authz/authz-type-list.js.map +1 -1
- package/esm/cli/config/config-delete.js +1 -4
- package/esm/cli/config/config-delete.js.map +1 -1
- package/esm/cli/config/config-describe.js +1 -4
- package/esm/cli/config/config-describe.js.map +1 -1
- package/esm/cli/config/config-export.js +2 -4
- package/esm/cli/config/config-export.js.map +1 -1
- package/esm/cli/config/config-import.js +2 -4
- package/esm/cli/config/config-import.js.map +1 -1
- package/esm/cli/config/config-list.js +1 -4
- package/esm/cli/config/config-list.js.map +1 -1
- package/esm/cli/conn/conn-delete.js +7 -1
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-save.js +10 -12
- package/esm/cli/conn/conn-save.js.map +1 -1
- package/esm/cli/email/email-template-export.js +8 -7
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +9 -8
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +3 -5
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +1 -3
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +2 -5
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +2 -5
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +2 -5
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +3 -5
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +1 -4
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +2 -5
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +2 -5
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +2 -5
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +2 -5
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +2 -5
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +2 -5
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +2 -5
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +2 -5
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +2 -5
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +2 -5
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +3 -5
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +1 -4
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +2 -5
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +2 -5
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/idm/idm-count.js +3 -5
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +8 -7
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +10 -8
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +3 -5
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idp/idp-export.js +8 -7
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +10 -8
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +4 -5
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/info/info.js +1 -3
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +7 -10
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +16 -12
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +1 -4
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +1 -4
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +7 -7
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +9 -8
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +4 -5
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +4 -5
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/log/log-fetch.js +7 -5
- package/esm/cli/log/log-fetch.js.map +1 -1
- package/esm/cli/log/log-key-delete.js +1 -4
- package/esm/cli/log/log-key-delete.js.map +1 -1
- package/esm/cli/log/log-key-describe.js +1 -4
- package/esm/cli/log/log-key-describe.js.map +1 -1
- package/esm/cli/log/log-key-list.js +1 -4
- package/esm/cli/log/log-key-list.js.map +1 -1
- package/esm/cli/log/log-list.js +13 -6
- package/esm/cli/log/log-list.js.map +1 -1
- package/esm/cli/log/log-tail.js +7 -5
- package/esm/cli/log/log-tail.js.map +1 -1
- package/esm/cli/oauth/oauth-client-delete.js +1 -4
- package/esm/cli/oauth/oauth-client-delete.js.map +1 -1
- package/esm/cli/oauth/oauth-client-describe.js +1 -4
- package/esm/cli/oauth/oauth-client-describe.js.map +1 -1
- package/esm/cli/oauth/oauth-client-export.js +7 -10
- package/esm/cli/oauth/oauth-client-export.js.map +1 -1
- package/esm/cli/oauth/oauth-client-import.js +9 -12
- package/esm/cli/oauth/oauth-client-import.js.map +1 -1
- package/esm/cli/oauth/oauth-client-list.js +3 -5
- package/esm/cli/oauth/oauth-client-list.js.map +1 -1
- package/esm/cli/realm/realm-add-custom-domain.js +2 -4
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +1 -3
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +1 -4
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +1 -3
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +2 -4
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +2 -4
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +2 -4
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +1 -3
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +4 -5
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +8 -7
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +10 -8
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +4 -5
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +12 -6
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/script/script-delete.js +12 -8
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +1 -4
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +10 -17
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +21 -18
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +2 -4
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/service/service-delete.js +5 -6
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +7 -7
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +9 -8
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +3 -5
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/shell/shell.js +3 -7
- package/esm/cli/shell/shell.js.map +1 -1
- package/esm/cli/theme/theme-delete.js +9 -8
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +10 -8
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +12 -9
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +4 -5
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/ops/AdminOps.js +790 -3
- package/esm/ops/AdminOps.js.map +1 -1
- package/esm/ops/AgentOps.js +638 -305
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/ApplicationOps.js +91 -79
- package/esm/ops/ApplicationOps.js.map +1 -1
- package/esm/ops/AuthenticateOps.js +23 -0
- package/esm/ops/AuthenticateOps.js.map +1 -0
- package/esm/ops/AuthenticationSettingsOps.js +22 -23
- package/esm/ops/AuthenticationSettingsOps.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +52 -55
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConfigOps.js +100 -84
- package/esm/ops/ConfigOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +9 -7
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +64 -47
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js +149 -117
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js +76 -46
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +333 -238
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/LogOps.js +15 -23
- package/esm/ops/LogOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +43 -36
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +104 -108
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +72 -78
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js +84 -99
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +132 -88
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/ScriptOps.js +90 -80
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/ServiceOps.js +125 -87
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +170 -139
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/{AdminFederationOps.js → cloud/AdminFederationOps.js} +10 -16
- package/esm/ops/cloud/AdminFederationOps.js.map +1 -0
- package/esm/ops/{SecretsOps.js → cloud/SecretsOps.js} +123 -129
- package/esm/ops/cloud/SecretsOps.js.map +1 -0
- package/esm/ops/{VariablesOps.js → cloud/VariablesOps.js} +48 -52
- package/esm/ops/cloud/VariablesOps.js.map +1 -0
- package/esm/ops/templates/OAuth2ClientTemplate.json +270 -0
- package/esm/ops/templates/OAuth2TrustedJwtIssuerTemplate.json +38 -0
- package/esm/ops/templates/OrgModelUserAttributesTemplate.json +149 -0
- package/esm/ops/templates/autoaccess/IPAddresses.json +202 -0
- package/esm/ops/templates/autoaccess/UserAgents.json +35 -0
- package/esm/ops/templates/autoaccess/Usernames.json +203 -0
- package/esm/ops/templates/cloud/GenericExtensionAttributesTemplate.json +392 -0
- package/esm/ops/templates/cloud/managed.json +4119 -0
- package/esm/ops/utils/OpsUtils.js.map +1 -1
- package/esm/utils/Console.js +31 -0
- package/esm/utils/Console.js.map +1 -1
- package/package.json +11 -6
- package/esm/ops/AdminFederationOps.js.map +0 -1
- package/esm/ops/SecretsOps.js.map +0 -1
- package/esm/ops/VariablesOps.js.map +0 -1
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import { frodo } from '@rockcarver/frodo-lib';
|
|
2
1
|
import { Option } from 'commander';
|
|
2
|
+
import { getTokens } from '../../ops/AuthenticateOps';
|
|
3
3
|
import { exportScriptByNameToFile, exportScriptsToFile, exportScriptsToFiles } from '../../ops/ScriptOps';
|
|
4
4
|
import { printMessage, verboseMessage } from '../../utils/Console';
|
|
5
5
|
import { FrodoCommand } from '../FrodoCommand';
|
|
6
|
-
const {
|
|
7
|
-
getTokens
|
|
8
|
-
} = frodo.login;
|
|
9
6
|
const program = new FrodoCommand('frodo script export');
|
|
10
7
|
program.description('Export scripts.').addOption(new Option('-n, --script-name <name>', 'Name of the script. If specified, -a and -A are ignored.'))
|
|
11
8
|
// .addOption(
|
|
@@ -20,28 +17,24 @@ program.description('Export scripts.').addOption(new Option('-n, --script-name <
|
|
|
20
17
|
// implement command logic inside action handler
|
|
21
18
|
async (host, realm, user, password, options, command) => {
|
|
22
19
|
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
23
|
-
const tokens = await getTokens();
|
|
24
|
-
if (!tokens) {
|
|
25
|
-
printMessage('Unable to get tokens. Exiting...', 'error');
|
|
26
|
-
program.help();
|
|
27
|
-
process.exitCode = 1;
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
20
|
// export by name
|
|
31
|
-
if (options.scriptName || options.script) {
|
|
21
|
+
if ((options.scriptName || options.script) && (await getTokens())) {
|
|
32
22
|
verboseMessage('Exporting script...');
|
|
33
|
-
await exportScriptByNameToFile(options.scriptName || options.script, options.file, options.metadata);
|
|
23
|
+
const outcome = await exportScriptByNameToFile(options.scriptName || options.script, options.file, options.metadata);
|
|
24
|
+
if (!outcome) process.exitCode = 1;
|
|
34
25
|
}
|
|
35
26
|
// -a / --all
|
|
36
|
-
else if (options.all) {
|
|
27
|
+
else if (options.all && (await getTokens())) {
|
|
37
28
|
verboseMessage('Exporting all scripts to a single file...');
|
|
38
|
-
await exportScriptsToFile(options.file, options.metadata, options.default);
|
|
29
|
+
const outcome = await exportScriptsToFile(options.file, options.metadata, options.default);
|
|
30
|
+
if (!outcome) process.exitCode = 1;
|
|
39
31
|
}
|
|
40
32
|
// -A / --all-separate
|
|
41
|
-
else if (options.allSeparate) {
|
|
33
|
+
else if (options.allSeparate && (await getTokens())) {
|
|
42
34
|
verboseMessage('Exporting all scripts to separate files...');
|
|
43
35
|
// -x / --extract
|
|
44
|
-
await exportScriptsToFiles(options.extract, options.metadata, options.default);
|
|
36
|
+
const outcome = await exportScriptsToFiles(options.extract, options.metadata, options.default);
|
|
37
|
+
if (!outcome) process.exitCode = 1;
|
|
45
38
|
}
|
|
46
39
|
|
|
47
40
|
// unrecognized combination of options or no options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-export.js","names":["
|
|
1
|
+
{"version":3,"file":"script-export.js","names":["Option","getTokens","exportScriptByNameToFile","exportScriptsToFile","exportScriptsToFiles","printMessage","verboseMessage","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","scriptName","script","outcome","file","metadata","process","exitCode","all","default","allSeparate","extract","help","parse"],"sources":["../../../src/cli/script/script-export.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n exportScriptByNameToFile,\n exportScriptsToFile,\n exportScriptsToFiles,\n} from '../../ops/ScriptOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo script export');\n\nprogram\n .description('Export scripts.')\n .addOption(\n new Option(\n '-n, --script-name <name>',\n 'Name of the script. If specified, -a and -A are ignored.'\n )\n )\n // .addOption(\n // new Option(\n // '-i, --script-id <uuid>',\n // 'Uuid of the script. If specified, -a and -A are ignored.'\n // )\n // )\n .addOption(new Option('-f, --file <file>', 'Name of the export file.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Export all scripts to a single file. Ignored with -n.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all scripts to separate files (*.script.json) in the current directory. Ignored with -n or -a.'\n )\n )\n .addOption(\n new Option(\n '-N, --no-metadata',\n 'Does not include metadata in the export file.'\n )\n )\n // deprecated option\n .addOption(\n new Option(\n '-s, --script <script>',\n 'DEPRECATED! Use -n/--script-name instead. Name of the script.'\n )\n )\n .addOption(\n new Option(\n '-x, --extract',\n 'Extract the script from the exported file, and save it to a separate file. Ignored with -n or -a.'\n )\n )\n .addOption(\n new Option(\n '-d, --default',\n 'Export all scripts including the default scripts. Ignored with -n.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // export by name\n if ((options.scriptName || options.script) && (await getTokens())) {\n verboseMessage('Exporting script...');\n const outcome = await exportScriptByNameToFile(\n options.scriptName || options.script,\n options.file,\n options.metadata\n );\n if (!outcome) process.exitCode = 1;\n }\n // -a / --all\n else if (options.all && (await getTokens())) {\n verboseMessage('Exporting all scripts to a single file...');\n const outcome = await exportScriptsToFile(\n options.file,\n options.metadata,\n options.default\n );\n if (!outcome) process.exitCode = 1;\n }\n // -A / --all-separate\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting all scripts to separate files...');\n // -x / --extract\n const outcome = await exportScriptsToFiles(\n options.extract,\n options.metadata,\n options.default\n );\n if (!outcome) process.exitCode = 1;\n }\n\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { state } from '@rockcarver/frodo-lib';
|
|
2
2
|
import { Option } from 'commander';
|
|
3
|
+
import { getTokens } from '../../ops/AuthenticateOps';
|
|
3
4
|
import { importScriptsFromFile, importScriptsFromFiles } from '../../ops/ScriptOps';
|
|
4
5
|
import { printMessage, verboseMessage } from '../../utils/Console';
|
|
5
6
|
import { FrodoCommand } from '../FrodoCommand';
|
|
6
|
-
const {
|
|
7
|
-
getTokens
|
|
8
|
-
} = frodo.login;
|
|
9
7
|
const program = new FrodoCommand('frodo script import');
|
|
10
8
|
program.description('Import scripts.').addOption(new Option('-f, --file <file>', 'Name of the file to import.')).addOption(new Option('-n, --script-name <name>', 'Name of the script. If specified, -a and -A are ignored.')).addOption(new Option('--re-uuid', 'Re-UUID. Create a new UUID for the script upon import. Use this to duplicate a script or create a new version of the same script. Note that you must also choose a new name using -n/--script-name to avoid import errors.').default(false, 'false'))
|
|
11
9
|
// deprecated option
|
|
@@ -13,25 +11,30 @@ program.description('Import scripts.').addOption(new Option('-f, --file <file>',
|
|
|
13
11
|
// implement command logic inside action handler
|
|
14
12
|
async (host, realm, user, password, options, command) => {
|
|
15
13
|
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
printMessage('Unable to get tokens. Exiting...', 'error');
|
|
19
|
-
program.help();
|
|
20
|
-
process.exitCode = 1;
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
verboseMessage(`Importing script(s) into realm "${state.getRealm()}"...`);
|
|
24
|
-
if (options.file) {
|
|
14
|
+
if (options.file && (await getTokens())) {
|
|
15
|
+
verboseMessage(`Importing script(s) into realm "${state.getRealm()}"...`);
|
|
25
16
|
const outcome = await importScriptsFromFile(options.scriptName || options.script, options.file, {
|
|
26
17
|
reUuid: options.reUuid,
|
|
27
18
|
includeDefault: options.default
|
|
28
19
|
});
|
|
29
20
|
if (!outcome) process.exitCode = 1;
|
|
30
|
-
} else if (options.allSeparate) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
21
|
+
} else if (options.allSeparate && (await getTokens())) {
|
|
22
|
+
verboseMessage(`Importing script(s) into realm "${state.getRealm()}"...`);
|
|
23
|
+
try {
|
|
24
|
+
await importScriptsFromFiles(options.watch, {
|
|
25
|
+
reUuid: options.reUuid,
|
|
26
|
+
includeDefault: options.default
|
|
27
|
+
}, true);
|
|
28
|
+
} catch (error) {
|
|
29
|
+
process.exitCode = 1;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// unrecognized combination of options or no options
|
|
34
|
+
else {
|
|
35
|
+
printMessage('Unrecognized combination of options or no options...', 'error');
|
|
36
|
+
program.help();
|
|
37
|
+
process.exitCode = 1;
|
|
35
38
|
}
|
|
36
39
|
}
|
|
37
40
|
// end command logic inside action handler
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-import.js","names":["
|
|
1
|
+
{"version":3,"file":"script-import.js","names":["state","Option","getTokens","importScriptsFromFile","importScriptsFromFiles","printMessage","verboseMessage","FrodoCommand","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","getRealm","outcome","scriptName","script","reUuid","includeDefault","process","exitCode","allSeparate","watch","error","help","parse"],"sources":["../../../src/cli/script/script-import.ts"],"sourcesContent":["import { state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n importScriptsFromFile,\n importScriptsFromFiles,\n} from '../../ops/ScriptOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo script import');\n\nprogram\n .description('Import scripts.')\n .addOption(new Option('-f, --file <file>', 'Name of the file to import.'))\n .addOption(\n new Option(\n '-n, --script-name <name>',\n 'Name of the script. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '--re-uuid',\n 'Re-UUID. Create a new UUID for the script upon import. Use this to duplicate a script or create a new version of the same script. Note that you must also choose a new name using -n/--script-name to avoid import errors.'\n ).default(false, 'false')\n )\n // deprecated option\n .addOption(\n new Option(\n '-s, --script <script>',\n 'DEPRECATED! Use -n/--script-name instead. Name of the script.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all scripts from separate files (*.script.json) in the current directory. Ignored with -n.'\n )\n )\n .addOption(\n new Option(\n '-w, --watch',\n 'Watch for changes to the script files and import the scripts automatically when the file changes. Can only be used with -A.'\n ).default(false, 'false')\n )\n .addOption(\n new Option(\n '-d, --default',\n 'Import all scripts including the default scripts. Ignored with -n.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n\n if (options.file && (await getTokens())) {\n verboseMessage(\n `Importing script(s) into realm \"${state.getRealm()}\"...`\n );\n const outcome = await importScriptsFromFile(\n options.scriptName || options.script,\n options.file,\n {\n reUuid: options.reUuid,\n includeDefault: options.default,\n }\n );\n if (!outcome) process.exitCode = 1;\n } else if (options.allSeparate && (await getTokens())) {\n verboseMessage(\n `Importing script(s) into realm \"${state.getRealm()}\"...`\n );\n try {\n await importScriptsFromFiles(\n options.watch,\n {\n reUuid: options.reUuid,\n includeDefault: options.default,\n },\n true\n );\n } catch (error) {\n process.exitCode = 1;\n }\n }\n\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SACEC,qBAAqB,EACrBC,sBAAsB,QACjB,qBAAqB;AAC5B,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,qBAAqB,CAAC;AAEvDC,OAAO,CACJC,WAAW,CAAC,iBAAiB,CAAC,CAC9BC,SAAS,CAAC,IAAIT,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,CAAC,CACzES,SAAS,CACR,IAAIT,MAAM,CACR,0BAA0B,EAC1B,0DACF,CACF,CAAC,CACAS,SAAS,CACR,IAAIT,MAAM,CACR,WAAW,EACX,4NACF,CAAC,CAACU,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1B;AACA;AAAA,CACCD,SAAS,CACR,IAAIT,MAAM,CACR,uBAAuB,EACvB,+DACF,CACF,CAAC,CACAS,SAAS,CACR,IAAIT,MAAM,CACR,oBAAoB,EACpB,mGACF,CACF,CAAC,CACAS,SAAS,CACR,IAAIT,MAAM,CACR,aAAa,EACb,6HACF,CAAC,CAACU,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1B,CAAC,CACAD,SAAS,CACR,IAAIT,MAAM,CACR,eAAe,EACf,oEACF,CACF,CAAC,CACAW,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EAED,IAAID,OAAO,CAACG,IAAI,KAAK,MAAMlB,SAAS,CAAC,CAAC,CAAC,EAAE;IACvCI,cAAc,CACX,mCAAkCN,KAAK,CAACqB,QAAQ,CAAC,CAAE,MACtD,CAAC;IACD,MAAMC,OAAO,GAAG,MAAMnB,qBAAqB,CACzCc,OAAO,CAACM,UAAU,IAAIN,OAAO,CAACO,MAAM,EACpCP,OAAO,CAACG,IAAI,EACZ;MACEK,MAAM,EAAER,OAAO,CAACQ,MAAM;MACtBC,cAAc,EAAET,OAAO,CAACN;IAC1B,CACF,CAAC;IACD,IAAI,CAACW,OAAO,EAAEK,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM,IAAIX,OAAO,CAACY,WAAW,KAAK,MAAM3B,SAAS,CAAC,CAAC,CAAC,EAAE;IACrDI,cAAc,CACX,mCAAkCN,KAAK,CAACqB,QAAQ,CAAC,CAAE,MACtD,CAAC;IACD,IAAI;MACF,MAAMjB,sBAAsB,CAC1Ba,OAAO,CAACa,KAAK,EACb;QACEL,MAAM,EAAER,OAAO,CAACQ,MAAM;QACtBC,cAAc,EAAET,OAAO,CAACN;MAC1B,CAAC,EACD,IACF,CAAC;IACH,CAAC,CAAC,OAAOoB,KAAK,EAAE;MACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;IACtB;EACF;;EAEA;EAAA,KACK;IACHvB,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDG,OAAO,CAACwB,IAAI,CAAC,CAAC;IACdL,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHpB,OAAO,CAACyB,KAAK,CAAC,CAAC"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { state } from '@rockcarver/frodo-lib';
|
|
2
2
|
import { Option } from 'commander';
|
|
3
|
+
import { getTokens } from '../../ops/AuthenticateOps';
|
|
3
4
|
import { listScripts } from '../../ops/ScriptOps';
|
|
4
5
|
import { verboseMessage } from '../../utils/Console';
|
|
5
6
|
import { FrodoCommand } from '../FrodoCommand';
|
|
6
|
-
const {
|
|
7
|
-
getTokens
|
|
8
|
-
} = frodo.login;
|
|
9
7
|
const program = new FrodoCommand('frodo script list');
|
|
10
8
|
program.description('List scripts.').addOption(new Option('-l, --long', 'Long with all fields besides usage.').default(false, 'false')).addOption(new Option('-u, --usage', 'Display usage field. If a file is provided with -f or --file, it will search for usage in the file. If a directory is provided with -D or --directory, it will search for usage in all .json files in the directory and sub-directories. If no file or directory is provided, it will perform a full export automatically to determine usage.').default(false, 'false')).addOption(new Option('-f, --file [file]', 'Optional export file to use to determine usage. Overrides -D, --directory. Only used if -u or --usage is provided as well.')).action(
|
|
11
9
|
// implement command logic inside action handler
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-list.js","names":["
|
|
1
|
+
{"version":3,"file":"script-list.js","names":["state","Option","getTokens","listScripts","verboseMessage","FrodoCommand","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","outcome","long","usage","file","process","exitCode","parse"],"sources":["../../../src/cli/script/script-list.ts"],"sourcesContent":["import { state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { listScripts } from '../../ops/ScriptOps';\nimport { verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo script list');\n\nprogram\n .description('List scripts.')\n .addOption(\n new Option('-l, --long', 'Long with all fields besides usage.').default(\n false,\n 'false'\n )\n )\n .addOption(\n new Option(\n '-u, --usage',\n 'Display usage field. If a file is provided with -f or --file, it will search for usage in the file. If a directory is provided with -D or --directory, it will search for usage in all .json files in the directory and sub-directories. If no file or directory is provided, it will perform a full export automatically to determine usage.'\n ).default(false, 'false')\n )\n .addOption(\n new Option(\n '-f, --file [file]',\n 'Optional export file to use to determine usage. Overrides -D, --directory. Only used if -u or --usage is provided as well.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage(`Listing scripts in realm \"${state.getRealm()}\"...`);\n const outcome = await listScripts(\n options.long,\n options.usage,\n options.file\n );\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,WAAW,QAAQ,qBAAqB;AACjD,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,mBAAmB,CAAC;AAErDC,OAAO,CACJC,WAAW,CAAC,eAAe,CAAC,CAC5BC,SAAS,CACR,IAAIP,MAAM,CAAC,YAAY,EAAE,qCAAqC,CAAC,CAACQ,OAAO,CACrE,KAAK,EACL,OACF,CACF,CAAC,CACAD,SAAS,CACR,IAAIP,MAAM,CACR,aAAa,EACb,+UACF,CAAC,CAACQ,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1B,CAAC,CACAD,SAAS,CACR,IAAIP,MAAM,CACR,mBAAmB,EACnB,4HACF,CACF,CAAC,CACAS,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMd,SAAS,CAAC,CAAC,EAAE;IACrBE,cAAc,CAAE,6BAA4BJ,KAAK,CAACkB,QAAQ,CAAC,CAAE,MAAK,CAAC;IACnE,MAAMC,OAAO,GAAG,MAAMhB,WAAW,CAC/BY,OAAO,CAACK,IAAI,EACZL,OAAO,CAACM,KAAK,EACbN,OAAO,CAACO,IACV,CAAC;IACD,IAAI,CAACH,OAAO,EAAEI,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHlB,OAAO,CAACmB,KAAK,CAAC,CAAC"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import { frodo } from '@rockcarver/frodo-lib';
|
|
2
1
|
import { Option } from 'commander';
|
|
2
|
+
import { getTokens } from '../../ops/AuthenticateOps';
|
|
3
3
|
import { deleteService, deleteServices } from '../../ops/ServiceOps.js';
|
|
4
4
|
import { FrodoCommand } from '../FrodoCommand';
|
|
5
|
-
const {
|
|
6
|
-
getTokens
|
|
7
|
-
} = frodo.login;
|
|
8
5
|
const program = new FrodoCommand('frodo service delete');
|
|
9
6
|
program.description('Delete AM services.').addOption(new Option('-i, --id <id>', 'Id of Service to be deleted.')).addOption(new Option('-a, --all', 'Delete all services. Ignored with -i.')).addOption(new Option('-g, --global', 'Delete global services.')).action(async (host, realm, user, password, options, command) => {
|
|
10
7
|
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
11
8
|
const globalConfig = options.global ?? false;
|
|
12
9
|
if (options.id && (await getTokens())) {
|
|
13
|
-
await deleteService(options.id, globalConfig);
|
|
10
|
+
const outcome = await deleteService(options.id, globalConfig);
|
|
11
|
+
if (!outcome) process.exitCode = 1;
|
|
14
12
|
} else if (options.all && (await getTokens())) {
|
|
15
|
-
await deleteServices(globalConfig);
|
|
13
|
+
const outcome = await deleteServices(globalConfig);
|
|
14
|
+
if (!outcome) process.exitCode = 1;
|
|
16
15
|
} else {
|
|
17
16
|
program.help();
|
|
18
17
|
process.exitCode = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-delete.js","names":["
|
|
1
|
+
{"version":3,"file":"service-delete.js","names":["Option","getTokens","deleteService","deleteServices","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","globalConfig","global","id","outcome","process","exitCode","all","help","parse"],"sources":["../../../src/cli/service/service-delete.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { deleteService, deleteServices } from '../../ops/ServiceOps.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo service delete');\n\ninterface ServiceDeleteOptions {\n id?: string;\n type?: string;\n insecure?: boolean;\n verbose?: boolean;\n debug?: boolean;\n curlirize?: boolean;\n all?: boolean;\n global?: boolean;\n}\n\nprogram\n .description('Delete AM services.')\n .addOption(new Option('-i, --id <id>', 'Id of Service to be deleted.'))\n .addOption(new Option('-a, --all', 'Delete all services. Ignored with -i.'))\n .addOption(new Option('-g, --global', 'Delete global services.'))\n .action(\n async (\n host: string,\n realm: string,\n user: string,\n password: string,\n options: ServiceDeleteOptions,\n command\n ) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n\n const globalConfig = options.global ?? false;\n\n if (options.id && (await getTokens())) {\n const outcome = await deleteService(options.id, globalConfig);\n if (!outcome) process.exitCode = 1;\n } else if (options.all && (await getTokens())) {\n const outcome = await deleteServices(globalConfig);\n if (!outcome) process.exitCode = 1;\n } else {\n program.help();\n process.exitCode = 1;\n }\n }\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,aAAa,EAAEC,cAAc,QAAQ,yBAAyB;AACvE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,sBAAsB,CAAC;AAaxDC,OAAO,CACJC,WAAW,CAAC,qBAAqB,CAAC,CAClCC,SAAS,CAAC,IAAIP,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC,CAAC,CACtEO,SAAS,CAAC,IAAIP,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC,CAAC,CAC3EO,SAAS,CAAC,IAAIP,MAAM,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC,CAChEQ,MAAM,CACL,OACEC,IAAY,EACZC,KAAa,EACbC,IAAY,EACZC,QAAgB,EAChBC,OAA6B,EAC7BC,OAAO,KACJ;EACHA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EAED,MAAME,YAAY,GAAGH,OAAO,CAACI,MAAM,IAAI,KAAK;EAE5C,IAAIJ,OAAO,CAACK,EAAE,KAAK,MAAMjB,SAAS,CAAC,CAAC,CAAC,EAAE;IACrC,MAAMkB,OAAO,GAAG,MAAMjB,aAAa,CAACW,OAAO,CAACK,EAAE,EAAEF,YAAY,CAAC;IAC7D,IAAI,CAACG,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM,IAAIR,OAAO,CAACS,GAAG,KAAK,MAAMrB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC7C,MAAMkB,OAAO,GAAG,MAAMhB,cAAc,CAACa,YAAY,CAAC;IAClD,IAAI,CAACG,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLhB,OAAO,CAACkB,IAAI,CAAC,CAAC;IACdH,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF,CACF,CAAC;AAEHhB,OAAO,CAACmB,KAAK,CAAC,CAAC"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import { frodo } from '@rockcarver/frodo-lib';
|
|
2
1
|
import { Option } from 'commander';
|
|
2
|
+
import { getTokens } from '../../ops/AuthenticateOps';
|
|
3
3
|
import { exportServicesToFile, exportServicesToFiles, exportServiceToFile } from '../../ops/ServiceOps.js';
|
|
4
4
|
import { printMessage, verboseMessage } from '../../utils/Console.js';
|
|
5
5
|
import { FrodoCommand } from '../FrodoCommand';
|
|
6
|
-
const {
|
|
7
|
-
getTokens
|
|
8
|
-
} = frodo.login;
|
|
9
6
|
const program = new FrodoCommand('frodo service export');
|
|
10
7
|
program.description('Export AM services.').addOption(new Option('-i, --service-id <service-id>', 'Service id. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the export file.')).addOption(new Option('-a, --all', 'Export all services to a single file.')).addOption(new Option('-A, --all-separate', 'Export all services to separate files (*.service.json) in the current directory. Ignored with -a.')).addOption(new Option('-N, --no-metadata', 'Does not include metadata in the export file.')).addOption(new Option('-g, --global', 'Export global services.')).action(async (host, realm, user, password, options, command) => {
|
|
11
8
|
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
@@ -14,17 +11,20 @@ program.description('Export AM services.').addOption(new Option('-i, --service-i
|
|
|
14
11
|
// export by name
|
|
15
12
|
if (options.serviceId && (await getTokens())) {
|
|
16
13
|
verboseMessage('Exporting service...');
|
|
17
|
-
await exportServiceToFile(options.serviceId, options.file, globalConfig, options.metadata);
|
|
14
|
+
const outcome = await exportServiceToFile(options.serviceId, options.file, globalConfig, options.metadata);
|
|
15
|
+
if (!outcome) process.exitCode = 1;
|
|
18
16
|
}
|
|
19
17
|
// -a / --all
|
|
20
18
|
else if (options.all && (await getTokens())) {
|
|
21
19
|
verboseMessage('Exporting all services to a single file...');
|
|
22
|
-
await exportServicesToFile(options.file, globalConfig, options.metadata);
|
|
20
|
+
const outcome = await exportServicesToFile(options.file, globalConfig, options.metadata);
|
|
21
|
+
if (!outcome) process.exitCode = 1;
|
|
23
22
|
}
|
|
24
23
|
// -A / --all-separate
|
|
25
24
|
else if (options.allSeparate && (await getTokens())) {
|
|
26
25
|
verboseMessage('Exporting all services to separate files...');
|
|
27
|
-
await exportServicesToFiles(globalConfig, options.metadata);
|
|
26
|
+
const outcome = await exportServicesToFiles(globalConfig, options.metadata);
|
|
27
|
+
if (!outcome) process.exitCode = 1;
|
|
28
28
|
}
|
|
29
29
|
// unrecognized combination of options or no options
|
|
30
30
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-export.js","names":["
|
|
1
|
+
{"version":3,"file":"service-export.js","names":["Option","getTokens","exportServicesToFile","exportServicesToFiles","exportServiceToFile","printMessage","verboseMessage","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","globalConfig","global","serviceId","outcome","file","metadata","process","exitCode","all","allSeparate","help","parse"],"sources":["../../../src/cli/service/service-export.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n exportServicesToFile,\n exportServicesToFiles,\n exportServiceToFile,\n} from '../../ops/ServiceOps.js';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo service export');\n\ninterface ServiceExportOptions {\n file?: string;\n all?: boolean;\n serviceId?: string;\n allSeparate?: boolean;\n type?: string;\n insecure?: boolean;\n verbose?: boolean;\n debug?: boolean;\n curlirize?: boolean;\n global?: boolean;\n metadata?: boolean;\n}\n\nprogram\n .description('Export AM services.')\n .addOption(\n new Option(\n '-i, --service-id <service-id>',\n 'Service id. If specified, -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the export file.'))\n .addOption(new Option('-a, --all', 'Export all services to a single file.'))\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all services to separate files (*.service.json) in the current directory. Ignored with -a.'\n )\n )\n .addOption(\n new Option(\n '-N, --no-metadata',\n 'Does not include metadata in the export file.'\n )\n )\n .addOption(new Option('-g, --global', 'Export global services.'))\n .action(\n async (\n host: string,\n realm: string,\n user: string,\n password: string,\n options: ServiceExportOptions,\n command\n ) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n\n const globalConfig = options.global ?? false;\n\n // export by name\n if (options.serviceId && (await getTokens())) {\n verboseMessage('Exporting service...');\n const outcome = await exportServiceToFile(\n options.serviceId,\n options.file,\n globalConfig,\n options.metadata\n );\n if (!outcome) process.exitCode = 1;\n }\n // -a / --all\n else if (options.all && (await getTokens())) {\n verboseMessage('Exporting all services to a single file...');\n const outcome = await exportServicesToFile(\n options.file,\n globalConfig,\n options.metadata\n );\n if (!outcome) process.exitCode = 1;\n }\n // -A / --all-separate\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting all services to separate files...');\n const outcome = await exportServicesToFiles(\n globalConfig,\n options.metadata\n );\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SACEC,oBAAoB,EACpBC,qBAAqB,EACrBC,mBAAmB,QACd,yBAAyB;AAChC,SAASC,YAAY,EAAEC,cAAc,QAAQ,wBAAwB;AACrE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,sBAAsB,CAAC;AAgBxDC,OAAO,CACJC,WAAW,CAAC,qBAAqB,CAAC,CAClCC,SAAS,CACR,IAAIV,MAAM,CACR,+BAA+B,EAC/B,kDACF,CACF,CAAC,CACAU,SAAS,CAAC,IAAIV,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAC,CACtEU,SAAS,CAAC,IAAIV,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC,CAAC,CAC3EU,SAAS,CACR,IAAIV,MAAM,CACR,oBAAoB,EACpB,mGACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,mBAAmB,EACnB,+CACF,CACF,CAAC,CACAU,SAAS,CAAC,IAAIV,MAAM,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC,CAChEW,MAAM,CACL,OACEC,IAAY,EACZC,KAAa,EACbC,IAAY,EACZC,QAAgB,EAChBC,OAA6B,EAC7BC,OAAO,KACJ;EACHA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EAED,MAAME,YAAY,GAAGH,OAAO,CAACI,MAAM,IAAI,KAAK;;EAE5C;EACA,IAAIJ,OAAO,CAACK,SAAS,KAAK,MAAMpB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5CK,cAAc,CAAC,sBAAsB,CAAC;IACtC,MAAMgB,OAAO,GAAG,MAAMlB,mBAAmB,CACvCY,OAAO,CAACK,SAAS,EACjBL,OAAO,CAACO,IAAI,EACZJ,YAAY,EACZH,OAAO,CAACQ,QACV,CAAC;IACD,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIV,OAAO,CAACW,GAAG,KAAK,MAAM1B,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CK,cAAc,CAAC,4CAA4C,CAAC;IAC5D,MAAMgB,OAAO,GAAG,MAAMpB,oBAAoB,CACxCc,OAAO,CAACO,IAAI,EACZJ,YAAY,EACZH,OAAO,CAACQ,QACV,CAAC;IACD,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIV,OAAO,CAACY,WAAW,KAAK,MAAM3B,SAAS,CAAC,CAAC,CAAC,EAAE;IACnDK,cAAc,CAAC,6CAA6C,CAAC;IAC7D,MAAMgB,OAAO,GAAG,MAAMnB,qBAAqB,CACzCgB,YAAY,EACZH,OAAO,CAACQ,QACV,CAAC;IACD,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHrB,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDG,OAAO,CAACqB,IAAI,CAAC,CAAC;IACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHlB,OAAO,CAACsB,KAAK,CAAC,CAAC"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import { frodo } from '@rockcarver/frodo-lib';
|
|
2
1
|
import { Option } from 'commander';
|
|
2
|
+
import { getTokens } from '../../ops/AuthenticateOps';
|
|
3
3
|
import { importFirstServiceFromFile, importServiceFromFile, importServicesFromFile, importServicesFromFiles } from '../../ops/ServiceOps.js';
|
|
4
4
|
import { printMessage, verboseMessage } from '../../utils/Console.js';
|
|
5
5
|
import { FrodoCommand } from '../FrodoCommand';
|
|
6
|
-
const {
|
|
7
|
-
getTokens
|
|
8
|
-
} = frodo.login;
|
|
9
6
|
const program = new FrodoCommand('frodo service import');
|
|
10
7
|
program.description('Import AM services.').addOption(new Option('-i, --service-id <service-id>', 'Service id. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to import SAML Entity(s) from. Ignored with -A.')).addOption(new Option('-a, --all', 'Import all services from a single file.')).addOption(new Option('-C, --clean', 'Remove existing service(s) before importing.')).addOption(new Option('-A, --all-separate', 'Import all services from separate files <id>.service.json.')).addOption(new Option('-g, --global', 'Import service(s) as global service(s).')).addOption(new Option('-r, --current-realm', 'Import service(s) into the current realm.')).action(async (host, realm, user, password, options, command) => {
|
|
11
8
|
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
@@ -16,38 +13,42 @@ program.description('Import AM services.').addOption(new Option('-i, --service-i
|
|
|
16
13
|
// import by id
|
|
17
14
|
if (options.serviceId && options.file && (await getTokens())) {
|
|
18
15
|
verboseMessage('Importing service...');
|
|
19
|
-
await importServiceFromFile(options.serviceId, options.file, {
|
|
16
|
+
const outcome = await importServiceFromFile(options.serviceId, options.file, {
|
|
20
17
|
clean,
|
|
21
18
|
global: globalConfig,
|
|
22
19
|
realm: realmConfig
|
|
23
20
|
});
|
|
21
|
+
if (!outcome) process.exitCode = 1;
|
|
24
22
|
}
|
|
25
23
|
// -a / --all
|
|
26
24
|
else if (options.all && options.file && (await getTokens())) {
|
|
27
25
|
verboseMessage('Importing all services from a single file...');
|
|
28
|
-
await importServicesFromFile(options.file, {
|
|
26
|
+
const outcome = await importServicesFromFile(options.file, {
|
|
29
27
|
clean,
|
|
30
28
|
global: globalConfig,
|
|
31
29
|
realm: realmConfig
|
|
32
30
|
});
|
|
31
|
+
if (!outcome) process.exitCode = 1;
|
|
33
32
|
}
|
|
34
33
|
// -A / --all-separate
|
|
35
34
|
else if (options.allSeparate && (await getTokens())) {
|
|
36
35
|
verboseMessage('Importing all services from separate files...');
|
|
37
|
-
await importServicesFromFiles({
|
|
36
|
+
const outcome = await importServicesFromFiles({
|
|
38
37
|
clean,
|
|
39
38
|
global: globalConfig,
|
|
40
39
|
realm: realmConfig
|
|
41
40
|
});
|
|
41
|
+
if (!outcome) process.exitCode = 1;
|
|
42
42
|
}
|
|
43
43
|
// import file
|
|
44
44
|
else if (options.file && (await getTokens())) {
|
|
45
45
|
verboseMessage('Importing service...');
|
|
46
|
-
await importFirstServiceFromFile(options.file, {
|
|
46
|
+
const outcome = await importFirstServiceFromFile(options.file, {
|
|
47
47
|
clean,
|
|
48
48
|
global: globalConfig,
|
|
49
49
|
realm: realmConfig
|
|
50
50
|
});
|
|
51
|
+
if (!outcome) process.exitCode = 1;
|
|
51
52
|
}
|
|
52
53
|
// unrecognized combination of options or no options
|
|
53
54
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-import.js","names":["
|
|
1
|
+
{"version":3,"file":"service-import.js","names":["Option","getTokens","importFirstServiceFromFile","importServiceFromFile","importServicesFromFile","importServicesFromFiles","printMessage","verboseMessage","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","clean","globalConfig","global","realmConfig","serviceId","file","outcome","process","exitCode","all","allSeparate","help","parse"],"sources":["../../../src/cli/service/service-import.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n importFirstServiceFromFile,\n importServiceFromFile,\n importServicesFromFile,\n importServicesFromFiles,\n} from '../../ops/ServiceOps.js';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo service import');\n\ninterface ServiceImportOptions {\n file?: string;\n all?: boolean;\n serviceId?: string;\n allSeparate?: boolean;\n type?: string;\n insecure?: boolean;\n clean?: boolean;\n directory?: string;\n verbose?: boolean;\n debug?: boolean;\n curlirize?: boolean;\n global?: boolean;\n realm?: boolean;\n}\n\nprogram\n .description('Import AM services.')\n .addOption(\n new Option(\n '-i, --service-id <service-id>',\n 'Service id. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the file to import SAML Entity(s) from. Ignored with -A.'\n )\n )\n .addOption(new Option('-a, --all', 'Import all services from a single file.'))\n .addOption(\n new Option('-C, --clean', 'Remove existing service(s) before importing.')\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all services from separate files <id>.service.json.'\n )\n )\n .addOption(\n new Option('-g, --global', 'Import service(s) as global service(s).')\n )\n .addOption(\n new Option(\n '-r, --current-realm',\n 'Import service(s) into the current realm.'\n )\n )\n .action(\n async (\n host: string,\n realm: string,\n user: string,\n password: string,\n options: ServiceImportOptions,\n command\n ) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n\n const clean = options.clean ?? false;\n const globalConfig = options.global ?? false;\n const realmConfig = options.realm ?? false;\n\n // import by id\n if (options.serviceId && options.file && (await getTokens())) {\n verboseMessage('Importing service...');\n const outcome = await importServiceFromFile(\n options.serviceId,\n options.file,\n {\n clean,\n global: globalConfig,\n realm: realmConfig,\n }\n );\n if (!outcome) process.exitCode = 1;\n }\n // -a / --all\n else if (options.all && options.file && (await getTokens())) {\n verboseMessage('Importing all services from a single file...');\n const outcome = await importServicesFromFile(options.file, {\n clean,\n global: globalConfig,\n realm: realmConfig,\n });\n if (!outcome) process.exitCode = 1;\n }\n // -A / --all-separate\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Importing all services from separate files...');\n const outcome = await importServicesFromFiles({\n clean,\n global: globalConfig,\n realm: realmConfig,\n });\n if (!outcome) process.exitCode = 1;\n }\n // import file\n else if (options.file && (await getTokens())) {\n verboseMessage('Importing service...');\n const outcome = await importFirstServiceFromFile(options.file, {\n clean,\n global: globalConfig,\n realm: realmConfig,\n });\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import { frodo } from '@rockcarver/frodo-lib';
|
|
2
1
|
import { Option } from 'commander';
|
|
2
|
+
import { getTokens } from '../../ops/AuthenticateOps';
|
|
3
3
|
import { listServices } from '../../ops/ServiceOps.js';
|
|
4
4
|
import { verboseMessage } from '../../utils/Console.js';
|
|
5
5
|
import { FrodoCommand } from '../FrodoCommand';
|
|
6
|
-
const {
|
|
7
|
-
getTokens
|
|
8
|
-
} = frodo.login;
|
|
9
6
|
const program = new FrodoCommand('frodo service list');
|
|
10
7
|
program.description('List AM services.').addOption(new Option('-l, --long', 'Long with all fields.').default(false, 'false')).addOption(new Option('-g, --global', 'List global services.')).action(async (host, realm, user, password, options, command) => {
|
|
11
8
|
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
12
9
|
if (await getTokens()) {
|
|
13
10
|
verboseMessage(`Listing all AM services for realm: ${realm}`);
|
|
14
|
-
await listServices(options.long, options.global);
|
|
11
|
+
const outcome = await listServices(options.long, options.global);
|
|
12
|
+
if (!outcome) process.exitCode = 1;
|
|
15
13
|
} else {
|
|
16
14
|
process.exitCode = 1;
|
|
17
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-list.js","names":["
|
|
1
|
+
{"version":3,"file":"service-list.js","names":["Option","getTokens","listServices","verboseMessage","FrodoCommand","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","outcome","long","global","process","exitCode","parse"],"sources":["../../../src/cli/service/service-list.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { listServices } from '../../ops/ServiceOps.js';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo service list');\n\nprogram\n .description('List AM services.')\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .addOption(new Option('-g, --global', 'List global services.'))\n .action(async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage(`Listing all AM services for realm: ${realm}`);\n const outcome = await listServices(options.long, options.global);\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n });\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,oBAAoB,CAAC;AAEtDC,OAAO,CACJC,WAAW,CAAC,mBAAmB,CAAC,CAChCC,SAAS,CACR,IAAIP,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACQ,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1E,CAAC,CACAD,SAAS,CAAC,IAAIP,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAC9DS,MAAM,CAAC,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EAC/DA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMd,SAAS,CAAC,CAAC,EAAE;IACrBE,cAAc,CAAE,sCAAqCQ,KAAM,EAAC,CAAC;IAC7D,MAAMM,OAAO,GAAG,MAAMf,YAAY,CAACY,OAAO,CAACI,IAAI,EAAEJ,OAAO,CAACK,MAAM,CAAC;IAChE,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF,CAAC,CAAC;AAEJhB,OAAO,CAACiB,KAAK,CAAC,CAAC"}
|
package/esm/cli/shell/shell.js
CHANGED
|
@@ -3,11 +3,9 @@ import fuzzy from 'fuzzy';
|
|
|
3
3
|
import inquirer from 'inquirer';
|
|
4
4
|
import inquirerPrompt from 'inquirer-autocomplete-prompt';
|
|
5
5
|
import * as s from '../../help/SampleData';
|
|
6
|
-
import {
|
|
6
|
+
import { getTokens } from '../../ops/AuthenticateOps';
|
|
7
|
+
import { printError, printMessage } from '../../utils/Console';
|
|
7
8
|
import { FrodoCommand } from '../FrodoCommand';
|
|
8
|
-
const {
|
|
9
|
-
getTokens
|
|
10
|
-
} = frodo.login;
|
|
11
9
|
const exits = ['exit', 'quit', 'q'];
|
|
12
10
|
const functions = frodo.utils.json.getPaths(frodo, 'this.');
|
|
13
11
|
function searchFunctions(_answers, input = '') {
|
|
@@ -46,9 +44,7 @@ export default function setup() {
|
|
|
46
44
|
printMessage(result, 'data');
|
|
47
45
|
}
|
|
48
46
|
} catch (error) {
|
|
49
|
-
|
|
50
|
-
printMessage((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data, 'error');
|
|
51
|
-
printMessage(`${error}`, 'error');
|
|
47
|
+
printError(error);
|
|
52
48
|
}
|
|
53
49
|
} while (!exit);
|
|
54
50
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","names":["frodo","fuzzy","inquirer","inquirerPrompt","s","
|
|
1
|
+
{"version":3,"file":"shell.js","names":["frodo","fuzzy","inquirer","inquirerPrompt","s","getTokens","printError","printMessage","FrodoCommand","exits","functions","utils","json","getPaths","searchFunctions","_answers","input","Promise","resolve","setTimeout","results","filter","map","el","original","Math","random","setup","program","description","addHelpText","amBaseUrl","username","password","connId","action","host","realm","user","options","command","handleDefaultArgsAndOpts","exit","registerPrompt","response","prompt","type","prefix","name","message","source","suggestOnly","includes","result","str","eval","call","error"],"sources":["../../../src/cli/shell/shell.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport fuzzy from 'fuzzy';\nimport inquirer from 'inquirer';\nimport inquirerPrompt from 'inquirer-autocomplete-prompt';\n\nimport * as s from '../../help/SampleData';\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { printError, printMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst exits = ['exit', 'quit', 'q'];\nconst functions = frodo.utils.json.getPaths(frodo, 'this.');\n\nfunction searchFunctions(_answers, input = '') {\n return new Promise((resolve) => {\n setTimeout(\n () => {\n const results = fuzzy.filter(input, functions).map((el) => el.original);\n // results.splice(5, 0, new inquirer.Separator());\n // results.push(new inquirer.Separator());\n resolve(results);\n },\n Math.random() * 470 + 30\n );\n });\n}\n\nexport default function setup() {\n const program = new FrodoCommand('shell');\n program\n .description('Launch the frodo interactive shell.')\n .addHelpText(\n 'after',\n `Usage Examples:\\n` +\n ` Launch a frodo shell using explicit login parameters:\\n` +\n ` $ frodo shell ${s.amBaseUrl} ${s.username} '${s.password}'\\n`[\n 'brightCyan'\n ] +\n ` Launch a frodo shell using a connection profile (identified by the full AM base URL):\\n` +\n ` $ frodo shell ${s.amBaseUrl}'\\n`['brightCyan'] +\n ` Launch a frodo shell using a connection profile (identified by a unique substring of the AM base URL):\\n` +\n ` $ frodo shell ${s.connId}'\\n`['brightCyan']\n )\n .action(async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (host) await getTokens();\n let exit = false;\n do {\n try {\n inquirer.registerPrompt('autocomplete', inquirerPrompt);\n const response = await inquirer.prompt([\n {\n type: 'autocomplete',\n prefix: '',\n name: 'command',\n message: '>',\n source: searchFunctions,\n suggestOnly: true,\n },\n ]);\n exit = exits.includes(response.command);\n // evaluate code with context\n if (!exit) {\n const result = await function (str: string) {\n return eval(str);\n }.call(frodo, `${response.command}`);\n printMessage(result, 'data');\n }\n } catch (error) {\n printError(error);\n }\n } while (!exit);\n });\n return program;\n}\n"],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { state } from '@rockcarver/frodo-lib';
|
|
2
2
|
import { Option } from 'commander';
|
|
3
|
-
import {
|
|
3
|
+
import { getTokens } from '../../ops/AuthenticateOps';
|
|
4
|
+
import { deleteTheme, deleteThemeByName, deleteThemes } from '../../ops/ThemeOps';
|
|
4
5
|
import { printMessage, verboseMessage } from '../../utils/Console';
|
|
5
6
|
import { FrodoCommand } from '../FrodoCommand';
|
|
6
|
-
const {
|
|
7
|
-
getTokens
|
|
8
|
-
} = frodo.login;
|
|
9
7
|
const program = new FrodoCommand('frodo theme delete');
|
|
10
8
|
program.description('Delete themes.').addOption(new Option('-n, --theme-name <name>', 'Name of the theme. If specified, -a and -A are ignored.')).addOption(new Option('-i, --theme-id <uuid>', 'Uuid of the theme. If specified, -a and -A are ignored.')).addOption(new Option('-a, --all', 'Delete all the themes in the realm. Ignored with -n and -i.')).action(
|
|
11
9
|
// implement command logic inside action handler
|
|
@@ -14,17 +12,20 @@ async (host, realm, user, password, options, command) => {
|
|
|
14
12
|
// delete by name
|
|
15
13
|
if (options.themeName && (await getTokens())) {
|
|
16
14
|
verboseMessage(`Deleting theme with name "${options.themeName}" from realm "${state.getRealm()}"...`);
|
|
17
|
-
await
|
|
15
|
+
const outcome = await deleteThemeByName(options.themeName);
|
|
16
|
+
if (!outcome) process.exitCode = 1;
|
|
18
17
|
}
|
|
19
18
|
// delete by id
|
|
20
19
|
else if (options.themeId && (await getTokens())) {
|
|
21
20
|
verboseMessage(`Deleting theme with id "${options.themeId}" from realm "${state.getRealm()}"...`);
|
|
22
|
-
await
|
|
21
|
+
const outcome = await deleteTheme(options.themeId);
|
|
22
|
+
if (!outcome) process.exitCode = 1;
|
|
23
23
|
}
|
|
24
24
|
// --all -a
|
|
25
25
|
else if (options.all && (await getTokens())) {
|
|
26
26
|
verboseMessage(`Deleting all themes from realm "${state.getRealm()}"...`);
|
|
27
|
-
await
|
|
27
|
+
const outcome = await deleteThemes();
|
|
28
|
+
if (!outcome) process.exitCode = 1;
|
|
28
29
|
}
|
|
29
30
|
// unrecognized combination of options or no options
|
|
30
31
|
else {
|