@rockcarver/frodo-cli 0.18.2-7 → 0.18.2-9
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 +12 -1
- package/esm/app.js +2 -2
- package/esm/app.js.map +1 -1
- package/esm/cli/_template/something-delete.js +7 -4
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +7 -4
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +7 -4
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +7 -4
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +7 -4
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +7 -4
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +7 -4
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-else.js.map +1 -1
- package/esm/cli/_template/something-export.js +7 -4
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +7 -4
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +7 -4
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +7 -4
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +7 -4
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +7 -4
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +7 -4
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +7 -4
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/_template/something-other.js.map +1 -1
- package/esm/cli/_template/something.js +0 -2
- package/esm/cli/_template/something.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +5 -3
- 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 +7 -11
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-get-access-token.js +5 -3
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +5 -3
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +5 -3
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +5 -3
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +5 -3
- 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 +5 -3
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +5 -3
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +5 -3
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +5 -3
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +5 -3
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin.js +0 -2
- package/esm/cli/admin/admin.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +9 -7
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +7 -4
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +11 -6
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +9 -7
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +7 -4
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +11 -6
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +13 -7
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +5 -3
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-gateway.js.map +1 -1
- package/esm/cli/agent/agent-import.js +13 -7
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +9 -7
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +7 -4
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +11 -6
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +13 -7
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +5 -3
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-java.js.map +1 -1
- package/esm/cli/agent/agent-list.js +5 -3
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +9 -7
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +7 -4
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +11 -6
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +13 -7
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +5 -3
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/agent/agent-web.js.map +1 -1
- package/esm/cli/agent/agent.js +0 -2
- package/esm/cli/agent/agent.js.map +1 -1
- package/esm/cli/app/app-delete.js +7 -4
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +7 -4
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +11 -6
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +9 -5
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +5 -3
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/app/app.js +8 -5
- package/esm/cli/app/app.js.map +1 -1
- package/esm/cli/cmd_common.js +2 -1
- package/esm/cli/cmd_common.js.map +1 -1
- package/esm/cli/conn/conn-add.js +5 -5
- package/esm/cli/conn/conn-add.js.map +1 -1
- package/esm/cli/conn/conn-delete.js +5 -2
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-describe.js +5 -2
- package/esm/cli/conn/conn-describe.js.map +1 -1
- package/esm/cli/conn/conn-list.js +7 -3
- package/esm/cli/conn/conn-list.js.map +1 -1
- package/esm/cli/conn/conn.js +2 -3
- package/esm/cli/conn/conn.js.map +1 -1
- package/esm/cli/email/email-template-export.js +13 -12
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +15 -14
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +7 -7
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/email/email-template.js.map +1 -1
- package/esm/cli/email/email.js +0 -2
- package/esm/cli/email/email.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +9 -11
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +5 -3
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +9 -5
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +5 -3
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +7 -4
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +7 -4
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +5 -3
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +5 -3
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +7 -4
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +5 -3
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +7 -4
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +7 -4
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +5 -3
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-version.js.map +1 -1
- package/esm/cli/esv/esv-secret.js +4 -1
- package/esm/cli/esv/esv-secret.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +5 -3
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +9 -5
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +5 -3
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +7 -4
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +7 -4
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +5 -3
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +7 -4
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/esv/esv-variable.js +4 -1
- package/esm/cli/esv/esv-variable.js.map +1 -1
- package/esm/cli/esv/esv.js +0 -2
- package/esm/cli/esv/esv.js.map +1 -1
- package/esm/cli/idm/idm-count.js +5 -3
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +11 -6
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +11 -6
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +7 -4
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idm/idm.js +2 -3
- package/esm/cli/idm/idm.js.map +1 -1
- package/esm/cli/idp/idp-export.js +11 -6
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +13 -7
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +7 -4
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/idp/idp.js +0 -2
- package/esm/cli/idp/idp.js.map +1 -1
- package/esm/cli/info/info.js +0 -5
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.e2e.test_.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +9 -5
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +31 -28
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +9 -6
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +9 -6
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +11 -6
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +13 -7
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.e2e.test_.js.map +1 -1
- package/esm/cli/journey/journey-list.js +5 -3
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +5 -5
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/journey/journey.js +0 -2
- package/esm/cli/journey/journey.js.map +1 -1
- package/esm/cli/logging/logs-fetch.js +2 -11
- package/esm/cli/logging/logs-fetch.js.map +1 -1
- package/esm/cli/logging/logs-list.js +0 -5
- package/esm/cli/logging/logs-list.js.map +1 -1
- package/esm/cli/logging/logs-tail.js +0 -4
- package/esm/cli/logging/logs-tail.js.map +1 -1
- package/esm/cli/logging/logs.js +2 -4
- package/esm/cli/logging/logs.js.map +1 -1
- package/esm/cli/realm/realm-add-custom-domain.js +5 -3
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +5 -3
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +5 -3
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +5 -3
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm.js +5 -4
- package/esm/cli/realm/realm.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +11 -6
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +13 -7
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +5 -3
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-cot.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +11 -6
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +5 -3
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +13 -7
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +13 -7
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +5 -3
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +7 -4
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/saml/saml-metadata.js.map +1 -1
- package/esm/cli/saml/saml.js +0 -2
- package/esm/cli/saml/saml.js.map +1 -1
- package/esm/cli/script/script-delete.js +7 -4
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +7 -4
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +15 -8
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +7 -4
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +5 -3
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/script/script.js +6 -4
- package/esm/cli/script/script.js.map +1 -1
- package/esm/cli/service/service-delete.js +0 -1
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +11 -6
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +13 -6
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +0 -1
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/service/service.js +0 -2
- package/esm/cli/service/service.js.map +1 -1
- package/esm/cli/theme/theme-delete.e2e.test_.js.map +1 -1
- package/esm/cli/theme/theme-delete.js +16 -14
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +17 -15
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +19 -17
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.e2e.test_.js.map +1 -1
- package/esm/cli/theme/theme-list.js +7 -7
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/cli/theme/theme.js +0 -2
- package/esm/cli/theme/theme.js.map +1 -1
- package/esm/ops/AgentOps.js +48 -126
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +2 -2
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +270 -6
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdpOps.js +2 -2
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +96 -152
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/NodeOps.js +6 -12
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +25 -78
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/Saml2Ops.test_.js.map +1 -1
- package/esm/ops/ScriptOps.js +3 -3
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/ServiceOps.js +10 -31
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +331 -2
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/utils/Wordwrap.js.map +1 -1
- package/esm/storage/StaticStorage.js.map +1 -1
- package/esm/utils/Config.js +0 -9
- package/esm/utils/Config.js.map +1 -1
- package/esm/utils/Console.js +32 -79
- package/esm/utils/Console.js.map +1 -1
- package/esm/utils/ExportImportUtils.js +46 -0
- package/esm/utils/ExportImportUtils.js.map +1 -0
- package/esm/utils/Version.js +6 -24
- package/esm/utils/Version.js.map +1 -1
- package/package.json +18 -17
package/esm/utils/Console.js
CHANGED
|
@@ -8,23 +8,20 @@ Color.enable();
|
|
|
8
8
|
const {
|
|
9
9
|
appendTextToFile
|
|
10
10
|
} = ExportImportUtils;
|
|
11
|
+
|
|
11
12
|
/**
|
|
12
13
|
* Output a message in default color to stdout or append to `state.default.session.getOutputFile()`
|
|
13
14
|
* @param {string | object} message the message
|
|
14
15
|
*/
|
|
15
|
-
|
|
16
16
|
function data(message, newline = true) {
|
|
17
17
|
if (!message) return;
|
|
18
|
-
|
|
19
18
|
if (state.default.session.getOutputFile()) {
|
|
20
19
|
if (typeof message === 'object') {
|
|
21
20
|
message = JSON.stringify(message, null, 2);
|
|
22
21
|
}
|
|
23
|
-
|
|
24
22
|
if (newline) {
|
|
25
23
|
message += '\n';
|
|
26
24
|
}
|
|
27
|
-
|
|
28
25
|
appendTextToFile(message, state.default.session.getOutputFile());
|
|
29
26
|
} else if (typeof message === 'object') {
|
|
30
27
|
console.dir(message, {
|
|
@@ -36,15 +33,13 @@ function data(message, newline = true) {
|
|
|
36
33
|
process.stdout.write(message);
|
|
37
34
|
}
|
|
38
35
|
}
|
|
36
|
+
|
|
39
37
|
/**
|
|
40
38
|
* Output a default color message to stderr
|
|
41
39
|
* @param {Object} message the message
|
|
42
40
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
45
41
|
function text(message, newline = true) {
|
|
46
42
|
if (!message) return;
|
|
47
|
-
|
|
48
43
|
if (typeof message === 'object') {
|
|
49
44
|
console.dir(message, {
|
|
50
45
|
depth: 3
|
|
@@ -55,15 +50,13 @@ function text(message, newline = true) {
|
|
|
55
50
|
process.stderr.write(message);
|
|
56
51
|
}
|
|
57
52
|
}
|
|
53
|
+
|
|
58
54
|
/**
|
|
59
55
|
* Output a message in bright cyan to stderr
|
|
60
56
|
* @param {Object} message the message
|
|
61
57
|
*/
|
|
62
|
-
|
|
63
|
-
|
|
64
58
|
function info(message, newline = true) {
|
|
65
59
|
if (!message) return;
|
|
66
|
-
|
|
67
60
|
if (typeof message === 'object') {
|
|
68
61
|
console.dir(message, {
|
|
69
62
|
depth: 3
|
|
@@ -74,15 +67,13 @@ function info(message, newline = true) {
|
|
|
74
67
|
process.stderr.write(message['brightCyan']);
|
|
75
68
|
}
|
|
76
69
|
}
|
|
70
|
+
|
|
77
71
|
/**
|
|
78
72
|
* Output a message in yellow to stderr
|
|
79
73
|
* @param {Object} message the message
|
|
80
74
|
*/
|
|
81
|
-
|
|
82
|
-
|
|
83
75
|
function warn(message, newline = true) {
|
|
84
76
|
if (!message) return;
|
|
85
|
-
|
|
86
77
|
if (typeof message === 'object') {
|
|
87
78
|
console.dir(message, {
|
|
88
79
|
depth: 3
|
|
@@ -93,15 +84,13 @@ function warn(message, newline = true) {
|
|
|
93
84
|
process.stderr.write(message['yellow']);
|
|
94
85
|
}
|
|
95
86
|
}
|
|
87
|
+
|
|
96
88
|
/**
|
|
97
89
|
* Output a message in bright red to stderr
|
|
98
90
|
* @param {Object} message the message
|
|
99
91
|
*/
|
|
100
|
-
|
|
101
|
-
|
|
102
92
|
function error(message, newline = true) {
|
|
103
93
|
if (!message) return;
|
|
104
|
-
|
|
105
94
|
if (typeof message === 'object') {
|
|
106
95
|
console.dir(message, {
|
|
107
96
|
depth: 3
|
|
@@ -112,15 +101,13 @@ function error(message, newline = true) {
|
|
|
112
101
|
process.stderr.write(message['brightRed']);
|
|
113
102
|
}
|
|
114
103
|
}
|
|
104
|
+
|
|
115
105
|
/**
|
|
116
106
|
* Output a debug message
|
|
117
107
|
* @param {string | object} message the message
|
|
118
108
|
*/
|
|
119
|
-
|
|
120
|
-
|
|
121
109
|
function debug(message, newline = true) {
|
|
122
110
|
if (!message) return;
|
|
123
|
-
|
|
124
111
|
if (typeof message === 'object') {
|
|
125
112
|
console.dir(message, {
|
|
126
113
|
depth: 6
|
|
@@ -131,53 +118,49 @@ function debug(message, newline = true) {
|
|
|
131
118
|
process.stderr.write(message['brightMagenta']);
|
|
132
119
|
}
|
|
133
120
|
}
|
|
121
|
+
|
|
134
122
|
/**
|
|
135
123
|
* Output a curlirize message
|
|
136
124
|
* @param {string} message the message
|
|
137
125
|
*/
|
|
138
|
-
|
|
139
|
-
|
|
140
126
|
function curlirize(message) {
|
|
141
127
|
if (!message) return;
|
|
142
128
|
console.error(message['brightBlue']);
|
|
143
129
|
}
|
|
130
|
+
|
|
144
131
|
/**
|
|
145
132
|
* Output a message in default color to stderr
|
|
146
133
|
* @param {Object} message the message
|
|
147
134
|
*/
|
|
148
|
-
|
|
149
|
-
|
|
150
135
|
export function verboseMessage(message) {
|
|
151
136
|
if (!message) return;
|
|
152
|
-
|
|
153
137
|
if (state.default.session.getVerbose()) {
|
|
154
138
|
text(message);
|
|
155
139
|
}
|
|
156
140
|
}
|
|
141
|
+
|
|
157
142
|
/**
|
|
158
143
|
* Output a debug message
|
|
159
144
|
* @param {Object} message the message
|
|
160
145
|
*/
|
|
161
|
-
|
|
162
146
|
export function debugMessage(message) {
|
|
163
147
|
if (!message) return;
|
|
164
|
-
|
|
165
148
|
if (state.default.session.getDebug()) {
|
|
166
149
|
debug(message);
|
|
167
150
|
}
|
|
168
151
|
}
|
|
152
|
+
|
|
169
153
|
/**
|
|
170
154
|
* Output a curlirize message
|
|
171
155
|
* @param {Object} message the message
|
|
172
156
|
*/
|
|
173
|
-
|
|
174
157
|
export function curlirizeMessage(message) {
|
|
175
158
|
if (!message) return;
|
|
176
|
-
|
|
177
159
|
if (state.default.session.getCurlirize()) {
|
|
178
160
|
curlirize(message);
|
|
179
161
|
}
|
|
180
162
|
}
|
|
163
|
+
|
|
181
164
|
/**
|
|
182
165
|
* Prints a string message to console
|
|
183
166
|
*
|
|
@@ -187,33 +170,28 @@ export function curlirizeMessage(message) {
|
|
|
187
170
|
* @param {boolean} [newline=true] Whether to add a newline at the end of message
|
|
188
171
|
*
|
|
189
172
|
*/
|
|
190
|
-
|
|
191
173
|
export function printMessage(message, type = 'text', newline = true) {
|
|
192
174
|
switch (type) {
|
|
193
175
|
case 'data':
|
|
194
176
|
data(message, newline);
|
|
195
177
|
break;
|
|
196
|
-
|
|
197
178
|
case 'text':
|
|
198
179
|
text(message, newline);
|
|
199
180
|
break;
|
|
200
|
-
|
|
201
181
|
case 'info':
|
|
202
182
|
info(message, newline);
|
|
203
183
|
break;
|
|
204
|
-
|
|
205
184
|
case 'warn':
|
|
206
185
|
warn(message, newline);
|
|
207
186
|
break;
|
|
208
|
-
|
|
209
187
|
case 'error':
|
|
210
188
|
error(message, newline);
|
|
211
189
|
break;
|
|
212
|
-
|
|
213
190
|
default:
|
|
214
191
|
text(message, newline);
|
|
215
192
|
}
|
|
216
193
|
}
|
|
194
|
+
|
|
217
195
|
/**
|
|
218
196
|
* Creates a progress bar on stderr
|
|
219
197
|
*
|
|
@@ -225,45 +203,41 @@ export function printMessage(message, type = 'text', newline = true) {
|
|
|
225
203
|
* @param {Object} options progress bar configuration options
|
|
226
204
|
*
|
|
227
205
|
*/
|
|
228
|
-
|
|
229
206
|
export function createProgressBar(total, message = null, options = {
|
|
230
207
|
format: '[{bar}] {percentage}% | {value}/{total} | {data}',
|
|
231
208
|
noTTYOutput: true
|
|
232
209
|
}) {
|
|
233
210
|
let opt = options;
|
|
234
|
-
|
|
235
211
|
if (message == null) {
|
|
236
212
|
opt = {
|
|
237
213
|
format: '[{bar}] {percentage}% | {value}/{total}',
|
|
238
214
|
noTTYOutput: true
|
|
239
215
|
};
|
|
240
216
|
}
|
|
241
|
-
|
|
242
217
|
let pBar = state.default.session.getItem('progressBar');
|
|
243
218
|
if (!pBar) pBar = new SingleBar(opt, Presets.legacy); // create only when needed
|
|
244
|
-
|
|
245
219
|
pBar.start(total, 0, {
|
|
246
220
|
data: message
|
|
247
221
|
});
|
|
248
222
|
state.default.session.setItem('progressBar', pBar);
|
|
249
223
|
}
|
|
224
|
+
|
|
250
225
|
/**
|
|
251
226
|
* Updates the progress bar by 1
|
|
252
227
|
* @param {string} message optional message to update the progress bar
|
|
253
228
|
*
|
|
254
229
|
*/
|
|
255
|
-
|
|
256
230
|
export function updateProgressBar(message = null) {
|
|
257
231
|
const pBar = state.default.session.getItem('progressBar');
|
|
258
232
|
if (message) pBar.increment({
|
|
259
233
|
data: message
|
|
260
234
|
});else pBar.increment();
|
|
261
235
|
}
|
|
236
|
+
|
|
262
237
|
/**
|
|
263
238
|
* Stop and hide the progress bar
|
|
264
239
|
* @param {*} message optional message to update the progress bar
|
|
265
240
|
*/
|
|
266
|
-
|
|
267
241
|
export function stopProgressBar(message = null) {
|
|
268
242
|
const pBar = state.default.session.getItem('progressBar');
|
|
269
243
|
if (message) pBar.update({
|
|
@@ -271,23 +245,22 @@ export function stopProgressBar(message = null) {
|
|
|
271
245
|
});
|
|
272
246
|
pBar.stop();
|
|
273
247
|
}
|
|
248
|
+
|
|
274
249
|
/**
|
|
275
250
|
* Create the spinner
|
|
276
251
|
* @param {String} message optional spinner message
|
|
277
252
|
*/
|
|
278
|
-
|
|
279
253
|
export function showSpinner(message) {
|
|
280
254
|
const spinner = createSpinner(message).start();
|
|
281
255
|
state.default.session.setItem('Spinner', spinner);
|
|
282
256
|
}
|
|
257
|
+
|
|
283
258
|
/**
|
|
284
259
|
* Stop the spinner
|
|
285
260
|
* @param {String} message optional message to update the spinner
|
|
286
261
|
*/
|
|
287
|
-
|
|
288
262
|
export function stopSpinner(message = null) {
|
|
289
263
|
const spinner = state.default.session.getItem('Spinner');
|
|
290
|
-
|
|
291
264
|
if (spinner) {
|
|
292
265
|
let options = {};
|
|
293
266
|
if (message) options = {
|
|
@@ -296,14 +269,13 @@ export function stopSpinner(message = null) {
|
|
|
296
269
|
spinner.stop(options);
|
|
297
270
|
}
|
|
298
271
|
}
|
|
272
|
+
|
|
299
273
|
/**
|
|
300
274
|
* Succeed the spinner. Stop and render success checkmark with optional message.
|
|
301
275
|
* @param {String} message optional message to update the spinner
|
|
302
276
|
*/
|
|
303
|
-
|
|
304
277
|
export function succeedSpinner(message = null) {
|
|
305
278
|
const spinner = state.default.session.getItem('Spinner');
|
|
306
|
-
|
|
307
279
|
if (spinner) {
|
|
308
280
|
let options = {};
|
|
309
281
|
if (message) options = {
|
|
@@ -312,14 +284,13 @@ export function succeedSpinner(message = null) {
|
|
|
312
284
|
spinner.success(options);
|
|
313
285
|
}
|
|
314
286
|
}
|
|
287
|
+
|
|
315
288
|
/**
|
|
316
289
|
* Warn the spinner
|
|
317
290
|
* @param {String} message optional message to update the spinner
|
|
318
291
|
*/
|
|
319
|
-
|
|
320
292
|
export function warnSpinner(message = null) {
|
|
321
293
|
const spinner = state.default.session.getItem('Spinner');
|
|
322
|
-
|
|
323
294
|
if (spinner) {
|
|
324
295
|
let options = {};
|
|
325
296
|
if (message) options = {
|
|
@@ -328,14 +299,13 @@ export function warnSpinner(message = null) {
|
|
|
328
299
|
spinner.warn(options);
|
|
329
300
|
}
|
|
330
301
|
}
|
|
302
|
+
|
|
331
303
|
/**
|
|
332
304
|
* Fail the spinner
|
|
333
305
|
* @param {String} message optional message to update the spinner
|
|
334
306
|
*/
|
|
335
|
-
|
|
336
307
|
export function failSpinner(message = null) {
|
|
337
308
|
const spinner = state.default.session.getItem('Spinner');
|
|
338
|
-
|
|
339
309
|
if (spinner) {
|
|
340
310
|
let options = {};
|
|
341
311
|
if (message) options = {
|
|
@@ -344,14 +314,13 @@ export function failSpinner(message = null) {
|
|
|
344
314
|
spinner.error(options);
|
|
345
315
|
}
|
|
346
316
|
}
|
|
317
|
+
|
|
347
318
|
/**
|
|
348
319
|
* Spin the spinner
|
|
349
320
|
* @param {String} message optional message to update the spinner
|
|
350
321
|
*/
|
|
351
|
-
|
|
352
322
|
export function spinSpinner(message = null) {
|
|
353
323
|
const spinner = state.default.session.getItem('Spinner');
|
|
354
|
-
|
|
355
324
|
if (spinner) {
|
|
356
325
|
let options = {};
|
|
357
326
|
if (message) options = {
|
|
@@ -370,7 +339,6 @@ export function createProgressIndicator(type = 'determinate', total = 0, message
|
|
|
370
339
|
}
|
|
371
340
|
export function updateProgressIndicator(message) {
|
|
372
341
|
const progressBar = state.default.session.getItem('progressBar');
|
|
373
|
-
|
|
374
342
|
if (!progressBar) {
|
|
375
343
|
spinSpinner(message);
|
|
376
344
|
} else {
|
|
@@ -379,25 +347,20 @@ export function updateProgressIndicator(message) {
|
|
|
379
347
|
}
|
|
380
348
|
export function stopProgressIndicator(message, status = 'none') {
|
|
381
349
|
const progressBar = state.default.session.getItem('progressBar');
|
|
382
|
-
|
|
383
350
|
if (!progressBar) {
|
|
384
351
|
switch (status) {
|
|
385
352
|
case 'none':
|
|
386
353
|
stopSpinner(message);
|
|
387
354
|
break;
|
|
388
|
-
|
|
389
355
|
case 'success':
|
|
390
356
|
succeedSpinner(message);
|
|
391
357
|
break;
|
|
392
|
-
|
|
393
358
|
case 'warn':
|
|
394
359
|
warnSpinner(message);
|
|
395
360
|
break;
|
|
396
|
-
|
|
397
361
|
case 'fail':
|
|
398
362
|
failSpinner(message);
|
|
399
363
|
break;
|
|
400
|
-
|
|
401
364
|
default:
|
|
402
365
|
stopSpinner(message);
|
|
403
366
|
break;
|
|
@@ -406,12 +369,12 @@ export function stopProgressIndicator(message, status = 'none') {
|
|
|
406
369
|
stopProgressBar(message);
|
|
407
370
|
}
|
|
408
371
|
}
|
|
372
|
+
|
|
409
373
|
/**
|
|
410
374
|
* Create an empty table
|
|
411
375
|
* @param {string[]} head header row as an array of strings
|
|
412
376
|
* @returns {any} an empty table
|
|
413
377
|
*/
|
|
414
|
-
|
|
415
378
|
export function createTable(head) {
|
|
416
379
|
const table = new Table({
|
|
417
380
|
head,
|
|
@@ -439,11 +402,11 @@ export function createTable(head) {
|
|
|
439
402
|
});
|
|
440
403
|
return table;
|
|
441
404
|
}
|
|
405
|
+
|
|
442
406
|
/**
|
|
443
407
|
* Create a new key/value table
|
|
444
408
|
* @returns {any} an empty key/value table
|
|
445
409
|
*/
|
|
446
|
-
|
|
447
410
|
export function createKeyValueTable() {
|
|
448
411
|
const table = new Table({
|
|
449
412
|
chars: {
|
|
@@ -470,36 +433,33 @@ export function createKeyValueTable() {
|
|
|
470
433
|
});
|
|
471
434
|
return table;
|
|
472
435
|
}
|
|
436
|
+
|
|
473
437
|
/**
|
|
474
438
|
* Helper function to determine the total depth of an object
|
|
475
439
|
* @param {Object} object input object
|
|
476
440
|
* @returns {Number} total depth of the input object
|
|
477
441
|
*/
|
|
478
|
-
|
|
479
442
|
function getObjectDepth(object) {
|
|
480
443
|
return Object(object) === object ? 1 + Math.max(-1, ...Object.values(object).map(getObjectDepth)) : 0;
|
|
481
444
|
}
|
|
445
|
+
|
|
482
446
|
/**
|
|
483
447
|
* Helper function to determine if an object has values
|
|
484
448
|
* @param {Object} object input object
|
|
485
449
|
* @returns {boolean} true of the object or any of its sub-objects contain values, false otherwise
|
|
486
450
|
*/
|
|
487
|
-
|
|
488
|
-
|
|
489
451
|
function hasValues(object) {
|
|
490
452
|
let has = false;
|
|
491
453
|
const keys = Object.keys(object);
|
|
492
|
-
|
|
493
454
|
for (const key of keys) {
|
|
494
455
|
if (Object(object[key]) !== object[key]) {
|
|
495
456
|
return true;
|
|
496
457
|
}
|
|
497
|
-
|
|
498
458
|
has = has || hasValues(object[key]);
|
|
499
459
|
}
|
|
500
|
-
|
|
501
460
|
return has;
|
|
502
461
|
}
|
|
462
|
+
|
|
503
463
|
/**
|
|
504
464
|
* Helper function (recursive) to add rows to an object table
|
|
505
465
|
* @param {object} object object to render
|
|
@@ -508,12 +468,9 @@ function hasValues(object) {
|
|
|
508
468
|
* @param {any} table the object table to add the rows to
|
|
509
469
|
* @returns the updated object table
|
|
510
470
|
*/
|
|
511
|
-
|
|
512
|
-
|
|
513
471
|
function addRows(object, depth, level, table, keyMap) {
|
|
514
472
|
const space = ' ';
|
|
515
473
|
const keys = Object.keys(object);
|
|
516
|
-
|
|
517
474
|
for (const key of keys) {
|
|
518
475
|
if (Object(object[key]) !== object[key]) {
|
|
519
476
|
if (level === 1) {
|
|
@@ -526,7 +483,6 @@ function addRows(object, depth, level, table, keyMap) {
|
|
|
526
483
|
}
|
|
527
484
|
}
|
|
528
485
|
}
|
|
529
|
-
|
|
530
486
|
for (const key of keys) {
|
|
531
487
|
if (Object(object[key]) === object[key]) {
|
|
532
488
|
// only print header if there are any values below
|
|
@@ -534,28 +490,25 @@ function addRows(object, depth, level, table, keyMap) {
|
|
|
534
490
|
let indention = new Array(level).fill(space).join('');
|
|
535
491
|
if (level < 3) indention = `\n${indention}`;
|
|
536
492
|
table.push([indention.concat(keyMap[key] ? keyMap[key].brightCyan : key['brightCyan']), '']);
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
|
|
493
|
+
}
|
|
494
|
+
// eslint-disable-next-line no-param-reassign
|
|
540
495
|
table = addRows(object[key], depth, level + 1, table, keyMap);
|
|
541
496
|
}
|
|
542
497
|
}
|
|
543
|
-
|
|
544
498
|
return table;
|
|
545
499
|
}
|
|
500
|
+
|
|
546
501
|
/**
|
|
547
502
|
* Create and populate an object table from any JSON object. Use for describe commands.
|
|
548
503
|
* @param {Object} object JSON object to create
|
|
549
504
|
* @returns {any} a table that can be printed to the console
|
|
550
505
|
*/
|
|
551
|
-
|
|
552
|
-
|
|
553
506
|
export function createObjectTable(object, keyMap = {}) {
|
|
554
507
|
// eslint-disable-next-line no-param-reassign
|
|
555
|
-
const depth = getObjectDepth(object);
|
|
556
|
-
|
|
557
|
-
const level = 0;
|
|
558
|
-
|
|
508
|
+
const depth = getObjectDepth(object);
|
|
509
|
+
// eslint-disable-next-line no-param-reassign
|
|
510
|
+
const level = 0;
|
|
511
|
+
// eslint-disable-next-line no-param-reassign
|
|
559
512
|
const table = new Table({
|
|
560
513
|
chars: {
|
|
561
514
|
top: '',
|
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","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":"AAAA;AACA,SAASA,SAAS,EAAEC,OAAO,QAAQ,cAAc;AACjD,SAASC,aAAa,QAAQ,aAAa;AAC3C,OAAOC,KAAK,MAAM,YAAY;AAC9B,SAASC,iBAAiB,EAAEC,KAAK,QAAQ,uBAAuB;AAChE,OAAOC,KAAK,MAAM,QAAQ;AAE1BA,KAAK,CAACC,MAAM,EAAE;AAEd,MAAM;EAAEC;AAAiB,CAAC,GAAGJ,iBAAiB;;AAE9C;AACA;AACA;AACA;AACA,SAASK,IAAI,CAACC,OAAwB,EAAEC,OAAO,GAAG,IAAI,EAAE;EACtD,IAAI,CAACD,OAAO,EAAE;EACd,IAAIL,KAAK,CAACO,OAAO,CAACC,OAAO,CAACC,aAAa,EAAE,EAAE;IACzC,IAAI,OAAOJ,OAAO,KAAK,QAAQ,EAAE;MAC/BA,OAAO,GAAGK,IAAI,CAACC,SAAS,CAACN,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C;IACA,IAAIC,OAAO,EAAE;MACXD,OAAO,IAAI,IAAI;IACjB;IACAF,gBAAgB,CAACE,OAAO,EAAEL,KAAK,CAACO,OAAO,CAACC,OAAO,CAACC,aAAa,EAAE,CAAC;EAClE,CAAC,MAAM,IAAI,OAAOJ,OAAO,KAAK,QAAQ,EAAE;IACtCO,OAAO,CAACC,GAAG,CAACR,OAAO,EAAE;MAAES,KAAK,EAAE;IAAE,CAAC,CAAC;EACpC,CAAC,MAAM,IAAIR,OAAO,EAAE;IAClBM,OAAO,CAACG,GAAG,CAACV,OAAO,CAAC;EACtB,CAAC,MAAM;IACLW,OAAO,CAACC,MAAM,CAACC,KAAK,CAACb,OAAO,CAAC;EAC/B;AACF;;AAEA;AACA;AACA;AACA;AACA,SAASc,IAAI,CAACd,OAAwB,EAAEC,OAAO,GAAG,IAAI,EAAE;EACtD,IAAI,CAACD,OAAO,EAAE;EACd,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;IAC/BO,OAAO,CAACC,GAAG,CAACR,OAAO,EAAE;MAAES,KAAK,EAAE;IAAE,CAAC,CAAC;EACpC,CAAC,MAAM,IAAIR,OAAO,EAAE;IAClBM,OAAO,CAACQ,KAAK,CAACf,OAAO,CAAC;EACxB,CAAC,MAAM;IACLW,OAAO,CAACK,MAAM,CAACH,KAAK,CAACb,OAAO,CAAC;EAC/B;AACF;;AAEA;AACA;AACA;AACA;AACA,SAASiB,IAAI,CAACjB,OAAwB,EAAEC,OAAO,GAAG,IAAI,EAAE;EACtD,IAAI,CAACD,OAAO,EAAE;EACd,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;IAC/BO,OAAO,CAACC,GAAG,CAACR,OAAO,EAAE;MAAES,KAAK,EAAE;IAAE,CAAC,CAAC;EACpC,CAAC,MAAM,IAAIR,OAAO,EAAE;IAClBM,OAAO,CAACQ,KAAK,CAACf,OAAO,CAAC,YAAY,CAAC,CAAC;EACtC,CAAC,MAAM;IACLW,OAAO,CAACK,MAAM,CAACH,KAAK,CAACb,OAAO,CAAC,YAAY,CAAC,CAAC;EAC7C;AACF;;AAEA;AACA;AACA;AACA;AACA,SAASkB,IAAI,CAAClB,OAAwB,EAAEC,OAAO,GAAG,IAAI,EAAE;EACtD,IAAI,CAACD,OAAO,EAAE;EACd,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;IAC/BO,OAAO,CAACC,GAAG,CAACR,OAAO,EAAE;MAAES,KAAK,EAAE;IAAE,CAAC,CAAC;EACpC,CAAC,MAAM,IAAIR,OAAO,EAAE;IAClBM,OAAO,CAACQ,KAAK,CAACf,OAAO,CAAC,QAAQ,CAAC,CAAC;EAClC,CAAC,MAAM;IACLW,OAAO,CAACK,MAAM,CAACH,KAAK,CAACb,OAAO,CAAC,QAAQ,CAAC,CAAC;EACzC;AACF;;AAEA;AACA;AACA;AACA;AACA,SAASe,KAAK,CAACf,OAAwB,EAAEC,OAAO,GAAG,IAAI,EAAE;EACvD,IAAI,CAACD,OAAO,EAAE;EACd,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;IAC/BO,OAAO,CAACC,GAAG,CAACR,OAAO,EAAE;MAAES,KAAK,EAAE;IAAE,CAAC,CAAC;EACpC,CAAC,MAAM,IAAIR,OAAO,EAAE;IAClBM,OAAO,CAACQ,KAAK,CAACf,OAAO,CAAC,WAAW,CAAC,CAAC;EACrC,CAAC,MAAM;IACLW,OAAO,CAACK,MAAM,CAACH,KAAK,CAACb,OAAO,CAAC,WAAW,CAAC,CAAC;EAC5C;AACF;;AAEA;AACA;AACA;AACA;AACA,SAASmB,KAAK,CAACnB,OAAwB,EAAEC,OAAO,GAAG,IAAI,EAAE;EACvD,IAAI,CAACD,OAAO,EAAE;EACd,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;IAC/BO,OAAO,CAACC,GAAG,CAACR,OAAO,EAAE;MAAES,KAAK,EAAE;IAAE,CAAC,CAAC;EACpC,CAAC,MAAM,IAAIR,OAAO,EAAE;IAClBM,OAAO,CAACQ,KAAK,CAACf,OAAO,CAAC,eAAe,CAAC,CAAC;EACzC,CAAC,MAAM;IACLW,OAAO,CAACK,MAAM,CAACH,KAAK,CAACb,OAAO,CAAC,eAAe,CAAC,CAAC;EAChD;AACF;;AAEA;AACA;AACA;AACA;AACA,SAASoB,SAAS,CAACpB,OAAe,EAAE;EAClC,IAAI,CAACA,OAAO,EAAE;EACdO,OAAO,CAACQ,KAAK,CAACf,OAAO,CAAC,YAAY,CAAC,CAAC;AACtC;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASqB,cAAc,CAACrB,OAAO,EAAE;EACtC,IAAI,CAACA,OAAO,EAAE;EACd,IAAIL,KAAK,CAACO,OAAO,CAACC,OAAO,CAACmB,UAAU,EAAE,EAAE;IACtCR,IAAI,CAACd,OAAO,CAAC;EACf;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASuB,YAAY,CAACvB,OAAO,EAAE;EACpC,IAAI,CAACA,OAAO,EAAE;EACd,IAAIL,KAAK,CAACO,OAAO,CAACC,OAAO,CAACqB,QAAQ,EAAE,EAAE;IACpCL,KAAK,CAACnB,OAAO,CAAC;EAChB;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASyB,gBAAgB,CAACzB,OAAO,EAAE;EACxC,IAAI,CAACA,OAAO,EAAE;EACd,IAAIL,KAAK,CAACO,OAAO,CAACC,OAAO,CAACuB,YAAY,EAAE,EAAE;IACxCN,SAAS,CAACpB,OAAO,CAAC;EACpB;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS2B,YAAY,CAAC3B,OAAO,EAAE4B,IAAI,GAAG,MAAM,EAAE3B,OAAO,GAAG,IAAI,EAAE;EACnE,QAAQ2B,IAAI;IACV,KAAK,MAAM;MACT7B,IAAI,CAACC,OAAO,EAAEC,OAAO,CAAC;MACtB;IACF,KAAK,MAAM;MACTa,IAAI,CAACd,OAAO,EAAEC,OAAO,CAAC;MACtB;IACF,KAAK,MAAM;MACTgB,IAAI,CAACjB,OAAO,EAAEC,OAAO,CAAC;MACtB;IACF,KAAK,MAAM;MACTiB,IAAI,CAAClB,OAAO,EAAEC,OAAO,CAAC;MACtB;IACF,KAAK,OAAO;MACVc,KAAK,CAACf,OAAO,EAAEC,OAAO,CAAC;MACvB;IACF;MACEa,IAAI,CAACd,OAAO,EAAEC,OAAO,CAAC;EAAC;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS4B,iBAAiB,CAC/BC,KAAK,EACL9B,OAAO,GAAG,IAAI,EACd+B,OAAO,GAAG;EACRC,MAAM,EAAE,kDAAkD;EAC1DC,WAAW,EAAE;AACf,CAAC,EACD;EACA,IAAIC,GAAG,GAAGH,OAAO;EACjB,IAAI/B,OAAO,IAAI,IAAI,EAAE;IACnBkC,GAAG,GAAG;MACJF,MAAM,EAAE,yCAAyC;MACjDC,WAAW,EAAE;IACf,CAAC;EACH;EACA,IAAIE,IAAI,GAAGxC,KAAK,CAACO,OAAO,CAACC,OAAO,CAACiC,OAAO,CAAC,aAAa,CAAC;EACvD,IAAI,CAACD,IAAI,EAAEA,IAAI,GAAG,IAAI7C,SAAS,CAAC4C,GAAG,EAAE3C,OAAO,CAAC8C,MAAM,CAAC,CAAC,CAAC;EACtDF,IAAI,CAACG,KAAK,CAACR,KAAK,EAAE,CAAC,EAAE;IACnB/B,IAAI,EAAEC;EACR,CAAC,CAAC;EACFL,KAAK,CAACO,OAAO,CAACC,OAAO,CAACoC,OAAO,CAAC,aAAa,EAAEJ,IAAI,CAAC;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,iBAAiB,CAACxC,OAAO,GAAG,IAAI,EAAE;EAChD,MAAMmC,IAAI,GAAGxC,KAAK,CAACO,OAAO,CAACC,OAAO,CAACiC,OAAO,CAAC,aAAa,CAAC;EACzD,IAAIpC,OAAO,EACTmC,IAAI,CAACM,SAAS,CAAC;IACb1C,IAAI,EAAEC;EACR,CAAC,CAAC,CAAC,KACAmC,IAAI,CAACM,SAAS,EAAE;AACvB;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAe,CAAC1C,OAAO,GAAG,IAAI,EAAE;EAC9C,MAAMmC,IAAI,GAAGxC,KAAK,CAACO,OAAO,CAACC,OAAO,CAACiC,OAAO,CAAC,aAAa,CAAC;EACzD,IAAIpC,OAAO,EACTmC,IAAI,CAACQ,MAAM,CAAC;IACV5C,IAAI,EAAEC;EACR,CAAC,CAAC;EACJmC,IAAI,CAACS,IAAI,EAAE;AACb;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAW,CAAC7C,OAAO,EAAE;EACnC,MAAM8C,OAAO,GAAGtD,aAAa,CAACQ,OAAO,CAAC,CAACsC,KAAK,EAAE;EAC9C3C,KAAK,CAACO,OAAO,CAACC,OAAO,CAACoC,OAAO,CAAC,SAAS,EAAEO,OAAO,CAAC;AACnD;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAW,CAAC/C,OAAO,GAAG,IAAI,EAAE;EAC1C,MAAM8C,OAAO,GAAGnD,KAAK,CAACO,OAAO,CAACC,OAAO,CAACiC,OAAO,CAAC,SAAS,CAAC;EACxD,IAAIU,OAAO,EAAE;IACX,IAAIf,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI/B,OAAO,EAAE+B,OAAO,GAAG;MAAEjB,IAAI,EAAEd;IAAQ,CAAC;IACxC8C,OAAO,CAACF,IAAI,CAACb,OAAO,CAAC;EACvB;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASiB,cAAc,CAAChD,OAAO,GAAG,IAAI,EAAE;EAC7C,MAAM8C,OAAO,GAAGnD,KAAK,CAACO,OAAO,CAACC,OAAO,CAACiC,OAAO,CAAC,SAAS,CAAC;EACxD,IAAIU,OAAO,EAAE;IACX,IAAIf,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI/B,OAAO,EAAE+B,OAAO,GAAG;MAAEjB,IAAI,EAAEd;IAAQ,CAAC;IACxC8C,OAAO,CAACG,OAAO,CAAClB,OAAO,CAAC;EAC1B;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASmB,WAAW,CAAClD,OAAO,GAAG,IAAI,EAAE;EAC1C,MAAM8C,OAAO,GAAGnD,KAAK,CAACO,OAAO,CAACC,OAAO,CAACiC,OAAO,CAAC,SAAS,CAAC;EACxD,IAAIU,OAAO,EAAE;IACX,IAAIf,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI/B,OAAO,EAAE+B,OAAO,GAAG;MAAEjB,IAAI,EAAEd;IAAQ,CAAC;IACxC8C,OAAO,CAAC5B,IAAI,CAACa,OAAO,CAAC;EACvB;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASoB,WAAW,CAACnD,OAAO,GAAG,IAAI,EAAE;EAC1C,MAAM8C,OAAO,GAAGnD,KAAK,CAACO,OAAO,CAACC,OAAO,CAACiC,OAAO,CAAC,SAAS,CAAC;EACxD,IAAIU,OAAO,EAAE;IACX,IAAIf,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI/B,OAAO,EAAE+B,OAAO,GAAG;MAAEjB,IAAI,EAAEd;IAAQ,CAAC;IACxC8C,OAAO,CAAC/B,KAAK,CAACgB,OAAO,CAAC;EACxB;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASqB,WAAW,CAACpD,OAAO,GAAG,IAAI,EAAE;EAC1C,MAAM8C,OAAO,GAAGnD,KAAK,CAACO,OAAO,CAACC,OAAO,CAACiC,OAAO,CAAC,SAAS,CAAC;EACxD,IAAIU,OAAO,EAAE;IACX,IAAIf,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI/B,OAAO,EAAE+B,OAAO,GAAG;MAAEjB,IAAI,EAAEd;IAAQ,CAAC;IACxC8C,OAAO,CAACH,MAAM,CAACZ,OAAO,CAAC;IACvBe,OAAO,CAACO,IAAI,EAAE;EAChB;AACF;AAEA,OAAO,SAASC,uBAAuB,CACrC1B,IAAI,GAAG,aAAa,EACpBE,KAAK,GAAG,CAAC,EACT9B,OAAO,GAAG,IAAI,EACd;EACA,IAAI4B,IAAI,KAAK,aAAa,EAAE;IAC1BC,iBAAiB,CAACC,KAAK,EAAE9B,OAAO,CAAC;EACnC,CAAC,MAAM;IACL6C,WAAW,CAAC7C,OAAO,CAAC;EACtB;AACF;AAEA,OAAO,SAASuD,uBAAuB,CAACvD,OAAO,EAAE;EAC/C,MAAMwD,WAAW,GAAG7D,KAAK,CAACO,OAAO,CAACC,OAAO,CAACiC,OAAO,CAAC,aAAa,CAAC;EAChE,IAAI,CAACoB,WAAW,EAAE;IAChBJ,WAAW,CAACpD,OAAO,CAAC;EACtB,CAAC,MAAM;IACLwC,iBAAiB,CAACxC,OAAO,CAAC;EAC5B;AACF;AAEA,OAAO,SAASyD,qBAAqB,CAACzD,OAAO,EAAE0D,MAAM,GAAG,MAAM,EAAE;EAC9D,MAAMF,WAAW,GAAG7D,KAAK,CAACO,OAAO,CAACC,OAAO,CAACiC,OAAO,CAAC,aAAa,CAAC;EAChE,IAAI,CAACoB,WAAW,EAAE;IAChB,QAAQE,MAAM;MACZ,KAAK,MAAM;QACTX,WAAW,CAAC/C,OAAO,CAAC;QACpB;MACF,KAAK,SAAS;QACZgD,cAAc,CAAChD,OAAO,CAAC;QACvB;MACF,KAAK,MAAM;QACTkD,WAAW,CAAClD,OAAO,CAAC;QACpB;MACF,KAAK,MAAM;QACTmD,WAAW,CAACnD,OAAO,CAAC;QACpB;MACF;QACE+C,WAAW,CAAC/C,OAAO,CAAC;QACpB;IAAM;EAEZ,CAAC,MAAM;IACL0C,eAAe,CAAC1C,OAAO,CAAC;EAC1B;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS2D,WAAW,CAACC,IAAI,EAAE;EAChC,MAAMC,KAAK,GAAG,IAAIpE,KAAK,CAAC;IACtBmE,IAAI;IACJE,KAAK,EAAE;MACLC,GAAG,EAAE,EAAE;MACP,SAAS,EAAE,EAAE;MACb,UAAU,EAAE,EAAE;MACd,WAAW,EAAE,EAAE;MACfC,MAAM,EAAE,EAAE;MACV,YAAY,EAAE,EAAE;MAChB,aAAa,EAAE,EAAE;MACjB,cAAc,EAAE,EAAE;MAClBC,IAAI,EAAE,EAAE;MACR,UAAU,EAAE,EAAE;MACdC,GAAG,EAAE,EAAE;MACP,SAAS,EAAE,EAAE;MACbC,KAAK,EAAE,EAAE;MACT,WAAW,EAAE;IACf,CAAC;IACDC,KAAK,EAAE;MAAE,cAAc,EAAE,CAAC;MAAE,eAAe,EAAE,CAAC;MAAER,IAAI,EAAE,CAAC,YAAY;IAAE;EACvE,CAAC,CAAC;EACF,OAAOC,KAAK;AACd;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASQ,mBAAmB,GAAG;EACpC,MAAMR,KAAK,GAAG,IAAIpE,KAAK,CAAC;IACtBqE,KAAK,EAAE;MACLC,GAAG,EAAE,EAAE;MACP,SAAS,EAAE,EAAE;MACb,UAAU,EAAE,EAAE;MACd,WAAW,EAAE,EAAE;MACfC,MAAM,EAAE,EAAE;MACV,YAAY,EAAE,EAAE;MAChB,aAAa,EAAE,EAAE;MACjB,cAAc,EAAE,EAAE;MAClBC,IAAI,EAAE,EAAE;MACR,UAAU,EAAE,EAAE;MACdC,GAAG,EAAE,EAAE;MACP,SAAS,EAAE,EAAE;MACbC,KAAK,EAAE,EAAE;MACT,WAAW,EAAE;IACf,CAAC;IACDC,KAAK,EAAE;MAAE,cAAc,EAAE,CAAC;MAAE,eAAe,EAAE;IAAE,CAAC;IAChDE,QAAQ,EAAE;EACZ,CAAC,CAAC;EACF,OAAOT,KAAK;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASU,cAAc,CAACC,MAAM,EAAE;EAC9B,OAAOC,MAAM,CAACD,MAAM,CAAC,KAAKA,MAAM,GAC5B,CAAC,GAAGE,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAGF,MAAM,CAACG,MAAM,CAACJ,MAAM,CAAC,CAACK,GAAG,CAACN,cAAc,CAAC,CAAC,GAC9D,CAAC;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASO,SAAS,CAACN,MAAM,EAAE;EACzB,IAAIO,GAAG,GAAG,KAAK;EACf,MAAMC,IAAI,GAAGP,MAAM,CAACO,IAAI,CAACR,MAAM,CAAC;EAChC,KAAK,MAAMS,GAAG,IAAID,IAAI,EAAE;IACtB,IAAIP,MAAM,CAACD,MAAM,CAACS,GAAG,CAAC,CAAC,KAAKT,MAAM,CAACS,GAAG,CAAC,EAAE;MACvC,OAAO,IAAI;IACb;IACAF,GAAG,GAAGA,GAAG,IAAID,SAAS,CAACN,MAAM,CAACS,GAAG,CAAC,CAAC;EACrC;EACA,OAAOF,GAAG;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,OAAO,CAACV,MAAM,EAAE/D,KAAK,EAAE0E,KAAK,EAAEtB,KAAK,EAAEuB,MAAM,EAAE;EACpD,MAAMC,KAAK,GAAG,IAAI;EAClB,MAAML,IAAI,GAAGP,MAAM,CAACO,IAAI,CAACR,MAAM,CAAC;EAChC,KAAK,MAAMS,GAAG,IAAID,IAAI,EAAE;IACtB,IAAIP,MAAM,CAACD,MAAM,CAACS,GAAG,CAAC,CAAC,KAAKT,MAAM,CAACS,GAAG,CAAC,EAAE;MACvC,IAAIE,KAAK,KAAK,CAAC,EAAE;QACftB,KAAK,CAACyB,IAAI,CAAC,CACTF,MAAM,CAACH,GAAG,CAAC,GAAGG,MAAM,CAACH,GAAG,CAAC,CAACM,UAAU,GAAGN,GAAG,CAAC,YAAY,CAAC,EACxDT,MAAM,CAACS,GAAG,CAAC,CACZ,CAAC;MACJ,CAAC,MAAM;QACLpB,KAAK,CAACyB,IAAI,CAAC,CACT;UACEE,MAAM,EAAE,OAAO;UACfC,OAAO,EAAEL,MAAM,CAACH,GAAG,CAAC,GAAGG,MAAM,CAACH,GAAG,CAAC,CAACS,IAAI,GAAGT,GAAG,CAACS;QAChD,CAAC,EACDlB,MAAM,CAACS,GAAG,CAAC,CACZ,CAAC;MACJ;IACF;EACF;EACA,KAAK,MAAMA,GAAG,IAAID,IAAI,EAAE;IACtB,IAAIP,MAAM,CAACD,MAAM,CAACS,GAAG,CAAC,CAAC,KAAKT,MAAM,CAACS,GAAG,CAAC,EAAE;MACvC;MACA,IAAIH,SAAS,CAACN,MAAM,CAACS,GAAG,CAAC,CAAC,EAAE;QAC1B,IAAIU,SAAS,GAAG,IAAIC,KAAK,CAACT,KAAK,CAAC,CAACU,IAAI,CAACR,KAAK,CAAC,CAACS,IAAI,CAAC,EAAE,CAAC;QACrD,IAAIX,KAAK,GAAG,CAAC,EAAEQ,SAAS,GAAI,KAAIA,SAAU,EAAC;QAC3C9B,KAAK,CAACyB,IAAI,CAAC,CACTK,SAAS,CAACI,MAAM,CACdX,MAAM,CAACH,GAAG,CAAC,GAAGG,MAAM,CAACH,GAAG,CAAC,CAACM,UAAU,GAAGN,GAAG,CAAC,YAAY,CAAC,CACzD,EACD,EAAE,CACH,CAAC;MACJ;MACA;MACApB,KAAK,GAAGqB,OAAO,CAACV,MAAM,CAACS,GAAG,CAAC,EAAExE,KAAK,EAAE0E,KAAK,GAAG,CAAC,EAAEtB,KAAK,EAAEuB,MAAM,CAAC;IAC/D;EACF;EACA,OAAOvB,KAAK;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASmC,iBAAiB,CAACxB,MAAM,EAAEY,MAAM,GAAG,CAAC,CAAC,EAAE;EACrD;EACA,MAAM3E,KAAK,GAAG8D,cAAc,CAACC,MAAM,CAAC;EACpC;EACA,MAAMW,KAAK,GAAG,CAAC;EACf;EACA,MAAMtB,KAAK,GAAG,IAAIpE,KAAK,CAAC;IACtBqE,KAAK,EAAE;MACLC,GAAG,EAAE,EAAE;MACP,SAAS,EAAE,EAAE;MACb,UAAU,EAAE,EAAE;MACd,WAAW,EAAE,EAAE;MACfC,MAAM,EAAE,EAAE;MACV,YAAY,EAAE,EAAE;MAChB,aAAa,EAAE,EAAE;MACjB,cAAc,EAAE,EAAE;MAClBC,IAAI,EAAE,EAAE;MACR,UAAU,EAAE,EAAE;MACdC,GAAG,EAAE,EAAE;MACP,SAAS,EAAE,EAAE;MACbC,KAAK,EAAE,EAAE;MACT,WAAW,EAAE;IACf,CAAC;IACDC,KAAK,EAAE;MAAE,cAAc,EAAE,CAAC;MAAE,eAAe,EAAE,CAAC;MAAER,IAAI,EAAE,CAAC,YAAY;IAAE;EACvE,CAAC,CAAC;EACFsB,OAAO,CAACV,MAAM,EAAE/D,KAAK,EAAE0E,KAAK,GAAG,CAAC,EAAEtB,KAAK,EAAEuB,MAAM,CAAC;EAChD,OAAOvB,KAAK;AACd"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import slugify from 'slugify';
|
|
3
|
+
import { ExportImportUtils } from '@rockcarver/frodo-lib';
|
|
4
|
+
import { printMessage } from './Console';
|
|
5
|
+
const {
|
|
6
|
+
getMetadata
|
|
7
|
+
} = ExportImportUtils;
|
|
8
|
+
export function getTypedFilename(name, type, suffix = 'json') {
|
|
9
|
+
const slug = slugify(name.replace(/^http(s?):\/\//, ''));
|
|
10
|
+
return `${slug}.${type}.${suffix}`;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Save JSON object to file
|
|
15
|
+
* @param {Object} data data object
|
|
16
|
+
* @param {String} filename file name
|
|
17
|
+
*/
|
|
18
|
+
export function saveJsonToFile(data, filename) {
|
|
19
|
+
const exportData = data;
|
|
20
|
+
exportData.meta = getMetadata();
|
|
21
|
+
fs.writeFile(filename, JSON.stringify(exportData, null, 2), err => {
|
|
22
|
+
if (err) {
|
|
23
|
+
return printMessage(`ERROR - can't save ${filename}`, 'error');
|
|
24
|
+
}
|
|
25
|
+
return '';
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export function saveToFile(type, data, identifier, filename) {
|
|
29
|
+
const exportData = {};
|
|
30
|
+
exportData['meta'] = getMetadata();
|
|
31
|
+
exportData[type] = {};
|
|
32
|
+
if (Array.isArray(data)) {
|
|
33
|
+
data.forEach(element => {
|
|
34
|
+
exportData[type][element[identifier]] = element;
|
|
35
|
+
});
|
|
36
|
+
} else {
|
|
37
|
+
exportData[type][data[identifier]] = data;
|
|
38
|
+
}
|
|
39
|
+
fs.writeFile(filename, JSON.stringify(exportData, null, 2), err => {
|
|
40
|
+
if (err) {
|
|
41
|
+
return printMessage(`ERROR - can't save ${type} to file`, 'error');
|
|
42
|
+
}
|
|
43
|
+
return '';
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=ExportImportUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExportImportUtils.js","names":["fs","slugify","ExportImportUtils","printMessage","getMetadata","getTypedFilename","name","type","suffix","slug","replace","saveJsonToFile","data","filename","exportData","meta","writeFile","JSON","stringify","err","saveToFile","identifier","Array","isArray","forEach","element"],"sources":["utils/ExportImportUtils.ts"],"sourcesContent":["import fs from 'fs';\nimport slugify from 'slugify';\nimport { ExportImportUtils } from '@rockcarver/frodo-lib';\nimport { printMessage } from './Console';\n\nconst { getMetadata } = ExportImportUtils;\n\nexport function getTypedFilename(name: string, type: string, suffix = 'json') {\n const slug = slugify(name.replace(/^http(s?):\\/\\//, ''));\n return `${slug}.${type}.${suffix}`;\n}\n\n/**\n * Save JSON object to file\n * @param {Object} data data object\n * @param {String} filename file name\n */\nexport function saveJsonToFile(data, filename) {\n const exportData = data;\n exportData.meta = getMetadata();\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${filename}`, 'error');\n }\n return '';\n });\n}\n\nexport function saveToFile(type, data, identifier, filename) {\n const exportData = {};\n exportData['meta'] = getMetadata();\n exportData[type] = {};\n\n if (Array.isArray(data)) {\n data.forEach((element) => {\n exportData[type][element[identifier]] = element;\n });\n } else {\n exportData[type][data[identifier]] = data;\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${type} to file`, 'error');\n }\n return '';\n });\n}\n"],"mappings":"AAAA,OAAOA,EAAE,MAAM,IAAI;AACnB,OAAOC,OAAO,MAAM,SAAS;AAC7B,SAASC,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,YAAY,QAAQ,WAAW;AAExC,MAAM;EAAEC;AAAY,CAAC,GAAGF,iBAAiB;AAEzC,OAAO,SAASG,gBAAgB,CAACC,IAAY,EAAEC,IAAY,EAAEC,MAAM,GAAG,MAAM,EAAE;EAC5E,MAAMC,IAAI,GAAGR,OAAO,CAACK,IAAI,CAACI,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;EACxD,OAAQ,GAAED,IAAK,IAAGF,IAAK,IAAGC,MAAO,EAAC;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,cAAc,CAACC,IAAI,EAAEC,QAAQ,EAAE;EAC7C,MAAMC,UAAU,GAAGF,IAAI;EACvBE,UAAU,CAACC,IAAI,GAAGX,WAAW,EAAE;EAC/BJ,EAAE,CAACgB,SAAS,CAACH,QAAQ,EAAEI,IAAI,CAACC,SAAS,CAACJ,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAGK,GAAG,IAAK;IACnE,IAAIA,GAAG,EAAE;MACP,OAAOhB,YAAY,CAAE,sBAAqBU,QAAS,EAAC,EAAE,OAAO,CAAC;IAChE;IACA,OAAO,EAAE;EACX,CAAC,CAAC;AACJ;AAEA,OAAO,SAASO,UAAU,CAACb,IAAI,EAAEK,IAAI,EAAES,UAAU,EAAER,QAAQ,EAAE;EAC3D,MAAMC,UAAU,GAAG,CAAC,CAAC;EACrBA,UAAU,CAAC,MAAM,CAAC,GAAGV,WAAW,EAAE;EAClCU,UAAU,CAACP,IAAI,CAAC,GAAG,CAAC,CAAC;EAErB,IAAIe,KAAK,CAACC,OAAO,CAACX,IAAI,CAAC,EAAE;IACvBA,IAAI,CAACY,OAAO,CAAEC,OAAO,IAAK;MACxBX,UAAU,CAACP,IAAI,CAAC,CAACkB,OAAO,CAACJ,UAAU,CAAC,CAAC,GAAGI,OAAO;IACjD,CAAC,CAAC;EACJ,CAAC,MAAM;IACLX,UAAU,CAACP,IAAI,CAAC,CAACK,IAAI,CAACS,UAAU,CAAC,CAAC,GAAGT,IAAI;EAC3C;EACAZ,EAAE,CAACgB,SAAS,CAACH,QAAQ,EAAEI,IAAI,CAACC,SAAS,CAACJ,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAGK,GAAG,IAAK;IACnE,IAAIA,GAAG,EAAE;MACP,OAAOhB,YAAY,CAAE,sBAAqBI,IAAK,UAAS,EAAE,OAAO,CAAC;IACpE;IACA,OAAO,EAAE;EACX,CAAC,CAAC;AACJ"}
|