@rockcarver/frodo-cli 0.18.2-9 → 0.19.0
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 +112 -1
- package/esm/app.js +4 -1
- package/esm/app.js.map +1 -1
- package/esm/cli/FrodoCommand.js +133 -0
- package/esm/cli/FrodoCommand.js.map +1 -0
- package/esm/cli/_template/something-delete.js +9 -15
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +9 -15
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +9 -15
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +9 -15
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +9 -15
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +9 -15
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +9 -15
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-else.js +8 -8
- package/esm/cli/_template/something-else.js.map +1 -1
- package/esm/cli/_template/something-export.js +9 -15
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +9 -15
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +9 -15
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +9 -15
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +9 -15
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +9 -15
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +9 -15
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +9 -15
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/_template/something-other.js +8 -8
- package/esm/cli/_template/something-other.js.map +1 -1
- package/esm/cli/_template/something.js +9 -10
- package/esm/cli/_template/something.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +8 -15
- 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 +9 -15
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-get-access-token.js +9 -15
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +9 -15
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +9 -15
- 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 +8 -15
- 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 +8 -15
- 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 +9 -15
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +8 -15
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +9 -15
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +9 -15
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +9 -15
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin.js +14 -15
- package/esm/cli/admin/admin.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +8 -15
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +9 -15
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +8 -15
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +8 -15
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +9 -15
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +8 -15
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +8 -15
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +9 -15
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-gateway.js +8 -8
- package/esm/cli/agent/agent-gateway.js.map +1 -1
- package/esm/cli/agent/agent-import.js +8 -15
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +8 -15
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +9 -15
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +8 -15
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +8 -15
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +9 -15
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-java.js +8 -8
- package/esm/cli/agent/agent-java.js.map +1 -1
- package/esm/cli/agent/agent-list.js +9 -15
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +8 -15
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +9 -15
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +8 -15
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +8 -15
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +9 -15
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/agent/agent-web.js +8 -8
- package/esm/cli/agent/agent-web.js.map +1 -1
- package/esm/cli/agent/agent.js +10 -11
- package/esm/cli/agent/agent.js.map +1 -1
- package/esm/cli/app/app-delete.js +9 -12
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +9 -12
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +28 -34
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +11 -14
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +11 -14
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/app/app.js +8 -10
- package/esm/cli/app/app.js.map +1 -1
- package/esm/cli/conn/conn-delete.js +5 -5
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-describe.js +6 -5
- package/esm/cli/conn/conn-describe.js.map +1 -1
- package/esm/cli/conn/conn-list.js +6 -8
- package/esm/cli/conn/conn-list.js.map +1 -1
- package/esm/cli/conn/conn-save.js +72 -0
- package/esm/cli/conn/conn-save.js.map +1 -0
- package/esm/cli/conn/conn.js +10 -8
- package/esm/cli/conn/conn.js.map +1 -1
- package/esm/cli/email/email-template-export.js +27 -33
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +33 -39
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +11 -14
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/email/email-template.js +6 -6
- package/esm/cli/email/email-template.js.map +1 -1
- package/esm/cli/email/email.js +2 -2
- package/esm/cli/email/email.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +9 -12
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +11 -14
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +23 -29
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +11 -14
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +9 -12
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +9 -12
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +11 -14
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +11 -14
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +18 -24
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +11 -14
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +18 -24
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +23 -29
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +11 -14
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-version.js +8 -8
- package/esm/cli/esv/esv-secret-version.js.map +1 -1
- package/esm/cli/esv/esv-secret.js +11 -11
- package/esm/cli/esv/esv-secret.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +10 -14
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +23 -29
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +11 -14
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +9 -12
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +9 -12
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +11 -14
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +19 -26
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/esv/esv-variable.js +10 -10
- package/esm/cli/esv/esv-variable.js.map +1 -1
- package/esm/cli/esv/esv.js +5 -6
- package/esm/cli/esv/esv.js.map +1 -1
- package/esm/cli/idm/idm-count.js +12 -17
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +29 -39
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +29 -39
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +11 -17
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idm/idm.js +6 -9
- package/esm/cli/idm/idm.js.map +1 -1
- package/esm/cli/idp/idp-export.js +11 -15
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +32 -38
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +9 -13
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/idp/idp.js +5 -6
- package/esm/cli/idp/idp.js.map +1 -1
- package/esm/cli/info/info.js +19 -20
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +22 -28
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +12 -19
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +20 -26
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +20 -26
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +37 -45
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +44 -52
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +10 -13
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +9 -13
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/journey/journey.js +10 -11
- package/esm/cli/journey/journey.js.map +1 -1
- package/esm/cli/logging/logs-fetch.js +17 -19
- package/esm/cli/logging/logs-fetch.js.map +1 -1
- package/esm/cli/logging/logs-list.js +19 -25
- package/esm/cli/logging/logs-list.js.map +1 -1
- package/esm/cli/logging/logs-tail.js +17 -19
- package/esm/cli/logging/logs-tail.js.map +1 -1
- package/esm/cli/logging/logs.js +7 -6
- package/esm/cli/logging/logs.js.map +1 -1
- package/esm/cli/realm/realm-add-custom-domain.js +11 -14
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +10 -14
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +11 -14
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +11 -14
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm.js +7 -8
- package/esm/cli/realm/realm.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +27 -36
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +32 -41
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +10 -16
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-cot.js +6 -6
- package/esm/cli/saml/saml-cot.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +8 -15
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +10 -16
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +9 -16
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +45 -54
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +11 -17
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +21 -30
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/saml/saml-metadata.js +4 -4
- package/esm/cli/saml/saml-metadata.js.map +1 -1
- package/esm/cli/saml/saml.js +9 -10
- package/esm/cli/saml/saml.js.map +1 -1
- package/esm/cli/script/script-delete.js +9 -12
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +9 -12
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +28 -34
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +10 -13
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +10 -13
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/script/script.js +7 -8
- package/esm/cli/script/script.js.map +1 -1
- package/esm/cli/service/service-delete.js +10 -16
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +12 -17
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +12 -18
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +9 -15
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/service/service.js +6 -7
- package/esm/cli/service/service.js.map +1 -1
- package/esm/cli/theme/theme-delete.js +12 -19
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +12 -19
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +14 -21
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +10 -16
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/cli/theme/theme.js +6 -7
- package/esm/cli/theme/theme.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +30 -0
- package/esm/ops/ConnectionProfileOps.js.map +1 -0
- package/esm/ops/IdmOps.js +317 -0
- package/esm/ops/IdmOps.js.map +1 -0
- package/esm/ops/JourneyOps.js +2 -1
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/ServiceOps.js +20 -20
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/utils/Console.js +15 -25
- package/esm/utils/Console.js.map +1 -1
- package/package.json +6 -6
- package/esm/cli/cmd_common.js +0 -79
- package/esm/cli/cmd_common.js.map +0 -1
- package/esm/cli/conn/conn-add.js +0 -37
- package/esm/cli/conn/conn-add.js.map +0 -1
- package/esm/cli/journey/journey-delete.e2e.test_.js.map +0 -1
- package/esm/cli/journey/journey-list.e2e.test_.js.map +0 -1
package/esm/utils/Console.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Console.js","names":["SingleBar","Presets","createSpinner","Table","ExportImportUtils","state","Color","enable","appendTextToFile","data","message","newline","default","session","getOutputFile","JSON","stringify","console","dir","depth","log","process","stdout","write","text","error","stderr","info","warn","debug","curlirize","verboseMessage","getVerbose","debugMessage","getDebug","curlirizeMessage","getCurlirize","printMessage","type","createProgressBar","total","options","format","noTTYOutput","opt","pBar","getItem","legacy","start","setItem","updateProgressBar","increment","stopProgressBar","update","stop","showSpinner","spinner","stopSpinner","succeedSpinner","success","warnSpinner","failSpinner","spinSpinner","spin","createProgressIndicator","updateProgressIndicator","progressBar","stopProgressIndicator","status","createTable","head","table","chars","top","bottom","left","mid","right","style","createKeyValueTable","wordWrap","getObjectDepth","object","Object","Math","max","values","map","hasValues","has","keys","key","addRows","level","keyMap","space","push","brightCyan","hAlign","content","gray","indention","Array","fill","join","concat","createObjectTable"],"sources":["utils/Console.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport { SingleBar, Presets } from 'cli-progress';\nimport { createSpinner } from 'nanospinner';\nimport Table from 'cli-table3';\nimport { ExportImportUtils, state } from '@rockcarver/frodo-lib';\nimport Color from 'colors';\n\nColor.enable();\n\nconst { appendTextToFile } = ExportImportUtils;\n\n/**\n * Output a message in default color to stdout or append to `state.default.session.getOutputFile()`\n * @param {string | object} message the message\n */\nfunction data(message: string | object, newline = true) {\n if (!message) return;\n if (state.default.session.getOutputFile()) {\n if (typeof message === 'object') {\n message = JSON.stringify(message, null, 2);\n }\n if (newline) {\n message += '\\n';\n }\n appendTextToFile(message, state.default.session.getOutputFile());\n } else if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.log(message);\n } else {\n process.stdout.write(message);\n }\n}\n\n/**\n * Output a default color message to stderr\n * @param {Object} message the message\n */\nfunction text(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message);\n } else {\n process.stderr.write(message);\n }\n}\n\n/**\n * Output a message in bright cyan to stderr\n * @param {Object} message the message\n */\nfunction info(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message['brightCyan']);\n } else {\n process.stderr.write(message['brightCyan']);\n }\n}\n\n/**\n * Output a message in yellow to stderr\n * @param {Object} message the message\n */\nfunction warn(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message['yellow']);\n } else {\n process.stderr.write(message['yellow']);\n }\n}\n\n/**\n * Output a message in bright red to stderr\n * @param {Object} message the message\n */\nfunction error(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message['brightRed']);\n } else {\n process.stderr.write(message['brightRed']);\n }\n}\n\n/**\n * Output a debug message\n * @param {string | object} message the message\n */\nfunction debug(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 6 });\n } else if (newline) {\n console.error(message['brightMagenta']);\n } else {\n process.stderr.write(message['brightMagenta']);\n }\n}\n\n/**\n * Output a curlirize message\n * @param {string} message the message\n */\nfunction curlirize(message: string) {\n if (!message) return;\n console.error(message['brightBlue']);\n}\n\n/**\n * Output a message in default color to stderr\n * @param {Object} message the message\n */\nexport function verboseMessage(message) {\n if (!message) return;\n if (state.default.session.getVerbose()) {\n text(message);\n }\n}\n\n/**\n * Output a debug message\n * @param {Object} message the message\n */\nexport function debugMessage(message) {\n if (!message) return;\n if (state.default.session.getDebug()) {\n debug(message);\n }\n}\n\n/**\n * Output a curlirize message\n * @param {Object} message the message\n */\nexport function curlirizeMessage(message) {\n if (!message) return;\n if (state.default.session.getCurlirize()) {\n curlirize(message);\n }\n}\n\n/**\n * Prints a string message to console\n *\n * @param {string} message The string message to print\n * @param {string} [type=text] \"text\", \"info\", \"warn\", \"error\" or \"data\". All but\n * type=\"data\" will be written to stderr.\n * @param {boolean} [newline=true] Whether to add a newline at the end of message\n *\n */\nexport function printMessage(message, type = 'text', newline = true) {\n switch (type) {\n case 'data':\n data(message, newline);\n break;\n case 'text':\n text(message, newline);\n break;\n case 'info':\n info(message, newline);\n break;\n case 'warn':\n warn(message, newline);\n break;\n case 'error':\n error(message, newline);\n break;\n default:\n text(message, newline);\n }\n}\n\n/**\n * Creates a progress bar on stderr\n *\n * Example:\n * [========================================] 100% | 49/49 | Analyzing journey - transactional_auth\n *\n * @param {Number} total The total number of entries to track progress for\n * @param {String} message optional progress bar message\n * @param {Object} options progress bar configuration options\n *\n */\nexport function createProgressBar(\n total,\n message = null,\n options = {\n format: '[{bar}] {percentage}% | {value}/{total} | {data}',\n noTTYOutput: true,\n }\n) {\n let opt = options;\n if (message == null) {\n opt = {\n format: '[{bar}] {percentage}% | {value}/{total}',\n noTTYOutput: true,\n };\n }\n let pBar = state.default.session.getItem('progressBar');\n if (!pBar) pBar = new SingleBar(opt, Presets.legacy); // create only when needed\n pBar.start(total, 0, {\n data: message,\n });\n state.default.session.setItem('progressBar', pBar);\n}\n\n/**\n * Updates the progress bar by 1\n * @param {string} message optional message to update the progress bar\n *\n */\nexport function updateProgressBar(message = null) {\n const pBar = state.default.session.getItem('progressBar');\n if (message)\n pBar.increment({\n data: message,\n });\n else pBar.increment();\n}\n\n/**\n * Stop and hide the progress bar\n * @param {*} message optional message to update the progress bar\n */\nexport function stopProgressBar(message = null) {\n const pBar = state.default.session.getItem('progressBar');\n if (message)\n pBar.update({\n data: message,\n });\n pBar.stop();\n}\n\n/**\n * Create the spinner\n * @param {String} message optional spinner message\n */\nexport function showSpinner(message) {\n const spinner = createSpinner(message).start();\n state.default.session.setItem('Spinner', spinner);\n}\n\n/**\n * Stop the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function stopSpinner(message = null) {\n const spinner = state.default.session.getItem('Spinner');\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.stop(options);\n }\n}\n\n/**\n * Succeed the spinner. Stop and render success checkmark with optional message.\n * @param {String} message optional message to update the spinner\n */\nexport function succeedSpinner(message = null) {\n const spinner = state.default.session.getItem('Spinner');\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.success(options);\n }\n}\n\n/**\n * Warn the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function warnSpinner(message = null) {\n const spinner = state.default.session.getItem('Spinner');\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.warn(options);\n }\n}\n\n/**\n * Fail the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function failSpinner(message = null) {\n const spinner = state.default.session.getItem('Spinner');\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.error(options);\n }\n}\n\n/**\n * Spin the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function spinSpinner(message = null) {\n const spinner = state.default.session.getItem('Spinner');\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.update(options);\n spinner.spin();\n }\n}\n\nexport function createProgressIndicator(\n type = 'determinate',\n total = 0,\n message = null\n) {\n if (type === 'determinate') {\n createProgressBar(total, message);\n } else {\n showSpinner(message);\n }\n}\n\nexport function updateProgressIndicator(message) {\n const progressBar = state.default.session.getItem('progressBar');\n if (!progressBar) {\n spinSpinner(message);\n } else {\n updateProgressBar(message);\n }\n}\n\nexport function stopProgressIndicator(message, status = 'none') {\n const progressBar = state.default.session.getItem('progressBar');\n if (!progressBar) {\n switch (status) {\n case 'none':\n stopSpinner(message);\n break;\n case 'success':\n succeedSpinner(message);\n break;\n case 'warn':\n warnSpinner(message);\n break;\n case 'fail':\n failSpinner(message);\n break;\n default:\n stopSpinner(message);\n break;\n }\n } else {\n stopProgressBar(message);\n }\n}\n\n/**\n * Create an empty table\n * @param {string[]} head header row as an array of strings\n * @returns {any} an empty table\n */\nexport function createTable(head) {\n const table = new Table({\n head,\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n return table;\n}\n\n/**\n * Create a new key/value table\n * @returns {any} an empty key/value table\n */\nexport function createKeyValueTable() {\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n return table;\n}\n\n/**\n * Helper function to determine the total depth of an object\n * @param {Object} object input object\n * @returns {Number} total depth of the input object\n */\nfunction getObjectDepth(object) {\n return Object(object) === object\n ? 1 + Math.max(-1, ...Object.values(object).map(getObjectDepth))\n : 0;\n}\n\n/**\n * Helper function to determine if an object has values\n * @param {Object} object input object\n * @returns {boolean} true of the object or any of its sub-objects contain values, false otherwise\n */\nfunction hasValues(object) {\n let has = false;\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n return true;\n }\n has = has || hasValues(object[key]);\n }\n return has;\n}\n\n/**\n * Helper function (recursive) to add rows to an object table\n * @param {object} object object to render\n * @param {number} depth total depth of initial object\n * @param {number} level current level\n * @param {any} table the object table to add the rows to\n * @returns the updated object table\n */\nfunction addRows(object, depth, level, table, keyMap) {\n const space = ' ';\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n if (level === 1) {\n table.push([\n keyMap[key] ? keyMap[key].brightCyan : key['brightCyan'],\n object[key],\n ]);\n } else {\n table.push([\n {\n hAlign: 'right',\n content: keyMap[key] ? keyMap[key].gray : key.gray,\n },\n object[key],\n ]);\n }\n }\n }\n for (const key of keys) {\n if (Object(object[key]) === object[key]) {\n // only print header if there are any values below\n if (hasValues(object[key])) {\n let indention = new Array(level).fill(space).join('');\n if (level < 3) indention = `\\n${indention}`;\n table.push([\n indention.concat(\n keyMap[key] ? keyMap[key].brightCyan : key['brightCyan']\n ),\n '',\n ]);\n }\n // eslint-disable-next-line no-param-reassign\n table = addRows(object[key], depth, level + 1, table, keyMap);\n }\n }\n return table;\n}\n\n/**\n * Create and populate an object table from any JSON object. Use for describe commands.\n * @param {Object} object JSON object to create\n * @returns {any} a table that can be printed to the console\n */\nexport function createObjectTable(object, keyMap = {}) {\n // eslint-disable-next-line no-param-reassign\n const depth = getObjectDepth(object);\n // eslint-disable-next-line no-param-reassign\n const level = 0;\n // eslint-disable-next-line no-param-reassign\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n addRows(object, depth, level + 1, table, keyMap);\n return table;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Console.js","names":["SingleBar","Presets","createSpinner","Table","ExportImportUtils","state","Color","enable","appendTextToFile","progressBar","spinner","data","message","newline","getOutputFile","JSON","stringify","console","dir","depth","log","process","stdout","write","text","error","stderr","info","warn","debug","curlirize","verboseMessage","getVerbose","debugMessage","getDebug","curlirizeMessage","getCurlirize","printMessage","type","createProgressBar","total","options","format","noTTYOutput","opt","legacy","start","updateProgressBar","increment","stopProgressBar","update","stop","showSpinner","stopSpinner","succeedSpinner","success","warnSpinner","failSpinner","spinSpinner","spin","createProgressIndicator","updateProgressIndicator","stopProgressIndicator","status","createTable","head","table","chars","top","bottom","left","mid","right","style","createKeyValueTable","wordWrap","getObjectDepth","object","Object","Math","max","values","map","hasValues","has","keys","key","addRows","level","keyMap","space","push","brightCyan","hAlign","content","gray","indention","Array","fill","join","concat","createObjectTable"],"sources":["utils/Console.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport { SingleBar, Presets } from 'cli-progress';\nimport { createSpinner } from 'nanospinner';\nimport Table from 'cli-table3';\nimport { ExportImportUtils, state } from '@rockcarver/frodo-lib';\nimport Color from 'colors';\n\nColor.enable();\n\nconst { appendTextToFile } = ExportImportUtils;\n\nlet progressBar = null;\nlet spinner = null;\n\n/**\n * Output a message in default color to stdout or append to `state.getOutputFile()`\n * @param {string | object} message the message\n */\nfunction data(message: string | object, newline = true) {\n if (!message) return;\n if (state.getOutputFile()) {\n if (typeof message === 'object') {\n message = JSON.stringify(message, null, 2);\n }\n if (newline) {\n message += '\\n';\n }\n appendTextToFile(message, state.getOutputFile());\n } else if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.log(message);\n } else {\n process.stdout.write(message);\n }\n}\n\n/**\n * Output a default color message to stderr\n * @param {Object} message the message\n */\nfunction text(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message);\n } else {\n process.stderr.write(message);\n }\n}\n\n/**\n * Output a message in bright cyan to stderr\n * @param {Object} message the message\n */\nfunction info(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message['brightCyan']);\n } else {\n process.stderr.write(message['brightCyan']);\n }\n}\n\n/**\n * Output a message in yellow to stderr\n * @param {Object} message the message\n */\nfunction warn(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message['yellow']);\n } else {\n process.stderr.write(message['yellow']);\n }\n}\n\n/**\n * Output a message in bright red to stderr\n * @param {Object} message the message\n */\nfunction error(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 3 });\n } else if (newline) {\n console.error(message['brightRed']);\n } else {\n process.stderr.write(message['brightRed']);\n }\n}\n\n/**\n * Output a debug message\n * @param {string | object} message the message\n */\nfunction debug(message: string | object, newline = true) {\n if (!message) return;\n if (typeof message === 'object') {\n console.dir(message, { depth: 6 });\n } else if (newline) {\n console.error(message['brightMagenta']);\n } else {\n process.stderr.write(message['brightMagenta']);\n }\n}\n\n/**\n * Output a curlirize message\n * @param {string} message the message\n */\nfunction curlirize(message: string) {\n if (!message) return;\n console.error(message['brightBlue']);\n}\n\n/**\n * Output a message in default color to stderr\n * @param {Object} message the message\n */\nexport function verboseMessage(message) {\n if (!message) return;\n if (state.getVerbose()) {\n text(message);\n }\n}\n\n/**\n * Output a debug message\n * @param {Object} message the message\n */\nexport function debugMessage(message) {\n if (!message) return;\n if (state.getDebug()) {\n debug(message);\n }\n}\n\n/**\n * Output a curlirize message\n * @param {Object} message the message\n */\nexport function curlirizeMessage(message) {\n if (!message) return;\n if (state.getCurlirize()) {\n curlirize(message);\n }\n}\n\n/**\n * Prints a string message to console\n *\n * @param {string} message The string message to print\n * @param {string} [type=text] \"text\", \"info\", \"warn\", \"error\" or \"data\". All but\n * type=\"data\" will be written to stderr.\n * @param {boolean} [newline=true] Whether to add a newline at the end of message\n *\n */\nexport function printMessage(message, type = 'text', newline = true) {\n switch (type) {\n case 'data':\n data(message, newline);\n break;\n case 'text':\n text(message, newline);\n break;\n case 'info':\n info(message, newline);\n break;\n case 'warn':\n warn(message, newline);\n break;\n case 'error':\n error(message, newline);\n break;\n default:\n text(message, newline);\n }\n}\n\n/**\n * Creates a progress bar on stderr\n *\n * Example:\n * [========================================] 100% | 49/49 | Analyzing journey - transactional_auth\n *\n * @param {Number} total The total number of entries to track progress for\n * @param {String} message optional progress bar message\n * @param {Object} options progress bar configuration options\n *\n */\nexport function createProgressBar(\n total,\n message = null,\n options = {\n format: '[{bar}] {percentage}% | {value}/{total} | {data}',\n noTTYOutput: true,\n }\n) {\n let opt = options;\n if (message == null) {\n opt = {\n format: '[{bar}] {percentage}% | {value}/{total}',\n noTTYOutput: true,\n };\n }\n progressBar = new SingleBar(opt, Presets.legacy); // create only when needed\n progressBar.start(total, 0, {\n data: message,\n });\n}\n\n/**\n * Updates the progress bar by 1\n * @param {string} message optional message to update the progress bar\n *\n */\nexport function updateProgressBar(message = null) {\n if (message)\n progressBar.increment({\n data: message,\n });\n else progressBar.increment();\n}\n\n/**\n * Stop and hide the progress bar\n * @param {*} message optional message to update the progress bar\n */\nexport function stopProgressBar(message = null) {\n if (message)\n progressBar.update({\n data: message,\n });\n progressBar.stop();\n}\n\n/**\n * Create the spinner\n * @param {String} message optional spinner message\n */\nexport function showSpinner(message) {\n spinner = createSpinner(message).start();\n}\n\n/**\n * Stop the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function stopSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.stop(options);\n }\n}\n\n/**\n * Succeed the spinner. Stop and render success checkmark with optional message.\n * @param {String} message optional message to update the spinner\n */\nexport function succeedSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.success(options);\n }\n}\n\n/**\n * Warn the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function warnSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.warn(options);\n }\n}\n\n/**\n * Fail the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function failSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.error(options);\n }\n}\n\n/**\n * Spin the spinner\n * @param {String} message optional message to update the spinner\n */\nexport function spinSpinner(message = null) {\n if (spinner) {\n let options = {};\n if (message) options = { text: message };\n spinner.update(options);\n spinner.spin();\n }\n}\n\nexport function createProgressIndicator(\n type = 'determinate',\n total = 0,\n message = null\n) {\n if (type === 'determinate') {\n createProgressBar(total, message);\n } else {\n showSpinner(message);\n }\n}\n\nexport function updateProgressIndicator(message) {\n if (!progressBar) {\n spinSpinner(message);\n } else {\n updateProgressBar(message);\n }\n}\n\nexport function stopProgressIndicator(message, status = 'none') {\n if (!progressBar) {\n switch (status) {\n case 'none':\n stopSpinner(message);\n break;\n case 'success':\n succeedSpinner(message);\n break;\n case 'warn':\n warnSpinner(message);\n break;\n case 'fail':\n failSpinner(message);\n break;\n default:\n stopSpinner(message);\n break;\n }\n } else {\n stopProgressBar(message);\n }\n}\n\n/**\n * Create an empty table\n * @param {string[]} head header row as an array of strings\n * @returns {any} an empty table\n */\nexport function createTable(head) {\n const table = new Table({\n head,\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n return table;\n}\n\n/**\n * Create a new key/value table\n * @returns {any} an empty key/value table\n */\nexport function createKeyValueTable() {\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n return table;\n}\n\n/**\n * Helper function to determine the total depth of an object\n * @param {Object} object input object\n * @returns {Number} total depth of the input object\n */\nfunction getObjectDepth(object) {\n return Object(object) === object\n ? 1 + Math.max(-1, ...Object.values(object).map(getObjectDepth))\n : 0;\n}\n\n/**\n * Helper function to determine if an object has values\n * @param {Object} object input object\n * @returns {boolean} true of the object or any of its sub-objects contain values, false otherwise\n */\nfunction hasValues(object) {\n let has = false;\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n return true;\n }\n has = has || hasValues(object[key]);\n }\n return has;\n}\n\n/**\n * Helper function (recursive) to add rows to an object table\n * @param {object} object object to render\n * @param {number} depth total depth of initial object\n * @param {number} level current level\n * @param {any} table the object table to add the rows to\n * @returns the updated object table\n */\nfunction addRows(object, depth, level, table, keyMap) {\n const space = ' ';\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n if (level === 1) {\n table.push([\n keyMap[key] ? keyMap[key].brightCyan : key['brightCyan'],\n object[key],\n ]);\n } else {\n table.push([\n {\n hAlign: 'right',\n content: keyMap[key] ? keyMap[key].gray : key.gray,\n },\n object[key],\n ]);\n }\n }\n }\n for (const key of keys) {\n if (Object(object[key]) === object[key]) {\n // only print header if there are any values below\n if (hasValues(object[key])) {\n let indention = new Array(level).fill(space).join('');\n if (level < 3) indention = `\\n${indention}`;\n table.push([\n indention.concat(\n keyMap[key] ? keyMap[key].brightCyan : key['brightCyan']\n ),\n '',\n ]);\n }\n // eslint-disable-next-line no-param-reassign\n table = addRows(object[key], depth, level + 1, table, keyMap);\n }\n }\n return table;\n}\n\n/**\n * Create and populate an object table from any JSON object. Use for describe commands.\n * @param {Object} object JSON object to create\n * @returns {any} a table that can be printed to the console\n */\nexport function createObjectTable(object, keyMap = {}) {\n // eslint-disable-next-line no-param-reassign\n const depth = getObjectDepth(object);\n // eslint-disable-next-line no-param-reassign\n const level = 0;\n // eslint-disable-next-line no-param-reassign\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n addRows(object, depth, level + 1, table, keyMap);\n return table;\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rockcarver/frodo-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
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": [
|
|
@@ -31,9 +31,7 @@
|
|
|
31
31
|
"scripts": {
|
|
32
32
|
"test": "npx tsc && node --experimental-vm-modules node_modules/jest/bin/jest.js",
|
|
33
33
|
"test:local": "npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js",
|
|
34
|
-
"test:
|
|
35
|
-
"test:e2e": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand e2e",
|
|
36
|
-
"test:e2e:list": "node --experimental-vm-modules node_modules/jest/bin/jest.js --listTests e2e",
|
|
34
|
+
"test:debug": "node --no-warnings --experimental-vm-modules --experimental-specifier-resolution=node node_modules/jest/bin/jest.js --verbose=true --silent=false",
|
|
37
35
|
"lint": "npx eslint --ext .ts --ignore-path .gitignore .",
|
|
38
36
|
"lint:fix": "npx eslint --fix --ext .ts --ignore-path .gitignore .",
|
|
39
37
|
"build": "npx tsc && npx gulp",
|
|
@@ -90,7 +88,7 @@
|
|
|
90
88
|
]
|
|
91
89
|
},
|
|
92
90
|
"dependencies": {
|
|
93
|
-
"@rockcarver/frodo-lib": "0.
|
|
91
|
+
"@rockcarver/frodo-lib": "0.17.1",
|
|
94
92
|
"cli-progress": "^3.11.2",
|
|
95
93
|
"cli-table3": "^0.6.3",
|
|
96
94
|
"colors": "^1.4.0",
|
|
@@ -98,8 +96,10 @@
|
|
|
98
96
|
"compare-versions": "^5.0.1",
|
|
99
97
|
"lodash": "^4.17.21",
|
|
100
98
|
"nanospinner": "^1.1.0",
|
|
101
|
-
"
|
|
99
|
+
"properties-reader": "^2.2.0",
|
|
100
|
+
"replaceall": "^0.1.6",
|
|
102
101
|
"slugify": "^1.6.5",
|
|
102
|
+
"uuid": "^9.0.0",
|
|
103
103
|
"yesno": "^0.4.0"
|
|
104
104
|
},
|
|
105
105
|
"devDependencies": {
|
package/esm/cli/cmd_common.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { Argument, Option } from 'commander';
|
|
2
|
-
import { state } from '@rockcarver/frodo-lib';
|
|
3
|
-
import * as globalConfig from '../storage/StaticStorage';
|
|
4
|
-
import { printMessage, createProgressIndicator, updateProgressIndicator, stopProgressIndicator, verboseMessage, debugMessage, curlirizeMessage } from '../utils/Console.js';
|
|
5
|
-
state.default.session.setPrintHandler(printMessage);
|
|
6
|
-
state.default.session.setVerboseHandler(verboseMessage);
|
|
7
|
-
state.default.session.setDebugHandler(debugMessage);
|
|
8
|
-
state.default.session.setCurlirizeHandler(curlirizeMessage);
|
|
9
|
-
state.default.session.setCreateProgressHandler(createProgressIndicator);
|
|
10
|
-
state.default.session.setUpdateProgressHandler(updateProgressIndicator);
|
|
11
|
-
state.default.session.setStopProgressHandler(stopProgressIndicator);
|
|
12
|
-
export function init() {
|
|
13
|
-
// pseudo functions for commands that do not otherwise need to import
|
|
14
|
-
// this file but need to trigger print and progress handler registration
|
|
15
|
-
}
|
|
16
|
-
const hostArgumentDescription = 'Access Management base URL, e.g.: https://cdk.iam.example.com/am. To use a connection profile, just specify a unique substring.';
|
|
17
|
-
export const hostArgument = new Argument('[host]', hostArgumentDescription);
|
|
18
|
-
export const hostArgumentM = new Argument('<host>', hostArgumentDescription);
|
|
19
|
-
const realmArgumentDescription = "Realm. Specify realm as '/' for the root realm or 'realm' or '/parent/child' otherwise.";
|
|
20
|
-
export const realmArgument = new Argument('[realm]', realmArgumentDescription).default(globalConfig.DEFAULT_REALM_KEY, '"alpha" for Identity Cloud tenants, "/" otherwise.');
|
|
21
|
-
export const realmArgumentM = new Argument('<realm>', realmArgumentDescription);
|
|
22
|
-
const userArgumentDescription = 'Username to login with. Must be an admin user with appropriate rights to manage authentication journeys/trees.';
|
|
23
|
-
export const userArgument = new Argument('[user]', userArgumentDescription);
|
|
24
|
-
export const userArgumentM = new Argument('<user>', userArgumentDescription);
|
|
25
|
-
const passwordArgumentDescription = 'Password.';
|
|
26
|
-
export const passwordArgument = new Argument('[password]', passwordArgumentDescription);
|
|
27
|
-
export const passwordArgumentM = new Argument('<password>', passwordArgumentDescription);
|
|
28
|
-
const apiKeyArgumentDescription = 'API key for logging API.';
|
|
29
|
-
export const apiKeyArgument = new Argument('[key]', apiKeyArgumentDescription);
|
|
30
|
-
const apiSecretArgumentDescription = 'API secret for logging API.';
|
|
31
|
-
export const apiSecretArgument = new Argument('[secret]', apiSecretArgumentDescription);
|
|
32
|
-
const treeOptionDescription = 'Specify the name of an authentication journey/tree.';
|
|
33
|
-
export const treeOption = new Option('-t, --tree <tree>', treeOptionDescription);
|
|
34
|
-
export const treeOptionM = new Option('-t, --tree <tree>', treeOptionDescription);
|
|
35
|
-
const fileOptionDescription = 'File name.';
|
|
36
|
-
export const fileOption = new Option('-f, --file <file>', fileOptionDescription);
|
|
37
|
-
export const fileOptionM = new Option('-f, --file <file>', fileOptionDescription);
|
|
38
|
-
const deploymentOptionDescription = 'Override auto-detected deployment type. Valid values for type: \n\
|
|
39
|
-
classic: A classic Access Management-only deployment with custom layout and configuration. \n\
|
|
40
|
-
cloud: A ForgeRock Identity Cloud environment. \n\
|
|
41
|
-
forgeops: A ForgeOps CDK or CDM deployment. \n\
|
|
42
|
-
The detected or provided deployment type controls certain behavior like obtaining an Identity \
|
|
43
|
-
Management admin token or not and whether to export/import referenced email templates or how \
|
|
44
|
-
to walk through the tenant admin login flow of Identity Cloud and handle MFA';
|
|
45
|
-
export const deploymentOption = new Option('-m, --type <type>', deploymentOptionDescription).choices(globalConfig.DEPLOYMENT_TYPES);
|
|
46
|
-
export const deploymentOptionM = new Option('-m, --type <type>', deploymentOptionDescription).choices(globalConfig.DEPLOYMENT_TYPES);
|
|
47
|
-
export const insecureOption = new Option('-k, --insecure', 'Allow insecure connections when using SSL/TLS. Has no effect when using a network proxy for https (HTTPS_PROXY=http://<host>:<port>), in that case the proxy must provide this capability.').default(false, "Don't allow insecure connections");
|
|
48
|
-
export const verboseOption = new Option('--verbose', 'Verbose output during command execution. If specified, may or may not produce additional output.');
|
|
49
|
-
export const debugOption = new Option('--debug', 'Debug output during command execution. If specified, may or may not produce additional output helpful for troubleshooting.');
|
|
50
|
-
export const curlirizeOption = new Option('--curlirize', 'Output all network calls in curl format.');
|
|
51
|
-
export const managedNameOption = new Option('-N, --name <name>', 'Managed object name to be operated on. Examples are \
|
|
52
|
-
user, role, alpha_user, alpha_role etc.');
|
|
53
|
-
export const managedNameOptionM = new Option('-N, --name <name>', 'Managed object name to be operated on. Examples are \
|
|
54
|
-
user, role, alpha_user, alpha_role etc.');
|
|
55
|
-
const dirOptionDescription = 'Directory for exporting all configuration entities to.';
|
|
56
|
-
export const dirOption = new Option('-D, --directory <directory>', dirOptionDescription);
|
|
57
|
-
export const dirOptionM = new Option('-D, --directory <directory>', dirOptionDescription);
|
|
58
|
-
const entitiesFileOptionDescription = 'JSON file that specifies the config entities to export/import.';
|
|
59
|
-
export const entitiesFileOption = new Option('-E, --entitiesFile <file>', entitiesFileOptionDescription);
|
|
60
|
-
export const entitiesFileOptionM = new Option('-E, --entitiesFile <file>', entitiesFileOptionDescription);
|
|
61
|
-
const envFileOptionDescription = 'File that defines environment specific variables for replacement during configuration export/import.';
|
|
62
|
-
export const envFileOption = new Option('-e, --envFile <file>', envFileOptionDescription);
|
|
63
|
-
export const envFileOptionM = new Option('-e, --envFile <file>', envFileOptionDescription);
|
|
64
|
-
const sourcesOptionDescription = 'Comma separated list of log sources';
|
|
65
|
-
const sourcesOptionDefaultValueDescription = 'Log everything';
|
|
66
|
-
export const sourcesOptionM = new Option('-c, --sources <sources>', sourcesOptionDescription).default('am-everything,idm-everything', sourcesOptionDefaultValueDescription);
|
|
67
|
-
export const scriptFriendlyOption = new Option('-s, --scriptFriendly', 'Send output of operation to STDOUT in a script-friendly format (JSON) which can be piped to other \
|
|
68
|
-
commands. User messages/warnings are output to STDERR, and are not piped. For example, to only get \
|
|
69
|
-
bearer token: \n\
|
|
70
|
-
<<< frodo info my-tenant -s 2>/dev/null | jq -r .bearerToken >>>').default(false, 'Output as plain text');
|
|
71
|
-
treeOptionM.makeOptionMandatory();
|
|
72
|
-
fileOptionM.makeOptionMandatory();
|
|
73
|
-
deploymentOptionM.makeOptionMandatory();
|
|
74
|
-
dirOptionM.makeOptionMandatory();
|
|
75
|
-
entitiesFileOptionM.makeOptionMandatory();
|
|
76
|
-
envFileOptionM.makeOptionMandatory();
|
|
77
|
-
managedNameOptionM.makeOptionMandatory();
|
|
78
|
-
sourcesOptionM.makeOptionMandatory();
|
|
79
|
-
//# sourceMappingURL=cmd_common.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cmd_common.js","names":["Argument","Option","state","globalConfig","printMessage","createProgressIndicator","updateProgressIndicator","stopProgressIndicator","verboseMessage","debugMessage","curlirizeMessage","default","session","setPrintHandler","setVerboseHandler","setDebugHandler","setCurlirizeHandler","setCreateProgressHandler","setUpdateProgressHandler","setStopProgressHandler","init","hostArgumentDescription","hostArgument","hostArgumentM","realmArgumentDescription","realmArgument","DEFAULT_REALM_KEY","realmArgumentM","userArgumentDescription","userArgument","userArgumentM","passwordArgumentDescription","passwordArgument","passwordArgumentM","apiKeyArgumentDescription","apiKeyArgument","apiSecretArgumentDescription","apiSecretArgument","treeOptionDescription","treeOption","treeOptionM","fileOptionDescription","fileOption","fileOptionM","deploymentOptionDescription","deploymentOption","choices","DEPLOYMENT_TYPES","deploymentOptionM","insecureOption","verboseOption","debugOption","curlirizeOption","managedNameOption","managedNameOptionM","dirOptionDescription","dirOption","dirOptionM","entitiesFileOptionDescription","entitiesFileOption","entitiesFileOptionM","envFileOptionDescription","envFileOption","envFileOptionM","sourcesOptionDescription","sourcesOptionDefaultValueDescription","sourcesOptionM","scriptFriendlyOption","makeOptionMandatory"],"sources":["cli/cmd_common.ts"],"sourcesContent":["import { Argument, Option } from 'commander';\nimport { state } from '@rockcarver/frodo-lib';\nimport * as globalConfig from '../storage/StaticStorage';\nimport {\n printMessage,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n verboseMessage,\n debugMessage,\n curlirizeMessage,\n} from '../utils/Console.js';\n\nstate.default.session.setPrintHandler(printMessage);\nstate.default.session.setVerboseHandler(verboseMessage);\nstate.default.session.setDebugHandler(debugMessage);\nstate.default.session.setCurlirizeHandler(curlirizeMessage);\nstate.default.session.setCreateProgressHandler(createProgressIndicator);\nstate.default.session.setUpdateProgressHandler(updateProgressIndicator);\nstate.default.session.setStopProgressHandler(stopProgressIndicator);\n\nexport function init() {\n // pseudo functions for commands that do not otherwise need to import\n // this file but need to trigger print and progress handler registration\n}\n\nconst hostArgumentDescription =\n 'Access Management base URL, e.g.: https://cdk.iam.example.com/am. To use a connection profile, just specify a unique substring.';\nexport const hostArgument = new Argument('[host]', hostArgumentDescription);\nexport const hostArgumentM = new Argument('<host>', hostArgumentDescription);\n\nconst realmArgumentDescription =\n \"Realm. Specify realm as '/' for the root realm or 'realm' or '/parent/child' otherwise.\";\nexport const realmArgument = new Argument(\n '[realm]',\n realmArgumentDescription\n).default(\n globalConfig.DEFAULT_REALM_KEY,\n '\"alpha\" for Identity Cloud tenants, \"/\" otherwise.'\n);\nexport const realmArgumentM = new Argument('<realm>', realmArgumentDescription);\n\nconst userArgumentDescription =\n 'Username to login with. Must be an admin user with appropriate rights to manage authentication journeys/trees.';\nexport const userArgument = new Argument('[user]', userArgumentDescription);\nexport const userArgumentM = new Argument('<user>', userArgumentDescription);\n\nconst passwordArgumentDescription = 'Password.';\nexport const passwordArgument = new Argument(\n '[password]',\n passwordArgumentDescription\n);\nexport const passwordArgumentM = new Argument(\n '<password>',\n passwordArgumentDescription\n);\n\nconst apiKeyArgumentDescription = 'API key for logging API.';\nexport const apiKeyArgument = new Argument('[key]', apiKeyArgumentDescription);\n\nconst apiSecretArgumentDescription = 'API secret for logging API.';\nexport const apiSecretArgument = new Argument(\n '[secret]',\n apiSecretArgumentDescription\n);\n\nconst treeOptionDescription =\n 'Specify the name of an authentication journey/tree.';\nexport const treeOption = new Option(\n '-t, --tree <tree>',\n treeOptionDescription\n);\nexport const treeOptionM = new Option(\n '-t, --tree <tree>',\n treeOptionDescription\n);\n\nconst fileOptionDescription = 'File name.';\nexport const fileOption = new Option(\n '-f, --file <file>',\n fileOptionDescription\n);\nexport const fileOptionM = new Option(\n '-f, --file <file>',\n fileOptionDescription\n);\n\nconst deploymentOptionDescription =\n 'Override auto-detected deployment type. Valid values for type: \\n\\\nclassic: A classic Access Management-only deployment with custom layout and configuration. \\n\\\ncloud: A ForgeRock Identity Cloud environment. \\n\\\nforgeops: A ForgeOps CDK or CDM deployment. \\n\\\nThe detected or provided deployment type controls certain behavior like obtaining an Identity \\\nManagement admin token or not and whether to export/import referenced email templates or how \\\nto walk through the tenant admin login flow of Identity Cloud and handle MFA';\nexport const deploymentOption = new Option(\n '-m, --type <type>',\n deploymentOptionDescription\n).choices(globalConfig.DEPLOYMENT_TYPES);\nexport const deploymentOptionM = new Option(\n '-m, --type <type>',\n deploymentOptionDescription\n).choices(globalConfig.DEPLOYMENT_TYPES);\n\nexport const insecureOption = new Option(\n '-k, --insecure',\n 'Allow insecure connections when using SSL/TLS. Has no effect when using a network proxy for https (HTTPS_PROXY=http://<host>:<port>), in that case the proxy must provide this capability.'\n).default(false, \"Don't allow insecure connections\");\n\nexport const verboseOption = new Option(\n '--verbose',\n 'Verbose output during command execution. If specified, may or may not produce additional output.'\n);\n\nexport const debugOption = new Option(\n '--debug',\n 'Debug output during command execution. If specified, may or may not produce additional output helpful for troubleshooting.'\n);\n\nexport const curlirizeOption = new Option(\n '--curlirize',\n 'Output all network calls in curl format.'\n);\n\nexport const managedNameOption = new Option(\n '-N, --name <name>',\n 'Managed object name to be operated on. Examples are \\\nuser, role, alpha_user, alpha_role etc.'\n);\nexport const managedNameOptionM = new Option(\n '-N, --name <name>',\n 'Managed object name to be operated on. Examples are \\\nuser, role, alpha_user, alpha_role etc.'\n);\n\nconst dirOptionDescription =\n 'Directory for exporting all configuration entities to.';\nexport const dirOption = new Option(\n '-D, --directory <directory>',\n dirOptionDescription\n);\nexport const dirOptionM = new Option(\n '-D, --directory <directory>',\n dirOptionDescription\n);\n\nconst entitiesFileOptionDescription =\n 'JSON file that specifies the config entities to export/import.';\nexport const entitiesFileOption = new Option(\n '-E, --entitiesFile <file>',\n entitiesFileOptionDescription\n);\nexport const entitiesFileOptionM = new Option(\n '-E, --entitiesFile <file>',\n entitiesFileOptionDescription\n);\n\nconst envFileOptionDescription =\n 'File that defines environment specific variables for replacement during configuration export/import.';\nexport const envFileOption = new Option(\n '-e, --envFile <file>',\n envFileOptionDescription\n);\nexport const envFileOptionM = new Option(\n '-e, --envFile <file>',\n envFileOptionDescription\n);\n\nconst sourcesOptionDescription = 'Comma separated list of log sources';\nconst sourcesOptionDefaultValueDescription = 'Log everything';\nexport const sourcesOptionM = new Option(\n '-c, --sources <sources>',\n sourcesOptionDescription\n).default('am-everything,idm-everything', sourcesOptionDefaultValueDescription);\n\nexport const scriptFriendlyOption = new Option(\n '-s, --scriptFriendly',\n 'Send output of operation to STDOUT in a script-friendly format (JSON) which can be piped to other \\\ncommands. User messages/warnings are output to STDERR, and are not piped. For example, to only get \\\nbearer token: \\n\\\n<<< frodo info my-tenant -s 2>/dev/null | jq -r .bearerToken >>>'\n).default(false, 'Output as plain text');\n\ntreeOptionM.makeOptionMandatory();\nfileOptionM.makeOptionMandatory();\ndeploymentOptionM.makeOptionMandatory();\ndirOptionM.makeOptionMandatory();\nentitiesFileOptionM.makeOptionMandatory();\nenvFileOptionM.makeOptionMandatory();\nmanagedNameOptionM.makeOptionMandatory();\nsourcesOptionM.makeOptionMandatory();\n"],"mappings":"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"}
|
package/esm/cli/conn/conn-add.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Command, Option } from 'commander';
|
|
2
|
-
import { Authenticate, ConnectionProfile, state } from '@rockcarver/frodo-lib';
|
|
3
|
-
import * as common from '../cmd_common.js';
|
|
4
|
-
const {
|
|
5
|
-
getTokens
|
|
6
|
-
} = Authenticate;
|
|
7
|
-
const {
|
|
8
|
-
saveConnectionProfile
|
|
9
|
-
} = ConnectionProfile;
|
|
10
|
-
const program = new Command('frodo conn add');
|
|
11
|
-
program.description('Add a new connection profiles. You have to specify a URL, username and password at a minimum.\nOptionally, for Identity Cloud, you can also add a log API key and secret.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.userArgument).addArgument(common.passwordArgument).addArgument(common.apiKeyArgument).addArgument(common.apiSecretArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(new Option('--no-validate', 'Do not validate connection.')).addOption(new Option('--authentication-service [service]', 'Name of the authentication service/tree to use.')).addOption(new Option('--authentication-header-overrides [headers]', 'Map of headers: {"host":"am.example.com:8081"}.')).action(
|
|
12
|
-
// implement command logic inside action handler
|
|
13
|
-
async (host, user, password, key, secret, options) => {
|
|
14
|
-
state.default.session.setTenant(host);
|
|
15
|
-
state.default.session.setUsername(user);
|
|
16
|
-
state.default.session.setPassword(password);
|
|
17
|
-
state.default.session.setLogApiKey(key);
|
|
18
|
-
state.default.session.setLogApiSecret(secret);
|
|
19
|
-
state.default.session.setDeploymentType(options.type);
|
|
20
|
-
state.default.session.setAllowInsecureConnection(options.insecure);
|
|
21
|
-
if (options.authenticationService) {
|
|
22
|
-
state.default.session.setAuthenticationService(options.authenticationService);
|
|
23
|
-
}
|
|
24
|
-
if (options.authenticationHeaderOverrides) {
|
|
25
|
-
state.default.session.setAuthenticationHeaderOverrides(JSON.parse(options.authenticationHeaderOverrides));
|
|
26
|
-
}
|
|
27
|
-
if (options.validate && (await getTokens()) || !options.validate) {
|
|
28
|
-
saveConnectionProfile();
|
|
29
|
-
} else {
|
|
30
|
-
process.exitCode = 1;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
// end command logic inside action handler
|
|
34
|
-
);
|
|
35
|
-
|
|
36
|
-
program.parse();
|
|
37
|
-
//# sourceMappingURL=conn-add.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conn-add.js","names":["Command","Option","Authenticate","ConnectionProfile","state","common","getTokens","saveConnectionProfile","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","userArgument","passwordArgument","apiKeyArgument","apiSecretArgument","addOption","deploymentOption","insecureOption","action","host","user","password","key","secret","options","default","session","setTenant","setUsername","setPassword","setLogApiKey","setLogApiSecret","setDeploymentType","type","setAllowInsecureConnection","insecure","authenticationService","setAuthenticationService","authenticationHeaderOverrides","setAuthenticationHeaderOverrides","JSON","parse","validate","process","exitCode"],"sources":["cli/conn/conn-add.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, ConnectionProfile, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\n\nconst { getTokens } = Authenticate;\nconst { saveConnectionProfile } = ConnectionProfile;\n\nconst program = new Command('frodo conn add');\n\nprogram\n .description(\n 'Add a new connection profiles. You have to specify a URL, username and password at a minimum.\\nOptionally, for Identity Cloud, you can also add a log API key and secret.'\n )\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addArgument(common.apiKeyArgument)\n .addArgument(common.apiSecretArgument)\n .addOption(common.deploymentOption)\n .addOption(common.insecureOption)\n .addOption(new Option('--no-validate', 'Do not validate connection.'))\n .addOption(\n new Option(\n '--authentication-service [service]',\n 'Name of the authentication service/tree to use.'\n )\n )\n .addOption(\n new Option(\n '--authentication-header-overrides [headers]',\n 'Map of headers: {\"host\":\"am.example.com:8081\"}.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, user, password, key, secret, options) => {\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setLogApiKey(key);\n state.default.session.setLogApiSecret(secret);\n state.default.session.setDeploymentType(options.type);\n state.default.session.setAllowInsecureConnection(options.insecure);\n if (options.authenticationService) {\n state.default.session.setAuthenticationService(\n options.authenticationService\n );\n }\n if (options.authenticationHeaderOverrides) {\n state.default.session.setAuthenticationHeaderOverrides(\n JSON.parse(options.authenticationHeaderOverrides)\n );\n }\n if ((options.validate && (await getTokens())) || !options.validate) {\n saveConnectionProfile();\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAO,EAAEC,MAAM,QAAQ,WAAW;AAC3C,SAASC,YAAY,EAAEC,iBAAiB,EAAEC,KAAK,QAAQ,uBAAuB;AAC9E,OAAO,KAAKC,MAAM,MAAM,kBAAkB;AAE1C,MAAM;EAAEC;AAAU,CAAC,GAAGJ,YAAY;AAClC,MAAM;EAAEK;AAAsB,CAAC,GAAGJ,iBAAiB;AAEnD,MAAMK,OAAO,GAAG,IAAIR,OAAO,CAAC,gBAAgB,CAAC;AAE7CQ,OAAO,CACJC,WAAW,CACV,2KAA2K,CAC5K,CACAC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAChCC,kBAAkB,EAAE,CACpBC,WAAW,CAACP,MAAM,CAACQ,aAAa,CAAC,CACjCD,WAAW,CAACP,MAAM,CAACS,YAAY,CAAC,CAChCF,WAAW,CAACP,MAAM,CAACU,gBAAgB,CAAC,CACpCH,WAAW,CAACP,MAAM,CAACW,cAAc,CAAC,CAClCJ,WAAW,CAACP,MAAM,CAACY,iBAAiB,CAAC,CACrCC,SAAS,CAACb,MAAM,CAACc,gBAAgB,CAAC,CAClCD,SAAS,CAACb,MAAM,CAACe,cAAc,CAAC,CAChCF,SAAS,CAAC,IAAIjB,MAAM,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAC,CACrEiB,SAAS,CACR,IAAIjB,MAAM,CACR,oCAAoC,EACpC,iDAAiD,CAClD,CACF,CACAiB,SAAS,CACR,IAAIjB,MAAM,CACR,6CAA6C,EAC7C,iDAAiD,CAClD,CACF,CACAoB,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,MAAM,EAAEC,OAAO,KAAK;EACpDvB,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACC,SAAS,CAACR,IAAI,CAAC;EACrClB,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACE,WAAW,CAACR,IAAI,CAAC;EACvCnB,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACG,WAAW,CAACR,QAAQ,CAAC;EAC3CpB,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACI,YAAY,CAACR,GAAG,CAAC;EACvCrB,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACK,eAAe,CAACR,MAAM,CAAC;EAC7CtB,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACM,iBAAiB,CAACR,OAAO,CAACS,IAAI,CAAC;EACrDhC,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACQ,0BAA0B,CAACV,OAAO,CAACW,QAAQ,CAAC;EAClE,IAAIX,OAAO,CAACY,qBAAqB,EAAE;IACjCnC,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACW,wBAAwB,CAC5Cb,OAAO,CAACY,qBAAqB,CAC9B;EACH;EACA,IAAIZ,OAAO,CAACc,6BAA6B,EAAE;IACzCrC,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACa,gCAAgC,CACpDC,IAAI,CAACC,KAAK,CAACjB,OAAO,CAACc,6BAA6B,CAAC,CAClD;EACH;EACA,IAAKd,OAAO,CAACkB,QAAQ,KAAK,MAAMvC,SAAS,EAAE,CAAC,IAAK,CAACqB,OAAO,CAACkB,QAAQ,EAAE;IAClEtC,qBAAqB,EAAE;EACzB,CAAC,MAAM;IACLuC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHvC,OAAO,CAACoC,KAAK,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"journey-delete.e2e.test_.js","names":["spawn","spawnSync","ansiEscapeCodes","beforeAll","beforeEach","deleteJourneysCmd","status","console","error","stderr","toString","log","stdout","importTestJourneysCmd","cwd","describe","it","done","deleteJourneyCmd","expected","join","chunks","on","chunk","push","output","Buffer","concat","replace","expect","toContain","str"],"sources":["cli/journey/journey-delete.e2e.test_.ts"],"sourcesContent":["/* eslint-disable no-console */\n// import { jest } from '@jest/globals';\nimport { spawn, spawnSync } from 'child_process';\n\nconst ansiEscapeCodes =\n // eslint-disable-next-line no-control-regex\n /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;\n\n/**\n * Run once before running the suites in this file\n */\nbeforeAll(async () => {\n //\n});\n\n/**\n * Run before every test in every suite in this file\n */\nbeforeEach(async () => {\n // delete all journeys\n const deleteJourneysCmd = spawnSync('frodo', [\n 'journey',\n 'delete',\n '--all',\n 'frodo-dev',\n ]);\n if (deleteJourneysCmd.status && deleteJourneysCmd.status > 0) {\n console.error(deleteJourneysCmd.stderr.toString());\n console.log(deleteJourneysCmd.stdout.toString());\n }\n\n // import test journeys\n const importTestJourneysCmd = spawnSync(\n 'frodo',\n ['journey', 'import', '--all-separate', 'frodo-dev'],\n {\n cwd: `test/e2e/journey/delete`,\n }\n );\n if (importTestJourneysCmd.status && importTestJourneysCmd.status > 0) {\n console.error(importTestJourneysCmd.stderr.toString());\n console.log(importTestJourneysCmd.stdout.toString());\n }\n});\n\ndescribe('frodo journey delete', () => {\n it('\"frodo journey delete -i deleteMe\": should delete the deleteMe journey and all its nodes', (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-i',\n 'deleteMe',\n 'frodo-dev',\n ]);\n const expected = ['✔ Deleted deleteMe and 7/7 nodes.', ''].join('\\n');\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toContain(expected);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n\n it('\"frodo journey delete -i deleteMe --verbose\": should delete the deleteMe journey and all its nodes with verbose output', (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-i',\n 'deleteMe',\n '--verbose',\n 'frodo-dev',\n ]);\n const expected = [\n 'Deleted deleteMe (tree)\\n',\n 'Read 3c89697f-c114-4d36-907f-6c36f820cde7 (PageNode) from deleteMe\\n',\n 'Deleted 68e23c54-0c9e-4991-9b25-daf306d6ec65 (ZeroPageLoginNode) from deleteMe\\n',\n 'Deleted 9cd184fc-9453-4666-b667-2875d9301b5e (DataStoreDecisionNode) from deleteMe\\n',\n 'Read 2d564be0-325e-439a-aeb0-6c884270c756 (PageNode) from deleteMe\\n',\n 'Deleted 3c89697f-c114-4d36-907f-6c36f820cde7 (PageNode) from deleteMe\\n',\n 'Deleted fab1f53e-cda4-458a-b458-b07f75c75d5f (ValidatedUsernameNode) from deleteMe\\n',\n 'Deleted 2d564be0-325e-439a-aeb0-6c884270c756 (PageNode) from deleteMe\\n',\n 'Deleted 9d146833-e8d1-4802-8c35-0d7772290807 (DisplayUserNameNode) from deleteMe\\n',\n 'Deleted c22373f9-252b-4d0b-b80e-e4b392a17d98 (ValidatedPasswordNode) from deleteMe\\n',\n '✔ Deleted deleteMe and 7/7 nodes.\\n',\n ];\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n for (const str of expected) {\n expect(output).toContain(str);\n }\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n\n it('\"frodo journey delete -i deleteMe --no-deep\": should delete the deleteMe journey and none of its nodes', (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-i',\n 'deleteMe',\n '--no-deep',\n 'frodo-dev',\n ]);\n const expected = ['✔ Deleted deleteMe and 0/0 nodes.', ''].join('\\n');\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toContain(expected);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n\n it('\"frodo journey delete -i deleteMe --no-deep --verbose\": should delete the deleteMe journey and none of its nodes with verbose output', (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-i',\n 'deleteMe',\n '--no-deep',\n '--verbose',\n 'frodo-dev',\n ]);\n const expected = [\n 'Deleted deleteMe (tree)\\n',\n '✔ Deleted deleteMe and 0/0 nodes.\\n',\n ];\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n for (const str of expected) {\n expect(output).toContain(str);\n }\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n});\n\ndescribe('frodo journey delete --all', () => {\n it(\n '\"frodo journey delete -a\": should delete all journeys and all their nodes',\n (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-a',\n 'frodo-dev',\n ]);\n const expected = [\n '[========================================] 100% | 8/8 | Deleted 8/8 journeys and 51/51 nodes.',\n '',\n ].join('\\n');\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toContain(expected);\n done();\n } catch (error) {\n done(error);\n }\n });\n },\n // increase timeout for long-running test\n 10 * 1000\n );\n\n it(\n '\"frodo journey delete -a --verbose\": should delete all journeys and all their nodes with verbose output',\n (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-a',\n '--verbose',\n 'frodo-dev',\n ]);\n const expected = [\n '[----------------------------------------] 0% | 0/8 | Deleting journeys...\\n',\n 'Deleted ResetPassword (tree)\\n',\n 'Read cc3e1ed2-25f1-47bf-83c6-17084f8b2b2b (PageNode) from ResetPassword\\n',\n 'Deleted 06c97be5-7fdd-4739-aea1-ecc7fe082865 (EmailSuspendNode) from ResetPassword\\n',\n 'Deleted 989f0bf8-a328-4217-b82b-5275d79ca8bd (PatchObjectNode) from ResetPassword\\n',\n 'Deleted 21b8ddf3-0203-4ae1-ab05-51cf3a3a707a (IdentifyExistingUserNode) from ResetPassword\\n',\n 'Read e4c752f9-c625-48c9-9644-a58802fa9e9c (PageNode) from ResetPassword\\n',\n 'Deleted cc3e1ed2-25f1-47bf-83c6-17084f8b2b2b (PageNode) from ResetPassword\\n',\n 'Deleted 276afa7c-a680-4cf4-a5f6-d6c78191f5c9 (AttributeCollectorNode) from ResetPassword\\n',\n 'Deleted e4c752f9-c625-48c9-9644-a58802fa9e9c (PageNode) from ResetPassword\\n',\n 'Deleted 009c19c8-9572-47bb-adb2-1f092c559a43 (ValidatedPasswordNode) from ResetPassword\\n',\n 'Deleted Registration (tree)\\n',\n 'Read 0c091c49-f3af-48fb-ac6f-07fba0499dd6 (PageNode) from Registration\\n',\n 'Deleted d3ce2036-1523-4ce8-b1a2-895a2a036667 (AttributeCollectorNode) from Registration\\n',\n 'Deleted 0c091c49-f3af-48fb-ac6f-07fba0499dd6 (PageNode) from Registration\\n',\n 'Deleted 3d8709a1-f09f-4d1f-8094-2850e472c1db (ValidatedPasswordNode) from Registration\\n',\n 'Deleted 120c69d3-90b4-4ad4-b7af-380e8b119340 (KbaCreateNode) from Registration\\n',\n 'Deleted b4a0e915-c15d-4b83-9c9d-18347d645976 (AcceptTermsAndConditionsNode) from Registration\\n',\n 'Deleted ad5dcbb3-7335-49b7-b3e7-7d850bb88237 (CreateObjectNode) from Registration\\n',\n 'Deleted 7fcaf48e-a754-4959-858b-05b2933b825f (ValidatedUsernameNode) from Registration\\n',\n 'Deleted 97a15eb2-a015-4b6d-81a0-be78c3aa1a3b (IncrementLoginCountNode) from Registration\\n',\n 'Deleted PasswordGrant (tree)\\n',\n 'Read 6b9a715d-ea23-4eae-9a59-69797c147157 (PageNode) from PasswordGrant\\n',\n 'Deleted 59952413-9bc2-47e5-a9b2-b04c1d729e24 (UsernameCollectorNode) from PasswordGrant\\n',\n 'Deleted 6b9a715d-ea23-4eae-9a59-69797c147157 (PageNode) from PasswordGrant\\n',\n 'Deleted 8c217417-11dd-4a0f-a9e4-59c2390085be (PasswordCollectorNode) from PasswordGrant\\n',\n 'Deleted e2988546-a459-4c9a-b0e2-fa65ae136b34 (DataStoreDecisionNode) from PasswordGrant\\n',\n 'Deleted ProgressiveProfile (tree)\\n',\n 'Read a5aecad8-854a-4ed5-b719-ff6c90e858c0 (PageNode) from ProgressiveProfile\\n',\n 'Deleted 423a959a-a1b9-498a-b0f7-596b6b6e775a (PatchObjectNode) from ProgressiveProfile\\n',\n 'Deleted a1f45b44-5bf7-4c57-aa3f-75c619c7db8e (QueryFilterDecisionNode) from ProgressiveProfile\\n',\n 'Deleted 8afdaec3-275e-4301-bb53-34f03e6a4b29 (LoginCountDecisionNode) from ProgressiveProfile\\n',\n 'Deleted a5aecad8-854a-4ed5-b719-ff6c90e858c0 (PageNode) from ProgressiveProfile\\n',\n 'Deleted 0a042e10-b22e-4e02-86c4-65e26e775f7a (AttributeCollectorNode) from ProgressiveProfile\\n',\n 'Deleted ForgottenUsername (tree)\\n',\n 'Read 5e2a7c95-94af-4b23-8724-deb13853726a (PageNode) from ForgottenUsername\\n',\n 'Deleted 5e2a7c95-94af-4b23-8724-deb13853726a (PageNode) from ForgottenUsername\\n',\n 'Deleted 9f1e8d94-4922-481b-9e14-212b66548900 (AttributeCollectorNode) from ForgottenUsername\\n',\n 'Deleted bf9ea8d5-9802-4f26-9664-a21840faac23 (IdentifyExistingUserNode) from ForgottenUsername\\n',\n 'Deleted d9a79f01-2ce3-4be2-a28a-975f35c3c8ca (EmailSuspendNode) from ForgottenUsername\\n',\n 'Deleted b93ce36e-1976-4610-b24f-8d6760b5463b (InnerTreeEvaluatorNode) from ForgottenUsername\\n',\n 'Deleted deleteMe (tree)\\n',\n 'Read 3c89697f-c114-4d36-907f-6c36f820cde7 (PageNode) from deleteMe\\n',\n 'Deleted 9cd184fc-9453-4666-b667-2875d9301b5e (DataStoreDecisionNode) from deleteMe\\n',\n 'Read 2d564be0-325e-439a-aeb0-6c884270c756 (PageNode) from deleteMe\\n',\n 'Deleted 68e23c54-0c9e-4991-9b25-daf306d6ec65 (ZeroPageLoginNode) from deleteMe\\n',\n 'Deleted 3c89697f-c114-4d36-907f-6c36f820cde7 (PageNode) from deleteMe\\n',\n 'Deleted fab1f53e-cda4-458a-b458-b07f75c75d5f (ValidatedUsernameNode) from deleteMe\\n',\n 'Deleted c22373f9-252b-4d0b-b80e-e4b392a17d98 (ValidatedPasswordNode) from deleteMe\\n',\n 'Deleted 2d564be0-325e-439a-aeb0-6c884270c756 (PageNode) from deleteMe\\n',\n 'Deleted 9d146833-e8d1-4802-8c35-0d7772290807 (DisplayUserNameNode) from deleteMe\\n',\n 'Deleted UpdatePassword (tree)\\n',\n 'Read 20237b34-26cb-4a0b-958f-abb422290d42 (PageNode) from UpdatePassword\\n',\n 'Read d018fcd1-4e22-4160-8c41-63bee51c9cb3 (PageNode) from UpdatePassword\\n',\n 'Deleted 0f0904e6-1da3-4cdb-9abf-0d2545016fab (AttributePresentDecisionNode) from UpdatePassword\\n',\n 'Deleted 20237b34-26cb-4a0b-958f-abb422290d42 (PageNode) from UpdatePassword\\n',\n 'Deleted 7d1deabe-cd98-49c8-943f-ca12305775f3 (DataStoreDecisionNode) from UpdatePassword\\n',\n 'Deleted fe2962fc-4db3-4066-8624-553649afc438 (ValidatedPasswordNode) from UpdatePassword\\n',\n 'Deleted 3990ce1f-cce6-435b-ae1c-f138e89411c1 (PatchObjectNode) from UpdatePassword\\n',\n 'Deleted a3d97b53-e38a-4b24-aed0-a021050eb744 (EmailSuspendNode) from UpdatePassword\\n',\n 'Deleted d018fcd1-4e22-4160-8c41-63bee51c9cb3 (PageNode) from UpdatePassword\\n',\n 'Deleted 21a99653-a7a7-47ee-b650-f493a84bba09 (ValidatedPasswordNode) from UpdatePassword\\n',\n 'Deleted d1b79744-493a-44fe-bc26-7d324a8caa4e (SessionDataNode) from UpdatePassword\\n',\n 'Deleted Login (tree)\\n',\n 'Read a12bc72f-ad97-4f1e-a789-a1fa3dd566c8 (PageNode) from Login\\n',\n 'Deleted 33b24514-3e50-4180-8f08-ab6f4e51b07e (InnerTreeEvaluatorNode) from Login\\n',\n 'Deleted 2998c1c9-f4c8-4a00-b2c6-3426783ee49d (DataStoreDecisionNode) from Login\\n',\n 'Deleted 7354982f-57b6-4b04-9ddc-f1dd1e1e07d0 (ValidatedUsernameNode) from Login\\n',\n 'Deleted bba3e0d8-8525-4e82-bf48-ac17f7988917 (IncrementLoginCountNode) from Login\\n',\n 'Deleted 0c80c39b-4813-4e67-b4fb-5a0bba85f994 (ValidatedPasswordNode) from Login\\n',\n 'Deleted a12bc72f-ad97-4f1e-a789-a1fa3dd566c8 (PageNode) from Login\\n',\n '[========================================] 100% | 8/8 | Deleted 8/8 journeys and 51/51 nodes.\\n',\n ];\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n for (const str of expected) {\n expect(output).toContain(str);\n }\n done();\n } catch (error) {\n done(error);\n }\n });\n },\n // increase timeout for long-running test\n 10 * 1000\n );\n\n it('\"frodo journey delete -a --no-deep\": should delete all journeys but none of their nodes', (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-a',\n '--no-deep',\n 'frodo-dev',\n ]);\n const expected = [\n '[========================================] 100% | 8/8 | Deleted 8/8 journeys and 0/0 nodes.',\n '',\n ].join('\\n');\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toContain(expected);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n\n it('\"frodo journey delete -a --no-deep --verbose\": should delete all journeys but none of their nodes with verbose output', (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-a',\n '--no-deep',\n '--verbose',\n 'frodo-dev',\n ]);\n const expected = [\n '[----------------------------------------] 0% | 0/8 | Deleting journeys...\\n',\n 'Deleted ResetPassword (tree)\\n',\n 'Deleted Registration (tree)\\n',\n 'Deleted PasswordGrant (tree)\\n',\n 'Deleted ProgressiveProfile (tree)\\n',\n 'Deleted ForgottenUsername (tree)\\n',\n 'Deleted deleteMe (tree)\\n',\n 'Deleted UpdatePassword (tree)\\n',\n 'Deleted Login (tree)\\n',\n '[========================================] 100% | 8/8 | Deleted 8/8 journeys and 0/0 nodes.\\n',\n ];\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n for (const str of expected) {\n expect(output).toContain(str);\n }\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n});\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"journey-list.e2e.test_.js","names":["spawn","spawnSync","ansiEscapeCodes","beforeAll","deleteJourneysCmd","status","console","error","stderr","toString","log","stdout","importBaselineJourneysCmd","cwd","importTestJourneysCmd","describe","it","done","journeyList","expected","join","chunks","on","chunk","push","output","Buffer","concat","expect","toBe","expectedLong","replace"],"sources":["cli/journey/journey-list.e2e.test_.ts"],"sourcesContent":["/* eslint-disable no-console */\n// import { jest } from '@jest/globals';\nimport { spawn, spawnSync } from 'child_process';\n\nconst ansiEscapeCodes =\n // eslint-disable-next-line no-control-regex\n /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;\n\n/**\n * delete all journeys and import baseline and additional test journeys\n */\nbeforeAll(async () => {\n // delete all journeys\n const deleteJourneysCmd = spawnSync('frodo', [\n 'journey',\n 'delete',\n '--all',\n 'frodo-dev',\n ]);\n if (deleteJourneysCmd.status && deleteJourneysCmd.status > 0) {\n console.error(deleteJourneysCmd.stderr.toString());\n console.log(deleteJourneysCmd.stdout.toString());\n }\n\n // import baseline journeys\n const importBaselineJourneysCmd = spawnSync(\n 'frodo',\n ['journey', 'import', '--all-separate', 'frodo-dev'],\n {\n cwd: `test/e2e/journey/baseline`,\n }\n );\n if (\n importBaselineJourneysCmd.status &&\n importBaselineJourneysCmd.status > 0\n ) {\n console.error(importBaselineJourneysCmd.stderr.toString());\n console.log(importBaselineJourneysCmd.stdout.toString());\n }\n\n // import additional test journeys\n const importTestJourneysCmd = spawnSync(\n 'frodo',\n ['journey', 'import', '--all-separate', 'frodo-dev'],\n {\n cwd: `test/e2e/journey/list`,\n }\n );\n if (importTestJourneysCmd.status && importTestJourneysCmd.status > 0) {\n console.error(importTestJourneysCmd.stderr.toString());\n console.log(importTestJourneysCmd.stdout.toString());\n }\n});\n\ndescribe('frodo journey list', () => {\n it('\"frodo journey list\": should list the names of the default journeys', (done) => {\n const journeyList = spawn('frodo', ['journey', 'list', 'frodo-dev']);\n const expected = [\n 'Disabled',\n 'ForgottenUsername',\n 'Login',\n 'PasswordGrant',\n 'ProgressiveProfile',\n 'Registration',\n 'ResetPassword',\n 'UpdatePassword',\n '',\n ].join('\\n');\n\n const chunks: Uint8Array[] = [];\n journeyList.stdout.on('data', (chunk) => {\n chunks.push(chunk);\n });\n\n journeyList.stdout.on('end', () => {\n const output = Buffer.concat(chunks).toString();\n try {\n expect(output).toBe(expected);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n\n const expectedLong = [\n 'Listing journeys in realm \"alpha\"...',\n 'Name │Status │Tags ',\n 'Disabled │disabled│Prototype ',\n 'ForgottenUsername │enabled │Username Reset ',\n 'Login │enabled │Authentication ',\n 'PasswordGrant │enabled │ ',\n 'ProgressiveProfile│enabled │Progressive Profile',\n 'Registration │enabled │Registration ',\n 'ResetPassword │enabled │Password Reset ',\n 'UpdatePassword │enabled │Password Reset ',\n '',\n ].join('\\n');\n\n it('\"frodo journey list -l\": should list the names, status, and tags of the default journeys', (done) => {\n const journeyList = spawn('frodo', ['journey', 'list', '-l', 'frodo-dev']);\n\n const chunks: Uint8Array[] = [];\n journeyList.stdout.on('data', (chunk) => {\n chunks.push(chunk);\n });\n\n journeyList.stdout.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toBe(expectedLong);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n\n it('\"frodo journey list --long\": should list the names, status, and tags of the default journeys', (done) => {\n const journeyList = spawn('frodo', [\n 'journey',\n 'list',\n '--long',\n 'frodo-dev',\n ]);\n\n const chunks: Uint8Array[] = [];\n journeyList.stdout.on('data', (chunk) => {\n chunks.push(chunk);\n });\n\n journeyList.stdout.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toBe(expectedLong);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n});\n"],"mappings":"AAAA;AACA;AACA,SAASA,KAAK,EAAEC,SAAS,QAAQ,eAAe;AAEhD,MAAMC,eAAe;AACnB;AACA,6EAA6E;;AAE/E;AACA;AACA;AACAC,SAAS,CAAC,YAAY;EACpB;EACA,MAAMC,iBAAiB,GAAGH,SAAS,CAAC,OAAO,EAAE,CAC3C,SAAS,EACT,QAAQ,EACR,OAAO,EACP,WAAW,CACZ,CAAC;EACF,IAAIG,iBAAiB,CAACC,MAAM,IAAID,iBAAiB,CAACC,MAAM,GAAG,CAAC,EAAE;IAC5DC,OAAO,CAACC,KAAK,CAACH,iBAAiB,CAACI,MAAM,CAACC,QAAQ,EAAE,CAAC;IAClDH,OAAO,CAACI,GAAG,CAACN,iBAAiB,CAACO,MAAM,CAACF,QAAQ,EAAE,CAAC;EAClD;;EAEA;EACA,MAAMG,yBAAyB,GAAGX,SAAS,CACzC,OAAO,EACP,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,CAAC,EACpD;IACEY,GAAG,EAAG;EACR,CAAC,CACF;EACD,IACED,yBAAyB,CAACP,MAAM,IAChCO,yBAAyB,CAACP,MAAM,GAAG,CAAC,EACpC;IACAC,OAAO,CAACC,KAAK,CAACK,yBAAyB,CAACJ,MAAM,CAACC,QAAQ,EAAE,CAAC;IAC1DH,OAAO,CAACI,GAAG,CAACE,yBAAyB,CAACD,MAAM,CAACF,QAAQ,EAAE,CAAC;EAC1D;;EAEA;EACA,MAAMK,qBAAqB,GAAGb,SAAS,CACrC,OAAO,EACP,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,CAAC,EACpD;IACEY,GAAG,EAAG;EACR,CAAC,CACF;EACD,IAAIC,qBAAqB,CAACT,MAAM,IAAIS,qBAAqB,CAACT,MAAM,GAAG,CAAC,EAAE;IACpEC,OAAO,CAACC,KAAK,CAACO,qBAAqB,CAACN,MAAM,CAACC,QAAQ,EAAE,CAAC;IACtDH,OAAO,CAACI,GAAG,CAACI,qBAAqB,CAACH,MAAM,CAACF,QAAQ,EAAE,CAAC;EACtD;AACF,CAAC,CAAC;AAEFM,QAAQ,CAAC,oBAAoB,EAAE,MAAM;EACnCC,EAAE,CAAC,qEAAqE,EAAGC,IAAI,IAAK;IAClF,MAAMC,WAAW,GAAGlB,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACpE,MAAMmB,QAAQ,GAAG,CACf,UAAU,EACV,mBAAmB,EACnB,OAAO,EACP,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,EAAE,CACH,CAACC,IAAI,CAAC,IAAI,CAAC;IAEZ,MAAMC,MAAoB,GAAG,EAAE;IAC/BH,WAAW,CAACP,MAAM,CAACW,EAAE,CAAC,MAAM,EAAGC,KAAK,IAAK;MACvCF,MAAM,CAACG,IAAI,CAACD,KAAK,CAAC;IACpB,CAAC,CAAC;IAEFL,WAAW,CAACP,MAAM,CAACW,EAAE,CAAC,KAAK,EAAE,MAAM;MACjC,MAAMG,MAAM,GAAGC,MAAM,CAACC,MAAM,CAACN,MAAM,CAAC,CAACZ,QAAQ,EAAE;MAC/C,IAAI;QACFmB,MAAM,CAACH,MAAM,CAAC,CAACI,IAAI,CAACV,QAAQ,CAAC;QAC7BF,IAAI,EAAE;MACR,CAAC,CAAC,OAAOV,KAAK,EAAE;QACdU,IAAI,CAACV,KAAK,CAAC;MACb;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMuB,YAAY,GAAG,CACnB,sCAAsC,EACtC,iDAAiD,EACjD,iDAAiD,EACjD,iDAAiD,EACjD,iDAAiD,EACjD,iDAAiD,EACjD,iDAAiD,EACjD,iDAAiD,EACjD,iDAAiD,EACjD,iDAAiD,EACjD,EAAE,CACH,CAACV,IAAI,CAAC,IAAI,CAAC;EAEZJ,EAAE,CAAC,0FAA0F,EAAGC,IAAI,IAAK;IACvG,MAAMC,WAAW,GAAGlB,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAE1E,MAAMqB,MAAoB,GAAG,EAAE;IAC/BH,WAAW,CAACP,MAAM,CAACW,EAAE,CAAC,MAAM,EAAGC,KAAK,IAAK;MACvCF,MAAM,CAACG,IAAI,CAACD,KAAK,CAAC;IACpB,CAAC,CAAC;IAEFL,WAAW,CAACP,MAAM,CAACW,EAAE,CAAC,KAAK,EAAE,MAAM;MACjC,MAAMG,MAAM,GAAGC,MAAM,CAACC,MAAM,CAACN,MAAM,CAAC,CACjCZ,QAAQ,EAAE,CACVsB,OAAO,CAAC7B,eAAe,EAAE,EAAE,CAAC;MAC/B,IAAI;QACF0B,MAAM,CAACH,MAAM,CAAC,CAACI,IAAI,CAACC,YAAY,CAAC;QACjCb,IAAI,EAAE;MACR,CAAC,CAAC,OAAOV,KAAK,EAAE;QACdU,IAAI,CAACV,KAAK,CAAC;MACb;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFS,EAAE,CAAC,8FAA8F,EAAGC,IAAI,IAAK;IAC3G,MAAMC,WAAW,GAAGlB,KAAK,CAAC,OAAO,EAAE,CACjC,SAAS,EACT,MAAM,EACN,QAAQ,EACR,WAAW,CACZ,CAAC;IAEF,MAAMqB,MAAoB,GAAG,EAAE;IAC/BH,WAAW,CAACP,MAAM,CAACW,EAAE,CAAC,MAAM,EAAGC,KAAK,IAAK;MACvCF,MAAM,CAACG,IAAI,CAACD,KAAK,CAAC;IACpB,CAAC,CAAC;IAEFL,WAAW,CAACP,MAAM,CAACW,EAAE,CAAC,KAAK,EAAE,MAAM;MACjC,MAAMG,MAAM,GAAGC,MAAM,CAACC,MAAM,CAACN,MAAM,CAAC,CACjCZ,QAAQ,EAAE,CACVsB,OAAO,CAAC7B,eAAe,EAAE,EAAE,CAAC;MAC/B,IAAI;QACF0B,MAAM,CAACH,MAAM,CAAC,CAACI,IAAI,CAACC,YAAY,CAAC;QACjCb,IAAI,EAAE;MACR,CAAC,CAAC,OAAOV,KAAK,EAAE;QACdU,IAAI,CAACV,KAAK,CAAC;MACb;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC"}
|