@rockcarver/frodo-cli 2.0.0-39 → 2.0.0-40
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 +5 -1
- package/esm/cli/_template/something-delete.js +0 -1
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +0 -1
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +0 -1
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +0 -1
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +0 -1
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +0 -1
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +0 -1
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-export.js +0 -1
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +0 -1
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +0 -1
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +0 -1
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +0 -1
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +0 -1
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +0 -1
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +0 -1
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +0 -1
- 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 +0 -1
- 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 +0 -1
- package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +1 -1
- package/esm/cli/admin/admin-federation-export.js +0 -1
- package/esm/cli/admin/admin-federation-export.js.map +1 -1
- package/esm/cli/admin/admin-federation-import.js +0 -1
- package/esm/cli/admin/admin-federation-import.js.map +1 -1
- package/esm/cli/admin/admin-federation-list.js +0 -1
- package/esm/cli/admin/admin-federation-list.js.map +1 -1
- package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js +0 -1
- package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +1 -1
- package/esm/cli/admin/admin-get-access-token.js +0 -1
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +0 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +0 -1
- 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 +0 -1
- 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 +0 -1
- 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 +0 -1
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +0 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +0 -1
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +0 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +0 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin-train-auto-access-model.js +0 -1
- package/esm/cli/admin/admin-train-auto-access-model.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +0 -1
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +0 -1
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +0 -1
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +0 -1
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +0 -1
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +0 -1
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +0 -1
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +0 -1
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-import.js +0 -1
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +0 -1
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +0 -1
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +0 -1
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +0 -1
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +0 -1
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-list.js +0 -1
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +0 -1
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +0 -1
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +0 -1
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +0 -1
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +0 -1
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/app/app-delete.js +0 -1
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +0 -1
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +0 -1
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +0 -1
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +0 -1
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/app/app.js.map +1 -1
- package/esm/cli/authn/authn-describe.js +0 -1
- package/esm/cli/authn/authn-describe.js.map +1 -1
- package/esm/cli/authn/authn-export.js +0 -1
- package/esm/cli/authn/authn-export.js.map +1 -1
- package/esm/cli/authn/authn-import.js +0 -1
- package/esm/cli/authn/authn-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-delete.js +0 -1
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-policy-describe.js +0 -1
- package/esm/cli/authz/authz-policy-describe.js.map +1 -1
- package/esm/cli/authz/authz-policy-export.js +0 -1
- package/esm/cli/authz/authz-policy-export.js.map +1 -1
- package/esm/cli/authz/authz-policy-import.js +0 -1
- package/esm/cli/authz/authz-policy-import.js.map +1 -1
- package/esm/cli/authz/authz-policy-list.js +0 -1
- package/esm/cli/authz/authz-policy-list.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js +0 -1
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-describe.js +0 -1
- package/esm/cli/authz/authz-set-describe.js.map +1 -1
- package/esm/cli/authz/authz-set-export.js +0 -1
- package/esm/cli/authz/authz-set-export.js.map +1 -1
- package/esm/cli/authz/authz-set-import.js +0 -1
- package/esm/cli/authz/authz-set-import.js.map +1 -1
- package/esm/cli/authz/authz-set-list.js +0 -1
- package/esm/cli/authz/authz-set-list.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +0 -1
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-describe.js +0 -1
- package/esm/cli/authz/authz-type-describe.js.map +1 -1
- package/esm/cli/authz/authz-type-export.js +0 -1
- package/esm/cli/authz/authz-type-export.js.map +1 -1
- package/esm/cli/authz/authz-type-import.js +0 -1
- package/esm/cli/authz/authz-type-import.js.map +1 -1
- package/esm/cli/authz/authz-type-list.js +0 -1
- package/esm/cli/authz/authz-type-list.js.map +1 -1
- package/esm/cli/config/config-delete.js +0 -1
- package/esm/cli/config/config-delete.js.map +1 -1
- package/esm/cli/config/config-describe.js +0 -1
- package/esm/cli/config/config-describe.js.map +1 -1
- package/esm/cli/config/config-export.js +0 -1
- package/esm/cli/config/config-export.js.map +1 -1
- package/esm/cli/config/config-import.js +0 -1
- package/esm/cli/config/config-import.js.map +1 -1
- package/esm/cli/config/config-list.js +0 -1
- package/esm/cli/config/config-list.js.map +1 -1
- package/esm/cli/conn/conn-delete.js +0 -1
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-describe.js +0 -1
- package/esm/cli/conn/conn-describe.js.map +1 -1
- package/esm/cli/conn/conn-list.js +0 -1
- package/esm/cli/conn/conn-list.js.map +1 -1
- package/esm/cli/conn/conn-save.js +0 -1
- package/esm/cli/conn/conn-save.js.map +1 -1
- package/esm/cli/email/email-template-export.js +0 -1
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +0 -1
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +0 -1
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +0 -1
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +0 -1
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +0 -1
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +0 -1
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +0 -1
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +0 -1
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +0 -1
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +0 -1
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +0 -1
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +0 -1
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +0 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +0 -1
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +0 -1
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +0 -1
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +0 -1
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +0 -1
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +0 -1
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +0 -1
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +0 -1
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +0 -1
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/idm/idm-count.js +0 -1
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +0 -1
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +0 -1
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +0 -1
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idp/idp-export.js +0 -1
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +0 -1
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +0 -1
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +0 -1
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +0 -1
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +0 -1
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +0 -1
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +0 -1
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +0 -1
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +0 -1
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +0 -1
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/log/log-key-delete.js +0 -1
- package/esm/cli/log/log-key-delete.js.map +1 -1
- package/esm/cli/log/log-key-describe.js +0 -1
- package/esm/cli/log/log-key-describe.js.map +1 -1
- package/esm/cli/log/log-key-list.js +0 -1
- package/esm/cli/log/log-key-list.js.map +1 -1
- package/esm/cli/oauth/oauth-client-delete.js +0 -1
- package/esm/cli/oauth/oauth-client-delete.js.map +1 -1
- package/esm/cli/oauth/oauth-client-describe.js +0 -1
- package/esm/cli/oauth/oauth-client-describe.js.map +1 -1
- package/esm/cli/oauth/oauth-client-export.js +0 -1
- package/esm/cli/oauth/oauth-client-export.js.map +1 -1
- package/esm/cli/oauth/oauth-client-import.js +0 -1
- package/esm/cli/oauth/oauth-client-import.js.map +1 -1
- package/esm/cli/oauth/oauth-client-list.js +0 -1
- package/esm/cli/oauth/oauth-client-list.js.map +1 -1
- package/esm/cli/realm/realm-add-custom-domain.js +0 -1
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +0 -1
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +0 -1
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +0 -1
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +0 -1
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +0 -1
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +0 -1
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +0 -1
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +0 -1
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +0 -1
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +0 -1
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +0 -1
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +0 -1
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/script/script-delete.js +0 -1
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +0 -1
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +0 -1
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +0 -1
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +0 -1
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/service/service-export.js +0 -1
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +0 -1
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/theme/theme-delete.js +0 -1
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +0 -1
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +0 -1
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +0 -1
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +0 -1
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/IdmOps.js +3 -1
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +0 -2
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/Saml2Ops.test_.js.map +1 -1
- package/esm/ops/ScriptOps.js +1 -1
- package/esm/ops/ScriptOps.js.map +1 -1
- package/package.json +8 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OAuth2ClientOps.js","names":["frodo","state","fs","createProgressIndicator","createTable","debugMessage","failSpinner","printMessage","showSpinner","stopProgressIndicator","succeedSpinner","updateProgressIndicator","getTypedFilename","titleCase","saveJsonToFile","getFilePath","getWorkingDirectory","utils","readOAuth2Clients","exportOAuth2Client","exportOAuth2Clients","importOAuth2Client","importFirstOAuth2Client","importOAuth2Clients","oauth2oidc","client","listOAuth2Clients","long","clients","sort","a","b","_id","localeCompare","table","grantTypesMap","authorization_code","client_credentials","refresh_token","password","implicit","forEach","push","coreOAuth2ClientConfig","status","clientType","advancedOAuth2ClientConfig","grantTypes","map","type","join","scopes","redirectionUris","toString","error","exportOAuth2ClientToFile","clientId","file","includeMeta","options","useStringArrays","deps","outcome","fileName","filePath","exportData","message","exportOAuth2ClientsToFile","getRealmName","getRealm","exportOAuth2ClientsToFiles","errors","indicatorId","length","importOAuth2ClientFromFile","data","readFileSync","fileData","JSON","parse","importFirstOAuth2ClientFromFile","importOAuth2ClientsFromFile","clientData","importOAuth2ClientsFromFiles","names","readdirSync","files","filter","name","toLowerCase","endsWith","total","count","Object","keys","application"],"sources":["../../src/ops/OAuth2ClientOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Readable } from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport type {\n OAuth2ClientExportInterface,\n OAuth2ClientExportOptions,\n OAuth2ClientImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/OAuth2ClientOps';\nimport fs from 'fs';\n\nimport {\n createProgressIndicator,\n createTable,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressIndicator,\n succeedSpinner,\n updateProgressIndicator,\n} from '../utils/Console';\n\nconst {\n getTypedFilename,\n titleCase,\n saveJsonToFile,\n getFilePath,\n getWorkingDirectory,\n} = frodo.utils;\nconst {\n readOAuth2Clients,\n exportOAuth2Client,\n exportOAuth2Clients,\n importOAuth2Client,\n importFirstOAuth2Client,\n importOAuth2Clients,\n} = frodo.oauth2oidc.client;\n\n/**\n * List OAuth2 clients\n */\nexport async function listOAuth2Clients(long = false) {\n try {\n const clients = await readOAuth2Clients();\n clients.sort((a, b) => a._id.localeCompare(b._id));\n if (long) {\n const table = createTable([\n 'Client Id',\n 'Status',\n 'Client Type',\n 'Grant Types',\n 'Scopes',\n 'Redirect URIs',\n // 'Description',\n ]);\n const grantTypesMap = {\n authorization_code: 'Authz Code',\n client_credentials: 'Client Creds',\n refresh_token: 'Refresh Token',\n password: 'ROPC',\n 'urn:ietf:params:oauth:grant-type:uma-ticket': 'UMA',\n implicit: 'Implicit',\n 'urn:ietf:params:oauth:grant-type:device_code': 'Device Code',\n 'urn:ietf:params:oauth:grant-type:saml2-bearer': 'SAML2 Bearer',\n 'urn:openid:params:grant-type:ciba': 'CIBA',\n 'urn:ietf:params:oauth:grant-type:token-exchange': 'Token Exchange',\n 'urn:ietf:params:oauth:grant-type:jwt-bearer': 'JWT Bearer',\n };\n clients.forEach((client) => {\n table.push([\n client._id,\n client.coreOAuth2ClientConfig.status === 'Active'\n ? 'Active'['brightGreen']\n : (client.coreOAuth2ClientConfig.status as string)['brightRed'],\n client.coreOAuth2ClientConfig.clientType,\n (client.advancedOAuth2ClientConfig.grantTypes as Readable<string[]>)\n .map((type) => grantTypesMap[type])\n .join('\\n'),\n (client.coreOAuth2ClientConfig.scopes as Readable<string[]>).join(\n '\\n'\n ),\n (client.coreOAuth2ClientConfig.redirectionUris as string[]).join(\n '\\n'\n ),\n // wordwrap(client.description, 30),\n ]);\n });\n printMessage(table.toString(), 'data');\n } else {\n clients.forEach((client) => {\n printMessage(`${client._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing oauth2 clients - ${error}`, 'error');\n }\n}\n\n/**\n * Export OAuth2 client to file\n * @param {string} clientId client id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @param {OAuth2ClientExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportOAuth2ClientToFile(\n clientId: string,\n file: string,\n includeMeta = true,\n options: OAuth2ClientExportOptions = {\n useStringArrays: true,\n deps: true,\n }\n) {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientToFile: begin`);\n showSpinner(`Exporting ${clientId}...`);\n try {\n let fileName = getTypedFilename(clientId, 'oauth2.app');\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportOAuth2Client(clientId, options);\n saveJsonToFile(exportData, filePath, includeMeta);\n succeedSpinner(`Exported ${clientId} to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${clientId}: ${error.message}`);\n }\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientToFile: end`);\n return outcome;\n}\n\n/**\n * Export all OAuth2 clients to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @param {OAuth2ClientExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportOAuth2ClientsToFile(\n file: string,\n includeMeta = true,\n options: OAuth2ClientExportOptions = {\n useStringArrays: true,\n deps: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientsToFile: begin`);\n showSpinner(`Exporting all clients...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(frodo.utils.getRealmName(state.getRealm()))}Applications`,\n 'oauth2.app'\n );\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportOAuth2Clients(options);\n saveJsonToFile(exportData, filePath, includeMeta);\n succeedSpinner(`Exported all clients to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting all clients`);\n printMessage(`${error.message}`, 'error');\n }\n debugMessage(\n `cli.OAuth2ClientOps.exportOAuth2ClientsToFile: end [${outcome}]`\n );\n return outcome;\n}\n\n/**\n * Export all OAuth2 clients to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @param {OAuth2ClientExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportOAuth2ClientsToFiles(\n includeMeta = true,\n options: OAuth2ClientExportOptions = {\n useStringArrays: true,\n deps: true,\n }\n) {\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientsToFiles: begin`);\n const errors = [];\n let indicatorId: string;\n try {\n const clients = await readOAuth2Clients();\n indicatorId = createProgressIndicator(\n 'determinate',\n clients.length,\n 'Exporting clients...'\n );\n for (const client of clients) {\n const file = getTypedFilename(client._id, 'oauth2.app');\n try {\n const exportData: OAuth2ClientExportInterface =\n await exportOAuth2Client(client._id, options);\n saveJsonToFile(exportData, getFilePath(file, true), includeMeta);\n updateProgressIndicator(indicatorId, `Exported ${client._id}.`);\n } catch (error) {\n errors.push(error);\n updateProgressIndicator(indicatorId, `Error exporting ${client._id}.`);\n }\n }\n stopProgressIndicator(indicatorId, `Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressIndicator(indicatorId, `Error exporting client(s) to file(s)`);\n }\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientsToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import first OAuth2 client from file\n * @param {string} clientId client id\n * @param {string} file file name\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importOAuth2ClientFromFile(\n clientId: string,\n file: string,\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientFromFile: begin`);\n showSpinner(`Importing ${clientId}...`);\n try {\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const fileData = JSON.parse(data);\n await importOAuth2Client(clientId, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${clientId}.`);\n } catch (error) {\n failSpinner(`Error importing ${clientId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first OAuth2 client from file\n * @param {string} file file name\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstOAuth2ClientFromFile(\n file: string,\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.importFirstOAuth2ClientFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstOAuth2Client(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${filePath}.`);\n } catch (error) {\n failSpinner(`Error importing ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importFirstOAuth2ClientFromFile: end`);\n return outcome;\n}\n\n/**\n * Import OAuth2 clients from file\n * @param {string} file file name\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importOAuth2ClientsFromFile(\n file: string,\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const clientData = JSON.parse(data);\n await importOAuth2Clients(clientData, options);\n outcome = true;\n succeedSpinner(`Imported ${filePath}.`);\n } catch (error) {\n failSpinner(`Error importing ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFile: end`);\n return outcome;\n}\n\n/**\n * Import OAuth2 clients from files\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importOAuth2ClientsFromFiles(\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n const errors = [];\n let indicatorId: string;\n try {\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFiles: begin`);\n const names = fs.readdirSync(getWorkingDirectory());\n const files = names\n .filter((name) => name.toLowerCase().endsWith('.oauth2.app.json'))\n .map((name) => getFilePath(name));\n indicatorId = createProgressIndicator(\n 'determinate',\n files.length,\n 'Importing clients...'\n );\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: OAuth2ClientExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.application).length;\n total += count;\n await importOAuth2Clients(fileData, options);\n updateProgressIndicator(\n indicatorId,\n `Imported ${count} client(s) from ${file}`\n );\n } catch (error) {\n errors.push(error);\n updateProgressIndicator(\n indicatorId,\n `Error importing client(s) from ${file}`\n );\n printMessage(error, 'error');\n }\n }\n stopProgressIndicator(\n indicatorId,\n `Finished importing ${total} client(s) from ${files.length} file(s).`\n );\n } catch (error) {\n errors.push(error);\n stopProgressIndicator(\n indicatorId,\n `Error importing client(s) from file(s).`\n );\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OAuth2ClientOps.js","names":["frodo","state","fs","createProgressIndicator","createTable","debugMessage","failSpinner","printMessage","showSpinner","stopProgressIndicator","succeedSpinner","updateProgressIndicator","getTypedFilename","titleCase","saveJsonToFile","getFilePath","getWorkingDirectory","utils","readOAuth2Clients","exportOAuth2Client","exportOAuth2Clients","importOAuth2Client","importFirstOAuth2Client","importOAuth2Clients","oauth2oidc","client","listOAuth2Clients","long","clients","sort","a","b","_id","localeCompare","table","grantTypesMap","authorization_code","client_credentials","refresh_token","password","implicit","forEach","push","coreOAuth2ClientConfig","status","clientType","advancedOAuth2ClientConfig","grantTypes","map","type","join","scopes","redirectionUris","toString","error","exportOAuth2ClientToFile","clientId","file","includeMeta","options","useStringArrays","deps","outcome","fileName","filePath","exportData","message","exportOAuth2ClientsToFile","getRealmName","getRealm","exportOAuth2ClientsToFiles","errors","indicatorId","length","importOAuth2ClientFromFile","data","readFileSync","fileData","JSON","parse","importFirstOAuth2ClientFromFile","importOAuth2ClientsFromFile","clientData","importOAuth2ClientsFromFiles","names","readdirSync","files","filter","name","toLowerCase","endsWith","total","count","Object","keys","application"],"sources":["../../src/ops/OAuth2ClientOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Readable } from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport type {\n OAuth2ClientExportInterface,\n OAuth2ClientExportOptions,\n OAuth2ClientImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/OAuth2ClientOps';\nimport fs from 'fs';\n\nimport {\n createProgressIndicator,\n createTable,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressIndicator,\n succeedSpinner,\n updateProgressIndicator,\n} from '../utils/Console';\n\nconst {\n getTypedFilename,\n titleCase,\n saveJsonToFile,\n getFilePath,\n getWorkingDirectory,\n} = frodo.utils;\nconst {\n readOAuth2Clients,\n exportOAuth2Client,\n exportOAuth2Clients,\n importOAuth2Client,\n importFirstOAuth2Client,\n importOAuth2Clients,\n} = frodo.oauth2oidc.client;\n\n/**\n * List OAuth2 clients\n */\nexport async function listOAuth2Clients(long = false) {\n try {\n const clients = await readOAuth2Clients();\n clients.sort((a, b) => a._id.localeCompare(b._id));\n if (long) {\n const table = createTable([\n 'Client Id',\n 'Status',\n 'Client Type',\n 'Grant Types',\n 'Scopes',\n 'Redirect URIs',\n // 'Description',\n ]);\n const grantTypesMap = {\n authorization_code: 'Authz Code',\n client_credentials: 'Client Creds',\n refresh_token: 'Refresh Token',\n password: 'ROPC',\n 'urn:ietf:params:oauth:grant-type:uma-ticket': 'UMA',\n implicit: 'Implicit',\n 'urn:ietf:params:oauth:grant-type:device_code': 'Device Code',\n 'urn:ietf:params:oauth:grant-type:saml2-bearer': 'SAML2 Bearer',\n 'urn:openid:params:grant-type:ciba': 'CIBA',\n 'urn:ietf:params:oauth:grant-type:token-exchange': 'Token Exchange',\n 'urn:ietf:params:oauth:grant-type:jwt-bearer': 'JWT Bearer',\n };\n clients.forEach((client) => {\n table.push([\n client._id,\n client.coreOAuth2ClientConfig.status === 'Active'\n ? 'Active'['brightGreen']\n : (client.coreOAuth2ClientConfig.status as string)['brightRed'],\n client.coreOAuth2ClientConfig.clientType,\n (client.advancedOAuth2ClientConfig.grantTypes as Readable<string[]>)\n .map((type) => grantTypesMap[type])\n .join('\\n'),\n (client.coreOAuth2ClientConfig.scopes as Readable<string[]>).join(\n '\\n'\n ),\n (client.coreOAuth2ClientConfig.redirectionUris as string[]).join(\n '\\n'\n ),\n // wordwrap(client.description, 30),\n ]);\n });\n printMessage(table.toString(), 'data');\n } else {\n clients.forEach((client) => {\n printMessage(`${client._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing oauth2 clients - ${error}`, 'error');\n }\n}\n\n/**\n * Export OAuth2 client to file\n * @param {string} clientId client id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @param {OAuth2ClientExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportOAuth2ClientToFile(\n clientId: string,\n file: string,\n includeMeta = true,\n options: OAuth2ClientExportOptions = {\n useStringArrays: true,\n deps: true,\n }\n) {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientToFile: begin`);\n showSpinner(`Exporting ${clientId}...`);\n try {\n let fileName = getTypedFilename(clientId, 'oauth2.app');\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportOAuth2Client(clientId, options);\n saveJsonToFile(exportData, filePath, includeMeta);\n succeedSpinner(`Exported ${clientId} to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${clientId}: ${error.message}`);\n }\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientToFile: end`);\n return outcome;\n}\n\n/**\n * Export all OAuth2 clients to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @param {OAuth2ClientExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportOAuth2ClientsToFile(\n file: string,\n includeMeta = true,\n options: OAuth2ClientExportOptions = {\n useStringArrays: true,\n deps: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientsToFile: begin`);\n showSpinner(`Exporting all clients...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(frodo.utils.getRealmName(state.getRealm()))}Applications`,\n 'oauth2.app'\n );\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportOAuth2Clients(options);\n saveJsonToFile(exportData, filePath, includeMeta);\n succeedSpinner(`Exported all clients to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting all clients`);\n printMessage(`${error.message}`, 'error');\n }\n debugMessage(\n `cli.OAuth2ClientOps.exportOAuth2ClientsToFile: end [${outcome}]`\n );\n return outcome;\n}\n\n/**\n * Export all OAuth2 clients to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @param {OAuth2ClientExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportOAuth2ClientsToFiles(\n includeMeta = true,\n options: OAuth2ClientExportOptions = {\n useStringArrays: true,\n deps: true,\n }\n) {\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientsToFiles: begin`);\n const errors = [];\n let indicatorId: string;\n try {\n const clients = await readOAuth2Clients();\n indicatorId = createProgressIndicator(\n 'determinate',\n clients.length,\n 'Exporting clients...'\n );\n for (const client of clients) {\n const file = getTypedFilename(client._id, 'oauth2.app');\n try {\n const exportData: OAuth2ClientExportInterface =\n await exportOAuth2Client(client._id, options);\n saveJsonToFile(exportData, getFilePath(file, true), includeMeta);\n updateProgressIndicator(indicatorId, `Exported ${client._id}.`);\n } catch (error) {\n errors.push(error);\n updateProgressIndicator(indicatorId, `Error exporting ${client._id}.`);\n }\n }\n stopProgressIndicator(indicatorId, `Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressIndicator(indicatorId, `Error exporting client(s) to file(s)`);\n }\n debugMessage(`cli.OAuth2ClientOps.exportOAuth2ClientsToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import first OAuth2 client from file\n * @param {string} clientId client id\n * @param {string} file file name\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importOAuth2ClientFromFile(\n clientId: string,\n file: string,\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientFromFile: begin`);\n showSpinner(`Importing ${clientId}...`);\n try {\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const fileData = JSON.parse(data);\n await importOAuth2Client(clientId, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${clientId}.`);\n } catch (error) {\n failSpinner(`Error importing ${clientId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first OAuth2 client from file\n * @param {string} file file name\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstOAuth2ClientFromFile(\n file: string,\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.importFirstOAuth2ClientFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstOAuth2Client(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${filePath}.`);\n } catch (error) {\n failSpinner(`Error importing ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importFirstOAuth2ClientFromFile: end`);\n return outcome;\n}\n\n/**\n * Import OAuth2 clients from file\n * @param {string} file file name\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importOAuth2ClientsFromFile(\n file: string,\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const clientData = JSON.parse(data);\n await importOAuth2Clients(clientData, options);\n outcome = true;\n succeedSpinner(`Imported ${filePath}.`);\n } catch (error) {\n failSpinner(`Error importing ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFile: end`);\n return outcome;\n}\n\n/**\n * Import OAuth2 clients from files\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importOAuth2ClientsFromFiles(\n options: OAuth2ClientImportOptions = { deps: true }\n): Promise<boolean> {\n const errors = [];\n let indicatorId: string;\n try {\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFiles: begin`);\n const names = fs.readdirSync(getWorkingDirectory());\n const files = names\n .filter((name) => name.toLowerCase().endsWith('.oauth2.app.json'))\n .map((name) => getFilePath(name));\n indicatorId = createProgressIndicator(\n 'determinate',\n files.length,\n 'Importing clients...'\n );\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: OAuth2ClientExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.application).length;\n total += count;\n await importOAuth2Clients(fileData, options);\n updateProgressIndicator(\n indicatorId,\n `Imported ${count} client(s) from ${file}`\n );\n } catch (error) {\n errors.push(error);\n updateProgressIndicator(\n indicatorId,\n `Error importing client(s) from ${file}`\n );\n printMessage(error, 'error');\n }\n }\n stopProgressIndicator(\n indicatorId,\n `Finished importing ${total} client(s) from ${files.length} file(s).`\n );\n } catch (error) {\n errors.push(error);\n stopProgressIndicator(\n indicatorId,\n `Error importing client(s) from file(s).`\n );\n printMessage(error, 'error');\n }\n debugMessage(`cli.OAuth2ClientOps.importOAuth2ClientsFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Saml2Ops.test_.js","names":["Saml2","describe","test","expect","listSaml2Providers","toBeDefined","exportSaml2ProviderToFile","exportSaml2MetadataToFile","describeSaml2Provider","exportSaml2ProvidersToFile","exportSaml2ProvidersToFiles","importSaml2ProviderFromFile","importFirstSaml2ProviderFromFile","importSaml2ProvidersFromFile","importSaml2ProvidersFromFiles","exportRawSaml2ProviderToFile","exportRawSaml2ProvidersToFile","exportRawSaml2ProvidersToFiles","importRawSaml2ProvidersFromFile","importRawSaml2ProvidersFromFiles","importRawSaml2ProviderFromFile"],"sources":["../../src/ops/Saml2Ops.test_.ts"],"sourcesContent":["import * as Saml2 from './Saml2Ops';\n\ndescribe('Saml2Ops - listSaml2Providers()', () => {\n test('listSaml2Providers() 0: Method is implemented', async () => {\n expect(Saml2.listSaml2Providers).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - exportSaml2ProviderToFile()', () => {\n test('exportSaml2ProviderToFile() 0: Method is implemented', async () => {\n expect(Saml2.exportSaml2ProviderToFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - exportSaml2MetadataToFile()', () => {\n test('exportSaml2MetadataToFile() 0: Method is implemented', async () => {\n expect(Saml2.exportSaml2MetadataToFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - describeSaml2Provider()', () => {\n test('describeSaml2Provider() 0: Method is implemented', async () => {\n expect(Saml2.describeSaml2Provider).toBeDefined();\n });\n\n // test('describeSaml2Provider() 1: Describe saml2 entity provider', async () => {\n // mockFindSaml2Providers(mock);\n // mockGetSaml2ProviderByLocationAndId(mock);\n // mockGetSaml2ProviderMetadata(mock);\n // expect.assertions(2);\n // await Saml2.describeSaml2Provider('iSPAzure');\n // expect(true).toBeTruthy();\n // });\n});\n\ndescribe('Saml2Ops - exportSaml2ProvidersToFile()', () => {\n test('exportSaml2ProvidersToFile() 0: Method is implemented', async () => {\n expect(Saml2.exportSaml2ProvidersToFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - exportSaml2ProvidersToFiles()', () => {\n test('exportSaml2ProvidersToFiles() 0: Method is implemented', async () => {\n expect(Saml2.exportSaml2ProvidersToFiles).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importSaml2ProviderFromFile()', () => {\n test('importSaml2ProviderFromFile() 0: Method is implemented', async () => {\n expect(Saml2.importSaml2ProviderFromFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importFirstSaml2ProviderFromFile()', () => {\n test('importFirstSaml2ProviderFromFile() 0: Method is implemented', async () => {\n expect(Saml2.importFirstSaml2ProviderFromFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importSaml2ProvidersFromFile()', () => {\n test('importSaml2ProvidersFromFile() 0: Method is implemented', async () => {\n expect(Saml2.importSaml2ProvidersFromFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importSaml2ProvidersFromFiles()', () => {\n test('importSaml2ProvidersFromFiles() 0: Method is implemented', async () => {\n expect(Saml2.importSaml2ProvidersFromFiles).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - exportRawSaml2ProviderToFile()', () => {\n test('exportRawSaml2ProviderToFile() 0: Method is implemented', async () => {\n expect(Saml2.exportRawSaml2ProviderToFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - exportRawSaml2ProvidersToFile()', () => {\n test('exportRawSaml2ProvidersToFile() 0: Method is implemented', async () => {\n expect(Saml2.exportRawSaml2ProvidersToFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - exportRawSaml2ProvidersToFiles()', () => {\n test('exportRawSaml2ProvidersToFiles() 0: Method is implemented', async () => {\n expect(Saml2.exportRawSaml2ProvidersToFiles).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importRawSaml2ProvidersFromFile()', () => {\n test('importRawSaml2ProvidersFromFile() 0: Method is implemented', async () => {\n expect(Saml2.importRawSaml2ProvidersFromFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importRawSaml2ProvidersFromFiles()', () => {\n test('importRawSaml2ProvidersFromFiles() 0: Method is implemented', async () => {\n expect(Saml2.importRawSaml2ProvidersFromFiles).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importRawSaml2ProviderFromFile()', () => {\n test('importRawSaml2ProviderFromFile() 0: Method is implemented', async () => {\n expect(Saml2.importRawSaml2ProviderFromFile).toBeDefined();\n });\n});\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,YAAY;AAEnCC,QAAQ,CAAC,iCAAiC,EAAE,MAAM;EAChDC,IAAI,CAAC,+CAA+C,EAAE,YAAY;IAChEC,MAAM,CAACH,KAAK,CAACI,kBAAkB,CAAC,CAACC,WAAW,CAAC,CAAC;EAChD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFJ,QAAQ,CAAC,wCAAwC,EAAE,MAAM;EACvDC,IAAI,CAAC,sDAAsD,EAAE,YAAY;IACvEC,MAAM,CAACH,KAAK,CAACM,yBAAyB,CAAC,CAACD,WAAW,CAAC,CAAC;EACvD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFJ,QAAQ,CAAC,wCAAwC,EAAE,MAAM;EACvDC,IAAI,CAAC,sDAAsD,EAAE,YAAY;IACvEC,MAAM,CAACH,KAAK,CAACO,yBAAyB,CAAC,CAACF,WAAW,CAAC,CAAC;EACvD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFJ,QAAQ,CAAC,oCAAoC,EAAE,MAAM;EACnDC,IAAI,CAAC,kDAAkD,EAAE,YAAY;IACnEC,MAAM,CAACH,KAAK,CAACQ,qBAAqB,CAAC,CAACH,WAAW,CAAC,CAAC;EACnD,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACF,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"Saml2Ops.test_.js","names":["Saml2","describe","test","expect","listSaml2Providers","toBeDefined","exportSaml2ProviderToFile","exportSaml2MetadataToFile","describeSaml2Provider","exportSaml2ProvidersToFile","exportSaml2ProvidersToFiles","importSaml2ProviderFromFile","importFirstSaml2ProviderFromFile","importSaml2ProvidersFromFile","importSaml2ProvidersFromFiles","exportRawSaml2ProviderToFile","exportRawSaml2ProvidersToFile","exportRawSaml2ProvidersToFiles","importRawSaml2ProvidersFromFile","importRawSaml2ProvidersFromFiles","importRawSaml2ProviderFromFile"],"sources":["../../src/ops/Saml2Ops.test_.ts"],"sourcesContent":["import * as Saml2 from './Saml2Ops';\n\ndescribe('Saml2Ops - listSaml2Providers()', () => {\n test('listSaml2Providers() 0: Method is implemented', async () => {\n expect(Saml2.listSaml2Providers).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - exportSaml2ProviderToFile()', () => {\n test('exportSaml2ProviderToFile() 0: Method is implemented', async () => {\n expect(Saml2.exportSaml2ProviderToFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - exportSaml2MetadataToFile()', () => {\n test('exportSaml2MetadataToFile() 0: Method is implemented', async () => {\n expect(Saml2.exportSaml2MetadataToFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - describeSaml2Provider()', () => {\n test('describeSaml2Provider() 0: Method is implemented', async () => {\n expect(Saml2.describeSaml2Provider).toBeDefined();\n });\n\n // test('describeSaml2Provider() 1: Describe saml2 entity provider', async () => {\n // mockFindSaml2Providers(mock);\n // mockGetSaml2ProviderByLocationAndId(mock);\n // mockGetSaml2ProviderMetadata(mock);\n // expect.assertions(2);\n // await Saml2.describeSaml2Provider('iSPAzure');\n // expect(true).toBeTruthy();\n // });\n});\n\ndescribe('Saml2Ops - exportSaml2ProvidersToFile()', () => {\n test('exportSaml2ProvidersToFile() 0: Method is implemented', async () => {\n expect(Saml2.exportSaml2ProvidersToFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - exportSaml2ProvidersToFiles()', () => {\n test('exportSaml2ProvidersToFiles() 0: Method is implemented', async () => {\n expect(Saml2.exportSaml2ProvidersToFiles).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importSaml2ProviderFromFile()', () => {\n test('importSaml2ProviderFromFile() 0: Method is implemented', async () => {\n expect(Saml2.importSaml2ProviderFromFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importFirstSaml2ProviderFromFile()', () => {\n test('importFirstSaml2ProviderFromFile() 0: Method is implemented', async () => {\n expect(Saml2.importFirstSaml2ProviderFromFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importSaml2ProvidersFromFile()', () => {\n test('importSaml2ProvidersFromFile() 0: Method is implemented', async () => {\n expect(Saml2.importSaml2ProvidersFromFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importSaml2ProvidersFromFiles()', () => {\n test('importSaml2ProvidersFromFiles() 0: Method is implemented', async () => {\n expect(Saml2.importSaml2ProvidersFromFiles).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - exportRawSaml2ProviderToFile()', () => {\n test('exportRawSaml2ProviderToFile() 0: Method is implemented', async () => {\n expect(Saml2.exportRawSaml2ProviderToFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - exportRawSaml2ProvidersToFile()', () => {\n test('exportRawSaml2ProvidersToFile() 0: Method is implemented', async () => {\n expect(Saml2.exportRawSaml2ProvidersToFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - exportRawSaml2ProvidersToFiles()', () => {\n test('exportRawSaml2ProvidersToFiles() 0: Method is implemented', async () => {\n expect(Saml2.exportRawSaml2ProvidersToFiles).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importRawSaml2ProvidersFromFile()', () => {\n test('importRawSaml2ProvidersFromFile() 0: Method is implemented', async () => {\n expect(Saml2.importRawSaml2ProvidersFromFile).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importRawSaml2ProvidersFromFiles()', () => {\n test('importRawSaml2ProvidersFromFiles() 0: Method is implemented', async () => {\n expect(Saml2.importRawSaml2ProvidersFromFiles).toBeDefined();\n });\n});\n\ndescribe('Saml2Ops - importRawSaml2ProviderFromFile()', () => {\n test('importRawSaml2ProviderFromFile() 0: Method is implemented', async () => {\n expect(Saml2.importRawSaml2ProviderFromFile).toBeDefined();\n });\n});\n"],"mappings":"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"}
|
package/esm/ops/ScriptOps.js
CHANGED
|
@@ -305,7 +305,7 @@ export async function importScriptsFromFile(name, file, reUuid = false) {
|
|
|
305
305
|
}
|
|
306
306
|
outcome = true;
|
|
307
307
|
} catch (error) {
|
|
308
|
-
printMessage(`Error
|
|
308
|
+
printMessage(`Error importing script '${name}': ${error.message}`, 'error');
|
|
309
309
|
debugMessage(error);
|
|
310
310
|
}
|
|
311
311
|
});
|
package/esm/ops/ScriptOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptOps.js","names":["frodo","state","chokidar","fs","getFullExportConfig","isIdUsed","createProgressIndicator","createTable","debugMessage","failSpinner","printMessage","showSpinner","spinSpinner","stopProgressIndicator","succeedSpinner","updateProgressIndicator","wordwrap","getTypedFilename","isValidUrl","saveJsonToFile","saveTextToFile","titleCase","isBase64Encoded","getFilePath","getWorkingDirectory","utils","readScripts","exportScript","exportScriptByName","exportScripts","importScripts","deleteScript","deleteScriptByName","deleteScripts","script","getOneLineDescription","scriptObj","description","_id","context","name","getTableHeaderMd","markdown","getTableRowMd","langMap","JAVASCRIPT","GROOVY","language","split","join","listScripts","long","usage","file","spinnerId","scripts","sort","a","b","localeCompare","length","error","_error$response","response","data","message","forEach","fullExport","headers","_error$response2","push","table","values","isScriptUsed","used","location","toString","exportScriptToFile","scriptId","includeMeta","fileName","filePath","scriptExport","exportScriptByNameToFile","exportScriptsToFile","getRealm","exportScriptsToFiles","extract","outcome","scriptList","barId","fileBarId","extractScriptToFile","directory","scriptSkeleton","getScriptSkeleton","fileExtension","scriptFileName","scriptFilePath","scriptText","Array","isArray","isScriptExtracted","importData","extracted","Object","keys","importScriptsFromFile","reUuid","readFile","err","JSON","parse","handleScriptFileImport","importScriptsFromFiles","watch","validateScripts","onChange","path","_stats","watcher","persistent","on","close","scriptFile","getScriptFile","getScriptExportByScriptFile","imported","endsWith","replace","getScriptExport","extractFile","getExtractFile","scriptRaw","readFileSync","startsWith","scriptExportRaw","getScriptId","scriptIds","Error","deleteScriptId","id","undefined","deleteScriptName","deleteAllScripts"],"sources":["../../src/ops/ScriptOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { type ScriptSkeleton } from '@rockcarver/frodo-lib/types/api/ScriptApi';\nimport { type ScriptExportInterface } from '@rockcarver/frodo-lib/types/ops/ScriptOps';\nimport chokidar from 'chokidar';\nimport fs from 'fs';\n\nimport { getFullExportConfig, isIdUsed } from '../utils/Config';\nimport {\n createProgressIndicator,\n createTable,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n spinSpinner,\n stopProgressIndicator,\n succeedSpinner,\n updateProgressIndicator,\n} from '../utils/Console';\nimport wordwrap from './utils/Wordwrap';\n\nconst {\n getTypedFilename,\n isValidUrl,\n saveJsonToFile,\n saveTextToFile,\n titleCase,\n isBase64Encoded,\n getFilePath,\n getWorkingDirectory,\n} = frodo.utils;\nconst {\n readScripts,\n exportScript,\n exportScriptByName,\n exportScripts,\n importScripts,\n deleteScript,\n deleteScriptByName,\n deleteScripts,\n} = frodo.script;\n\n/**\n * Get a one-line description of the script object\n * @param {ScriptSkeleton} scriptObj script object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(scriptObj: ScriptSkeleton): string {\n const description = `[${scriptObj._id['brightCyan']}] ${scriptObj.context} - ${scriptObj.name}`;\n return description;\n}\n\n/**\n * Get markdown table header\n * @returns {string} markdown table header\n */\nexport function getTableHeaderMd(): string {\n let markdown = '';\n markdown += '| Name | Language | Type | Id |\\n';\n markdown += '| ---- | -------- | ---- | ---|';\n return markdown;\n}\n\n/**\n * Get a one-line description of the script object in markdown\n * @param {TypesRaw.ScriptSkeleton} scriptObj script object to describe\n * @returns {string} markdown table row\n */\nexport function getTableRowMd(scriptObj: ScriptSkeleton): string {\n const langMap = { JAVASCRIPT: 'JavaSscript', GROOVY: 'Groovy' };\n const description = `| ${scriptObj.name} | ${\n langMap[scriptObj.language]\n } | ${titleCase(scriptObj.context.split('_').join(' '))} | \\`${\n scriptObj._id\n }\\` |`;\n return description;\n}\n\n/**\n * List scripts\n * @param {boolean} long detail list\n * @param {boolean} usage display usage field\n * @param {String | null} file Optional filename to determine usage\n * @returns {Promise<boolean>} true if no errors occurred during export, false otherwise\n */\nexport async function listScripts(\n long: boolean = false,\n usage: boolean = false,\n file: string | null = null\n): Promise<boolean> {\n let spinnerId: string;\n let scripts: ScriptSkeleton[] = [];\n debugMessage(`Cli.ScriptOps.listScripts: start`);\n try {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Reading scripts...`\n );\n scripts = await readScripts();\n scripts.sort((a, b) => a.name.localeCompare(b.name));\n stopProgressIndicator(\n spinnerId,\n `Successfully read ${scripts.length} scripts.`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error reading scripts: ${error.response?.data || error.message}`,\n 'fail'\n );\n debugMessage(error);\n debugMessage(`Cli.ScriptOps.listScripts: end [false]`);\n return false;\n }\n if (!long && !usage) {\n scripts.forEach((script) => {\n printMessage(`${script.name}`, 'data');\n });\n debugMessage(`Cli.ScriptOps.listScripts: end [true]`);\n return true;\n }\n let fullExport = null;\n const headers = long\n ? ['Name', 'UUID', 'Language', 'Context', 'Description']\n : ['Name'];\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 debugMessage(`Cli.ScriptOps.listScripts: end [false]`);\n return false;\n }\n //Delete scripts from full export so they aren't mistakenly used for determining usage\n delete fullExport.script;\n headers.push('Used');\n }\n const table = createTable(headers);\n const langMap = { JAVASCRIPT: 'JS', GROOVY: 'Groovy' };\n scripts.forEach((script) => {\n const values = long\n ? [\n wordwrap(script.name, 25, ' '),\n script._id,\n langMap[script.language],\n wordwrap(titleCase(script.context.split('_').join(' ')), 25),\n wordwrap(script.description, 30),\n ]\n : [wordwrap(script.name, 25, ' ')];\n if (usage) {\n const isScriptUsed = isIdUsed(fullExport, script._id, false);\n values.push(\n isScriptUsed.used\n ? `${'yes'['brightGreen']} (at ${isScriptUsed.location})`\n : 'no'['brightRed']\n );\n }\n table.push(values);\n });\n printMessage(table.toString(), 'data');\n debugMessage(`Cli.ScriptOps.listScripts: end [true]`);\n return true;\n}\n\n/**\n * Export script by id to file\n * @param {string} scriptId script uuid\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if no errors occurred during export, false otherwise\n */\nexport async function exportScriptToFile(\n scriptId: string,\n file: string,\n includeMeta = true\n): Promise<boolean> {\n debugMessage(`Cli.ScriptOps.exportScriptToFile: start`);\n try {\n showSpinner(`Exporting script '${scriptId}'...`);\n let fileName = getTypedFilename(scriptId, 'script');\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n spinSpinner(`Exporting script '${scriptId}' to '${filePath}'...`);\n const scriptExport = await exportScript(scriptId);\n saveJsonToFile(scriptExport, filePath, includeMeta);\n succeedSpinner(`Exported script '${scriptId}' to '${filePath}'.`);\n debugMessage(`Cli.ScriptOps.exportScriptToFile: end [true]`);\n return true;\n } catch (error) {\n failSpinner(`Error exporting script '${scriptId}': ${error.message}`);\n debugMessage(error);\n }\n debugMessage(`Cli.ScriptOps.exportScriptToFile: end [false]`);\n return false;\n}\n\n/**\n * Export script by name to file\n * @param {string} name script name\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if no errors occurred during export, false otherwise\n */\nexport async function exportScriptByNameToFile(\n name: string,\n file: string,\n includeMeta = true\n): Promise<boolean> {\n debugMessage(`Cli.ScriptOps.exportScriptByNameToFile: start`);\n try {\n showSpinner(`Exporting script '${name}'...`);\n let fileName = getTypedFilename(name, 'script');\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n spinSpinner(`Exporting script '${name}' to '${filePath}'...`);\n const scriptExport = await exportScriptByName(name);\n saveJsonToFile(scriptExport, filePath, includeMeta);\n succeedSpinner(`Exported script '${name}' to '${filePath}'.`);\n debugMessage(`Cli.ScriptOps.exportScriptByNameToFile: end [true]`);\n return true;\n } catch (error) {\n failSpinner(`Error exporting script '${name}': ${error.message}`);\n debugMessage(error);\n }\n debugMessage(`Cli.ScriptOps.exportScriptByNameToFile: end [false]`);\n return false;\n}\n\n/**\n * Export all scripts to single file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if no errors occurred during export, false otherwise\n */\nexport async function exportScriptsToFile(\n file: string,\n includeMeta = true\n): Promise<boolean> {\n debugMessage(`Cli.ScriptOps.exportScriptsToFile: start`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(state.getRealm())}Scripts`,\n 'script'\n );\n if (file) {\n fileName = file;\n }\n const scriptExport = await exportScripts();\n saveJsonToFile(scriptExport, getFilePath(fileName, true), includeMeta);\n debugMessage(`Cli.ScriptOps.exportScriptsToFile: end [true]`);\n return true;\n } catch (error) {\n printMessage(`Error exporting scripts: ${error.message}`, 'error');\n debugMessage(error);\n }\n debugMessage(`Cli.ScriptOps.exportScriptsToFile: end [false]`);\n return false;\n}\n\n/**\n * Export all scripts to individual files\n * @param extract Extracts the scripts from the exports into separate files if true\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if no errors occurred during export, false otherwise\n */\nexport async function exportScriptsToFiles(\n extract = false,\n includeMeta = true\n): Promise<boolean> {\n let outcome = true;\n debugMessage(`Cli.ScriptOps.exportScriptsToFiles: start`);\n const scriptList = await readScripts();\n const barId = createProgressIndicator(\n 'determinate',\n scriptList.length,\n 'Exporting scripts to individual files...'\n );\n for (const script of scriptList) {\n const fileBarId = createProgressIndicator(\n 'determinate',\n 1,\n `Exporting script ${script.name}...`\n );\n updateProgressIndicator(barId, `Reading script ${script.name}`);\n const file = getFilePath(getTypedFilename(script.name, 'script'), true);\n try {\n const scriptExport = await exportScriptByName(script.name);\n if (extract) extractScriptToFile(scriptExport);\n saveJsonToFile(scriptExport, file, includeMeta);\n updateProgressIndicator(fileBarId, `Saving ${script.name} to ${file}.`);\n stopProgressIndicator(fileBarId, `${script.name} saved to ${file}.`);\n } catch (error) {\n outcome = false;\n updateProgressIndicator(barId, `Error exporting ${script.name}.`);\n stopProgressIndicator(\n fileBarId,\n `Error saving ${script.name} to ${file}.`\n );\n printMessage(\n `Error exporting script '${script.name}': ${error.message}`,\n 'error'\n );\n debugMessage(error);\n }\n }\n stopProgressIndicator(\n barId,\n `Exported ${scriptList.length} scripts to individual files.`\n );\n debugMessage(`Cli.ScriptOps.exportScriptsToFiles: end [${outcome}]`);\n return outcome;\n}\n\n/**\n * Extracts a script from a script export into a separate file.\n * @param scriptExport The script export\n * @param scriptId The script id (optional if there is only one script in the export)\n * @param directory The directory within the base directory to save the script file\n */\nexport function extractScriptToFile(\n scriptExport: ScriptExportInterface,\n scriptId?: string,\n directory?: string\n) {\n const scriptSkeleton = scriptId\n ? scriptExport.script[scriptId]\n : getScriptSkeleton(scriptExport);\n const fileExtension =\n scriptSkeleton.language === 'JAVASCRIPT' ? 'js' : 'groovy';\n const scriptFileName = getTypedFilename(\n scriptSkeleton.name,\n 'script',\n fileExtension\n );\n const scriptFilePath = getFilePath(\n (directory ? `${directory}/` : '') + scriptFileName,\n true\n );\n const scriptText = Array.isArray(scriptSkeleton.script)\n ? scriptSkeleton.script.join('\\n')\n : scriptSkeleton.script;\n scriptSkeleton.script = `file://${scriptFilePath}`;\n saveTextToFile(scriptText, scriptFilePath);\n}\n\nfunction isScriptExtracted(importData: ScriptExportInterface): boolean {\n debugMessage(`Cli.ScriptOps.isScriptExtracted: start`);\n let extracted = true;\n for (const scriptId of Object.keys(importData.script)) {\n const script = importData.script[scriptId].script;\n if (Array.isArray(script)) {\n debugMessage(`Cli.ScriptOps.isScriptExtracted: script is string array`);\n extracted = false;\n break;\n }\n if (isValidUrl(script as string)) {\n debugMessage(`Cli.ScriptOps.isScriptExtracted: script is extracted`);\n extracted = true;\n break;\n }\n if (isBase64Encoded) {\n debugMessage(`Cli.ScriptOps.isScriptExtracted: script is base64-encoded`);\n extracted = false;\n break;\n }\n break;\n }\n debugMessage(`Cli.ScriptOps.isScriptExtracted: end [extracted=${extracted}]`);\n return extracted;\n}\n\n/**\n * Import script(s) from file\n * @param {string} name Optional name of script. If supplied, only the script of that name is imported\n * @param {string} file file name\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\nexport async function importScriptsFromFile(\n name: string,\n file: string,\n reUuid = false\n): Promise<boolean> {\n let outcome = false;\n const filePath = getFilePath(file);\n debugMessage(`Cli.ScriptOps.importScriptsFromFile: start`);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n try {\n if (err) throw err;\n const importData: ScriptExportInterface = JSON.parse(data);\n if (isScriptExtracted(importData)) {\n await handleScriptFileImport(filePath, reUuid, false);\n } else {\n await importScripts(name, importData, reUuid);\n }\n outcome = true;\n } catch (error) {\n printMessage(\n `Error exporting script '${name}': ${error.message}`,\n 'error'\n );\n debugMessage(error);\n }\n });\n debugMessage(`Cli.ScriptOps.importScriptsFromFile: end [${outcome}]`);\n return outcome;\n}\n\n/**\n * Import extracted scripts.\n *\n * @param watch whether or not to watch for file changes\n */\nexport async function importScriptsFromFiles(\n watch: boolean,\n reUuid: boolean,\n validateScripts: boolean\n) {\n // If watch is true, it doesn't make sense to reUuid.\n reUuid = watch ? false : reUuid;\n\n /**\n * Run on file change detection, as well as on initial run.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async function onChange(path: string, _stats?: fs.Stats): Promise<void> {\n try {\n await handleScriptFileImport(path, reUuid, validateScripts);\n } catch (error) {\n printMessage(`${path}: ${error.message}`, 'error');\n }\n }\n\n // We watch json files and script files.\n const watcher = chokidar.watch(\n [\n `${getWorkingDirectory()}/**/*.script.json`,\n `${getWorkingDirectory()}/**/*.script.js`,\n `${getWorkingDirectory()}/**/*.script.groovy`,\n ],\n {\n persistent: watch,\n }\n );\n\n watcher\n .on('add', onChange)\n .on('change', onChange)\n .on('error', (error) => {\n printMessage(`Watcher error: ${error}`, 'error');\n watcher.close();\n })\n .on('ready', () => {\n if (watch) {\n printMessage('Watching for changes...');\n } else {\n watcher.close();\n printMessage('Done.');\n }\n });\n}\n\n/**\n * Handle a script file import.\n *\n * @param file Either a script file or an extract file\n * @param reUuid whether or not to generate a new uuid for each script on import\n */\nasync function handleScriptFileImport(\n file: string,\n reUuid: boolean,\n validateScripts: boolean\n) {\n debugMessage(`Cli.ScriptOps.handleScriptFileImport: start`);\n const scriptFile = getScriptFile(file);\n const script = getScriptExportByScriptFile(scriptFile);\n\n const imported = await importScripts('', script, reUuid, validateScripts);\n if (imported) {\n printMessage(`Imported '${scriptFile}'`);\n }\n debugMessage(`Cli.ScriptOps.handleScriptFileImport: end`);\n}\n\n/**\n * Get a script file from a file.\n *\n * @param file Either a script file or an extract file\n * @returns The script file\n */\nfunction getScriptFile(file: string) {\n if (file.endsWith('.script.json')) {\n return file;\n }\n return file.replace(/\\.script\\.(js|groovy)/, '.script.json');\n}\n\n/**\n * Get a script export from a script file.\n *\n * @param scriptFile The path to the script file\n * @returns The script export\n */\nfunction getScriptExportByScriptFile(\n scriptFile: string\n): ScriptExportInterface {\n const scriptExport = getScriptExport(scriptFile);\n const scriptSkeleton = getScriptSkeleton(scriptExport);\n\n const extractFile = getExtractFile(scriptSkeleton);\n if (!extractFile) {\n return scriptExport;\n }\n\n const scriptRaw = fs.readFileSync(extractFile, 'utf8');\n scriptSkeleton.script = scriptRaw.split('\\n');\n\n return scriptExport;\n}\n\n/**\n * Get an extract file from a script skeleton.\n *\n * @param scriptSkeleton The script skeleton\n * @returns The extract file or null if there is no extract file\n */\nfunction getExtractFile(scriptSkeleton: ScriptSkeleton): string | null {\n const extractFile = scriptSkeleton.script;\n if (Array.isArray(extractFile)) {\n return null;\n }\n if (\n extractFile.startsWith('file://') &&\n (extractFile.endsWith('.js') || extractFile.endsWith('.groovy'))\n ) {\n return extractFile.replace('file://', '');\n }\n return null;\n}\n\n/**\n * Get a script export from a file.\n *\n * @param file The path to a script export file\n * @returns The script export\n */\nfunction getScriptExport(file: string): ScriptExportInterface {\n const scriptExportRaw = fs.readFileSync(file, 'utf8');\n const scriptExport = JSON.parse(scriptExportRaw) as ScriptExportInterface;\n\n return scriptExport;\n}\n\n/**\n * Get the main script skeleton from a script export. If there is more than one\n * script, an error is thrown.\n *\n * @param script Get the main script skeleton from a script export\n * @returns The main script skeleton\n */\nfunction getScriptSkeleton(script: ScriptExportInterface): ScriptSkeleton {\n const scriptId = getScriptId(script);\n return script.script[scriptId];\n}\n\n/**\n * Get the main script ID from a script export. If there is more than one\n * script, an error is thrown.\n *\n * @param script The script export\n * @returns The main script ID\n */\nfunction getScriptId(script: ScriptExportInterface): string {\n const scriptIds = Object.keys(script.script);\n if (scriptIds.length !== 1) {\n throw new Error(`Expected 1 script, found ${scriptIds.length}`);\n }\n return scriptIds[0];\n}\n\n/**\n * Delete script by id\n * @param {String} id script id\n */\nexport async function deleteScriptId(id) {\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n undefined,\n `Deleting ${id}...`\n );\n try {\n await deleteScript(id);\n stopProgressIndicator(spinnerId, `Deleted ${id}.`, 'success');\n } catch (error) {\n stopProgressIndicator(spinnerId, `Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete script by name\n * @param {String} name script name\n */\nexport async function deleteScriptName(name) {\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n undefined,\n `Deleting ${name}...`\n );\n try {\n await deleteScriptByName(name);\n stopProgressIndicator(spinnerId, `Deleted ${name}.`, 'success');\n } catch (error) {\n stopProgressIndicator(spinnerId, `Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete all non-default scripts\n */\nexport async function deleteAllScripts() {\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n undefined,\n `Deleting all non-default scripts...`\n );\n try {\n await deleteScripts();\n stopProgressIndicator(\n spinnerId,\n `Deleted all non-default scripts.`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(spinnerId, `Error: ${error.message}`, 'fail');\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScriptOps.js","names":["frodo","state","chokidar","fs","getFullExportConfig","isIdUsed","createProgressIndicator","createTable","debugMessage","failSpinner","printMessage","showSpinner","spinSpinner","stopProgressIndicator","succeedSpinner","updateProgressIndicator","wordwrap","getTypedFilename","isValidUrl","saveJsonToFile","saveTextToFile","titleCase","isBase64Encoded","getFilePath","getWorkingDirectory","utils","readScripts","exportScript","exportScriptByName","exportScripts","importScripts","deleteScript","deleteScriptByName","deleteScripts","script","getOneLineDescription","scriptObj","description","_id","context","name","getTableHeaderMd","markdown","getTableRowMd","langMap","JAVASCRIPT","GROOVY","language","split","join","listScripts","long","usage","file","spinnerId","scripts","sort","a","b","localeCompare","length","error","_error$response","response","data","message","forEach","fullExport","headers","_error$response2","push","table","values","isScriptUsed","used","location","toString","exportScriptToFile","scriptId","includeMeta","fileName","filePath","scriptExport","exportScriptByNameToFile","exportScriptsToFile","getRealm","exportScriptsToFiles","extract","outcome","scriptList","barId","fileBarId","extractScriptToFile","directory","scriptSkeleton","getScriptSkeleton","fileExtension","scriptFileName","scriptFilePath","scriptText","Array","isArray","isScriptExtracted","importData","extracted","Object","keys","importScriptsFromFile","reUuid","readFile","err","JSON","parse","handleScriptFileImport","importScriptsFromFiles","watch","validateScripts","onChange","path","_stats","watcher","persistent","on","close","scriptFile","getScriptFile","getScriptExportByScriptFile","imported","endsWith","replace","getScriptExport","extractFile","getExtractFile","scriptRaw","readFileSync","startsWith","scriptExportRaw","getScriptId","scriptIds","Error","deleteScriptId","id","undefined","deleteScriptName","deleteAllScripts"],"sources":["../../src/ops/ScriptOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { type ScriptSkeleton } from '@rockcarver/frodo-lib/types/api/ScriptApi';\nimport { type ScriptExportInterface } from '@rockcarver/frodo-lib/types/ops/ScriptOps';\nimport chokidar from 'chokidar';\nimport fs from 'fs';\n\nimport { getFullExportConfig, isIdUsed } from '../utils/Config';\nimport {\n createProgressIndicator,\n createTable,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n spinSpinner,\n stopProgressIndicator,\n succeedSpinner,\n updateProgressIndicator,\n} from '../utils/Console';\nimport wordwrap from './utils/Wordwrap';\n\nconst {\n getTypedFilename,\n isValidUrl,\n saveJsonToFile,\n saveTextToFile,\n titleCase,\n isBase64Encoded,\n getFilePath,\n getWorkingDirectory,\n} = frodo.utils;\nconst {\n readScripts,\n exportScript,\n exportScriptByName,\n exportScripts,\n importScripts,\n deleteScript,\n deleteScriptByName,\n deleteScripts,\n} = frodo.script;\n\n/**\n * Get a one-line description of the script object\n * @param {ScriptSkeleton} scriptObj script object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(scriptObj: ScriptSkeleton): string {\n const description = `[${scriptObj._id['brightCyan']}] ${scriptObj.context} - ${scriptObj.name}`;\n return description;\n}\n\n/**\n * Get markdown table header\n * @returns {string} markdown table header\n */\nexport function getTableHeaderMd(): string {\n let markdown = '';\n markdown += '| Name | Language | Type | Id |\\n';\n markdown += '| ---- | -------- | ---- | ---|';\n return markdown;\n}\n\n/**\n * Get a one-line description of the script object in markdown\n * @param {TypesRaw.ScriptSkeleton} scriptObj script object to describe\n * @returns {string} markdown table row\n */\nexport function getTableRowMd(scriptObj: ScriptSkeleton): string {\n const langMap = { JAVASCRIPT: 'JavaSscript', GROOVY: 'Groovy' };\n const description = `| ${scriptObj.name} | ${\n langMap[scriptObj.language]\n } | ${titleCase(scriptObj.context.split('_').join(' '))} | \\`${\n scriptObj._id\n }\\` |`;\n return description;\n}\n\n/**\n * List scripts\n * @param {boolean} long detail list\n * @param {boolean} usage display usage field\n * @param {String | null} file Optional filename to determine usage\n * @returns {Promise<boolean>} true if no errors occurred during export, false otherwise\n */\nexport async function listScripts(\n long: boolean = false,\n usage: boolean = false,\n file: string | null = null\n): Promise<boolean> {\n let spinnerId: string;\n let scripts: ScriptSkeleton[] = [];\n debugMessage(`Cli.ScriptOps.listScripts: start`);\n try {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Reading scripts...`\n );\n scripts = await readScripts();\n scripts.sort((a, b) => a.name.localeCompare(b.name));\n stopProgressIndicator(\n spinnerId,\n `Successfully read ${scripts.length} scripts.`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error reading scripts: ${error.response?.data || error.message}`,\n 'fail'\n );\n debugMessage(error);\n debugMessage(`Cli.ScriptOps.listScripts: end [false]`);\n return false;\n }\n if (!long && !usage) {\n scripts.forEach((script) => {\n printMessage(`${script.name}`, 'data');\n });\n debugMessage(`Cli.ScriptOps.listScripts: end [true]`);\n return true;\n }\n let fullExport = null;\n const headers = long\n ? ['Name', 'UUID', 'Language', 'Context', 'Description']\n : ['Name'];\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 debugMessage(`Cli.ScriptOps.listScripts: end [false]`);\n return false;\n }\n //Delete scripts from full export so they aren't mistakenly used for determining usage\n delete fullExport.script;\n headers.push('Used');\n }\n const table = createTable(headers);\n const langMap = { JAVASCRIPT: 'JS', GROOVY: 'Groovy' };\n scripts.forEach((script) => {\n const values = long\n ? [\n wordwrap(script.name, 25, ' '),\n script._id,\n langMap[script.language],\n wordwrap(titleCase(script.context.split('_').join(' ')), 25),\n wordwrap(script.description, 30),\n ]\n : [wordwrap(script.name, 25, ' ')];\n if (usage) {\n const isScriptUsed = isIdUsed(fullExport, script._id, false);\n values.push(\n isScriptUsed.used\n ? `${'yes'['brightGreen']} (at ${isScriptUsed.location})`\n : 'no'['brightRed']\n );\n }\n table.push(values);\n });\n printMessage(table.toString(), 'data');\n debugMessage(`Cli.ScriptOps.listScripts: end [true]`);\n return true;\n}\n\n/**\n * Export script by id to file\n * @param {string} scriptId script uuid\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if no errors occurred during export, false otherwise\n */\nexport async function exportScriptToFile(\n scriptId: string,\n file: string,\n includeMeta = true\n): Promise<boolean> {\n debugMessage(`Cli.ScriptOps.exportScriptToFile: start`);\n try {\n showSpinner(`Exporting script '${scriptId}'...`);\n let fileName = getTypedFilename(scriptId, 'script');\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n spinSpinner(`Exporting script '${scriptId}' to '${filePath}'...`);\n const scriptExport = await exportScript(scriptId);\n saveJsonToFile(scriptExport, filePath, includeMeta);\n succeedSpinner(`Exported script '${scriptId}' to '${filePath}'.`);\n debugMessage(`Cli.ScriptOps.exportScriptToFile: end [true]`);\n return true;\n } catch (error) {\n failSpinner(`Error exporting script '${scriptId}': ${error.message}`);\n debugMessage(error);\n }\n debugMessage(`Cli.ScriptOps.exportScriptToFile: end [false]`);\n return false;\n}\n\n/**\n * Export script by name to file\n * @param {string} name script name\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if no errors occurred during export, false otherwise\n */\nexport async function exportScriptByNameToFile(\n name: string,\n file: string,\n includeMeta = true\n): Promise<boolean> {\n debugMessage(`Cli.ScriptOps.exportScriptByNameToFile: start`);\n try {\n showSpinner(`Exporting script '${name}'...`);\n let fileName = getTypedFilename(name, 'script');\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n spinSpinner(`Exporting script '${name}' to '${filePath}'...`);\n const scriptExport = await exportScriptByName(name);\n saveJsonToFile(scriptExport, filePath, includeMeta);\n succeedSpinner(`Exported script '${name}' to '${filePath}'.`);\n debugMessage(`Cli.ScriptOps.exportScriptByNameToFile: end [true]`);\n return true;\n } catch (error) {\n failSpinner(`Error exporting script '${name}': ${error.message}`);\n debugMessage(error);\n }\n debugMessage(`Cli.ScriptOps.exportScriptByNameToFile: end [false]`);\n return false;\n}\n\n/**\n * Export all scripts to single file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if no errors occurred during export, false otherwise\n */\nexport async function exportScriptsToFile(\n file: string,\n includeMeta = true\n): Promise<boolean> {\n debugMessage(`Cli.ScriptOps.exportScriptsToFile: start`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(state.getRealm())}Scripts`,\n 'script'\n );\n if (file) {\n fileName = file;\n }\n const scriptExport = await exportScripts();\n saveJsonToFile(scriptExport, getFilePath(fileName, true), includeMeta);\n debugMessage(`Cli.ScriptOps.exportScriptsToFile: end [true]`);\n return true;\n } catch (error) {\n printMessage(`Error exporting scripts: ${error.message}`, 'error');\n debugMessage(error);\n }\n debugMessage(`Cli.ScriptOps.exportScriptsToFile: end [false]`);\n return false;\n}\n\n/**\n * Export all scripts to individual files\n * @param extract Extracts the scripts from the exports into separate files if true\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if no errors occurred during export, false otherwise\n */\nexport async function exportScriptsToFiles(\n extract = false,\n includeMeta = true\n): Promise<boolean> {\n let outcome = true;\n debugMessage(`Cli.ScriptOps.exportScriptsToFiles: start`);\n const scriptList = await readScripts();\n const barId = createProgressIndicator(\n 'determinate',\n scriptList.length,\n 'Exporting scripts to individual files...'\n );\n for (const script of scriptList) {\n const fileBarId = createProgressIndicator(\n 'determinate',\n 1,\n `Exporting script ${script.name}...`\n );\n updateProgressIndicator(barId, `Reading script ${script.name}`);\n const file = getFilePath(getTypedFilename(script.name, 'script'), true);\n try {\n const scriptExport = await exportScriptByName(script.name);\n if (extract) extractScriptToFile(scriptExport);\n saveJsonToFile(scriptExport, file, includeMeta);\n updateProgressIndicator(fileBarId, `Saving ${script.name} to ${file}.`);\n stopProgressIndicator(fileBarId, `${script.name} saved to ${file}.`);\n } catch (error) {\n outcome = false;\n updateProgressIndicator(barId, `Error exporting ${script.name}.`);\n stopProgressIndicator(\n fileBarId,\n `Error saving ${script.name} to ${file}.`\n );\n printMessage(\n `Error exporting script '${script.name}': ${error.message}`,\n 'error'\n );\n debugMessage(error);\n }\n }\n stopProgressIndicator(\n barId,\n `Exported ${scriptList.length} scripts to individual files.`\n );\n debugMessage(`Cli.ScriptOps.exportScriptsToFiles: end [${outcome}]`);\n return outcome;\n}\n\n/**\n * Extracts a script from a script export into a separate file.\n * @param scriptExport The script export\n * @param scriptId The script id (optional if there is only one script in the export)\n * @param directory The directory within the base directory to save the script file\n */\nexport function extractScriptToFile(\n scriptExport: ScriptExportInterface,\n scriptId?: string,\n directory?: string\n) {\n const scriptSkeleton = scriptId\n ? scriptExport.script[scriptId]\n : getScriptSkeleton(scriptExport);\n const fileExtension =\n scriptSkeleton.language === 'JAVASCRIPT' ? 'js' : 'groovy';\n const scriptFileName = getTypedFilename(\n scriptSkeleton.name,\n 'script',\n fileExtension\n );\n const scriptFilePath = getFilePath(\n (directory ? `${directory}/` : '') + scriptFileName,\n true\n );\n const scriptText = Array.isArray(scriptSkeleton.script)\n ? scriptSkeleton.script.join('\\n')\n : scriptSkeleton.script;\n scriptSkeleton.script = `file://${scriptFilePath}`;\n saveTextToFile(scriptText, scriptFilePath);\n}\n\nfunction isScriptExtracted(importData: ScriptExportInterface): boolean {\n debugMessage(`Cli.ScriptOps.isScriptExtracted: start`);\n let extracted = true;\n for (const scriptId of Object.keys(importData.script)) {\n const script = importData.script[scriptId].script;\n if (Array.isArray(script)) {\n debugMessage(`Cli.ScriptOps.isScriptExtracted: script is string array`);\n extracted = false;\n break;\n }\n if (isValidUrl(script as string)) {\n debugMessage(`Cli.ScriptOps.isScriptExtracted: script is extracted`);\n extracted = true;\n break;\n }\n if (isBase64Encoded) {\n debugMessage(`Cli.ScriptOps.isScriptExtracted: script is base64-encoded`);\n extracted = false;\n break;\n }\n break;\n }\n debugMessage(`Cli.ScriptOps.isScriptExtracted: end [extracted=${extracted}]`);\n return extracted;\n}\n\n/**\n * Import script(s) from file\n * @param {string} name Optional name of script. If supplied, only the script of that name is imported\n * @param {string} file file name\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\nexport async function importScriptsFromFile(\n name: string,\n file: string,\n reUuid = false\n): Promise<boolean> {\n let outcome = false;\n const filePath = getFilePath(file);\n debugMessage(`Cli.ScriptOps.importScriptsFromFile: start`);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n try {\n if (err) throw err;\n const importData: ScriptExportInterface = JSON.parse(data);\n if (isScriptExtracted(importData)) {\n await handleScriptFileImport(filePath, reUuid, false);\n } else {\n await importScripts(name, importData, reUuid);\n }\n outcome = true;\n } catch (error) {\n printMessage(\n `Error importing script '${name}': ${error.message}`,\n 'error'\n );\n debugMessage(error);\n }\n });\n debugMessage(`Cli.ScriptOps.importScriptsFromFile: end [${outcome}]`);\n return outcome;\n}\n\n/**\n * Import extracted scripts.\n *\n * @param watch whether or not to watch for file changes\n */\nexport async function importScriptsFromFiles(\n watch: boolean,\n reUuid: boolean,\n validateScripts: boolean\n) {\n // If watch is true, it doesn't make sense to reUuid.\n reUuid = watch ? false : reUuid;\n\n /**\n * Run on file change detection, as well as on initial run.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async function onChange(path: string, _stats?: fs.Stats): Promise<void> {\n try {\n await handleScriptFileImport(path, reUuid, validateScripts);\n } catch (error) {\n printMessage(`${path}: ${error.message}`, 'error');\n }\n }\n\n // We watch json files and script files.\n const watcher = chokidar.watch(\n [\n `${getWorkingDirectory()}/**/*.script.json`,\n `${getWorkingDirectory()}/**/*.script.js`,\n `${getWorkingDirectory()}/**/*.script.groovy`,\n ],\n {\n persistent: watch,\n }\n );\n\n watcher\n .on('add', onChange)\n .on('change', onChange)\n .on('error', (error) => {\n printMessage(`Watcher error: ${error}`, 'error');\n watcher.close();\n })\n .on('ready', () => {\n if (watch) {\n printMessage('Watching for changes...');\n } else {\n watcher.close();\n printMessage('Done.');\n }\n });\n}\n\n/**\n * Handle a script file import.\n *\n * @param file Either a script file or an extract file\n * @param reUuid whether or not to generate a new uuid for each script on import\n */\nasync function handleScriptFileImport(\n file: string,\n reUuid: boolean,\n validateScripts: boolean\n) {\n debugMessage(`Cli.ScriptOps.handleScriptFileImport: start`);\n const scriptFile = getScriptFile(file);\n const script = getScriptExportByScriptFile(scriptFile);\n\n const imported = await importScripts('', script, reUuid, validateScripts);\n if (imported) {\n printMessage(`Imported '${scriptFile}'`);\n }\n debugMessage(`Cli.ScriptOps.handleScriptFileImport: end`);\n}\n\n/**\n * Get a script file from a file.\n *\n * @param file Either a script file or an extract file\n * @returns The script file\n */\nfunction getScriptFile(file: string) {\n if (file.endsWith('.script.json')) {\n return file;\n }\n return file.replace(/\\.script\\.(js|groovy)/, '.script.json');\n}\n\n/**\n * Get a script export from a script file.\n *\n * @param scriptFile The path to the script file\n * @returns The script export\n */\nfunction getScriptExportByScriptFile(\n scriptFile: string\n): ScriptExportInterface {\n const scriptExport = getScriptExport(scriptFile);\n const scriptSkeleton = getScriptSkeleton(scriptExport);\n\n const extractFile = getExtractFile(scriptSkeleton);\n if (!extractFile) {\n return scriptExport;\n }\n\n const scriptRaw = fs.readFileSync(extractFile, 'utf8');\n scriptSkeleton.script = scriptRaw.split('\\n');\n\n return scriptExport;\n}\n\n/**\n * Get an extract file from a script skeleton.\n *\n * @param scriptSkeleton The script skeleton\n * @returns The extract file or null if there is no extract file\n */\nfunction getExtractFile(scriptSkeleton: ScriptSkeleton): string | null {\n const extractFile = scriptSkeleton.script;\n if (Array.isArray(extractFile)) {\n return null;\n }\n if (\n extractFile.startsWith('file://') &&\n (extractFile.endsWith('.js') || extractFile.endsWith('.groovy'))\n ) {\n return extractFile.replace('file://', '');\n }\n return null;\n}\n\n/**\n * Get a script export from a file.\n *\n * @param file The path to a script export file\n * @returns The script export\n */\nfunction getScriptExport(file: string): ScriptExportInterface {\n const scriptExportRaw = fs.readFileSync(file, 'utf8');\n const scriptExport = JSON.parse(scriptExportRaw) as ScriptExportInterface;\n\n return scriptExport;\n}\n\n/**\n * Get the main script skeleton from a script export. If there is more than one\n * script, an error is thrown.\n *\n * @param script Get the main script skeleton from a script export\n * @returns The main script skeleton\n */\nfunction getScriptSkeleton(script: ScriptExportInterface): ScriptSkeleton {\n const scriptId = getScriptId(script);\n return script.script[scriptId];\n}\n\n/**\n * Get the main script ID from a script export. If there is more than one\n * script, an error is thrown.\n *\n * @param script The script export\n * @returns The main script ID\n */\nfunction getScriptId(script: ScriptExportInterface): string {\n const scriptIds = Object.keys(script.script);\n if (scriptIds.length !== 1) {\n throw new Error(`Expected 1 script, found ${scriptIds.length}`);\n }\n return scriptIds[0];\n}\n\n/**\n * Delete script by id\n * @param {String} id script id\n */\nexport async function deleteScriptId(id) {\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n undefined,\n `Deleting ${id}...`\n );\n try {\n await deleteScript(id);\n stopProgressIndicator(spinnerId, `Deleted ${id}.`, 'success');\n } catch (error) {\n stopProgressIndicator(spinnerId, `Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete script by name\n * @param {String} name script name\n */\nexport async function deleteScriptName(name) {\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n undefined,\n `Deleting ${name}...`\n );\n try {\n await deleteScriptByName(name);\n stopProgressIndicator(spinnerId, `Deleted ${name}.`, 'success');\n } catch (error) {\n stopProgressIndicator(spinnerId, `Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete all non-default scripts\n */\nexport async function deleteAllScripts() {\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n undefined,\n `Deleting all non-default scripts...`\n );\n try {\n await deleteScripts();\n stopProgressIndicator(\n spinnerId,\n `Deleted all non-default scripts.`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(spinnerId, `Error: ${error.message}`, 'fail');\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rockcarver/frodo-cli",
|
|
3
|
-
"version": "2.0.0-
|
|
3
|
+
"version": "2.0.0-40",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A command line interface to manage ForgeRock Identity Cloud tenants, ForgeOps deployments, and classic deployments.",
|
|
6
6
|
"keywords": [
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
"build:local": "tsc && npm run clean-esm && npm run transpile-esm && npm run clean-cjs && npm run transpile-cjs",
|
|
41
41
|
"clean-cjs": "rimraf cjs",
|
|
42
42
|
"transpile-cjs": "babel --out-dir cjs --extensions \".ts\" --source-maps --config-file ./babel.config.cjs.json src && echo {\\\"type\\\": \\\"commonjs\\\"} > cjs/package.json",
|
|
43
|
-
"dist-pkg": "pkg -C Gzip -t node18 --
|
|
44
|
-
"dist-pkg-linux": "pkg -C Gzip -t node18-linux --
|
|
45
|
-
"dist-pkg-macos": "pkg -C Gzip -t node18-macos --
|
|
46
|
-
"dist-pkg-win": "pkg -C Gzip -t node18-win --
|
|
43
|
+
"dist-pkg": "pkg -C Gzip -t node18 --config package.json -o frodo cjs/app.js",
|
|
44
|
+
"dist-pkg-linux": "pkg -C Gzip -t node18-linux --config package.json -o frodo-linux cjs/app.js",
|
|
45
|
+
"dist-pkg-macos": "pkg -C Gzip -t node18-macos --config package.json -o frodo-macos cjs/app.js",
|
|
46
|
+
"dist-pkg-win": "pkg -C Gzip -t node18-win --config package.json -o frodo.exe cjs/app.js",
|
|
47
47
|
"build:binary": "tsc && npm run clean-cjs && npm run transpile-cjs && npm run dist-pkg",
|
|
48
48
|
"link-frodo-lib": "npm link ../frodo-lib",
|
|
49
49
|
"watch": "npm run link-frodo-lib && babel --watch --out-dir esm --extensions \".ts\" --source-maps --config-file ./babel.config.esm.json src"
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
]
|
|
117
117
|
},
|
|
118
118
|
"dependencies": {
|
|
119
|
-
"@rockcarver/frodo-lib": "2.0.0-
|
|
119
|
+
"@rockcarver/frodo-lib": "2.0.0-56",
|
|
120
120
|
"chokidar": "^3.5.3",
|
|
121
121
|
"cli-progress": "^3.11.2",
|
|
122
122
|
"cli-table3": "^0.6.3",
|
|
@@ -148,12 +148,12 @@
|
|
|
148
148
|
"@types/node": "^20.5.8",
|
|
149
149
|
"@typescript-eslint/eslint-plugin": "^6.5.0",
|
|
150
150
|
"@typescript-eslint/parser": "^6.5.0",
|
|
151
|
+
"@yao-pkg/pkg": "^5.11.0",
|
|
151
152
|
"babel-plugin-transform-import-meta": "^2.1.1",
|
|
152
153
|
"del": "^6.0.0",
|
|
153
154
|
"eslint": "^8.28.0",
|
|
154
|
-
"eslint-config-airbnb": "^19.0.4",
|
|
155
155
|
"eslint-config-prettier": "^9.0.0",
|
|
156
|
-
"eslint-plugin-deprecation": "^
|
|
156
|
+
"eslint-plugin-deprecation": "^2.0.0",
|
|
157
157
|
"eslint-plugin-import": "^2.28.0",
|
|
158
158
|
"eslint-plugin-jest": "^27.1.5",
|
|
159
159
|
"eslint-plugin-jsx-a11y": "^6.6.1",
|
|
@@ -163,7 +163,6 @@
|
|
|
163
163
|
"eslint-plugin-simple-import-sort": "^10.0.0",
|
|
164
164
|
"jest": "^29.3.1",
|
|
165
165
|
"map-stream": "^0.0.7",
|
|
166
|
-
"pkg": "^5.8.0",
|
|
167
166
|
"prettier": "^3.0.3",
|
|
168
167
|
"rimraf": "^5.0.1",
|
|
169
168
|
"typescript": "^5.2.2"
|