@rockcarver/frodo-lib 1.1.0 → 1.1.2-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/build.zip +0 -0
- package/cjs/api/AgentApi.js +4 -4
- package/cjs/api/AgentApi.js.map +1 -1
- package/cjs/api/AgentApi.test.js +3 -3
- package/cjs/api/AgentApi.test.js.map +1 -1
- package/cjs/api/AuthenticateApi.js +3 -3
- package/cjs/api/AuthenticateApi.js.map +1 -1
- package/cjs/api/AuthenticateApi.test.js +2 -2
- package/cjs/api/AuthenticateApi.test.js.map +1 -1
- package/cjs/api/BaseApi.js +4 -4
- package/cjs/api/BaseApi.js.map +1 -1
- package/cjs/api/CirclesOfTrustApi.js +3 -3
- package/cjs/api/CirclesOfTrustApi.js.map +1 -1
- package/cjs/api/IdmConfigApi.js +3 -3
- package/cjs/api/IdmConfigApi.js.map +1 -1
- package/cjs/api/IdmSystemApi.js +3 -3
- package/cjs/api/IdmSystemApi.js.map +1 -1
- package/cjs/api/ManagedObjectApi.js +3 -3
- package/cjs/api/ManagedObjectApi.js.map +1 -1
- package/cjs/api/NodeApi.js +3 -3
- package/cjs/api/NodeApi.js.map +1 -1
- package/cjs/api/NodeApi.test.js +2 -2
- package/cjs/api/NodeApi.test.js.map +1 -1
- package/cjs/api/OAuth2ClientApi.js +3 -3
- package/cjs/api/OAuth2ClientApi.js.map +1 -1
- package/cjs/api/OAuth2OIDCApi.js +4 -4
- package/cjs/api/OAuth2OIDCApi.js.map +1 -1
- package/cjs/api/OAuth2OIDCApi.test.js +4 -4
- package/cjs/api/OAuth2OIDCApi.test.js.map +1 -1
- package/cjs/api/OAuth2ProviderApi.js +3 -3
- package/cjs/api/OAuth2ProviderApi.js.map +1 -1
- package/cjs/api/PoliciesApi.js +3 -3
- package/cjs/api/PoliciesApi.js.map +1 -1
- package/cjs/api/PoliciesApi.test.js +4 -4
- package/cjs/api/PoliciesApi.test.js.map +1 -1
- package/cjs/api/PolicySetApi.js +4 -4
- package/cjs/api/PolicySetApi.js.map +1 -1
- package/cjs/api/PolicySetApi.test.js +3 -3
- package/cjs/api/PolicySetApi.test.js.map +1 -1
- package/cjs/api/RealmApi.js +3 -3
- package/cjs/api/RealmApi.js.map +1 -1
- package/cjs/api/ResourceTypesApi.js +3 -3
- package/cjs/api/ResourceTypesApi.js.map +1 -1
- package/cjs/api/ResourceTypesApi.test.js +2 -2
- package/cjs/api/ResourceTypesApi.test.js.map +1 -1
- package/cjs/api/Saml2Api.js +3 -3
- package/cjs/api/Saml2Api.js.map +1 -1
- package/cjs/api/ScriptApi.js +3 -3
- package/cjs/api/ScriptApi.js.map +1 -1
- package/cjs/api/ServerInfoApi.js +2 -2
- package/cjs/api/ServerInfoApi.js.map +1 -1
- package/cjs/api/ServiceApi.js +3 -3
- package/cjs/api/ServiceApi.js.map +1 -1
- package/cjs/api/SocialIdentityProvidersApi.js +3 -3
- package/cjs/api/SocialIdentityProvidersApi.js.map +1 -1
- package/cjs/api/TreeApi.js +3 -3
- package/cjs/api/TreeApi.js.map +1 -1
- package/cjs/api/TreeApi.test.js +2 -2
- package/cjs/api/TreeApi.test.js.map +1 -1
- package/cjs/api/cloud/AdminFederationProvidersApi.js +3 -3
- package/cjs/api/cloud/AdminFederationProvidersApi.js.map +1 -1
- package/cjs/api/cloud/EnvInfoApi.js +3 -3
- package/cjs/api/cloud/EnvInfoApi.js.map +1 -1
- package/cjs/api/cloud/FeatureApi.js +3 -3
- package/cjs/api/cloud/FeatureApi.js.map +1 -1
- package/cjs/api/cloud/LogApi.js +3 -3
- package/cjs/api/cloud/LogApi.js.map +1 -1
- package/cjs/api/cloud/SecretsApi.js +4 -4
- package/cjs/api/cloud/SecretsApi.js.map +1 -1
- package/cjs/api/cloud/SecretsApi.test.js +2 -2
- package/cjs/api/cloud/SecretsApi.test.js.map +1 -1
- package/cjs/api/cloud/StartupApi.js +3 -3
- package/cjs/api/cloud/StartupApi.js.map +1 -1
- package/cjs/api/cloud/StartupApi.test.js +1 -1
- package/cjs/api/cloud/StartupApi.test.js.map +1 -1
- package/cjs/api/cloud/VariablesApi.js +4 -4
- package/cjs/api/cloud/VariablesApi.js.map +1 -1
- package/cjs/api/cloud/VariablesApi.test.js +2 -2
- package/cjs/api/cloud/VariablesApi.test.js.map +1 -1
- package/cjs/api/utils/ApiUtils.js +1 -1
- package/cjs/api/utils/ApiUtils.js.map +1 -1
- package/cjs/api/utils/ApiUtils.test.js +2 -2
- package/cjs/api/utils/ApiUtils.test.js.map +1 -1
- package/cjs/ext/axios-curlirize/curlirize.js +1 -1
- package/cjs/ext/axios-curlirize/curlirize.js.map +1 -1
- package/cjs/index.js +49 -49
- package/cjs/ops/AdminOps.js +8 -8
- package/cjs/ops/AdminOps.js.map +1 -1
- package/cjs/ops/AgentOps.js +3 -3
- package/cjs/ops/AgentOps.js.map +1 -1
- package/cjs/ops/AgentOps.test.js +3 -3
- package/cjs/ops/AgentOps.test.js.map +1 -1
- package/cjs/ops/AuthenticateOps.js +12 -12
- package/cjs/ops/AuthenticateOps.js.map +1 -1
- package/cjs/ops/AuthenticateOps.test.js +2 -2
- package/cjs/ops/AuthenticateOps.test.js.map +1 -1
- package/cjs/ops/CirclesOfTrustOps.js +3 -3
- package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.js +8 -8
- package/cjs/ops/ConnectionProfileOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.test.js +2 -2
- package/cjs/ops/ConnectionProfileOps.test.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.js +1 -1
- package/cjs/ops/EmailTemplateOps.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.test.js +2 -2
- package/cjs/ops/EmailTemplateOps.test.js.map +1 -1
- package/cjs/ops/IdmOps.js +2 -2
- package/cjs/ops/IdmOps.js.map +1 -1
- package/cjs/ops/IdmOps.test.js +2 -2
- package/cjs/ops/IdmOps.test.js.map +1 -1
- package/cjs/ops/IdpOps.js +6 -6
- package/cjs/ops/IdpOps.js.map +1 -1
- package/cjs/ops/IdpOps.test.js +2 -2
- package/cjs/ops/IdpOps.test.js.map +1 -1
- package/cjs/ops/InfoOps.js +6 -6
- package/cjs/ops/InfoOps.js.map +1 -1
- package/cjs/ops/JoseOps.test.js +4 -4
- package/cjs/ops/JoseOps.test.js.map +1 -1
- package/cjs/ops/JourneyOps.js +17 -17
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/JourneyOps.test.js +4 -4
- package/cjs/ops/JourneyOps.test.js.map +1 -1
- package/cjs/ops/ManagedObjectOps.js +1 -1
- package/cjs/ops/ManagedObjectOps.js.map +1 -1
- package/cjs/ops/NodeOps.js +7 -7
- package/cjs/ops/NodeOps.js.map +1 -1
- package/cjs/ops/OAuth2ClientOps.js +6 -6
- package/cjs/ops/OAuth2ClientOps.js.map +1 -1
- package/cjs/ops/OAuth2ClientOps.test.js +3 -3
- package/cjs/ops/OAuth2ClientOps.test.js.map +1 -1
- package/cjs/ops/OAuth2ProviderOps.js +1 -1
- package/cjs/ops/OAuth2ProviderOps.js.map +1 -1
- package/cjs/ops/OrganizationOps.js +3 -3
- package/cjs/ops/OrganizationOps.js.map +1 -1
- package/cjs/ops/PolicyOps.js +8 -8
- package/cjs/ops/PolicyOps.js.map +1 -1
- package/cjs/ops/PolicyOps.test.js +6 -6
- package/cjs/ops/PolicyOps.test.js.map +1 -1
- package/cjs/ops/PolicySetOps.js +6 -6
- package/cjs/ops/PolicySetOps.js.map +1 -1
- package/cjs/ops/PolicySetOps.test.js +4 -4
- package/cjs/ops/PolicySetOps.test.js.map +1 -1
- package/cjs/ops/RealmOps.js +2 -2
- package/cjs/ops/RealmOps.js.map +1 -1
- package/cjs/ops/ResourceTypeOps.js +6 -6
- package/cjs/ops/ResourceTypeOps.js.map +1 -1
- package/cjs/ops/ResourceTypeOps.test.js +2 -2
- package/cjs/ops/ResourceTypeOps.test.js.map +1 -1
- package/cjs/ops/Saml2Ops.js +7 -7
- package/cjs/ops/Saml2Ops.js.map +1 -1
- package/cjs/ops/Saml2Ops.test.js +6 -6
- package/cjs/ops/Saml2Ops.test.js.map +1 -1
- package/cjs/ops/ScriptOps.js +5 -5
- package/cjs/ops/ScriptOps.js.map +1 -1
- package/cjs/ops/ScriptOps.test.js +2 -2
- package/cjs/ops/ScriptOps.test.js.map +1 -1
- package/cjs/ops/ServiceOps.js +2 -2
- package/cjs/ops/ServiceOps.js.map +1 -1
- package/cjs/ops/ThemeOps.js +3 -3
- package/cjs/ops/ThemeOps.js.map +1 -1
- package/cjs/ops/ThemeOps.test.js +3 -3
- package/cjs/ops/ThemeOps.test.js.map +1 -1
- package/cjs/ops/cloud/AdminFederationOps.js +4 -4
- package/cjs/ops/cloud/AdminFederationOps.js.map +1 -1
- package/cjs/ops/cloud/FeatureOps.js +2 -2
- package/cjs/ops/cloud/FeatureOps.js.map +1 -1
- package/cjs/ops/cloud/LogOps.js +1 -1
- package/cjs/ops/cloud/LogOps.js.map +1 -1
- package/cjs/ops/cloud/SecretsOps.js +4 -4
- package/cjs/ops/cloud/SecretsOps.js.map +1 -1
- package/cjs/ops/cloud/ServiceAccountOps.js +3 -3
- package/cjs/ops/cloud/ServiceAccountOps.js.map +1 -1
- package/cjs/ops/cloud/ServiceAccountOps.test.js +3 -3
- package/cjs/ops/cloud/ServiceAccountOps.test.js.map +1 -1
- package/cjs/ops/cloud/StartupOps.js +4 -4
- package/cjs/ops/cloud/StartupOps.js.map +1 -1
- package/cjs/ops/cloud/VariablesOps.js +5 -5
- package/cjs/ops/cloud/VariablesOps.js.map +1 -1
- package/cjs/ops/utils/Console.js +1 -1
- package/cjs/ops/utils/Console.js.map +1 -1
- package/cjs/ops/utils/DataProtection.js +3 -3
- package/cjs/ops/utils/DataProtection.js.map +1 -1
- package/cjs/ops/utils/DataProtection.test.js +1 -1
- package/cjs/ops/utils/DataProtection.test.js.map +1 -1
- package/cjs/ops/utils/ExportImportUtils.js +4 -4
- package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
- package/cjs/ops/utils/ExportImportUtils.test.js +1 -1
- package/cjs/ops/utils/ExportImportUtils.test.js.map +1 -1
- package/cjs/ops/utils/OpsUtils.js +3 -3
- package/cjs/ops/utils/OpsUtils.js.map +1 -1
- package/cjs/ops/utils/OpsUtils.test.js +3 -3
- package/cjs/ops/utils/OpsUtils.test.js.map +1 -1
- package/cjs/ops/utils/ValidationUtils.js +2 -2
- package/cjs/ops/utils/ValidationUtils.js.map +1 -1
- package/cjs/ops/utils/ValidationUtils.test.js +1 -1
- package/cjs/ops/utils/ValidationUtils.test.js.map +1 -1
- package/cjs/ops/utils/Version.js +1 -1
- package/cjs/ops/utils/Version.js.map +1 -1
- package/cjs/ops/utils/Version.test.js +1 -1
- package/cjs/ops/utils/Version.test.js.map +1 -1
- package/cjs/ops/utils/Wordwrap.test.js +1 -1
- package/cjs/ops/utils/Wordwrap.test.js.map +1 -1
- package/cjs/shared/State.test.js +1 -1
- package/cjs/shared/State.test.js.map +1 -1
- package/cjs/test/mocks/ForgeRockApiMockEngine.js +2 -2
- package/cjs/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
- package/cjs/utils/AutoSetupPolly.js +2 -2
- package/cjs/utils/AutoSetupPolly.js.map +1 -1
- package/cjs/utils/SetupPollyForFrodoLib.js +1 -1
- package/cjs/utils/SetupPollyForFrodoLib.js.map +1 -1
- package/esm/api/AgentApi.js +4 -4
- package/esm/api/AgentApi.js.map +1 -1
- package/esm/api/AgentApi.test.js +3 -3
- package/esm/api/AgentApi.test.js.map +1 -1
- package/esm/api/AuthenticateApi.js +3 -3
- package/esm/api/AuthenticateApi.js.map +1 -1
- package/esm/api/AuthenticateApi.test.js +2 -4
- package/esm/api/AuthenticateApi.test.js.map +1 -1
- package/esm/api/BaseApi.js +4 -4
- package/esm/api/BaseApi.js.map +1 -1
- package/esm/api/CirclesOfTrustApi.js +3 -3
- package/esm/api/CirclesOfTrustApi.js.map +1 -1
- package/esm/api/IdmConfigApi.js +3 -3
- package/esm/api/IdmConfigApi.js.map +1 -1
- package/esm/api/IdmSystemApi.js +3 -3
- package/esm/api/IdmSystemApi.js.map +1 -1
- package/esm/api/ManagedObjectApi.js +3 -3
- package/esm/api/ManagedObjectApi.js.map +1 -1
- package/esm/api/NodeApi.js +3 -3
- package/esm/api/NodeApi.js.map +1 -1
- package/esm/api/NodeApi.test.js +2 -2
- package/esm/api/NodeApi.test.js.map +1 -1
- package/esm/api/OAuth2ClientApi.js +3 -3
- package/esm/api/OAuth2ClientApi.js.map +1 -1
- package/esm/api/OAuth2OIDCApi.js +4 -4
- package/esm/api/OAuth2OIDCApi.js.map +1 -1
- package/esm/api/OAuth2OIDCApi.test.js +4 -4
- package/esm/api/OAuth2OIDCApi.test.js.map +1 -1
- package/esm/api/OAuth2ProviderApi.js +3 -3
- package/esm/api/OAuth2ProviderApi.js.map +1 -1
- package/esm/api/PoliciesApi.js +3 -3
- package/esm/api/PoliciesApi.js.map +1 -1
- package/esm/api/PoliciesApi.test.js +4 -4
- package/esm/api/PoliciesApi.test.js.map +1 -1
- package/esm/api/PolicySetApi.js +4 -4
- package/esm/api/PolicySetApi.js.map +1 -1
- package/esm/api/PolicySetApi.test.js +3 -3
- package/esm/api/PolicySetApi.test.js.map +1 -1
- package/esm/api/RealmApi.js +3 -3
- package/esm/api/RealmApi.js.map +1 -1
- package/esm/api/ResourceTypesApi.js +3 -3
- package/esm/api/ResourceTypesApi.js.map +1 -1
- package/esm/api/ResourceTypesApi.test.js +2 -2
- package/esm/api/ResourceTypesApi.test.js.map +1 -1
- package/esm/api/Saml2Api.js +3 -3
- package/esm/api/Saml2Api.js.map +1 -1
- package/esm/api/ScriptApi.js +3 -3
- package/esm/api/ScriptApi.js.map +1 -1
- package/esm/api/ServerInfoApi.js +2 -2
- package/esm/api/ServerInfoApi.js.map +1 -1
- package/esm/api/ServiceApi.js +3 -3
- package/esm/api/ServiceApi.js.map +1 -1
- package/esm/api/SocialIdentityProvidersApi.js +3 -3
- package/esm/api/SocialIdentityProvidersApi.js.map +1 -1
- package/esm/api/TreeApi.js +3 -3
- package/esm/api/TreeApi.js.map +1 -1
- package/esm/api/TreeApi.test.js +2 -2
- package/esm/api/TreeApi.test.js.map +1 -1
- package/esm/api/cloud/AdminFederationProvidersApi.js +3 -3
- package/esm/api/cloud/AdminFederationProvidersApi.js.map +1 -1
- package/esm/api/cloud/EnvInfoApi.js +3 -3
- package/esm/api/cloud/EnvInfoApi.js.map +1 -1
- package/esm/api/cloud/FeatureApi.js +3 -3
- package/esm/api/cloud/FeatureApi.js.map +1 -1
- package/esm/api/cloud/LogApi.js +3 -3
- package/esm/api/cloud/LogApi.js.map +1 -1
- package/esm/api/cloud/SecretsApi.js +4 -4
- package/esm/api/cloud/SecretsApi.js.map +1 -1
- package/esm/api/cloud/SecretsApi.test.js +2 -2
- package/esm/api/cloud/SecretsApi.test.js.map +1 -1
- package/esm/api/cloud/StartupApi.js +3 -3
- package/esm/api/cloud/StartupApi.js.map +1 -1
- package/esm/api/cloud/StartupApi.test.js +1 -1
- package/esm/api/cloud/StartupApi.test.js.map +1 -1
- package/esm/api/cloud/VariablesApi.js +4 -4
- package/esm/api/cloud/VariablesApi.js.map +1 -1
- package/esm/api/cloud/VariablesApi.test.js +2 -2
- package/esm/api/cloud/VariablesApi.test.js.map +1 -1
- package/esm/api/utils/ApiUtils.js +1 -2
- package/esm/api/utils/ApiUtils.js.map +1 -1
- package/esm/api/utils/ApiUtils.test.js +2 -2
- package/esm/api/utils/ApiUtils.test.js.map +1 -1
- package/esm/ext/axios-curlirize/curlirize.js +1 -1
- package/esm/ext/axios-curlirize/curlirize.js.map +1 -1
- package/esm/index.js +49 -54
- package/esm/index.js.map +1 -1
- package/esm/ops/AdminOps.js +8 -8
- package/esm/ops/AdminOps.js.map +1 -1
- package/esm/ops/AgentOps.js +3 -3
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/AgentOps.test.js +3 -3
- package/esm/ops/AgentOps.test.js.map +1 -1
- package/esm/ops/AuthenticateOps.js +12 -12
- package/esm/ops/AuthenticateOps.js.map +1 -1
- package/esm/ops/AuthenticateOps.test.js +2 -4
- package/esm/ops/AuthenticateOps.test.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +3 -5
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +8 -8
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.test.js +2 -2
- package/esm/ops/ConnectionProfileOps.test.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +1 -2
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.test.js +2 -2
- package/esm/ops/EmailTemplateOps.test.js.map +1 -1
- package/esm/ops/IdmOps.js +2 -3
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdmOps.test.js +2 -2
- package/esm/ops/IdmOps.test.js.map +1 -1
- package/esm/ops/IdpOps.js +8 -8
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/IdpOps.test.js +2 -2
- package/esm/ops/IdpOps.test.js.map +1 -1
- package/esm/ops/InfoOps.js +6 -6
- package/esm/ops/InfoOps.js.map +1 -1
- package/esm/ops/JoseOps.test.js +4 -4
- package/esm/ops/JoseOps.test.js.map +1 -1
- package/esm/ops/JourneyOps.js +17 -17
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/JourneyOps.test.js +4 -4
- package/esm/ops/JourneyOps.test.js.map +1 -1
- package/esm/ops/ManagedObjectOps.js +1 -2
- package/esm/ops/ManagedObjectOps.js.map +1 -1
- package/esm/ops/NodeOps.js +7 -7
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +7 -10
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.test.js +3 -3
- package/esm/ops/OAuth2ClientOps.test.js.map +1 -1
- package/esm/ops/OAuth2ProviderOps.js +1 -2
- package/esm/ops/OAuth2ProviderOps.js.map +1 -1
- package/esm/ops/OrganizationOps.js +3 -4
- package/esm/ops/OrganizationOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +9 -12
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicyOps.test.js +6 -6
- package/esm/ops/PolicyOps.test.js.map +1 -1
- package/esm/ops/PolicySetOps.js +7 -10
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/PolicySetOps.test.js +4 -4
- package/esm/ops/PolicySetOps.test.js.map +1 -1
- package/esm/ops/RealmOps.js +2 -3
- package/esm/ops/RealmOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js +4 -4
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.test.js +2 -2
- package/esm/ops/ResourceTypeOps.test.js.map +1 -1
- package/esm/ops/Saml2Ops.js +7 -7
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/Saml2Ops.test.js +6 -6
- package/esm/ops/Saml2Ops.test.js.map +1 -1
- package/esm/ops/ScriptOps.js +5 -5
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/ScriptOps.test.js +2 -2
- package/esm/ops/ScriptOps.test.js.map +1 -1
- package/esm/ops/ServiceOps.js +2 -2
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +3 -3
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/ThemeOps.test.js +3 -3
- package/esm/ops/ThemeOps.test.js.map +1 -1
- package/esm/ops/cloud/AdminFederationOps.js +4 -4
- package/esm/ops/cloud/AdminFederationOps.js.map +1 -1
- package/esm/ops/cloud/FeatureOps.js +2 -2
- package/esm/ops/cloud/FeatureOps.js.map +1 -1
- package/esm/ops/cloud/LogOps.js +1 -3
- package/esm/ops/cloud/LogOps.js.map +1 -1
- package/esm/ops/cloud/SecretsOps.js +4 -5
- package/esm/ops/cloud/SecretsOps.js.map +1 -1
- package/esm/ops/cloud/ServiceAccountOps.js +3 -3
- package/esm/ops/cloud/ServiceAccountOps.js.map +1 -1
- package/esm/ops/cloud/ServiceAccountOps.test.js +3 -5
- package/esm/ops/cloud/ServiceAccountOps.test.js.map +1 -1
- package/esm/ops/cloud/StartupOps.js +4 -6
- package/esm/ops/cloud/StartupOps.js.map +1 -1
- package/esm/ops/cloud/VariablesOps.js +5 -6
- package/esm/ops/cloud/VariablesOps.js.map +1 -1
- package/esm/ops/utils/Console.js +1 -2
- package/esm/ops/utils/Console.js.map +1 -1
- package/esm/ops/utils/DataProtection.js +3 -3
- package/esm/ops/utils/DataProtection.js.map +1 -1
- package/esm/ops/utils/DataProtection.test.js +1 -1
- package/esm/ops/utils/DataProtection.test.js.map +1 -1
- package/esm/ops/utils/ExportImportUtils.js +4 -4
- package/esm/ops/utils/ExportImportUtils.js.map +1 -1
- package/esm/ops/utils/ExportImportUtils.test.js +1 -3
- package/esm/ops/utils/ExportImportUtils.test.js.map +1 -1
- package/esm/ops/utils/OpsUtils.js +3 -3
- package/esm/ops/utils/OpsUtils.js.map +1 -1
- package/esm/ops/utils/OpsUtils.test.js +3 -3
- package/esm/ops/utils/OpsUtils.test.js.map +1 -1
- package/esm/ops/utils/ValidationUtils.js +2 -2
- package/esm/ops/utils/ValidationUtils.js.map +1 -1
- package/esm/ops/utils/ValidationUtils.test.js +1 -1
- package/esm/ops/utils/ValidationUtils.test.js.map +1 -1
- package/esm/ops/utils/Version.js +1 -1
- package/esm/ops/utils/Version.js.map +1 -1
- package/esm/ops/utils/Version.test.js +1 -1
- package/esm/ops/utils/Version.test.js.map +1 -1
- package/esm/ops/utils/Wordwrap.test.js +1 -1
- package/esm/ops/utils/Wordwrap.test.js.map +1 -1
- package/esm/shared/State.test.js +1 -1
- package/esm/shared/State.test.js.map +1 -1
- package/esm/test/mocks/ForgeRockApiMockEngine.js +2 -2
- package/esm/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
- package/esm/utils/AutoSetupPolly.js +2 -2
- package/esm/utils/AutoSetupPolly.js.map +1 -1
- package/esm/utils/SetupPollyForFrodoLib.js +1 -1
- package/esm/utils/SetupPollyForFrodoLib.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureOps.js","names":["getFeatures","_getFeatures","debugMessage","_features","undefined","result","JSON","parse","stringify","error","_error$response","response","data","hasFeature","featureId","featureIds","map","feature","_id","includes"],"sources":["../../../src/ops/cloud/FeatureOps.ts"],"sourcesContent":["import {\n getFeatures as _getFeatures,\n FeatureInterface,\n} from '../../api/cloud/FeatureApi';\nimport { debugMessage } from '../utils/Console';\n\nlet _features: FeatureInterface[] = undefined;\n\n/**\n * Get all features\n * @returns {Promise<FeatureInterface[]>} a promise that resolves to an array of feature objects\n */\nexport async function getFeatures(): Promise<FeatureInterface[]> {\n if (typeof _features !== 'undefined') return _features;\n try {\n const { result } = await _getFeatures();\n _features = JSON.parse(JSON.stringify(result));\n } catch (error) {\n debugMessage(error.response?.data);\n _features = [];\n }\n return _features;\n}\n\n/**\n * Check if feature is available\n * @param {string} featureId feature id (e.g. 'service-accounts')\n * @returns {Promise<boolean>} a promise that resolves to true if the feature is available and to false otherwise\n */\nexport async function hasFeature(featureId: string): Promise<boolean> {\n if (typeof _features === 'undefined') await getFeatures();\n const featureIds = _features.map((feature) => feature._id);\n return featureIds.includes(featureId);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"FeatureOps.js","names":["getFeatures","_getFeatures","debugMessage","_features","undefined","result","JSON","parse","stringify","error","_error$response","response","data","hasFeature","featureId","featureIds","map","feature","_id","includes"],"sources":["../../../src/ops/cloud/FeatureOps.ts"],"sourcesContent":["import {\n getFeatures as _getFeatures,\n FeatureInterface,\n} from '../../api/cloud/FeatureApi';\nimport { debugMessage } from '../utils/Console';\n\nlet _features: FeatureInterface[] = undefined;\n\n/**\n * Get all features\n * @returns {Promise<FeatureInterface[]>} a promise that resolves to an array of feature objects\n */\nexport async function getFeatures(): Promise<FeatureInterface[]> {\n if (typeof _features !== 'undefined') return _features;\n try {\n const { result } = await _getFeatures();\n _features = JSON.parse(JSON.stringify(result));\n } catch (error) {\n debugMessage(error.response?.data);\n _features = [];\n }\n return _features;\n}\n\n/**\n * Check if feature is available\n * @param {string} featureId feature id (e.g. 'service-accounts')\n * @returns {Promise<boolean>} a promise that resolves to true if the feature is available and to false otherwise\n */\nexport async function hasFeature(featureId: string): Promise<boolean> {\n if (typeof _features === 'undefined') await getFeatures();\n const featureIds = _features.map((feature) => feature._id);\n return featureIds.includes(featureId);\n}\n"],"mappings":"SACEA,WAAW,IAAIC,YAAY;AAAA,SAGpBC,YAAY;AAErB,IAAIC,SAA6B,GAAGC,SAAS;;AAE7C;AACA;AACA;AACA;AACA,OAAO,eAAeJ,WAAWA,CAAA,EAAgC;EAC/D,IAAI,OAAOG,SAAS,KAAK,WAAW,EAAE,OAAOA,SAAS;EACtD,IAAI;IACF,MAAM;MAAEE;IAAO,CAAC,GAAG,MAAMJ,YAAY,CAAC,CAAC;IACvCE,SAAS,GAAGG,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACH,MAAM,CAAC,CAAC;EAChD,CAAC,CAAC,OAAOI,KAAK,EAAE;IAAA,IAAAC,eAAA;IACdR,YAAY,EAAAQ,eAAA,GAACD,KAAK,CAACE,QAAQ,cAAAD,eAAA,uBAAdA,eAAA,CAAgBE,IAAI,CAAC;IAClCT,SAAS,GAAG,EAAE;EAChB;EACA,OAAOA,SAAS;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeU,UAAUA,CAACC,SAAiB,EAAoB;EACpE,IAAI,OAAOX,SAAS,KAAK,WAAW,EAAE,MAAMH,WAAW,CAAC,CAAC;EACzD,MAAMe,UAAU,GAAGZ,SAAS,CAACa,GAAG,CAAEC,OAAO,IAAKA,OAAO,CAACC,GAAG,CAAC;EAC1D,OAAOH,UAAU,CAACI,QAAQ,CAACL,SAAS,CAAC;AACvC"}
|
package/esm/ops/cloud/LogOps.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { createAPIKeyAndSecret, getAPIKeys, getSources, tail, fetch } from
|
|
2
|
-
|
|
3
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1
|
+
import { createAPIKeyAndSecret, getAPIKeys, getSources, tail, fetch } from "../../api/cloud/LogApi.js"; // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4
2
|
const unfilterableNoise = ['text/plain' // Unfortunately, it is impossible to filter out those without excluding IDM script logging as well
|
|
5
3
|
];
|
|
6
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogOps.js","names":["createAPIKeyAndSecret","getAPIKeys","getSources","tail","fetch","unfilterableNoise","miscNoise","journeysNoise","journeys","samlNoise","saml","noise","concat","numLogLevelMap","logLevelMap","SEVERE","ERROR","FATAL","WARN","WARNING","CONFIG","INFO","INFORMATION","DEBUG","FINE","FINER","FINEST","ALL","getDefaultNoiseFilter","resolveLevel","level","Number","isNaN","parseInt","resolvePayloadLevel","log","type","payload","match","e","getLogSources","sources","result","getLogApiKeys","keys"],"sources":["../../../src/ops/cloud/LogOps.ts"],"sourcesContent":["import {\n LogApiKey,\n LogEventPayloadSkeleton,\n LogEventSkeleton,\n} from '../../api/ApiTypes';\nimport {\n createAPIKeyAndSecret,\n getAPIKeys,\n getSources,\n tail,\n fetch,\n} from '../../api/cloud/LogApi';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst unfilterableNoise = [\n 'text/plain', // Unfortunately, it is impossible to filter out those without excluding IDM script logging as well\n];\n\nconst miscNoise = [\n 'com.iplanet.dpro.session.operations.ServerSessionOperationStrategy',\n 'com.iplanet.dpro.session.SessionIDFactory',\n 'com.iplanet.dpro.session.share.SessionEncodeURL',\n 'com.iplanet.services.naming.WebtopNaming',\n 'com.iplanet.sso.providers.dpro.SSOProviderImpl',\n 'com.sun.identity.authentication.AuthContext',\n 'com.sun.identity.authentication.client.AuthClientUtils',\n 'com.sun.identity.authentication.config.AMAuthConfigType',\n 'com.sun.identity.authentication.config.AMAuthenticationManager',\n 'com.sun.identity.authentication.config.AMAuthLevelManager',\n 'com.sun.identity.authentication.config.AMConfiguration',\n 'com.sun.identity.authentication.jaas.LoginContext',\n 'com.sun.identity.authentication.modules.application.Application',\n 'com.sun.identity.authentication.server.AuthContextLocal',\n 'com.sun.identity.authentication.service.AMLoginContext',\n 'com.sun.identity.authentication.service.AuthContextLookup',\n 'com.sun.identity.authentication.service.AuthD',\n 'com.sun.identity.authentication.service.AuthUtils',\n 'com.sun.identity.authentication.service.DSAMECallbackHandler',\n 'com.sun.identity.authentication.service.LoginState',\n 'com.sun.identity.authentication.spi.AMLoginModule',\n 'com.sun.identity.delegation.DelegationEvaluatorImpl',\n 'com.sun.identity.idm.plugins.internal.AgentsRepo',\n 'com.sun.identity.idm.server.IdCachedServicesImpl',\n 'com.sun.identity.idm.server.IdRepoPluginsCache',\n 'com.sun.identity.idm.server.IdServicesImpl',\n 'com.sun.identity.log.spi.ISDebug',\n 'com.sun.identity.shared.encode.CookieUtils',\n 'com.sun.identity.sm.ldap.SMSLdapObject',\n 'com.sun.identity.sm.CachedSMSEntry',\n 'com.sun.identity.sm.CachedSubEntries',\n 'com.sun.identity.sm.DNMapper',\n 'com.sun.identity.sm.ServiceConfigImpl',\n 'com.sun.identity.sm.ServiceConfigManagerImpl',\n 'com.sun.identity.sm.SMSEntry',\n 'com.sun.identity.sm.SMSUtils',\n 'com.sun.identity.sm.SmsWrapperObject',\n 'oauth2',\n 'org.apache.http.client.protocol.RequestAuthCache',\n 'org.apache.http.impl.conn.PoolingHttpClientConnectionManager',\n 'org.apache.http.impl.nio.client.InternalHttpAsyncClient',\n 'org.apache.http.impl.nio.client.InternalIODispatch',\n 'org.apache.http.impl.nio.client.MainClientExec',\n 'org.apache.http.impl.nio.conn.ManagedNHttpClientConnectionImpl',\n 'org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager',\n 'org.forgerock.audit.AuditServiceImpl',\n 'org.forgerock.oauth2.core.RealmOAuth2ProviderSettings',\n 'org.forgerock.openam.authentication.service.JAASModuleDetector',\n 'org.forgerock.openam.authentication.service.LoginContextFactory',\n 'org.forgerock.openam.blacklist.BloomFilterBlacklist',\n 'org.forgerock.openam.blacklist.CTSBlacklist',\n 'org.forgerock.openam.core.realms.impl.CachingRealmLookup',\n 'org.forgerock.openam.core.rest.authn.RestAuthCallbackHandlerManager',\n 'org.forgerock.openam.core.rest.authn.trees.AuthTrees',\n 'org.forgerock.openam.cors.CorsFilter',\n 'org.forgerock.openam.cts.CTSPersistentStoreImpl',\n 'org.forgerock.openam.cts.impl.CoreTokenAdapter',\n 'org.forgerock.openam.cts.impl.queue.AsyncResultHandler',\n 'org.forgerock.openam.cts.reaper.ReaperDeleteOnQueryResultHandler',\n 'org.forgerock.openam.headers.DisableSameSiteCookiesFilter',\n 'org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo',\n 'org.forgerock.openam.rest.CsrfFilter',\n 'org.forgerock.openam.rest.restAuthenticationFilter',\n 'org.forgerock.openam.rest.fluent.CrestLoggingFilter',\n 'org.forgerock.openam.session.cts.CtsOperations',\n 'org.forgerock.openam.session.stateless.StatelessSessionManager',\n 'org.forgerock.openam.sm.datalayer.impl.ldap.ExternalLdapConfig',\n 'org.forgerock.openam.sm.datalayer.impl.ldap.LdapQueryBuilder',\n 'org.forgerock.openam.sm.datalayer.impl.SeriesTaskExecutor',\n 'org.forgerock.openam.sm.datalayer.impl.SeriesTaskExecutorThread',\n 'org.forgerock.openam.sm.datalayer.providers.LdapConnectionFactoryProvider',\n 'org.forgerock.openam.sm.file.ConfigFileSystemHandler',\n 'org.forgerock.openam.social.idp.SocialIdentityProviders',\n 'org.forgerock.openam.utils.ClientUtils',\n 'org.forgerock.opendj.ldap.CachedConnectionPool',\n 'org.forgerock.opendj.ldap.LoadBalancer',\n 'org.forgerock.secrets.keystore.KeyStoreSecretStore',\n 'org.forgerock.secrets.propertyresolver.PropertyResolverSecretStore',\n 'org.forgerock.secrets.SecretsProvider',\n];\n\nconst journeysNoise = [\n 'org.forgerock.openam.auth.trees.engine.AuthTreeExecutor',\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst journeys = [\n 'org.forgerock.openam.auth.nodes.SelectIdPNode',\n 'org.forgerock.openam.auth.nodes.ValidatedPasswordNode',\n 'org.forgerock.openam.auth.nodes.ValidatedUsernameNode',\n 'org.forgerock.openam.auth.trees.engine.AuthTreeExecutor',\n];\n\nconst samlNoise = [\n 'com.sun.identity.cot.COTCache',\n 'com.sun.identity.plugin.configuration.impl.ConfigurationInstanceImpl',\n 'com.sun.identity.saml2.meta.SAML2MetaCache',\n 'com.sun.identity.saml2.profile.CacheCleanUpRunnable',\n 'org.apache.xml.security.keys.KeyInfo',\n 'org.apache.xml.security.signature.XMLSignature',\n 'org.apache.xml.security.utils.SignerOutputStream',\n 'org.apache.xml.security.utils.resolver.ResourceResolver',\n 'org.apache.xml.security.utils.resolver.implementations.ResolverFragment',\n 'org.apache.xml.security.algorithms.JCEMapper',\n 'org.apache.xml.security.algorithms.implementations.SignatureBaseRSA',\n 'org.apache.xml.security.algorithms.SignatureAlgorithm',\n 'org.apache.xml.security.utils.ElementProxy',\n 'org.apache.xml.security.transforms.Transforms',\n 'org.apache.xml.security.utils.DigesterOutputStream',\n 'org.apache.xml.security.signature.Reference',\n 'org.apache.xml.security.signature.Manifest',\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst saml = [\n 'jsp.saml2.spAssertionConsumer',\n 'com.sun.identity.saml.common.SAMLUtils',\n 'com.sun.identity.saml2.common.SAML2Utils',\n 'com.sun.identity.saml2.meta.SAML2MetaManager',\n 'com.sun.identity.saml2.xmlsig.FMSigProvider',\n];\n\nconst noise = miscNoise.concat(samlNoise).concat(journeysNoise);\n\nconst numLogLevelMap = {\n 0: ['SEVERE', 'ERROR', 'FATAL'],\n 1: ['WARNING', 'WARN', 'CONFIG'],\n 2: ['INFO', 'INFORMATION'],\n 3: ['DEBUG', 'FINE', 'FINER', 'FINEST'],\n 4: ['ALL'],\n};\n\nconst logLevelMap = {\n SEVERE: ['SEVERE', 'ERROR', 'FATAL'],\n ERROR: ['SEVERE', 'ERROR', 'FATAL'],\n FATAL: ['SEVERE', 'ERROR', 'FATAL'],\n WARN: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n WARNING: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n CONFIG: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n INFO: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n ],\n INFORMATION: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n ],\n DEBUG: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINE: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINER: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINEST: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n ALL: ['ALL'],\n};\n\n/**\n * Get default noise filter\n * @returns {string[]} array of default event types and loggers to be filtered out\n */\nexport function getDefaultNoiseFilter(): string[] {\n return noise;\n}\n\n/**\n * Resolve log level to an array of effective log levels\n * @param level string or numeric log level: 'FATAL', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'TRACE', 'ALL', 0, 1, 2, 3, 4\n * @returns {string[]} array of effective log levels\n */\nexport function resolveLevel(level: string | number): string[] {\n if (Number.isNaN(parseInt(level as string, 10))) {\n return logLevelMap[level];\n }\n return logLevelMap[numLogLevelMap[level as number][0]];\n}\n\n/**\n * Resolve a log event's level\n * @param {object} log log event\n * @returns {string} log level\n */\nexport function resolvePayloadLevel(log: LogEventSkeleton): string {\n // It seems that the undesirable 'text/plain' logs start with a date, not a LEVEL\n // Therefore, for those, this function returns null, and thus filters out the undesirable\n try {\n return log.type !== 'text/plain'\n ? (log.payload as LogEventPayloadSkeleton).level\n : (log.payload as string).match(/^([^:]*):/)[1];\n } catch (e) {\n // Fail-safe for no group match\n return null;\n }\n}\n\n/**\n * Get available log sources\n * @returns {Promise<string[]>} promise resolving to an array of available log sources\n */\nexport async function getLogSources() {\n const sources = (await getSources()).result;\n return sources;\n}\n\n/**\n * Get log api keys\n * @returns {Promise<LogApiKey[]>} promise resolving to an array of LogApiKey objects\n */\nexport async function getLogApiKeys(): Promise<LogApiKey[]> {\n const keys = (await getAPIKeys()).result;\n return keys;\n}\n\nexport { tail, fetch, createAPIKeyAndSecret };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LogOps.js","names":["createAPIKeyAndSecret","getAPIKeys","getSources","tail","fetch","unfilterableNoise","miscNoise","journeysNoise","journeys","samlNoise","saml","noise","concat","numLogLevelMap","logLevelMap","SEVERE","ERROR","FATAL","WARN","WARNING","CONFIG","INFO","INFORMATION","DEBUG","FINE","FINER","FINEST","ALL","getDefaultNoiseFilter","resolveLevel","level","Number","isNaN","parseInt","resolvePayloadLevel","log","type","payload","match","e","getLogSources","sources","result","getLogApiKeys","keys"],"sources":["../../../src/ops/cloud/LogOps.ts"],"sourcesContent":["import {\n LogApiKey,\n LogEventPayloadSkeleton,\n LogEventSkeleton,\n} from '../../api/ApiTypes';\nimport {\n createAPIKeyAndSecret,\n getAPIKeys,\n getSources,\n tail,\n fetch,\n} from '../../api/cloud/LogApi';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst unfilterableNoise = [\n 'text/plain', // Unfortunately, it is impossible to filter out those without excluding IDM script logging as well\n];\n\nconst miscNoise = [\n 'com.iplanet.dpro.session.operations.ServerSessionOperationStrategy',\n 'com.iplanet.dpro.session.SessionIDFactory',\n 'com.iplanet.dpro.session.share.SessionEncodeURL',\n 'com.iplanet.services.naming.WebtopNaming',\n 'com.iplanet.sso.providers.dpro.SSOProviderImpl',\n 'com.sun.identity.authentication.AuthContext',\n 'com.sun.identity.authentication.client.AuthClientUtils',\n 'com.sun.identity.authentication.config.AMAuthConfigType',\n 'com.sun.identity.authentication.config.AMAuthenticationManager',\n 'com.sun.identity.authentication.config.AMAuthLevelManager',\n 'com.sun.identity.authentication.config.AMConfiguration',\n 'com.sun.identity.authentication.jaas.LoginContext',\n 'com.sun.identity.authentication.modules.application.Application',\n 'com.sun.identity.authentication.server.AuthContextLocal',\n 'com.sun.identity.authentication.service.AMLoginContext',\n 'com.sun.identity.authentication.service.AuthContextLookup',\n 'com.sun.identity.authentication.service.AuthD',\n 'com.sun.identity.authentication.service.AuthUtils',\n 'com.sun.identity.authentication.service.DSAMECallbackHandler',\n 'com.sun.identity.authentication.service.LoginState',\n 'com.sun.identity.authentication.spi.AMLoginModule',\n 'com.sun.identity.delegation.DelegationEvaluatorImpl',\n 'com.sun.identity.idm.plugins.internal.AgentsRepo',\n 'com.sun.identity.idm.server.IdCachedServicesImpl',\n 'com.sun.identity.idm.server.IdRepoPluginsCache',\n 'com.sun.identity.idm.server.IdServicesImpl',\n 'com.sun.identity.log.spi.ISDebug',\n 'com.sun.identity.shared.encode.CookieUtils',\n 'com.sun.identity.sm.ldap.SMSLdapObject',\n 'com.sun.identity.sm.CachedSMSEntry',\n 'com.sun.identity.sm.CachedSubEntries',\n 'com.sun.identity.sm.DNMapper',\n 'com.sun.identity.sm.ServiceConfigImpl',\n 'com.sun.identity.sm.ServiceConfigManagerImpl',\n 'com.sun.identity.sm.SMSEntry',\n 'com.sun.identity.sm.SMSUtils',\n 'com.sun.identity.sm.SmsWrapperObject',\n 'oauth2',\n 'org.apache.http.client.protocol.RequestAuthCache',\n 'org.apache.http.impl.conn.PoolingHttpClientConnectionManager',\n 'org.apache.http.impl.nio.client.InternalHttpAsyncClient',\n 'org.apache.http.impl.nio.client.InternalIODispatch',\n 'org.apache.http.impl.nio.client.MainClientExec',\n 'org.apache.http.impl.nio.conn.ManagedNHttpClientConnectionImpl',\n 'org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager',\n 'org.forgerock.audit.AuditServiceImpl',\n 'org.forgerock.oauth2.core.RealmOAuth2ProviderSettings',\n 'org.forgerock.openam.authentication.service.JAASModuleDetector',\n 'org.forgerock.openam.authentication.service.LoginContextFactory',\n 'org.forgerock.openam.blacklist.BloomFilterBlacklist',\n 'org.forgerock.openam.blacklist.CTSBlacklist',\n 'org.forgerock.openam.core.realms.impl.CachingRealmLookup',\n 'org.forgerock.openam.core.rest.authn.RestAuthCallbackHandlerManager',\n 'org.forgerock.openam.core.rest.authn.trees.AuthTrees',\n 'org.forgerock.openam.cors.CorsFilter',\n 'org.forgerock.openam.cts.CTSPersistentStoreImpl',\n 'org.forgerock.openam.cts.impl.CoreTokenAdapter',\n 'org.forgerock.openam.cts.impl.queue.AsyncResultHandler',\n 'org.forgerock.openam.cts.reaper.ReaperDeleteOnQueryResultHandler',\n 'org.forgerock.openam.headers.DisableSameSiteCookiesFilter',\n 'org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo',\n 'org.forgerock.openam.rest.CsrfFilter',\n 'org.forgerock.openam.rest.restAuthenticationFilter',\n 'org.forgerock.openam.rest.fluent.CrestLoggingFilter',\n 'org.forgerock.openam.session.cts.CtsOperations',\n 'org.forgerock.openam.session.stateless.StatelessSessionManager',\n 'org.forgerock.openam.sm.datalayer.impl.ldap.ExternalLdapConfig',\n 'org.forgerock.openam.sm.datalayer.impl.ldap.LdapQueryBuilder',\n 'org.forgerock.openam.sm.datalayer.impl.SeriesTaskExecutor',\n 'org.forgerock.openam.sm.datalayer.impl.SeriesTaskExecutorThread',\n 'org.forgerock.openam.sm.datalayer.providers.LdapConnectionFactoryProvider',\n 'org.forgerock.openam.sm.file.ConfigFileSystemHandler',\n 'org.forgerock.openam.social.idp.SocialIdentityProviders',\n 'org.forgerock.openam.utils.ClientUtils',\n 'org.forgerock.opendj.ldap.CachedConnectionPool',\n 'org.forgerock.opendj.ldap.LoadBalancer',\n 'org.forgerock.secrets.keystore.KeyStoreSecretStore',\n 'org.forgerock.secrets.propertyresolver.PropertyResolverSecretStore',\n 'org.forgerock.secrets.SecretsProvider',\n];\n\nconst journeysNoise = [\n 'org.forgerock.openam.auth.trees.engine.AuthTreeExecutor',\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst journeys = [\n 'org.forgerock.openam.auth.nodes.SelectIdPNode',\n 'org.forgerock.openam.auth.nodes.ValidatedPasswordNode',\n 'org.forgerock.openam.auth.nodes.ValidatedUsernameNode',\n 'org.forgerock.openam.auth.trees.engine.AuthTreeExecutor',\n];\n\nconst samlNoise = [\n 'com.sun.identity.cot.COTCache',\n 'com.sun.identity.plugin.configuration.impl.ConfigurationInstanceImpl',\n 'com.sun.identity.saml2.meta.SAML2MetaCache',\n 'com.sun.identity.saml2.profile.CacheCleanUpRunnable',\n 'org.apache.xml.security.keys.KeyInfo',\n 'org.apache.xml.security.signature.XMLSignature',\n 'org.apache.xml.security.utils.SignerOutputStream',\n 'org.apache.xml.security.utils.resolver.ResourceResolver',\n 'org.apache.xml.security.utils.resolver.implementations.ResolverFragment',\n 'org.apache.xml.security.algorithms.JCEMapper',\n 'org.apache.xml.security.algorithms.implementations.SignatureBaseRSA',\n 'org.apache.xml.security.algorithms.SignatureAlgorithm',\n 'org.apache.xml.security.utils.ElementProxy',\n 'org.apache.xml.security.transforms.Transforms',\n 'org.apache.xml.security.utils.DigesterOutputStream',\n 'org.apache.xml.security.signature.Reference',\n 'org.apache.xml.security.signature.Manifest',\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst saml = [\n 'jsp.saml2.spAssertionConsumer',\n 'com.sun.identity.saml.common.SAMLUtils',\n 'com.sun.identity.saml2.common.SAML2Utils',\n 'com.sun.identity.saml2.meta.SAML2MetaManager',\n 'com.sun.identity.saml2.xmlsig.FMSigProvider',\n];\n\nconst noise = miscNoise.concat(samlNoise).concat(journeysNoise);\n\nconst numLogLevelMap = {\n 0: ['SEVERE', 'ERROR', 'FATAL'],\n 1: ['WARNING', 'WARN', 'CONFIG'],\n 2: ['INFO', 'INFORMATION'],\n 3: ['DEBUG', 'FINE', 'FINER', 'FINEST'],\n 4: ['ALL'],\n};\n\nconst logLevelMap = {\n SEVERE: ['SEVERE', 'ERROR', 'FATAL'],\n ERROR: ['SEVERE', 'ERROR', 'FATAL'],\n FATAL: ['SEVERE', 'ERROR', 'FATAL'],\n WARN: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n WARNING: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n CONFIG: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n INFO: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n ],\n INFORMATION: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n ],\n DEBUG: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINE: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINER: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINEST: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n ALL: ['ALL'],\n};\n\n/**\n * Get default noise filter\n * @returns {string[]} array of default event types and loggers to be filtered out\n */\nexport function getDefaultNoiseFilter(): string[] {\n return noise;\n}\n\n/**\n * Resolve log level to an array of effective log levels\n * @param level string or numeric log level: 'FATAL', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'TRACE', 'ALL', 0, 1, 2, 3, 4\n * @returns {string[]} array of effective log levels\n */\nexport function resolveLevel(level: string | number): string[] {\n if (Number.isNaN(parseInt(level as string, 10))) {\n return logLevelMap[level];\n }\n return logLevelMap[numLogLevelMap[level as number][0]];\n}\n\n/**\n * Resolve a log event's level\n * @param {object} log log event\n * @returns {string} log level\n */\nexport function resolvePayloadLevel(log: LogEventSkeleton): string {\n // It seems that the undesirable 'text/plain' logs start with a date, not a LEVEL\n // Therefore, for those, this function returns null, and thus filters out the undesirable\n try {\n return log.type !== 'text/plain'\n ? (log.payload as LogEventPayloadSkeleton).level\n : (log.payload as string).match(/^([^:]*):/)[1];\n } catch (e) {\n // Fail-safe for no group match\n return null;\n }\n}\n\n/**\n * Get available log sources\n * @returns {Promise<string[]>} promise resolving to an array of available log sources\n */\nexport async function getLogSources() {\n const sources = (await getSources()).result;\n return sources;\n}\n\n/**\n * Get log api keys\n * @returns {Promise<LogApiKey[]>} promise resolving to an array of LogApiKey objects\n */\nexport async function getLogApiKeys(): Promise<LogApiKey[]> {\n const keys = (await getAPIKeys()).result;\n return keys;\n}\n\nexport { tail, fetch, createAPIKeyAndSecret };\n"],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { createKeyValueTable, createProgressIndicator, createTable, printMessage, stopProgressIndicator, updateProgressIndicator } from
|
|
2
|
-
import { createNewVersionOfSecret, deleteSecret, deleteVersionOfSecret, getSecret, getSecrets, getSecretVersions, putSecret, setSecretDescription, setStatusOfVersionOfSecret, VersionOfSecretStatus } from
|
|
3
|
-
import wordwrap from
|
|
4
|
-
import { resolveUserName } from
|
|
5
|
-
|
|
1
|
+
import { createKeyValueTable, createProgressIndicator, createTable, printMessage, stopProgressIndicator, updateProgressIndicator } from "../utils/Console.js";
|
|
2
|
+
import { createNewVersionOfSecret, deleteSecret, deleteVersionOfSecret, getSecret, getSecrets, getSecretVersions, putSecret, setSecretDescription, setStatusOfVersionOfSecret, VersionOfSecretStatus } from "../../api/cloud/SecretsApi.js";
|
|
3
|
+
import wordwrap from "../utils/Wordwrap.js";
|
|
4
|
+
import { resolveUserName } from "../ManagedObjectOps.js";
|
|
6
5
|
/**
|
|
7
6
|
* List secrets
|
|
8
7
|
* @param {boolean} long Long version, all the fields
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecretsOps.js","names":["createKeyValueTable","createProgressIndicator","createTable","printMessage","stopProgressIndicator","updateProgressIndicator","createNewVersionOfSecret","deleteSecret","deleteVersionOfSecret","getSecret","getSecrets","getSecretVersions","putSecret","setSecretDescription","setStatusOfVersionOfSecret","VersionOfSecretStatus","wordwrap","resolveUserName","listSecrets","long","secrets","result","sort","a","b","_id","localeCompare","error","message","response","data","table","hAlign","content","secret","push","activeVersion","loadedVersion","loaded","description","lastChangedBy","Date","lastChangeDate","toLocaleString","toString","forEach","createSecret","id","value","encoding","useInPlaceholders","undefined","code","setDescriptionOfSecret","secretId","deleteSecretCmd","deleteSecretsCmd","length","listSecretVersionsCmd","versions","statusMap","ENABLED","DISABLED","DESTROYED","version","status","createDate","describeSecret","createNewVersionOfSecretCmd","activateVersionOfSecret","deactivateVersionOfSecret","deleteVersionOfSecretCmd"],"sources":["../../../src/ops/cloud/SecretsOps.ts"],"sourcesContent":["import {\n createKeyValueTable,\n createProgressIndicator,\n createTable,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from '../utils/Console';\nimport {\n createNewVersionOfSecret,\n deleteSecret,\n deleteVersionOfSecret,\n getSecret,\n getSecrets,\n getSecretVersions,\n putSecret,\n setSecretDescription,\n setStatusOfVersionOfSecret,\n VersionOfSecretStatus,\n} from '../../api/cloud/SecretsApi';\nimport wordwrap from '../utils/Wordwrap';\nimport { resolveUserName } from '../ManagedObjectOps';\n\n/**\n * List secrets\n * @param {boolean} long Long version, all the fields\n */\nexport async function listSecrets(long) {\n let secrets = [];\n try {\n secrets = (await getSecrets()).result;\n secrets.sort((a, b) => a._id.localeCompare(b._id));\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n }\n if (long) {\n const table = createTable([\n 'Id'['brightCyan'],\n { hAlign: 'right', content: 'Active\\nVersion'['brightCyan'] },\n { hAlign: 'right', content: 'Loaded\\nVersion'['brightCyan'] },\n 'Status'['brightCyan'],\n 'Description'['brightCyan'],\n 'Modifier'['brightCyan'],\n 'Modified'['brightCyan'],\n ]);\n for (const secret of secrets) {\n table.push([\n secret._id,\n { hAlign: 'right', content: secret.activeVersion },\n { hAlign: 'right', content: secret.loadedVersion },\n secret.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n wordwrap(secret.description, 40),\n // eslint-disable-next-line no-await-in-loop\n await resolveUserName('teammember', secret.lastChangedBy),\n new Date(secret.lastChangeDate).toLocaleString(),\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n secrets.forEach((secret) => {\n printMessage(secret._id, 'data');\n });\n }\n}\n\n/**\n * Create secret\n * @param {String} id secret id\n * @param {String} value secret value\n * @param {String} description secret description\n * @param {String} encoding secret encoding\n * @param {boolean} useInPlaceholders use secret in placeholders\n */\nexport async function createSecret(\n id,\n value,\n description,\n encoding,\n useInPlaceholders\n) {\n createProgressIndicator(\n undefined,\n `Creating secret ${id}...`,\n 'indeterminate'\n );\n try {\n await putSecret(id, value, description, encoding, useInPlaceholders);\n stopProgressIndicator(`Created secret ${id}`, 'success');\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Set description of secret\n * @param {String} secretId secret id\n * @param {String} description secret description\n */\nexport async function setDescriptionOfSecret(secretId, description) {\n createProgressIndicator(\n undefined,\n `Setting description of secret ${secretId}...`,\n 'indeterminate'\n );\n try {\n await setSecretDescription(secretId, description);\n stopProgressIndicator(`Set description of secret ${secretId}`, 'success');\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Delete a secret\n * @param {String} secretId secret id\n */\nexport async function deleteSecretCmd(secretId) {\n createProgressIndicator(\n undefined,\n `Deleting secret ${secretId}...`,\n 'indeterminate'\n );\n try {\n await deleteSecret(secretId);\n stopProgressIndicator(`Deleted secret ${secretId}`, 'success');\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Delete all secrets\n */\nexport async function deleteSecretsCmd() {\n try {\n const secrets = (await getSecrets()).result;\n createProgressIndicator(secrets.length, `Deleting secrets...`);\n for (const secret of secrets) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await deleteSecret(secret._id);\n updateProgressIndicator(`Deleted secret ${secret._id}`);\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n }\n stopProgressIndicator(`Secrets deleted.`);\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n}\n\n/**\n * List all the versions of the secret\n * @param {String} secretId secret id\n */\nexport async function listSecretVersionsCmd(secretId) {\n let versions = [];\n try {\n versions = await getSecretVersions(secretId);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n }\n const table = createTable([\n { hAlign: 'right', content: 'Version'['brightCyan'] },\n 'Status'['brightCyan'],\n 'Loaded'['brightCyan'],\n 'Created'['brightCyan'],\n ]);\n // versions.sort((a, b) => a._id.localeCompare(b._id));\n const statusMap = {\n ENABLED: 'active'['brightGreen'],\n DISABLED: 'inactive'['brightRed'],\n DESTROYED: 'deleted'['brightRed'],\n };\n for (const version of versions) {\n table.push([\n { hAlign: 'right', content: version.version },\n statusMap[version.status],\n version.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n new Date(version.createDate).toLocaleString(),\n ]);\n }\n printMessage(table.toString());\n}\n\n/**\n * Describe a secret\n * @param {String} secretId Secret id\n */\nexport async function describeSecret(secretId) {\n const secret = await getSecret(secretId);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], secret._id]);\n table.push(['Active Version'['brightCyan'], secret.activeVersion]);\n table.push(['Loaded Version'['brightCyan'], secret.loadedVersion]);\n table.push([\n 'Status'['brightCyan'],\n secret.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n ]);\n table.push(['Description'['brightCyan'], wordwrap(secret.description, 60)]);\n table.push([\n 'Modified'['brightCyan'],\n new Date(secret.lastChangeDate).toLocaleString(),\n ]);\n table.push([\n 'Modifier'['brightCyan'],\n await resolveUserName('teammember', secret.lastChangedBy),\n ]);\n table.push(['Modifier UUID'['brightCyan'], secret.lastChangedBy]);\n table.push(['Encoding'['brightCyan'], secret.encoding]);\n table.push(['Use In Placeholders'['brightCyan'], secret.useInPlaceholders]);\n printMessage(table.toString());\n printMessage('\\nSecret Versions:');\n await listSecretVersionsCmd(secretId);\n}\n\n/**\n * Create new version of secret\n * @param {String} secretId secret id\n * @param {String} value secret value\n */\nexport async function createNewVersionOfSecretCmd(secretId, value) {\n createProgressIndicator(\n undefined,\n `Creating new version of secret ${secretId}...`,\n 'indeterminate'\n );\n try {\n const version = await createNewVersionOfSecret(secretId, value);\n stopProgressIndicator(\n `Created version ${version.version} of secret ${secretId}`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Activate a version of a secret\n * @param {String} secretId secret id\n * @param {Number} version version of secret\n */\nexport async function activateVersionOfSecret(secretId, version) {\n createProgressIndicator(\n undefined,\n `Activating version ${version} of secret ${secretId}...`,\n 'indeterminate'\n );\n try {\n await setStatusOfVersionOfSecret(\n secretId,\n version,\n VersionOfSecretStatus.ENABLED\n );\n stopProgressIndicator(\n `Activated version ${version} of secret ${secretId}`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Deactivate a version of a secret\n * @param {String} secretId secret id\n * @param {Number} version version of secret\n */\nexport async function deactivateVersionOfSecret(secretId, version) {\n createProgressIndicator(\n undefined,\n `Deactivating version ${version} of secret ${secretId}...`,\n 'indeterminate'\n );\n try {\n await setStatusOfVersionOfSecret(\n secretId,\n version,\n VersionOfSecretStatus.DISABLED\n );\n stopProgressIndicator(\n `Deactivated version ${version} of secret ${secretId}`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Delete version of secret\n * @param {String} secretId secret id\n * @param {Number} version version of secret\n */\nexport async function deleteVersionOfSecretCmd(secretId, version) {\n createProgressIndicator(\n undefined,\n `Deleting version ${version} of secret ${secretId}...`,\n 'indeterminate'\n );\n try {\n await deleteVersionOfSecret(secretId, version);\n stopProgressIndicator(\n `Deleted version ${version} of secret ${secretId}`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SecretsOps.js","names":["createKeyValueTable","createProgressIndicator","createTable","printMessage","stopProgressIndicator","updateProgressIndicator","createNewVersionOfSecret","deleteSecret","deleteVersionOfSecret","getSecret","getSecrets","getSecretVersions","putSecret","setSecretDescription","setStatusOfVersionOfSecret","VersionOfSecretStatus","wordwrap","resolveUserName","listSecrets","long","secrets","result","sort","a","b","_id","localeCompare","error","message","response","data","table","hAlign","content","secret","push","activeVersion","loadedVersion","loaded","description","lastChangedBy","Date","lastChangeDate","toLocaleString","toString","forEach","createSecret","id","value","encoding","useInPlaceholders","undefined","code","setDescriptionOfSecret","secretId","deleteSecretCmd","deleteSecretsCmd","length","listSecretVersionsCmd","versions","statusMap","ENABLED","DISABLED","DESTROYED","version","status","createDate","describeSecret","createNewVersionOfSecretCmd","activateVersionOfSecret","deactivateVersionOfSecret","deleteVersionOfSecretCmd"],"sources":["../../../src/ops/cloud/SecretsOps.ts"],"sourcesContent":["import {\n createKeyValueTable,\n createProgressIndicator,\n createTable,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from '../utils/Console';\nimport {\n createNewVersionOfSecret,\n deleteSecret,\n deleteVersionOfSecret,\n getSecret,\n getSecrets,\n getSecretVersions,\n putSecret,\n setSecretDescription,\n setStatusOfVersionOfSecret,\n VersionOfSecretStatus,\n} from '../../api/cloud/SecretsApi';\nimport wordwrap from '../utils/Wordwrap';\nimport { resolveUserName } from '../ManagedObjectOps';\n\n/**\n * List secrets\n * @param {boolean} long Long version, all the fields\n */\nexport async function listSecrets(long) {\n let secrets = [];\n try {\n secrets = (await getSecrets()).result;\n secrets.sort((a, b) => a._id.localeCompare(b._id));\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n }\n if (long) {\n const table = createTable([\n 'Id'['brightCyan'],\n { hAlign: 'right', content: 'Active\\nVersion'['brightCyan'] },\n { hAlign: 'right', content: 'Loaded\\nVersion'['brightCyan'] },\n 'Status'['brightCyan'],\n 'Description'['brightCyan'],\n 'Modifier'['brightCyan'],\n 'Modified'['brightCyan'],\n ]);\n for (const secret of secrets) {\n table.push([\n secret._id,\n { hAlign: 'right', content: secret.activeVersion },\n { hAlign: 'right', content: secret.loadedVersion },\n secret.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n wordwrap(secret.description, 40),\n // eslint-disable-next-line no-await-in-loop\n await resolveUserName('teammember', secret.lastChangedBy),\n new Date(secret.lastChangeDate).toLocaleString(),\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n secrets.forEach((secret) => {\n printMessage(secret._id, 'data');\n });\n }\n}\n\n/**\n * Create secret\n * @param {String} id secret id\n * @param {String} value secret value\n * @param {String} description secret description\n * @param {String} encoding secret encoding\n * @param {boolean} useInPlaceholders use secret in placeholders\n */\nexport async function createSecret(\n id,\n value,\n description,\n encoding,\n useInPlaceholders\n) {\n createProgressIndicator(\n undefined,\n `Creating secret ${id}...`,\n 'indeterminate'\n );\n try {\n await putSecret(id, value, description, encoding, useInPlaceholders);\n stopProgressIndicator(`Created secret ${id}`, 'success');\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Set description of secret\n * @param {String} secretId secret id\n * @param {String} description secret description\n */\nexport async function setDescriptionOfSecret(secretId, description) {\n createProgressIndicator(\n undefined,\n `Setting description of secret ${secretId}...`,\n 'indeterminate'\n );\n try {\n await setSecretDescription(secretId, description);\n stopProgressIndicator(`Set description of secret ${secretId}`, 'success');\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Delete a secret\n * @param {String} secretId secret id\n */\nexport async function deleteSecretCmd(secretId) {\n createProgressIndicator(\n undefined,\n `Deleting secret ${secretId}...`,\n 'indeterminate'\n );\n try {\n await deleteSecret(secretId);\n stopProgressIndicator(`Deleted secret ${secretId}`, 'success');\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Delete all secrets\n */\nexport async function deleteSecretsCmd() {\n try {\n const secrets = (await getSecrets()).result;\n createProgressIndicator(secrets.length, `Deleting secrets...`);\n for (const secret of secrets) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await deleteSecret(secret._id);\n updateProgressIndicator(`Deleted secret ${secret._id}`);\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n }\n stopProgressIndicator(`Secrets deleted.`);\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n}\n\n/**\n * List all the versions of the secret\n * @param {String} secretId secret id\n */\nexport async function listSecretVersionsCmd(secretId) {\n let versions = [];\n try {\n versions = await getSecretVersions(secretId);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n }\n const table = createTable([\n { hAlign: 'right', content: 'Version'['brightCyan'] },\n 'Status'['brightCyan'],\n 'Loaded'['brightCyan'],\n 'Created'['brightCyan'],\n ]);\n // versions.sort((a, b) => a._id.localeCompare(b._id));\n const statusMap = {\n ENABLED: 'active'['brightGreen'],\n DISABLED: 'inactive'['brightRed'],\n DESTROYED: 'deleted'['brightRed'],\n };\n for (const version of versions) {\n table.push([\n { hAlign: 'right', content: version.version },\n statusMap[version.status],\n version.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n new Date(version.createDate).toLocaleString(),\n ]);\n }\n printMessage(table.toString());\n}\n\n/**\n * Describe a secret\n * @param {String} secretId Secret id\n */\nexport async function describeSecret(secretId) {\n const secret = await getSecret(secretId);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], secret._id]);\n table.push(['Active Version'['brightCyan'], secret.activeVersion]);\n table.push(['Loaded Version'['brightCyan'], secret.loadedVersion]);\n table.push([\n 'Status'['brightCyan'],\n secret.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n ]);\n table.push(['Description'['brightCyan'], wordwrap(secret.description, 60)]);\n table.push([\n 'Modified'['brightCyan'],\n new Date(secret.lastChangeDate).toLocaleString(),\n ]);\n table.push([\n 'Modifier'['brightCyan'],\n await resolveUserName('teammember', secret.lastChangedBy),\n ]);\n table.push(['Modifier UUID'['brightCyan'], secret.lastChangedBy]);\n table.push(['Encoding'['brightCyan'], secret.encoding]);\n table.push(['Use In Placeholders'['brightCyan'], secret.useInPlaceholders]);\n printMessage(table.toString());\n printMessage('\\nSecret Versions:');\n await listSecretVersionsCmd(secretId);\n}\n\n/**\n * Create new version of secret\n * @param {String} secretId secret id\n * @param {String} value secret value\n */\nexport async function createNewVersionOfSecretCmd(secretId, value) {\n createProgressIndicator(\n undefined,\n `Creating new version of secret ${secretId}...`,\n 'indeterminate'\n );\n try {\n const version = await createNewVersionOfSecret(secretId, value);\n stopProgressIndicator(\n `Created version ${version.version} of secret ${secretId}`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Activate a version of a secret\n * @param {String} secretId secret id\n * @param {Number} version version of secret\n */\nexport async function activateVersionOfSecret(secretId, version) {\n createProgressIndicator(\n undefined,\n `Activating version ${version} of secret ${secretId}...`,\n 'indeterminate'\n );\n try {\n await setStatusOfVersionOfSecret(\n secretId,\n version,\n VersionOfSecretStatus.ENABLED\n );\n stopProgressIndicator(\n `Activated version ${version} of secret ${secretId}`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Deactivate a version of a secret\n * @param {String} secretId secret id\n * @param {Number} version version of secret\n */\nexport async function deactivateVersionOfSecret(secretId, version) {\n createProgressIndicator(\n undefined,\n `Deactivating version ${version} of secret ${secretId}...`,\n 'indeterminate'\n );\n try {\n await setStatusOfVersionOfSecret(\n secretId,\n version,\n VersionOfSecretStatus.DISABLED\n );\n stopProgressIndicator(\n `Deactivated version ${version} of secret ${secretId}`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Delete version of secret\n * @param {String} secretId secret id\n * @param {Number} version version of secret\n */\nexport async function deleteVersionOfSecretCmd(secretId, version) {\n createProgressIndicator(\n undefined,\n `Deleting version ${version} of secret ${secretId}...`,\n 'indeterminate'\n );\n try {\n await deleteVersionOfSecret(secretId, version);\n stopProgressIndicator(\n `Deleted version ${version} of secret ${secretId}`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createManagedObject, getManagedObject } from
|
|
2
|
-
import { debugMessage } from
|
|
3
|
-
import { hasFeature } from
|
|
1
|
+
import { createManagedObject, getManagedObject } from "../../api/ManagedObjectApi.js";
|
|
2
|
+
import { debugMessage } from "../utils/Console.js";
|
|
3
|
+
import { hasFeature } from "./FeatureOps.js";
|
|
4
4
|
const moType = 'svcacct';
|
|
5
5
|
/**
|
|
6
6
|
* Global flag indicating if service accounts are available
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceAccountOps.js","names":["createManagedObject","getManagedObject","debugMessage","hasFeature","moType","_featureAvailable","undefined","isServiceAccountsFeatureAvailable","createServiceAccount","name","description","accountStatus","scopes","jwks","payload","JSON","stringify","result","getServiceAccount","serviceAccountId","serviceAccount"],"sources":["../../../src/ops/cloud/ServiceAccountOps.ts"],"sourcesContent":["import {\n createManagedObject,\n getManagedObject,\n} from '../../api/ManagedObjectApi';\nimport { JwksInterface } from '../JoseOps';\nimport { IdObjectSkeletonInterface } from '../../api/ApiTypes';\nimport { debugMessage } from '../utils/Console';\nimport { hasFeature } from './FeatureOps';\n\nconst moType = 'svcacct';\n\nexport interface ServiceAccountPayloadInterface {\n name: string;\n description: string;\n accountStatus: 'Active' | 'Inactive';\n scopes: string[];\n jwks: string;\n}\n\nexport type ServiceAccount = IdObjectSkeletonInterface &\n ServiceAccountPayloadInterface;\n\n/**\n * Global flag indicating if service accounts are available\n */\nlet _featureAvailable: boolean = undefined;\n\n/**\n * Check if service accounts are available\n * @returns {Promise<boolean>} true if service accounts are available, false otherwise\n */\nexport async function isServiceAccountsFeatureAvailable(): Promise<boolean> {\n debugMessage(`ServiceAccountOps.isServiceAccountsFeatureAvailable: start`);\n // only perform check once\n if (typeof _featureAvailable !== 'undefined') return _featureAvailable;\n\n _featureAvailable = await hasFeature('service-accounts');\n debugMessage(\n `ServiceAccountOps.isServiceAccountsFeatureAvailable: end, available=${_featureAvailable}`\n );\n return _featureAvailable;\n}\n\n/**\n * Create service account\n * @param {string} name Human-readable name of service account\n * @param {string} description Description of service account\n * @param {'Active' | 'Inactive'} accountStatus Service account status\n * @param {string[]} scopes Scopes.\n * @param {JwksInterface} jwks Java Web Key Set\n * @returns {Promise<IdObjectSkeletonInterface>} A promise resolving to a service account object\n */\nexport async function createServiceAccount(\n name: string,\n description: string,\n accountStatus: 'Active' | 'Inactive',\n scopes: string[],\n jwks: JwksInterface\n): Promise<IdObjectSkeletonInterface> {\n debugMessage(`ServiceAccountOps.createServiceAccount: start`);\n const payload: ServiceAccountPayloadInterface = {\n name,\n description,\n accountStatus,\n scopes,\n jwks: JSON.stringify(jwks),\n };\n debugMessage(`ServiceAccountOps: createServiceAccount: payload:`);\n debugMessage(payload);\n const result = await createManagedObject(moType, payload);\n debugMessage(`ServiceAccountOps.createServiceAccount: end`);\n return result;\n}\n\nexport async function getServiceAccount(serviceAccountId: string) {\n const serviceAccount = await getManagedObject(moType, serviceAccountId);\n return serviceAccount as ServiceAccount;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ServiceAccountOps.js","names":["createManagedObject","getManagedObject","debugMessage","hasFeature","moType","_featureAvailable","undefined","isServiceAccountsFeatureAvailable","createServiceAccount","name","description","accountStatus","scopes","jwks","payload","JSON","stringify","result","getServiceAccount","serviceAccountId","serviceAccount"],"sources":["../../../src/ops/cloud/ServiceAccountOps.ts"],"sourcesContent":["import {\n createManagedObject,\n getManagedObject,\n} from '../../api/ManagedObjectApi';\nimport { JwksInterface } from '../JoseOps';\nimport { IdObjectSkeletonInterface } from '../../api/ApiTypes';\nimport { debugMessage } from '../utils/Console';\nimport { hasFeature } from './FeatureOps';\n\nconst moType = 'svcacct';\n\nexport interface ServiceAccountPayloadInterface {\n name: string;\n description: string;\n accountStatus: 'Active' | 'Inactive';\n scopes: string[];\n jwks: string;\n}\n\nexport type ServiceAccount = IdObjectSkeletonInterface &\n ServiceAccountPayloadInterface;\n\n/**\n * Global flag indicating if service accounts are available\n */\nlet _featureAvailable: boolean = undefined;\n\n/**\n * Check if service accounts are available\n * @returns {Promise<boolean>} true if service accounts are available, false otherwise\n */\nexport async function isServiceAccountsFeatureAvailable(): Promise<boolean> {\n debugMessage(`ServiceAccountOps.isServiceAccountsFeatureAvailable: start`);\n // only perform check once\n if (typeof _featureAvailable !== 'undefined') return _featureAvailable;\n\n _featureAvailable = await hasFeature('service-accounts');\n debugMessage(\n `ServiceAccountOps.isServiceAccountsFeatureAvailable: end, available=${_featureAvailable}`\n );\n return _featureAvailable;\n}\n\n/**\n * Create service account\n * @param {string} name Human-readable name of service account\n * @param {string} description Description of service account\n * @param {'Active' | 'Inactive'} accountStatus Service account status\n * @param {string[]} scopes Scopes.\n * @param {JwksInterface} jwks Java Web Key Set\n * @returns {Promise<IdObjectSkeletonInterface>} A promise resolving to a service account object\n */\nexport async function createServiceAccount(\n name: string,\n description: string,\n accountStatus: 'Active' | 'Inactive',\n scopes: string[],\n jwks: JwksInterface\n): Promise<IdObjectSkeletonInterface> {\n debugMessage(`ServiceAccountOps.createServiceAccount: start`);\n const payload: ServiceAccountPayloadInterface = {\n name,\n description,\n accountStatus,\n scopes,\n jwks: JSON.stringify(jwks),\n };\n debugMessage(`ServiceAccountOps: createServiceAccount: payload:`);\n debugMessage(payload);\n const result = await createManagedObject(moType, payload);\n debugMessage(`ServiceAccountOps.createServiceAccount: end`);\n return result;\n}\n\nexport async function getServiceAccount(serviceAccountId: string) {\n const serviceAccount = await getManagedObject(moType, serviceAccountId);\n return serviceAccount as ServiceAccount;\n}\n"],"mappings":"SACEA,mBAAmB,EACnBC,gBAAgB;AAAA,SAITC,YAAY;AAAA,SACZC,UAAU;AAEnB,MAAMC,MAAM,GAAG,SAAS;AAaxB;AACA;AACA;AACA,IAAIC,iBAA0B,GAAGC,SAAS;;AAE1C;AACA;AACA;AACA;AACA,OAAO,eAAeC,iCAAiCA,CAAA,EAAqB;EAC1EL,YAAY,CAAE,4DAA2D,CAAC;EAC1E;EACA,IAAI,OAAOG,iBAAiB,KAAK,WAAW,EAAE,OAAOA,iBAAiB;EAEtEA,iBAAiB,GAAG,MAAMF,UAAU,CAAC,kBAAkB,CAAC;EACxDD,YAAY,CACT,uEAAsEG,iBAAkB,EAC3F,CAAC;EACD,OAAOA,iBAAiB;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeG,oBAAoBA,CACxCC,IAAY,EACZC,WAAmB,EACnBC,aAAoC,EACpCC,MAAgB,EAChBC,IAAmB,EACiB;EACpCX,YAAY,CAAE,+CAA8C,CAAC;EAC7D,MAAMY,OAAuC,GAAG;IAC9CL,IAAI;IACJC,WAAW;IACXC,aAAa;IACbC,MAAM;IACNC,IAAI,EAAEE,IAAI,CAACC,SAAS,CAACH,IAAI;EAC3B,CAAC;EACDX,YAAY,CAAE,mDAAkD,CAAC;EACjEA,YAAY,CAACY,OAAO,CAAC;EACrB,MAAMG,MAAM,GAAG,MAAMjB,mBAAmB,CAACI,MAAM,EAAEU,OAAO,CAAC;EACzDZ,YAAY,CAAE,6CAA4C,CAAC;EAC3D,OAAOe,MAAM;AACf;AAEA,OAAO,eAAeC,iBAAiBA,CAACC,gBAAwB,EAAE;EAChE,MAAMC,cAAc,GAAG,MAAMnB,gBAAgB,CAACG,MAAM,EAAEe,gBAAgB,CAAC;EACvE,OAAOC,cAAc;AACvB"}
|
|
@@ -32,11 +32,9 @@
|
|
|
32
32
|
* Note: FRODO_DEBUG=1 is optional and enables debug logging for some output
|
|
33
33
|
* in case things don't function as expected
|
|
34
34
|
*/
|
|
35
|
-
import { createJwkRsa, createJwks, getJwkRsaPublic } from
|
|
36
|
-
import * as ServiceAccount from
|
|
37
|
-
import { autoSetupPolly, defaultMatchRequestsBy } from
|
|
38
|
-
|
|
39
|
-
// need to modify the default matching rules to allow the mocking to work for service account tests.
|
|
35
|
+
import { createJwkRsa, createJwks, getJwkRsaPublic } from "../JoseOps.js";
|
|
36
|
+
import * as ServiceAccount from "./ServiceAccountOps.js";
|
|
37
|
+
import { autoSetupPolly, defaultMatchRequestsBy } from "../../utils/AutoSetupPolly.js"; // need to modify the default matching rules to allow the mocking to work for service account tests.
|
|
40
38
|
const matchConfig = defaultMatchRequestsBy();
|
|
41
39
|
matchConfig.body = false; // service account create requests are tricky because of the public key, which is different for each request
|
|
42
40
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceAccountOps.test.js","names":["createJwkRsa","createJwks","getJwkRsaPublic","ServiceAccount","autoSetupPolly","defaultMatchRequestsBy","matchConfig","body","describe","only","test","expect","isServiceAccountsFeatureAvailable","toBeDefined","response","toBeTruthy","createServiceAccount","name","description","accountStatus","scopes","jwk","publicJwk","jwks","toMatchSnapshot"],"sources":["../../../src/ops/cloud/ServiceAccountOps.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses\n *\n * To record API responses, you must call the test:record script and\n * override all the connection state variables required to connect to the\n * env to record from:\n *\n * ATTENTION: For the recording to succeed, you MUST make sure to use a\n * user account, not a service account.\n *\n * FRODO_DEBUG=1 FRODO_HOST=frodo-dev npm run test:record ServiceAccountOps\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update snapshots\n *\n * After recording API responses, you must manually update/create snapshots\n * by running:\n *\n * FRODO_DEBUG=1 npm run test:update ServiceAccountOps\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test:only ServiceAccountOps\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { createJwkRsa, createJwks, getJwkRsaPublic } from '../JoseOps';\nimport * as ServiceAccount from './ServiceAccountOps';\nimport {\n autoSetupPolly,\n defaultMatchRequestsBy,\n} from '../../utils/AutoSetupPolly';\n\n// need to modify the default matching rules to allow the mocking to work for service account tests.\nconst matchConfig = defaultMatchRequestsBy();\nmatchConfig.body = false; // service account create requests are tricky because of the public key, which is different for each request\n\nautoSetupPolly(matchConfig);\n\ndescribe.only('ServiceAccountOps', () => {\n describe('isServiceAccountsFeatureAvailable()', () => {\n test('0: Method is implemented', async () => {\n expect(ServiceAccount.isServiceAccountsFeatureAvailable).toBeDefined();\n });\n\n test('1: Check tenant supporting service accounts', async () => {\n const response = await ServiceAccount.isServiceAccountsFeatureAvailable();\n expect(response).toBeTruthy();\n });\n\n // test('2: Check tenant not supporting service accounts', async () => {\n // (context.polly as Polly).server.any().on('request', (req) => {\n // req.overrideRecordingName(\n // 'ServiceAccountOps/isServiceAccountsFeatureAvailable()/2: Check tenant not supporting service accounts'\n // );\n // console.log(`+++++polly: recordingName: ${req.recordingName}`);\n // });\n // const response = await ServiceAccount.isServiceAccountsFeatureAvailable();\n // expect(response).toBeFalsy();\n // });\n });\n\n describe('createServiceAccount()', () => {\n test('0: Method is implemented', async () => {\n expect(ServiceAccount.createServiceAccount).toBeDefined();\n });\n\n test('1: Create service account', async () => {\n const name = 'sa';\n const description = 'service account';\n const accountStatus = 'Active';\n const scopes = ['fr:am:*', 'fr:idm:*', 'fr:idc:esv:*'];\n const jwk = await createJwkRsa();\n const publicJwk = await getJwkRsaPublic(jwk);\n const jwks = createJwks(publicJwk);\n const response = await ServiceAccount.createServiceAccount(\n name,\n description,\n accountStatus,\n scopes,\n jwks\n );\n expect(response).toMatchSnapshot();\n });\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"file":"ServiceAccountOps.test.js","names":["createJwkRsa","createJwks","getJwkRsaPublic","ServiceAccount","autoSetupPolly","defaultMatchRequestsBy","matchConfig","body","describe","only","test","expect","isServiceAccountsFeatureAvailable","toBeDefined","response","toBeTruthy","createServiceAccount","name","description","accountStatus","scopes","jwk","publicJwk","jwks","toMatchSnapshot"],"sources":["../../../src/ops/cloud/ServiceAccountOps.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses\n *\n * To record API responses, you must call the test:record script and\n * override all the connection state variables required to connect to the\n * env to record from:\n *\n * ATTENTION: For the recording to succeed, you MUST make sure to use a\n * user account, not a service account.\n *\n * FRODO_DEBUG=1 FRODO_HOST=frodo-dev npm run test:record ServiceAccountOps\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update snapshots\n *\n * After recording API responses, you must manually update/create snapshots\n * by running:\n *\n * FRODO_DEBUG=1 npm run test:update ServiceAccountOps\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test:only ServiceAccountOps\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { createJwkRsa, createJwks, getJwkRsaPublic } from '../JoseOps';\nimport * as ServiceAccount from './ServiceAccountOps';\nimport {\n autoSetupPolly,\n defaultMatchRequestsBy,\n} from '../../utils/AutoSetupPolly';\n\n// need to modify the default matching rules to allow the mocking to work for service account tests.\nconst matchConfig = defaultMatchRequestsBy();\nmatchConfig.body = false; // service account create requests are tricky because of the public key, which is different for each request\n\nautoSetupPolly(matchConfig);\n\ndescribe.only('ServiceAccountOps', () => {\n describe('isServiceAccountsFeatureAvailable()', () => {\n test('0: Method is implemented', async () => {\n expect(ServiceAccount.isServiceAccountsFeatureAvailable).toBeDefined();\n });\n\n test('1: Check tenant supporting service accounts', async () => {\n const response = await ServiceAccount.isServiceAccountsFeatureAvailable();\n expect(response).toBeTruthy();\n });\n\n // test('2: Check tenant not supporting service accounts', async () => {\n // (context.polly as Polly).server.any().on('request', (req) => {\n // req.overrideRecordingName(\n // 'ServiceAccountOps/isServiceAccountsFeatureAvailable()/2: Check tenant not supporting service accounts'\n // );\n // console.log(`+++++polly: recordingName: ${req.recordingName}`);\n // });\n // const response = await ServiceAccount.isServiceAccountsFeatureAvailable();\n // expect(response).toBeFalsy();\n // });\n });\n\n describe('createServiceAccount()', () => {\n test('0: Method is implemented', async () => {\n expect(ServiceAccount.createServiceAccount).toBeDefined();\n });\n\n test('1: Create service account', async () => {\n const name = 'sa';\n const description = 'service account';\n const accountStatus = 'Active';\n const scopes = ['fr:am:*', 'fr:idm:*', 'fr:idc:esv:*'];\n const jwk = await createJwkRsa();\n const publicJwk = await getJwkRsaPublic(jwk);\n const jwks = createJwks(publicJwk);\n const response = await ServiceAccount.createServiceAccount(\n name,\n description,\n accountStatus,\n scopes,\n jwks\n );\n expect(response).toMatchSnapshot();\n });\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAjCA,SAkCSA,YAAY,EAAEC,UAAU,EAAEC,eAAe;AAAA,OAC3C,KAAKC,cAAc;AAAA,SAExBC,cAAc,EACdC,sBAAsB,yCAGxB;AACA,MAAMC,WAAW,GAAGD,sBAAsB,CAAC,CAAC;AAC5CC,WAAW,CAACC,IAAI,GAAG,KAAK,CAAC,CAAC;;AAE1BH,cAAc,CAACE,WAAW,CAAC;AAE3BE,QAAQ,CAACC,IAAI,CAAC,mBAAmB,EAAE,MAAM;EACvCD,QAAQ,CAAC,qCAAqC,EAAE,MAAM;IACpDE,IAAI,CAAC,0BAA0B,EAAE,YAAY;MAC3CC,MAAM,CAACR,cAAc,CAACS,iCAAiC,CAAC,CAACC,WAAW,CAAC,CAAC;IACxE,CAAC,CAAC;IAEFH,IAAI,CAAC,6CAA6C,EAAE,YAAY;MAC9D,MAAMI,QAAQ,GAAG,MAAMX,cAAc,CAACS,iCAAiC,CAAC,CAAC;MACzED,MAAM,CAACG,QAAQ,CAAC,CAACC,UAAU,CAAC,CAAC;IAC/B,CAAC,CAAC;;IAEF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;EACF,CAAC,CAAC;;EAEFP,QAAQ,CAAC,wBAAwB,EAAE,MAAM;IACvCE,IAAI,CAAC,0BAA0B,EAAE,YAAY;MAC3CC,MAAM,CAACR,cAAc,CAACa,oBAAoB,CAAC,CAACH,WAAW,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEFH,IAAI,CAAC,2BAA2B,EAAE,YAAY;MAC5C,MAAMO,IAAI,GAAG,IAAI;MACjB,MAAMC,WAAW,GAAG,iBAAiB;MACrC,MAAMC,aAAa,GAAG,QAAQ;MAC9B,MAAMC,MAAM,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,cAAc,CAAC;MACtD,MAAMC,GAAG,GAAG,MAAMrB,YAAY,CAAC,CAAC;MAChC,MAAMsB,SAAS,GAAG,MAAMpB,eAAe,CAACmB,GAAG,CAAC;MAC5C,MAAME,IAAI,GAAGtB,UAAU,CAACqB,SAAS,CAAC;MAClC,MAAMR,QAAQ,GAAG,MAAMX,cAAc,CAACa,oBAAoB,CACxDC,IAAI,EACJC,WAAW,EACXC,aAAa,EACbC,MAAM,EACNG,IACF,CAAC;MACDZ,MAAM,CAACG,QAAQ,CAAC,CAACU,eAAe,CAAC,CAAC;IACpC,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { createProgressIndicator, updateProgressIndicator, stopProgressIndicator } from
|
|
2
|
-
import { getSecrets } from
|
|
3
|
-
import { getStatus, initiateRestart, RestartStatus } from
|
|
4
|
-
import { getVariables } from
|
|
5
|
-
|
|
1
|
+
import { createProgressIndicator, updateProgressIndicator, stopProgressIndicator } from "../utils/Console.js";
|
|
2
|
+
import { getSecrets } from "../../api/cloud/SecretsApi.js";
|
|
3
|
+
import { getStatus, initiateRestart, RestartStatus } from "../../api/cloud/StartupApi.js";
|
|
4
|
+
import { getVariables } from "../../api/cloud/VariablesApi.js";
|
|
6
5
|
/**
|
|
7
6
|
* Updates that need to be applied.
|
|
8
7
|
*/
|
|
9
|
-
|
|
10
8
|
/**
|
|
11
9
|
* Check for updates that need applying
|
|
12
10
|
* @returns {Promise<boolean>} true if there are updates that need to be applied, false otherwise
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartupOps.js","names":["createProgressIndicator","updateProgressIndicator","stopProgressIndicator","getSecrets","getStatus","initiateRestart","RestartStatus","getVariables","checkForUpdates","_updates$secrets","_updates$variables","updates","secrets","variables","undefined","result","filter","secret","loaded","variable","error","response","data","code","message","updateCount","length","applyUpdates","wait","timeout","status","start","Date","getTime","runtime","errors","maxErrors","ready","Promise","resolve","setTimeout","Math","round","_error$response","_error$response$data","_error$response2","_error$response2$data"],"sources":["../../../src/ops/cloud/StartupOps.ts"],"sourcesContent":["import {\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from '../utils/Console';\nimport { getSecrets } from '../../api/cloud/SecretsApi';\nimport {\n getStatus,\n initiateRestart,\n RestartStatus,\n} from '../../api/cloud/StartupApi';\nimport { getVariables } from '../../api/cloud/VariablesApi';\n\n/**\n * Updates that need to be applied.\n */\nexport interface Updates {\n /**\n * Array of secrets that need applying\n */\n secrets?: unknown[];\n /**\n * Array of variables that need applying\n */\n variables?: unknown[];\n}\n\n/**\n * Check for updates that need applying\n * @returns {Promise<boolean>} true if there are updates that need to be applied, false otherwise\n */\nexport async function checkForUpdates(): Promise<Updates> {\n const updates: Updates = { secrets: [], variables: [] };\n createProgressIndicator(\n undefined,\n `Checking for updates to apply...`,\n 'indeterminate'\n );\n try {\n updates.secrets = (await getSecrets()).result.filter(\n (secret: { loaded: unknown }) => !secret.loaded\n );\n updates.variables = (await getVariables()).result.filter(\n (variable: { loaded: unknown }) => !variable.loaded\n );\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n const updateCount = updates.secrets?.length + updates.variables?.length || 0;\n if (updateCount > 0) {\n stopProgressIndicator(\n `${updateCount} update(s) need to be applied`,\n 'success'\n );\n } else {\n stopProgressIndicator(`No updates need to be applied`, 'success');\n }\n return updates;\n}\n\n/**\n * Apply updates\n * @param {boolean} wait wait for the operation to complete or not\n * @param {number} timeout timeout in milliseconds\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function applyUpdates(wait: boolean, timeout = 10 * 60 * 1000) {\n createProgressIndicator(undefined, `Applying updates...`, 'indeterminate');\n try {\n let status = await initiateRestart();\n if (wait) {\n const start = new Date().getTime();\n let runtime = 0;\n let errors = 0;\n const maxErrors = 3;\n while (\n status !== RestartStatus.ready &&\n start + timeout > new Date().getTime()\n ) {\n await new Promise((resolve) => setTimeout(resolve, 5000));\n try {\n status = await getStatus();\n\n // reset errors after successful status call\n if (errors) errors = 0;\n\n runtime = new Date().getTime() - start;\n updateProgressIndicator(`${status} (${Math.round(runtime / 1000)}s)`);\n } catch (error) {\n errors++;\n if (errors > maxErrors) {\n throw error;\n }\n runtime = new Date().getTime() - start;\n updateProgressIndicator(\n `${error.message} - retry ${errors}/${maxErrors} (${Math.round(\n runtime / 1000\n )}s)`\n );\n }\n }\n if (runtime < timeout) {\n stopProgressIndicator(\n `Updates applied in ${Math.round(\n runtime / 1000\n )}s with final status: ${status}`,\n 'success'\n );\n return true;\n } else {\n stopProgressIndicator(\n `Updates timed out after ${Math.round(\n runtime / 1000\n )}s with final status: ${status}`,\n 'warn'\n );\n return false;\n }\n } else {\n stopProgressIndicator(\n `Updates are being applied. Changes may take up to 10 minutes to propagate, during which time you will not be able to make further updates.`,\n 'success'\n );\n return true;\n }\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response?.data?.code || error} - ${\n error.response?.data?.message\n }`,\n 'fail'\n );\n return false;\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"StartupOps.js","names":["createProgressIndicator","updateProgressIndicator","stopProgressIndicator","getSecrets","getStatus","initiateRestart","RestartStatus","getVariables","checkForUpdates","_updates$secrets","_updates$variables","updates","secrets","variables","undefined","result","filter","secret","loaded","variable","error","response","data","code","message","updateCount","length","applyUpdates","wait","timeout","status","start","Date","getTime","runtime","errors","maxErrors","ready","Promise","resolve","setTimeout","Math","round","_error$response","_error$response$data","_error$response2","_error$response2$data"],"sources":["../../../src/ops/cloud/StartupOps.ts"],"sourcesContent":["import {\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from '../utils/Console';\nimport { getSecrets } from '../../api/cloud/SecretsApi';\nimport {\n getStatus,\n initiateRestart,\n RestartStatus,\n} from '../../api/cloud/StartupApi';\nimport { getVariables } from '../../api/cloud/VariablesApi';\n\n/**\n * Updates that need to be applied.\n */\nexport interface Updates {\n /**\n * Array of secrets that need applying\n */\n secrets?: unknown[];\n /**\n * Array of variables that need applying\n */\n variables?: unknown[];\n}\n\n/**\n * Check for updates that need applying\n * @returns {Promise<boolean>} true if there are updates that need to be applied, false otherwise\n */\nexport async function checkForUpdates(): Promise<Updates> {\n const updates: Updates = { secrets: [], variables: [] };\n createProgressIndicator(\n undefined,\n `Checking for updates to apply...`,\n 'indeterminate'\n );\n try {\n updates.secrets = (await getSecrets()).result.filter(\n (secret: { loaded: unknown }) => !secret.loaded\n );\n updates.variables = (await getVariables()).result.filter(\n (variable: { loaded: unknown }) => !variable.loaded\n );\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n const updateCount = updates.secrets?.length + updates.variables?.length || 0;\n if (updateCount > 0) {\n stopProgressIndicator(\n `${updateCount} update(s) need to be applied`,\n 'success'\n );\n } else {\n stopProgressIndicator(`No updates need to be applied`, 'success');\n }\n return updates;\n}\n\n/**\n * Apply updates\n * @param {boolean} wait wait for the operation to complete or not\n * @param {number} timeout timeout in milliseconds\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function applyUpdates(wait: boolean, timeout = 10 * 60 * 1000) {\n createProgressIndicator(undefined, `Applying updates...`, 'indeterminate');\n try {\n let status = await initiateRestart();\n if (wait) {\n const start = new Date().getTime();\n let runtime = 0;\n let errors = 0;\n const maxErrors = 3;\n while (\n status !== RestartStatus.ready &&\n start + timeout > new Date().getTime()\n ) {\n await new Promise((resolve) => setTimeout(resolve, 5000));\n try {\n status = await getStatus();\n\n // reset errors after successful status call\n if (errors) errors = 0;\n\n runtime = new Date().getTime() - start;\n updateProgressIndicator(`${status} (${Math.round(runtime / 1000)}s)`);\n } catch (error) {\n errors++;\n if (errors > maxErrors) {\n throw error;\n }\n runtime = new Date().getTime() - start;\n updateProgressIndicator(\n `${error.message} - retry ${errors}/${maxErrors} (${Math.round(\n runtime / 1000\n )}s)`\n );\n }\n }\n if (runtime < timeout) {\n stopProgressIndicator(\n `Updates applied in ${Math.round(\n runtime / 1000\n )}s with final status: ${status}`,\n 'success'\n );\n return true;\n } else {\n stopProgressIndicator(\n `Updates timed out after ${Math.round(\n runtime / 1000\n )}s with final status: ${status}`,\n 'warn'\n );\n return false;\n }\n } else {\n stopProgressIndicator(\n `Updates are being applied. Changes may take up to 10 minutes to propagate, during which time you will not be able to make further updates.`,\n 'success'\n );\n return true;\n }\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response?.data?.code || error} - ${\n error.response?.data?.message\n }`,\n 'fail'\n );\n return false;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { createKeyValueTable, createProgressIndicator, createTable, printMessage, stopProgressIndicator, updateProgressIndicator } from
|
|
2
|
-
import { deleteVariable, getVariable, getVariables, putVariable, setVariableDescription } from
|
|
3
|
-
import wordwrap from
|
|
4
|
-
import { resolveUserName } from
|
|
5
|
-
import { decode } from
|
|
6
|
-
|
|
1
|
+
import { createKeyValueTable, createProgressIndicator, createTable, printMessage, stopProgressIndicator, updateProgressIndicator } from "../utils/Console.js";
|
|
2
|
+
import { deleteVariable, getVariable, getVariables, putVariable, setVariableDescription } from "../../api/cloud/VariablesApi.js";
|
|
3
|
+
import wordwrap from "../utils/Wordwrap.js";
|
|
4
|
+
import { resolveUserName } from "../ManagedObjectOps.js";
|
|
5
|
+
import { decode } from "../../api/utils/Base64.js";
|
|
7
6
|
/**
|
|
8
7
|
* List variables
|
|
9
8
|
* @param {boolean} long Long version, all the fields
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariablesOps.js","names":["createKeyValueTable","createProgressIndicator","createTable","printMessage","stopProgressIndicator","updateProgressIndicator","deleteVariable","getVariable","getVariables","putVariable","setVariableDescription","wordwrap","resolveUserName","decode","listVariables","long","variables","result","sort","a","b","_id","localeCompare","error","message","response","data","table","variable","push","valueBase64","loaded","description","lastChangedBy","Date","lastChangeDate","toLocaleString","toString","forEach","secret","createVariable","variableId","value","undefined","code","updateVariable","setDescriptionOfVariable","deleteVariableCmd","deleteVariablesCmd","length","describeVariable"],"sources":["../../../src/ops/cloud/VariablesOps.ts"],"sourcesContent":["import {\n createKeyValueTable,\n createProgressIndicator,\n createTable,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from '../utils/Console';\nimport {\n deleteVariable,\n getVariable,\n getVariables,\n putVariable,\n setVariableDescription,\n} from '../../api/cloud/VariablesApi';\nimport wordwrap from '../utils/Wordwrap';\nimport { resolveUserName } from '../ManagedObjectOps';\nimport { decode } from '../../api/utils/Base64';\n\n/**\n * List variables\n * @param {boolean} long Long version, all the fields\n */\nexport async function listVariables(long) {\n let variables = [];\n try {\n variables = (await getVariables()).result;\n variables.sort((a, b) => a._id.localeCompare(b._id));\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n }\n if (long) {\n const table = createTable([\n 'Id'['brightCyan'],\n 'Value'['brightCyan'],\n 'Status'['brightCyan'],\n 'Description'['brightCyan'],\n 'Modifier'['brightCyan'],\n 'Modified'['brightCyan'],\n ]);\n for (const variable of variables) {\n table.push([\n variable._id,\n wordwrap(decode(variable.valueBase64), 40),\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n wordwrap(variable.description, 40),\n // eslint-disable-next-line no-await-in-loop\n await resolveUserName('teammember', variable.lastChangedBy),\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n variables.forEach((secret) => {\n printMessage(secret._id, 'data');\n });\n }\n}\n\n/**\n * Create variable\n * @param {String} variableId variable id\n * @param {String} value variable value\n * @param {String} description variable description\n */\nexport async function createVariable(variableId, value, description) {\n createProgressIndicator(\n undefined,\n `Creating variable ${variableId}...`,\n 'indeterminate'\n );\n try {\n await putVariable(variableId, value, description);\n stopProgressIndicator(`Created variable ${variableId}`, 'success');\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Update variable\n * @param {String} variableId variable id\n * @param {String} value variable value\n * @param {String} description variable description\n */\nexport async function updateVariable(variableId, value, description) {\n createProgressIndicator(\n undefined,\n `Updating variable ${variableId}...`,\n 'indeterminate'\n );\n try {\n await putVariable(variableId, value, description);\n stopProgressIndicator(`Updated variable ${variableId}`, 'success');\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Set description of variable\n * @param {String} variableId variable id\n * @param {String} description variable description\n */\nexport async function setDescriptionOfVariable(variableId, description) {\n createProgressIndicator(\n undefined,\n `Setting description of variable ${variableId}...`,\n 'indeterminate'\n );\n try {\n await setVariableDescription(variableId, description);\n stopProgressIndicator(\n `Set description of variable ${variableId}`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Delete a variable\n * @param {String} variableId variable id\n */\nexport async function deleteVariableCmd(variableId) {\n createProgressIndicator(\n undefined,\n `Deleting variable ${variableId}...`,\n 'indeterminate'\n );\n try {\n await deleteVariable(variableId);\n stopProgressIndicator(`Deleted variable ${variableId}`, 'success');\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Delete all variables\n */\nexport async function deleteVariablesCmd() {\n try {\n const variables = (await getVariables()).result;\n createProgressIndicator(variables.length, `Deleting variable...`);\n for (const variable of variables) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await deleteVariable(variable._id);\n updateProgressIndicator(`Deleted variable ${variable._id}`);\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n }\n stopProgressIndicator(`Variables deleted.`);\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n}\n\n/**\n * Describe a variable\n * @param {String} variableId variable id\n */\nexport async function describeVariable(variableId) {\n const variable = await getVariable(variableId);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], variable._id]);\n table.push([\n 'Value'['brightCyan'],\n wordwrap(decode(variable.valueBase64), 40),\n ]);\n table.push([\n 'Status'['brightCyan'],\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n ]);\n table.push(['Description'['brightCyan'], wordwrap(variable.description, 60)]);\n table.push([\n 'Modified'['brightCyan'],\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n table.push([\n 'Modifier'['brightCyan'],\n await resolveUserName('teammember', variable.lastChangedBy),\n ]);\n table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);\n printMessage(table.toString());\n}\n"],"mappings":"AAAA,SACEA,mBAAmB,EACnBC,uBAAuB,EACvBC,WAAW,EACXC,YAAY,EACZC,qBAAqB,EACrBC,uBAAuB,QAClB,kBAAkB;AACzB,SACEC,cAAc,EACdC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,sBAAsB,QACjB,8BAA8B;AACrC,OAAOC,QAAQ,MAAM,mBAAmB;AACxC,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,MAAM,QAAQ,wBAAwB;;AAE/C;AACA;AACA;AACA;AACA,OAAO,eAAeC,aAAaA,CAACC,IAAI,EAAE;EACxC,IAAIC,SAAS,GAAG,EAAE;EAClB,IAAI;IACFA,SAAS,GAAG,CAAC,MAAMR,YAAY,CAAC,CAAC,EAAES,MAAM;IACzCD,SAAS,CAACE,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,GAAG,CAACC,aAAa,CAACF,CAAC,CAACC,GAAG,CAAC,CAAC;EACtD,CAAC,CAAC,OAAOE,KAAK,EAAE;IACdpB,YAAY,CAAE,GAAEoB,KAAK,CAACC,OAAQ,EAAC,EAAE,OAAO,CAAC;IACzCrB,YAAY,CAACoB,KAAK,CAACE,QAAQ,CAACC,IAAI,EAAE,OAAO,CAAC;EAC5C;EACA,IAAIX,IAAI,EAAE;IACR,MAAMY,KAAK,GAAGzB,WAAW,CAAC,CACxB,IAAI,CAAC,YAAY,CAAC,EAClB,OAAO,CAAC,YAAY,CAAC,EACrB,QAAQ,CAAC,YAAY,CAAC,EACtB,aAAa,CAAC,YAAY,CAAC,EAC3B,UAAU,CAAC,YAAY,CAAC,EACxB,UAAU,CAAC,YAAY,CAAC,CACzB,CAAC;IACF,KAAK,MAAM0B,QAAQ,IAAIZ,SAAS,EAAE;MAChCW,KAAK,CAACE,IAAI,CAAC,CACTD,QAAQ,CAACP,GAAG,EACZV,QAAQ,CAACE,MAAM,CAACe,QAAQ,CAACE,WAAW,CAAC,EAAE,EAAE,CAAC,EAC1CF,QAAQ,CAACG,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,EACnEpB,QAAQ,CAACiB,QAAQ,CAACI,WAAW,EAAE,EAAE,CAAC;MAClC;MACA,MAAMpB,eAAe,CAAC,YAAY,EAAEgB,QAAQ,CAACK,aAAa,CAAC,EAC3D,IAAIC,IAAI,CAACN,QAAQ,CAACO,cAAc,CAAC,CAACC,cAAc,CAAC,CAAC,CACnD,CAAC;IACJ;IACAjC,YAAY,CAACwB,KAAK,CAACU,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;EACxC,CAAC,MAAM;IACLrB,SAAS,CAACsB,OAAO,CAAEC,MAAM,IAAK;MAC5BpC,YAAY,CAACoC,MAAM,CAAClB,GAAG,EAAE,MAAM,CAAC;IAClC,CAAC,CAAC;EACJ;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAemB,cAAcA,CAACC,UAAU,EAAEC,KAAK,EAAEV,WAAW,EAAE;EACnE/B,uBAAuB,CACrB0C,SAAS,EACR,qBAAoBF,UAAW,KAAI,EACpC,eACF,CAAC;EACD,IAAI;IACF,MAAMhC,WAAW,CAACgC,UAAU,EAAEC,KAAK,EAAEV,WAAW,CAAC;IACjD5B,qBAAqB,CAAE,oBAAmBqC,UAAW,EAAC,EAAE,SAAS,CAAC;EACpE,CAAC,CAAC,OAAOlB,KAAK,EAAE;IACdnB,qBAAqB,CAClB,UAASmB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACkB,IAAK,MAAKrB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EAAC,EACrE,MACF,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeqB,cAAcA,CAACJ,UAAU,EAAEC,KAAK,EAAEV,WAAW,EAAE;EACnE/B,uBAAuB,CACrB0C,SAAS,EACR,qBAAoBF,UAAW,KAAI,EACpC,eACF,CAAC;EACD,IAAI;IACF,MAAMhC,WAAW,CAACgC,UAAU,EAAEC,KAAK,EAAEV,WAAW,CAAC;IACjD5B,qBAAqB,CAAE,oBAAmBqC,UAAW,EAAC,EAAE,SAAS,CAAC;EACpE,CAAC,CAAC,OAAOlB,KAAK,EAAE;IACdnB,qBAAqB,CAClB,UAASmB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACkB,IAAK,MAAKrB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EAAC,EACrE,MACF,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAesB,wBAAwBA,CAACL,UAAU,EAAET,WAAW,EAAE;EACtE/B,uBAAuB,CACrB0C,SAAS,EACR,mCAAkCF,UAAW,KAAI,EAClD,eACF,CAAC;EACD,IAAI;IACF,MAAM/B,sBAAsB,CAAC+B,UAAU,EAAET,WAAW,CAAC;IACrD5B,qBAAqB,CAClB,+BAA8BqC,UAAW,EAAC,EAC3C,SACF,CAAC;EACH,CAAC,CAAC,OAAOlB,KAAK,EAAE;IACdnB,qBAAqB,CAClB,UAASmB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACkB,IAAK,MAAKrB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EAAC,EACrE,MACF,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeuB,iBAAiBA,CAACN,UAAU,EAAE;EAClDxC,uBAAuB,CACrB0C,SAAS,EACR,qBAAoBF,UAAW,KAAI,EACpC,eACF,CAAC;EACD,IAAI;IACF,MAAMnC,cAAc,CAACmC,UAAU,CAAC;IAChCrC,qBAAqB,CAAE,oBAAmBqC,UAAW,EAAC,EAAE,SAAS,CAAC;EACpE,CAAC,CAAC,OAAOlB,KAAK,EAAE;IACdnB,qBAAqB,CAClB,UAASmB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACkB,IAAK,MAAKrB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EAAC,EACrE,MACF,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA,OAAO,eAAewB,kBAAkBA,CAAA,EAAG;EACzC,IAAI;IACF,MAAMhC,SAAS,GAAG,CAAC,MAAMR,YAAY,CAAC,CAAC,EAAES,MAAM;IAC/ChB,uBAAuB,CAACe,SAAS,CAACiC,MAAM,EAAG,sBAAqB,CAAC;IACjE,KAAK,MAAMrB,QAAQ,IAAIZ,SAAS,EAAE;MAChC,IAAI;QACF;QACA,MAAMV,cAAc,CAACsB,QAAQ,CAACP,GAAG,CAAC;QAClChB,uBAAuB,CAAE,oBAAmBuB,QAAQ,CAACP,GAAI,EAAC,CAAC;MAC7D,CAAC,CAAC,OAAOE,KAAK,EAAE;QACdpB,YAAY,CACT,UAASoB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACkB,IAAK,MAAKrB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EAAC,EACrE,OACF,CAAC;MACH;IACF;IACApB,qBAAqB,CAAE,oBAAmB,CAAC;EAC7C,CAAC,CAAC,OAAOmB,KAAK,EAAE;IACdpB,YAAY,CACT,UAASoB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACkB,IAAK,MAAKrB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EAAC,EACrE,OACF,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAe0B,gBAAgBA,CAACT,UAAU,EAAE;EACjD,MAAMb,QAAQ,GAAG,MAAMrB,WAAW,CAACkC,UAAU,CAAC;EAC9C,MAAMd,KAAK,GAAG3B,mBAAmB,CAAC,CAAC;EACnC2B,KAAK,CAACE,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAED,QAAQ,CAACP,GAAG,CAAC,CAAC;EAChDM,KAAK,CAACE,IAAI,CAAC,CACT,OAAO,CAAC,YAAY,CAAC,EACrBlB,QAAQ,CAACE,MAAM,CAACe,QAAQ,CAACE,WAAW,CAAC,EAAE,EAAE,CAAC,CAC3C,CAAC;EACFH,KAAK,CAACE,IAAI,CAAC,CACT,QAAQ,CAAC,YAAY,CAAC,EACtBD,QAAQ,CAACG,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CACpE,CAAC;EACFJ,KAAK,CAACE,IAAI,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,EAAElB,QAAQ,CAACiB,QAAQ,CAACI,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;EAC7EL,KAAK,CAACE,IAAI,CAAC,CACT,UAAU,CAAC,YAAY,CAAC,EACxB,IAAIK,IAAI,CAACN,QAAQ,CAACO,cAAc,CAAC,CAACC,cAAc,CAAC,CAAC,CACnD,CAAC;EACFT,KAAK,CAACE,IAAI,CAAC,CACT,UAAU,CAAC,YAAY,CAAC,EACxB,MAAMjB,eAAe,CAAC,YAAY,EAAEgB,QAAQ,CAACK,aAAa,CAAC,CAC5D,CAAC;EACFN,KAAK,CAACE,IAAI,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,EAAED,QAAQ,CAACK,aAAa,CAAC,CAAC;EACnE9B,YAAY,CAACwB,KAAK,CAACU,QAAQ,CAAC,CAAC,CAAC;AAChC"}
|
|
1
|
+
{"version":3,"file":"VariablesOps.js","names":["createKeyValueTable","createProgressIndicator","createTable","printMessage","stopProgressIndicator","updateProgressIndicator","deleteVariable","getVariable","getVariables","putVariable","setVariableDescription","wordwrap","resolveUserName","decode","listVariables","long","variables","result","sort","a","b","_id","localeCompare","error","message","response","data","table","variable","push","valueBase64","loaded","description","lastChangedBy","Date","lastChangeDate","toLocaleString","toString","forEach","secret","createVariable","variableId","value","undefined","code","updateVariable","setDescriptionOfVariable","deleteVariableCmd","deleteVariablesCmd","length","describeVariable"],"sources":["../../../src/ops/cloud/VariablesOps.ts"],"sourcesContent":["import {\n createKeyValueTable,\n createProgressIndicator,\n createTable,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from '../utils/Console';\nimport {\n deleteVariable,\n getVariable,\n getVariables,\n putVariable,\n setVariableDescription,\n} from '../../api/cloud/VariablesApi';\nimport wordwrap from '../utils/Wordwrap';\nimport { resolveUserName } from '../ManagedObjectOps';\nimport { decode } from '../../api/utils/Base64';\n\n/**\n * List variables\n * @param {boolean} long Long version, all the fields\n */\nexport async function listVariables(long) {\n let variables = [];\n try {\n variables = (await getVariables()).result;\n variables.sort((a, b) => a._id.localeCompare(b._id));\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n }\n if (long) {\n const table = createTable([\n 'Id'['brightCyan'],\n 'Value'['brightCyan'],\n 'Status'['brightCyan'],\n 'Description'['brightCyan'],\n 'Modifier'['brightCyan'],\n 'Modified'['brightCyan'],\n ]);\n for (const variable of variables) {\n table.push([\n variable._id,\n wordwrap(decode(variable.valueBase64), 40),\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n wordwrap(variable.description, 40),\n // eslint-disable-next-line no-await-in-loop\n await resolveUserName('teammember', variable.lastChangedBy),\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n variables.forEach((secret) => {\n printMessage(secret._id, 'data');\n });\n }\n}\n\n/**\n * Create variable\n * @param {String} variableId variable id\n * @param {String} value variable value\n * @param {String} description variable description\n */\nexport async function createVariable(variableId, value, description) {\n createProgressIndicator(\n undefined,\n `Creating variable ${variableId}...`,\n 'indeterminate'\n );\n try {\n await putVariable(variableId, value, description);\n stopProgressIndicator(`Created variable ${variableId}`, 'success');\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Update variable\n * @param {String} variableId variable id\n * @param {String} value variable value\n * @param {String} description variable description\n */\nexport async function updateVariable(variableId, value, description) {\n createProgressIndicator(\n undefined,\n `Updating variable ${variableId}...`,\n 'indeterminate'\n );\n try {\n await putVariable(variableId, value, description);\n stopProgressIndicator(`Updated variable ${variableId}`, 'success');\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Set description of variable\n * @param {String} variableId variable id\n * @param {String} description variable description\n */\nexport async function setDescriptionOfVariable(variableId, description) {\n createProgressIndicator(\n undefined,\n `Setting description of variable ${variableId}...`,\n 'indeterminate'\n );\n try {\n await setVariableDescription(variableId, description);\n stopProgressIndicator(\n `Set description of variable ${variableId}`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Delete a variable\n * @param {String} variableId variable id\n */\nexport async function deleteVariableCmd(variableId) {\n createProgressIndicator(\n undefined,\n `Deleting variable ${variableId}...`,\n 'indeterminate'\n );\n try {\n await deleteVariable(variableId);\n stopProgressIndicator(`Deleted variable ${variableId}`, 'success');\n } catch (error) {\n stopProgressIndicator(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n}\n\n/**\n * Delete all variables\n */\nexport async function deleteVariablesCmd() {\n try {\n const variables = (await getVariables()).result;\n createProgressIndicator(variables.length, `Deleting variable...`);\n for (const variable of variables) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await deleteVariable(variable._id);\n updateProgressIndicator(`Deleted variable ${variable._id}`);\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n }\n stopProgressIndicator(`Variables deleted.`);\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n}\n\n/**\n * Describe a variable\n * @param {String} variableId variable id\n */\nexport async function describeVariable(variableId) {\n const variable = await getVariable(variableId);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], variable._id]);\n table.push([\n 'Value'['brightCyan'],\n wordwrap(decode(variable.valueBase64), 40),\n ]);\n table.push([\n 'Status'['brightCyan'],\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n ]);\n table.push(['Description'['brightCyan'], wordwrap(variable.description, 60)]);\n table.push([\n 'Modified'['brightCyan'],\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n table.push([\n 'Modifier'['brightCyan'],\n await resolveUserName('teammember', variable.lastChangedBy),\n ]);\n table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);\n printMessage(table.toString());\n}\n"],"mappings":"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"}
|
package/esm/ops/utils/Console.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import Table from 'cli-table3';
|
|
2
|
-
import * as state from
|
|
3
|
-
|
|
2
|
+
import * as state from "../../shared/State.js";
|
|
4
3
|
/**
|
|
5
4
|
* Handles data / messages output. The caller decides and implements how
|
|
6
5
|
* the data and messages are handled, by implementing the handler function
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Console.js","names":["Table","state","printMessage","message","type","newline","handler","getPrintHandler","verboseMessage","getVerboseHandler","debugMessage","getDebugHandler","maskPasswordHeader","curlCommand","header","mask","regex","RegExp","replace","curlirizeMessage","getCurlirizeHandler","createProgressIndicator","total","getCreateProgressHandler","updateProgressIndicator","getUpdateProgressHandler","stopProgressIndicator","status","getStopProgressHandler","createTable","head","chars","top","bottom","left","mid","right","style","createKeyValueTable","wordWrap","getObjectDepth","object","Object","Math","max","values","map","hasValues","has","keys","key","addRows","depth","level","table","keyMap","space","push","hAlign","content","indention","Array","fill","join","concat","createObjectTable"],"sources":["../../../src/ops/utils/Console.ts"],"sourcesContent":["import Table from 'cli-table3';\nimport * as state from '../../shared/State';\n\n/**\n * Handles data / messages output. The caller decides and implements how\n * the data and messages are handled, by implementing the handler function\n * on its side. `handler` is optional, and if not included by the caller,\n * the data and messages will be lost.\n *\n * @param {string | unknown} message The string message to return\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 * messages returned\n */\nexport function printMessage(\n message: string | object,\n type = 'text',\n newline = true\n) {\n const handler = state.getPrintHandler();\n if (handler) {\n handler(message, type, newline);\n }\n}\n\n/**\n * Handles verbose output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | unknown} message The verbose output message\n */\nexport function verboseMessage(message: string | object) {\n const handler = state.getVerboseHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Handles debug output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | object} message The debug output message\n */\nexport function debugMessage(message: string | object) {\n const handler = state.getDebugHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Helper function to mask password header in curl command\n * @param curlCommand curl command to mask\n * @returns masked curl command\n */\nfunction maskPasswordHeader(curlCommand: string) {\n const header = 'X-OpenAM-Password:';\n const mask = '<suppressed>';\n const regex = new RegExp('\"' + header + '.+?\"', 'g');\n return curlCommand.replace(regex, '\"' + header + mask + '\"');\n}\n\n/**\n * Handles curlirize output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string} message The curlirize output message\n */\nexport function curlirizeMessage(message: string) {\n const handler = state.getCurlirizeHandler();\n if (handler) {\n handler(maskPasswordHeader(message));\n }\n}\n\n/**\n * Calls a callback on client to create a progress indicator.\n * The actual implementation of the indicator is left to the client\n * Two types of indicators are supported:\n * - determinate: should be used when the process completion rate\n * can be detected (example: progress bar showing percentage or count)\n * - indeterminate: used when progress isn’t detectable, or if\n * it’s not necessary to indicate how long an activity will take.\n * (example: spinner showing progress, but not quantifying the progress)\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 {String} type optional type of progress indicator. default is 'determinate'\n *\n */\nexport function createProgressIndicator(\n total,\n message: string = null,\n type = 'determinate'\n) {\n const handler = state.getCreateProgressHandler();\n if (handler) {\n handler(type, total, message);\n }\n}\n\n/**\n * Updates the progress indicator with new data/updated status.\n * @param {string} message optional message to show with the indicator\n *\n */\nexport function updateProgressIndicator(message: string = null) {\n const handler = state.getUpdateProgressHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Stop and hide the progress indicator\n * @param {string} message optional message to show with the indicator\n * @param {string} status one of 'none', 'success', 'warn', 'fail'\n */\nexport function stopProgressIndicator(message: string = null, status = 'none') {\n const handler = state.getStopProgressHandler();\n if (handler) {\n handler(message, status);\n }\n}\n\n/**\n * Create an empty table\n * @param {[String]} head header row as an array of strings\n * @returns {CliTable3} an empty table\n */\nexport function createTable(head) {\n return 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}\n\n/**\n * Create a new key/value table\n * @returns {CliTable3} an empty key/value table\n */\nexport function createKeyValueTable() {\n return 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}\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 {CliTable3} 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 {CliTable3} 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":["Table","state","printMessage","message","type","newline","handler","getPrintHandler","verboseMessage","getVerboseHandler","debugMessage","getDebugHandler","maskPasswordHeader","curlCommand","header","mask","regex","RegExp","replace","curlirizeMessage","getCurlirizeHandler","createProgressIndicator","total","getCreateProgressHandler","updateProgressIndicator","getUpdateProgressHandler","stopProgressIndicator","status","getStopProgressHandler","createTable","head","chars","top","bottom","left","mid","right","style","createKeyValueTable","wordWrap","getObjectDepth","object","Object","Math","max","values","map","hasValues","has","keys","key","addRows","depth","level","table","keyMap","space","push","hAlign","content","indention","Array","fill","join","concat","createObjectTable"],"sources":["../../../src/ops/utils/Console.ts"],"sourcesContent":["import Table from 'cli-table3';\nimport * as state from '../../shared/State';\n\n/**\n * Handles data / messages output. The caller decides and implements how\n * the data and messages are handled, by implementing the handler function\n * on its side. `handler` is optional, and if not included by the caller,\n * the data and messages will be lost.\n *\n * @param {string | unknown} message The string message to return\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 * messages returned\n */\nexport function printMessage(\n message: string | object,\n type = 'text',\n newline = true\n) {\n const handler = state.getPrintHandler();\n if (handler) {\n handler(message, type, newline);\n }\n}\n\n/**\n * Handles verbose output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | unknown} message The verbose output message\n */\nexport function verboseMessage(message: string | object) {\n const handler = state.getVerboseHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Handles debug output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | object} message The debug output message\n */\nexport function debugMessage(message: string | object) {\n const handler = state.getDebugHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Helper function to mask password header in curl command\n * @param curlCommand curl command to mask\n * @returns masked curl command\n */\nfunction maskPasswordHeader(curlCommand: string) {\n const header = 'X-OpenAM-Password:';\n const mask = '<suppressed>';\n const regex = new RegExp('\"' + header + '.+?\"', 'g');\n return curlCommand.replace(regex, '\"' + header + mask + '\"');\n}\n\n/**\n * Handles curlirize output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string} message The curlirize output message\n */\nexport function curlirizeMessage(message: string) {\n const handler = state.getCurlirizeHandler();\n if (handler) {\n handler(maskPasswordHeader(message));\n }\n}\n\n/**\n * Calls a callback on client to create a progress indicator.\n * The actual implementation of the indicator is left to the client\n * Two types of indicators are supported:\n * - determinate: should be used when the process completion rate\n * can be detected (example: progress bar showing percentage or count)\n * - indeterminate: used when progress isn’t detectable, or if\n * it’s not necessary to indicate how long an activity will take.\n * (example: spinner showing progress, but not quantifying the progress)\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 {String} type optional type of progress indicator. default is 'determinate'\n *\n */\nexport function createProgressIndicator(\n total,\n message: string = null,\n type = 'determinate'\n) {\n const handler = state.getCreateProgressHandler();\n if (handler) {\n handler(type, total, message);\n }\n}\n\n/**\n * Updates the progress indicator with new data/updated status.\n * @param {string} message optional message to show with the indicator\n *\n */\nexport function updateProgressIndicator(message: string = null) {\n const handler = state.getUpdateProgressHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Stop and hide the progress indicator\n * @param {string} message optional message to show with the indicator\n * @param {string} status one of 'none', 'success', 'warn', 'fail'\n */\nexport function stopProgressIndicator(message: string = null, status = 'none') {\n const handler = state.getStopProgressHandler();\n if (handler) {\n handler(message, status);\n }\n}\n\n/**\n * Create an empty table\n * @param {[String]} head header row as an array of strings\n * @returns {CliTable3} an empty table\n */\nexport function createTable(head) {\n return 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}\n\n/**\n * Create a new key/value table\n * @returns {CliTable3} an empty key/value table\n */\nexport function createKeyValueTable() {\n return 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}\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 {CliTable3} 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 {CliTable3} 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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"}
|
|
@@ -13,9 +13,9 @@ import fs, { promises as fsp } from 'fs';
|
|
|
13
13
|
import crypto from 'crypto';
|
|
14
14
|
import { homedir } from 'os';
|
|
15
15
|
import { promisify } from 'util';
|
|
16
|
-
import { printMessage } from
|
|
17
|
-
import * as state from
|
|
18
|
-
import { FRODO_MASTER_KEY_PATH_KEY, FRODO_MASTER_KEY_KEY } from
|
|
16
|
+
import { printMessage } from "./Console.js";
|
|
17
|
+
import * as state from "../../shared/State.js";
|
|
18
|
+
import { FRODO_MASTER_KEY_PATH_KEY, FRODO_MASTER_KEY_KEY } from "../../storage/StaticStorage.js";
|
|
19
19
|
const scrypt = promisify(crypto.scrypt);
|
|
20
20
|
// using WeakMaps for added security since it gets garbage collected
|
|
21
21
|
const _masterKey = new WeakMap();
|