@rockcarver/frodo-lib 0.16.2-8 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +221 -1
- package/cjs/api/AgentApi.js +14 -61
- package/cjs/api/AgentApi.js.map +1 -1
- package/cjs/api/AgentApi.test.js.map +1 -1
- package/cjs/api/ApiTypes.js +0 -5
- package/cjs/api/ApiTypes.js.map +1 -1
- package/cjs/api/AuthenticateApi.js +9 -20
- package/cjs/api/AuthenticateApi.js.map +1 -1
- package/cjs/api/AuthenticateApi.test.js.map +1 -0
- package/cjs/api/BaseApi.js +82 -124
- package/cjs/api/BaseApi.js.map +1 -1
- package/cjs/api/CirclesOfTrustApi.js +8 -32
- package/cjs/api/CirclesOfTrustApi.js.map +1 -1
- package/cjs/api/IdmConfigApi.js +9 -34
- package/cjs/api/IdmConfigApi.js.map +1 -1
- package/cjs/api/LogApi.js +8 -31
- package/cjs/api/LogApi.js.map +1 -1
- package/cjs/api/ManagedObjectApi.js +34 -31
- package/cjs/api/ManagedObjectApi.js.map +1 -1
- package/cjs/api/NodeApi.js +10 -41
- package/cjs/api/NodeApi.js.map +1 -1
- package/cjs/api/NodeApi.test.js.map +1 -1
- package/cjs/api/OAuth2ClientApi.js +7 -26
- package/cjs/api/OAuth2ClientApi.js.map +1 -1
- package/cjs/api/OAuth2OIDCApi.js +28 -34
- package/cjs/api/OAuth2OIDCApi.js.map +1 -1
- package/cjs/api/OAuth2OIDCApi.test.js.map +1 -0
- package/cjs/api/OAuth2ProviderApi.js +5 -15
- package/cjs/api/OAuth2ProviderApi.js.map +1 -1
- package/cjs/api/RealmApi.js +8 -34
- package/cjs/api/RealmApi.js.map +1 -1
- package/cjs/api/Saml2Api.js +32 -118
- package/cjs/api/Saml2Api.js.map +1 -1
- package/cjs/api/ScriptApi.js +8 -30
- package/cjs/api/ScriptApi.js.map +1 -1
- package/cjs/api/SecretsApi.js +14 -64
- package/cjs/api/SecretsApi.js.map +1 -1
- package/cjs/api/SecretsApi.test.js.map +1 -1
- package/cjs/api/ServerInfoApi.js +6 -21
- package/cjs/api/ServerInfoApi.js.map +1 -1
- package/cjs/api/ServiceApi.js +49 -47
- package/cjs/api/ServiceApi.js.map +1 -1
- package/cjs/api/SocialIdentityProvidersApi.js +9 -36
- package/cjs/api/SocialIdentityProvidersApi.js.map +1 -1
- package/cjs/api/StartupApi.js +5 -24
- package/cjs/api/StartupApi.js.map +1 -1
- package/cjs/api/StartupApi.test.js.map +1 -1
- package/cjs/api/TreeApi.js +8 -30
- package/cjs/api/TreeApi.js.map +1 -1
- package/cjs/api/TreeApi.test.js.map +1 -1
- package/cjs/api/VariablesApi.js +9 -37
- package/cjs/api/VariablesApi.js.map +1 -1
- package/cjs/api/VariablesApi.test.js.map +1 -1
- package/cjs/api/utils/ApiUtils.js +47 -57
- package/cjs/api/utils/ApiUtils.js.map +1 -1
- package/cjs/api/utils/ApiUtils.test.js.map +1 -1
- package/cjs/api/utils/Base64.js +6 -15
- package/cjs/api/utils/Base64.js.map +1 -1
- package/cjs/ext/axios-curlirize/curlirize.js +2 -9
- package/cjs/ext/axios-curlirize/curlirize.js.map +1 -1
- package/cjs/ext/axios-curlirize/lib/CurlHelper.js +7 -22
- package/cjs/ext/axios-curlirize/lib/CurlHelper.js.map +1 -1
- package/cjs/index.js +30 -89
- package/cjs/index.js.map +1 -1
- package/cjs/ops/AdminOps.js +27 -165
- package/cjs/ops/AdminOps.js.map +1 -1
- package/cjs/ops/AgentOps.js +3 -160
- package/cjs/ops/AgentOps.js.map +1 -1
- package/cjs/ops/AgentOps.test.js.map +1 -1
- package/cjs/ops/AuthenticateOps.js +265 -226
- package/cjs/ops/AuthenticateOps.js.map +1 -1
- package/cjs/ops/AuthenticateOps.test.js.map +1 -1
- package/cjs/ops/CirclesOfTrustOps.js +13 -91
- package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.js +220 -136
- package/cjs/ops/ConnectionProfileOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.test.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.js +35 -379
- package/cjs/ops/EmailTemplateOps.js.map +1 -1
- package/cjs/ops/EmailTemplateOps.test.js.map +1 -1
- package/cjs/ops/IdmOps.js +52 -426
- package/cjs/ops/IdmOps.js.map +1 -1
- package/cjs/ops/IdmOps.test.js.map +1 -1
- package/cjs/ops/IdpOps.js +11 -94
- package/cjs/ops/IdpOps.js.map +1 -1
- package/cjs/ops/IdpOps.test.js.map +1 -1
- package/cjs/ops/JoseOps.js +81 -0
- package/cjs/ops/JoseOps.js.map +1 -0
- package/cjs/ops/JoseOps.test.js.map +1 -0
- package/cjs/ops/JourneyOps.js +140 -371
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/JourneyOps.test.js.map +1 -1
- package/cjs/ops/LogOps.js +14 -47
- package/cjs/ops/LogOps.js.map +1 -1
- package/cjs/ops/ManagedObjectOps.js +4 -12
- package/cjs/ops/ManagedObjectOps.js.map +1 -1
- package/cjs/ops/NodeOps.js +9 -67
- package/cjs/ops/NodeOps.js.map +1 -1
- package/cjs/ops/OAuth2ClientOps.js +10 -40
- package/cjs/ops/OAuth2ClientOps.js.map +1 -1
- package/cjs/ops/OpsTypes.js +0 -5
- package/cjs/ops/OpsTypes.js.map +1 -1
- package/cjs/ops/OrganizationOps.js +6 -25
- package/cjs/ops/OrganizationOps.js.map +1 -1
- package/cjs/ops/RealmOps.js +0 -19
- package/cjs/ops/RealmOps.js.map +1 -1
- package/cjs/ops/Saml2Ops.js +258 -802
- package/cjs/ops/Saml2Ops.js.map +1 -1
- package/cjs/ops/Saml2Ops.test.js.map +1 -1
- package/cjs/ops/ScriptOps.js +28 -73
- package/cjs/ops/ScriptOps.js.map +1 -1
- package/cjs/ops/SecretsOps.js +2 -58
- package/cjs/ops/SecretsOps.js.map +1 -1
- package/cjs/ops/ServiceAccountOps.js +61 -0
- package/cjs/ops/ServiceAccountOps.js.map +1 -0
- package/cjs/ops/ServiceAccountOps.test.js.map +1 -0
- package/cjs/ops/ServiceOps.js +55 -101
- package/cjs/ops/ServiceOps.js.map +1 -1
- package/cjs/ops/StartupOps.js +2 -23
- package/cjs/ops/StartupOps.js.map +1 -1
- package/cjs/ops/ThemeOps.js +230 -436
- package/cjs/ops/ThemeOps.js.map +1 -1
- package/cjs/ops/ThemeOps.test.js.map +1 -0
- package/cjs/ops/VariablesOps.js +0 -38
- package/cjs/ops/VariablesOps.js.map +1 -1
- package/cjs/ops/utils/Console.js +29 -62
- package/cjs/ops/utils/Console.js.map +1 -1
- package/cjs/ops/utils/DataProtection.js +13 -47
- package/cjs/ops/utils/DataProtection.js.map +1 -1
- package/cjs/ops/utils/DataProtection.test.js.map +1 -1
- package/cjs/ops/utils/ExportImportUtils.js +36 -74
- package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
- package/cjs/ops/utils/ExportImportUtils.test.js.map +1 -1
- package/cjs/ops/utils/OpsUtils.js +27 -43
- package/cjs/ops/utils/OpsUtils.js.map +1 -1
- package/cjs/ops/utils/OpsUtils.test.js.map +1 -1
- package/cjs/ops/utils/ValidationUtils.js +0 -13
- package/cjs/ops/utils/ValidationUtils.js.map +1 -1
- package/cjs/ops/utils/ValidationUtils.test.js.map +1 -1
- package/cjs/ops/utils/Version.js +2 -12
- package/cjs/ops/utils/Version.js.map +1 -1
- package/cjs/ops/utils/Version.test.js.map +1 -1
- package/cjs/ops/utils/Wordwrap.js +1 -2
- package/cjs/ops/utils/Wordwrap.js.map +1 -1
- package/cjs/ops/utils/Wordwrap.test.js.map +1 -0
- package/cjs/shared/State.js +239 -0
- package/cjs/shared/State.js.map +1 -0
- package/cjs/shared/State.test.js.map +1 -0
- package/cjs/storage/StaticStorage.js.map +1 -1
- package/cjs/test/mocks/AuthenticateApi/step/default_steps.json +88 -0
- package/cjs/test/mocks/ForgeRockApiMockEngine.js +184 -80
- package/cjs/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
- package/cjs/test/mocks/IdmConfigApi/getConfigEntity/managed.json +4420 -0
- package/cjs/test/mocks/OAuth2OIDCApi/accessToken/body.json +6 -0
- package/cjs/test/mocks/OAuth2OIDCApi/accessToken/headers.json +19 -0
- package/cjs/test/mocks/OAuth2OIDCApi/authorize/headers.json +38 -0
- package/cjs/test/mocks/Saml2Api/findSaml2Providers/https:sts.windows.net711ffa9c-5972-4713-ace3-688c9732614a_stub.json +18 -0
- package/cjs/test/mocks/Saml2Api/findSaml2Providers/iSPAzure_stub.json +18 -0
- package/cjs/test/mocks/Saml2Api/getProvider/aVNQQXp1cmU.json +1 -2
- package/cjs/test/mocks/Saml2Api/getProvider/dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.json +1 -3
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/U1BBenVyZQ.json +147 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQQXp1cmU.json +182 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQQnJvYWRjb20.json +149 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQRmVkbGV0.json +141 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aVNQQXp1cmU.json +1 -2
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/dm9sa2VyRGV2U1A.json +118 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aHR0cHM6Ly9zYW1sLm15dGVzdHJ1bi5jb20vc3A.json +66 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzExZmZhOWMtNTk3Mi00NzEzLWFjZTMtNjg4Yzk3MzI2MTRhLw.json +35 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aWRw.json +83 -0
- package/cjs/test/mocks/Saml2Api/getProviderByLocationAndId/remote/dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.json +1 -3
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/SPAzure.xml +74 -0
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPAzure.xml +78 -0
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPBroadcom.xml +78 -0
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPFedlet.xml +78 -0
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fsaml.mytestrun.com%2Fsp.xml +13 -0
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/{dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.xml → https%3A%2F%2Fsts.windows.net%2F711ffa9c-5972-4713-ace3-688c9732614a%2F.xml} +0 -0
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/{aVNQQXp1cmU.xml → iSPAzure.xml} +0 -0
- package/cjs/test/mocks/Saml2Api/getProviderMetadata/alpha/urn%3Afederation%3AMicrosoftOnline.xml +84 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/SPAzure.saml.json +243 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/iSPAzure.saml.json +242 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPAzure.saml.json +454 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPBroadcom.saml.json +586 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPFedlet.saml.json +241 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/idp.saml.json +185 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/saml.mytestrun.comsp.saml.json +101 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/sts.windows.net711ffa9c-5972-4713-ace3-688c9732614a.saml.json +113 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/urn:federation:MicrosoftOnline.saml.json +199 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Provider/volkerDevSP.saml.json +212 -0
- package/cjs/test/mocks/Saml2Ops/importSaml2Providers/allAlphaProviders.saml.json +2414 -0
- package/cjs/test/mocks/ScriptApi/getScript/5b29c5b7-b161-4a42-a41f-d6c85316b951.json +13 -0
- package/cjs/test/mocks/ScriptApi/getScript/85523e71-2d77-4577-b078-6f9674cc54e2.json +13 -0
- package/cjs/test/mocks/ScriptApi/getScript/90c4eca5-05f0-42f5-b9bf-88b693eabbbd.json +13 -0
- package/cjs/test/mocks/ServerInfoApi/getServerInfo/info.json +25 -0
- package/cjs/test/mocks/ServerInfoApi/getServerVersionInfo/version.json +8 -0
- package/cjs/utils/AutoSetupPolly.js +79 -0
- package/cjs/utils/AutoSetupPolly.js.map +1 -0
- package/cjs/utils/SetupJest.js +6 -0
- package/cjs/utils/SetupJest.js.map +1 -0
- package/cjs/{test/mocks → utils}/snapshotResolve.js +10 -12
- package/cjs/utils/snapshotResolve.js.map +1 -0
- package/esm/api/AgentApi.mjs +19 -21
- package/esm/api/AgentApi.test.mjs +6 -15
- package/esm/api/ApiTypes.mjs +0 -5
- package/esm/api/AuthenticateApi.mjs +7 -10
- package/esm/api/AuthenticateApi.test.mjs +39 -0
- package/esm/api/BaseApi.mjs +96 -81
- package/esm/api/CirclesOfTrustApi.mjs +9 -12
- package/esm/api/IdmConfigApi.mjs +11 -12
- package/esm/api/LogApi.mjs +6 -10
- package/esm/api/ManagedObjectApi.mjs +23 -8
- package/esm/api/NodeApi.mjs +13 -15
- package/esm/api/NodeApi.test.mjs +13 -17
- package/esm/api/OAuth2ClientApi.mjs +7 -9
- package/esm/api/OAuth2OIDCApi.mjs +15 -9
- package/esm/api/OAuth2OIDCApi.test.mjs +53 -0
- package/esm/api/OAuth2ProviderApi.mjs +3 -5
- package/esm/api/RealmApi.mjs +10 -13
- package/esm/api/Saml2Api.mjs +31 -61
- package/esm/api/ScriptApi.mjs +9 -11
- package/esm/api/SecretsApi.mjs +21 -24
- package/esm/api/SecretsApi.test.mjs +9 -31
- package/esm/api/ServerInfoApi.mjs +5 -9
- package/esm/api/ServiceApi.mjs +53 -26
- package/esm/api/SocialIdentityProvidersApi.mjs +11 -13
- package/esm/api/StartupApi.mjs +5 -10
- package/esm/api/StartupApi.test.mjs +4 -7
- package/esm/api/TreeApi.mjs +9 -11
- package/esm/api/TreeApi.test.mjs +24 -61
- package/esm/api/VariablesApi.mjs +11 -13
- package/esm/api/VariablesApi.test.mjs +80 -222
- package/esm/api/utils/ApiUtils.mjs +45 -48
- package/esm/api/utils/ApiUtils.test.mjs +33 -32
- package/esm/api/utils/Base64.mjs +6 -9
- package/esm/ext/axios-curlirize/curlirize.mjs +2 -7
- package/esm/ext/axios-curlirize/lib/CurlHelper.mjs +7 -20
- package/esm/index.mjs +23 -13
- package/esm/ops/AdminOps.mjs +33 -119
- package/esm/ops/AgentOps.mjs +38 -81
- package/esm/ops/AgentOps.test.mjs +5 -45
- package/esm/ops/AuthenticateOps.mjs +241 -175
- package/esm/ops/AuthenticateOps.test.mjs +7 -9
- package/esm/ops/CirclesOfTrustOps.mjs +24 -61
- package/esm/ops/ConnectionProfileOps.mjs +192 -82
- package/esm/ops/ConnectionProfileOps.test.mjs +19 -19
- package/esm/ops/EmailTemplateOps.mjs +18 -276
- package/esm/ops/EmailTemplateOps.test.mjs +19 -44
- package/esm/ops/IdmOps.mjs +30 -327
- package/esm/ops/IdmOps.test.mjs +47 -54
- package/esm/ops/IdpOps.mjs +21 -59
- package/esm/ops/IdpOps.test.mjs +5 -5
- package/esm/ops/JoseOps.mjs +41 -0
- package/esm/ops/JoseOps.test.mjs +137 -0
- package/esm/ops/JourneyOps.mjs +147 -290
- package/esm/ops/JourneyOps.test.mjs +30 -28
- package/esm/ops/LogOps.mjs +15 -25
- package/esm/ops/ManagedObjectOps.mjs +6 -6
- package/esm/ops/NodeOps.mjs +9 -47
- package/esm/ops/OAuth2ClientOps.mjs +13 -19
- package/esm/ops/OpsTypes.mjs +1 -3
- package/esm/ops/OrganizationOps.mjs +7 -14
- package/esm/ops/RealmOps.mjs +4 -7
- package/esm/ops/Saml2Ops.mjs +199 -587
- package/esm/ops/Saml2Ops.test.mjs +303 -84
- package/esm/ops/ScriptOps.mjs +31 -47
- package/esm/ops/SecretsOps.mjs +15 -31
- package/esm/ops/ServiceAccountOps.mjs +41 -0
- package/esm/ops/ServiceAccountOps.test.mjs +51 -0
- package/esm/ops/ServiceOps.mjs +66 -83
- package/esm/ops/StartupOps.mjs +4 -13
- package/esm/ops/ThemeOps.mjs +189 -298
- package/esm/{api/ThemeApi.test.mjs → ops/ThemeOps.test.mjs} +91 -96
- package/esm/ops/VariablesOps.mjs +9 -18
- package/esm/ops/utils/Console.mjs +28 -46
- package/esm/ops/utils/DataProtection.mjs +15 -28
- package/esm/ops/utils/DataProtection.test.mjs +8 -8
- package/esm/ops/utils/ExportImportUtils.mjs +34 -43
- package/esm/ops/utils/ExportImportUtils.test.mjs +20 -18
- package/esm/ops/utils/OpsUtils.mjs +27 -21
- package/esm/ops/utils/OpsUtils.test.mjs +155 -27
- package/esm/ops/utils/ValidationUtils.mjs +0 -9
- package/esm/ops/utils/Version.mjs +2 -3
- package/esm/ops/utils/Version.test.mjs +0 -2
- package/esm/ops/utils/Wordwrap.mjs +1 -1
- package/esm/ops/utils/Wordwrap.test.mjs +19 -0
- package/esm/shared/State.mjs +164 -0
- package/esm/shared/State.test.mjs +249 -0
- package/esm/test/mocks/AuthenticateApi/step/default_steps.json +88 -0
- package/esm/test/mocks/ForgeRockApiMockEngine.mjs +169 -33
- package/esm/test/mocks/IdmConfigApi/getConfigEntity/managed.json +4420 -0
- package/esm/test/mocks/OAuth2OIDCApi/accessToken/body.json +6 -0
- package/esm/test/mocks/OAuth2OIDCApi/accessToken/headers.json +19 -0
- package/esm/test/mocks/OAuth2OIDCApi/authorize/headers.json +38 -0
- package/esm/test/mocks/Saml2Api/findSaml2Providers/https:sts.windows.net711ffa9c-5972-4713-ace3-688c9732614a_stub.json +18 -0
- package/esm/test/mocks/Saml2Api/findSaml2Providers/iSPAzure_stub.json +18 -0
- package/esm/test/mocks/Saml2Api/getProvider/aVNQQXp1cmU.json +1 -2
- package/esm/test/mocks/Saml2Api/getProvider/dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.json +1 -3
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/U1BBenVyZQ.json +147 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQQXp1cmU.json +182 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQQnJvYWRjb20.json +149 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aHR0cHM6Ly9pZGMuc2NoZXViZXIuaW8vYW0vc2FtbDIvSURQRmVkbGV0.json +141 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/aVNQQXp1cmU.json +1 -2
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/hosted/dm9sa2VyRGV2U1A.json +118 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aHR0cHM6Ly9zYW1sLm15dGVzdHJ1bi5jb20vc3A.json +66 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNzExZmZhOWMtNTk3Mi00NzEzLWFjZTMtNjg4Yzk3MzI2MTRhLw.json +35 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/remote/aWRw.json +83 -0
- package/esm/test/mocks/Saml2Api/getProviderByLocationAndId/remote/dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.json +1 -3
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/SPAzure.xml +74 -0
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPAzure.xml +78 -0
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPBroadcom.xml +78 -0
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fidc.scheuber.io%2Fam%2Fsaml2%2FIDPFedlet.xml +78 -0
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/https%3A%2F%2Fsaml.mytestrun.com%2Fsp.xml +13 -0
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/{dXJuOmZlZGVyYXRpb246TWljcm9zb2Z0T25saW5l.xml → https%3A%2F%2Fsts.windows.net%2F711ffa9c-5972-4713-ace3-688c9732614a%2F.xml} +0 -0
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/{aVNQQXp1cmU.xml → iSPAzure.xml} +0 -0
- package/esm/test/mocks/Saml2Api/getProviderMetadata/alpha/urn%3Afederation%3AMicrosoftOnline.xml +84 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/SPAzure.saml.json +243 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/iSPAzure.saml.json +242 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPAzure.saml.json +454 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPBroadcom.saml.json +586 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/idc.scheuber.ioamsaml2IDPFedlet.saml.json +241 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/idp.saml.json +185 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/saml.mytestrun.comsp.saml.json +101 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/sts.windows.net711ffa9c-5972-4713-ace3-688c9732614a.saml.json +113 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/urn:federation:MicrosoftOnline.saml.json +199 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Provider/volkerDevSP.saml.json +212 -0
- package/esm/test/mocks/Saml2Ops/importSaml2Providers/allAlphaProviders.saml.json +2414 -0
- package/esm/test/mocks/ScriptApi/getScript/5b29c5b7-b161-4a42-a41f-d6c85316b951.json +13 -0
- package/esm/test/mocks/ScriptApi/getScript/85523e71-2d77-4577-b078-6f9674cc54e2.json +13 -0
- package/esm/test/mocks/ScriptApi/getScript/90c4eca5-05f0-42f5-b9bf-88b693eabbbd.json +13 -0
- package/esm/test/mocks/ServerInfoApi/getServerInfo/info.json +25 -0
- package/esm/test/mocks/ServerInfoApi/getServerVersionInfo/version.json +8 -0
- package/esm/utils/AutoSetupPolly.mjs +72 -0
- package/esm/utils/SetupJest.mjs +3 -0
- package/esm/{test/mocks → utils}/snapshotResolve.mjs +10 -12
- package/package.json +38 -27
- package/types/api/AgentApi.d.ts.map +1 -1
- package/types/api/ApiTypes.d.ts +19 -15
- package/types/api/ApiTypes.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 +2 -0
- package/types/api/BaseApi.d.ts.map +1 -1
- package/types/api/CirclesOfTrustApi.d.ts.map +1 -1
- package/types/api/IdmConfigApi.d.ts.map +1 -1
- package/types/api/LogApi.d.ts.map +1 -1
- package/types/api/ManagedObjectApi.d.ts +9 -1
- package/types/api/ManagedObjectApi.d.ts.map +1 -1
- package/types/api/NodeApi.d.ts.map +1 -1
- package/types/api/OAuth2ClientApi.d.ts.map +1 -1
- package/types/api/OAuth2OIDCApi.d.ts +4 -2
- package/types/api/OAuth2OIDCApi.d.ts.map +1 -1
- package/types/api/OAuth2ProviderApi.d.ts.map +1 -1
- package/types/api/RealmApi.d.ts.map +1 -1
- package/types/api/Saml2Api.d.ts +7 -13
- package/types/api/Saml2Api.d.ts.map +1 -1
- package/types/api/ScriptApi.d.ts.map +1 -1
- package/types/api/SecretsApi.d.ts.map +1 -1
- package/types/api/ServerInfoApi.d.ts.map +1 -1
- package/types/api/ServiceApi.d.ts +14 -7
- package/types/api/ServiceApi.d.ts.map +1 -1
- package/types/api/SocialIdentityProvidersApi.d.ts.map +1 -1
- package/types/api/StartupApi.d.ts.map +1 -1
- package/types/api/TreeApi.d.ts.map +1 -1
- package/types/api/VariablesApi.d.ts.map +1 -1
- package/types/api/utils/ApiUtils.d.ts +1 -0
- package/types/api/utils/ApiUtils.d.ts.map +1 -1
- package/types/api/utils/Base64.d.ts +1 -0
- package/types/api/utils/Base64.d.ts.map +1 -1
- package/types/index.d.ts +11 -5
- package/types/index.d.ts.map +1 -1
- package/types/ops/AgentOps.d.ts +1 -1
- package/types/ops/AgentOps.d.ts.map +1 -1
- package/types/ops/AuthenticateOps.d.ts +10 -2
- package/types/ops/AuthenticateOps.d.ts.map +1 -1
- package/types/ops/ConnectionProfileOps.d.ts +49 -21
- package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
- package/types/ops/EmailTemplateOps.d.ts +14 -33
- package/types/ops/EmailTemplateOps.d.ts.map +1 -1
- package/types/ops/IdmOps.d.ts +29 -37
- package/types/ops/IdmOps.d.ts.map +1 -1
- package/types/ops/JoseOps.d.ts +33 -0
- package/types/ops/JoseOps.d.ts.map +1 -0
- package/types/ops/JourneyOps.d.ts.map +1 -1
- package/types/ops/LogOps.d.ts.map +1 -1
- package/types/ops/NodeOps.d.ts.map +1 -1
- package/types/ops/OAuth2ClientOps.d.ts.map +1 -1
- package/types/ops/OpsTypes.d.ts +17 -1
- package/types/ops/OpsTypes.d.ts.map +1 -1
- package/types/ops/OrganizationOps.d.ts.map +1 -1
- package/types/ops/Saml2Ops.d.ts +52 -55
- package/types/ops/Saml2Ops.d.ts.map +1 -1
- package/types/ops/ScriptOps.d.ts.map +1 -1
- package/types/ops/ServiceAccountOps.d.ts +20 -0
- package/types/ops/ServiceAccountOps.d.ts.map +1 -0
- package/types/ops/ServiceOps.d.ts +18 -10
- package/types/ops/ServiceOps.d.ts.map +1 -1
- package/types/ops/ThemeOps.d.ts +35 -50
- package/types/ops/ThemeOps.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.map +1 -1
- package/types/ops/utils/ExportImportUtils.d.ts +5 -2
- package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
- package/types/ops/utils/OpsUtils.d.ts +6 -0
- package/types/ops/utils/OpsUtils.d.ts.map +1 -1
- package/types/ops/utils/Wordwrap.d.ts.map +1 -1
- package/types/shared/State.d.ts +223 -0
- package/types/shared/State.d.ts.map +1 -0
- package/types/test/mocks/ForgeRockApiMockEngine.d.ts +21 -1
- package/types/test/mocks/ForgeRockApiMockEngine.d.ts.map +1 -1
- package/types/utils/AutoSetupPolly.d.ts +1 -0
- package/types/utils/AutoSetupPolly.d.ts.map +1 -0
- package/types/utils/SetupJest.d.ts +1 -0
- package/types/utils/SetupJest.d.ts.map +1 -0
- package/types/utils/snapshotResolve.d.ts +1 -0
- package/types/utils/snapshotResolve.d.ts.map +1 -0
- package/cjs/api/EmailTemplateApi.js +0 -73
- package/cjs/api/EmailTemplateApi.js.map +0 -1
- package/cjs/api/ThemeApi.js +0 -367
- package/cjs/api/ThemeApi.js.map +0 -1
- package/cjs/api/ThemeApi.test.js.map +0 -1
- package/cjs/storage/SessionStorage.js +0 -91
- package/cjs/storage/SessionStorage.js.map +0 -1
- package/cjs/test/mocks/snapshotResolve.js.map +0 -1
- package/esm/api/EmailTemplateApi.mjs +0 -34
- package/esm/api/ThemeApi.mjs +0 -271
- package/esm/storage/SessionStorage.mjs +0 -79
- package/types/api/EmailTemplateApi.d.ts +0 -22
- package/types/api/EmailTemplateApi.d.ts.map +0 -1
- package/types/api/ThemeApi.d.ts +0 -56
- package/types/api/ThemeApi.d.ts.map +0 -1
- package/types/storage/SessionStorage.d.ts +0 -71
- package/types/storage/SessionStorage.d.ts.map +0 -1
- package/types/test/mocks/snapshotResolve.d.ts +0 -1
- package/types/test/mocks/snapshotResolve.d.ts.map +0 -1
|
@@ -1,92 +1,326 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import MockAdapter from 'axios-mock-adapter';
|
|
3
3
|
import { Saml2, state } from '../index';
|
|
4
|
-
import * as
|
|
5
|
-
import {
|
|
4
|
+
import * as globalConfig from '../storage/StaticStorage';
|
|
5
|
+
import { Saml2ProiderLocation } from '../api/ApiTypes';
|
|
6
|
+
import { mockGetSaml2Providers, mockFindSaml2Providers, mockGetSaml2ProviderByLocationAndId, mockGetSaml2ProviderMetadata, mockGetScript, mockPutScript, getSaml2ProviderImportData, getSaml2ProvidersImportData } from '../test/mocks/ForgeRockApiMockEngine';
|
|
7
|
+
import { encodeBase64Url } from '../api/utils/Base64';
|
|
8
|
+
import { isEqualJson } from './utils/OpsUtils';
|
|
9
|
+
import { mockCreateSaml2Provider } from '../test/mocks/ForgeRockApiMockEngine';
|
|
10
|
+
import { convertTextArrayToBase64Url } from './utils/ExportImportUtils';
|
|
6
11
|
const mock = new MockAdapter(axios);
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
state.
|
|
11
|
-
state.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
const outputHandler = message => {
|
|
13
|
+
console.log(message);
|
|
14
|
+
};
|
|
15
|
+
state.setHost('https://openam-volker-dev.forgeblocks.com/am');
|
|
16
|
+
state.setRealm('alpha');
|
|
17
|
+
state.setCookieName('cookieName');
|
|
18
|
+
state.setCookieValue('cookieValue');
|
|
19
|
+
state.setDeploymentType(globalConfig.CLOUD_DEPLOYMENT_TYPE_KEY);
|
|
20
|
+
state.setDebug(true);
|
|
21
|
+
state.setDebugHandler(outputHandler);
|
|
22
|
+
state.setPrintHandler(outputHandler);
|
|
23
|
+
describe('Saml2Ops - createSaml2ExportTemplate()', () => {
|
|
24
|
+
test('createSaml2ExportTemplate() 0: Method is implemented', async () => {
|
|
25
|
+
expect(Saml2.createSaml2ExportTemplate).toBeDefined();
|
|
26
|
+
});
|
|
27
|
+
test('createSaml2ExportTemplate() 1: Create saml2 export template', async () => {
|
|
28
|
+
const saml2Export = {
|
|
29
|
+
script: {},
|
|
30
|
+
saml: {
|
|
31
|
+
hosted: {},
|
|
32
|
+
remote: {},
|
|
33
|
+
metadata: {}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const response = Saml2.createSaml2ExportTemplate();
|
|
37
|
+
expect(isEqualJson(response, saml2Export, ['meta'])).toBeTruthy();
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
describe('Saml2Ops - getSaml2ProviderStubs()', () => {
|
|
41
|
+
test('getSaml2ProviderStubs() 0: Method is implemented', async () => {
|
|
42
|
+
expect(Saml2.getSaml2ProviderStubs).toBeDefined();
|
|
43
|
+
});
|
|
44
|
+
test('getSaml2ProviderStubs() 1: Get saml2 entity provider stubs', async () => {
|
|
18
45
|
mockGetSaml2Providers(mock);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
expect(
|
|
46
|
+
const providers = await Saml2.getSaml2ProviderStubs();
|
|
47
|
+
expect(providers).toBeTruthy();
|
|
48
|
+
expect(providers.length).toBe(8);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
describe('Saml2Ops - getProviderByLocationAndId()', () => {
|
|
52
|
+
test('getProviderByLocationAndId() 0: Method is implemented', async () => {
|
|
53
|
+
expect(Saml2.getProviderByLocationAndId).toBeDefined();
|
|
54
|
+
});
|
|
55
|
+
test('getProviderByLocationAndId() 1: Get hosted provider "iSPAzure"', async () => {
|
|
56
|
+
const location = Saml2ProiderLocation.HOSTED;
|
|
57
|
+
const entityId = 'iSPAzure';
|
|
58
|
+
const entityId64 = encodeBase64Url(entityId);
|
|
59
|
+
mockGetSaml2ProviderByLocationAndId(mock);
|
|
60
|
+
const provider = await Saml2.getProviderByLocationAndId(location, entityId64);
|
|
61
|
+
expect(provider).toBeTruthy();
|
|
62
|
+
expect(provider._id).toBe(entityId64);
|
|
63
|
+
expect(provider.entityId).toBe(entityId);
|
|
64
|
+
expect(provider.entityLocation).toBeFalsy();
|
|
65
|
+
expect(provider.roles).toBeFalsy();
|
|
66
|
+
});
|
|
67
|
+
test('getProviderByLocationAndId() 2: Get remote provider "urn:federation:MicrosoftOnline"', async () => {
|
|
68
|
+
const location = Saml2ProiderLocation.REMOTE;
|
|
69
|
+
const entityId = 'urn:federation:MicrosoftOnline';
|
|
70
|
+
const entityId64 = encodeBase64Url(entityId);
|
|
71
|
+
mockGetSaml2ProviderByLocationAndId(mock);
|
|
72
|
+
const provider = await Saml2.getProviderByLocationAndId(location, entityId64);
|
|
73
|
+
expect(provider).toBeTruthy();
|
|
74
|
+
expect(provider._id).toBe(entityId64);
|
|
75
|
+
expect(provider.entityId).toBe(entityId);
|
|
76
|
+
expect(provider.entityLocation).toBeFalsy();
|
|
77
|
+
expect(provider.roles).toBeFalsy();
|
|
22
78
|
});
|
|
23
79
|
});
|
|
24
|
-
describe('Saml2Ops -
|
|
25
|
-
test('
|
|
26
|
-
expect(Saml2.
|
|
80
|
+
describe('Saml2Ops - getProviderMetadataUrl()', () => {
|
|
81
|
+
test('getProviderMetadataUrl() 0: Method is implemented', async () => {
|
|
82
|
+
expect(Saml2.getProviderMetadataUrl).toBeDefined();
|
|
83
|
+
});
|
|
84
|
+
test('getProviderMetadataUrl() 1: Get metadata url for hosted entity provider "idp"', async () => {
|
|
85
|
+
const entityId = 'idp';
|
|
86
|
+
const metadataUrl = 'https://openam-volker-dev.forgeblocks.com/am/saml2/jsp/exportmetadata.jsp?entityid=idp&realm=alpha';
|
|
87
|
+
const result = Saml2.getProviderMetadataUrl(entityId);
|
|
88
|
+
expect(result).toBe(metadataUrl);
|
|
89
|
+
});
|
|
90
|
+
test('getProviderMetadataUrl() 2: Get metadata url for hosted entity provider "https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/"', async () => {
|
|
91
|
+
const entityId = 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/';
|
|
92
|
+
const metadataUrl = 'https://openam-volker-dev.forgeblocks.com/am/saml2/jsp/exportmetadata.jsp?entityid=https%3A%2F%2Fsts.windows.net%2F711ffa9c-5972-4713-ace3-688c9732614a%2F&realm=alpha';
|
|
93
|
+
const result = Saml2.getProviderMetadataUrl(entityId);
|
|
94
|
+
expect(result).toBe(metadataUrl);
|
|
27
95
|
});
|
|
28
96
|
});
|
|
29
|
-
describe('Saml2Ops -
|
|
30
|
-
test('
|
|
31
|
-
expect(Saml2.
|
|
97
|
+
describe('Saml2Ops - getProviderMetadata()', () => {
|
|
98
|
+
test('getProviderMetadata() 0: Method is implemented', async () => {
|
|
99
|
+
expect(Saml2.getProviderMetadata).toBeDefined();
|
|
32
100
|
});
|
|
33
|
-
test('
|
|
101
|
+
test('getProviderMetadata() 1: Get metadata for hosted provider "iSPAzure"', async () => {
|
|
102
|
+
const entityId = 'iSPAzure';
|
|
103
|
+
const metaSub = '<EntityDescriptor entityID="iSPAzure" xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:query="urn:oasis:names:tc:SAML:metadata:ext:query" xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:xenc11="http://www.w3.org/2009/xmlenc11#" xmlns:alg="urn:oasis:names:tc:SAML:metadata:algsupport" xmlns:x509qry="urn:oasis:names:tc:SAML:metadata:X509:query" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">';
|
|
34
104
|
mockGetSaml2ProviderMetadata(mock);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
expect(
|
|
105
|
+
const metadata = await Saml2.getProviderMetadata(entityId);
|
|
106
|
+
expect(metadata).toBeTruthy();
|
|
107
|
+
expect(metadata.indexOf(metaSub)).toBeTruthy();
|
|
38
108
|
});
|
|
39
|
-
test('
|
|
109
|
+
test('getProviderMetadata() 2: Get metadata for hosted provider "https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/"', async () => {
|
|
110
|
+
const entityId = 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/';
|
|
111
|
+
const metaSub = '<EntityDescriptor entityID="https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/" ID="_e5f839b8-1482-40ae-9261-b6eb35465a16" xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:query="urn:oasis:names:tc:SAML:metadata:ext:query" xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:xenc11="http://www.w3.org/2009/xmlenc11#" xmlns:alg="urn:oasis:names:tc:SAML:metadata:algsupport" xmlns:x509qry="urn:oasis:names:tc:SAML:metadata:X509:query" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">';
|
|
40
112
|
mockGetSaml2ProviderMetadata(mock);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
expect(
|
|
113
|
+
const metadata = await Saml2.getProviderMetadata(entityId);
|
|
114
|
+
expect(metadata).toBeTruthy();
|
|
115
|
+
expect(metadata.indexOf(metaSub)).toBeTruthy();
|
|
44
116
|
});
|
|
45
117
|
});
|
|
46
|
-
describe('Saml2Ops -
|
|
47
|
-
test('
|
|
48
|
-
expect(Saml2.
|
|
118
|
+
describe('Saml2Ops - getSaml2ProviderStub()', () => {
|
|
119
|
+
test('getSaml2ProviderStub() 0: Method is implemented', async () => {
|
|
120
|
+
expect(Saml2.getSaml2ProviderStub).toBeDefined();
|
|
49
121
|
});
|
|
50
|
-
test('
|
|
122
|
+
test('getSaml2ProviderStub() 1: Get stub of hosted provider "iSPAzure"', async () => {
|
|
123
|
+
const location = Saml2ProiderLocation.HOSTED;
|
|
124
|
+
const entityId = 'iSPAzure';
|
|
125
|
+
const entityId64 = encodeBase64Url(entityId);
|
|
51
126
|
mockFindSaml2Providers(mock);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
expect.
|
|
55
|
-
|
|
56
|
-
expect(
|
|
127
|
+
const stub = await Saml2.getSaml2ProviderStub(entityId);
|
|
128
|
+
expect(stub).toBeTruthy();
|
|
129
|
+
expect(stub._id).toBe(entityId64);
|
|
130
|
+
expect(stub.entityId).toBe(entityId);
|
|
131
|
+
expect(stub.location).toBe(location);
|
|
132
|
+
expect(stub.roles).toBeTruthy();
|
|
57
133
|
});
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
134
|
+
test('getSaml2ProviderStub() 2: Get stub of remote provider "https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/"', async () => {
|
|
135
|
+
const location = Saml2ProiderLocation.REMOTE;
|
|
136
|
+
const entityId = 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/';
|
|
137
|
+
const entityId64 = encodeBase64Url(entityId);
|
|
138
|
+
mockFindSaml2Providers(mock);
|
|
139
|
+
const stub = await Saml2.getSaml2ProviderStub(entityId);
|
|
140
|
+
expect(stub).toBeTruthy();
|
|
141
|
+
expect(stub._id).toBe(entityId64);
|
|
142
|
+
expect(stub.entityId).toBe(entityId);
|
|
143
|
+
expect(stub.location).toBe(location);
|
|
144
|
+
expect(stub.roles).toBeTruthy();
|
|
62
145
|
});
|
|
63
146
|
});
|
|
64
|
-
describe('Saml2Ops -
|
|
65
|
-
test('
|
|
66
|
-
expect(Saml2.
|
|
147
|
+
describe('Saml2Ops - getSaml2Provider()', () => {
|
|
148
|
+
test('getSaml2Provider() 0: Method is implemented', async () => {
|
|
149
|
+
expect(Saml2.getSaml2Provider).toBeDefined();
|
|
150
|
+
});
|
|
151
|
+
test('getSaml2Provider() 1: Get hosted provider "iSPAzure"', async () => {
|
|
152
|
+
const entityId = 'iSPAzure';
|
|
153
|
+
const entityId64 = encodeBase64Url(entityId);
|
|
154
|
+
mockFindSaml2Providers(mock);
|
|
155
|
+
mockGetSaml2ProviderByLocationAndId(mock);
|
|
156
|
+
const provider = await Saml2.getSaml2Provider(entityId);
|
|
157
|
+
expect(provider).toBeTruthy();
|
|
158
|
+
expect(provider._id).toBe(entityId64);
|
|
159
|
+
expect(provider.entityId).toBe(entityId);
|
|
160
|
+
expect(provider.entityLocation).toBeFalsy();
|
|
161
|
+
expect(provider.location).toBeFalsy();
|
|
162
|
+
expect(provider.roles).toBeFalsy();
|
|
163
|
+
});
|
|
164
|
+
test('getSaml2Provider() 2: Get remote provider "https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/"', async () => {
|
|
165
|
+
const entityId = 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/';
|
|
166
|
+
const entityId64 = encodeBase64Url(entityId);
|
|
167
|
+
mockFindSaml2Providers(mock);
|
|
168
|
+
mockGetSaml2ProviderByLocationAndId(mock);
|
|
169
|
+
const provider = await Saml2.getSaml2Provider(entityId);
|
|
170
|
+
expect(provider).toBeTruthy();
|
|
171
|
+
expect(provider._id).toBe(entityId64);
|
|
172
|
+
expect(provider.entityId).toBe(entityId);
|
|
173
|
+
expect(provider.entityLocation).toBeFalsy();
|
|
174
|
+
expect(provider.location).toBeFalsy();
|
|
175
|
+
expect(provider.roles).toBeFalsy();
|
|
67
176
|
});
|
|
68
177
|
});
|
|
69
|
-
describe('Saml2Ops -
|
|
70
|
-
test('
|
|
71
|
-
expect(Saml2.
|
|
178
|
+
describe('Saml2Ops - exportSaml2Provider()', () => {
|
|
179
|
+
test('exportSaml2Provider() 0: Method is implemented', async () => {
|
|
180
|
+
expect(Saml2.exportSaml2Provider).toBeDefined();
|
|
181
|
+
});
|
|
182
|
+
test('exportSaml2Provider() 1: Export hosted provider "iSPAzure"', async () => {
|
|
183
|
+
const location = Saml2ProiderLocation.HOSTED;
|
|
184
|
+
const entityId = 'iSPAzure';
|
|
185
|
+
const entityId64 = encodeBase64Url(entityId);
|
|
186
|
+
mockFindSaml2Providers(mock);
|
|
187
|
+
mockGetSaml2ProviderByLocationAndId(mock);
|
|
188
|
+
mockGetSaml2ProviderMetadata(mock);
|
|
189
|
+
mockGetScript(mock);
|
|
190
|
+
const exportData = await Saml2.exportSaml2Provider(entityId);
|
|
191
|
+
expect(isEqualJson(exportData, Saml2.createSaml2ExportTemplate(), ['meta', 'script', 'hosted', 'remote', 'metadata'])).toBeTruthy();
|
|
192
|
+
expect(exportData.saml[location][entityId64]).toBeTruthy();
|
|
193
|
+
expect(exportData.saml.metadata[entityId64]).toBeTruthy();
|
|
194
|
+
expect(Object.keys(exportData.script).length).toBe(0);
|
|
195
|
+
});
|
|
196
|
+
test('exportSaml2Provider() 2: Export remote provider "https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/"', async () => {
|
|
197
|
+
const location = Saml2ProiderLocation.REMOTE;
|
|
198
|
+
const entityId = 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/';
|
|
199
|
+
const entityId64 = encodeBase64Url(entityId);
|
|
200
|
+
mockFindSaml2Providers(mock);
|
|
201
|
+
mockGetSaml2ProviderByLocationAndId(mock);
|
|
202
|
+
mockGetSaml2ProviderMetadata(mock);
|
|
203
|
+
mockGetScript(mock);
|
|
204
|
+
const exportData = await Saml2.exportSaml2Provider(entityId);
|
|
205
|
+
expect(isEqualJson(exportData, Saml2.createSaml2ExportTemplate(), ['meta', 'script', 'hosted', 'remote', 'metadata'])).toBeTruthy();
|
|
206
|
+
expect(exportData.saml[location][entityId64]).toBeTruthy();
|
|
207
|
+
expect(exportData.saml.metadata[entityId64]).toBeTruthy();
|
|
208
|
+
expect(Object.keys(exportData.script).length).toBe(0);
|
|
72
209
|
});
|
|
73
210
|
});
|
|
74
|
-
describe('Saml2Ops -
|
|
75
|
-
test('
|
|
76
|
-
expect(Saml2.
|
|
211
|
+
describe('Saml2Ops - exportSaml2Providers()', () => {
|
|
212
|
+
test('exportSaml2Providers() 0: Method is implemented', async () => {
|
|
213
|
+
expect(Saml2.exportSaml2Providers).toBeDefined();
|
|
214
|
+
});
|
|
215
|
+
test('exportSaml2Providers() 1: Export saml2 entity providers', async () => {
|
|
216
|
+
mockGetSaml2Providers(mock);
|
|
217
|
+
mockGetSaml2ProviderByLocationAndId(mock);
|
|
218
|
+
mockGetSaml2ProviderMetadata(mock);
|
|
219
|
+
mockGetScript(mock);
|
|
220
|
+
const exportData = await Saml2.exportSaml2Providers();
|
|
221
|
+
expect(isEqualJson(exportData, Saml2.createSaml2ExportTemplate(), ['meta', 'script', 'hosted', 'remote', 'metadata'])).toBeTruthy();
|
|
222
|
+
expect(Object.entries(exportData.saml.hosted).length).toBe(5);
|
|
223
|
+
expect(Object.entries(exportData.saml.remote).length).toBe(3);
|
|
224
|
+
expect(Object.entries(exportData.saml.metadata).length).toBe(8);
|
|
225
|
+
expect(Object.keys(exportData.script).length).toBe(3);
|
|
77
226
|
});
|
|
78
227
|
});
|
|
79
|
-
describe('Saml2Ops -
|
|
80
|
-
test('
|
|
81
|
-
expect(Saml2.
|
|
228
|
+
describe('Saml2Ops - importSaml2Provider()', () => {
|
|
229
|
+
test('importSaml2Provider() 0: Method is implemented', async () => {
|
|
230
|
+
expect(Saml2.importSaml2Provider).toBeDefined();
|
|
231
|
+
});
|
|
232
|
+
test('importSaml2Provider() 1: Import hosted provider "https://idc.scheuber.io/am/saml2/IDPAzure"', async () => {
|
|
233
|
+
const entityLocation = Saml2ProiderLocation.HOSTED;
|
|
234
|
+
const entityId = 'https://idc.scheuber.io/am/saml2/IDPAzure';
|
|
235
|
+
const entityId64 = encodeBase64Url(entityId);
|
|
236
|
+
const importData = getSaml2ProviderImportData(entityId);
|
|
237
|
+
mockPutScript(mock, (mockScriptId, mockScriptObj) => {
|
|
238
|
+
expect(Object.keys(importData.script)).toContain(mockScriptId);
|
|
239
|
+
expect(mockScriptObj._id).toEqual(mockScriptId);
|
|
240
|
+
});
|
|
241
|
+
mockCreateSaml2Provider(mock, (mockSaml2ProviderId64, mockSaml2ProviderLocation, mockSaml2ProviderObj) => {
|
|
242
|
+
expect(mockSaml2ProviderId64).toEqual(entityId64);
|
|
243
|
+
expect(mockSaml2ProviderLocation).toEqual(entityLocation);
|
|
244
|
+
expect(isEqualJson(importData.saml[entityLocation][entityId64], mockSaml2ProviderObj, ['_rev'])).toBeTruthy();
|
|
245
|
+
});
|
|
246
|
+
// expect 5 assertions because import contains 1 script
|
|
247
|
+
expect.assertions(5);
|
|
248
|
+
await Saml2.importSaml2Provider(entityId, importData);
|
|
249
|
+
});
|
|
250
|
+
test('importSaml2Provider() 2: Import hosted provider "https://idc.scheuber.io/am/saml2/IDPBroadcom"', async () => {
|
|
251
|
+
const entityLocation = Saml2ProiderLocation.HOSTED;
|
|
252
|
+
const entityId = 'https://idc.scheuber.io/am/saml2/IDPBroadcom';
|
|
253
|
+
const entityId64 = encodeBase64Url(entityId);
|
|
254
|
+
const importData = getSaml2ProviderImportData(entityId);
|
|
255
|
+
mockPutScript(mock, (mockScriptId, mockScriptObj) => {
|
|
256
|
+
expect(Object.keys(importData.script)).toContain(mockScriptId);
|
|
257
|
+
expect(mockScriptObj._id).toEqual(mockScriptId);
|
|
258
|
+
});
|
|
259
|
+
mockCreateSaml2Provider(mock, (mockSaml2ProviderId64, mockSaml2ProviderLocation, mockSaml2ProviderObj) => {
|
|
260
|
+
expect(mockSaml2ProviderId64).toEqual(entityId64);
|
|
261
|
+
expect(mockSaml2ProviderLocation).toEqual(entityLocation);
|
|
262
|
+
expect(isEqualJson(importData.saml[entityLocation][entityId64], mockSaml2ProviderObj, ['_rev'])).toBeTruthy();
|
|
263
|
+
});
|
|
264
|
+
// expect 7 assertions because import contains 2 scripts
|
|
265
|
+
expect.assertions(7);
|
|
266
|
+
await Saml2.importSaml2Provider(entityId, importData);
|
|
267
|
+
});
|
|
268
|
+
test('importSaml2Provider() 3: Import remote provider "https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/" with metadata', async () => {
|
|
269
|
+
const entityLocation = Saml2ProiderLocation.REMOTE;
|
|
270
|
+
const entityId = 'https://sts.windows.net/711ffa9c-5972-4713-ace3-688c9732614a/';
|
|
271
|
+
const entityId64 = encodeBase64Url(entityId);
|
|
272
|
+
const importData = getSaml2ProviderImportData(entityId);
|
|
273
|
+
mockPutScript(mock, (mockScriptId, mockScriptObj) => {
|
|
274
|
+
expect(Object.keys(importData.script)).toContain(mockScriptId);
|
|
275
|
+
expect(mockScriptObj._id).toEqual(mockScriptId);
|
|
276
|
+
});
|
|
277
|
+
mockCreateSaml2Provider(mock, (mockSaml2ProviderId64, mockSaml2ProviderLocation, mockSaml2ProviderObj) => {
|
|
278
|
+
expect(mockSaml2ProviderId64).toEqual(entityId64);
|
|
279
|
+
expect(mockSaml2ProviderLocation).toEqual(entityLocation);
|
|
280
|
+
// this is an import of a remote identity provider, which can only be done using SAML2 metadata
|
|
281
|
+
expect(mockSaml2ProviderObj.standardMetadata).toEqual(convertTextArrayToBase64Url(importData.saml.metadata[entityId64]));
|
|
282
|
+
});
|
|
283
|
+
// expect only 3 assertions because import contains no scripts
|
|
284
|
+
expect.assertions(3);
|
|
285
|
+
await Saml2.importSaml2Provider(entityId, importData);
|
|
82
286
|
});
|
|
83
287
|
});
|
|
84
|
-
describe('Saml2Ops -
|
|
85
|
-
test('
|
|
86
|
-
expect(Saml2.
|
|
288
|
+
describe('Saml2Ops - importSaml2Providers()', () => {
|
|
289
|
+
test('importSaml2Providers() 0: Method is implemented', async () => {
|
|
290
|
+
expect(Saml2.importSaml2Providers).toBeDefined();
|
|
87
291
|
});
|
|
88
|
-
|
|
89
|
-
|
|
292
|
+
test('importSaml2Providers() 1: Import providers', async () => {
|
|
293
|
+
const importData = getSaml2ProvidersImportData();
|
|
294
|
+
let scriptIds = Object.keys(importData.script);
|
|
295
|
+
let hostedEntityIds64 = Object.keys(importData.saml.hosted);
|
|
296
|
+
let remoteEntityIds64 = Object.keys(importData.saml.remote);
|
|
297
|
+
const allEntityIds64 = hostedEntityIds64.concat(remoteEntityIds64);
|
|
298
|
+
let metaDataIds64 = Object.keys(importData.saml.metadata);
|
|
299
|
+
mockPutScript(mock, (mockScriptId, mockScriptObj) => {
|
|
300
|
+
expect(scriptIds).toContain(mockScriptId);
|
|
301
|
+
expect(mockScriptObj._id).toEqual(mockScriptId);
|
|
302
|
+
scriptIds = scriptIds.filter(scriptId => scriptId !== mockScriptId);
|
|
303
|
+
});
|
|
304
|
+
mockCreateSaml2Provider(mock, (mockSaml2ProviderId64, mockSaml2ProviderLocation, mockSaml2ProviderObj) => {
|
|
305
|
+
expect(allEntityIds64).toContain(mockSaml2ProviderId64);
|
|
306
|
+
expect(mockSaml2ProviderLocation).toEqual(hostedEntityIds64.includes(mockSaml2ProviderId64) ? Saml2ProiderLocation.HOSTED : Saml2ProiderLocation.REMOTE);
|
|
307
|
+
// for hosted providers compare the provider config, for remote providers compare the metadata
|
|
308
|
+
expect(isEqualJson(importData.saml[mockSaml2ProviderLocation][mockSaml2ProviderId64], mockSaml2ProviderObj, ['_rev']) || mockSaml2ProviderObj.standardMetadata === convertTextArrayToBase64Url(importData.saml.metadata[mockSaml2ProviderId64])).toBeTruthy();
|
|
309
|
+
hostedEntityIds64 = hostedEntityIds64.filter(saml2ProviderId64 => saml2ProviderId64 !== mockSaml2ProviderId64);
|
|
310
|
+
remoteEntityIds64 = remoteEntityIds64.filter(saml2ProviderId64 => saml2ProviderId64 !== mockSaml2ProviderId64);
|
|
311
|
+
if (mockSaml2ProviderObj.standardMetadata) {
|
|
312
|
+
metaDataIds64 = metaDataIds64.filter(saml2ProviderId64 => saml2ProviderId64 !== mockSaml2ProviderId64);
|
|
313
|
+
}
|
|
314
|
+
});
|
|
315
|
+
expect.assertions(40);
|
|
316
|
+
await Saml2.importSaml2Providers(importData);
|
|
317
|
+
expect(scriptIds.length).toBe(0);
|
|
318
|
+
expect(hostedEntityIds64.length).toBe(0);
|
|
319
|
+
expect(remoteEntityIds64.length).toBe(0);
|
|
320
|
+
// frodo exports metadata for both hosted and remote providers but on import it is only required for remote providers
|
|
321
|
+
expect(metaDataIds64.length).toBe(6);
|
|
322
|
+
});
|
|
323
|
+
});
|
|
90
324
|
describe('Saml2Ops - deleteSaml2Provider()', () => {
|
|
91
325
|
test('deleteSaml2Provider() 0: Method is implemented', async () => {
|
|
92
326
|
expect(Saml2.deleteSaml2Provider).toBeDefined();
|
|
@@ -97,34 +331,19 @@ describe('Saml2Ops - deleteSaml2Providers()', () => {
|
|
|
97
331
|
expect(Saml2.deleteSaml2Providers).toBeDefined();
|
|
98
332
|
});
|
|
99
333
|
});
|
|
100
|
-
describe('Saml2Ops -
|
|
101
|
-
test('
|
|
102
|
-
expect(Saml2.
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
describe('Saml2Ops - exportRawSaml2ProvidersToFile()', () => {
|
|
106
|
-
test('exportRawSaml2ProvidersToFile() 0: Method is implemented', async () => {
|
|
107
|
-
expect(Saml2.exportRawSaml2ProvidersToFile).toBeDefined();
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
describe('Saml2Ops - exportRawSaml2ProvidersToFiles()', () => {
|
|
111
|
-
test('exportRawSaml2ProvidersToFiles() 0: Method is implemented', async () => {
|
|
112
|
-
expect(Saml2.exportRawSaml2ProvidersToFiles).toBeDefined();
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
describe('Saml2Ops - importRawSaml2ProvidersFromFile()', () => {
|
|
116
|
-
test('importRawSaml2ProvidersFromFile() 0: Method is implemented', async () => {
|
|
117
|
-
expect(Saml2.importRawSaml2ProvidersFromFile).toBeDefined();
|
|
334
|
+
describe('Saml2Ops - getRawProviders()', () => {
|
|
335
|
+
test('getRawProviders() 0: Method is implemented', async () => {
|
|
336
|
+
expect(Saml2.getRawProviders).toBeDefined();
|
|
118
337
|
});
|
|
119
338
|
});
|
|
120
|
-
describe('Saml2Ops -
|
|
121
|
-
test('
|
|
122
|
-
expect(Saml2.
|
|
339
|
+
describe('Saml2Ops - getRawProvider()', () => {
|
|
340
|
+
test('getRawProvider() 0: Method is implemented', async () => {
|
|
341
|
+
expect(Saml2.getRawProvider).toBeDefined();
|
|
123
342
|
});
|
|
124
343
|
});
|
|
125
|
-
describe('Saml2Ops -
|
|
126
|
-
test('
|
|
127
|
-
expect(Saml2.
|
|
344
|
+
describe('Saml2Ops - putRawProvider()', () => {
|
|
345
|
+
test('putRawProvider() 0: Method is implemented', async () => {
|
|
346
|
+
expect(Saml2.putRawProvider).toBeDefined();
|
|
128
347
|
});
|
|
129
348
|
});
|
|
130
349
|
//# sourceMappingURL=Saml2Ops.test.js.map
|
package/esm/ops/ScriptOps.mjs
CHANGED
|
@@ -5,16 +5,15 @@ import { createProgressIndicator, createTable, printMessage, stopProgressIndicat
|
|
|
5
5
|
import { getScriptByName, getScripts, putScript } from '../api/ScriptApi';
|
|
6
6
|
import wordwrap from './utils/Wordwrap';
|
|
7
7
|
import { convertBase64TextToArray, convertTextArrayToBase64, getTypedFilename, saveToFile, titleCase, validateImport } from './utils/ExportImportUtils';
|
|
8
|
-
import
|
|
8
|
+
import * as state from '../shared/State';
|
|
9
|
+
|
|
9
10
|
/**
|
|
10
11
|
* List scripts
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
13
|
export async function listScripts(long = false) {
|
|
14
14
|
try {
|
|
15
15
|
const scripts = (await getScripts()).result;
|
|
16
16
|
scripts.sort((a, b) => a.name.localeCompare(b.name));
|
|
17
|
-
|
|
18
17
|
if (long) {
|
|
19
18
|
const table = createTable(['Name', 'UUID', 'Language', 'Context', 'Description']);
|
|
20
19
|
const langMap = {
|
|
@@ -34,93 +33,83 @@ export async function listScripts(long = false) {
|
|
|
34
33
|
printMessage(`Error listing scripts - ${error}`, 'error');
|
|
35
34
|
}
|
|
36
35
|
}
|
|
36
|
+
|
|
37
37
|
/**
|
|
38
38
|
* Export script to file
|
|
39
39
|
* @param {String} name script name
|
|
40
40
|
* @param {String} file file name
|
|
41
41
|
*/
|
|
42
|
-
|
|
43
42
|
export async function exportScriptByName(name, file) {
|
|
44
43
|
let fileName = getTypedFilename(name, 'script');
|
|
45
|
-
|
|
46
44
|
if (file) {
|
|
47
45
|
fileName = file;
|
|
48
46
|
}
|
|
49
|
-
|
|
50
47
|
const scriptData = (await getScriptByName(name)).result;
|
|
51
|
-
|
|
52
48
|
if (scriptData.length > 1) {
|
|
53
49
|
printMessage(`Multiple scripts with name ${name} found...`, 'error');
|
|
54
50
|
}
|
|
55
|
-
|
|
56
51
|
scriptData.forEach(element => {
|
|
57
|
-
const scriptTextArray = convertBase64TextToArray(element.script);
|
|
58
|
-
|
|
52
|
+
const scriptTextArray = convertBase64TextToArray(element.script);
|
|
53
|
+
// eslint-disable-next-line no-param-reassign
|
|
59
54
|
element.script = scriptTextArray;
|
|
60
55
|
});
|
|
61
56
|
saveToFile('script', scriptData, '_id', fileName);
|
|
62
57
|
}
|
|
58
|
+
|
|
63
59
|
/**
|
|
64
60
|
* Export all scripts to single file
|
|
65
61
|
* @param {String} file file name
|
|
66
62
|
*/
|
|
67
|
-
|
|
68
63
|
export async function exportScriptsToFile(file) {
|
|
69
|
-
let fileName = getTypedFilename(`all${
|
|
70
|
-
|
|
64
|
+
let fileName = getTypedFilename(`all${state.getRealm()}Scripts`, 'script');
|
|
71
65
|
if (file) {
|
|
72
66
|
fileName = file;
|
|
73
67
|
}
|
|
74
|
-
|
|
75
68
|
const scriptList = (await getScripts()).result;
|
|
76
69
|
const allScriptsData = [];
|
|
77
70
|
createProgressIndicator(scriptList.length, 'Exporting script');
|
|
78
|
-
|
|
79
71
|
for (const item of scriptList) {
|
|
80
|
-
updateProgressIndicator(`Reading script ${item.name}`);
|
|
81
|
-
|
|
72
|
+
updateProgressIndicator(`Reading script ${item.name}`);
|
|
73
|
+
// eslint-disable-next-line no-await-in-loop
|
|
82
74
|
const scriptData = (await getScriptByName(item.name)).result;
|
|
83
75
|
scriptData.forEach(element => {
|
|
84
|
-
const scriptTextArray = convertBase64TextToArray(element.script);
|
|
85
|
-
|
|
76
|
+
const scriptTextArray = convertBase64TextToArray(element.script);
|
|
77
|
+
// eslint-disable-next-line no-param-reassign
|
|
86
78
|
element.script = scriptTextArray;
|
|
87
79
|
allScriptsData.push(element);
|
|
88
80
|
});
|
|
89
81
|
}
|
|
90
|
-
|
|
91
82
|
stopProgressIndicator('Done');
|
|
92
83
|
saveToFile('script', allScriptsData, '_id', fileName);
|
|
93
84
|
}
|
|
85
|
+
|
|
94
86
|
/**
|
|
95
87
|
* Export all scripts to individual files
|
|
96
88
|
*/
|
|
97
|
-
|
|
98
89
|
export async function exportScriptsToFiles() {
|
|
99
90
|
const scriptList = (await getScripts()).result;
|
|
100
91
|
createProgressIndicator(scriptList.length, 'Exporting script');
|
|
101
|
-
|
|
102
92
|
for (const item of scriptList) {
|
|
103
|
-
updateProgressIndicator(`Reading script ${item.name}`);
|
|
104
|
-
|
|
93
|
+
updateProgressIndicator(`Reading script ${item.name}`);
|
|
94
|
+
// eslint-disable-next-line no-await-in-loop
|
|
105
95
|
const scriptData = (await getScriptByName(item.name)).result;
|
|
106
96
|
scriptData.forEach(element => {
|
|
107
|
-
const scriptTextArray = convertBase64TextToArray(element.script);
|
|
108
|
-
|
|
97
|
+
const scriptTextArray = convertBase64TextToArray(element.script);
|
|
98
|
+
// eslint-disable-next-line no-param-reassign
|
|
109
99
|
element.script = scriptTextArray;
|
|
110
100
|
});
|
|
111
101
|
const fileName = getTypedFilename(item.name, 'script');
|
|
112
102
|
saveToFile('script', scriptData, '_id', fileName);
|
|
113
103
|
}
|
|
114
|
-
|
|
115
104
|
stopProgressIndicator('Done');
|
|
116
105
|
}
|
|
106
|
+
|
|
117
107
|
/**
|
|
118
108
|
* Import script
|
|
119
109
|
* @param {String} id script uuid
|
|
120
110
|
* @param {Object} data script object
|
|
121
111
|
* @returns {Object} a status object
|
|
122
112
|
*/
|
|
123
|
-
|
|
124
113
|
export async function createOrUpdateScript(id, data) {
|
|
125
114
|
try {
|
|
126
115
|
await putScript(id, data);
|
|
@@ -129,12 +118,13 @@ export async function createOrUpdateScript(id, data) {
|
|
|
129
118
|
name: data.name
|
|
130
119
|
};
|
|
131
120
|
} catch (e) {
|
|
132
|
-
|
|
121
|
+
var _e$response;
|
|
122
|
+
if (((_e$response = e.response) === null || _e$response === void 0 ? void 0 : _e$response.status) === 409) {
|
|
133
123
|
printMessage(`createOrUpdateScript WARNING: script with name ${data.name} already exists, using renaming policy... <name> => <name - imported (n)>`, 'warn');
|
|
134
|
-
const newName = applyNameCollisionPolicy(data.name);
|
|
135
|
-
|
|
136
|
-
printMessage(`Trying to save script as ${newName}`, 'warn');
|
|
137
|
-
|
|
124
|
+
const newName = applyNameCollisionPolicy(data.name);
|
|
125
|
+
// console.log(newName);
|
|
126
|
+
printMessage(`Trying to save script as ${newName}`, 'warn');
|
|
127
|
+
// eslint-disable-next-line no-param-reassign
|
|
138
128
|
data.name = newName;
|
|
139
129
|
await createOrUpdateScript(id, data);
|
|
140
130
|
return {
|
|
@@ -142,7 +132,6 @@ export async function createOrUpdateScript(id, data) {
|
|
|
142
132
|
name: data.name
|
|
143
133
|
};
|
|
144
134
|
}
|
|
145
|
-
|
|
146
135
|
printMessage(`createOrUpdateScript ERROR: put script error, script ${id} - ${e.message}`, 'error');
|
|
147
136
|
return {
|
|
148
137
|
error: true,
|
|
@@ -154,42 +143,37 @@ export async function importScriptsFromFile(name, file, reUuid = false) {
|
|
|
154
143
|
fs.readFile(file, 'utf8', (err, data) => {
|
|
155
144
|
if (err) throw err;
|
|
156
145
|
const scriptData = JSON.parse(data);
|
|
157
|
-
|
|
158
146
|
if (validateImport(scriptData.meta)) {
|
|
159
147
|
createProgressIndicator(Object.keys(scriptData.script).length, '');
|
|
160
|
-
|
|
161
148
|
for (const existingId in scriptData.script) {
|
|
162
149
|
if ({}.hasOwnProperty.call(scriptData.script, existingId)) {
|
|
163
|
-
let newId = existingId;
|
|
164
|
-
|
|
150
|
+
let newId = existingId;
|
|
151
|
+
// console.log(id);
|
|
165
152
|
const encodedScript = convertTextArrayToBase64(scriptData.script[existingId].script);
|
|
166
153
|
scriptData.script[existingId].script = encodedScript;
|
|
167
|
-
|
|
168
154
|
if (reUuid) {
|
|
169
|
-
newId = uuidv4();
|
|
155
|
+
newId = uuidv4();
|
|
156
|
+
// printMessage(
|
|
170
157
|
// `Re-uuid-ing script ${scriptData.script[existingId].name} ${existingId} => ${newId}...`
|
|
171
158
|
// );
|
|
172
|
-
|
|
173
159
|
scriptData.script[existingId]._id = newId;
|
|
174
160
|
}
|
|
175
|
-
|
|
176
161
|
if (name) {
|
|
177
162
|
// printMessage(
|
|
178
163
|
// `Renaming script ${scriptData.script[existingId].name} => ${options.script}...`
|
|
179
164
|
// );
|
|
180
165
|
scriptData.script[existingId].name = name;
|
|
181
166
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
167
|
+
updateProgressIndicator(`Importing ${scriptData.script[existingId].name}`);
|
|
168
|
+
// console.log(scriptData.script[id]);
|
|
185
169
|
createOrUpdateScript(newId, scriptData.script[existingId]).then(result => {
|
|
186
170
|
if (result == null) printMessage(`Error importing ${scriptData.script[existingId].name}`, 'error');
|
|
187
171
|
});
|
|
188
172
|
if (name) break;
|
|
189
173
|
}
|
|
190
174
|
}
|
|
191
|
-
|
|
192
|
-
|
|
175
|
+
stopProgressIndicator('Done');
|
|
176
|
+
// printMessage('Done');
|
|
193
177
|
} else {
|
|
194
178
|
printMessage('Import validation failed...', 'error');
|
|
195
179
|
}
|