@rockcarver/frodo-lib 2.0.0-13 → 2.0.0-14
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.map +1 -1
- package/cjs/api/AuthenticateApi.js.map +1 -1
- package/cjs/api/BaseApi.js +1 -1
- package/cjs/api/BaseApi.js.map +1 -1
- package/cjs/api/CirclesOfTrustApi.js.map +1 -1
- package/cjs/api/IdmConfigApi.js.map +1 -1
- package/cjs/api/IdmSystemApi.js.map +1 -1
- package/cjs/api/ManagedObjectApi.js.map +1 -1
- package/cjs/api/NodeApi.js.map +1 -1
- package/cjs/api/OAuth2ClientApi.js.map +1 -1
- package/cjs/api/OAuth2OIDCApi.js.map +1 -1
- package/cjs/api/OAuth2OIDCApi.test.js +2 -2
- package/cjs/api/OAuth2OIDCApi.test.js.map +1 -1
- package/cjs/api/OAuth2ProviderApi.js.map +1 -1
- package/cjs/api/PoliciesApi.js.map +1 -1
- package/cjs/api/PolicySetApi.js.map +1 -1
- package/cjs/api/RealmApi.js.map +1 -1
- package/cjs/api/ResourceTypesApi.js.map +1 -1
- package/cjs/api/Saml2Api.js.map +1 -1
- package/cjs/api/ScriptApi.js.map +1 -1
- package/cjs/api/ServerInfoApi.js.map +1 -1
- package/cjs/api/ServiceApi.js.map +1 -1
- package/cjs/api/SocialIdentityProvidersApi.js.map +1 -1
- package/cjs/api/TreeApi.js.map +1 -1
- package/cjs/api/cloud/AdminFederationProvidersApi.js.map +1 -1
- package/cjs/api/cloud/EnvInfoApi.js.map +1 -1
- package/cjs/api/cloud/FeatureApi.js.map +1 -1
- package/cjs/api/cloud/LogApi.js.map +1 -1
- package/cjs/api/cloud/SecretsApi.js.map +1 -1
- package/cjs/api/cloud/StartupApi.js.map +1 -1
- package/cjs/api/cloud/VariablesApi.js.map +1 -1
- package/cjs/api/utils/ApiUtils.js.map +1 -1
- package/cjs/api/utils/Base64.js +4 -4
- package/cjs/api/utils/Base64.js.map +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/lib/Frodo.js +9 -2
- package/cjs/lib/Frodo.js.map +1 -1
- package/cjs/lib/FrodoLib.js +17 -20
- package/cjs/lib/FrodoLib.js.map +1 -1
- package/cjs/ops/AdminOps.js.map +1 -1
- package/cjs/ops/AgentOps.js +35 -35
- package/cjs/ops/AgentOps.js.map +1 -1
- package/cjs/ops/AuthenticateOps.js +10 -12
- package/cjs/ops/AuthenticateOps.js.map +1 -1
- package/cjs/ops/CirclesOfTrustOps.js +14 -14
- package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.js +2 -2
- package/cjs/ops/ConnectionProfileOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.test.js +5 -5
- package/cjs/ops/ConnectionProfileOps.test.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.js.map +1 -1
- package/cjs/ops/IdmOps.js.map +1 -1
- package/cjs/ops/IdpOps.js.map +1 -1
- package/cjs/ops/InfoOps.js +3 -4
- package/cjs/ops/InfoOps.js.map +1 -1
- package/cjs/ops/JoseOps.js +30 -0
- package/cjs/ops/JoseOps.js.map +1 -1
- package/cjs/ops/JourneyOps.js +41 -43
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/JourneyOps.test.js +3 -2
- package/cjs/ops/JourneyOps.test.js.map +1 -1
- package/cjs/ops/ManagedObjectOps.js.map +1 -1
- package/cjs/ops/NodeOps.js.map +1 -1
- package/cjs/ops/OAuth2ClientOps.js +19 -19
- package/cjs/ops/OAuth2ClientOps.js.map +1 -1
- package/cjs/ops/OAuth2OidcOps.js.map +1 -1
- package/cjs/ops/OAuth2ProviderOps.js.map +1 -1
- package/cjs/ops/OpsTypes.js.map +1 -1
- package/cjs/ops/OrganizationOps.js.map +1 -1
- package/cjs/ops/PolicyOps.js +29 -29
- package/cjs/ops/PolicyOps.js.map +1 -1
- package/cjs/ops/PolicySetOps.js +27 -27
- package/cjs/ops/PolicySetOps.js.map +1 -1
- package/cjs/ops/RealmOps.js.map +1 -1
- package/cjs/ops/ResourceTypeOps.js +23 -23
- package/cjs/ops/ResourceTypeOps.js.map +1 -1
- package/cjs/ops/Saml2Ops.js +11 -11
- package/cjs/ops/Saml2Ops.js.map +1 -1
- package/cjs/ops/Saml2Ops.test.js +3 -2
- package/cjs/ops/Saml2Ops.test.js.map +1 -1
- package/cjs/ops/ScriptOps.js +3 -3
- package/cjs/ops/ScriptOps.js.map +1 -1
- package/cjs/ops/ServiceOps.js.map +1 -1
- package/cjs/ops/ThemeOps.js.map +1 -1
- package/cjs/ops/cloud/AdminFederationOps.js.map +1 -1
- package/cjs/ops/cloud/FeatureOps.js.map +1 -1
- package/cjs/ops/cloud/LogOps.js.map +1 -1
- package/cjs/ops/cloud/SecretsOps.js.map +1 -1
- package/cjs/ops/cloud/ServiceAccountOps.js +1 -1
- package/cjs/ops/cloud/ServiceAccountOps.js.map +1 -1
- package/cjs/ops/cloud/StartupOps.js.map +1 -1
- package/cjs/ops/cloud/VariablesOps.js.map +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 +2 -2
- package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
- package/cjs/ops/utils/OpsUtils.js +105 -25
- package/cjs/ops/utils/OpsUtils.js.map +1 -1
- package/cjs/ops/utils/OpsUtils.test.js +6 -5
- package/cjs/ops/utils/OpsUtils.test.js.map +1 -1
- package/cjs/ops/utils/ScriptValidationUtils.js +33 -2
- package/cjs/ops/utils/ScriptValidationUtils.js.map +1 -1
- package/cjs/ops/utils/ScriptValidationUtils.test.js +1 -1
- package/cjs/ops/utils/ScriptValidationUtils.test.js.map +1 -1
- package/cjs/ops/utils/{Version.js → VersionUtils.js} +1 -1
- package/cjs/ops/utils/VersionUtils.js.map +1 -0
- package/cjs/ops/utils/{Version.test.js → VersionUtils.test.js} +3 -3
- package/cjs/ops/utils/VersionUtils.test.js.map +1 -0
- package/cjs/shared/Constants.js +34 -0
- package/cjs/shared/Constants.js.map +1 -0
- package/cjs/shared/State.js +477 -220
- package/cjs/shared/State.js.map +1 -1
- package/cjs/utils/SetupPollyForFrodoLib.js.map +1 -1
- package/esm/api/AgentApi.js.map +1 -1
- package/esm/api/AuthenticateApi.js.map +1 -1
- package/esm/api/BaseApi.js +2 -2
- package/esm/api/BaseApi.js.map +1 -1
- package/esm/api/CirclesOfTrustApi.js.map +1 -1
- package/esm/api/IdmConfigApi.js.map +1 -1
- package/esm/api/IdmSystemApi.js.map +1 -1
- package/esm/api/ManagedObjectApi.js.map +1 -1
- package/esm/api/NodeApi.js.map +1 -1
- package/esm/api/OAuth2ClientApi.js.map +1 -1
- package/esm/api/OAuth2OIDCApi.js.map +1 -1
- package/esm/api/OAuth2OIDCApi.test.js +2 -2
- package/esm/api/OAuth2OIDCApi.test.js.map +1 -1
- package/esm/api/OAuth2ProviderApi.js.map +1 -1
- package/esm/api/PoliciesApi.js.map +1 -1
- package/esm/api/PolicySetApi.js.map +1 -1
- package/esm/api/RealmApi.js.map +1 -1
- package/esm/api/ResourceTypesApi.js.map +1 -1
- package/esm/api/Saml2Api.js.map +1 -1
- package/esm/api/ScriptApi.js.map +1 -1
- package/esm/api/ServerInfoApi.js.map +1 -1
- package/esm/api/ServiceApi.js.map +1 -1
- package/esm/api/SocialIdentityProvidersApi.js.map +1 -1
- package/esm/api/TreeApi.js.map +1 -1
- package/esm/api/cloud/AdminFederationProvidersApi.js.map +1 -1
- package/esm/api/cloud/EnvInfoApi.js.map +1 -1
- package/esm/api/cloud/FeatureApi.js.map +1 -1
- package/esm/api/cloud/LogApi.js.map +1 -1
- package/esm/api/cloud/SecretsApi.js.map +1 -1
- package/esm/api/cloud/StartupApi.js.map +1 -1
- package/esm/api/cloud/VariablesApi.js.map +1 -1
- package/esm/api/utils/ApiUtils.js.map +1 -1
- package/esm/api/utils/Base64.js +4 -4
- package/esm/api/utils/Base64.js.map +1 -1
- package/esm/index.js +13 -1
- package/esm/index.js.map +1 -1
- package/esm/lib/Frodo.js +9 -2
- package/esm/lib/Frodo.js.map +1 -1
- package/esm/lib/FrodoLib.js +12 -16
- package/esm/lib/FrodoLib.js.map +1 -1
- package/esm/ops/AdminOps.js.map +1 -1
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/AuthenticateOps.js +10 -10
- package/esm/ops/AuthenticateOps.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +2 -2
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.test.js +5 -5
- package/esm/ops/ConnectionProfileOps.test.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/InfoOps.js +2 -2
- package/esm/ops/InfoOps.js.map +1 -1
- package/esm/ops/JoseOps.js +20 -0
- package/esm/ops/JoseOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +10 -11
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/JourneyOps.test.js +2 -2
- package/esm/ops/JourneyOps.test.js.map +1 -1
- package/esm/ops/ManagedObjectOps.js.map +1 -1
- package/esm/ops/NodeOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/OAuth2OidcOps.js.map +1 -1
- package/esm/ops/OAuth2ProviderOps.js.map +1 -1
- package/esm/ops/OpsTypes.js.map +1 -1
- package/esm/ops/OrganizationOps.js.map +1 -1
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/RealmOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/Saml2Ops.test.js +2 -2
- package/esm/ops/Saml2Ops.test.js.map +1 -1
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/cloud/AdminFederationOps.js.map +1 -1
- package/esm/ops/cloud/FeatureOps.js.map +1 -1
- package/esm/ops/cloud/LogOps.js.map +1 -1
- package/esm/ops/cloud/SecretsOps.js.map +1 -1
- package/esm/ops/cloud/ServiceAccountOps.js +1 -1
- package/esm/ops/cloud/ServiceAccountOps.js.map +1 -1
- package/esm/ops/cloud/StartupOps.js.map +1 -1
- package/esm/ops/cloud/VariablesOps.js.map +1 -1
- 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 +2 -2
- package/esm/ops/utils/DataProtection.test.js.map +1 -1
- package/esm/ops/utils/ExportImportUtils.js +2 -2
- package/esm/ops/utils/ExportImportUtils.js.map +1 -1
- package/esm/ops/utils/OpsUtils.js +96 -22
- package/esm/ops/utils/OpsUtils.js.map +1 -1
- package/esm/ops/utils/OpsUtils.test.js +5 -5
- package/esm/ops/utils/OpsUtils.test.js.map +1 -1
- package/esm/ops/utils/ScriptValidationUtils.js +28 -0
- package/esm/ops/utils/ScriptValidationUtils.js.map +1 -1
- package/esm/ops/utils/ScriptValidationUtils.test.js +2 -2
- package/esm/ops/utils/ScriptValidationUtils.test.js.map +1 -1
- package/esm/ops/utils/{Version.js → VersionUtils.js} +1 -1
- package/esm/ops/utils/VersionUtils.js.map +1 -0
- package/esm/ops/utils/{Version.test.js → VersionUtils.test.js} +2 -2
- package/esm/ops/utils/VersionUtils.test.js.map +1 -0
- package/esm/shared/Constants.js +27 -0
- package/esm/shared/Constants.js.map +1 -0
- package/esm/shared/State.js +481 -226
- package/esm/shared/State.js.map +1 -1
- package/esm/utils/SetupPollyForFrodoLib.js.map +1 -1
- package/package.json +5 -2
- package/types/api/AgentApi.d.ts +1 -1
- package/types/api/AgentApi.d.ts.map +1 -1
- package/types/api/AuthenticateApi.d.ts +1 -1
- package/types/api/AuthenticateApi.d.ts.map +1 -1
- package/types/api/BaseApi.d.ts +1 -1
- package/types/api/BaseApi.d.ts.map +1 -1
- package/types/api/CirclesOfTrustApi.d.ts +1 -1
- package/types/api/CirclesOfTrustApi.d.ts.map +1 -1
- package/types/api/IdmConfigApi.d.ts +1 -1
- package/types/api/IdmConfigApi.d.ts.map +1 -1
- package/types/api/IdmSystemApi.d.ts +1 -1
- package/types/api/IdmSystemApi.d.ts.map +1 -1
- package/types/api/ManagedObjectApi.d.ts +1 -1
- package/types/api/ManagedObjectApi.d.ts.map +1 -1
- package/types/api/NodeApi.d.ts +1 -1
- package/types/api/NodeApi.d.ts.map +1 -1
- package/types/api/OAuth2ClientApi.d.ts +1 -1
- package/types/api/OAuth2ClientApi.d.ts.map +1 -1
- package/types/api/OAuth2OIDCApi.d.ts +1 -1
- package/types/api/OAuth2OIDCApi.d.ts.map +1 -1
- package/types/api/OAuth2ProviderApi.d.ts +1 -1
- package/types/api/OAuth2ProviderApi.d.ts.map +1 -1
- package/types/api/PoliciesApi.d.ts +1 -1
- package/types/api/PoliciesApi.d.ts.map +1 -1
- package/types/api/PolicySetApi.d.ts +1 -1
- package/types/api/PolicySetApi.d.ts.map +1 -1
- package/types/api/RealmApi.d.ts +1 -1
- package/types/api/RealmApi.d.ts.map +1 -1
- package/types/api/ResourceTypesApi.d.ts +1 -1
- package/types/api/ResourceTypesApi.d.ts.map +1 -1
- package/types/api/Saml2Api.d.ts +1 -1
- package/types/api/Saml2Api.d.ts.map +1 -1
- package/types/api/ScriptApi.d.ts +1 -1
- package/types/api/ScriptApi.d.ts.map +1 -1
- package/types/api/ServerInfoApi.d.ts +1 -1
- package/types/api/ServerInfoApi.d.ts.map +1 -1
- package/types/api/ServiceApi.d.ts +1 -1
- package/types/api/ServiceApi.d.ts.map +1 -1
- package/types/api/SocialIdentityProvidersApi.d.ts +1 -1
- package/types/api/SocialIdentityProvidersApi.d.ts.map +1 -1
- package/types/api/TreeApi.d.ts +1 -1
- package/types/api/TreeApi.d.ts.map +1 -1
- package/types/api/cloud/AdminFederationProvidersApi.d.ts +1 -1
- package/types/api/cloud/AdminFederationProvidersApi.d.ts.map +1 -1
- package/types/api/cloud/EnvInfoApi.d.ts +1 -1
- package/types/api/cloud/EnvInfoApi.d.ts.map +1 -1
- package/types/api/cloud/FeatureApi.d.ts +1 -1
- package/types/api/cloud/FeatureApi.d.ts.map +1 -1
- package/types/api/cloud/LogApi.d.ts +1 -1
- package/types/api/cloud/LogApi.d.ts.map +1 -1
- package/types/api/cloud/SecretsApi.d.ts +1 -1
- package/types/api/cloud/SecretsApi.d.ts.map +1 -1
- package/types/api/cloud/StartupApi.d.ts +1 -1
- package/types/api/cloud/StartupApi.d.ts.map +1 -1
- package/types/api/cloud/VariablesApi.d.ts +1 -1
- package/types/api/cloud/VariablesApi.d.ts.map +1 -1
- package/types/api/utils/ApiUtils.d.ts +1 -1
- package/types/api/utils/ApiUtils.d.ts.map +1 -1
- package/types/api/utils/Base64.d.ts +6 -6
- package/types/api/utils/Base64.d.ts.map +1 -1
- package/types/index.d.ts +37 -0
- package/types/index.d.ts.map +1 -1
- package/types/lib/Frodo.d.ts +13 -1135
- package/types/lib/Frodo.d.ts.map +1 -1
- package/types/lib/FrodoLib.d.ts +79 -368
- package/types/lib/FrodoLib.d.ts.map +1 -1
- package/types/ops/AdminOps.d.ts +3 -2
- package/types/ops/AdminOps.d.ts.map +1 -1
- package/types/ops/AgentOps.d.ts +3 -2
- package/types/ops/AgentOps.d.ts.map +1 -1
- package/types/ops/AuthenticateOps.d.ts +3 -2
- package/types/ops/AuthenticateOps.d.ts.map +1 -1
- package/types/ops/CirclesOfTrustOps.d.ts +3 -2
- package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
- package/types/ops/ConnectionProfileOps.d.ts +3 -2
- package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
- package/types/ops/EmailTemplateOps.d.ts +3 -2
- package/types/ops/EmailTemplateOps.d.ts.map +1 -1
- package/types/ops/IdmOps.d.ts +3 -2
- package/types/ops/IdmOps.d.ts.map +1 -1
- package/types/ops/IdpOps.d.ts +3 -2
- package/types/ops/IdpOps.d.ts.map +1 -1
- package/types/ops/InfoOps.d.ts +3 -2
- package/types/ops/InfoOps.d.ts.map +1 -1
- package/types/ops/JoseOps.d.ts +17 -1
- package/types/ops/JoseOps.d.ts.map +1 -1
- package/types/ops/JourneyOps.d.ts +16 -10
- package/types/ops/JourneyOps.d.ts.map +1 -1
- package/types/ops/ManagedObjectOps.d.ts +3 -2
- package/types/ops/ManagedObjectOps.d.ts.map +1 -1
- package/types/ops/NodeOps.d.ts +3 -2
- package/types/ops/NodeOps.d.ts.map +1 -1
- package/types/ops/OAuth2ClientOps.d.ts +3 -2
- package/types/ops/OAuth2ClientOps.d.ts.map +1 -1
- package/types/ops/OAuth2OidcOps.d.ts +6 -5
- package/types/ops/OAuth2OidcOps.d.ts.map +1 -1
- package/types/ops/OAuth2ProviderOps.d.ts +3 -2
- package/types/ops/OAuth2ProviderOps.d.ts.map +1 -1
- package/types/ops/OpsTypes.d.ts +1 -1
- package/types/ops/OpsTypes.d.ts.map +1 -1
- package/types/ops/OrganizationOps.d.ts +3 -2
- package/types/ops/OrganizationOps.d.ts.map +1 -1
- package/types/ops/PolicyOps.d.ts +3 -2
- package/types/ops/PolicyOps.d.ts.map +1 -1
- package/types/ops/PolicySetOps.d.ts +3 -2
- package/types/ops/PolicySetOps.d.ts.map +1 -1
- package/types/ops/RealmOps.d.ts +3 -2
- package/types/ops/RealmOps.d.ts.map +1 -1
- package/types/ops/ResourceTypeOps.d.ts +3 -2
- package/types/ops/ResourceTypeOps.d.ts.map +1 -1
- package/types/ops/Saml2Ops.d.ts +3 -2
- package/types/ops/Saml2Ops.d.ts.map +1 -1
- package/types/ops/ScriptOps.d.ts +3 -2
- package/types/ops/ScriptOps.d.ts.map +1 -1
- package/types/ops/ServiceOps.d.ts +4 -3
- package/types/ops/ServiceOps.d.ts.map +1 -1
- package/types/ops/ThemeOps.d.ts +3 -2
- package/types/ops/ThemeOps.d.ts.map +1 -1
- package/types/ops/cloud/AdminFederationOps.d.ts +3 -2
- package/types/ops/cloud/AdminFederationOps.d.ts.map +1 -1
- package/types/ops/cloud/FeatureOps.d.ts +3 -2
- package/types/ops/cloud/FeatureOps.d.ts.map +1 -1
- package/types/ops/cloud/LogOps.d.ts +3 -2
- package/types/ops/cloud/LogOps.d.ts.map +1 -1
- package/types/ops/cloud/SecretsOps.d.ts +3 -2
- package/types/ops/cloud/SecretsOps.d.ts.map +1 -1
- package/types/ops/cloud/ServiceAccountOps.d.ts +7 -6
- package/types/ops/cloud/ServiceAccountOps.d.ts.map +1 -1
- package/types/ops/cloud/StartupOps.d.ts +3 -2
- package/types/ops/cloud/StartupOps.d.ts.map +1 -1
- package/types/ops/cloud/VariablesOps.d.ts +3 -2
- package/types/ops/cloud/VariablesOps.d.ts.map +1 -1
- package/types/ops/utils/Console.d.ts +1 -1
- package/types/ops/utils/Console.d.ts.map +1 -1
- package/types/ops/utils/DataProtection.d.ts +1 -1
- package/types/ops/utils/DataProtection.d.ts.map +1 -1
- package/types/ops/utils/ExportImportUtils.d.ts +3 -2
- package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
- package/types/ops/utils/OpsUtils.d.ts +73 -17
- package/types/ops/utils/OpsUtils.d.ts.map +1 -1
- package/types/ops/utils/ScriptValidationUtils.d.ts +20 -1
- package/types/ops/utils/ScriptValidationUtils.d.ts.map +1 -1
- package/types/ops/utils/{Version.d.ts → VersionUtils.d.ts} +4 -4
- package/types/ops/utils/VersionUtils.d.ts.map +1 -0
- package/types/shared/Constants.d.ts +34 -0
- package/types/shared/Constants.d.ts.map +1 -0
- package/types/shared/State.d.ts +38 -38
- package/types/shared/State.d.ts.map +1 -1
- package/types/utils/SetupPollyForFrodoLib.d.ts +1 -1
- package/types/utils/SetupPollyForFrodoLib.d.ts.map +1 -1
- package/cjs/ops/utils/Version.js.map +0 -1
- package/cjs/ops/utils/Version.test.js.map +0 -1
- package/cjs/ops/utils/Wordwrap.js +0 -12
- package/cjs/ops/utils/Wordwrap.js.map +0 -1
- package/cjs/ops/utils/Wordwrap.test.js +0 -22
- package/cjs/ops/utils/Wordwrap.test.js.map +0 -1
- package/cjs/storage/StaticStorage.js +0 -31
- package/cjs/storage/StaticStorage.js.map +0 -1
- package/esm/ops/utils/Version.js.map +0 -1
- package/esm/ops/utils/Version.test.js.map +0 -1
- package/esm/ops/utils/Wordwrap.js +0 -5
- package/esm/ops/utils/Wordwrap.js.map +0 -1
- package/esm/ops/utils/Wordwrap.test.js +0 -19
- package/esm/ops/utils/Wordwrap.test.js.map +0 -1
- package/esm/storage/StaticStorage.js +0 -15
- package/esm/storage/StaticStorage.js.map +0 -1
- package/types/ops/utils/Version.d.ts.map +0 -1
- package/types/ops/utils/Wordwrap.d.ts +0 -2
- package/types/ops/utils/Wordwrap.d.ts.map +0 -1
- package/types/storage/StaticStorage.d.ts +0 -15
- package/types/storage/StaticStorage.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceTypeOps.js","names":["deleteResourceType","getResourceTypes","_getResourceTypes","getResourceType","getResourceTypeByName","_getResourceTypeByName","createResourceType","putResourceType","getMetadata","debugMessage","state","resourceTypeUuid","result","resourceTypeName","updateResourceType","resourceTypeData","deleteResourceTypeByName","exportResourceType","exportResourceTypeByName","exportResourceTypes","importResourceType","importData","importResourceTypeByName","importFirstResourceType","importResourceTypes","createResourceTypeExportTemplate","meta","script","policy","policyset","resourcetype","length","Error","getRealm","uuid","message","exportData","errors","error","push","errorMessages","map","_error$response","response","status","_error$response2","_error$response2$data","data","join","resourceTypes","imported","id","Object","keys","_rev","createError","_createError$response","_error$response3","_error$response3$data","name","_createError$response2","_error$response4","_error$response4$data","_provider","_createError$response3","_error$response5","_error$response5$data","_createError$response4","_error$response6","_error$response6$data"],"sources":["../../src/ops/ResourceTypeOps.ts"],"sourcesContent":["import {\n deleteResourceType,\n getResourceTypes as _getResourceTypes,\n getResourceType,\n getResourceTypeByName as _getResourceTypeByName,\n createResourceType,\n putResourceType,\n} from '../api/ResourceTypesApi';\nimport { ExportMetaData } from './OpsTypes';\nimport { ResourceTypeSkeleton } from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport { debugMessage } from './utils/Console';\nimport State from '../shared/State';\n\nexport default (state: State) => {\n return {\n async getResourceType(resourceTypeUuid: string) {\n return getResourceType({ resourceTypeUuid, state });\n },\n\n /**\n * Get all resource types\n * @returns {Promise} a promise that resolves to an array of resource type objects\n */\n async getResourceTypes(): Promise<ResourceTypeSkeleton[]> {\n const { result } = await _getResourceTypes({ state });\n return result;\n },\n\n /**\n * Get resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\n async getResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeSkeleton> {\n return getResourceTypeByName({ resourceTypeName, state });\n },\n\n /**\n * Update resource type\n * @param {string} resourceTypeData resource type id\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\n async updateResourceType(\n resourceTypeUuid: string,\n resourceTypeData: ResourceTypeSkeleton\n ): Promise<ResourceTypeSkeleton> {\n return updateResourceType({\n resourceTypeUuid,\n resourceTypeData,\n state,\n });\n },\n\n async deleteResourceType(resourceTypeUuid: string) {\n return deleteResourceType({ resourceTypeUuid, state });\n },\n\n /**\n * Delete resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} Promise resolvig to a resource type object\n */\n async deleteResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeSkeleton> {\n return deleteResourceTypeByName({ resourceTypeName, state });\n },\n\n /**\n * Export resource type\n * @param {string} resourceTypeUuid resource type uuid\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n async exportResourceType(\n resourceTypeUuid: string\n ): Promise<ResourceTypeExportInterface> {\n return exportResourceType({ resourceTypeUuid, state });\n },\n\n /**\n * Export resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n async exportResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeExportInterface> {\n return exportResourceTypeByName({ resourceTypeName, state });\n },\n\n /**\n * Export resource types\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n async exportResourceTypes(): Promise<ResourceTypeExportInterface> {\n return exportResourceTypes({ state });\n },\n\n /**\n * Import resource type by uuid\n * @param {string} resourceTypeUuid client uuid\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importResourceType(\n resourceTypeUuid: string,\n importData: ResourceTypeExportInterface\n ) {\n return importResourceType({\n resourceTypeUuid,\n importData,\n state,\n });\n },\n\n /**\n * Import resource type by name\n * @param {string} resourceTypeName client id\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importResourceTypeByName(\n resourceTypeName: string,\n importData: ResourceTypeExportInterface\n ) {\n return importResourceTypeByName({\n resourceTypeName,\n importData,\n state,\n });\n },\n\n /**\n * Import first resource type\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importFirstResourceType(importData: ResourceTypeExportInterface) {\n return importFirstResourceType({ importData, state });\n },\n\n /**\n * Import resource types\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importResourceTypes(importData: ResourceTypeExportInterface) {\n return importResourceTypes({ importData, state });\n },\n };\n};\n\nexport interface ResourceTypeExportInterface {\n meta?: ExportMetaData;\n resourcetype: Record<string, ResourceTypeSkeleton>;\n}\n\n/**\n * Create an empty export template\n * @returns {ResourceTypeExportInterface} an empty export template\n */\nfunction createResourceTypeExportTemplate({\n state,\n}: {\n state: State;\n}): ResourceTypeExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n policy: {},\n policyset: {},\n resourcetype: {},\n } as ResourceTypeExportInterface;\n}\n\n/**\n * Get all resource types\n * @returns {Promise} a promise that resolves to an array of resource type objects\n */\nexport async function getResourceTypes({\n state,\n}: {\n state: State;\n}): Promise<ResourceTypeSkeleton[]> {\n const { result } = await _getResourceTypes({ state });\n return result;\n}\n\n/**\n * Get resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\nexport async function getResourceTypeByName({\n resourceTypeName,\n state,\n}: {\n resourceTypeName: string;\n state: State;\n}): Promise<ResourceTypeSkeleton> {\n const { result } = await _getResourceTypeByName({ resourceTypeName, state });\n switch (result.length) {\n case 1:\n return result[0];\n case 0:\n throw new Error(\n `Resource Type with name ${resourceTypeName} does not exist in realm ${state.getRealm()}`\n );\n default:\n throw new Error(\n `${result.length} resource types '${resourceTypeName}' found`\n );\n }\n}\n\n/**\n * Update resource type\n * @param {string} resourceTypeData resource type id\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\nexport async function updateResourceType({\n resourceTypeUuid,\n resourceTypeData,\n state,\n}: {\n resourceTypeUuid: string;\n resourceTypeData: ResourceTypeSkeleton;\n state: State;\n}): Promise<ResourceTypeSkeleton> {\n return putResourceType({ resourceTypeUuid, resourceTypeData, state });\n}\n\n/**\n * Delete resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} Promise resolvig to a resource type object\n */\nexport async function deleteResourceTypeByName({\n resourceTypeName,\n state,\n}: {\n resourceTypeName: string;\n state: State;\n}): Promise<ResourceTypeSkeleton> {\n const resourceTypeUuid = (\n await getResourceTypeByName({ resourceTypeName, state })\n ).uuid;\n return deleteResourceType({ resourceTypeUuid, state });\n}\n\n/**\n * Export resource type\n * @param {string} resourceTypeUuid resource type uuid\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\nexport async function exportResourceType({\n resourceTypeUuid,\n state,\n}: {\n resourceTypeUuid: string;\n state: State;\n}): Promise<ResourceTypeExportInterface> {\n debugMessage({ message: `ResourceTypeOps.exportResourceType: start`, state });\n const exportData = createResourceTypeExportTemplate({ state });\n const errors = [];\n try {\n const resourceTypeData = await getResourceType({\n resourceTypeUuid,\n state,\n });\n exportData.resourcetype[resourceTypeData.uuid] = resourceTypeData;\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => {\n if (error.response?.status === 404) {\n return `Resource Type with uuid ${resourceTypeUuid} does not exist in realm ${state.getRealm()}`;\n } else {\n return error.response?.data?.message || error.message;\n }\n })\n .join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `ResourceTypeOps.exportResourceType: end`, state });\n return exportData;\n}\n\n/**\n * Export resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\nexport async function exportResourceTypeByName({\n resourceTypeName,\n state,\n}: {\n resourceTypeName: string;\n state: State;\n}): Promise<ResourceTypeExportInterface> {\n debugMessage({\n message: `ResourceTypeOps.exportResourceTypeByName: start`,\n state,\n });\n const exportData = createResourceTypeExportTemplate({ state });\n const errors = [];\n try {\n const resourceTypeData = await getResourceTypeByName({\n resourceTypeName,\n state,\n });\n exportData.resourcetype[resourceTypeData.uuid] = resourceTypeData;\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `ResourceTypeOps.exportResourceTypeByName: end`,\n state,\n });\n return exportData;\n}\n\n/**\n * Export resource types\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\nexport async function exportResourceTypes({\n state,\n}: {\n state: State;\n}): Promise<ResourceTypeExportInterface> {\n debugMessage({ message: `ResourceTypeOps.exportResourceType: start`, state });\n const exportData = createResourceTypeExportTemplate({ state });\n const errors = [];\n try {\n const resourceTypes = await getResourceTypes({ state });\n for (const resourceTypeData of resourceTypes) {\n exportData.resourcetype[resourceTypeData.uuid] = resourceTypeData;\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `ResourceTypeOps.exportResourceType: end`, state });\n return exportData;\n}\n\n/**\n * Import resource type by uuid\n * @param {string} resourceTypeUuid client uuid\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importResourceType({\n resourceTypeUuid,\n importData,\n state,\n}: {\n resourceTypeUuid: string;\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n if (id === resourceTypeUuid) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._rev;\n try {\n response = await createResourceType({ resourceTypeData, state });\n } catch (createError) {\n if (createError.response?.status === 409)\n response = await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n });\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(\n `Import error:\\n${resourceTypeUuid} not found in import data!`\n );\n }\n return response;\n}\n\n/**\n * Import resource type by name\n * @param {string} resourceTypeName client id\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importResourceTypeByName({\n resourceTypeName,\n importData,\n state,\n}: {\n resourceTypeName: string;\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n if (importData.resourcetype[id].name === resourceTypeName) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._rev;\n try {\n response = await createResourceType({ resourceTypeData, state });\n } catch (createError) {\n if (createError.response?.status === 409)\n response = await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n });\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(\n `Import error:\\n${resourceTypeName} not found in import data!`\n );\n }\n return response;\n}\n\n/**\n * Import first resource type\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importFirstResourceType({\n importData,\n state,\n}: {\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._provider;\n delete resourceTypeData._rev;\n try {\n response = await createResourceType({ resourceTypeData, state });\n } catch (createError) {\n if (createError.response?.status === 409)\n response = await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n });\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n break;\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo resource types found in import data!`);\n }\n return response;\n}\n\n/**\n * Import resource types\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importResourceTypes({\n importData,\n state,\n}: {\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n const response = [];\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._rev;\n try {\n response.push(await createResourceType({ resourceTypeData, state }));\n } catch (createError) {\n if (createError.response?.status === 409)\n response.push(\n await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n })\n );\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo resource types found in import data!`);\n }\n return response;\n}\n\nexport { getResourceType, createResourceType, deleteResourceType };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ResourceTypeOps.js","names":["deleteResourceType","getResourceTypes","_getResourceTypes","getResourceType","getResourceTypeByName","_getResourceTypeByName","createResourceType","putResourceType","getMetadata","debugMessage","state","resourceTypeUuid","result","resourceTypeName","updateResourceType","resourceTypeData","deleteResourceTypeByName","exportResourceType","exportResourceTypeByName","exportResourceTypes","importResourceType","importData","importResourceTypeByName","importFirstResourceType","importResourceTypes","createResourceTypeExportTemplate","meta","script","policy","policyset","resourcetype","length","Error","getRealm","uuid","message","exportData","errors","error","push","errorMessages","map","_error$response","response","status","_error$response2","_error$response2$data","data","join","resourceTypes","imported","id","Object","keys","_rev","createError","_createError$response","_error$response3","_error$response3$data","name","_createError$response2","_error$response4","_error$response4$data","_provider","_createError$response3","_error$response5","_error$response5$data","_createError$response4","_error$response6","_error$response6$data"],"sources":["../../src/ops/ResourceTypeOps.ts"],"sourcesContent":["import {\n deleteResourceType,\n getResourceTypes as _getResourceTypes,\n getResourceType,\n getResourceTypeByName as _getResourceTypeByName,\n createResourceType,\n putResourceType,\n} from '../api/ResourceTypesApi';\nimport { ExportMetaData } from './OpsTypes';\nimport { ResourceTypeSkeleton } from '../api/ApiTypes';\nimport { getMetadata } from './utils/ExportImportUtils';\nimport { debugMessage } from './utils/Console';\nimport { State } from '../shared/State';\n\nexport type ResourceType = {\n getResourceType(resourceTypeUuid: string): Promise<any>;\n /**\n * Get all resource types\n * @returns {Promise} a promise that resolves to an array of resource type objects\n */\n getResourceTypes(): Promise<ResourceTypeSkeleton[]>;\n /**\n * Get resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\n getResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeSkeleton>;\n /**\n * Update resource type\n * @param {string} resourceTypeData resource type id\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\n updateResourceType(\n resourceTypeUuid: string,\n resourceTypeData: ResourceTypeSkeleton\n ): Promise<ResourceTypeSkeleton>;\n deleteResourceType(resourceTypeUuid: string): Promise<any>;\n /**\n * Delete resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} Promise resolvig to a resource type object\n */\n deleteResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeSkeleton>;\n /**\n * Export resource type\n * @param {string} resourceTypeUuid resource type uuid\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n exportResourceType(\n resourceTypeUuid: string\n ): Promise<ResourceTypeExportInterface>;\n /**\n * Export resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n exportResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeExportInterface>;\n /**\n * Export resource types\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n exportResourceTypes(): Promise<ResourceTypeExportInterface>;\n /**\n * Import resource type by uuid\n * @param {string} resourceTypeUuid client uuid\n * @param {ResourceTypeExportInterface} importData import data\n */\n importResourceType(\n resourceTypeUuid: string,\n importData: ResourceTypeExportInterface\n ): Promise<any>;\n /**\n * Import resource type by name\n * @param {string} resourceTypeName client id\n * @param {ResourceTypeExportInterface} importData import data\n */\n importResourceTypeByName(\n resourceTypeName: string,\n importData: ResourceTypeExportInterface\n ): Promise<any>;\n /**\n * Import first resource type\n * @param {ResourceTypeExportInterface} importData import data\n */\n importFirstResourceType(\n importData: ResourceTypeExportInterface\n ): Promise<any>;\n /**\n * Import resource types\n * @param {ResourceTypeExportInterface} importData import data\n */\n importResourceTypes(importData: ResourceTypeExportInterface): Promise<any[]>;\n};\n\nexport default (state: State): ResourceType => {\n return {\n async getResourceType(resourceTypeUuid: string) {\n return getResourceType({ resourceTypeUuid, state });\n },\n\n /**\n * Get all resource types\n * @returns {Promise} a promise that resolves to an array of resource type objects\n */\n async getResourceTypes(): Promise<ResourceTypeSkeleton[]> {\n const { result } = await _getResourceTypes({ state });\n return result;\n },\n\n /**\n * Get resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\n async getResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeSkeleton> {\n return getResourceTypeByName({ resourceTypeName, state });\n },\n\n /**\n * Update resource type\n * @param {string} resourceTypeData resource type id\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\n async updateResourceType(\n resourceTypeUuid: string,\n resourceTypeData: ResourceTypeSkeleton\n ): Promise<ResourceTypeSkeleton> {\n return updateResourceType({\n resourceTypeUuid,\n resourceTypeData,\n state,\n });\n },\n\n async deleteResourceType(resourceTypeUuid: string) {\n return deleteResourceType({ resourceTypeUuid, state });\n },\n\n /**\n * Delete resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} Promise resolvig to a resource type object\n */\n async deleteResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeSkeleton> {\n return deleteResourceTypeByName({ resourceTypeName, state });\n },\n\n /**\n * Export resource type\n * @param {string} resourceTypeUuid resource type uuid\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n async exportResourceType(\n resourceTypeUuid: string\n ): Promise<ResourceTypeExportInterface> {\n return exportResourceType({ resourceTypeUuid, state });\n },\n\n /**\n * Export resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n async exportResourceTypeByName(\n resourceTypeName: string\n ): Promise<ResourceTypeExportInterface> {\n return exportResourceTypeByName({ resourceTypeName, state });\n },\n\n /**\n * Export resource types\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\n async exportResourceTypes(): Promise<ResourceTypeExportInterface> {\n return exportResourceTypes({ state });\n },\n\n /**\n * Import resource type by uuid\n * @param {string} resourceTypeUuid client uuid\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importResourceType(\n resourceTypeUuid: string,\n importData: ResourceTypeExportInterface\n ) {\n return importResourceType({\n resourceTypeUuid,\n importData,\n state,\n });\n },\n\n /**\n * Import resource type by name\n * @param {string} resourceTypeName client id\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importResourceTypeByName(\n resourceTypeName: string,\n importData: ResourceTypeExportInterface\n ) {\n return importResourceTypeByName({\n resourceTypeName,\n importData,\n state,\n });\n },\n\n /**\n * Import first resource type\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importFirstResourceType(importData: ResourceTypeExportInterface) {\n return importFirstResourceType({ importData, state });\n },\n\n /**\n * Import resource types\n * @param {ResourceTypeExportInterface} importData import data\n */\n async importResourceTypes(importData: ResourceTypeExportInterface) {\n return importResourceTypes({ importData, state });\n },\n };\n};\n\nexport interface ResourceTypeExportInterface {\n meta?: ExportMetaData;\n resourcetype: Record<string, ResourceTypeSkeleton>;\n}\n\n/**\n * Create an empty export template\n * @returns {ResourceTypeExportInterface} an empty export template\n */\nfunction createResourceTypeExportTemplate({\n state,\n}: {\n state: State;\n}): ResourceTypeExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n policy: {},\n policyset: {},\n resourcetype: {},\n } as ResourceTypeExportInterface;\n}\n\n/**\n * Get all resource types\n * @returns {Promise} a promise that resolves to an array of resource type objects\n */\nexport async function getResourceTypes({\n state,\n}: {\n state: State;\n}): Promise<ResourceTypeSkeleton[]> {\n const { result } = await _getResourceTypes({ state });\n return result;\n}\n\n/**\n * Get resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\nexport async function getResourceTypeByName({\n resourceTypeName,\n state,\n}: {\n resourceTypeName: string;\n state: State;\n}): Promise<ResourceTypeSkeleton> {\n const { result } = await _getResourceTypeByName({ resourceTypeName, state });\n switch (result.length) {\n case 1:\n return result[0];\n case 0:\n throw new Error(\n `Resource Type with name ${resourceTypeName} does not exist in realm ${state.getRealm()}`\n );\n default:\n throw new Error(\n `${result.length} resource types '${resourceTypeName}' found`\n );\n }\n}\n\n/**\n * Update resource type\n * @param {string} resourceTypeData resource type id\n * @returns {Promise<ResourceTypeSkeleton>} a promise that resolves to a resource type object\n */\nexport async function updateResourceType({\n resourceTypeUuid,\n resourceTypeData,\n state,\n}: {\n resourceTypeUuid: string;\n resourceTypeData: ResourceTypeSkeleton;\n state: State;\n}): Promise<ResourceTypeSkeleton> {\n return putResourceType({ resourceTypeUuid, resourceTypeData, state });\n}\n\n/**\n * Delete resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeSkeleton>} Promise resolvig to a resource type object\n */\nexport async function deleteResourceTypeByName({\n resourceTypeName,\n state,\n}: {\n resourceTypeName: string;\n state: State;\n}): Promise<ResourceTypeSkeleton> {\n const resourceTypeUuid = (\n await getResourceTypeByName({ resourceTypeName, state })\n ).uuid;\n return deleteResourceType({ resourceTypeUuid, state });\n}\n\n/**\n * Export resource type\n * @param {string} resourceTypeUuid resource type uuid\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\nexport async function exportResourceType({\n resourceTypeUuid,\n state,\n}: {\n resourceTypeUuid: string;\n state: State;\n}): Promise<ResourceTypeExportInterface> {\n debugMessage({ message: `ResourceTypeOps.exportResourceType: start`, state });\n const exportData = createResourceTypeExportTemplate({ state });\n const errors = [];\n try {\n const resourceTypeData = await getResourceType({\n resourceTypeUuid,\n state,\n });\n exportData.resourcetype[resourceTypeData.uuid] = resourceTypeData;\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => {\n if (error.response?.status === 404) {\n return `Resource Type with uuid ${resourceTypeUuid} does not exist in realm ${state.getRealm()}`;\n } else {\n return error.response?.data?.message || error.message;\n }\n })\n .join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `ResourceTypeOps.exportResourceType: end`, state });\n return exportData;\n}\n\n/**\n * Export resource type by name\n * @param {string} resourceTypeName resource type name\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\nexport async function exportResourceTypeByName({\n resourceTypeName,\n state,\n}: {\n resourceTypeName: string;\n state: State;\n}): Promise<ResourceTypeExportInterface> {\n debugMessage({\n message: `ResourceTypeOps.exportResourceTypeByName: start`,\n state,\n });\n const exportData = createResourceTypeExportTemplate({ state });\n const errors = [];\n try {\n const resourceTypeData = await getResourceTypeByName({\n resourceTypeName,\n state,\n });\n exportData.resourcetype[resourceTypeData.uuid] = resourceTypeData;\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({\n message: `ResourceTypeOps.exportResourceTypeByName: end`,\n state,\n });\n return exportData;\n}\n\n/**\n * Export resource types\n * @returns {Promise<ResourceTypeExportInterface>} a promise that resolves to an ResourceTypeExportInterface object\n */\nexport async function exportResourceTypes({\n state,\n}: {\n state: State;\n}): Promise<ResourceTypeExportInterface> {\n debugMessage({ message: `ResourceTypeOps.exportResourceType: start`, state });\n const exportData = createResourceTypeExportTemplate({ state });\n const errors = [];\n try {\n const resourceTypes = await getResourceTypes({ state });\n for (const resourceTypeData of resourceTypes) {\n exportData.resourcetype[resourceTypeData.uuid] = resourceTypeData;\n }\n } catch (error) {\n errors.push(error);\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Export error:\\n${errorMessages}`);\n }\n debugMessage({ message: `ResourceTypeOps.exportResourceType: end`, state });\n return exportData;\n}\n\n/**\n * Import resource type by uuid\n * @param {string} resourceTypeUuid client uuid\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importResourceType({\n resourceTypeUuid,\n importData,\n state,\n}: {\n resourceTypeUuid: string;\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n if (id === resourceTypeUuid) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._rev;\n try {\n response = await createResourceType({ resourceTypeData, state });\n } catch (createError) {\n if (createError.response?.status === 409)\n response = await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n });\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(\n `Import error:\\n${resourceTypeUuid} not found in import data!`\n );\n }\n return response;\n}\n\n/**\n * Import resource type by name\n * @param {string} resourceTypeName client id\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importResourceTypeByName({\n resourceTypeName,\n importData,\n state,\n}: {\n resourceTypeName: string;\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n if (importData.resourcetype[id].name === resourceTypeName) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._rev;\n try {\n response = await createResourceType({ resourceTypeData, state });\n } catch (createError) {\n if (createError.response?.status === 409)\n response = await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n });\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(\n `Import error:\\n${resourceTypeName} not found in import data!`\n );\n }\n return response;\n}\n\n/**\n * Import first resource type\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importFirstResourceType({\n importData,\n state,\n}: {\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n let response = null;\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._provider;\n delete resourceTypeData._rev;\n try {\n response = await createResourceType({ resourceTypeData, state });\n } catch (createError) {\n if (createError.response?.status === 409)\n response = await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n });\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n break;\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo resource types found in import data!`);\n }\n return response;\n}\n\n/**\n * Import resource types\n * @param {ResourceTypeExportInterface} importData import data\n */\nexport async function importResourceTypes({\n importData,\n state,\n}: {\n importData: ResourceTypeExportInterface;\n state: State;\n}) {\n const response = [];\n const errors = [];\n const imported = [];\n for (const id of Object.keys(importData.resourcetype)) {\n try {\n const resourceTypeData = importData.resourcetype[id];\n delete resourceTypeData._rev;\n try {\n response.push(await createResourceType({ resourceTypeData, state }));\n } catch (createError) {\n if (createError.response?.status === 409)\n response.push(\n await putResourceType({\n resourceTypeUuid: id,\n resourceTypeData,\n state,\n })\n );\n else throw createError;\n }\n imported.push(id);\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo resource types found in import data!`);\n }\n return response;\n}\n\nexport { getResourceType, createResourceType, deleteResourceType };\n"],"mappings":"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"}
|
package/esm/ops/Saml2Ops.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Saml2Ops.js","names":["_","createProvider","updateProvider","findProviders","getProviderByLocationAndId","_getProviderByLocationAndId","getProviderMetadata","_getProviderMetadata","getProviderMetadataUrl","_getProviderMetadataUrl","getProviders","deleteProviderByLocationAndId","getScript","decode","decodeBase64Url","encode","encodeBase64Url","putScript","debugMessage","printMessage","convertBase64TextToArray","convertBase64UrlTextToArray","convertTextArrayToBase64","convertTextArrayToBase64Url","getMetadata","state","getSaml2ProviderStubs","location","entityId64","entityId","getSaml2ProviderStub","getSaml2Provider","deleteSaml2Provider","deleteSaml2Providers","exportSaml2Provider","exportSaml2Providers","importSaml2Provider","importData","importSaml2Providers","createSaml2ExportTemplate","meta","script","saml","hosted","remote","metadata","result","exportDependencies","providerData","fileData","attrMapperScriptId","get","scriptData","scriptId","idpAdapterScriptId","metaDataResponse","Error","_id","message","found","filter","resultCount","stub","id","providers","stubs","provider","push","length","exportData","error","type","importDependencies","getLocation","data","undefined","metaData","myStatus","total","successes","warnings","failures","hostedIds","Object","keys","remoteIds","providerIds","concat","includes","importDependenciesErr","response","createProviderErr","updateProviderError","_updateProviderError$"],"sources":["../../src/ops/Saml2Ops.ts"],"sourcesContent":["import _ from 'lodash';\nimport {\n Saml2ProiderLocation,\n Saml2ProviderSkeleton,\n Saml2ProviderStub,\n} from '../api/ApiTypes';\nimport {\n createProvider,\n updateProvider,\n findProviders,\n getProviderByLocationAndId as _getProviderByLocationAndId,\n getProviderMetadata as _getProviderMetadata,\n getProviderMetadataUrl as _getProviderMetadataUrl,\n getProviders,\n deleteProviderByLocationAndId,\n} from '../api/Saml2Api';\nimport { getScript } from '../api/ScriptApi';\nimport {\n decode,\n decodeBase64Url,\n encode,\n encodeBase64Url,\n} from '../api/utils/Base64';\nimport { MultiOpStatusInterface, Saml2ExportInterface } from './OpsTypes';\nimport { putScript } from './ScriptOps';\nimport { debugMessage, printMessage } from './utils/Console';\nimport {\n convertBase64TextToArray,\n convertBase64UrlTextToArray,\n convertTextArrayToBase64,\n convertTextArrayToBase64Url,\n getMetadata,\n} from './utils/ExportImportUtils';\nimport State from '../shared/State';\n\nexport default (state: State) => {\n return {\n /**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\n async getSaml2ProviderStubs(): Promise<Saml2ProviderStub[]> {\n return getSaml2ProviderStubs({ state });\n },\n\n /**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded-without-padding provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\n async getProviderByLocationAndId(location: string, entityId64: string) {\n return getProviderByLocationAndId({\n location,\n entityId64,\n state,\n });\n },\n\n /**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\n getProviderMetadataUrl(entityId: string): string {\n return getProviderMetadataUrl({ entityId, state });\n },\n\n /**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {Promise<object>} a promise that resolves to an object containing a SAML2 metadata\n */\n async getProviderMetadata(entityId: string) {\n return getProviderMetadata({ entityId, state });\n },\n\n /**\n *\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\n async getSaml2ProviderStub(entityId: string): Promise<Saml2ProviderStub> {\n return getSaml2ProviderStub({ entityId, state });\n },\n\n /**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\n async getSaml2Provider(entityId: string): Promise<Saml2ProviderSkeleton> {\n return getSaml2Provider({ entityId, state });\n },\n\n /**\n * Delete an entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\n async deleteSaml2Provider(\n entityId: string\n ): Promise<Saml2ProviderSkeleton> {\n return deleteSaml2Provider({ entityId, state });\n },\n\n /**\n * Delete all entity providers.\n * @returns {Promise<Saml2ProviderSkeleton[]>} Promise resolving to an array of Saml2ProviderSkeleton objects.\n */\n async deleteSaml2Providers(): Promise<Saml2ProviderSkeleton[]> {\n return deleteSaml2Providers({ state });\n },\n\n /**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\n async exportSaml2Provider(entityId: string): Promise<Saml2ExportInterface> {\n return exportSaml2Provider({ entityId, state });\n },\n\n /**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\n async exportSaml2Providers(): Promise<Saml2ExportInterface> {\n return exportSaml2Providers({ state });\n },\n\n /**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\n async importSaml2Provider(\n entityId: string,\n importData: Saml2ExportInterface\n ): Promise<boolean> {\n return importSaml2Provider({ entityId, importData, state });\n },\n\n /**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\n async importSaml2Providers(\n importData: Saml2ExportInterface\n ): Promise<MultiOpStatusInterface> {\n return importSaml2Providers({ importData, state });\n },\n };\n};\n\n// use a function vs a template variable to avoid problems in loops\nexport function createSaml2ExportTemplate({\n state,\n}: {\n state: State;\n}): Saml2ExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n saml: {\n hosted: {},\n remote: {},\n metadata: {},\n },\n } as Saml2ExportInterface;\n}\n\n/**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\nexport async function getSaml2ProviderStubs({\n state,\n}: {\n state: State;\n}): Promise<Saml2ProviderStub[]> {\n const { result } = await getProviders({ state });\n return result;\n}\n\n/**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded-without-padding provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\nexport async function getProviderByLocationAndId({\n location,\n entityId64,\n state,\n}: {\n location: string;\n entityId64: string;\n state: State;\n}) {\n return _getProviderByLocationAndId({ location, entityId64, state });\n}\n\n/**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\nexport function getProviderMetadataUrl({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): string {\n return _getProviderMetadataUrl({ entityId, state });\n}\n\n/**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {Promise<object>} a promise that resolves to an object containing a SAML2 metadata\n */\nexport async function getProviderMetadata({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}) {\n return _getProviderMetadata({ entityId, state });\n}\n\n/**\n * Include dependencies in the export file\n * @param {object} providerData Object representing a SAML entity provider\n * @param {object} fileData File data object to add dependencies to\n */\nasync function exportDependencies({\n providerData,\n fileData,\n state,\n}: {\n providerData: Saml2ProviderSkeleton;\n fileData: Saml2ExportInterface;\n state: State;\n}) {\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n const scriptData = await getScript({ scriptId: attrMapperScriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[attrMapperScriptId] = scriptData;\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n const scriptData = await getScript({ scriptId: idpAdapterScriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[idpAdapterScriptId] = scriptData;\n }\n const metaDataResponse = await getProviderMetadata({\n entityId: providerData.entityId,\n state,\n });\n if (!metaDataResponse) {\n throw new Error(\n `Unable to obtain metadata from ${getProviderMetadataUrl({\n entityId: providerData.entityId,\n state,\n })}`\n );\n }\n fileData.saml.metadata[providerData._id] = convertBase64UrlTextToArray(\n encodeBase64Url(metaDataResponse)\n );\n}\n\n/**\n *\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2ProviderStub({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderStub> {\n debugMessage({\n message: `Saml2Ops.getSaml2ProviderStub: start [entityId=${entityId}]`,\n state,\n });\n const found = await findProviders({\n filter: `entityId eq '${entityId}'`,\n state,\n });\n switch (found.resultCount) {\n case 0:\n throw new Error(`No provider with entity id '${entityId}' found`);\n case 1: {\n debugMessage({\n message: `Saml2Ops.getSaml2ProviderStub: end [entityId=${entityId}]`,\n state,\n });\n return found.result[0];\n }\n default:\n throw new Error(`Multiple providers with entity id '${entityId}' found`);\n }\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderSkeleton> {\n debugMessage({\n message: `Saml2Ops.getSaml2Provider: start [entityId=${entityId}]`,\n state,\n });\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n debugMessage({\n message: `Saml2Ops.getSaml2Provider: end [entityId=${entityId}]`,\n state,\n });\n return providerData;\n}\n\n/**\n * Delete an entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function deleteSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderSkeleton> {\n debugMessage({\n message: `Saml2Ops.deleteSaml2Provider: start [entityId=${entityId}]`,\n state,\n });\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await deleteProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n debugMessage({\n message: `Saml2Ops.deleteSaml2Provider: end [entityId=${entityId}]`,\n state,\n });\n return providerData;\n}\n\n/**\n * Delete all entity providers.\n * @returns {Promise<Saml2ProviderSkeleton[]>} Promise resolving to an array of Saml2ProviderSkeleton objects.\n */\nexport async function deleteSaml2Providers({\n state,\n}: {\n state: State;\n}): Promise<Saml2ProviderSkeleton[]> {\n debugMessage({ message: `Saml2Ops.deleteSaml2Providers: start`, state });\n const providers: Saml2ProviderSkeleton[] = [];\n const stubs = await getSaml2ProviderStubs({ state });\n for (const stub of stubs) {\n const provider = await deleteProviderByLocationAndId({\n location: stub.location,\n entityId64: stub._id,\n state,\n });\n providers.push(provider);\n }\n debugMessage({\n message: `Saml2Ops.deleteSaml2Providers: end [deleted ${providers.length} providers]`,\n state,\n });\n return providers;\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ExportInterface> {\n debugMessage({\n message: `Saml2Ops.exportSaml2Provider: start [entityId=${entityId}]`,\n state,\n });\n const exportData = createSaml2ExportTemplate({ state });\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n exportData.saml[stub.location][providerData._id] = providerData;\n try {\n await exportDependencies({ providerData, fileData: exportData, state });\n } catch (error) {\n printMessage({ message: error.message, type: 'error', state });\n }\n debugMessage({\n message: `Saml2Ops.exportSaml2Provider: end [entityId=${entityId}]`,\n state,\n });\n return exportData;\n}\n\n/**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Providers({\n state,\n}: {\n state: State;\n}): Promise<Saml2ExportInterface> {\n const fileData = createSaml2ExportTemplate({ state });\n const stubs = await getSaml2ProviderStubs({ state });\n for (const stub of stubs) {\n const providerData = await getProviderByLocationAndId({\n location: stub.location,\n entityId64: stub._id,\n state,\n });\n try {\n await exportDependencies({ providerData, fileData, state });\n } catch (error) {\n printMessage({ message: error, type: 'error', state });\n }\n fileData.saml[stub.location][providerData._id] = providerData;\n }\n return fileData;\n}\n\n/**\n * Include dependencies from the import file\n * @param {object} providerData Object representing a SAML entity provider\n * @param {object} fileData File data object to read dependencies from\n */\nasync function importDependencies({\n providerData,\n fileData,\n state,\n}: {\n providerData: Saml2ProviderSkeleton;\n fileData: Saml2ExportInterface;\n state: State;\n}) {\n debugMessage({ message: `Saml2Ops.importDependencies: start`, state });\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n debugMessage({\n message: `Saml2Ops.importDependencies: attributeMapperScript=${attrMapperScriptId}`,\n state,\n });\n const scriptData = _.get(fileData, ['script', attrMapperScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script as string[]);\n await putScript({ scriptId: attrMapperScriptId, scriptData, state });\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n debugMessage({\n message: `Saml2Ops.importDependencies: idpAdapterScript=${idpAdapterScriptId}`,\n state,\n });\n const scriptData = _.get(fileData, ['script', idpAdapterScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script as string[]);\n await putScript({ scriptId: idpAdapterScriptId, scriptData, state });\n }\n debugMessage({ message: `Saml2Ops.importDependencies: end`, state });\n}\n\n/**\n * Find provider in import file and return its location\n * @param {string} entityId64 Base64-encoded provider entity id\n * @param {Saml2ExportInterface} data Import file json data\n * @returns {string} 'hosted' or 'remote' if found, undefined otherwise\n */\nfunction getLocation(\n entityId64: string,\n data: Saml2ExportInterface\n): Saml2ProiderLocation {\n if (data.saml.hosted[entityId64]) {\n return 'hosted';\n }\n if (data.saml.remote[entityId64]) {\n return 'remote';\n }\n return undefined;\n}\n\n/**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Provider({\n entityId,\n importData,\n state,\n}: {\n entityId: string;\n importData: Saml2ExportInterface;\n state: State;\n}): Promise<boolean> {\n debugMessage({ message: `Saml2Ops.importSaml2Provider: start`, state });\n const entityId64 = encode(entityId, false);\n const location = getLocation(entityId64, importData);\n debugMessage({\n message: `Saml2Ops.importSaml2Provider: entityId=${entityId}, entityId64=${entityId64}, location=${location}`,\n state,\n });\n if (location) {\n const providerData = importData.saml[location][entityId64];\n await importDependencies({ providerData, fileData: importData, state });\n let metaData = null;\n if (location === 'remote') {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n try {\n await createProvider({ location, providerData, metaData, state });\n } catch (error) {\n await updateProvider({ location, providerData, state });\n }\n } else {\n throw new Error(`Provider ${entityId} not found in import data!`);\n }\n debugMessage({ message: `Saml2Ops.importSaml2Provider: end`, state });\n return true;\n}\n\n/**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Providers({\n importData,\n state,\n}: {\n importData: Saml2ExportInterface;\n state: State;\n}): Promise<MultiOpStatusInterface> {\n debugMessage({ message: `Saml2Ops.importSaml2Providers: start`, state });\n const myStatus: MultiOpStatusInterface = {\n total: 0,\n successes: 0,\n warnings: 0,\n failures: 0,\n };\n try {\n // find providers in hosted and in remote and map locations\n const hostedIds = Object.keys(importData.saml.hosted);\n const remoteIds = Object.keys(importData.saml.remote);\n const providerIds = hostedIds.concat(remoteIds);\n myStatus.total = providerIds.length;\n for (const entityId64 of providerIds) {\n debugMessage({\n message: `Saml2Ops.importSaml2Providers: entityId=${decodeBase64Url(\n entityId64\n )}`,\n state,\n });\n const location: Saml2ProiderLocation = hostedIds.includes(entityId64)\n ? 'hosted'\n : 'remote';\n const entityId = decode(entityId64);\n const providerData = importData.saml[location][entityId64];\n try {\n await importDependencies({ providerData, fileData: importData, state });\n } catch (importDependenciesErr) {\n myStatus.warnings += 1;\n printMessage({\n message: `\\nWarning importing dependencies for ${entityId}`,\n state,\n type: 'warn',\n });\n printMessage({\n message: importDependenciesErr.response.data,\n type: 'error',\n state,\n });\n }\n let metaData = null;\n if (location === 'remote') {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n try {\n await createProvider({ location, providerData, metaData, state });\n myStatus.successes += 1;\n } catch (createProviderErr) {\n try {\n await updateProvider({ location, providerData, state });\n myStatus.successes += 1;\n } catch (updateProviderError) {\n myStatus.failures += 1;\n printMessage({\n message: `\\nError importing provider ${entityId}: ${updateProviderError.message}`,\n state,\n type: 'error',\n });\n printMessage({\n message: updateProviderError.response?.data,\n type: 'error',\n state,\n });\n }\n }\n }\n myStatus.message = `${myStatus.successes}/${myStatus.total} providers imported.`;\n } catch (error) {\n myStatus.failures += 1;\n printMessage({\n message: `\\nError importing providers ${error.message}`,\n type: 'error',\n state,\n });\n }\n debugMessage({ message: `Saml2Ops.importSaml2Providers: end`, state });\n return myStatus;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Saml2Ops.js","names":["_","createProvider","updateProvider","findProviders","getProviderByLocationAndId","_getProviderByLocationAndId","getProviderMetadata","_getProviderMetadata","getProviderMetadataUrl","_getProviderMetadataUrl","getProviders","deleteProviderByLocationAndId","getScript","decode","decodeBase64Url","encode","encodeBase64Url","putScript","debugMessage","printMessage","convertBase64TextToArray","convertBase64UrlTextToArray","convertTextArrayToBase64","convertTextArrayToBase64Url","getMetadata","state","getSaml2ProviderStubs","location","entityId64","entityId","getSaml2ProviderStub","getSaml2Provider","deleteSaml2Provider","deleteSaml2Providers","exportSaml2Provider","exportSaml2Providers","importSaml2Provider","importData","importSaml2Providers","createSaml2ExportTemplate","meta","script","saml","hosted","remote","metadata","result","exportDependencies","providerData","fileData","attrMapperScriptId","get","scriptData","scriptId","idpAdapterScriptId","metaDataResponse","Error","_id","message","found","filter","resultCount","stub","id","providers","stubs","provider","push","length","exportData","error","type","importDependencies","getLocation","data","undefined","metaData","myStatus","total","successes","warnings","failures","hostedIds","Object","keys","remoteIds","providerIds","concat","includes","importDependenciesErr","response","createProviderErr","updateProviderError","_updateProviderError$"],"sources":["../../src/ops/Saml2Ops.ts"],"sourcesContent":["import _ from 'lodash';\nimport {\n Saml2ProiderLocation,\n Saml2ProviderSkeleton,\n Saml2ProviderStub,\n} from '../api/ApiTypes';\nimport {\n createProvider,\n updateProvider,\n findProviders,\n getProviderByLocationAndId as _getProviderByLocationAndId,\n getProviderMetadata as _getProviderMetadata,\n getProviderMetadataUrl as _getProviderMetadataUrl,\n getProviders,\n deleteProviderByLocationAndId,\n} from '../api/Saml2Api';\nimport { getScript } from '../api/ScriptApi';\nimport {\n decode,\n decodeBase64Url,\n encode,\n encodeBase64Url,\n} from '../api/utils/Base64';\nimport { MultiOpStatusInterface, Saml2ExportInterface } from './OpsTypes';\nimport { putScript } from './ScriptOps';\nimport { debugMessage, printMessage } from './utils/Console';\nimport {\n convertBase64TextToArray,\n convertBase64UrlTextToArray,\n convertTextArrayToBase64,\n convertTextArrayToBase64Url,\n getMetadata,\n} from './utils/ExportImportUtils';\nimport { State } from '../shared/State';\n\nexport type Saml2 = {\n /**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\n getSaml2ProviderStubs(): Promise<Saml2ProviderStub[]>;\n /**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded-without-padding provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\n getProviderByLocationAndId(\n location: string,\n entityId64: string\n ): Promise<any>;\n /**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\n getProviderMetadataUrl(entityId: string): string;\n /**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {Promise<object>} a promise that resolves to an object containing a SAML2 metadata\n */\n getProviderMetadata(entityId: string): Promise<any>;\n /**\n *\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\n getSaml2ProviderStub(entityId: string): Promise<Saml2ProviderStub>;\n /**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\n getSaml2Provider(entityId: string): Promise<Saml2ProviderSkeleton>;\n /**\n * Delete an entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\n deleteSaml2Provider(entityId: string): Promise<Saml2ProviderSkeleton>;\n /**\n * Delete all entity providers.\n * @returns {Promise<Saml2ProviderSkeleton[]>} Promise resolving to an array of Saml2ProviderSkeleton objects.\n */\n deleteSaml2Providers(): Promise<Saml2ProviderSkeleton[]>;\n /**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\n exportSaml2Provider(entityId: string): Promise<Saml2ExportInterface>;\n /**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\n exportSaml2Providers(): Promise<Saml2ExportInterface>;\n /**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\n importSaml2Provider(\n entityId: string,\n importData: Saml2ExportInterface\n ): Promise<boolean>;\n /**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\n importSaml2Providers(\n importData: Saml2ExportInterface\n ): Promise<MultiOpStatusInterface>;\n};\n\nexport default (state: State): Saml2 => {\n return {\n /**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\n async getSaml2ProviderStubs(): Promise<Saml2ProviderStub[]> {\n return getSaml2ProviderStubs({ state });\n },\n\n /**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded-without-padding provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\n async getProviderByLocationAndId(location: string, entityId64: string) {\n return getProviderByLocationAndId({\n location,\n entityId64,\n state,\n });\n },\n\n /**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\n getProviderMetadataUrl(entityId: string): string {\n return getProviderMetadataUrl({ entityId, state });\n },\n\n /**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {Promise<object>} a promise that resolves to an object containing a SAML2 metadata\n */\n async getProviderMetadata(entityId: string) {\n return getProviderMetadata({ entityId, state });\n },\n\n /**\n *\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\n async getSaml2ProviderStub(entityId: string): Promise<Saml2ProviderStub> {\n return getSaml2ProviderStub({ entityId, state });\n },\n\n /**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\n async getSaml2Provider(entityId: string): Promise<Saml2ProviderSkeleton> {\n return getSaml2Provider({ entityId, state });\n },\n\n /**\n * Delete an entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\n async deleteSaml2Provider(\n entityId: string\n ): Promise<Saml2ProviderSkeleton> {\n return deleteSaml2Provider({ entityId, state });\n },\n\n /**\n * Delete all entity providers.\n * @returns {Promise<Saml2ProviderSkeleton[]>} Promise resolving to an array of Saml2ProviderSkeleton objects.\n */\n async deleteSaml2Providers(): Promise<Saml2ProviderSkeleton[]> {\n return deleteSaml2Providers({ state });\n },\n\n /**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\n async exportSaml2Provider(entityId: string): Promise<Saml2ExportInterface> {\n return exportSaml2Provider({ entityId, state });\n },\n\n /**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\n async exportSaml2Providers(): Promise<Saml2ExportInterface> {\n return exportSaml2Providers({ state });\n },\n\n /**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\n async importSaml2Provider(\n entityId: string,\n importData: Saml2ExportInterface\n ): Promise<boolean> {\n return importSaml2Provider({ entityId, importData, state });\n },\n\n /**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\n async importSaml2Providers(\n importData: Saml2ExportInterface\n ): Promise<MultiOpStatusInterface> {\n return importSaml2Providers({ importData, state });\n },\n };\n};\n\n// use a function vs a template variable to avoid problems in loops\nexport function createSaml2ExportTemplate({\n state,\n}: {\n state: State;\n}): Saml2ExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n saml: {\n hosted: {},\n remote: {},\n metadata: {},\n },\n } as Saml2ExportInterface;\n}\n\n/**\n * Get SAML2 entity provider stubs\n * @returns {Promise<Saml2ProviderStub[]>} a promise that resolves to an array of saml2 entity stubs\n */\nexport async function getSaml2ProviderStubs({\n state,\n}: {\n state: State;\n}): Promise<Saml2ProviderStub[]> {\n const { result } = await getProviders({ state });\n return result;\n}\n\n/**\n * Geta SAML2 entity provider by location and id\n * @param {string} location Entity provider location (hosted or remote)\n * @param {string} entityId64 Base64-encoded-without-padding provider entity id\n * @returns {Promise} a promise that resolves to a saml2 entity provider object\n */\nexport async function getProviderByLocationAndId({\n location,\n entityId64,\n state,\n}: {\n location: string;\n entityId64: string;\n state: State;\n}) {\n return _getProviderByLocationAndId({ location, entityId64, state });\n}\n\n/**\n * Get a SAML2 entity provider's metadata URL by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {string} the URL to get the metadata from\n */\nexport function getProviderMetadataUrl({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): string {\n return _getProviderMetadataUrl({ entityId, state });\n}\n\n/**\n * Get a SAML2 entity provider's metadata by entity id\n * @param {string} entityId SAML2 entity id\n * @returns {Promise<object>} a promise that resolves to an object containing a SAML2 metadata\n */\nexport async function getProviderMetadata({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}) {\n return _getProviderMetadata({ entityId, state });\n}\n\n/**\n * Include dependencies in the export file\n * @param {object} providerData Object representing a SAML entity provider\n * @param {object} fileData File data object to add dependencies to\n */\nasync function exportDependencies({\n providerData,\n fileData,\n state,\n}: {\n providerData: Saml2ProviderSkeleton;\n fileData: Saml2ExportInterface;\n state: State;\n}) {\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n const scriptData = await getScript({ scriptId: attrMapperScriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[attrMapperScriptId] = scriptData;\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n const scriptData = await getScript({ scriptId: idpAdapterScriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n fileData.script[idpAdapterScriptId] = scriptData;\n }\n const metaDataResponse = await getProviderMetadata({\n entityId: providerData.entityId,\n state,\n });\n if (!metaDataResponse) {\n throw new Error(\n `Unable to obtain metadata from ${getProviderMetadataUrl({\n entityId: providerData.entityId,\n state,\n })}`\n );\n }\n fileData.saml.metadata[providerData._id] = convertBase64UrlTextToArray(\n encodeBase64Url(metaDataResponse)\n );\n}\n\n/**\n *\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderStub>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2ProviderStub({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderStub> {\n debugMessage({\n message: `Saml2Ops.getSaml2ProviderStub: start [entityId=${entityId}]`,\n state,\n });\n const found = await findProviders({\n filter: `entityId eq '${entityId}'`,\n state,\n });\n switch (found.resultCount) {\n case 0:\n throw new Error(`No provider with entity id '${entityId}' found`);\n case 1: {\n debugMessage({\n message: `Saml2Ops.getSaml2ProviderStub: end [entityId=${entityId}]`,\n state,\n });\n return found.result[0];\n }\n default:\n throw new Error(`Multiple providers with entity id '${entityId}' found`);\n }\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function getSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderSkeleton> {\n debugMessage({\n message: `Saml2Ops.getSaml2Provider: start [entityId=${entityId}]`,\n state,\n });\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n debugMessage({\n message: `Saml2Ops.getSaml2Provider: end [entityId=${entityId}]`,\n state,\n });\n return providerData;\n}\n\n/**\n * Delete an entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ProviderSkeleton>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function deleteSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ProviderSkeleton> {\n debugMessage({\n message: `Saml2Ops.deleteSaml2Provider: start [entityId=${entityId}]`,\n state,\n });\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await deleteProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n debugMessage({\n message: `Saml2Ops.deleteSaml2Provider: end [entityId=${entityId}]`,\n state,\n });\n return providerData;\n}\n\n/**\n * Delete all entity providers.\n * @returns {Promise<Saml2ProviderSkeleton[]>} Promise resolving to an array of Saml2ProviderSkeleton objects.\n */\nexport async function deleteSaml2Providers({\n state,\n}: {\n state: State;\n}): Promise<Saml2ProviderSkeleton[]> {\n debugMessage({ message: `Saml2Ops.deleteSaml2Providers: start`, state });\n const providers: Saml2ProviderSkeleton[] = [];\n const stubs = await getSaml2ProviderStubs({ state });\n for (const stub of stubs) {\n const provider = await deleteProviderByLocationAndId({\n location: stub.location,\n entityId64: stub._id,\n state,\n });\n providers.push(provider);\n }\n debugMessage({\n message: `Saml2Ops.deleteSaml2Providers: end [deleted ${providers.length} providers]`,\n state,\n });\n return providers;\n}\n\n/**\n * Export a single entity provider. The response can be saved to file as is.\n * @param {string} entityId Provider entity id\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Provider({\n entityId,\n state,\n}: {\n entityId: string;\n state: State;\n}): Promise<Saml2ExportInterface> {\n debugMessage({\n message: `Saml2Ops.exportSaml2Provider: start [entityId=${entityId}]`,\n state,\n });\n const exportData = createSaml2ExportTemplate({ state });\n const stub = await getSaml2ProviderStub({ entityId, state });\n const { location } = stub;\n const id = stub._id;\n const providerData = await getProviderByLocationAndId({\n location,\n entityId64: id,\n state,\n });\n exportData.saml[stub.location][providerData._id] = providerData;\n try {\n await exportDependencies({ providerData, fileData: exportData, state });\n } catch (error) {\n printMessage({ message: error.message, type: 'error', state });\n }\n debugMessage({\n message: `Saml2Ops.exportSaml2Provider: end [entityId=${entityId}]`,\n state,\n });\n return exportData;\n}\n\n/**\n * Export all entity providers. The response can be saved to file as is.\n * @returns {Promise<Saml2ExportInterface>} Promise resolving to a Saml2ExportInterface object.\n */\nexport async function exportSaml2Providers({\n state,\n}: {\n state: State;\n}): Promise<Saml2ExportInterface> {\n const fileData = createSaml2ExportTemplate({ state });\n const stubs = await getSaml2ProviderStubs({ state });\n for (const stub of stubs) {\n const providerData = await getProviderByLocationAndId({\n location: stub.location,\n entityId64: stub._id,\n state,\n });\n try {\n await exportDependencies({ providerData, fileData, state });\n } catch (error) {\n printMessage({ message: error, type: 'error', state });\n }\n fileData.saml[stub.location][providerData._id] = providerData;\n }\n return fileData;\n}\n\n/**\n * Include dependencies from the import file\n * @param {object} providerData Object representing a SAML entity provider\n * @param {object} fileData File data object to read dependencies from\n */\nasync function importDependencies({\n providerData,\n fileData,\n state,\n}: {\n providerData: Saml2ProviderSkeleton;\n fileData: Saml2ExportInterface;\n state: State;\n}) {\n debugMessage({ message: `Saml2Ops.importDependencies: start`, state });\n const attrMapperScriptId = _.get(providerData, [\n 'identityProvider',\n 'assertionProcessing',\n 'attributeMapper',\n 'attributeMapperScript',\n ]);\n if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') {\n debugMessage({\n message: `Saml2Ops.importDependencies: attributeMapperScript=${attrMapperScriptId}`,\n state,\n });\n const scriptData = _.get(fileData, ['script', attrMapperScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script as string[]);\n await putScript({ scriptId: attrMapperScriptId, scriptData, state });\n }\n const idpAdapterScriptId = _.get(providerData, [\n 'identityProvider',\n 'advanced',\n 'idpAdapter',\n 'idpAdapterScript',\n ]);\n if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') {\n debugMessage({\n message: `Saml2Ops.importDependencies: idpAdapterScript=${idpAdapterScriptId}`,\n state,\n });\n const scriptData = _.get(fileData, ['script', idpAdapterScriptId]);\n scriptData.script = convertTextArrayToBase64(scriptData.script as string[]);\n await putScript({ scriptId: idpAdapterScriptId, scriptData, state });\n }\n debugMessage({ message: `Saml2Ops.importDependencies: end`, state });\n}\n\n/**\n * Find provider in import file and return its location\n * @param {string} entityId64 Base64-encoded provider entity id\n * @param {Saml2ExportInterface} data Import file json data\n * @returns {string} 'hosted' or 'remote' if found, undefined otherwise\n */\nfunction getLocation(\n entityId64: string,\n data: Saml2ExportInterface\n): Saml2ProiderLocation {\n if (data.saml.hosted[entityId64]) {\n return 'hosted';\n }\n if (data.saml.remote[entityId64]) {\n return 'remote';\n }\n return undefined;\n}\n\n/**\n * Import a SAML entity provider\n * @param {string} entityId Provider entity id\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Provider({\n entityId,\n importData,\n state,\n}: {\n entityId: string;\n importData: Saml2ExportInterface;\n state: State;\n}): Promise<boolean> {\n debugMessage({ message: `Saml2Ops.importSaml2Provider: start`, state });\n const entityId64 = encode(entityId, false);\n const location = getLocation(entityId64, importData);\n debugMessage({\n message: `Saml2Ops.importSaml2Provider: entityId=${entityId}, entityId64=${entityId64}, location=${location}`,\n state,\n });\n if (location) {\n const providerData = importData.saml[location][entityId64];\n await importDependencies({ providerData, fileData: importData, state });\n let metaData = null;\n if (location === 'remote') {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n try {\n await createProvider({ location, providerData, metaData, state });\n } catch (error) {\n await updateProvider({ location, providerData, state });\n }\n } else {\n throw new Error(`Provider ${entityId} not found in import data!`);\n }\n debugMessage({ message: `Saml2Ops.importSaml2Provider: end`, state });\n return true;\n}\n\n/**\n * Import SAML entity providers\n * @param {Saml2ExportInterface} importData Import data\n */\nexport async function importSaml2Providers({\n importData,\n state,\n}: {\n importData: Saml2ExportInterface;\n state: State;\n}): Promise<MultiOpStatusInterface> {\n debugMessage({ message: `Saml2Ops.importSaml2Providers: start`, state });\n const myStatus: MultiOpStatusInterface = {\n total: 0,\n successes: 0,\n warnings: 0,\n failures: 0,\n };\n try {\n // find providers in hosted and in remote and map locations\n const hostedIds = Object.keys(importData.saml.hosted);\n const remoteIds = Object.keys(importData.saml.remote);\n const providerIds = hostedIds.concat(remoteIds);\n myStatus.total = providerIds.length;\n for (const entityId64 of providerIds) {\n debugMessage({\n message: `Saml2Ops.importSaml2Providers: entityId=${decodeBase64Url(\n entityId64\n )}`,\n state,\n });\n const location: Saml2ProiderLocation = hostedIds.includes(entityId64)\n ? 'hosted'\n : 'remote';\n const entityId = decode(entityId64);\n const providerData = importData.saml[location][entityId64];\n try {\n await importDependencies({ providerData, fileData: importData, state });\n } catch (importDependenciesErr) {\n myStatus.warnings += 1;\n printMessage({\n message: `\\nWarning importing dependencies for ${entityId}`,\n state,\n type: 'warn',\n });\n printMessage({\n message: importDependenciesErr.response.data,\n type: 'error',\n state,\n });\n }\n let metaData = null;\n if (location === 'remote') {\n metaData = convertTextArrayToBase64Url(\n importData.saml.metadata[entityId64]\n );\n }\n try {\n await createProvider({ location, providerData, metaData, state });\n myStatus.successes += 1;\n } catch (createProviderErr) {\n try {\n await updateProvider({ location, providerData, state });\n myStatus.successes += 1;\n } catch (updateProviderError) {\n myStatus.failures += 1;\n printMessage({\n message: `\\nError importing provider ${entityId}: ${updateProviderError.message}`,\n state,\n type: 'error',\n });\n printMessage({\n message: updateProviderError.response?.data,\n type: 'error',\n state,\n });\n }\n }\n }\n myStatus.message = `${myStatus.successes}/${myStatus.total} providers imported.`;\n } catch (error) {\n myStatus.failures += 1;\n printMessage({\n message: `\\nError importing providers ${error.message}`,\n type: 'error',\n state,\n });\n }\n debugMessage({ message: `Saml2Ops.importSaml2Providers: end`, state });\n return myStatus;\n}\n"],"mappings":"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"}
|
package/esm/ops/Saml2Ops.test.js
CHANGED
|
@@ -49,12 +49,12 @@
|
|
|
49
49
|
*/
|
|
50
50
|
import { state } from "../index.js";
|
|
51
51
|
import * as Saml2Ops from "./Saml2Ops.js";
|
|
52
|
-
import
|
|
52
|
+
import Constants from "../shared/Constants.js";
|
|
53
53
|
import { getSaml2ProviderImportData, getSaml2ProvidersImportData } from "../test/mocks/ForgeRockApiMockEngine.js";
|
|
54
54
|
import { encodeBase64Url } from "../api/utils/Base64.js";
|
|
55
55
|
import { autoSetupPolly } from "../utils/AutoSetupPolly.js";
|
|
56
56
|
autoSetupPolly();
|
|
57
|
-
state.setDeploymentType(
|
|
57
|
+
state.setDeploymentType(Constants.CLOUD_DEPLOYMENT_TYPE_KEY);
|
|
58
58
|
async function stageProvider(provider, create = true) {
|
|
59
59
|
// delete if exists, then create
|
|
60
60
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Saml2Ops.test.js","names":["state","Saml2Ops","globalConfig","getSaml2ProviderImportData","getSaml2ProvidersImportData","encodeBase64Url","autoSetupPolly","setDeploymentType","CLOUD_DEPLOYMENT_TYPE_KEY","stageProvider","provider","create","getSaml2Provider","entityId","deleteSaml2Provider","error","isAxiosError","_error$response","console","log","message","dir","response","data","importSaml2Provider","importData","_error$response2","describe","provider1","location","entityId64","provider2","provider3","provider4","provider5","provider6","provider7","provider8","provider9","provider10","beforeAll","process","env","FRODO_POLLY_MODE","FRODO_RECORD_PHASE","afterAll","test","expect","createSaml2ExportTemplate","toBeDefined","toMatchSnapshot","meta","any","Object","getSaml2ProviderStubs","getProviderByLocationAndId","getProviderMetadataUrl","toMatch","RegExp","FRODO_HOST","url","URL","pathname","searchParams","URLSearchParams","search","get","getProviderMetadata","getSaml2ProviderStub","exportSaml2Provider","exportSaml2Providers","assertions","toBeTruthy","importSaml2Providers","failures","toBe","warnings","deleteSaml2Providers"],"sources":["../../src/ops/Saml2Ops.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses\n *\n * This step breaks down into 5 phases:\n *\n * Phase 1: Record Group 1 of non-destructive tests\n * Phase 2: Record Group 2 of non-destructive tests - Import all\n * Phase 3: Record Group 1 of DESTRUCTIVE tests - Deletes by entity id\n * Phase 4: Record Group 2 of DESTRUCTIVE tests - Delete all\n *\n * Because destructive tests interfere with the recording of non-destructive\n * tests and also interfere among themselves, they have to be run in groups\n * of non-interfering tests.\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 and also indicate the phase:\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=1 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=2 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n *\n * THESE TESTS ARE DESTRUCTIVE!!! DO NOT RUN AGAINST AN ENV WITH ACTIVE CONFIGURATION!!!\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=3 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=4 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=5 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\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 Saml2Ops\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 Saml2Ops\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 { state } from '../index';\nimport * as Saml2Ops from './Saml2Ops';\nimport * as globalConfig from '../storage/StaticStorage';\nimport { Saml2ProiderLocation } from '../api/ApiTypes';\nimport {\n getSaml2ProviderImportData,\n getSaml2ProvidersImportData,\n} from '../test/mocks/ForgeRockApiMockEngine';\nimport { encodeBase64Url } from '../api/utils/Base64';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\nautoSetupPolly();\n\nstate.setDeploymentType(globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY);\n\nasync function stageProvider(provider: { entityId: string }, create = true) {\n // delete if exists, then create\n try {\n await Saml2Ops.getSaml2Provider({ entityId: provider.entityId, state });\n await Saml2Ops.deleteSaml2Provider({ entityId: provider.entityId, state });\n } catch (error) {\n if (error.isAxiosError) {\n console.log(\n `Error deleting provider '${provider.entityId}': ${error.message}`\n );\n console.dir(error.response?.data);\n }\n } finally {\n if (create) {\n try {\n await Saml2Ops.importSaml2Provider({\n entityId: provider.entityId,\n importData: getSaml2ProviderImportData(provider.entityId),\n state,\n });\n } catch (error) {\n console.log(\n `Error importing provider '${provider.entityId}': ${error.message}`\n );\n console.dir(error.response?.data);\n }\n }\n }\n}\n\ndescribe('Saml2Ops', () => {\n type SamlProvider = {\n entityId: string;\n location: Saml2ProiderLocation;\n entityId64: string;\n };\n const provider1: SamlProvider = {\n entityId: 'iSPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('iSPAzure'),\n };\n const provider2: SamlProvider = {\n entityId: 'urn:federation:MicrosoftOnline',\n location: 'remote',\n entityId64: encodeBase64Url('urn:federation:MicrosoftOnline'),\n };\n const provider3: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPFedlet',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPFedlet'),\n };\n const provider4: SamlProvider = {\n entityId: 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/',\n location: 'remote',\n entityId64: encodeBase64Url(\n 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/'\n ),\n };\n const provider5: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPAzure'),\n };\n const provider6: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPBroadcom',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPBroadcom'),\n };\n const provider7: SamlProvider = {\n entityId: 'idp',\n location: 'remote',\n entityId64: encodeBase64Url('idp'),\n };\n const provider8: SamlProvider = {\n entityId: 'SPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('SPAzure'),\n };\n const provider9: SamlProvider = {\n entityId: 'volkerDevSP',\n location: 'hosted',\n entityId64: encodeBase64Url('volkerDevSP'),\n };\n const provider10: SamlProvider = {\n entityId: 'https://saml.mytestrun.com/sp',\n location: 'remote',\n entityId64: encodeBase64Url('https://saml.mytestrun.com/sp'),\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '1'\n ) {\n await stageProvider(provider1);\n await stageProvider(provider2);\n await stageProvider(provider3);\n await stageProvider(provider4);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n } else if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '2'\n ) {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider3, false);\n await stageProvider(provider4, false);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n await stageProvider(provider10, false);\n } else if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '5'\n ) {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n }\n // Pahses 3 + 4\n else if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageProvider(provider1);\n await stageProvider(provider2);\n await stageProvider(provider3);\n await stageProvider(provider4);\n await stageProvider(provider5);\n await stageProvider(provider6);\n await stageProvider(provider7);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider3, false);\n await stageProvider(provider4, false);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n await stageProvider(provider10, false);\n }\n });\n\n // Phase 1\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '1')\n ) {\n describe('createSaml2ExportTemplate()', () => {\n test('0: Method is implemented', () => {\n expect(Saml2Ops.createSaml2ExportTemplate).toBeDefined();\n });\n\n test('1: Create saml2 export template', () => {\n const response = Saml2Ops.createSaml2ExportTemplate({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('getSaml2ProviderStubs()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2ProviderStubs).toBeDefined();\n });\n\n test('1: Get saml2 provider stubs', async () => {\n const response = await Saml2Ops.getSaml2ProviderStubs({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getProviderByLocationAndId()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderByLocationAndId).toBeDefined();\n });\n\n test(`1: Get hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderByLocationAndId({\n location: provider1.location,\n entityId64: provider1.entityId64,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get remote provider '${provider2.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderByLocationAndId({\n location: provider2.location,\n entityId64: provider2.entityId64,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getProviderMetadataUrl()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderMetadataUrl).toBeDefined();\n });\n\n test(`1: Get metadata url for hosted provider '${provider3.entityId}'`, async () => {\n const response = Saml2Ops.getProviderMetadataUrl({\n entityId: provider3.entityId,\n state,\n });\n expect(response).toMatch(\n new RegExp(\n `^${\n process.env.FRODO_HOST ||\n 'https://openam-frodo-dev.forgeblocks.com'\n }`\n )\n );\n const url = new URL(response);\n expect(url.pathname).toMatch('/am/saml2/jsp/exportmetadata.jsp');\n const searchParams = new URLSearchParams(url.search);\n expect(searchParams.get('entityid')).toMatch(provider3.entityId);\n });\n\n test(`2: Get metadata url for remote provider '${provider4.entityId}'`, async () => {\n const response = Saml2Ops.getProviderMetadataUrl({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatch(\n new RegExp(\n `^${\n process.env.FRODO_HOST ||\n 'https://openam-frodo-dev.forgeblocks.com'\n }`\n )\n );\n const url = new URL(response);\n expect(url.pathname).toMatch('/am/saml2/jsp/exportmetadata.jsp');\n const searchParams = new URLSearchParams(url.search);\n expect(searchParams.get('entityid')).toMatch(provider4.entityId);\n });\n });\n\n describe('getProviderMetadata()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderMetadata).toBeDefined();\n });\n\n test(`1: Get metadata for hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderMetadata({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get metadata for remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderMetadata({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSaml2ProviderStub()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2ProviderStub).toBeDefined();\n });\n\n test(`1: Get stub of hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2ProviderStub({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get stub of remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2ProviderStub({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2Provider).toBeDefined();\n });\n\n test(`1: Get hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2Provider({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('exportSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.exportSaml2Provider).toBeDefined();\n });\n\n test(`1: Export hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.exportSaml2Provider({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n\n test(`2: Export remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.exportSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.exportSaml2Providers).toBeDefined();\n });\n\n test('1: Export saml2 entity providers', async () => {\n const response = await Saml2Ops.exportSaml2Providers({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('importSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.importSaml2Provider).toBeDefined();\n });\n\n test(`1: Import hosted provider '${provider5.entityId}'`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider5.entityId,\n importData: getSaml2ProviderImportData(provider5.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n\n test(`2: Import hosted provider '${provider6.entityId}'`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider6.entityId,\n importData: getSaml2ProviderImportData(provider6.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n\n test(`3: Import remote provider '${provider7.entityId}' with metadata`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider7.entityId,\n importData: getSaml2ProviderImportData(provider7.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n });\n }\n\n // Phase 2\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '2')\n ) {\n describe('importSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.importSaml2Providers).toBeDefined();\n });\n\n test('1: Import providers', async () => {\n expect.assertions(2);\n const response = await Saml2Ops.importSaml2Providers({\n importData: getSaml2ProvidersImportData(),\n state,\n });\n expect(response.failures).toBe(0);\n expect(response.warnings).toBe(0);\n });\n });\n }\n\n // Phase 3\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '3')\n ) {\n describe('deleteSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.deleteSaml2Provider).toBeDefined();\n });\n\n test(`1: Delete hosted provider '${provider3.entityId}'`, async () => {\n const response = await Saml2Ops.deleteSaml2Provider({\n entityId: provider3.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Delete remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.deleteSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n }\n\n // Phase 4\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '4')\n ) {\n describe('deleteSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.deleteSaml2Providers).toBeDefined();\n });\n\n test(`1: Delete all providers`, async () => {\n const response = await Saml2Ops.deleteSaml2Providers({ state });\n expect(response).toMatchSnapshot();\n });\n });\n }\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Saml2Ops.test.js","names":["state","Saml2Ops","Constants","getSaml2ProviderImportData","getSaml2ProvidersImportData","encodeBase64Url","autoSetupPolly","setDeploymentType","CLOUD_DEPLOYMENT_TYPE_KEY","stageProvider","provider","create","getSaml2Provider","entityId","deleteSaml2Provider","error","isAxiosError","_error$response","console","log","message","dir","response","data","importSaml2Provider","importData","_error$response2","describe","provider1","location","entityId64","provider2","provider3","provider4","provider5","provider6","provider7","provider8","provider9","provider10","beforeAll","process","env","FRODO_POLLY_MODE","FRODO_RECORD_PHASE","afterAll","test","expect","createSaml2ExportTemplate","toBeDefined","toMatchSnapshot","meta","any","Object","getSaml2ProviderStubs","getProviderByLocationAndId","getProviderMetadataUrl","toMatch","RegExp","FRODO_HOST","url","URL","pathname","searchParams","URLSearchParams","search","get","getProviderMetadata","getSaml2ProviderStub","exportSaml2Provider","exportSaml2Providers","assertions","toBeTruthy","importSaml2Providers","failures","toBe","warnings","deleteSaml2Providers"],"sources":["../../src/ops/Saml2Ops.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses\n *\n * This step breaks down into 5 phases:\n *\n * Phase 1: Record Group 1 of non-destructive tests\n * Phase 2: Record Group 2 of non-destructive tests - Import all\n * Phase 3: Record Group 1 of DESTRUCTIVE tests - Deletes by entity id\n * Phase 4: Record Group 2 of DESTRUCTIVE tests - Delete all\n *\n * Because destructive tests interfere with the recording of non-destructive\n * tests and also interfere among themselves, they have to be run in groups\n * of non-interfering tests.\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 and also indicate the phase:\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=1 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=2 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n *\n * THESE TESTS ARE DESTRUCTIVE!!! DO NOT RUN AGAINST AN ENV WITH ACTIVE CONFIGURATION!!!\n *\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=3 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=4 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\n * FRODO_DEBUG=1 FRODO_RECORD_PHASE=5 FRODO_HOST=frodo-dev npm run test:record Saml2Ops\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 Saml2Ops\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 Saml2Ops\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 { state } from '../index';\nimport * as Saml2Ops from './Saml2Ops';\nimport Constants from '../shared/Constants';\nimport { Saml2ProiderLocation } from '../api/ApiTypes';\nimport {\n getSaml2ProviderImportData,\n getSaml2ProvidersImportData,\n} from '../test/mocks/ForgeRockApiMockEngine';\nimport { encodeBase64Url } from '../api/utils/Base64';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\nautoSetupPolly();\n\nstate.setDeploymentType(Constants.CLOUD_DEPLOYMENT_TYPE_KEY);\n\nasync function stageProvider(provider: { entityId: string }, create = true) {\n // delete if exists, then create\n try {\n await Saml2Ops.getSaml2Provider({ entityId: provider.entityId, state });\n await Saml2Ops.deleteSaml2Provider({ entityId: provider.entityId, state });\n } catch (error) {\n if (error.isAxiosError) {\n console.log(\n `Error deleting provider '${provider.entityId}': ${error.message}`\n );\n console.dir(error.response?.data);\n }\n } finally {\n if (create) {\n try {\n await Saml2Ops.importSaml2Provider({\n entityId: provider.entityId,\n importData: getSaml2ProviderImportData(provider.entityId),\n state,\n });\n } catch (error) {\n console.log(\n `Error importing provider '${provider.entityId}': ${error.message}`\n );\n console.dir(error.response?.data);\n }\n }\n }\n}\n\ndescribe('Saml2Ops', () => {\n type SamlProvider = {\n entityId: string;\n location: Saml2ProiderLocation;\n entityId64: string;\n };\n const provider1: SamlProvider = {\n entityId: 'iSPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('iSPAzure'),\n };\n const provider2: SamlProvider = {\n entityId: 'urn:federation:MicrosoftOnline',\n location: 'remote',\n entityId64: encodeBase64Url('urn:federation:MicrosoftOnline'),\n };\n const provider3: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPFedlet',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPFedlet'),\n };\n const provider4: SamlProvider = {\n entityId: 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/',\n location: 'remote',\n entityId64: encodeBase64Url(\n 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/'\n ),\n };\n const provider5: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPAzure'),\n };\n const provider6: SamlProvider = {\n entityId: 'https://idc.scheuber.io/am/saml2/IDPBroadcom',\n location: 'hosted',\n entityId64: encodeBase64Url('https://idc.scheuber.io/am/saml2/IDPBroadcom'),\n };\n const provider7: SamlProvider = {\n entityId: 'idp',\n location: 'remote',\n entityId64: encodeBase64Url('idp'),\n };\n const provider8: SamlProvider = {\n entityId: 'SPAzure',\n location: 'hosted',\n entityId64: encodeBase64Url('SPAzure'),\n };\n const provider9: SamlProvider = {\n entityId: 'volkerDevSP',\n location: 'hosted',\n entityId64: encodeBase64Url('volkerDevSP'),\n };\n const provider10: SamlProvider = {\n entityId: 'https://saml.mytestrun.com/sp',\n location: 'remote',\n entityId64: encodeBase64Url('https://saml.mytestrun.com/sp'),\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '1'\n ) {\n await stageProvider(provider1);\n await stageProvider(provider2);\n await stageProvider(provider3);\n await stageProvider(provider4);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n } else if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '2'\n ) {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider3, false);\n await stageProvider(provider4, false);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n await stageProvider(provider10, false);\n } else if (\n process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '5'\n ) {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n }\n // Pahses 3 + 4\n else if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageProvider(provider1);\n await stageProvider(provider2);\n await stageProvider(provider3);\n await stageProvider(provider4);\n await stageProvider(provider5);\n await stageProvider(provider6);\n await stageProvider(provider7);\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n await stageProvider(provider1, false);\n await stageProvider(provider2, false);\n await stageProvider(provider3, false);\n await stageProvider(provider4, false);\n await stageProvider(provider5, false);\n await stageProvider(provider6, false);\n await stageProvider(provider7, false);\n await stageProvider(provider8, false);\n await stageProvider(provider9, false);\n await stageProvider(provider10, false);\n }\n });\n\n // Phase 1\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '1')\n ) {\n describe('createSaml2ExportTemplate()', () => {\n test('0: Method is implemented', () => {\n expect(Saml2Ops.createSaml2ExportTemplate).toBeDefined();\n });\n\n test('1: Create saml2 export template', () => {\n const response = Saml2Ops.createSaml2ExportTemplate({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('getSaml2ProviderStubs()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2ProviderStubs).toBeDefined();\n });\n\n test('1: Get saml2 provider stubs', async () => {\n const response = await Saml2Ops.getSaml2ProviderStubs({ state });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getProviderByLocationAndId()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderByLocationAndId).toBeDefined();\n });\n\n test(`1: Get hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderByLocationAndId({\n location: provider1.location,\n entityId64: provider1.entityId64,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get remote provider '${provider2.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderByLocationAndId({\n location: provider2.location,\n entityId64: provider2.entityId64,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getProviderMetadataUrl()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderMetadataUrl).toBeDefined();\n });\n\n test(`1: Get metadata url for hosted provider '${provider3.entityId}'`, async () => {\n const response = Saml2Ops.getProviderMetadataUrl({\n entityId: provider3.entityId,\n state,\n });\n expect(response).toMatch(\n new RegExp(\n `^${\n process.env.FRODO_HOST ||\n 'https://openam-frodo-dev.forgeblocks.com'\n }`\n )\n );\n const url = new URL(response);\n expect(url.pathname).toMatch('/am/saml2/jsp/exportmetadata.jsp');\n const searchParams = new URLSearchParams(url.search);\n expect(searchParams.get('entityid')).toMatch(provider3.entityId);\n });\n\n test(`2: Get metadata url for remote provider '${provider4.entityId}'`, async () => {\n const response = Saml2Ops.getProviderMetadataUrl({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatch(\n new RegExp(\n `^${\n process.env.FRODO_HOST ||\n 'https://openam-frodo-dev.forgeblocks.com'\n }`\n )\n );\n const url = new URL(response);\n expect(url.pathname).toMatch('/am/saml2/jsp/exportmetadata.jsp');\n const searchParams = new URLSearchParams(url.search);\n expect(searchParams.get('entityid')).toMatch(provider4.entityId);\n });\n });\n\n describe('getProviderMetadata()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getProviderMetadata).toBeDefined();\n });\n\n test(`1: Get metadata for hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderMetadata({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get metadata for remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getProviderMetadata({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSaml2ProviderStub()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2ProviderStub).toBeDefined();\n });\n\n test(`1: Get stub of hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2ProviderStub({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get stub of remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2ProviderStub({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.getSaml2Provider).toBeDefined();\n });\n\n test(`1: Get hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2Provider({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Get remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.getSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('exportSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.exportSaml2Provider).toBeDefined();\n });\n\n test(`1: Export hosted provider '${provider1.entityId}'`, async () => {\n const response = await Saml2Ops.exportSaml2Provider({\n entityId: provider1.entityId,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n\n test(`2: Export remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.exportSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('exportSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.exportSaml2Providers).toBeDefined();\n });\n\n test('1: Export saml2 entity providers', async () => {\n const response = await Saml2Ops.exportSaml2Providers({ state });\n expect(response).toMatchSnapshot({\n meta: expect.any(Object),\n });\n });\n });\n\n describe('importSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.importSaml2Provider).toBeDefined();\n });\n\n test(`1: Import hosted provider '${provider5.entityId}'`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider5.entityId,\n importData: getSaml2ProviderImportData(provider5.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n\n test(`2: Import hosted provider '${provider6.entityId}'`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider6.entityId,\n importData: getSaml2ProviderImportData(provider6.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n\n test(`3: Import remote provider '${provider7.entityId}' with metadata`, async () => {\n expect.assertions(1);\n const response = await Saml2Ops.importSaml2Provider({\n entityId: provider7.entityId,\n importData: getSaml2ProviderImportData(provider7.entityId),\n state,\n });\n expect(response).toBeTruthy();\n });\n });\n }\n\n // Phase 2\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '2')\n ) {\n describe('importSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.importSaml2Providers).toBeDefined();\n });\n\n test('1: Import providers', async () => {\n expect.assertions(2);\n const response = await Saml2Ops.importSaml2Providers({\n importData: getSaml2ProvidersImportData(),\n state,\n });\n expect(response.failures).toBe(0);\n expect(response.warnings).toBe(0);\n });\n });\n }\n\n // Phase 3\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '3')\n ) {\n describe('deleteSaml2Provider()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.deleteSaml2Provider).toBeDefined();\n });\n\n test(`1: Delete hosted provider '${provider3.entityId}'`, async () => {\n const response = await Saml2Ops.deleteSaml2Provider({\n entityId: provider3.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n\n test(`2: Delete remote provider '${provider4.entityId}'`, async () => {\n const response = await Saml2Ops.deleteSaml2Provider({\n entityId: provider4.entityId,\n state,\n });\n expect(response).toMatchSnapshot();\n });\n });\n }\n\n // Phase 4\n if (\n !process.env.FRODO_POLLY_MODE ||\n (process.env.FRODO_POLLY_MODE === 'record' &&\n process.env.FRODO_RECORD_PHASE === '4')\n ) {\n describe('deleteSaml2Providers()', () => {\n test('0: Method is implemented', async () => {\n expect(Saml2Ops.deleteSaml2Providers).toBeDefined();\n });\n\n test(`1: Delete all providers`, async () => {\n const response = await Saml2Ops.deleteSaml2Providers({ state });\n expect(response).toMatchSnapshot();\n });\n });\n }\n});\n"],"mappings":"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"}
|