@rockcarver/frodo-cli 2.0.0-59 → 2.0.0-60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/launch.json +1 -0
- package/CHANGELOG.md +10 -1
- package/dist/app.cjs +187368 -0
- package/dist/app.cjs.map +1 -0
- package/dist/app.d.cts +2 -0
- package/dist/chunk-MPPKDFVI.cjs +56 -0
- package/dist/chunk-MPPKDFVI.cjs.map +1 -0
- package/dist/launch.cjs +27 -0
- package/dist/launch.cjs.map +1 -0
- package/dist/launch.d.cts +1 -0
- package/dist/loader.cjs +836 -0
- package/dist/loader.cjs.map +1 -0
- package/dist/loader.d.cts +3 -0
- package/package.json +37 -53
- package/tsup.config.ts +40 -0
- package/esm/app.js +0 -80
- package/esm/app.js.map +0 -1
- package/esm/cli/FrodoCommand.js +0 -181
- package/esm/cli/FrodoCommand.js.map +0 -1
- package/esm/cli/_template/something-delete.js +0 -20
- package/esm/cli/_template/something-delete.js.map +0 -1
- package/esm/cli/_template/something-describe.js +0 -20
- package/esm/cli/_template/something-describe.js.map +0 -1
- package/esm/cli/_template/something-else-delete.js +0 -20
- package/esm/cli/_template/something-else-delete.js.map +0 -1
- package/esm/cli/_template/something-else-describe.js +0 -20
- package/esm/cli/_template/something-else-describe.js.map +0 -1
- package/esm/cli/_template/something-else-export.js +0 -20
- package/esm/cli/_template/something-else-export.js.map +0 -1
- package/esm/cli/_template/something-else-import.js +0 -20
- package/esm/cli/_template/something-else-import.js.map +0 -1
- package/esm/cli/_template/something-else-list.js +0 -20
- package/esm/cli/_template/something-else-list.js.map +0 -1
- package/esm/cli/_template/something-else.js +0 -17
- package/esm/cli/_template/something-else.js.map +0 -1
- package/esm/cli/_template/something-export.js +0 -20
- package/esm/cli/_template/something-export.js.map +0 -1
- package/esm/cli/_template/something-import.js +0 -20
- package/esm/cli/_template/something-import.js.map +0 -1
- package/esm/cli/_template/something-list.js +0 -20
- package/esm/cli/_template/something-list.js.map +0 -1
- package/esm/cli/_template/something-other-delete.js +0 -20
- package/esm/cli/_template/something-other-delete.js.map +0 -1
- package/esm/cli/_template/something-other-describe.js +0 -20
- package/esm/cli/_template/something-other-describe.js.map +0 -1
- package/esm/cli/_template/something-other-export.js +0 -20
- package/esm/cli/_template/something-other-export.js.map +0 -1
- package/esm/cli/_template/something-other-import.js +0 -20
- package/esm/cli/_template/something-other-import.js.map +0 -1
- package/esm/cli/_template/something-other-list.js +0 -20
- package/esm/cli/_template/something-other-list.js.map +0 -1
- package/esm/cli/_template/something-other.js +0 -17
- package/esm/cli/_template/something-other.js.map +0 -1
- package/esm/cli/_template/something.js +0 -20
- package/esm/cli/_template/something.js.map +0 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +0 -23
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +0 -1
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +0 -80
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +0 -1
- package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js +0 -40
- package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +0 -1
- package/esm/cli/admin/admin-federation-export.js +0 -43
- package/esm/cli/admin/admin-federation-export.js.map +0 -1
- package/esm/cli/admin/admin-federation-import.js +0 -47
- package/esm/cli/admin/admin-federation-import.js.map +0 -1
- package/esm/cli/admin/admin-federation-list.js +0 -27
- package/esm/cli/admin/admin-federation-list.js.map +0 -1
- package/esm/cli/admin/admin-federation.js +0 -21
- package/esm/cli/admin/admin-federation.js.map +0 -1
- package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js +0 -43
- package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +0 -1
- package/esm/cli/admin/admin-get-access-token.js +0 -27
- package/esm/cli/admin/admin-get-access-token.js.map +0 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +0 -25
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +0 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +0 -25
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +0 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +0 -24
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +0 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +0 -24
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +0 -1
- package/esm/cli/admin/admin-list-static-user-mappings.js +0 -24
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +0 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +0 -24
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +0 -1
- package/esm/cli/admin/admin-repair-org-model.js +0 -25
- package/esm/cli/admin/admin-repair-org-model.js.map +0 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +0 -25
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +0 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +0 -25
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +0 -1
- package/esm/cli/admin/admin-train-auto-access-model.js +0 -32
- package/esm/cli/admin/admin-train-auto-access-model.js.map +0 -1
- package/esm/cli/admin/admin.js +0 -41
- package/esm/cli/admin/admin.js.map +0 -1
- package/esm/cli/agent/agent-delete.js +0 -38
- package/esm/cli/agent/agent-delete.js.map +0 -1
- package/esm/cli/agent/agent-describe.js +0 -20
- package/esm/cli/agent/agent-describe.js.map +0 -1
- package/esm/cli/agent/agent-export.js +0 -43
- package/esm/cli/agent/agent-export.js.map +0 -1
- package/esm/cli/agent/agent-gateway-delete.js +0 -38
- package/esm/cli/agent/agent-gateway-delete.js.map +0 -1
- package/esm/cli/agent/agent-gateway-describe.js +0 -20
- package/esm/cli/agent/agent-gateway-describe.js.map +0 -1
- package/esm/cli/agent/agent-gateway-export.js +0 -43
- package/esm/cli/agent/agent-gateway-export.js.map +0 -1
- package/esm/cli/agent/agent-gateway-import.js +0 -49
- package/esm/cli/agent/agent-gateway-import.js.map +0 -1
- package/esm/cli/agent/agent-gateway-list.js +0 -22
- package/esm/cli/agent/agent-gateway-list.js.map +0 -1
- package/esm/cli/agent/agent-gateway.js +0 -17
- package/esm/cli/agent/agent-gateway.js.map +0 -1
- package/esm/cli/agent/agent-import.js +0 -49
- package/esm/cli/agent/agent-import.js.map +0 -1
- package/esm/cli/agent/agent-java-delete.js +0 -38
- package/esm/cli/agent/agent-java-delete.js.map +0 -1
- package/esm/cli/agent/agent-java-describe.js +0 -20
- package/esm/cli/agent/agent-java-describe.js.map +0 -1
- package/esm/cli/agent/agent-java-export.js +0 -43
- package/esm/cli/agent/agent-java-export.js.map +0 -1
- package/esm/cli/agent/agent-java-import.js +0 -49
- package/esm/cli/agent/agent-java-import.js.map +0 -1
- package/esm/cli/agent/agent-java-list.js +0 -22
- package/esm/cli/agent/agent-java-list.js.map +0 -1
- package/esm/cli/agent/agent-java.js +0 -17
- package/esm/cli/agent/agent-java.js.map +0 -1
- package/esm/cli/agent/agent-list.js +0 -22
- package/esm/cli/agent/agent-list.js.map +0 -1
- package/esm/cli/agent/agent-web-delete.js +0 -38
- package/esm/cli/agent/agent-web-delete.js.map +0 -1
- package/esm/cli/agent/agent-web-describe.js +0 -20
- package/esm/cli/agent/agent-web-describe.js.map +0 -1
- package/esm/cli/agent/agent-web-export.js +0 -43
- package/esm/cli/agent/agent-web-export.js.map +0 -1
- package/esm/cli/agent/agent-web-import.js +0 -49
- package/esm/cli/agent/agent-web-import.js.map +0 -1
- package/esm/cli/agent/agent-web-list.js +0 -22
- package/esm/cli/agent/agent-web-list.js.map +0 -1
- package/esm/cli/agent/agent-web.js +0 -17
- package/esm/cli/agent/agent-web.js.map +0 -1
- package/esm/cli/agent/agent.js +0 -22
- package/esm/cli/agent/agent.js.map +0 -1
- package/esm/cli/app/app-delete.js +0 -36
- package/esm/cli/app/app-delete.js.map +0 -1
- package/esm/cli/app/app-describe.js +0 -21
- package/esm/cli/app/app-describe.js.map +0 -1
- package/esm/cli/app/app-export.js +0 -51
- package/esm/cli/app/app-export.js.map +0 -1
- package/esm/cli/app/app-import.js +0 -56
- package/esm/cli/app/app-import.js.map +0 -1
- package/esm/cli/app/app-list.js +0 -25
- package/esm/cli/app/app-list.js.map +0 -1
- package/esm/cli/app/app.js +0 -18
- package/esm/cli/app/app.js.map +0 -1
- package/esm/cli/authn/authn-describe.js +0 -28
- package/esm/cli/authn/authn-describe.js.map +0 -1
- package/esm/cli/authn/authn-export.js +0 -24
- package/esm/cli/authn/authn-export.js.map +0 -1
- package/esm/cli/authn/authn-import.js +0 -24
- package/esm/cli/authn/authn-import.js.map +0 -1
- package/esm/cli/authn/authn.js +0 -12
- package/esm/cli/authn/authn.js.map +0 -1
- package/esm/cli/authz/authz-policy-delete.js +0 -41
- package/esm/cli/authz/authz-policy-delete.js.map +0 -1
- package/esm/cli/authz/authz-policy-describe.js +0 -28
- package/esm/cli/authz/authz-policy-describe.js.map +0 -1
- package/esm/cli/authz/authz-policy-export.js +0 -73
- package/esm/cli/authz/authz-policy-export.js.map +0 -1
- package/esm/cli/authz/authz-policy-import.js +0 -63
- package/esm/cli/authz/authz-policy-import.js.map +0 -1
- package/esm/cli/authz/authz-policy-list.js +0 -35
- package/esm/cli/authz/authz-policy-list.js.map +0 -1
- package/esm/cli/authz/authz-policy.js +0 -17
- package/esm/cli/authz/authz-policy.js.map +0 -1
- package/esm/cli/authz/authz-set-delete.js +0 -35
- package/esm/cli/authz/authz-set-delete.js.map +0 -1
- package/esm/cli/authz/authz-set-describe.js +0 -28
- package/esm/cli/authz/authz-set-describe.js.map +0 -1
- package/esm/cli/authz/authz-set-export.js +0 -53
- package/esm/cli/authz/authz-set-export.js.map +0 -1
- package/esm/cli/authz/authz-set-import.js +0 -59
- package/esm/cli/authz/authz-set-import.js.map +0 -1
- package/esm/cli/authz/authz-set-list.js +0 -23
- package/esm/cli/authz/authz-set-list.js.map +0 -1
- package/esm/cli/authz/authz-set.js +0 -17
- package/esm/cli/authz/authz-set.js.map +0 -1
- package/esm/cli/authz/authz-type-delete.js +0 -41
- package/esm/cli/authz/authz-type-delete.js.map +0 -1
- package/esm/cli/authz/authz-type-describe.js +0 -32
- package/esm/cli/authz/authz-type-describe.js.map +0 -1
- package/esm/cli/authz/authz-type-export.js +0 -47
- package/esm/cli/authz/authz-type-export.js.map +0 -1
- package/esm/cli/authz/authz-type-import.js +0 -53
- package/esm/cli/authz/authz-type-import.js.map +0 -1
- package/esm/cli/authz/authz-type-list.js +0 -24
- package/esm/cli/authz/authz-type-list.js.map +0 -1
- package/esm/cli/authz/authz-type.js +0 -17
- package/esm/cli/authz/authz-type.js.map +0 -1
- package/esm/cli/authz/authz.js +0 -12
- package/esm/cli/authz/authz.js.map +0 -1
- package/esm/cli/config/config-delete.js +0 -20
- package/esm/cli/config/config-delete.js.map +0 -1
- package/esm/cli/config/config-describe.js +0 -20
- package/esm/cli/config/config-describe.js.map +0 -1
- package/esm/cli/config/config-export.js +0 -52
- package/esm/cli/config/config-export.js.map +0 -1
- package/esm/cli/config/config-import.js +0 -62
- package/esm/cli/config/config-import.js.map +0 -1
- package/esm/cli/config/config-list.js +0 -20
- package/esm/cli/config/config-list.js.map +0 -1
- package/esm/cli/config/config.js +0 -22
- package/esm/cli/config/config.js.map +0 -1
- package/esm/cli/conn/conn-delete.js +0 -21
- package/esm/cli/conn/conn-delete.js.map +0 -1
- package/esm/cli/conn/conn-describe.js +0 -16
- package/esm/cli/conn/conn-describe.js.map +0 -1
- package/esm/cli/conn/conn-list.js +0 -16
- package/esm/cli/conn/conn-list.js.map +0 -1
- package/esm/cli/conn/conn-save.js +0 -106
- package/esm/cli/conn/conn-save.js.map +0 -1
- package/esm/cli/conn/conn.js +0 -16
- package/esm/cli/conn/conn.js.map +0 -1
- package/esm/cli/email/email-template-export.js +0 -42
- package/esm/cli/email/email-template-export.js.map +0 -1
- package/esm/cli/email/email-template-import.js +0 -47
- package/esm/cli/email/email-template-import.js.map +0 -1
- package/esm/cli/email/email-template-list.js +0 -24
- package/esm/cli/email/email-template-list.js.map +0 -1
- package/esm/cli/email/email-template.js +0 -13
- package/esm/cli/email/email-template.js.map +0 -1
- package/esm/cli/email/email.js +0 -9
- package/esm/cli/email/email.js.map +0 -1
- package/esm/cli/esv/esv-apply.js +0 -61
- package/esm/cli/esv/esv-apply.js.map +0 -1
- package/esm/cli/esv/esv-secret-create.js +0 -29
- package/esm/cli/esv/esv-secret-create.js.map +0 -1
- package/esm/cli/esv/esv-secret-delete.js +0 -34
- package/esm/cli/esv/esv-secret-delete.js.map +0 -1
- package/esm/cli/esv/esv-secret-describe.js +0 -24
- package/esm/cli/esv/esv-secret-describe.js.map +0 -1
- package/esm/cli/esv/esv-secret-export.js +0 -34
- package/esm/cli/esv/esv-secret-export.js.map +0 -1
- package/esm/cli/esv/esv-secret-import.js +0 -20
- package/esm/cli/esv/esv-secret-import.js.map +0 -1
- package/esm/cli/esv/esv-secret-list.js +0 -24
- package/esm/cli/esv/esv-secret-list.js.map +0 -1
- package/esm/cli/esv/esv-secret-set.js +0 -24
- package/esm/cli/esv/esv-secret-set.js.map +0 -1
- package/esm/cli/esv/esv-secret-version-activate.js +0 -28
- package/esm/cli/esv/esv-secret-version-activate.js.map +0 -1
- package/esm/cli/esv/esv-secret-version-create.js +0 -29
- package/esm/cli/esv/esv-secret-version-create.js.map +0 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +0 -28
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +0 -1
- package/esm/cli/esv/esv-secret-version-delete.js +0 -34
- package/esm/cli/esv/esv-secret-version-delete.js.map +0 -1
- package/esm/cli/esv/esv-secret-version-list.js +0 -24
- package/esm/cli/esv/esv-secret-version-list.js.map +0 -1
- package/esm/cli/esv/esv-secret-version.js +0 -17
- package/esm/cli/esv/esv-secret-version.js.map +0 -1
- package/esm/cli/esv/esv-secret.js +0 -25
- package/esm/cli/esv/esv-secret.js.map +0 -1
- package/esm/cli/esv/esv-variable-create.js +0 -24
- package/esm/cli/esv/esv-variable-create.js.map +0 -1
- package/esm/cli/esv/esv-variable-delete.js +0 -35
- package/esm/cli/esv/esv-variable-delete.js.map +0 -1
- package/esm/cli/esv/esv-variable-describe.js +0 -24
- package/esm/cli/esv/esv-variable-describe.js.map +0 -1
- package/esm/cli/esv/esv-variable-export.js +0 -35
- package/esm/cli/esv/esv-variable-export.js.map +0 -1
- package/esm/cli/esv/esv-variable-import.js +0 -20
- package/esm/cli/esv/esv-variable-import.js.map +0 -1
- package/esm/cli/esv/esv-variable-list.js +0 -24
- package/esm/cli/esv/esv-variable-list.js.map +0 -1
- package/esm/cli/esv/esv-variable-set.js +0 -31
- package/esm/cli/esv/esv-variable-set.js.map +0 -1
- package/esm/cli/esv/esv-variable.js +0 -23
- package/esm/cli/esv/esv-variable.js.map +0 -1
- package/esm/cli/esv/esv.js +0 -12
- package/esm/cli/esv/esv.js.map +0 -1
- package/esm/cli/idm/idm-count.js +0 -24
- package/esm/cli/idm/idm-count.js.map +0 -1
- package/esm/cli/idm/idm-export.js +0 -50
- package/esm/cli/idm/idm-export.js.map +0 -1
- package/esm/cli/idm/idm-import.js +0 -54
- package/esm/cli/idm/idm-import.js.map +0 -1
- package/esm/cli/idm/idm-list.js +0 -28
- package/esm/cli/idm/idm-list.js.map +0 -1
- package/esm/cli/idm/idm.js +0 -14
- package/esm/cli/idm/idm.js.map +0 -1
- package/esm/cli/idp/idp-export.js +0 -44
- package/esm/cli/idp/idp-export.js.map +0 -1
- package/esm/cli/idp/idp-import.js +0 -56
- package/esm/cli/idp/idp-import.js.map +0 -1
- package/esm/cli/idp/idp-list.js +0 -28
- package/esm/cli/idp/idp-list.js.map +0 -1
- package/esm/cli/idp/idp.js +0 -12
- package/esm/cli/idp/idp.js.map +0 -1
- package/esm/cli/info/info.js +0 -52
- package/esm/cli/info/info.js.map +0 -1
- package/esm/cli/journey/journey-delete.js +0 -36
- package/esm/cli/journey/journey-delete.js.map +0 -1
- package/esm/cli/journey/journey-describe.js +0 -133
- package/esm/cli/journey/journey-describe.js.map +0 -1
- package/esm/cli/journey/journey-disable.js +0 -35
- package/esm/cli/journey/journey-disable.js.map +0 -1
- package/esm/cli/journey/journey-enable.js +0 -35
- package/esm/cli/journey/journey-enable.js.map +0 -1
- package/esm/cli/journey/journey-export.js +0 -63
- package/esm/cli/journey/journey-export.js.map +0 -1
- package/esm/cli/journey/journey-import.js +0 -59
- package/esm/cli/journey/journey-import.js.map +0 -1
- package/esm/cli/journey/journey-list.js +0 -25
- package/esm/cli/journey/journey-list.js.map +0 -1
- package/esm/cli/journey/journey-prune.js +0 -42
- package/esm/cli/journey/journey-prune.js.map +0 -1
- package/esm/cli/journey/journey.js +0 -22
- package/esm/cli/journey/journey.js.map +0 -1
- package/esm/cli/log/log-fetch.js +0 -127
- package/esm/cli/log/log-fetch.js.map +0 -1
- package/esm/cli/log/log-key-delete.js +0 -33
- package/esm/cli/log/log-key-delete.js.map +0 -1
- package/esm/cli/log/log-key-describe.js +0 -20
- package/esm/cli/log/log-key-describe.js.map +0 -1
- package/esm/cli/log/log-key-list.js +0 -24
- package/esm/cli/log/log-key-list.js.map +0 -1
- package/esm/cli/log/log-key.js +0 -13
- package/esm/cli/log/log-key.js.map +0 -1
- package/esm/cli/log/log-list.js +0 -89
- package/esm/cli/log/log-list.js.map +0 -1
- package/esm/cli/log/log-tail.js +0 -81
- package/esm/cli/log/log-tail.js.map +0 -1
- package/esm/cli/log/log.js +0 -18
- package/esm/cli/log/log.js.map +0 -1
- package/esm/cli/oauth/oauth-client-delete.js +0 -20
- package/esm/cli/oauth/oauth-client-delete.js.map +0 -1
- package/esm/cli/oauth/oauth-client-describe.js +0 -20
- package/esm/cli/oauth/oauth-client-describe.js.map +0 -1
- package/esm/cli/oauth/oauth-client-export.js +0 -50
- package/esm/cli/oauth/oauth-client-export.js.map +0 -1
- package/esm/cli/oauth/oauth-client-import.js +0 -55
- package/esm/cli/oauth/oauth-client-import.js.map +0 -1
- package/esm/cli/oauth/oauth-client-list.js +0 -24
- package/esm/cli/oauth/oauth-client-list.js.map +0 -1
- package/esm/cli/oauth/oauth-client.js +0 -22
- package/esm/cli/oauth/oauth-client.js.map +0 -1
- package/esm/cli/oauth/oauth.js +0 -11
- package/esm/cli/oauth/oauth.js.map +0 -1
- package/esm/cli/realm/realm-add-custom-domain.js +0 -24
- package/esm/cli/realm/realm-add-custom-domain.js.map +0 -1
- package/esm/cli/realm/realm-describe.js +0 -23
- package/esm/cli/realm/realm-describe.js.map +0 -1
- package/esm/cli/realm/realm-list.js +0 -23
- package/esm/cli/realm/realm-list.js.map +0 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +0 -26
- package/esm/cli/realm/realm-remove-custom-domain.js.map +0 -1
- package/esm/cli/realm/realm.js +0 -21
- package/esm/cli/realm/realm.js.map +0 -1
- package/esm/cli/saml/saml-cot-export.js +0 -42
- package/esm/cli/saml/saml-cot-export.js.map +0 -1
- package/esm/cli/saml/saml-cot-import.js +0 -48
- package/esm/cli/saml/saml-cot-import.js.map +0 -1
- package/esm/cli/saml/saml-cot-list.js +0 -25
- package/esm/cli/saml/saml-cot-list.js.map +0 -1
- package/esm/cli/saml/saml-cot.js +0 -13
- package/esm/cli/saml/saml-cot.js.map +0 -1
- package/esm/cli/saml/saml-delete.js +0 -37
- package/esm/cli/saml/saml-delete.js.map +0 -1
- package/esm/cli/saml/saml-describe.js +0 -25
- package/esm/cli/saml/saml-describe.js.map +0 -1
- package/esm/cli/saml/saml-export.js +0 -48
- package/esm/cli/saml/saml-export.js.map +0 -1
- package/esm/cli/saml/saml-import.js +0 -56
- package/esm/cli/saml/saml-import.js.map +0 -1
- package/esm/cli/saml/saml-list.js +0 -25
- package/esm/cli/saml/saml-list.js.map +0 -1
- package/esm/cli/saml/saml-metadata-export.js +0 -42
- package/esm/cli/saml/saml-metadata-export.js.map +0 -1
- package/esm/cli/saml/saml-metadata.js +0 -9
- package/esm/cli/saml/saml-metadata.js.map +0 -1
- package/esm/cli/saml/saml.js +0 -20
- package/esm/cli/saml/saml.js.map +0 -1
- package/esm/cli/script/script-delete.js +0 -37
- package/esm/cli/script/script-delete.js.map +0 -1
- package/esm/cli/script/script-describe.js +0 -20
- package/esm/cli/script/script-describe.js.map +0 -1
- package/esm/cli/script/script-export.js +0 -52
- package/esm/cli/script/script-export.js.map +0 -1
- package/esm/cli/script/script-import.js +0 -45
- package/esm/cli/script/script-import.js.map +0 -1
- package/esm/cli/script/script-list.js +0 -25
- package/esm/cli/script/script-list.js.map +0 -1
- package/esm/cli/script/script.js +0 -18
- package/esm/cli/script/script.js.map +0 -1
- package/esm/cli/service/service-delete.js +0 -23
- package/esm/cli/service/service-delete.js.map +0 -1
- package/esm/cli/service/service-export.js +0 -41
- package/esm/cli/service/service-export.js.map +0 -1
- package/esm/cli/service/service-import.js +0 -65
- package/esm/cli/service/service-import.js.map +0 -1
- package/esm/cli/service/service-list.js +0 -20
- package/esm/cli/service/service-list.js.map +0 -1
- package/esm/cli/service/service.js +0 -14
- package/esm/cli/service/service.js.map +0 -1
- package/esm/cli/shell/shell.js +0 -53
- package/esm/cli/shell/shell.js.map +0 -1
- package/esm/cli/theme/theme-delete.js +0 -42
- package/esm/cli/theme/theme-delete.js.map +0 -1
- package/esm/cli/theme/theme-export.js +0 -48
- package/esm/cli/theme/theme-export.js.map +0 -1
- package/esm/cli/theme/theme-import.js +0 -54
- package/esm/cli/theme/theme-import.js.map +0 -1
- package/esm/cli/theme/theme-list.js +0 -25
- package/esm/cli/theme/theme-list.js.map +0 -1
- package/esm/cli/theme/theme.js +0 -14
- package/esm/cli/theme/theme.js.map +0 -1
- package/esm/help/SampleData.js +0 -7
- package/esm/help/SampleData.js.map +0 -1
- package/esm/launch.js +0 -15
- package/esm/launch.js.map +0 -1
- package/esm/loader.js +0 -40
- package/esm/loader.js.map +0 -1
- package/esm/ops/AdminOps.js +0 -936
- package/esm/ops/AdminOps.js.map +0 -1
- package/esm/ops/AgentOps.js +0 -1061
- package/esm/ops/AgentOps.js.map +0 -1
- package/esm/ops/ApplicationOps.js +0 -336
- package/esm/ops/ApplicationOps.js.map +0 -1
- package/esm/ops/AuthenticateOps.js +0 -23
- package/esm/ops/AuthenticateOps.js.map +0 -1
- package/esm/ops/AuthenticationSettingsOps.js +0 -89
- package/esm/ops/AuthenticationSettingsOps.js.map +0 -1
- package/esm/ops/CirclesOfTrustOps.js +0 -265
- package/esm/ops/CirclesOfTrustOps.js.map +0 -1
- package/esm/ops/ConfigOps.js +0 -213
- package/esm/ops/ConfigOps.js.map +0 -1
- package/esm/ops/ConnectionProfileOps.js +0 -132
- package/esm/ops/ConnectionProfileOps.js.map +0 -1
- package/esm/ops/EmailTemplateOps.js +0 -365
- package/esm/ops/EmailTemplateOps.js.map +0 -1
- package/esm/ops/IdmOps.js +0 -303
- package/esm/ops/IdmOps.js.map +0 -1
- package/esm/ops/IdpOps.js +0 -267
- package/esm/ops/IdpOps.js.map +0 -1
- package/esm/ops/JourneyOps.js +0 -815
- package/esm/ops/JourneyOps.js.map +0 -1
- package/esm/ops/LogOps.js +0 -141
- package/esm/ops/LogOps.js.map +0 -1
- package/esm/ops/NodeOps.js +0 -97
- package/esm/ops/NodeOps.js.map +0 -1
- package/esm/ops/OAuth2ClientOps.js +0 -287
- package/esm/ops/OAuth2ClientOps.js.map +0 -1
- package/esm/ops/OrganizationOps.js +0 -20
- package/esm/ops/OrganizationOps.js.map +0 -1
- package/esm/ops/PolicyOps.js +0 -515
- package/esm/ops/PolicyOps.js.map +0 -1
- package/esm/ops/PolicySetOps.js +0 -388
- package/esm/ops/PolicySetOps.js.map +0 -1
- package/esm/ops/RealmOps.js +0 -116
- package/esm/ops/RealmOps.js.map +0 -1
- package/esm/ops/ResourceTypeOps.js +0 -439
- package/esm/ops/ResourceTypeOps.js.map +0 -1
- package/esm/ops/Saml2Ops.js +0 -364
- package/esm/ops/Saml2Ops.js.map +0 -1
- package/esm/ops/Saml2Ops.test_.js.map +0 -1
- package/esm/ops/ScriptOps.js +0 -520
- package/esm/ops/ScriptOps.js.map +0 -1
- package/esm/ops/ServiceOps.js +0 -275
- package/esm/ops/ServiceOps.js.map +0 -1
- package/esm/ops/ThemeOps.js +0 -382
- package/esm/ops/ThemeOps.js.map +0 -1
- package/esm/ops/cloud/AdminFederationOps.js +0 -225
- package/esm/ops/cloud/AdminFederationOps.js.map +0 -1
- package/esm/ops/cloud/SecretsOps.js +0 -471
- package/esm/ops/cloud/SecretsOps.js.map +0 -1
- package/esm/ops/cloud/VariablesOps.js +0 -316
- package/esm/ops/cloud/VariablesOps.js.map +0 -1
- package/esm/ops/templates/GenericExtensionAttributesTemplate.json +0 -412
- package/esm/ops/templates/OAuth2ClientTemplate.json +0 -270
- package/esm/ops/templates/OAuth2TrustedJwtIssuerTemplate.json +0 -38
- package/esm/ops/templates/OrgModelUserAttributesTemplate.json +0 -149
- package/esm/ops/templates/autoaccess/IPAddresses.json +0 -202
- package/esm/ops/templates/autoaccess/UserAgents.json +0 -35
- package/esm/ops/templates/autoaccess/Usernames.json +0 -203
- package/esm/ops/templates/cloud/managed.json +0 -4119
- package/esm/ops/utils/OpsUtils.js +0 -9
- package/esm/ops/utils/OpsUtils.js.map +0 -1
- package/esm/ops/utils/Wordwrap.js +0 -5
- package/esm/ops/utils/Wordwrap.js.map +0 -1
- package/esm/storage/StaticStorage.js +0 -12
- package/esm/storage/StaticStorage.js.map +0 -1
- package/esm/utils/Config.js +0 -200
- package/esm/utils/Config.js.map +0 -1
- package/esm/utils/Console.js +0 -614
- package/esm/utils/Console.js.map +0 -1
- package/esm/utils/Version.js +0 -138
- package/esm/utils/Version.js.map +0 -1
package/esm/ops/JourneyOps.js
DELETED
|
@@ -1,815 +0,0 @@
|
|
|
1
|
-
import { frodo, FrodoError, state } from '@rockcarver/frodo-lib';
|
|
2
|
-
import fs from 'fs';
|
|
3
|
-
import { createProgressIndicator, createTable, debugMessage, printError, printMessage, stopProgressIndicator, updateProgressIndicator } from '../utils/Console';
|
|
4
|
-
import * as CirclesOfTrust from './CirclesOfTrustOps';
|
|
5
|
-
import * as EmailTemplate from './EmailTemplateOps';
|
|
6
|
-
import * as Idp from './IdpOps';
|
|
7
|
-
import * as Node from './NodeOps';
|
|
8
|
-
import * as Saml2 from './Saml2Ops';
|
|
9
|
-
import * as Script from './ScriptOps';
|
|
10
|
-
import * as Theme from './ThemeOps';
|
|
11
|
-
import { cloneDeep } from './utils/OpsUtils';
|
|
12
|
-
import wordwrap from './utils/Wordwrap';
|
|
13
|
-
const {
|
|
14
|
-
getTypedFilename,
|
|
15
|
-
saveJsonToFile,
|
|
16
|
-
getRealmString,
|
|
17
|
-
getFilePath,
|
|
18
|
-
getWorkingDirectory
|
|
19
|
-
} = frodo.utils;
|
|
20
|
-
const {
|
|
21
|
-
readJourneys,
|
|
22
|
-
exportJourney,
|
|
23
|
-
exportJourneys,
|
|
24
|
-
resolveDependencies,
|
|
25
|
-
importJourneys,
|
|
26
|
-
importJourney,
|
|
27
|
-
getTreeDescendents,
|
|
28
|
-
getNodeRef,
|
|
29
|
-
onlineTreeExportResolver,
|
|
30
|
-
getJourneyClassification: _getJourneyClassification,
|
|
31
|
-
disableJourney: _disableJourney,
|
|
32
|
-
enableJourney: _enableJourney,
|
|
33
|
-
deleteJourney: _deleteJourney,
|
|
34
|
-
deleteJourneys: _deleteJourneys
|
|
35
|
-
} = frodo.authn.journey;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* List all the journeys/trees
|
|
39
|
-
* @param {boolean} long Long version, all the fields
|
|
40
|
-
* @param {boolean} analyze Analyze journeys/trees for custom nodes (expensive)
|
|
41
|
-
* @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
|
|
42
|
-
*/
|
|
43
|
-
export async function listJourneys(long = false, analyze = false) {
|
|
44
|
-
let journeys = [];
|
|
45
|
-
try {
|
|
46
|
-
journeys = await readJourneys();
|
|
47
|
-
if (!long && !analyze) {
|
|
48
|
-
for (const journeyStub of journeys) {
|
|
49
|
-
printMessage(`${journeyStub['_id']}`, 'data');
|
|
50
|
-
}
|
|
51
|
-
return true;
|
|
52
|
-
} else {
|
|
53
|
-
if (!analyze) {
|
|
54
|
-
const table = createTable(['Name', 'Status', 'Tags']);
|
|
55
|
-
for (const journeyStub of journeys) {
|
|
56
|
-
var _journeyStub$uiConfig;
|
|
57
|
-
table.push([`${journeyStub._id}`, journeyStub.enabled === false ? 'disabled'['brightRed'] : 'enabled'['brightGreen'], (_journeyStub$uiConfig = journeyStub.uiConfig) !== null && _journeyStub$uiConfig !== void 0 && _journeyStub$uiConfig.categories ? wordwrap(JSON.parse(journeyStub.uiConfig.categories).join(', '), 60) : '']);
|
|
58
|
-
}
|
|
59
|
-
printMessage(table.toString(), 'data');
|
|
60
|
-
return true;
|
|
61
|
-
} else {
|
|
62
|
-
const spinnerId = createProgressIndicator('indeterminate', 0, `Retrieving details of all journeys...`);
|
|
63
|
-
const exportPromises = [];
|
|
64
|
-
try {
|
|
65
|
-
for (const journeyStub of journeys) {
|
|
66
|
-
exportPromises.push(exportJourney(journeyStub['_id'], {
|
|
67
|
-
useStringArrays: false,
|
|
68
|
-
deps: false,
|
|
69
|
-
coords: true
|
|
70
|
-
}));
|
|
71
|
-
}
|
|
72
|
-
const journeyExports = await Promise.all(exportPromises);
|
|
73
|
-
stopProgressIndicator(spinnerId, 'Retrieved details of all journeys.', 'success');
|
|
74
|
-
const table = createTable(['Name', 'Status', 'Classification', 'Tags']);
|
|
75
|
-
for (const journeyExport of journeyExports) {
|
|
76
|
-
var _journeyExport$tree$u;
|
|
77
|
-
table.push([`${journeyExport.tree._id}`, journeyExport.tree.enabled === false ? 'disabled'['brightRed'] : 'enabled'['brightGreen'], getJourneyClassification(journeyExport).join(', '), (_journeyExport$tree$u = journeyExport.tree.uiConfig) !== null && _journeyExport$tree$u !== void 0 && _journeyExport$tree$u.categories ? wordwrap(JSON.parse(journeyExport.tree.uiConfig.categories).join(', '), 60) : '']);
|
|
78
|
-
}
|
|
79
|
-
printMessage(table.toString(), 'data');
|
|
80
|
-
return true;
|
|
81
|
-
} catch (error) {
|
|
82
|
-
stopProgressIndicator(spinnerId, 'Error retrieving details of all journeys.', 'fail');
|
|
83
|
-
printError(error);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
} catch (error) {
|
|
88
|
-
printError(error);
|
|
89
|
-
}
|
|
90
|
-
return false;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Export journey by id/name to file
|
|
95
|
-
* @param {string} journeyId journey id/name
|
|
96
|
-
* @param {string} file optional export file name
|
|
97
|
-
* @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
|
|
98
|
-
* @param {TreeExportOptions} options export options
|
|
99
|
-
* @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
|
|
100
|
-
*/
|
|
101
|
-
export async function exportJourneyToFile(journeyId, file, includeMeta = true, options = {
|
|
102
|
-
deps: false,
|
|
103
|
-
useStringArrays: false,
|
|
104
|
-
coords: true
|
|
105
|
-
}) {
|
|
106
|
-
debugMessage(`exportJourneyToFile: start`);
|
|
107
|
-
const verbose = state.getVerbose();
|
|
108
|
-
if (!file) {
|
|
109
|
-
file = getTypedFilename(journeyId, 'journey');
|
|
110
|
-
}
|
|
111
|
-
const filePath = getFilePath(file, true);
|
|
112
|
-
let spinnerId;
|
|
113
|
-
if (!verbose) spinnerId = createProgressIndicator('indeterminate', 0, `${journeyId}`);
|
|
114
|
-
try {
|
|
115
|
-
const fileData = await exportJourney(journeyId, options);
|
|
116
|
-
if (verbose) spinnerId = createProgressIndicator('indeterminate', 0, `${journeyId}`);
|
|
117
|
-
saveJsonToFile(fileData, filePath, includeMeta);
|
|
118
|
-
stopProgressIndicator(spinnerId, `Exported ${journeyId['brightCyan']} to ${filePath['brightCyan']}.`, 'success');
|
|
119
|
-
return true;
|
|
120
|
-
} catch (error) {
|
|
121
|
-
if (verbose) spinnerId = createProgressIndicator('indeterminate', 0, `${journeyId}`);
|
|
122
|
-
stopProgressIndicator(spinnerId, `Error exporting journey ${journeyId}: ${error}`, 'fail');
|
|
123
|
-
printError(error);
|
|
124
|
-
}
|
|
125
|
-
return false;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Export all journeys to file
|
|
130
|
-
* @param {string} file optional export file name
|
|
131
|
-
* @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
|
|
132
|
-
* @param {TreeExportOptions} options export options
|
|
133
|
-
* @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
|
|
134
|
-
*/
|
|
135
|
-
export async function exportJourneysToFile(file, includeMeta = true, options = {
|
|
136
|
-
deps: false,
|
|
137
|
-
useStringArrays: false,
|
|
138
|
-
coords: true
|
|
139
|
-
}) {
|
|
140
|
-
try {
|
|
141
|
-
if (!file) {
|
|
142
|
-
file = getTypedFilename(`all${getRealmString()}Journeys`, 'journey');
|
|
143
|
-
}
|
|
144
|
-
const filePath = getFilePath(file, true);
|
|
145
|
-
const fileData = await exportJourneys(options);
|
|
146
|
-
saveJsonToFile(fileData, filePath, includeMeta);
|
|
147
|
-
return true;
|
|
148
|
-
} catch (error) {
|
|
149
|
-
printError(error);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Export all journeys to separate files
|
|
155
|
-
* @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
|
|
156
|
-
* @param {TreeExportOptions} options export options
|
|
157
|
-
* @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
|
|
158
|
-
*/
|
|
159
|
-
export async function exportJourneysToFiles(includeMeta = true, options = {
|
|
160
|
-
deps: false,
|
|
161
|
-
useStringArrays: false,
|
|
162
|
-
coords: true
|
|
163
|
-
}) {
|
|
164
|
-
try {
|
|
165
|
-
const journeysExport = await exportJourneys(options);
|
|
166
|
-
const trees = Object.entries(journeysExport.trees);
|
|
167
|
-
for (const [treeId, treeValue] of trees) {
|
|
168
|
-
const indicatorId = createProgressIndicator('determinate', 1, `Saving ${treeId}...`);
|
|
169
|
-
const file = getFilePath(getTypedFilename(`${treeId}`, 'journey'), true);
|
|
170
|
-
treeValue['meta'] = journeysExport.meta;
|
|
171
|
-
try {
|
|
172
|
-
updateProgressIndicator(indicatorId, `Saving ${treeId} to ${file}`);
|
|
173
|
-
saveJsonToFile(treeValue, file, includeMeta);
|
|
174
|
-
stopProgressIndicator(indicatorId, `${treeId} saved to ${file}`);
|
|
175
|
-
} catch (error) {
|
|
176
|
-
stopProgressIndicator(indicatorId, `Error saving ${treeId} to ${file}`);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
return true;
|
|
180
|
-
} catch (error) {
|
|
181
|
-
printError(error);
|
|
182
|
-
}
|
|
183
|
-
return false;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Import a journey from file
|
|
188
|
-
* @param {string} journeyId journey id/name
|
|
189
|
-
* @param {string} file import file name
|
|
190
|
-
* @param {TreeImportOptions} options import options
|
|
191
|
-
* @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
|
|
192
|
-
*/
|
|
193
|
-
export async function importJourneyFromFile(journeyId, file, options) {
|
|
194
|
-
const verbose = state.getVerbose();
|
|
195
|
-
try {
|
|
196
|
-
const data = fs.readFileSync(getFilePath(file), 'utf8');
|
|
197
|
-
let journeyData = JSON.parse(data);
|
|
198
|
-
// check if this is a file with multiple trees and get journey by id
|
|
199
|
-
if (journeyData.trees && journeyData.trees[journeyId]) {
|
|
200
|
-
journeyData = journeyData.trees[journeyId];
|
|
201
|
-
} else if (journeyData.trees) {
|
|
202
|
-
journeyData = null;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
// if a journeyId was specified, only import the matching journey
|
|
206
|
-
if (journeyData && journeyId === journeyData.tree._id) {
|
|
207
|
-
// attempt dependency resolution for single tree import
|
|
208
|
-
const installedJourneys = (await readJourneys()).map(x => x._id);
|
|
209
|
-
const unresolvedJourneys = {};
|
|
210
|
-
const resolvedJourneys = [];
|
|
211
|
-
const indicatorId1 = createProgressIndicator('indeterminate', 0, 'Resolving dependencies');
|
|
212
|
-
await resolveDependencies(installedJourneys, {
|
|
213
|
-
[journeyId]: journeyData
|
|
214
|
-
}, unresolvedJourneys, resolvedJourneys);
|
|
215
|
-
if (Object.keys(unresolvedJourneys).length === 0) {
|
|
216
|
-
stopProgressIndicator(indicatorId1, `Resolved all dependencies.`, 'success');
|
|
217
|
-
let indicatorId2;
|
|
218
|
-
if (!verbose) indicatorId2 = createProgressIndicator('indeterminate', 0, `Importing ${journeyId}...`);
|
|
219
|
-
try {
|
|
220
|
-
await importJourney(journeyData, options);
|
|
221
|
-
if (verbose) indicatorId2 = createProgressIndicator('indeterminate', 0, `Importing ${journeyId}...`);
|
|
222
|
-
stopProgressIndicator(indicatorId2, `Imported ${journeyId}.`, 'success');
|
|
223
|
-
return true;
|
|
224
|
-
} catch (importError) {
|
|
225
|
-
if (verbose) indicatorId2 = createProgressIndicator('indeterminate', 0, `Importing ${journeyId}...`);
|
|
226
|
-
stopProgressIndicator(indicatorId2, `${importError}`, 'fail');
|
|
227
|
-
}
|
|
228
|
-
} else {
|
|
229
|
-
stopProgressIndicator(indicatorId1, `Unresolved dependencies:`, 'fail');
|
|
230
|
-
for (const journey of Object.keys(unresolvedJourneys)) {
|
|
231
|
-
printMessage(` ${journey} requires ${unresolvedJourneys[journey]}`, 'error');
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
// end dependency resolution for single tree import
|
|
235
|
-
} else {
|
|
236
|
-
const indicatorId3 = createProgressIndicator('indeterminate', 0, `Importing ${journeyId}...`);
|
|
237
|
-
stopProgressIndicator(indicatorId3, `${journeyId} not found!`, 'fail');
|
|
238
|
-
}
|
|
239
|
-
} catch (error) {
|
|
240
|
-
printError(error);
|
|
241
|
-
}
|
|
242
|
-
return false;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* Import first journey from file
|
|
247
|
-
* @param {string} file import file name
|
|
248
|
-
* @param {TreeImportOptions} options import options
|
|
249
|
-
* @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
|
|
250
|
-
*/
|
|
251
|
-
export async function importFirstJourneyFromFile(file, options) {
|
|
252
|
-
const verbose = state.getVerbose();
|
|
253
|
-
try {
|
|
254
|
-
const data = fs.readFileSync(getFilePath(file), 'utf8');
|
|
255
|
-
let journeyData = cloneDeep(JSON.parse(data));
|
|
256
|
-
let journeyId = null;
|
|
257
|
-
// single tree
|
|
258
|
-
if (journeyData.tree) {
|
|
259
|
-
journeyId = cloneDeep(journeyData.tree._id);
|
|
260
|
-
}
|
|
261
|
-
// multiple trees, so get the first tree
|
|
262
|
-
else if (journeyData.trees) {
|
|
263
|
-
for (const treeId in journeyData.trees) {
|
|
264
|
-
if (Object.hasOwnProperty.call(journeyData.trees, treeId)) {
|
|
265
|
-
journeyId = treeId;
|
|
266
|
-
journeyData = journeyData.trees[treeId];
|
|
267
|
-
break;
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
// if a journeyId was specified, only import the matching journey
|
|
273
|
-
if (journeyData && journeyId) {
|
|
274
|
-
// attempt dependency resolution for single tree import
|
|
275
|
-
const installedJourneys = (await readJourneys()).map(x => x._id);
|
|
276
|
-
const unresolvedJourneys = {};
|
|
277
|
-
const resolvedJourneys = [];
|
|
278
|
-
const depSpinnerId = createProgressIndicator('indeterminate', 0, 'Resolving dependencies');
|
|
279
|
-
await resolveDependencies(installedJourneys, {
|
|
280
|
-
[journeyId]: journeyData
|
|
281
|
-
}, unresolvedJourneys, resolvedJourneys);
|
|
282
|
-
if (Object.keys(unresolvedJourneys).length === 0) {
|
|
283
|
-
stopProgressIndicator(depSpinnerId, `Resolved all dependencies.`, 'success');
|
|
284
|
-
let importSpinnerId;
|
|
285
|
-
if (!verbose) importSpinnerId = createProgressIndicator('indeterminate', 0, `Importing ${journeyId}...`);
|
|
286
|
-
try {
|
|
287
|
-
await importJourney(journeyData, options);
|
|
288
|
-
if (verbose) importSpinnerId = createProgressIndicator('indeterminate', 0, `Importing ${journeyId}...`);
|
|
289
|
-
stopProgressIndicator(importSpinnerId, `Imported ${journeyId}.`, 'success');
|
|
290
|
-
return true;
|
|
291
|
-
} catch (importError) {
|
|
292
|
-
if (verbose) importSpinnerId = createProgressIndicator('indeterminate', 0, `Importing ${journeyId}...`);
|
|
293
|
-
stopProgressIndicator(importSpinnerId, `Error importing ${journeyId}`, 'fail');
|
|
294
|
-
printError(importError);
|
|
295
|
-
}
|
|
296
|
-
} else {
|
|
297
|
-
stopProgressIndicator(depSpinnerId, `Unresolved dependencies:`, 'fail');
|
|
298
|
-
for (const journey of Object.keys(unresolvedJourneys)) {
|
|
299
|
-
printMessage(` ${journey} requires ${unresolvedJourneys[journey]}`, 'error');
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
} else {
|
|
303
|
-
const importSpinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);
|
|
304
|
-
stopProgressIndicator(importSpinnerId, `No journeys found!`, 'fail');
|
|
305
|
-
}
|
|
306
|
-
// end dependency resolution for single tree import
|
|
307
|
-
} catch (error) {
|
|
308
|
-
printError(error);
|
|
309
|
-
}
|
|
310
|
-
return false;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
/**
|
|
314
|
-
* Import all journeys from file
|
|
315
|
-
* @param {string} file import file name
|
|
316
|
-
* @param {TreeImportOptions} options import options
|
|
317
|
-
* @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
|
|
318
|
-
*/
|
|
319
|
-
export async function importJourneysFromFile(file, options) {
|
|
320
|
-
try {
|
|
321
|
-
const data = fs.readFileSync(getFilePath(file), 'utf8');
|
|
322
|
-
const fileData = JSON.parse(data);
|
|
323
|
-
await importJourneys(fileData, options);
|
|
324
|
-
return true;
|
|
325
|
-
} catch (error) {
|
|
326
|
-
printError(error);
|
|
327
|
-
}
|
|
328
|
-
return false;
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
/**
|
|
332
|
-
* Import all journeys from separate files
|
|
333
|
-
* @param {TreeImportOptions} options import options
|
|
334
|
-
* @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
|
|
335
|
-
*/
|
|
336
|
-
export async function importJourneysFromFiles(options) {
|
|
337
|
-
try {
|
|
338
|
-
const names = fs.readdirSync(getWorkingDirectory());
|
|
339
|
-
const jsonFiles = names.filter(name => name.toLowerCase().endsWith('.journey.json')).map(name => getFilePath(name));
|
|
340
|
-
const allJourneysData = {
|
|
341
|
-
trees: {}
|
|
342
|
-
};
|
|
343
|
-
for (const file of jsonFiles) {
|
|
344
|
-
const journeyData = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
345
|
-
allJourneysData.trees[journeyData.tree._id] = journeyData;
|
|
346
|
-
}
|
|
347
|
-
await importJourneys(allJourneysData, options);
|
|
348
|
-
return true;
|
|
349
|
-
} catch (error) {
|
|
350
|
-
printError(error);
|
|
351
|
-
}
|
|
352
|
-
return false;
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
/**
|
|
356
|
-
* Get journey classification
|
|
357
|
-
* @param {SingleTreeExportInterface} journey journey export
|
|
358
|
-
* @returns {string[]} Colored string array of classifications
|
|
359
|
-
*/
|
|
360
|
-
export function getJourneyClassification(journey) {
|
|
361
|
-
return _getJourneyClassification(journey).map(it => {
|
|
362
|
-
switch (it) {
|
|
363
|
-
case 'standard':
|
|
364
|
-
return it['brightGreen'];
|
|
365
|
-
case 'cloud':
|
|
366
|
-
return it['brightMagenta'];
|
|
367
|
-
case 'custom':
|
|
368
|
-
return it['brightRed'];
|
|
369
|
-
case 'premium':
|
|
370
|
-
return it['brightYellow'];
|
|
371
|
-
}
|
|
372
|
-
});
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
/**
|
|
376
|
-
* Get journey classification in markdown
|
|
377
|
-
* @param {SingleTreeExportInterface} journey journey export
|
|
378
|
-
* @returns {string[]} Colored string array of classifications
|
|
379
|
-
*/
|
|
380
|
-
export function getJourneyClassificationMd(journey) {
|
|
381
|
-
return _getJourneyClassification(journey).map(it => {
|
|
382
|
-
switch (it) {
|
|
383
|
-
case 'standard':
|
|
384
|
-
return `:green_circle: \`${it}\``;
|
|
385
|
-
case 'cloud':
|
|
386
|
-
return `:purple_circle: \`${it}\``;
|
|
387
|
-
case 'custom':
|
|
388
|
-
return `:red_circle: \`${it}\``;
|
|
389
|
-
case 'premium':
|
|
390
|
-
return `:yellow_circle: \`${it}\``;
|
|
391
|
-
}
|
|
392
|
-
});
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
/**
|
|
396
|
-
* Get a one-line description of the tree object
|
|
397
|
-
* @param {TreeSkeleton} treeObj circle of trust object to describe
|
|
398
|
-
* @returns {string} a one-line description
|
|
399
|
-
*/
|
|
400
|
-
export function getOneLineDescription(treeObj) {
|
|
401
|
-
const description = `[${treeObj._id['brightCyan']}]`;
|
|
402
|
-
return description;
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
/**
|
|
406
|
-
* Get a one-line description of the tree object in markdown
|
|
407
|
-
* @param {TreeSkeleton} treeObj circle of trust object to describe
|
|
408
|
-
* @returns {string} a one-line description
|
|
409
|
-
*/
|
|
410
|
-
export function getOneLineDescriptionMd(treeObj) {
|
|
411
|
-
const description = `${treeObj._id}`;
|
|
412
|
-
return description;
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
/**
|
|
416
|
-
* Helper function to render a nested list of dependent trees
|
|
417
|
-
* @param {TreeDependencyMapInterface} descendents tree dependency map
|
|
418
|
-
* @param {number} depth level of nesting
|
|
419
|
-
*/
|
|
420
|
-
function describeTreeDescendents(descendents, depth = 0) {
|
|
421
|
-
if (depth || Object.values(descendents)[0].length) {
|
|
422
|
-
// heading
|
|
423
|
-
if (depth === 0) {
|
|
424
|
-
printMessage(`\nInner Tree Dependencies (${Object.values(descendents)[0].length}):`, 'data');
|
|
425
|
-
}
|
|
426
|
-
const indent = Array(depth * 2).fill(' ').join('');
|
|
427
|
-
const [tree] = Object.keys(descendents);
|
|
428
|
-
printMessage(`${indent}- ${tree['brightCyan']}`, 'data');
|
|
429
|
-
for (const descendent of descendents[tree]) {
|
|
430
|
-
describeTreeDescendents(descendent, depth + 1);
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
/**
|
|
436
|
-
* Helper function to render a nested list of dependent trees in markdown
|
|
437
|
-
* @param {TreeDependencyMapInterface} descendents tree dependency map
|
|
438
|
-
* @param {number} depth level of nesting
|
|
439
|
-
*/
|
|
440
|
-
function describeTreeDescendentsMd(descendents, depth = 0) {
|
|
441
|
-
let markdown = '';
|
|
442
|
-
if (depth || Object.values(descendents)[0].length) {
|
|
443
|
-
// heading
|
|
444
|
-
if (depth === 0) {
|
|
445
|
-
markdown += `## Inner Tree Dependencies (${Object.values(descendents)[0].length})\n`;
|
|
446
|
-
}
|
|
447
|
-
const indent = Array(depth * 2).fill(' ').join('');
|
|
448
|
-
const [tree] = Object.keys(descendents);
|
|
449
|
-
markdown += `${indent}- ${tree}\n`;
|
|
450
|
-
for (const descendent of descendents[tree]) {
|
|
451
|
-
markdown += describeTreeDescendentsMd(descendent, depth + 1);
|
|
452
|
-
}
|
|
453
|
-
return markdown;
|
|
454
|
-
}
|
|
455
|
-
return markdown;
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
/**
|
|
459
|
-
* Describe a journey:
|
|
460
|
-
* - Properties, tags, description, name, metadata
|
|
461
|
-
* - Inner tree dependency tree
|
|
462
|
-
* - Node type summary
|
|
463
|
-
* - Nodes
|
|
464
|
-
* - Themes
|
|
465
|
-
* - Scripts
|
|
466
|
-
* - Email templates
|
|
467
|
-
* - Social identity providers
|
|
468
|
-
* - SAML2 entity providers
|
|
469
|
-
* - SAML2 circles of trust
|
|
470
|
-
* @param {SingleTreeExportInterface} journeyData journey export object
|
|
471
|
-
* @param {TreeExportResolverInterface} resolveTreeExport tree export resolver callback function
|
|
472
|
-
* @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
|
|
473
|
-
*/
|
|
474
|
-
export async function describeJourney(journeyData, resolveTreeExport = onlineTreeExportResolver) {
|
|
475
|
-
const errors = [];
|
|
476
|
-
try {
|
|
477
|
-
var _journeyData$meta, _journeyData$tree$uiC, _journeyData$themes;
|
|
478
|
-
const allNodes = {
|
|
479
|
-
...journeyData.nodes,
|
|
480
|
-
...journeyData.innerNodes
|
|
481
|
-
};
|
|
482
|
-
const nodeTypeMap = {};
|
|
483
|
-
for (const nodeData of Object.values(allNodes)) {
|
|
484
|
-
if (nodeTypeMap[nodeData._type._id]) {
|
|
485
|
-
nodeTypeMap[nodeData._type._id] += 1;
|
|
486
|
-
} else {
|
|
487
|
-
nodeTypeMap[nodeData._type._id] = 1;
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
|
|
491
|
-
// initialize AM version from file
|
|
492
|
-
if (!state.getAmVersion() && (_journeyData$meta = journeyData.meta) !== null && _journeyData$meta !== void 0 && _journeyData$meta.originAmVersion) {
|
|
493
|
-
state.setAmVersion(journeyData.meta.originAmVersion);
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
// Journey Name
|
|
497
|
-
printMessage(`${getOneLineDescription(journeyData.tree)}`, 'data');
|
|
498
|
-
printMessage(Array(`[${journeyData.tree._id}]`['length']).fill('=').join(''));
|
|
499
|
-
|
|
500
|
-
// Description
|
|
501
|
-
if (journeyData.tree.description) {
|
|
502
|
-
printMessage(`\n${journeyData.tree.description}`, 'data');
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
// Status
|
|
506
|
-
printMessage(`\nStatus\n${journeyData.tree.enabled === false ? 'disabled'['brightRed'] : 'enabled'['brightGreen']}`);
|
|
507
|
-
|
|
508
|
-
// Classification
|
|
509
|
-
if (state.getAmVersion()) {
|
|
510
|
-
printMessage(`\nClassification\n${getJourneyClassification(journeyData).join(', ')}`, 'data');
|
|
511
|
-
}
|
|
512
|
-
|
|
513
|
-
// Categories/Tags
|
|
514
|
-
if ((_journeyData$tree$uiC = journeyData.tree.uiConfig) !== null && _journeyData$tree$uiC !== void 0 && _journeyData$tree$uiC.categories && journeyData.tree.uiConfig.categories != '[]') {
|
|
515
|
-
printMessage('\nCategories/Tags', 'data');
|
|
516
|
-
printMessage(`${JSON.parse(journeyData.tree.uiConfig.categories).join(', ')}`, 'data');
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
// Dependency Tree
|
|
520
|
-
try {
|
|
521
|
-
const descendents = await getTreeDescendents(journeyData, resolveTreeExport);
|
|
522
|
-
describeTreeDescendents(descendents);
|
|
523
|
-
} catch (error) {
|
|
524
|
-
errors.push(error);
|
|
525
|
-
}
|
|
526
|
-
|
|
527
|
-
// Node Types
|
|
528
|
-
if (Object.entries(nodeTypeMap).length) {
|
|
529
|
-
printMessage(`\nNode Types (${Object.entries(nodeTypeMap).length}):`, 'data');
|
|
530
|
-
for (const [nodeType, count] of Object.entries(nodeTypeMap)) {
|
|
531
|
-
printMessage(`- ${String(count)} [${nodeType['brightCyan']}] (${Node.getNodeClassification(nodeType).join(', ')})`, 'data');
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
// Nodes
|
|
536
|
-
if (Object.entries(allNodes).length) {
|
|
537
|
-
printMessage(`\nNodes (${Object.entries(allNodes).length}):`, 'data');
|
|
538
|
-
for (const nodeObj of Object.values(allNodes)) {
|
|
539
|
-
printMessage(`- ${Node.getOneLineDescription(nodeObj, getNodeRef(nodeObj, journeyData))}`, 'data');
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
|
|
543
|
-
// Themes
|
|
544
|
-
if ((_journeyData$themes = journeyData.themes) !== null && _journeyData$themes !== void 0 && _journeyData$themes.length) {
|
|
545
|
-
printMessage(`\nThemes (${journeyData.themes.length}):`, 'data');
|
|
546
|
-
for (const themeData of journeyData.themes) {
|
|
547
|
-
printMessage(`- ${Theme.getOneLineDescription(themeData)}`, 'data');
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
// Scripts
|
|
552
|
-
if (Object.entries(journeyData.scripts).length) {
|
|
553
|
-
printMessage(`\nScripts (${Object.entries(journeyData.scripts).length}):`, 'data');
|
|
554
|
-
for (const scriptData of Object.values(journeyData.scripts)) {
|
|
555
|
-
printMessage(`- ${Script.getOneLineDescription(scriptData)}`, 'data');
|
|
556
|
-
}
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
// Email Templates
|
|
560
|
-
if (Object.entries(journeyData.emailTemplates).length) {
|
|
561
|
-
printMessage(`\nEmail Templates (${Object.entries(journeyData.emailTemplates).length}):`, 'data');
|
|
562
|
-
for (const templateData of Object.values(journeyData.emailTemplates)) {
|
|
563
|
-
printMessage(`- ${EmailTemplate.getOneLineDescription(templateData)}`, 'data');
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
|
|
567
|
-
// Social Identity Providers
|
|
568
|
-
if (Object.entries(journeyData.socialIdentityProviders).length) {
|
|
569
|
-
printMessage(`\nSocial Identity Providers (${Object.entries(journeyData.socialIdentityProviders).length}):`, 'data');
|
|
570
|
-
for (const socialIdpData of Object.values(journeyData.socialIdentityProviders)) {
|
|
571
|
-
printMessage(`- ${Idp.getOneLineDescription(socialIdpData)}`, 'data');
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
|
|
575
|
-
// SAML2 Entity Providers
|
|
576
|
-
if (Object.entries(journeyData.saml2Entities).length) {
|
|
577
|
-
printMessage(`\nSAML2 Entity Providers (${Object.entries(journeyData.saml2Entities).length}):`, 'data');
|
|
578
|
-
for (const entityProviderData of Object.values(journeyData.saml2Entities)) {
|
|
579
|
-
printMessage(`- ${Saml2.getOneLineDescription(entityProviderData)}`, 'data');
|
|
580
|
-
}
|
|
581
|
-
}
|
|
582
|
-
|
|
583
|
-
// SAML2 Circles Of Trust
|
|
584
|
-
if (Object.entries(journeyData.circlesOfTrust).length) {
|
|
585
|
-
printMessage(`\nSAML2 Circles Of Trust (${Object.entries(journeyData.circlesOfTrust).length}):`, 'data');
|
|
586
|
-
for (const cotData of Object.values(journeyData.circlesOfTrust)) {
|
|
587
|
-
printMessage(`- ${CirclesOfTrust.getOneLineDescription(cotData)}`, 'data');
|
|
588
|
-
}
|
|
589
|
-
}
|
|
590
|
-
if (errors.length > 0) {
|
|
591
|
-
throw new FrodoError(`Error describing journey`, errors);
|
|
592
|
-
}
|
|
593
|
-
return true;
|
|
594
|
-
} catch (error) {
|
|
595
|
-
printError(error);
|
|
596
|
-
}
|
|
597
|
-
return false;
|
|
598
|
-
}
|
|
599
|
-
|
|
600
|
-
/**
|
|
601
|
-
* Describe a journey in markdown:
|
|
602
|
-
* - Properties, tags, description, name, metadata
|
|
603
|
-
* - Inner tree dependency tree
|
|
604
|
-
* - Node type summary
|
|
605
|
-
* - Nodes
|
|
606
|
-
* - Themes
|
|
607
|
-
* - Scripts
|
|
608
|
-
* - Email templates
|
|
609
|
-
* - Social identity providers
|
|
610
|
-
* - SAML2 entity providers
|
|
611
|
-
* - SAML2 circles of trust
|
|
612
|
-
* @param {SingleTreeExportInterface} journeyData journey export object
|
|
613
|
-
* @param {TreeExportResolverInterface} resolveTreeExport tree export resolver callback function
|
|
614
|
-
* @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
|
|
615
|
-
*/
|
|
616
|
-
export async function describeJourneyMd(journeyData, resolveTreeExport = onlineTreeExportResolver) {
|
|
617
|
-
const errors = [];
|
|
618
|
-
try {
|
|
619
|
-
var _journeyData$meta2, _journeyData$tree$uiC2, _journeyData$themes2;
|
|
620
|
-
const allNodes = {
|
|
621
|
-
...journeyData.nodes,
|
|
622
|
-
...journeyData.innerNodes
|
|
623
|
-
};
|
|
624
|
-
const nodeTypeMap = {};
|
|
625
|
-
for (const nodeData of Object.values(allNodes)) {
|
|
626
|
-
if (nodeTypeMap[nodeData._type._id]) {
|
|
627
|
-
nodeTypeMap[nodeData._type._id] += 1;
|
|
628
|
-
} else {
|
|
629
|
-
nodeTypeMap[nodeData._type._id] = 1;
|
|
630
|
-
}
|
|
631
|
-
}
|
|
632
|
-
|
|
633
|
-
// initialize AM version from file
|
|
634
|
-
if (!state.getAmVersion() && (_journeyData$meta2 = journeyData.meta) !== null && _journeyData$meta2 !== void 0 && _journeyData$meta2.originAmVersion) {
|
|
635
|
-
state.setAmVersion(journeyData.meta.originAmVersion);
|
|
636
|
-
}
|
|
637
|
-
|
|
638
|
-
// Journey Name
|
|
639
|
-
printMessage(`# ${getOneLineDescriptionMd(journeyData.tree)} - ${journeyData.tree.enabled === false ? ':o: `disabled`' : ':white_check_mark: `enabled`'}, ${getJourneyClassificationMd(journeyData).join(', ')}`, 'data');
|
|
640
|
-
|
|
641
|
-
// Categories/Tags
|
|
642
|
-
if ((_journeyData$tree$uiC2 = journeyData.tree.uiConfig) !== null && _journeyData$tree$uiC2 !== void 0 && _journeyData$tree$uiC2.categories && journeyData.tree.uiConfig.categories != '[]') {
|
|
643
|
-
printMessage(`\`${JSON.parse(journeyData.tree.uiConfig.categories).join('`, `')}\``, 'data');
|
|
644
|
-
}
|
|
645
|
-
|
|
646
|
-
// Description
|
|
647
|
-
if (journeyData.tree.description) {
|
|
648
|
-
printMessage(`\n${journeyData.tree.description}`, 'data');
|
|
649
|
-
}
|
|
650
|
-
|
|
651
|
-
// Journey image
|
|
652
|
-
printMessage(`\n[]()\n`, 'data');
|
|
653
|
-
|
|
654
|
-
// Dependency Tree
|
|
655
|
-
const descendents = await getTreeDescendents(journeyData, resolveTreeExport);
|
|
656
|
-
printMessage(describeTreeDescendentsMd(descendents), 'data');
|
|
657
|
-
|
|
658
|
-
// Node Types
|
|
659
|
-
if (Object.entries(nodeTypeMap).length) {
|
|
660
|
-
printMessage(`## Node Types (${Object.entries(nodeTypeMap).length})`, 'data');
|
|
661
|
-
printMessage('| Count | Type | Classification |', 'data');
|
|
662
|
-
printMessage('| -----:| ---- | -------------- |', 'data');
|
|
663
|
-
for (const [nodeType, count] of Object.entries(nodeTypeMap)) {
|
|
664
|
-
printMessage(`| ${String(count)} | ${nodeType} | ${Node.getNodeClassificationMd(nodeType).join('<br>')} |`, 'data');
|
|
665
|
-
}
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
// Nodes
|
|
669
|
-
if (Object.entries(allNodes).length) {
|
|
670
|
-
printMessage(`## Nodes (${Object.entries(allNodes).length})`, 'data');
|
|
671
|
-
printMessage(Node.getTableHeaderMd(), 'data');
|
|
672
|
-
for (const nodeObj of Object.values(allNodes)) {
|
|
673
|
-
printMessage(`${Node.getTableRowMd(nodeObj, getNodeRef(nodeObj, journeyData))}`, 'data');
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
// Themes
|
|
678
|
-
if ((_journeyData$themes2 = journeyData.themes) !== null && _journeyData$themes2 !== void 0 && _journeyData$themes2.length) {
|
|
679
|
-
printMessage(`## Themes (${journeyData.themes.length})`, 'data');
|
|
680
|
-
printMessage(Theme.getTableHeaderMd(), 'data');
|
|
681
|
-
for (const themeData of journeyData.themes) {
|
|
682
|
-
printMessage(`${Theme.getTableRowMd(themeData)}`, 'data');
|
|
683
|
-
}
|
|
684
|
-
}
|
|
685
|
-
|
|
686
|
-
// Scripts
|
|
687
|
-
if (Object.entries(journeyData.scripts).length) {
|
|
688
|
-
printMessage(`## Scripts (${Object.entries(journeyData.scripts).length})`, 'data');
|
|
689
|
-
printMessage(Script.getTableHeaderMd(), 'data');
|
|
690
|
-
for (const scriptData of Object.values(journeyData.scripts)) {
|
|
691
|
-
printMessage(`${Script.getTableRowMd(scriptData)}`, 'data');
|
|
692
|
-
}
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
// Email Templates
|
|
696
|
-
if (Object.entries(journeyData.emailTemplates).length) {
|
|
697
|
-
printMessage(`## Email Templates (${Object.entries(journeyData.emailTemplates).length})`, 'data');
|
|
698
|
-
printMessage(EmailTemplate.getTableHeaderMd(), 'data');
|
|
699
|
-
for (const templateData of Object.values(journeyData.emailTemplates)) {
|
|
700
|
-
printMessage(`${EmailTemplate.getTableRowMd(templateData)}`, 'data');
|
|
701
|
-
}
|
|
702
|
-
}
|
|
703
|
-
|
|
704
|
-
// Social Identity Providers
|
|
705
|
-
if (Object.entries(journeyData.socialIdentityProviders).length) {
|
|
706
|
-
printMessage(`## Social Identity Providers (${Object.entries(journeyData.socialIdentityProviders).length})`, 'data');
|
|
707
|
-
printMessage(Idp.getTableHeaderMd(), 'data');
|
|
708
|
-
for (const socialIdpData of Object.values(journeyData.socialIdentityProviders)) {
|
|
709
|
-
printMessage(`${Idp.getTableRowMd(socialIdpData)}`, 'data');
|
|
710
|
-
}
|
|
711
|
-
}
|
|
712
|
-
|
|
713
|
-
// SAML2 Entity Providers
|
|
714
|
-
if (Object.entries(journeyData.saml2Entities).length) {
|
|
715
|
-
printMessage(`## SAML2 Entity Providers (${Object.entries(journeyData.saml2Entities).length})`, 'data');
|
|
716
|
-
printMessage(Saml2.getTableHeaderMd(), 'data');
|
|
717
|
-
for (const entityProviderData of Object.values(journeyData.saml2Entities)) {
|
|
718
|
-
printMessage(`${Saml2.getTableRowMd(entityProviderData)}`, 'data');
|
|
719
|
-
}
|
|
720
|
-
}
|
|
721
|
-
|
|
722
|
-
// SAML2 Circles Of Trust
|
|
723
|
-
if (Object.entries(journeyData.circlesOfTrust).length) {
|
|
724
|
-
printMessage(`## SAML2 Circles Of Trust (${Object.entries(journeyData.circlesOfTrust).length})`, 'data');
|
|
725
|
-
printMessage(CirclesOfTrust.getTableHeaderMd(), 'data');
|
|
726
|
-
for (const cotData of Object.values(journeyData.circlesOfTrust)) {
|
|
727
|
-
printMessage(`${CirclesOfTrust.getTableRowMd(cotData)}`, 'data');
|
|
728
|
-
}
|
|
729
|
-
}
|
|
730
|
-
if (errors.length > 0) {
|
|
731
|
-
throw new FrodoError(`Error describing journey`, errors);
|
|
732
|
-
}
|
|
733
|
-
return true;
|
|
734
|
-
} catch (error) {
|
|
735
|
-
printError(error);
|
|
736
|
-
}
|
|
737
|
-
return false;
|
|
738
|
-
}
|
|
739
|
-
|
|
740
|
-
/**
|
|
741
|
-
* Enable a journey
|
|
742
|
-
* @param {string} journeyId id/name of journey
|
|
743
|
-
* @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
|
|
744
|
-
*/
|
|
745
|
-
export async function enableJourney(journeyId) {
|
|
746
|
-
const indicatorId = createProgressIndicator('indeterminate', 0, `Enabling journey ${journeyId}...`);
|
|
747
|
-
try {
|
|
748
|
-
await _enableJourney(journeyId);
|
|
749
|
-
stopProgressIndicator(indicatorId, `Enabled journey ${journeyId}.`, 'success');
|
|
750
|
-
return true;
|
|
751
|
-
} catch (error) {
|
|
752
|
-
stopProgressIndicator(indicatorId, `Error enabling journey ${journeyId}`, 'fail');
|
|
753
|
-
printError(error);
|
|
754
|
-
}
|
|
755
|
-
return false;
|
|
756
|
-
}
|
|
757
|
-
|
|
758
|
-
/**
|
|
759
|
-
* Disable a journey
|
|
760
|
-
* @param {string} journeyId id/name of journey
|
|
761
|
-
* @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
|
|
762
|
-
*/
|
|
763
|
-
export async function disableJourney(journeyId) {
|
|
764
|
-
const indicatorId = createProgressIndicator('indeterminate', 0, `Disabling journey ${journeyId}...`);
|
|
765
|
-
try {
|
|
766
|
-
await _disableJourney(journeyId);
|
|
767
|
-
stopProgressIndicator(indicatorId, `Disabled journey ${journeyId}.`, 'success');
|
|
768
|
-
return true;
|
|
769
|
-
} catch (error) {
|
|
770
|
-
stopProgressIndicator(indicatorId, `Error disabling journey ${journeyId}`, 'fail');
|
|
771
|
-
}
|
|
772
|
-
return false;
|
|
773
|
-
}
|
|
774
|
-
|
|
775
|
-
/**
|
|
776
|
-
* Delete a journey
|
|
777
|
-
* @param {string} journeyId id/name of journey
|
|
778
|
-
* @param {{ deep: boolean; verbose: boolean }} [options] delete journey options
|
|
779
|
-
* @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
|
|
780
|
-
*/
|
|
781
|
-
export async function deleteJourney(journeyId, options = {
|
|
782
|
-
deep: true,
|
|
783
|
-
verbose: false,
|
|
784
|
-
progress: true
|
|
785
|
-
}) {
|
|
786
|
-
try {
|
|
787
|
-
await _deleteJourney(journeyId, options);
|
|
788
|
-
return true;
|
|
789
|
-
} catch (error) {
|
|
790
|
-
printError(error);
|
|
791
|
-
}
|
|
792
|
-
return false;
|
|
793
|
-
}
|
|
794
|
-
|
|
795
|
-
/**
|
|
796
|
-
* Delete all journeys
|
|
797
|
-
* @param {{ deep: boolean; verbose: boolean }} [options] delete journey options
|
|
798
|
-
* @returns {Promise<boolean>} a promise resolving to true if successful, false otherwise
|
|
799
|
-
*/
|
|
800
|
-
export async function deleteJourneys(options = {
|
|
801
|
-
deep: true,
|
|
802
|
-
verbose: false
|
|
803
|
-
}) {
|
|
804
|
-
const indicatorId = createProgressIndicator('indeterminate', null, `Deleting journeys...`);
|
|
805
|
-
try {
|
|
806
|
-
const status = await _deleteJourneys(options);
|
|
807
|
-
stopProgressIndicator(indicatorId, `Deleted ${Object.keys(status).length} journeys`);
|
|
808
|
-
return true;
|
|
809
|
-
} catch (error) {
|
|
810
|
-
stopProgressIndicator(indicatorId, `Error deleting journeys`);
|
|
811
|
-
printError(error);
|
|
812
|
-
}
|
|
813
|
-
return false;
|
|
814
|
-
}
|
|
815
|
-
//# sourceMappingURL=JourneyOps.js.map
|