@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":"ConnectionProfileOps.test.js","names":["fs","homedir","ConnectionProfile","state","FRODO_CONNECTION_PROFILES_PATH_KEY","FRODO_MASTER_KEY_PATH_KEY","FRODO_MASTER_KEY_KEY","describe","connectionProfilePath1","connectionProfilePath2","connectionProfilePath3","beforeAll","unlinkSync","error","afterAll","test","host","user","password","setHost","setUsername","setPassword","setConnectionProfilesPath","saveConnectionProfile","expect","existsSync","toBeTruthy","connections","JSON","parse","readFileSync","username","toEqual","encodedPassword","process","env","getConnectionProfilesPath","masterKey"],"sources":["../../src/ops/ConnectionProfileOps.test.ts"],"sourcesContent":["import fs from 'fs';\nimport { homedir } from 'os';\nimport { ConnectionProfile, state } from '../index';\nimport {\n FRODO_CONNECTION_PROFILES_PATH_KEY,\n FRODO_MASTER_KEY_PATH_KEY,\n FRODO_MASTER_KEY_KEY,\n} from '../storage/StaticStorage';\n\ndescribe('ConnectionProfileOps', () => {\n const connectionProfilePath1 = `${homedir()}/connections1.json`;\n const connectionProfilePath2 = `${homedir()}/connections2.json`;\n const connectionProfilePath3 = `${homedir()}/connections3.json`;\n\n // delete all connection profile files before running the tests\n beforeAll(() => {\n try {\n fs.unlinkSync(connectionProfilePath1);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath2);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath3);\n } catch (error) {\n // ignore\n }\n });\n\n // clean up all connection profile files after running the tests\n afterAll(() => {\n try {\n fs.unlinkSync(connectionProfilePath1);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath2);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath3);\n } catch (error) {\n // ignore\n }\n });\n\n describe('saveConnectionProfile()', () => {\n test('1: Create connection profiles in location from state field', async () => {\n const host = 'https://openam-tenant-name.forgeblocks.com/am';\n const user = 'frodo.baggins@shire.me';\n const password = 'G@nd@lfTheW153';\n\n state.setHost(host);\n state.setUsername(user);\n state.setPassword(password);\n state.setConnectionProfilesPath(connectionProfilePath1);\n await ConnectionProfile.saveConnectionProfile(host);\n expect(fs.existsSync(connectionProfilePath1)).toBeTruthy();\n const connections = JSON.parse(\n fs.readFileSync(connectionProfilePath1, 'utf8')\n );\n expect(connections).toBeTruthy();\n expect(connections[host]).toBeTruthy();\n expect(connections[host].username).toEqual(user);\n expect(connections[host].encodedPassword).toBeTruthy();\n });\n\n test(`2: Create connection profiles in location from env ${FRODO_MASTER_KEY_PATH_KEY}`, async () => {\n const host = 'https://openam-tenant-name.forgeblocks.com/am';\n const user = 'frodo.baggins@shire.me';\n const password = 'G@nd@lfTheW153';\n // set the hard-coded master key\n process.env[FRODO_CONNECTION_PROFILES_PATH_KEY] = connectionProfilePath2;\n\n state.setHost(host);\n state.setUsername(user);\n state.setPassword(password);\n state.setConnectionProfilesPath('');\n await ConnectionProfile.saveConnectionProfile(host);\n expect(ConnectionProfile.getConnectionProfilesPath()).toEqual(\n connectionProfilePath2\n );\n expect(fs.existsSync(connectionProfilePath2)).toBeTruthy();\n const connections = JSON.parse(\n fs.readFileSync(connectionProfilePath2, 'utf8')\n );\n expect(connections).toBeTruthy();\n expect(connections[host]).toBeTruthy();\n expect(connections[host].username).toEqual(user);\n expect(connections[host].encodedPassword).toBeTruthy();\n });\n\n test(`3: Use Master Key from env ${FRODO_MASTER_KEY_KEY}`, async () => {\n const host = 'https://openam-tenant-name.forgeblocks.com/am';\n const user = 'frodo.baggins@shire.me';\n const password = 'G@nd@lfTheW153';\n const masterKey = 'bxnQlhcU5VfyDs+BBPhRhK09yHaNtdIIk85HUMKBnqg=';\n // set the hard-coded master key\n process.env[FRODO_MASTER_KEY_KEY] = masterKey;\n\n state.setHost(host);\n state.setUsername(user);\n state.setPassword(password);\n state.setConnectionProfilesPath(connectionProfilePath3);\n await ConnectionProfile.saveConnectionProfile(host);\n expect(fs.existsSync(connectionProfilePath3)).toBeTruthy();\n const connections = JSON.parse(\n fs.readFileSync(connectionProfilePath3, 'utf8')\n );\n expect(connections).toBeTruthy();\n expect(connections[host]).toBeTruthy();\n expect(connections[host].username).toEqual(user);\n expect(connections[host].encodedPassword).toBeTruthy();\n });\n });\n});\n"],"mappings":"AAAA,OAAOA,EAAE,MAAM,IAAI;AACnB,SAASC,OAAO,QAAQ,IAAI;
|
|
1
|
+
{"version":3,"file":"ConnectionProfileOps.test.js","names":["fs","homedir","ConnectionProfile","state","FRODO_CONNECTION_PROFILES_PATH_KEY","FRODO_MASTER_KEY_PATH_KEY","FRODO_MASTER_KEY_KEY","describe","connectionProfilePath1","connectionProfilePath2","connectionProfilePath3","beforeAll","unlinkSync","error","afterAll","test","host","user","password","setHost","setUsername","setPassword","setConnectionProfilesPath","saveConnectionProfile","expect","existsSync","toBeTruthy","connections","JSON","parse","readFileSync","username","toEqual","encodedPassword","process","env","getConnectionProfilesPath","masterKey"],"sources":["../../src/ops/ConnectionProfileOps.test.ts"],"sourcesContent":["import fs from 'fs';\nimport { homedir } from 'os';\nimport { ConnectionProfile, state } from '../index';\nimport {\n FRODO_CONNECTION_PROFILES_PATH_KEY,\n FRODO_MASTER_KEY_PATH_KEY,\n FRODO_MASTER_KEY_KEY,\n} from '../storage/StaticStorage';\n\ndescribe('ConnectionProfileOps', () => {\n const connectionProfilePath1 = `${homedir()}/connections1.json`;\n const connectionProfilePath2 = `${homedir()}/connections2.json`;\n const connectionProfilePath3 = `${homedir()}/connections3.json`;\n\n // delete all connection profile files before running the tests\n beforeAll(() => {\n try {\n fs.unlinkSync(connectionProfilePath1);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath2);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath3);\n } catch (error) {\n // ignore\n }\n });\n\n // clean up all connection profile files after running the tests\n afterAll(() => {\n try {\n fs.unlinkSync(connectionProfilePath1);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath2);\n } catch (error) {\n // ignore\n }\n try {\n fs.unlinkSync(connectionProfilePath3);\n } catch (error) {\n // ignore\n }\n });\n\n describe('saveConnectionProfile()', () => {\n test('1: Create connection profiles in location from state field', async () => {\n const host = 'https://openam-tenant-name.forgeblocks.com/am';\n const user = 'frodo.baggins@shire.me';\n const password = 'G@nd@lfTheW153';\n\n state.setHost(host);\n state.setUsername(user);\n state.setPassword(password);\n state.setConnectionProfilesPath(connectionProfilePath1);\n await ConnectionProfile.saveConnectionProfile(host);\n expect(fs.existsSync(connectionProfilePath1)).toBeTruthy();\n const connections = JSON.parse(\n fs.readFileSync(connectionProfilePath1, 'utf8')\n );\n expect(connections).toBeTruthy();\n expect(connections[host]).toBeTruthy();\n expect(connections[host].username).toEqual(user);\n expect(connections[host].encodedPassword).toBeTruthy();\n });\n\n test(`2: Create connection profiles in location from env ${FRODO_MASTER_KEY_PATH_KEY}`, async () => {\n const host = 'https://openam-tenant-name.forgeblocks.com/am';\n const user = 'frodo.baggins@shire.me';\n const password = 'G@nd@lfTheW153';\n // set the hard-coded master key\n process.env[FRODO_CONNECTION_PROFILES_PATH_KEY] = connectionProfilePath2;\n\n state.setHost(host);\n state.setUsername(user);\n state.setPassword(password);\n state.setConnectionProfilesPath('');\n await ConnectionProfile.saveConnectionProfile(host);\n expect(ConnectionProfile.getConnectionProfilesPath()).toEqual(\n connectionProfilePath2\n );\n expect(fs.existsSync(connectionProfilePath2)).toBeTruthy();\n const connections = JSON.parse(\n fs.readFileSync(connectionProfilePath2, 'utf8')\n );\n expect(connections).toBeTruthy();\n expect(connections[host]).toBeTruthy();\n expect(connections[host].username).toEqual(user);\n expect(connections[host].encodedPassword).toBeTruthy();\n });\n\n test(`3: Use Master Key from env ${FRODO_MASTER_KEY_KEY}`, async () => {\n const host = 'https://openam-tenant-name.forgeblocks.com/am';\n const user = 'frodo.baggins@shire.me';\n const password = 'G@nd@lfTheW153';\n const masterKey = 'bxnQlhcU5VfyDs+BBPhRhK09yHaNtdIIk85HUMKBnqg=';\n // set the hard-coded master key\n process.env[FRODO_MASTER_KEY_KEY] = masterKey;\n\n state.setHost(host);\n state.setUsername(user);\n state.setPassword(password);\n state.setConnectionProfilesPath(connectionProfilePath3);\n await ConnectionProfile.saveConnectionProfile(host);\n expect(fs.existsSync(connectionProfilePath3)).toBeTruthy();\n const connections = JSON.parse(\n fs.readFileSync(connectionProfilePath3, 'utf8')\n );\n expect(connections).toBeTruthy();\n expect(connections[host]).toBeTruthy();\n expect(connections[host].username).toEqual(user);\n expect(connections[host].encodedPassword).toBeTruthy();\n });\n });\n});\n"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { getConfigEntitiesByType, getConfigEntity, putConfigEntity } from
|
|
2
|
-
|
|
1
|
+
import { getConfigEntitiesByType, getConfigEntity, putConfigEntity } from "../api/IdmConfigApi.js";
|
|
3
2
|
/**
|
|
4
3
|
* Email template type key used to build the IDM id: 'emailTemplate/<id>'
|
|
5
4
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailTemplateOps.js","names":["getConfigEntitiesByType","getConfigEntity","putConfigEntity","EMAIL_TEMPLATE_TYPE","getEmailTemplates","getEmailTemplate","templateId","putEmailTemplate","templateData"],"sources":["../../src/ops/EmailTemplateOps.ts"],"sourcesContent":["import {\n getConfigEntitiesByType,\n getConfigEntity,\n putConfigEntity,\n} from '../api/IdmConfigApi';\n\n/**\n * Email template type key used to build the IDM id: 'emailTemplate/<id>'\n */\nexport const EMAIL_TEMPLATE_TYPE = 'emailTemplate';\n\n/**\n * Get all email templates\n * @returns {Promise} a promise that resolves to an array of email template objects\n */\nexport async function getEmailTemplates() {\n return getConfigEntitiesByType(EMAIL_TEMPLATE_TYPE);\n}\n\n/**\n * Get email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @returns {Promise} a promise that resolves an email template object\n */\nexport async function getEmailTemplate(templateId) {\n return getConfigEntity(`${EMAIL_TEMPLATE_TYPE}/${templateId}`);\n}\n\n/**\n * Put email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {Object} templateData email template object\n * @returns {Promise} a promise that resolves to an email template object\n */\nexport async function putEmailTemplate(templateId, templateData) {\n return putConfigEntity(`${EMAIL_TEMPLATE_TYPE}/${templateId}`, templateData);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"EmailTemplateOps.js","names":["getConfigEntitiesByType","getConfigEntity","putConfigEntity","EMAIL_TEMPLATE_TYPE","getEmailTemplates","getEmailTemplate","templateId","putEmailTemplate","templateData"],"sources":["../../src/ops/EmailTemplateOps.ts"],"sourcesContent":["import {\n getConfigEntitiesByType,\n getConfigEntity,\n putConfigEntity,\n} from '../api/IdmConfigApi';\n\n/**\n * Email template type key used to build the IDM id: 'emailTemplate/<id>'\n */\nexport const EMAIL_TEMPLATE_TYPE = 'emailTemplate';\n\n/**\n * Get all email templates\n * @returns {Promise} a promise that resolves to an array of email template objects\n */\nexport async function getEmailTemplates() {\n return getConfigEntitiesByType(EMAIL_TEMPLATE_TYPE);\n}\n\n/**\n * Get email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @returns {Promise} a promise that resolves an email template object\n */\nexport async function getEmailTemplate(templateId) {\n return getConfigEntity(`${EMAIL_TEMPLATE_TYPE}/${templateId}`);\n}\n\n/**\n * Put email template\n * @param {string} templateId id/name of the email template without the type prefix\n * @param {Object} templateData email template object\n * @returns {Promise} a promise that resolves to an email template object\n */\nexport async function putEmailTemplate(templateId, templateData) {\n return putConfigEntity(`${EMAIL_TEMPLATE_TYPE}/${templateId}`, templateData);\n}\n"],"mappings":"SACEA,uBAAuB,EACvBC,eAAe,EACfC,eAAe;AAGjB;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAG,eAAe;;AAElD;AACA;AACA;AACA;AACA,OAAO,eAAeC,iBAAiBA,CAAA,EAAG;EACxC,OAAOJ,uBAAuB,CAACG,mBAAmB,CAAC;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeE,gBAAgBA,CAACC,UAAU,EAAE;EACjD,OAAOL,eAAe,CAAE,GAAEE,mBAAoB,IAAGG,UAAW,EAAC,CAAC;AAChE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,gBAAgBA,CAACD,UAAU,EAAEE,YAAY,EAAE;EAC/D,OAAON,eAAe,CAAE,GAAEC,mBAAoB,IAAGG,UAAW,EAAC,EAAEE,YAAY,CAAC;AAC9E"}
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
* Note: FRODO_DEBUG=1 is optional and enables debug logging for some output
|
|
30
30
|
* in case things don't function as expected
|
|
31
31
|
*/
|
|
32
|
-
import { EmailTemplate, IdmConfigRaw } from
|
|
33
|
-
import { autoSetupPolly } from
|
|
32
|
+
import { EmailTemplate, IdmConfigRaw } from "../index.js";
|
|
33
|
+
import { autoSetupPolly } from "../utils/AutoSetupPolly.js";
|
|
34
34
|
autoSetupPolly();
|
|
35
35
|
const {
|
|
36
36
|
EMAIL_TEMPLATE_TYPE
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailTemplateOps.test.js","names":["EmailTemplate","IdmConfigRaw","autoSetupPolly","EMAIL_TEMPLATE_TYPE","stageTemplate","template","create","getConfigEntity","id","deleteConfigEntity","error","putConfigEntity","data","describe","template1","defaultLocale","displayName","enabled","from","message","en","fr","mimeType","subject","template2","template3","beforeAll","process","env","FRODO_POLLY_MODE","afterAll","test","expect","getEmailTemplate","toBeDefined","response","toMatchSnapshot","getEmailTemplates","putEmailTemplate"],"sources":["../../src/ops/EmailTemplateOps.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses & update ESM snapshots\n *\n * To record and update ESM snapshots, you must call the test:record\n * script and override all the connection state variables required\n * to connect to the env to record from:\n *\n * FRODO_DEBUG=1 FRODO_HOST=frodo-dev npm run test:record EmailTemplateOps\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update CJS snapshots\n *\n * After recording, the ESM snapshots will already be updated as that happens\n * in one go, but you musty manually update the CJS snapshots by running:\n *\n * FRODO_DEBUG=1 npm run test:update EmailTemplateOps\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 EmailTemplateOps\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 { EmailTemplate, IdmConfigRaw } from '../index';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\nautoSetupPolly();\n\nconst { EMAIL_TEMPLATE_TYPE } = EmailTemplate;\n\nasync function stageTemplate(\n template: { id: string; data: object },\n create = true\n) {\n // delete if exists, then create\n try {\n await IdmConfigRaw.getConfigEntity(`${EMAIL_TEMPLATE_TYPE}/${template.id}`);\n await IdmConfigRaw.deleteConfigEntity(\n `${EMAIL_TEMPLATE_TYPE}/${template.id}`\n );\n } catch (error) {\n // ignore\n } finally {\n if (create) {\n await IdmConfigRaw.putConfigEntity(\n `${EMAIL_TEMPLATE_TYPE}/${template.id}`,\n template.data\n );\n }\n }\n}\n\ndescribe('EmailTemplateOps', () => {\n const template1 = {\n id: 'FrodoTestEmailTemplate1',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template One',\n enabled: true,\n from: '',\n message: {\n en: '<h3>Click to reset your password</h3><h4><a href=\"{{object.resumeURI}}\">Password reset link</a></h4>',\n fr: '<h3>Cliquez pour réinitialiser votre mot de passe</h3><h4><a href=\"{{object.resumeURI}}\">Mot de passe lien de réinitialisation</a></h4>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'Reset your password',\n fr: 'Réinitialisez votre mot de passe',\n },\n },\n };\n const template2 = {\n id: 'FrodoTestEmailTemplate2',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template Two',\n enabled: true,\n from: '',\n message: {\n en: '<h3>This is your one-time password:</h3><h4>{{object.description}}</a></h4>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'One-Time Password for login',\n },\n },\n };\n const template3 = {\n id: 'FrodoTestEmailTemplate3',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template Three',\n enabled: true,\n from: '',\n message: {\n en: '<html><body><h3>You started a login or profile update that requires MFA. </h3><h4><a href=\"{{object.resumeURI}}\">Click to Proceed</a></h4></body></html>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'Multi-Factor Email for Identity Cloud login',\n },\n },\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageTemplate(template1);\n await stageTemplate(template2);\n await stageTemplate(template3, false);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageTemplate(template1, false);\n await stageTemplate(template2, false);\n await stageTemplate(template3, false);\n }\n });\n\n describe('getEmailTemplate()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplate.getEmailTemplate).toBeDefined();\n });\n\n test(`1: Get email template '${template1.id}'`, async () => {\n const response = await EmailTemplate.getEmailTemplate(template1.id);\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getEmailTemplates()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplate.getEmailTemplates).toBeDefined();\n });\n\n test('1: Get all email templates', async () => {\n const response = await EmailTemplate.getEmailTemplates();\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('putEmailTemplate()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplate.putEmailTemplate).toBeDefined();\n });\n\n test(`1: Create email template '${template3.id}'`, async () => {\n const response = await EmailTemplate.putEmailTemplate(\n template3.id,\n template3.data\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;
|
|
1
|
+
{"version":3,"file":"EmailTemplateOps.test.js","names":["EmailTemplate","IdmConfigRaw","autoSetupPolly","EMAIL_TEMPLATE_TYPE","stageTemplate","template","create","getConfigEntity","id","deleteConfigEntity","error","putConfigEntity","data","describe","template1","defaultLocale","displayName","enabled","from","message","en","fr","mimeType","subject","template2","template3","beforeAll","process","env","FRODO_POLLY_MODE","afterAll","test","expect","getEmailTemplate","toBeDefined","response","toMatchSnapshot","getEmailTemplates","putEmailTemplate"],"sources":["../../src/ops/EmailTemplateOps.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses & update ESM snapshots\n *\n * To record and update ESM snapshots, you must call the test:record\n * script and override all the connection state variables required\n * to connect to the env to record from:\n *\n * FRODO_DEBUG=1 FRODO_HOST=frodo-dev npm run test:record EmailTemplateOps\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update CJS snapshots\n *\n * After recording, the ESM snapshots will already be updated as that happens\n * in one go, but you musty manually update the CJS snapshots by running:\n *\n * FRODO_DEBUG=1 npm run test:update EmailTemplateOps\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 EmailTemplateOps\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 { EmailTemplate, IdmConfigRaw } from '../index';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\nautoSetupPolly();\n\nconst { EMAIL_TEMPLATE_TYPE } = EmailTemplate;\n\nasync function stageTemplate(\n template: { id: string; data: object },\n create = true\n) {\n // delete if exists, then create\n try {\n await IdmConfigRaw.getConfigEntity(`${EMAIL_TEMPLATE_TYPE}/${template.id}`);\n await IdmConfigRaw.deleteConfigEntity(\n `${EMAIL_TEMPLATE_TYPE}/${template.id}`\n );\n } catch (error) {\n // ignore\n } finally {\n if (create) {\n await IdmConfigRaw.putConfigEntity(\n `${EMAIL_TEMPLATE_TYPE}/${template.id}`,\n template.data\n );\n }\n }\n}\n\ndescribe('EmailTemplateOps', () => {\n const template1 = {\n id: 'FrodoTestEmailTemplate1',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template One',\n enabled: true,\n from: '',\n message: {\n en: '<h3>Click to reset your password</h3><h4><a href=\"{{object.resumeURI}}\">Password reset link</a></h4>',\n fr: '<h3>Cliquez pour réinitialiser votre mot de passe</h3><h4><a href=\"{{object.resumeURI}}\">Mot de passe lien de réinitialisation</a></h4>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'Reset your password',\n fr: 'Réinitialisez votre mot de passe',\n },\n },\n };\n const template2 = {\n id: 'FrodoTestEmailTemplate2',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template Two',\n enabled: true,\n from: '',\n message: {\n en: '<h3>This is your one-time password:</h3><h4>{{object.description}}</a></h4>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'One-Time Password for login',\n },\n },\n };\n const template3 = {\n id: 'FrodoTestEmailTemplate3',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template Three',\n enabled: true,\n from: '',\n message: {\n en: '<html><body><h3>You started a login or profile update that requires MFA. </h3><h4><a href=\"{{object.resumeURI}}\">Click to Proceed</a></h4></body></html>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'Multi-Factor Email for Identity Cloud login',\n },\n },\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageTemplate(template1);\n await stageTemplate(template2);\n await stageTemplate(template3, false);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageTemplate(template1, false);\n await stageTemplate(template2, false);\n await stageTemplate(template3, false);\n }\n });\n\n describe('getEmailTemplate()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplate.getEmailTemplate).toBeDefined();\n });\n\n test(`1: Get email template '${template1.id}'`, async () => {\n const response = await EmailTemplate.getEmailTemplate(template1.id);\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getEmailTemplates()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplate.getEmailTemplates).toBeDefined();\n });\n\n test('1: Get all email templates', async () => {\n const response = await EmailTemplate.getEmailTemplates();\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('putEmailTemplate()', () => {\n test('0: Method is implemented', async () => {\n expect(EmailTemplate.putEmailTemplate).toBeDefined();\n });\n\n test(`1: Create email template '${template3.id}'`, async () => {\n const response = await EmailTemplate.putEmailTemplate(\n template3.id,\n template3.data\n );\n expect(response).toMatchSnapshot();\n });\n });\n});\n"],"mappings":"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"}
|
package/esm/ops/IdmOps.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { getAllConfigEntities as _getAllConfigEntities, getConfigEntity as _getConfigEntity, putConfigEntity as _putConfigEntity, getConfigEntitiesByType as _getConfigEntitiesByType, queryAllManagedObjectsByType as _queryAllManagedObjectsByType } from
|
|
2
|
-
import { testConnectorServers as _testConnectorServers } from
|
|
3
|
-
|
|
1
|
+
import { getAllConfigEntities as _getAllConfigEntities, getConfigEntity as _getConfigEntity, putConfigEntity as _putConfigEntity, getConfigEntitiesByType as _getConfigEntitiesByType, queryAllManagedObjectsByType as _queryAllManagedObjectsByType } from "../api/IdmConfigApi.js";
|
|
2
|
+
import { testConnectorServers as _testConnectorServers } from "../api/IdmSystemApi.js";
|
|
4
3
|
/**
|
|
5
4
|
* Get all IDM config entities
|
|
6
5
|
* @returns {Promise} a promise that resolves to all IDM config entities
|
package/esm/ops/IdmOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdmOps.js","names":["getAllConfigEntities","_getAllConfigEntities","getConfigEntity","_getConfigEntity","putConfigEntity","_putConfigEntity","getConfigEntitiesByType","_getConfigEntitiesByType","queryAllManagedObjectsByType","_queryAllManagedObjectsByType","testConnectorServers","_testConnectorServers","type","entityId","entityData","fields","pageCookie","undefined","response","openicf"],"sources":["../../src/ops/IdmOps.ts"],"sourcesContent":["import {\n getAllConfigEntities as _getAllConfigEntities,\n getConfigEntity as _getConfigEntity,\n putConfigEntity as _putConfigEntity,\n getConfigEntitiesByType as _getConfigEntitiesByType,\n queryAllManagedObjectsByType as _queryAllManagedObjectsByType,\n} from '../api/IdmConfigApi';\nimport {\n testConnectorServers as _testConnectorServers,\n ConnectorServerStatusInterface,\n} from '../api/IdmSystemApi';\n\n/**\n * Get all IDM config entities\n * @returns {Promise} a promise that resolves to all IDM config entities\n */\nexport async function getAllConfigEntities() {\n return _getAllConfigEntities();\n}\n\n/**\n * Get IDM config entities by type\n * @param {String} type the desired type of config entity\n * @returns {Promise} a promise that resolves to an object containing all IDM config entities of the desired type\n */\nexport async function getConfigEntitiesByType(type) {\n return _getConfigEntitiesByType(type);\n}\n\n/**\n * Get an IDM config entity\n * @param {string} entityId the desired config entity\n * @returns {Promise<unknown>} a promise that resolves to an IDM config entity\n */\nexport async function getConfigEntity(entityId) {\n return _getConfigEntity(entityId);\n}\n\n/**\n * Put IDM config entity\n * @param {string} entityId config entity id\n * @param {string} entityData config entity object\n * @returns {Promise<unknown>} a promise that resolves to an IDM config entity\n */\nexport async function putConfigEntity(\n entityId: string,\n entityData: string | object\n) {\n return _putConfigEntity(entityId, entityData);\n}\n\n/**\n * Query managed objects\n * @param {string} type managed object type\n * @param {string[]} fields fields to retrieve\n * @param {string} pageCookie paged results cookie\n * @returns {Promise<{result: any[]; resultCount: number; pagedResultsCookie: any; totalPagedResultsPolicy: string; totalPagedResults: number; remainingPagedResults: number;}>} a promise that resolves to managed objects of the desired type\n */\nexport async function queryAllManagedObjectsByType(\n type: string,\n fields: string[] = [],\n pageCookie: string = undefined\n): Promise<{\n result: unknown[];\n resultCount: number;\n pagedResultsCookie: string;\n totalPagedResultsPolicy: string;\n totalPagedResults: number;\n remainingPagedResults: number;\n}> {\n return _queryAllManagedObjectsByType(type, fields, pageCookie);\n}\n\n/**\n * Test connector servers\n * @returns {Promise<ConnectorServerStatusInterface[]>} a promise that resolves to an array of ConnectorServerStatusInterface objects\n */\nexport async function testConnectorServers(): Promise<\n ConnectorServerStatusInterface[]\n> {\n const response = await _testConnectorServers();\n return response.openicf;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"IdmOps.js","names":["getAllConfigEntities","_getAllConfigEntities","getConfigEntity","_getConfigEntity","putConfigEntity","_putConfigEntity","getConfigEntitiesByType","_getConfigEntitiesByType","queryAllManagedObjectsByType","_queryAllManagedObjectsByType","testConnectorServers","_testConnectorServers","type","entityId","entityData","fields","pageCookie","undefined","response","openicf"],"sources":["../../src/ops/IdmOps.ts"],"sourcesContent":["import {\n getAllConfigEntities as _getAllConfigEntities,\n getConfigEntity as _getConfigEntity,\n putConfigEntity as _putConfigEntity,\n getConfigEntitiesByType as _getConfigEntitiesByType,\n queryAllManagedObjectsByType as _queryAllManagedObjectsByType,\n} from '../api/IdmConfigApi';\nimport {\n testConnectorServers as _testConnectorServers,\n ConnectorServerStatusInterface,\n} from '../api/IdmSystemApi';\n\n/**\n * Get all IDM config entities\n * @returns {Promise} a promise that resolves to all IDM config entities\n */\nexport async function getAllConfigEntities() {\n return _getAllConfigEntities();\n}\n\n/**\n * Get IDM config entities by type\n * @param {String} type the desired type of config entity\n * @returns {Promise} a promise that resolves to an object containing all IDM config entities of the desired type\n */\nexport async function getConfigEntitiesByType(type) {\n return _getConfigEntitiesByType(type);\n}\n\n/**\n * Get an IDM config entity\n * @param {string} entityId the desired config entity\n * @returns {Promise<unknown>} a promise that resolves to an IDM config entity\n */\nexport async function getConfigEntity(entityId) {\n return _getConfigEntity(entityId);\n}\n\n/**\n * Put IDM config entity\n * @param {string} entityId config entity id\n * @param {string} entityData config entity object\n * @returns {Promise<unknown>} a promise that resolves to an IDM config entity\n */\nexport async function putConfigEntity(\n entityId: string,\n entityData: string | object\n) {\n return _putConfigEntity(entityId, entityData);\n}\n\n/**\n * Query managed objects\n * @param {string} type managed object type\n * @param {string[]} fields fields to retrieve\n * @param {string} pageCookie paged results cookie\n * @returns {Promise<{result: any[]; resultCount: number; pagedResultsCookie: any; totalPagedResultsPolicy: string; totalPagedResults: number; remainingPagedResults: number;}>} a promise that resolves to managed objects of the desired type\n */\nexport async function queryAllManagedObjectsByType(\n type: string,\n fields: string[] = [],\n pageCookie: string = undefined\n): Promise<{\n result: unknown[];\n resultCount: number;\n pagedResultsCookie: string;\n totalPagedResultsPolicy: string;\n totalPagedResults: number;\n remainingPagedResults: number;\n}> {\n return _queryAllManagedObjectsByType(type, fields, pageCookie);\n}\n\n/**\n * Test connector servers\n * @returns {Promise<ConnectorServerStatusInterface[]>} a promise that resolves to an array of ConnectorServerStatusInterface objects\n */\nexport async function testConnectorServers(): Promise<\n ConnectorServerStatusInterface[]\n> {\n const response = await _testConnectorServers();\n return response.openicf;\n}\n"],"mappings":"SACEA,oBAAoB,IAAIC,qBAAqB,EAC7CC,eAAe,IAAIC,gBAAgB,EACnCC,eAAe,IAAIC,gBAAgB,EACnCC,uBAAuB,IAAIC,wBAAwB,EACnDC,4BAA4B,IAAIC,6BAA6B;AAAA,SAG7DC,oBAAoB,IAAIC,qBAAqB;AAI/C;AACA;AACA;AACA;AACA,OAAO,eAAeX,oBAAoBA,CAAA,EAAG;EAC3C,OAAOC,qBAAqB,CAAC,CAAC;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeK,uBAAuBA,CAACM,IAAI,EAAE;EAClD,OAAOL,wBAAwB,CAACK,IAAI,CAAC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeV,eAAeA,CAACW,QAAQ,EAAE;EAC9C,OAAOV,gBAAgB,CAACU,QAAQ,CAAC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeT,eAAeA,CACnCS,QAAgB,EAChBC,UAA2B,EAC3B;EACA,OAAOT,gBAAgB,CAACQ,QAAQ,EAAEC,UAAU,CAAC;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeN,4BAA4BA,CAChDI,IAAY,EACZG,MAAgB,GAAG,EAAE,EACrBC,UAAkB,GAAGC,SAAS,EAQ7B;EACD,OAAOR,6BAA6B,CAACG,IAAI,EAAEG,MAAM,EAAEC,UAAU,CAAC;AAChE;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeN,oBAAoBA,CAAA,EAExC;EACA,MAAMQ,QAAQ,GAAG,MAAMP,qBAAqB,CAAC,CAAC;EAC9C,OAAOO,QAAQ,CAACC,OAAO;AACzB"}
|
package/esm/ops/IdmOps.test.js
CHANGED
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
* Note: FRODO_DEBUG=1 is optional and enables debug logging for some output
|
|
30
30
|
* in case things don't function as expected
|
|
31
31
|
*/
|
|
32
|
-
import { Idm, IdmConfigRaw } from
|
|
33
|
-
import { autoSetupPolly } from
|
|
32
|
+
import { Idm, IdmConfigRaw } from "../index.js";
|
|
33
|
+
import { autoSetupPolly } from "../utils/AutoSetupPolly.js";
|
|
34
34
|
autoSetupPolly();
|
|
35
35
|
async function stageConfigEntity(configEntity, create = true) {
|
|
36
36
|
// delete if exists, then create
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdmOps.test.js","names":["Idm","IdmConfigRaw","autoSetupPolly","stageConfigEntity","configEntity","create","getConfigEntity","id","deleteConfigEntity","error","putConfigEntity","data","describe","configEntity1","defaultLocale","displayName","enabled","from","message","en","fr","mimeType","subject","configEntity2","configEntity3","beforeAll","process","env","FRODO_POLLY_MODE","afterAll","test","expect","getAllConfigEntities","toBeDefined","response","toMatchSnapshot","getConfigEntitiesByType","queryAllManagedObjectsByType","testConnectorServers"],"sources":["../../src/ops/IdmOps.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses & update ESM snapshots\n *\n * To record and update ESM snapshots, you must call the test:record\n * script and override all the connection state variables required\n * to connect to the env to record from:\n *\n * FRODO_DEBUG=1 FRODO_HOST=frodo-dev npm run test:record IdmOps\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update CJS snapshots\n *\n * After recording, the ESM snapshots will already be updated as that happens\n * in one go, but you musty manually update the CJS snapshots by running:\n *\n * FRODO_DEBUG=1 npm run test:update IdmOps\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 IdmOps\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 { Idm, IdmConfigRaw } from '../index';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\nautoSetupPolly();\n\nasync function stageConfigEntity(\n configEntity: { id: string; data: object },\n create = true\n) {\n // delete if exists, then create\n try {\n await IdmConfigRaw.getConfigEntity(configEntity.id);\n await IdmConfigRaw.deleteConfigEntity(configEntity.id);\n } catch (error) {\n // ignore\n } finally {\n if (create) {\n await IdmConfigRaw.putConfigEntity(configEntity.id, configEntity.data);\n }\n }\n}\n\ndescribe('IdmOps', () => {\n const configEntity1 = {\n id: 'emailTemplate/FrodoTestConfigEntity1',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template One',\n enabled: true,\n from: '',\n message: {\n en: '<h3>Click to reset your password</h3><h4><a href=\"{{object.resumeURI}}\">Password reset link</a></h4>',\n fr: '<h3>Cliquez pour réinitialiser votre mot de passe</h3><h4><a href=\"{{object.resumeURI}}\">Mot de passe lien de réinitialisation</a></h4>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'Reset your password',\n fr: 'Réinitialisez votre mot de passe',\n },\n },\n };\n const configEntity2 = {\n id: 'emailTemplate/FrodoTestConfigEntity2',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template Two',\n enabled: true,\n from: '',\n message: {\n en: '<h3>This is your one-time password:</h3><h4>{{object.description}}</a></h4>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'One-Time Password for login',\n },\n },\n };\n const configEntity3 = {\n id: 'emailTemplate/FrodoTestConfigEntity3',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template Three',\n enabled: true,\n from: '',\n message: {\n en: '<html><body><h3>You started a login or profile update that requires MFA. </h3><h4><a href=\"{{object.resumeURI}}\">Click to Proceed</a></h4></body></html>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'Multi-Factor Email for Identity Cloud login',\n },\n },\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageConfigEntity(configEntity1);\n await stageConfigEntity(configEntity2);\n await stageConfigEntity(configEntity3, false);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageConfigEntity(configEntity1, false);\n await stageConfigEntity(configEntity2, false);\n await stageConfigEntity(configEntity3, false);\n }\n });\n\n describe('getAllConfigEntities()', () => {\n test('0: Method is implemented', async () => {\n expect(Idm.getAllConfigEntities).toBeDefined();\n });\n\n test('1: get all config entities', async () => {\n const response = await Idm.getAllConfigEntities();\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getConfigEntitiesByType()', () => {\n test('0: Method is implemented', async () => {\n expect(Idm.getConfigEntitiesByType).toBeDefined();\n });\n\n test('1: Get config entity by type (emailTemplate)', async () => {\n const response = await Idm.getConfigEntitiesByType('emailTemplate');\n expect(response).toMatchSnapshot();\n });\n\n test('2: Get config entity by type (managed)', async () => {\n const response = await Idm.getConfigEntitiesByType('managed');\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getConfigEntity()', () => {\n test('0: Method is implemented', async () => {\n expect(Idm.getConfigEntity).toBeDefined();\n });\n\n test(`1: Get config entity '${configEntity1.id}'`, async () => {\n const response = await Idm.getConfigEntity(configEntity1.id);\n expect(response).toMatchSnapshot();\n });\n\n test(\"2: Get config entity 'managed'\", async () => {\n const response = await Idm.getConfigEntity('managed');\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('putConfigEntity()', () => {\n test('0: Method is implemented', async () => {\n expect(Idm.putConfigEntity).toBeDefined();\n });\n\n test(`1: Put a config entity '${configEntity3.id}'`, async () => {\n const response = await Idm.putConfigEntity(\n configEntity3.id,\n configEntity3.data\n );\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('queryAllManagedObjectsByType()', () => {\n test('0: Method is implemented', async () => {\n expect(Idm.queryAllManagedObjectsByType).toBeDefined();\n });\n\n test(`1: Query managed objects of type 'alpha_user'`, async () => {\n const response = await Idm.queryAllManagedObjectsByType('alpha_user', [\n '*',\n ]);\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('testConnectorServers()', () => {\n test('0: Method is implemented', async () => {\n expect(Idm.testConnectorServers).toBeDefined();\n });\n\n test(`1: Test connector servers`, async () => {\n const response = await Idm.testConnectorServers();\n expect(response).toMatchSnapshot();\n });\n });\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IdmOps.test.js","names":["Idm","IdmConfigRaw","autoSetupPolly","stageConfigEntity","configEntity","create","getConfigEntity","id","deleteConfigEntity","error","putConfigEntity","data","describe","configEntity1","defaultLocale","displayName","enabled","from","message","en","fr","mimeType","subject","configEntity2","configEntity3","beforeAll","process","env","FRODO_POLLY_MODE","afterAll","test","expect","getAllConfigEntities","toBeDefined","response","toMatchSnapshot","getConfigEntitiesByType","queryAllManagedObjectsByType","testConnectorServers"],"sources":["../../src/ops/IdmOps.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses & update ESM snapshots\n *\n * To record and update ESM snapshots, you must call the test:record\n * script and override all the connection state variables required\n * to connect to the env to record from:\n *\n * FRODO_DEBUG=1 FRODO_HOST=frodo-dev npm run test:record IdmOps\n *\n * The above command assumes that you have a connection profile for\n * 'frodo-dev' on your development machine.\n *\n * 2. Update CJS snapshots\n *\n * After recording, the ESM snapshots will already be updated as that happens\n * in one go, but you musty manually update the CJS snapshots by running:\n *\n * FRODO_DEBUG=1 npm run test:update IdmOps\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 IdmOps\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 { Idm, IdmConfigRaw } from '../index';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\nautoSetupPolly();\n\nasync function stageConfigEntity(\n configEntity: { id: string; data: object },\n create = true\n) {\n // delete if exists, then create\n try {\n await IdmConfigRaw.getConfigEntity(configEntity.id);\n await IdmConfigRaw.deleteConfigEntity(configEntity.id);\n } catch (error) {\n // ignore\n } finally {\n if (create) {\n await IdmConfigRaw.putConfigEntity(configEntity.id, configEntity.data);\n }\n }\n}\n\ndescribe('IdmOps', () => {\n const configEntity1 = {\n id: 'emailTemplate/FrodoTestConfigEntity1',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template One',\n enabled: true,\n from: '',\n message: {\n en: '<h3>Click to reset your password</h3><h4><a href=\"{{object.resumeURI}}\">Password reset link</a></h4>',\n fr: '<h3>Cliquez pour réinitialiser votre mot de passe</h3><h4><a href=\"{{object.resumeURI}}\">Mot de passe lien de réinitialisation</a></h4>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'Reset your password',\n fr: 'Réinitialisez votre mot de passe',\n },\n },\n };\n const configEntity2 = {\n id: 'emailTemplate/FrodoTestConfigEntity2',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template Two',\n enabled: true,\n from: '',\n message: {\n en: '<h3>This is your one-time password:</h3><h4>{{object.description}}</a></h4>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'One-Time Password for login',\n },\n },\n };\n const configEntity3 = {\n id: 'emailTemplate/FrodoTestConfigEntity3',\n data: {\n defaultLocale: 'en',\n displayName: 'Frodo Test Email Template Three',\n enabled: true,\n from: '',\n message: {\n en: '<html><body><h3>You started a login or profile update that requires MFA. </h3><h4><a href=\"{{object.resumeURI}}\">Click to Proceed</a></h4></body></html>',\n },\n mimeType: 'text/html',\n subject: {\n en: 'Multi-Factor Email for Identity Cloud login',\n },\n },\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageConfigEntity(configEntity1);\n await stageConfigEntity(configEntity2);\n await stageConfigEntity(configEntity3, false);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageConfigEntity(configEntity1, false);\n await stageConfigEntity(configEntity2, false);\n await stageConfigEntity(configEntity3, false);\n }\n });\n\n describe('getAllConfigEntities()', () => {\n test('0: Method is implemented', async () => {\n expect(Idm.getAllConfigEntities).toBeDefined();\n });\n\n test('1: get all config entities', async () => {\n const response = await Idm.getAllConfigEntities();\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getConfigEntitiesByType()', () => {\n test('0: Method is implemented', async () => {\n expect(Idm.getConfigEntitiesByType).toBeDefined();\n });\n\n test('1: Get config entity by type (emailTemplate)', async () => {\n const response = await Idm.getConfigEntitiesByType('emailTemplate');\n expect(response).toMatchSnapshot();\n });\n\n test('2: Get config entity by type (managed)', async () => {\n const response = await Idm.getConfigEntitiesByType('managed');\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getConfigEntity()', () => {\n test('0: Method is implemented', async () => {\n expect(Idm.getConfigEntity).toBeDefined();\n });\n\n test(`1: Get config entity '${configEntity1.id}'`, async () => {\n const response = await Idm.getConfigEntity(configEntity1.id);\n expect(response).toMatchSnapshot();\n });\n\n test(\"2: Get config entity 'managed'\", async () => {\n const response = await Idm.getConfigEntity('managed');\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('putConfigEntity()', () => {\n test('0: Method is implemented', async () => {\n expect(Idm.putConfigEntity).toBeDefined();\n });\n\n test(`1: Put a config entity '${configEntity3.id}'`, async () => {\n const response = await Idm.putConfigEntity(\n configEntity3.id,\n configEntity3.data\n );\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('queryAllManagedObjectsByType()', () => {\n test('0: Method is implemented', async () => {\n expect(Idm.queryAllManagedObjectsByType).toBeDefined();\n });\n\n test(`1: Query managed objects of type 'alpha_user'`, async () => {\n const response = await Idm.queryAllManagedObjectsByType('alpha_user', [\n '*',\n ]);\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('testConnectorServers()', () => {\n test('0: Method is implemented', async () => {\n expect(Idm.testConnectorServers).toBeDefined();\n });\n\n test(`1: Test connector servers`, async () => {\n const response = await Idm.testConnectorServers();\n expect(response).toMatchSnapshot();\n });\n });\n});\n"],"mappings":"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"}
|
package/esm/ops/IdpOps.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { deleteProviderByTypeAndId, getSocialIdentityProviders as _getSocialIdentityProviders, putProviderByTypeAndId as _putProviderByTypeAndId } from
|
|
2
|
-
import { getScript } from
|
|
3
|
-
import { putScript } from
|
|
4
|
-
import { convertBase64TextToArray, convertTextArrayToBase64 } from
|
|
5
|
-
import { printMessage, createProgressIndicator, updateProgressIndicator, stopProgressIndicator } from
|
|
6
|
-
import { getMetadata } from
|
|
7
|
-
import * as state from
|
|
8
|
-
import { debugMessage } from
|
|
1
|
+
import { deleteProviderByTypeAndId, getSocialIdentityProviders as _getSocialIdentityProviders, putProviderByTypeAndId as _putProviderByTypeAndId } from "../api/SocialIdentityProvidersApi.js";
|
|
2
|
+
import { getScript } from "../api/ScriptApi.js";
|
|
3
|
+
import { putScript } from "./ScriptOps.js";
|
|
4
|
+
import { convertBase64TextToArray, convertTextArrayToBase64 } from "./utils/ExportImportUtils.js";
|
|
5
|
+
import { printMessage, createProgressIndicator, updateProgressIndicator, stopProgressIndicator } from "./utils/Console.js";
|
|
6
|
+
import { getMetadata } from "./utils/ExportImportUtils.js";
|
|
7
|
+
import * as state from "../shared/State.js";
|
|
8
|
+
import { debugMessage } from "./utils/Console.js";
|
|
9
9
|
/**
|
|
10
10
|
* Create an empty idp export template
|
|
11
11
|
* @returns {SocialProviderExportInterface} an empty idp export template
|
package/esm/ops/IdpOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdpOps.js","names":["deleteProviderByTypeAndId","getSocialIdentityProviders","_getSocialIdentityProviders","putProviderByTypeAndId","_putProviderByTypeAndId","getScript","putScript","convertBase64TextToArray","convertTextArrayToBase64","printMessage","createProgressIndicator","updateProgressIndicator","stopProgressIndicator","getMetadata","state","debugMessage","createIdpExportTemplate","meta","script","idp","result","getSocialProvider","providerId","response","foundProviders","filter","provider","_id","length","Error","providerType","providerData","importError","_importError$response","_importError$response2","_importError$response3","status","data","message","validAttributes","detail","push","attribute","Object","keys","includes","getVerbose","deleteSocialProvider","_type","exportSocialProvider","idpData","exportData","transform","scriptData","exportSocialProviders","allIdpsData","importSocialProvider","importData","idpId","scriptId","importFirstSocialProvider","importSocialProviders","outcome","error","_error$response"],"sources":["../../src/ops/IdpOps.ts"],"sourcesContent":["import {\n deleteProviderByTypeAndId,\n getSocialIdentityProviders as _getSocialIdentityProviders,\n putProviderByTypeAndId as _putProviderByTypeAndId,\n} from '../api/SocialIdentityProvidersApi';\nimport { getScript } from '../api/ScriptApi';\nimport { putScript } from './ScriptOps';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n} from './utils/ExportImportUtils';\nimport {\n printMessage,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from './utils/Console';\nimport { ExportMetaData } from './OpsTypes';\nimport { ScriptSkeleton, SocialIdpSkeleton } from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport * as state from '../shared/State';\nimport { debugMessage } from './utils/Console';\n\nexport interface SocialProviderExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n idp: Record<string, SocialIdpSkeleton>;\n}\n\n/**\n * Create an empty idp export template\n * @returns {SocialProviderExportInterface} an empty idp export template\n */\nfunction createIdpExportTemplate(): SocialProviderExportInterface {\n return {\n meta: getMetadata(),\n script: {},\n idp: {},\n } as SocialProviderExportInterface;\n}\n\n/**\n * Get all social identity providers\n * @returns {Promise} a promise that resolves to an object containing an array of social identity providers\n */\nexport async function getSocialIdentityProviders() {\n const { result } = await _getSocialIdentityProviders();\n return result;\n}\n\n/**\n * Get social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\nexport async function getSocialProvider(providerId) {\n const response = await getSocialIdentityProviders();\n const foundProviders = response.filter(\n (provider) => provider._id === providerId\n );\n switch (foundProviders.length) {\n case 1:\n return foundProviders[0];\n case 0:\n throw new Error(`Provider '${providerId}' not found`);\n default:\n throw new Error(\n `${foundProviders.length} providers '${providerId}' found`\n );\n }\n}\n\nexport async function putProviderByTypeAndId(\n providerType: string,\n providerId: string,\n providerData: object\n) {\n debugMessage(`IdpOps.putProviderByTypeAndId: start`);\n try {\n const response = await _putProviderByTypeAndId(\n providerType,\n providerId,\n providerData\n );\n debugMessage(`IdpOps.putProviderByTypeAndId: end`);\n return response;\n } catch (importError) {\n if (\n importError.response?.status === 400 &&\n importError.response?.data?.message === 'Invalid attribute specified.'\n ) {\n const { validAttributes } = importError.response.data.detail;\n validAttributes.push('_id', '_type');\n for (const attribute of Object.keys(providerData)) {\n if (!validAttributes.includes(attribute)) {\n if (state.getVerbose())\n printMessage(\n `\\nRemoving invalid attribute: ${attribute}`,\n 'warn',\n false\n );\n delete providerData[attribute];\n }\n }\n if (state.getVerbose()) printMessage('\\n', 'warn', false);\n const response = await _putProviderByTypeAndId(\n providerType,\n providerId,\n providerData\n );\n debugMessage(`IdpOps.putProviderByTypeAndId: end (after retry)`);\n return response;\n } else {\n // re-throw unhandleable error\n throw importError;\n }\n }\n}\n\n/**\n * Delete social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\nexport async function deleteSocialProvider(\n providerId: string\n): Promise<unknown> {\n const response = await getSocialIdentityProviders();\n const foundProviders = response.filter(\n (provider) => provider._id === providerId\n );\n switch (foundProviders.length) {\n case 1:\n return await deleteProviderByTypeAndId(\n foundProviders[0]._type._id,\n foundProviders[0]._id\n );\n case 0:\n throw new Error(`Provider '${providerId}' not found`);\n default:\n throw new Error(\n `${foundProviders.length} providers '${providerId}' found`\n );\n }\n}\n\n/**\n * Export social provider by id\n * @param {string} providerId provider id/name\n * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object\n */\nexport async function exportSocialProvider(\n providerId: string\n): Promise<SocialProviderExportInterface> {\n debugMessage(`IdpOps.exportSocialProvider: start`);\n const idpData = await getSocialProvider(providerId);\n const exportData = createIdpExportTemplate();\n exportData.idp[idpData._id] = idpData;\n if (idpData.transform) {\n const scriptData = await getScript(idpData.transform);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n exportData.script[idpData.transform] = scriptData;\n }\n debugMessage(`IdpOps.exportSocialProvider: end`);\n return exportData;\n}\n\n/**\n * Export all providers\n * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object\n */\nexport async function exportSocialProviders(): Promise<SocialProviderExportInterface> {\n const exportData = createIdpExportTemplate();\n const allIdpsData = await getSocialIdentityProviders();\n createProgressIndicator(allIdpsData.length, 'Exporting providers');\n for (const idpData of allIdpsData) {\n updateProgressIndicator(`Exporting provider ${idpData._id}`);\n exportData.idp[idpData._id] = idpData;\n if (idpData.transform) {\n // eslint-disable-next-line no-await-in-loop\n const scriptData = await getScript(idpData.transform);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n exportData.script[idpData.transform] = scriptData;\n }\n }\n stopProgressIndicator(`${allIdpsData.length} providers exported.`);\n return exportData;\n}\n\n/**\n * Import provider by id/name\n * @param {string} providerId provider id/name\n * @param {SocialProviderExportInterface} importData import data\n */\nexport async function importSocialProvider(\n providerId: string,\n importData: SocialProviderExportInterface\n): Promise<boolean> {\n for (const idpId of Object.keys(importData.idp)) {\n if (idpId === providerId) {\n const scriptId = importData.idp[idpId].transform as string;\n const scriptData = importData.script[scriptId as string];\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n await putScript(scriptId, scriptData);\n }\n await putProviderByTypeAndId(\n importData.idp[idpId]._type._id,\n idpId,\n importData.idp[idpId]\n );\n return true;\n }\n }\n return false;\n}\n\n/**\n * Import first provider\n * @param {SocialProviderExportInterface} importData import data\n */\nexport async function importFirstSocialProvider(\n importData: SocialProviderExportInterface\n): Promise<boolean> {\n for (const idpId of Object.keys(importData.idp)) {\n const scriptId = importData.idp[idpId].transform as string;\n const scriptData = importData.script[scriptId as string];\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n await putScript(scriptId, scriptData);\n }\n await putProviderByTypeAndId(\n importData.idp[idpId]._type._id,\n idpId,\n importData.idp[idpId]\n );\n return true;\n }\n return false;\n}\n\n/**\n * Import all providers\n * @param {SocialProviderExportInterface} importData import data\n */\nexport async function importSocialProviders(\n importData: SocialProviderExportInterface\n): Promise<boolean> {\n let outcome = true;\n for (const idpId of Object.keys(importData.idp)) {\n try {\n const scriptId = importData.idp[idpId].transform as string;\n const scriptData = { ...importData.script[scriptId as string] };\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n await putScript(scriptId, scriptData);\n }\n await putProviderByTypeAndId(\n importData.idp[idpId]._type._id,\n idpId,\n importData.idp[idpId]\n );\n } catch (error) {\n printMessage(error.response?.data || error, 'error');\n printMessage(`\\nError importing provider ${idpId}`, 'error');\n outcome = false;\n }\n }\n return outcome;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IdpOps.js","names":["deleteProviderByTypeAndId","getSocialIdentityProviders","_getSocialIdentityProviders","putProviderByTypeAndId","_putProviderByTypeAndId","getScript","putScript","convertBase64TextToArray","convertTextArrayToBase64","printMessage","createProgressIndicator","updateProgressIndicator","stopProgressIndicator","getMetadata","state","debugMessage","createIdpExportTemplate","meta","script","idp","result","getSocialProvider","providerId","response","foundProviders","filter","provider","_id","length","Error","providerType","providerData","importError","_importError$response","_importError$response2","_importError$response3","status","data","message","validAttributes","detail","push","attribute","Object","keys","includes","getVerbose","deleteSocialProvider","_type","exportSocialProvider","idpData","exportData","transform","scriptData","exportSocialProviders","allIdpsData","importSocialProvider","importData","idpId","scriptId","importFirstSocialProvider","importSocialProviders","outcome","error","_error$response"],"sources":["../../src/ops/IdpOps.ts"],"sourcesContent":["import {\n deleteProviderByTypeAndId,\n getSocialIdentityProviders as _getSocialIdentityProviders,\n putProviderByTypeAndId as _putProviderByTypeAndId,\n} from '../api/SocialIdentityProvidersApi';\nimport { getScript } from '../api/ScriptApi';\nimport { putScript } from './ScriptOps';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n} from './utils/ExportImportUtils';\nimport {\n printMessage,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from './utils/Console';\nimport { ExportMetaData } from './OpsTypes';\nimport { ScriptSkeleton, SocialIdpSkeleton } from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport * as state from '../shared/State';\nimport { debugMessage } from './utils/Console';\n\nexport interface SocialProviderExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n idp: Record<string, SocialIdpSkeleton>;\n}\n\n/**\n * Create an empty idp export template\n * @returns {SocialProviderExportInterface} an empty idp export template\n */\nfunction createIdpExportTemplate(): SocialProviderExportInterface {\n return {\n meta: getMetadata(),\n script: {},\n idp: {},\n } as SocialProviderExportInterface;\n}\n\n/**\n * Get all social identity providers\n * @returns {Promise} a promise that resolves to an object containing an array of social identity providers\n */\nexport async function getSocialIdentityProviders() {\n const { result } = await _getSocialIdentityProviders();\n return result;\n}\n\n/**\n * Get social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\nexport async function getSocialProvider(providerId) {\n const response = await getSocialIdentityProviders();\n const foundProviders = response.filter(\n (provider) => provider._id === providerId\n );\n switch (foundProviders.length) {\n case 1:\n return foundProviders[0];\n case 0:\n throw new Error(`Provider '${providerId}' not found`);\n default:\n throw new Error(\n `${foundProviders.length} providers '${providerId}' found`\n );\n }\n}\n\nexport async function putProviderByTypeAndId(\n providerType: string,\n providerId: string,\n providerData: object\n) {\n debugMessage(`IdpOps.putProviderByTypeAndId: start`);\n try {\n const response = await _putProviderByTypeAndId(\n providerType,\n providerId,\n providerData\n );\n debugMessage(`IdpOps.putProviderByTypeAndId: end`);\n return response;\n } catch (importError) {\n if (\n importError.response?.status === 400 &&\n importError.response?.data?.message === 'Invalid attribute specified.'\n ) {\n const { validAttributes } = importError.response.data.detail;\n validAttributes.push('_id', '_type');\n for (const attribute of Object.keys(providerData)) {\n if (!validAttributes.includes(attribute)) {\n if (state.getVerbose())\n printMessage(\n `\\nRemoving invalid attribute: ${attribute}`,\n 'warn',\n false\n );\n delete providerData[attribute];\n }\n }\n if (state.getVerbose()) printMessage('\\n', 'warn', false);\n const response = await _putProviderByTypeAndId(\n providerType,\n providerId,\n providerData\n );\n debugMessage(`IdpOps.putProviderByTypeAndId: end (after retry)`);\n return response;\n } else {\n // re-throw unhandleable error\n throw importError;\n }\n }\n}\n\n/**\n * Delete social identity provider by id\n * @param {String} providerId social identity provider id/name\n * @returns {Promise} a promise that resolves a social identity provider object\n */\nexport async function deleteSocialProvider(\n providerId: string\n): Promise<unknown> {\n const response = await getSocialIdentityProviders();\n const foundProviders = response.filter(\n (provider) => provider._id === providerId\n );\n switch (foundProviders.length) {\n case 1:\n return await deleteProviderByTypeAndId(\n foundProviders[0]._type._id,\n foundProviders[0]._id\n );\n case 0:\n throw new Error(`Provider '${providerId}' not found`);\n default:\n throw new Error(\n `${foundProviders.length} providers '${providerId}' found`\n );\n }\n}\n\n/**\n * Export social provider by id\n * @param {string} providerId provider id/name\n * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object\n */\nexport async function exportSocialProvider(\n providerId: string\n): Promise<SocialProviderExportInterface> {\n debugMessage(`IdpOps.exportSocialProvider: start`);\n const idpData = await getSocialProvider(providerId);\n const exportData = createIdpExportTemplate();\n exportData.idp[idpData._id] = idpData;\n if (idpData.transform) {\n const scriptData = await getScript(idpData.transform);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n exportData.script[idpData.transform] = scriptData;\n }\n debugMessage(`IdpOps.exportSocialProvider: end`);\n return exportData;\n}\n\n/**\n * Export all providers\n * @returns {Promise<SocialProviderExportInterface>} a promise that resolves to a SocialProviderExportInterface object\n */\nexport async function exportSocialProviders(): Promise<SocialProviderExportInterface> {\n const exportData = createIdpExportTemplate();\n const allIdpsData = await getSocialIdentityProviders();\n createProgressIndicator(allIdpsData.length, 'Exporting providers');\n for (const idpData of allIdpsData) {\n updateProgressIndicator(`Exporting provider ${idpData._id}`);\n exportData.idp[idpData._id] = idpData;\n if (idpData.transform) {\n // eslint-disable-next-line no-await-in-loop\n const scriptData = await getScript(idpData.transform);\n scriptData.script = convertBase64TextToArray(scriptData.script);\n exportData.script[idpData.transform] = scriptData;\n }\n }\n stopProgressIndicator(`${allIdpsData.length} providers exported.`);\n return exportData;\n}\n\n/**\n * Import provider by id/name\n * @param {string} providerId provider id/name\n * @param {SocialProviderExportInterface} importData import data\n */\nexport async function importSocialProvider(\n providerId: string,\n importData: SocialProviderExportInterface\n): Promise<boolean> {\n for (const idpId of Object.keys(importData.idp)) {\n if (idpId === providerId) {\n const scriptId = importData.idp[idpId].transform as string;\n const scriptData = importData.script[scriptId as string];\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n await putScript(scriptId, scriptData);\n }\n await putProviderByTypeAndId(\n importData.idp[idpId]._type._id,\n idpId,\n importData.idp[idpId]\n );\n return true;\n }\n }\n return false;\n}\n\n/**\n * Import first provider\n * @param {SocialProviderExportInterface} importData import data\n */\nexport async function importFirstSocialProvider(\n importData: SocialProviderExportInterface\n): Promise<boolean> {\n for (const idpId of Object.keys(importData.idp)) {\n const scriptId = importData.idp[idpId].transform as string;\n const scriptData = importData.script[scriptId as string];\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n await putScript(scriptId, scriptData);\n }\n await putProviderByTypeAndId(\n importData.idp[idpId]._type._id,\n idpId,\n importData.idp[idpId]\n );\n return true;\n }\n return false;\n}\n\n/**\n * Import all providers\n * @param {SocialProviderExportInterface} importData import data\n */\nexport async function importSocialProviders(\n importData: SocialProviderExportInterface\n): Promise<boolean> {\n let outcome = true;\n for (const idpId of Object.keys(importData.idp)) {\n try {\n const scriptId = importData.idp[idpId].transform as string;\n const scriptData = { ...importData.script[scriptId as string] };\n if (scriptId && scriptData) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n await putScript(scriptId, scriptData);\n }\n await putProviderByTypeAndId(\n importData.idp[idpId]._type._id,\n idpId,\n importData.idp[idpId]\n );\n } catch (error) {\n printMessage(error.response?.data || error, 'error');\n printMessage(`\\nError importing provider ${idpId}`, 'error');\n outcome = false;\n }\n }\n return outcome;\n}\n"],"mappings":"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"}
|
package/esm/ops/IdpOps.test.js
CHANGED
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
* Note: FRODO_DEBUG=1 is optional and enables debug logging for some output
|
|
30
30
|
* in case things don't function as expected
|
|
31
31
|
*/
|
|
32
|
-
import { Idp } from
|
|
33
|
-
import { autoSetupPolly } from
|
|
32
|
+
import { Idp } from "../index.js";
|
|
33
|
+
import { autoSetupPolly } from "../utils/AutoSetupPolly.js";
|
|
34
34
|
autoSetupPolly();
|
|
35
35
|
async function stageIdp(idp, create = true) {
|
|
36
36
|
// delete if exists, then create
|