@rockcarver/frodo-lib 0.16.2-9 → 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 +217 -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 +16 -67
- 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 +5 -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 +2 -159
- 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 +139 -370
- 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 +11 -107
- package/cjs/ops/Saml2Ops.js.map +1 -1
- package/cjs/ops/Saml2Ops.test.js.map +1 -1
- package/cjs/ops/ScriptOps.js +26 -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 +161 -83
- 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/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 +25 -29
- 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 +5 -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 +37 -80
- 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 +146 -289
- package/esm/ops/JourneyOps.test.mjs +29 -27
- 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 +28 -62
- package/esm/ops/Saml2Ops.test.mjs +20 -23
- package/esm/ops/ScriptOps.mjs +29 -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 +147 -31
- 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/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 +36 -26
- package/types/api/AgentApi.d.ts.map +1 -1
- package/types/api/ApiTypes.d.ts +15 -16
- 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.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/index.d.ts +11 -5
- package/types/index.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 +1 -1
- package/types/ops/OpsTypes.d.ts.map +1 -1
- package/types/ops/OrganizationOps.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 +19 -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
package/cjs/ops/NodeOps.js
CHANGED
|
@@ -9,33 +9,24 @@ exports.isCloudOnlyNode = isCloudOnlyNode;
|
|
|
9
9
|
exports.isCustomNode = isCustomNode;
|
|
10
10
|
exports.isPremiumNode = isPremiumNode;
|
|
11
11
|
exports.removeOrphanedNodes = removeOrphanedNodes;
|
|
12
|
-
|
|
13
12
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
14
|
-
|
|
15
|
-
var _SessionStorage = _interopRequireDefault(require("../storage/SessionStorage"));
|
|
16
|
-
|
|
13
|
+
var state = _interopRequireWildcard(require("../shared/State"));
|
|
17
14
|
var _NodeApi = require("../api/NodeApi");
|
|
18
|
-
|
|
19
15
|
var _TreeApi = require("../api/TreeApi");
|
|
20
|
-
|
|
21
16
|
var _Console = require("./utils/Console");
|
|
22
|
-
|
|
23
17
|
var _Saml2Api = require("../api/Saml2Api");
|
|
24
|
-
|
|
25
18
|
var _Base = require("../api/utils/Base64");
|
|
26
|
-
|
|
27
19
|
var _OpsTypes = require("./OpsTypes");
|
|
28
|
-
|
|
20
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
30
|
-
|
|
31
23
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
32
|
-
|
|
33
24
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
34
|
-
|
|
35
25
|
var containerNodes = ['PageNode', 'CustomPageNode'];
|
|
36
26
|
var scriptedNodes = ['ConfigProviderNode', 'ScriptedDecisionNode', 'ClientScriptNode', 'SocialProviderHandlerNode', 'CustomScriptNode'];
|
|
37
27
|
var emailTemplateNodes = ['EmailSuspendNode', 'EmailTemplateNode'];
|
|
38
28
|
var emptyScriptPlaceholder = '[Empty]';
|
|
29
|
+
|
|
39
30
|
/**
|
|
40
31
|
* Helper to get all SAML2 dependencies for a given node object
|
|
41
32
|
* @param {Object} nodeObject node object
|
|
@@ -43,7 +34,6 @@ var emptyScriptPlaceholder = '[Empty]';
|
|
|
43
34
|
* @param {[Object]} allCirclesOfTrust array of all circle of trust objects
|
|
44
35
|
* @returns {Promise} a promise that resolves to an object containing a saml2 dependencies
|
|
45
36
|
*/
|
|
46
|
-
|
|
47
37
|
function getSaml2NodeDependencies(_x, _x2, _x3) {
|
|
48
38
|
return _getSaml2NodeDependencies.apply(this, arguments);
|
|
49
39
|
}
|
|
@@ -51,21 +41,16 @@ function getSaml2NodeDependencies(_x, _x2, _x3) {
|
|
|
51
41
|
* Find all node configuration objects that are no longer referenced by any tree
|
|
52
42
|
* @returns {Promise<unknown[]>} a promise that resolves to an array of orphaned nodes
|
|
53
43
|
*/
|
|
54
|
-
|
|
55
|
-
|
|
56
44
|
function _getSaml2NodeDependencies() {
|
|
57
45
|
_getSaml2NodeDependencies = _asyncToGenerator(function* (nodeObject, allProviders, allCirclesOfTrust) {
|
|
58
46
|
var samlProperties = ['metaAlias', 'idpEntityId'];
|
|
59
47
|
var saml2EntityPromises = [];
|
|
60
|
-
|
|
61
48
|
for (var samlProperty of samlProperties) {
|
|
62
49
|
// In the following line nodeObject[samlProperty] will look like '/alpha/iSPAzure'.
|
|
63
50
|
var entityId = samlProperty === 'metaAlias' ? _lodash.default.last(nodeObject[samlProperty].split('/')) : nodeObject[samlProperty];
|
|
64
|
-
|
|
65
51
|
var entity = _lodash.default.find(allProviders, {
|
|
66
52
|
entityId
|
|
67
53
|
});
|
|
68
|
-
|
|
69
54
|
if (entity) {
|
|
70
55
|
try {
|
|
71
56
|
var providerResponse = yield (0, _Saml2Api.getProviderByLocationAndId)(entity.location, entity._id);
|
|
@@ -75,46 +60,36 @@ function _getSaml2NodeDependencies() {
|
|
|
75
60
|
* from the config before importing see updateSaml2Entity and createSaml2Entity functions).
|
|
76
61
|
* Importing a remote saml2 entity is a slightly different request (see createSaml2Entity).
|
|
77
62
|
*/
|
|
78
|
-
|
|
79
63
|
providerResponse.entityLocation = entity.location;
|
|
80
|
-
|
|
81
64
|
if (entity.location === 'remote') {
|
|
82
65
|
// get the xml representation of this entity and add it to the entityResponse;
|
|
83
66
|
var metaDataResponse = yield (0, _Saml2Api.getProviderMetadata)(providerResponse.entityId);
|
|
84
67
|
providerResponse.base64EntityXML = (0, _Base.encodeBase64Url)(metaDataResponse);
|
|
85
68
|
}
|
|
86
|
-
|
|
87
69
|
saml2EntityPromises.push(providerResponse);
|
|
88
70
|
} catch (error) {
|
|
89
71
|
(0, _Console.printMessage)(error.message, 'error');
|
|
90
72
|
}
|
|
91
73
|
}
|
|
92
74
|
}
|
|
93
|
-
|
|
94
75
|
try {
|
|
95
76
|
var saml2EntitiesPromisesResults = yield Promise.all(saml2EntityPromises);
|
|
96
77
|
var saml2Entities = [];
|
|
97
|
-
|
|
98
78
|
for (var saml2Entity of saml2EntitiesPromisesResults) {
|
|
99
79
|
if (saml2Entity) {
|
|
100
80
|
saml2Entities.push(saml2Entity);
|
|
101
81
|
}
|
|
102
82
|
}
|
|
103
|
-
|
|
104
83
|
var samlEntityIds = _lodash.default.map(saml2Entities, saml2EntityConfig => "".concat(saml2EntityConfig.entityId, "|saml2"));
|
|
105
|
-
|
|
106
84
|
var circlesOfTrust = _lodash.default.filter(allCirclesOfTrust, circleOfTrust => {
|
|
107
85
|
var hasEntityId = false;
|
|
108
|
-
|
|
109
86
|
for (var trustedProvider of circleOfTrust.trustedProviders) {
|
|
110
87
|
if (!hasEntityId && samlEntityIds.includes(trustedProvider)) {
|
|
111
88
|
hasEntityId = true;
|
|
112
89
|
}
|
|
113
90
|
}
|
|
114
|
-
|
|
115
91
|
return hasEntityId;
|
|
116
92
|
});
|
|
117
|
-
|
|
118
93
|
var saml2NodeDependencies = {
|
|
119
94
|
saml2Entities,
|
|
120
95
|
circlesOfTrust
|
|
@@ -131,7 +106,6 @@ function _getSaml2NodeDependencies() {
|
|
|
131
106
|
});
|
|
132
107
|
return _getSaml2NodeDependencies.apply(this, arguments);
|
|
133
108
|
}
|
|
134
|
-
|
|
135
109
|
function findOrphanedNodes() {
|
|
136
110
|
return _findOrphanedNodes.apply(this, arguments);
|
|
137
111
|
}
|
|
@@ -140,8 +114,6 @@ function findOrphanedNodes() {
|
|
|
140
114
|
* @param {[Object]} orphanedNodes Pass in an array of orphaned node configuration objects to remove
|
|
141
115
|
* @returns {Promise<unknown[]>} a promise that resolves to an array nodes that encountered errors deleting
|
|
142
116
|
*/
|
|
143
|
-
|
|
144
|
-
|
|
145
117
|
function _findOrphanedNodes() {
|
|
146
118
|
_findOrphanedNodes = _asyncToGenerator(function* () {
|
|
147
119
|
var allNodes = [];
|
|
@@ -151,7 +123,6 @@ function _findOrphanedNodes() {
|
|
|
151
123
|
var errorMessage = '';
|
|
152
124
|
var errorTypes = [];
|
|
153
125
|
(0, _Console.createProgressIndicator)(undefined, "Counting total nodes...", 'indeterminate');
|
|
154
|
-
|
|
155
126
|
try {
|
|
156
127
|
types = (yield (0, _NodeApi.getNodeTypes)()).result;
|
|
157
128
|
} catch (error) {
|
|
@@ -159,12 +130,10 @@ function _findOrphanedNodes() {
|
|
|
159
130
|
(0, _Console.printMessage)(error.response.data, 'error');
|
|
160
131
|
return [];
|
|
161
132
|
}
|
|
162
|
-
|
|
163
133
|
for (var type of types) {
|
|
164
134
|
try {
|
|
165
135
|
// eslint-disable-next-line no-await-in-loop, no-loop-func
|
|
166
136
|
var nodes = (yield (0, _NodeApi.getNodesByType)(type._id)).result;
|
|
167
|
-
|
|
168
137
|
for (var node of nodes) {
|
|
169
138
|
allNodes.push(node);
|
|
170
139
|
(0, _Console.updateProgressIndicator)("".concat(allNodes.length, " total nodes").concat(errorMessage));
|
|
@@ -175,26 +144,21 @@ function _findOrphanedNodes() {
|
|
|
175
144
|
(0, _Console.updateProgressIndicator)("".concat(allNodes.length, " total nodes").concat(errorMessage));
|
|
176
145
|
}
|
|
177
146
|
}
|
|
178
|
-
|
|
179
147
|
if (errorTypes.length > 0) {
|
|
180
148
|
(0, _Console.stopProgressIndicator)("".concat(allNodes.length, " total nodes").concat(errorMessage), 'warn');
|
|
181
149
|
} else {
|
|
182
150
|
(0, _Console.stopProgressIndicator)("".concat(allNodes.length, " total nodes"), 'success');
|
|
183
151
|
}
|
|
184
|
-
|
|
185
152
|
(0, _Console.createProgressIndicator)(undefined, 'Counting active nodes...', 'indeterminate');
|
|
186
153
|
var activeNodes = [];
|
|
187
|
-
|
|
188
154
|
for (var journey of allJourneys) {
|
|
189
155
|
for (var nodeId in journey.nodes) {
|
|
190
156
|
if ({}.hasOwnProperty.call(journey.nodes, nodeId)) {
|
|
191
157
|
activeNodes.push(nodeId);
|
|
192
158
|
(0, _Console.updateProgressIndicator)("".concat(activeNodes.length, " active nodes"));
|
|
193
159
|
var _node = journey.nodes[nodeId];
|
|
194
|
-
|
|
195
160
|
if (containerNodes.includes(_node.nodeType)) {
|
|
196
161
|
var containerNode = yield (0, _NodeApi.getNode)(nodeId, _node.nodeType);
|
|
197
|
-
|
|
198
162
|
for (var innerNode of containerNode.nodes) {
|
|
199
163
|
activeNodes.push(innerNode._id);
|
|
200
164
|
(0, _Console.updateProgressIndicator)("".concat(activeNodes.length, " active nodes"));
|
|
@@ -203,33 +167,26 @@ function _findOrphanedNodes() {
|
|
|
203
167
|
}
|
|
204
168
|
}
|
|
205
169
|
}
|
|
206
|
-
|
|
207
170
|
(0, _Console.stopProgressIndicator)("".concat(activeNodes.length, " active nodes"), 'success');
|
|
208
171
|
(0, _Console.createProgressIndicator)(undefined, 'Calculating orphaned nodes...', 'indeterminate');
|
|
209
172
|
var diff = allNodes.filter(x => !activeNodes.includes(x._id));
|
|
210
|
-
|
|
211
173
|
for (var orphanedNode of diff) {
|
|
212
174
|
orphanedNodes.push(orphanedNode);
|
|
213
175
|
}
|
|
214
|
-
|
|
215
176
|
(0, _Console.stopProgressIndicator)("".concat(orphanedNodes.length, " orphaned nodes"), 'success');
|
|
216
177
|
return orphanedNodes;
|
|
217
178
|
});
|
|
218
179
|
return _findOrphanedNodes.apply(this, arguments);
|
|
219
180
|
}
|
|
220
|
-
|
|
221
181
|
function removeOrphanedNodes(_x4) {
|
|
222
182
|
return _removeOrphanedNodes.apply(this, arguments);
|
|
223
183
|
}
|
|
224
|
-
|
|
225
184
|
function _removeOrphanedNodes() {
|
|
226
185
|
_removeOrphanedNodes = _asyncToGenerator(function* (orphanedNodes) {
|
|
227
186
|
var errorNodes = [];
|
|
228
187
|
(0, _Console.createProgressIndicator)(orphanedNodes.length, 'Removing orphaned nodes...');
|
|
229
|
-
|
|
230
188
|
for (var node of orphanedNodes) {
|
|
231
189
|
(0, _Console.updateProgressIndicator)("Removing ".concat(node['_id'], "..."));
|
|
232
|
-
|
|
233
190
|
try {
|
|
234
191
|
// eslint-disable-next-line no-await-in-loop
|
|
235
192
|
yield (0, _NodeApi.deleteNode)(node['_id'], node['_type']['_id']);
|
|
@@ -238,13 +195,11 @@ function _removeOrphanedNodes() {
|
|
|
238
195
|
(0, _Console.printMessage)(" ".concat(deleteError), 'error');
|
|
239
196
|
}
|
|
240
197
|
}
|
|
241
|
-
|
|
242
198
|
(0, _Console.stopProgressIndicator)("Removed ".concat(orphanedNodes.length, " orphaned nodes."));
|
|
243
199
|
return errorNodes;
|
|
244
200
|
});
|
|
245
201
|
return _removeOrphanedNodes.apply(this, arguments);
|
|
246
202
|
}
|
|
247
|
-
|
|
248
203
|
var OOTB_NODE_TYPES_7 = ['AcceptTermsAndConditionsNode', 'AccountActiveDecisionNode', 'AccountLockoutNode', 'AgentDataStoreDecisionNode', 'AnonymousSessionUpgradeNode', 'AnonymousUserNode', 'AttributeCollectorNode', 'AttributePresentDecisionNode', 'AttributeValueDecisionNode', 'AuthLevelDecisionNode', 'ChoiceCollectorNode', 'ConsentNode', 'CookiePresenceDecisionNode', 'CreateObjectNode', 'CreatePasswordNode', 'DataStoreDecisionNode', 'DeviceGeoFencingNode', 'DeviceLocationMatchNode', 'DeviceMatchNode', 'DeviceProfileCollectorNode', 'DeviceSaveNode', 'DeviceTamperingVerificationNode', 'DisplayUserNameNode', 'EmailSuspendNode', 'EmailTemplateNode', 'IdentifyExistingUserNode', 'IncrementLoginCountNode', 'InnerTreeEvaluatorNode', 'IotAuthenticationNode', 'IotRegistrationNode', 'KbaCreateNode', 'KbaDecisionNode', 'KbaVerifyNode', 'LdapDecisionNode', 'LoginCountDecisionNode', 'MessageNode', 'MetadataNode', 'MeterNode', 'ModifyAuthLevelNode', 'OneTimePasswordCollectorDecisionNode', 'OneTimePasswordGeneratorNode', 'OneTimePasswordSmsSenderNode', 'OneTimePasswordSmtpSenderNode', 'PageNode', 'PasswordCollectorNode', 'PatchObjectNode', 'PersistentCookieDecisionNode', 'PollingWaitNode', 'ProfileCompletenessDecisionNode', 'ProvisionDynamicAccountNode', 'ProvisionIdmAccountNode', 'PushAuthenticationSenderNode', 'PushResultVerifierNode', 'QueryFilterDecisionNode', 'RecoveryCodeCollectorDecisionNode', 'RecoveryCodeDisplayNode', 'RegisterLogoutWebhookNode', 'RemoveSessionPropertiesNode', 'RequiredAttributesDecisionNode', 'RetryLimitDecisionNode', 'ScriptedDecisionNode', 'SelectIdPNode', 'SessionDataNode', 'SetFailureUrlNode', 'SetPersistentCookieNode', 'SetSessionPropertiesNode', 'SetSuccessUrlNode', 'SocialFacebookNode', 'SocialGoogleNode', 'SocialNode', 'SocialOAuthIgnoreProfileNode', 'SocialOpenIdConnectNode', 'SocialProviderHandlerNode', 'TermsAndConditionsDecisionNode', 'TimeSinceDecisionNode', 'TimerStartNode', 'TimerStopNode', 'UsernameCollectorNode', 'ValidatedPasswordNode', 'ValidatedUsernameNode', 'WebAuthnAuthenticationNode', 'WebAuthnDeviceStorageNode', 'WebAuthnRegistrationNode', 'ZeroPageLoginNode', 'product-CertificateCollectorNode', 'product-CertificateUserExtractorNode', 'product-CertificateValidationNode', 'product-KerberosNode', 'product-ReCaptchaNode', 'product-Saml2Node', 'product-WriteFederationInformationNode'];
|
|
249
204
|
var OOTB_NODE_TYPES_7_1 = ['PushRegistrationNode', 'GetAuthenticatorAppNode', 'MultiFactorRegistrationOptionsNode', 'OptOutMultiFactorAuthenticationNode'].concat(OOTB_NODE_TYPES_7);
|
|
250
205
|
var OOTB_NODE_TYPES_7_2 = ['OathRegistrationNode', 'OathTokenVerifierNode', 'PassthroughAuthenticationNode', 'ConfigProviderNode', 'DebugNode'].concat(OOTB_NODE_TYPES_7_1);
|
|
@@ -253,54 +208,47 @@ var OOTB_NODE_TYPES_6_5 = ['AbstractSocialAuthLoginNode', 'AccountLockoutNode',
|
|
|
253
208
|
var OOTB_NODE_TYPES_6 = ['AbstractSocialAuthLoginNode', 'AccountLockoutNode', 'AgentDataStoreDecisionNode', 'AnonymousUserNode', 'AuthLevelDecisionNode', 'ChoiceCollectorNode', 'CookiePresenceDecisionNode', 'CreatePasswordNode', 'DataStoreDecisionNode', 'InnerTreeEvaluatorNode', 'LdapDecisionNode', 'MessageNode', 'MetadataNode', 'MeterNode', 'ModifyAuthLevelNode', 'OneTimePasswordCollectorDecisionNode', 'OneTimePasswordGeneratorNode', 'OneTimePasswordSmsSenderNode', 'OneTimePasswordSmtpSenderNode', 'PageNode', 'PasswordCollectorNode', 'PersistentCookieDecisionNode', 'PollingWaitNode', 'ProvisionDynamicAccountNode', 'ProvisionIdmAccountNode', 'PushAuthenticationSenderNode', 'PushResultVerifierNode', 'RecoveryCodeCollectorDecisionNode', 'RecoveryCodeDisplayNode', 'RegisterLogoutWebhookNode', 'RemoveSessionPropertiesNode', 'RetryLimitDecisionNode', 'ScriptedDecisionNode', 'SessionDataNode', 'SetFailureUrlNode', 'SetPersistentCookieNode', 'SetSessionPropertiesNode', 'SetSuccessUrlNode', 'SocialFacebookNode', 'SocialGoogleNode', 'SocialNode', 'SocialOAuthIgnoreProfileNode', 'SocialOpenIdConnectNode', 'TimerStartNode', 'TimerStopNode', 'UsernameCollectorNode', 'WebAuthnAuthenticationNode', 'WebAuthnRegistrationNode', 'ZeroPageLoginNode'];
|
|
254
209
|
var CLOUD_ONLY_NODE_TYPES = ['IdentityStoreDecisionNode', 'AutonomousAccessSignalNode', 'AutonomousAccessDecisionNode', 'AutonomousAccessResultNode'];
|
|
255
210
|
var PREMIUM_NODE_TYPES = ['AutonomousAccessSignalNode', 'AutonomousAccessDecisionNode', 'AutonomousAccessResultNode'];
|
|
211
|
+
|
|
256
212
|
/**
|
|
257
213
|
* Analyze if a node is a premium node.
|
|
258
214
|
* @param {string} nodeType Node type
|
|
259
215
|
* @returns {boolean} True if the node type is premium, false otherwise.
|
|
260
216
|
*/
|
|
261
|
-
|
|
262
217
|
function isPremiumNode(nodeType) {
|
|
263
218
|
return PREMIUM_NODE_TYPES.includes(nodeType);
|
|
264
219
|
}
|
|
220
|
+
|
|
265
221
|
/**
|
|
266
222
|
* Analyze if a node is a cloud-only node.
|
|
267
223
|
* @param {string} nodeType Node type
|
|
268
224
|
* @returns {boolean} True if the node type is cloud-only, false otherwise.
|
|
269
225
|
*/
|
|
270
|
-
|
|
271
|
-
|
|
272
226
|
function isCloudOnlyNode(nodeType) {
|
|
273
227
|
return CLOUD_ONLY_NODE_TYPES.includes(nodeType);
|
|
274
228
|
}
|
|
229
|
+
|
|
275
230
|
/**
|
|
276
231
|
* Analyze if a node is custom.
|
|
277
232
|
* @param {string} nodeType Node type
|
|
278
233
|
* @returns {boolean} True if the node type is custom, false otherwise.
|
|
279
234
|
*/
|
|
280
|
-
|
|
281
|
-
|
|
282
235
|
function isCustomNode(nodeType) {
|
|
283
236
|
var ootbNodeTypes = [];
|
|
284
|
-
|
|
285
|
-
switch (_SessionStorage.default.session.getAmVersion()) {
|
|
237
|
+
switch (state.getAmVersion()) {
|
|
286
238
|
case '7.1.0':
|
|
287
239
|
ootbNodeTypes = OOTB_NODE_TYPES_7_1.slice(0);
|
|
288
240
|
break;
|
|
289
|
-
|
|
290
241
|
case '7.2.0':
|
|
291
242
|
ootbNodeTypes = OOTB_NODE_TYPES_7_2.slice(0);
|
|
292
243
|
break;
|
|
293
|
-
|
|
294
244
|
case '7.3.0':
|
|
295
245
|
ootbNodeTypes = OOTB_NODE_TYPES_7_3.slice(0);
|
|
296
246
|
break;
|
|
297
|
-
|
|
298
247
|
case '7.0.0':
|
|
299
248
|
case '7.0.1':
|
|
300
249
|
case '7.0.2':
|
|
301
250
|
ootbNodeTypes = OOTB_NODE_TYPES_7.slice(0);
|
|
302
251
|
break;
|
|
303
|
-
|
|
304
252
|
case '6.5.3':
|
|
305
253
|
case '6.5.2.3':
|
|
306
254
|
case '6.5.2.2':
|
|
@@ -311,7 +259,6 @@ function isCustomNode(nodeType) {
|
|
|
311
259
|
case '6.5.0.1':
|
|
312
260
|
ootbNodeTypes = OOTB_NODE_TYPES_6_5.slice(0);
|
|
313
261
|
break;
|
|
314
|
-
|
|
315
262
|
case '6.0.0.7':
|
|
316
263
|
case '6.0.0.6':
|
|
317
264
|
case '6.0.0.5':
|
|
@@ -322,13 +269,12 @@ function isCustomNode(nodeType) {
|
|
|
322
269
|
case '6.0.0':
|
|
323
270
|
ootbNodeTypes = OOTB_NODE_TYPES_6.slice(0);
|
|
324
271
|
break;
|
|
325
|
-
|
|
326
272
|
default:
|
|
327
273
|
return true;
|
|
328
274
|
}
|
|
329
|
-
|
|
330
275
|
return !ootbNodeTypes.includes(nodeType) && !isPremiumNode(nodeType) && !isCloudOnlyNode(nodeType);
|
|
331
276
|
}
|
|
277
|
+
|
|
332
278
|
/**
|
|
333
279
|
* Get a node's classifications, which can be one or multiple of:
|
|
334
280
|
* - standard: can run on any instance of a ForgeRock platform
|
|
@@ -337,14 +283,11 @@ function isCustomNode(nodeType) {
|
|
|
337
283
|
* @param {string} nodeType Node type
|
|
338
284
|
* @returns {NodeClassification[]} an array of one or multiple classifications
|
|
339
285
|
*/
|
|
340
|
-
|
|
341
|
-
|
|
342
286
|
function getNodeClassification(nodeType) {
|
|
343
287
|
var classifications = [];
|
|
344
288
|
var premium = isPremiumNode(nodeType);
|
|
345
289
|
var custom = isCustomNode(nodeType);
|
|
346
290
|
var cloud = isCloudOnlyNode(nodeType);
|
|
347
|
-
|
|
348
291
|
if (custom) {
|
|
349
292
|
classifications.push(_OpsTypes.NodeClassification.CUSTOM);
|
|
350
293
|
} else if (cloud) {
|
|
@@ -352,7 +295,6 @@ function getNodeClassification(nodeType) {
|
|
|
352
295
|
} else {
|
|
353
296
|
classifications.push(_OpsTypes.NodeClassification.STANDARD);
|
|
354
297
|
}
|
|
355
|
-
|
|
356
298
|
if (premium) classifications.push(_OpsTypes.NodeClassification.PREMIUM);
|
|
357
299
|
return classifications;
|
|
358
300
|
}
|
package/cjs/ops/NodeOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeOps.js","names":["containerNodes","scriptedNodes","emailTemplateNodes","emptyScriptPlaceholder","getSaml2NodeDependencies","nodeObject","allProviders","allCirclesOfTrust","samlProperties","saml2EntityPromises","samlProperty","entityId","_","last","split","entity","find","providerResponse","getProviderByLocationAndId","location","_id","entityLocation","metaDataResponse","getProviderMetadata","base64EntityXML","encodeBase64Url","push","error","printMessage","message","saml2EntitiesPromisesResults","Promise","all","saml2Entities","saml2Entity","samlEntityIds","map","saml2EntityConfig","circlesOfTrust","filter","circleOfTrust","hasEntityId","trustedProvider","trustedProviders","includes","saml2NodeDependencies","findOrphanedNodes","allNodes","orphanedNodes","types","allJourneys","getTrees","result","errorMessage","errorTypes","createProgressIndicator","undefined","getNodeTypes","response","data","type","nodes","getNodesByType","node","updateProgressIndicator","length","stopProgressIndicator","activeNodes","journey","nodeId","hasOwnProperty","call","nodeType","containerNode","getNode","innerNode","diff","x","orphanedNode","removeOrphanedNodes","errorNodes","deleteNode","deleteError","OOTB_NODE_TYPES_7","OOTB_NODE_TYPES_7_1","concat","OOTB_NODE_TYPES_7_2","OOTB_NODE_TYPES_7_3","OOTB_NODE_TYPES_6_5","OOTB_NODE_TYPES_6","CLOUD_ONLY_NODE_TYPES","PREMIUM_NODE_TYPES","isPremiumNode","isCloudOnlyNode","isCustomNode","ootbNodeTypes","storage","session","getAmVersion","slice","getNodeClassification","classifications","premium","custom","cloud","NodeClassification","CUSTOM","CLOUD","STANDARD","PREMIUM"],"sources":["ops/NodeOps.ts"],"sourcesContent":["import _ from 'lodash';\nimport {\n InnerNodeRefSkeletonInterface,\n NodeRefSkeletonInterface,\n NodeSkeleton,\n} from '../api/ApiTypes';\nimport storage from '../storage/SessionStorage';\nimport {\n getNode,\n deleteNode,\n getNodeTypes,\n getNodesByType,\n} from '../api/NodeApi';\nimport { getTrees } from '../api/TreeApi';\nimport {\n printMessage,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from './utils/Console';\nimport {\n getProviderByLocationAndId,\n getProviderMetadata,\n} from '../api/Saml2Api';\nimport { encodeBase64Url } from '../api/utils/Base64';\nimport { NodeClassification } from './OpsTypes';\n\nconst containerNodes = ['PageNode', 'CustomPageNode'];\n\nconst scriptedNodes = [\n 'ConfigProviderNode',\n 'ScriptedDecisionNode',\n 'ClientScriptNode',\n 'SocialProviderHandlerNode',\n 'CustomScriptNode',\n];\n\nconst emailTemplateNodes = ['EmailSuspendNode', 'EmailTemplateNode'];\n\nconst emptyScriptPlaceholder = '[Empty]';\n\n/**\n * Helper to get all SAML2 dependencies for a given node object\n * @param {Object} nodeObject node object\n * @param {[Object]} allProviders array of all saml2 providers objects\n * @param {[Object]} allCirclesOfTrust array of all circle of trust objects\n * @returns {Promise} a promise that resolves to an object containing a saml2 dependencies\n */\nasync function getSaml2NodeDependencies(\n nodeObject,\n allProviders,\n allCirclesOfTrust\n) {\n const samlProperties = ['metaAlias', 'idpEntityId'];\n const saml2EntityPromises = [];\n for (const samlProperty of samlProperties) {\n // In the following line nodeObject[samlProperty] will look like '/alpha/iSPAzure'.\n const entityId =\n samlProperty === 'metaAlias'\n ? _.last(nodeObject[samlProperty].split('/'))\n : nodeObject[samlProperty];\n const entity = _.find(allProviders, { entityId });\n if (entity) {\n try {\n const providerResponse = await getProviderByLocationAndId(\n entity.location,\n entity._id\n );\n /**\n * Adding entityLocation here to the entityResponse because the import tool\n * needs to know whether the saml2 entity is remote or not (this will be removed\n * from the config before importing see updateSaml2Entity and createSaml2Entity functions).\n * Importing a remote saml2 entity is a slightly different request (see createSaml2Entity).\n */\n providerResponse.entityLocation = entity.location;\n\n if (entity.location === 'remote') {\n // get the xml representation of this entity and add it to the entityResponse;\n const metaDataResponse = await getProviderMetadata(\n providerResponse.entityId\n );\n providerResponse.base64EntityXML = encodeBase64Url(metaDataResponse);\n }\n saml2EntityPromises.push(providerResponse);\n } catch (error) {\n printMessage(error.message, 'error');\n }\n }\n }\n try {\n const saml2EntitiesPromisesResults = await Promise.all(saml2EntityPromises);\n const saml2Entities = [];\n for (const saml2Entity of saml2EntitiesPromisesResults) {\n if (saml2Entity) {\n saml2Entities.push(saml2Entity);\n }\n }\n const samlEntityIds = _.map(\n saml2Entities,\n (saml2EntityConfig) => `${saml2EntityConfig.entityId}|saml2`\n );\n const circlesOfTrust = _.filter(allCirclesOfTrust, (circleOfTrust) => {\n let hasEntityId = false;\n for (const trustedProvider of circleOfTrust.trustedProviders) {\n if (!hasEntityId && samlEntityIds.includes(trustedProvider)) {\n hasEntityId = true;\n }\n }\n return hasEntityId;\n });\n const saml2NodeDependencies = {\n saml2Entities,\n circlesOfTrust,\n };\n return saml2NodeDependencies;\n } catch (error) {\n printMessage(error.message, 'error');\n const saml2NodeDependencies = {\n saml2Entities: [],\n circlesOfTrust: [],\n };\n return saml2NodeDependencies;\n }\n}\n\n/**\n * Find all node configuration objects that are no longer referenced by any tree\n * @returns {Promise<unknown[]>} a promise that resolves to an array of orphaned nodes\n */\nexport async function findOrphanedNodes(): Promise<unknown[]> {\n const allNodes = [];\n const orphanedNodes = [];\n let types = [];\n const allJourneys = (await getTrees()).result;\n let errorMessage = '';\n const errorTypes = [];\n\n createProgressIndicator(\n undefined,\n `Counting total nodes...`,\n 'indeterminate'\n );\n try {\n types = (await getNodeTypes()).result;\n } catch (error) {\n printMessage('Error retrieving all available node types:', 'error');\n printMessage(error.response.data, 'error');\n return [];\n }\n for (const type of types) {\n try {\n // eslint-disable-next-line no-await-in-loop, no-loop-func\n const nodes = (await getNodesByType(type._id)).result;\n for (const node of nodes) {\n allNodes.push(node);\n updateProgressIndicator(\n `${allNodes.length} total nodes${errorMessage}`\n );\n }\n } catch (error) {\n errorTypes.push(type._id);\n errorMessage = ` (Skipped type(s): ${errorTypes})`['yellow'];\n updateProgressIndicator(`${allNodes.length} total nodes${errorMessage}`);\n }\n }\n if (errorTypes.length > 0) {\n stopProgressIndicator(\n `${allNodes.length} total nodes${errorMessage}`,\n 'warn'\n );\n } else {\n stopProgressIndicator(`${allNodes.length} total nodes`, 'success');\n }\n\n createProgressIndicator(\n undefined,\n 'Counting active nodes...',\n 'indeterminate'\n );\n const activeNodes = [];\n for (const journey of allJourneys) {\n for (const nodeId in journey.nodes) {\n if ({}.hasOwnProperty.call(journey.nodes, nodeId)) {\n activeNodes.push(nodeId);\n updateProgressIndicator(`${activeNodes.length} active nodes`);\n const node = journey.nodes[nodeId];\n if (containerNodes.includes(node.nodeType)) {\n const containerNode = await getNode(nodeId, node.nodeType);\n for (const innerNode of containerNode.nodes) {\n activeNodes.push(innerNode._id);\n updateProgressIndicator(`${activeNodes.length} active nodes`);\n }\n }\n }\n }\n }\n stopProgressIndicator(`${activeNodes.length} active nodes`, 'success');\n\n createProgressIndicator(\n undefined,\n 'Calculating orphaned nodes...',\n 'indeterminate'\n );\n const diff = allNodes.filter((x) => !activeNodes.includes(x._id));\n for (const orphanedNode of diff) {\n orphanedNodes.push(orphanedNode);\n }\n stopProgressIndicator(`${orphanedNodes.length} orphaned nodes`, 'success');\n return orphanedNodes;\n}\n\n/**\n * Remove orphaned nodes\n * @param {[Object]} orphanedNodes Pass in an array of orphaned node configuration objects to remove\n * @returns {Promise<unknown[]>} a promise that resolves to an array nodes that encountered errors deleting\n */\nexport async function removeOrphanedNodes(\n orphanedNodes: unknown[]\n): Promise<unknown[]> {\n const errorNodes = [];\n createProgressIndicator(orphanedNodes.length, 'Removing orphaned nodes...');\n for (const node of orphanedNodes) {\n updateProgressIndicator(`Removing ${node['_id']}...`);\n try {\n // eslint-disable-next-line no-await-in-loop\n await deleteNode(node['_id'], node['_type']['_id']);\n } catch (deleteError) {\n errorNodes.push(node);\n printMessage(` ${deleteError}`, 'error');\n }\n }\n stopProgressIndicator(`Removed ${orphanedNodes.length} orphaned nodes.`);\n return errorNodes;\n}\n\nconst OOTB_NODE_TYPES_7 = [\n 'AcceptTermsAndConditionsNode',\n 'AccountActiveDecisionNode',\n 'AccountLockoutNode',\n 'AgentDataStoreDecisionNode',\n 'AnonymousSessionUpgradeNode',\n 'AnonymousUserNode',\n 'AttributeCollectorNode',\n 'AttributePresentDecisionNode',\n 'AttributeValueDecisionNode',\n 'AuthLevelDecisionNode',\n 'ChoiceCollectorNode',\n 'ConsentNode',\n 'CookiePresenceDecisionNode',\n 'CreateObjectNode',\n 'CreatePasswordNode',\n 'DataStoreDecisionNode',\n 'DeviceGeoFencingNode',\n 'DeviceLocationMatchNode',\n 'DeviceMatchNode',\n 'DeviceProfileCollectorNode',\n 'DeviceSaveNode',\n 'DeviceTamperingVerificationNode',\n 'DisplayUserNameNode',\n 'EmailSuspendNode',\n 'EmailTemplateNode',\n 'IdentifyExistingUserNode',\n 'IncrementLoginCountNode',\n 'InnerTreeEvaluatorNode',\n 'IotAuthenticationNode',\n 'IotRegistrationNode',\n 'KbaCreateNode',\n 'KbaDecisionNode',\n 'KbaVerifyNode',\n 'LdapDecisionNode',\n 'LoginCountDecisionNode',\n 'MessageNode',\n 'MetadataNode',\n 'MeterNode',\n 'ModifyAuthLevelNode',\n 'OneTimePasswordCollectorDecisionNode',\n 'OneTimePasswordGeneratorNode',\n 'OneTimePasswordSmsSenderNode',\n 'OneTimePasswordSmtpSenderNode',\n 'PageNode',\n 'PasswordCollectorNode',\n 'PatchObjectNode',\n 'PersistentCookieDecisionNode',\n 'PollingWaitNode',\n 'ProfileCompletenessDecisionNode',\n 'ProvisionDynamicAccountNode',\n 'ProvisionIdmAccountNode',\n 'PushAuthenticationSenderNode',\n 'PushResultVerifierNode',\n 'QueryFilterDecisionNode',\n 'RecoveryCodeCollectorDecisionNode',\n 'RecoveryCodeDisplayNode',\n 'RegisterLogoutWebhookNode',\n 'RemoveSessionPropertiesNode',\n 'RequiredAttributesDecisionNode',\n 'RetryLimitDecisionNode',\n 'ScriptedDecisionNode',\n 'SelectIdPNode',\n 'SessionDataNode',\n 'SetFailureUrlNode',\n 'SetPersistentCookieNode',\n 'SetSessionPropertiesNode',\n 'SetSuccessUrlNode',\n 'SocialFacebookNode',\n 'SocialGoogleNode',\n 'SocialNode',\n 'SocialOAuthIgnoreProfileNode',\n 'SocialOpenIdConnectNode',\n 'SocialProviderHandlerNode',\n 'TermsAndConditionsDecisionNode',\n 'TimeSinceDecisionNode',\n 'TimerStartNode',\n 'TimerStopNode',\n 'UsernameCollectorNode',\n 'ValidatedPasswordNode',\n 'ValidatedUsernameNode',\n 'WebAuthnAuthenticationNode',\n 'WebAuthnDeviceStorageNode',\n 'WebAuthnRegistrationNode',\n 'ZeroPageLoginNode',\n 'product-CertificateCollectorNode',\n 'product-CertificateUserExtractorNode',\n 'product-CertificateValidationNode',\n 'product-KerberosNode',\n 'product-ReCaptchaNode',\n 'product-Saml2Node',\n 'product-WriteFederationInformationNode',\n];\n\nconst OOTB_NODE_TYPES_7_1 = [\n 'PushRegistrationNode',\n 'GetAuthenticatorAppNode',\n 'MultiFactorRegistrationOptionsNode',\n 'OptOutMultiFactorAuthenticationNode',\n].concat(OOTB_NODE_TYPES_7);\n\nconst OOTB_NODE_TYPES_7_2 = [\n 'OathRegistrationNode',\n 'OathTokenVerifierNode',\n 'PassthroughAuthenticationNode',\n 'ConfigProviderNode',\n 'DebugNode',\n].concat(OOTB_NODE_TYPES_7_1);\n\nconst OOTB_NODE_TYPES_7_3 = [].concat(OOTB_NODE_TYPES_7_2);\n\nconst OOTB_NODE_TYPES_6_5 = [\n 'AbstractSocialAuthLoginNode',\n 'AccountLockoutNode',\n 'AgentDataStoreDecisionNode',\n 'AnonymousUserNode',\n 'AuthLevelDecisionNode',\n 'ChoiceCollectorNode',\n 'CookiePresenceDecisionNode',\n 'CreatePasswordNode',\n 'DataStoreDecisionNode',\n 'InnerTreeEvaluatorNode',\n 'LdapDecisionNode',\n 'MessageNode',\n 'MetadataNode',\n 'MeterNode',\n 'ModifyAuthLevelNode',\n 'OneTimePasswordCollectorDecisionNode',\n 'OneTimePasswordGeneratorNode',\n 'OneTimePasswordSmsSenderNode',\n 'OneTimePasswordSmtpSenderNode',\n 'PageNode',\n 'PasswordCollectorNode',\n 'PersistentCookieDecisionNode',\n 'PollingWaitNode',\n 'ProvisionDynamicAccountNode',\n 'ProvisionIdmAccountNode',\n 'PushAuthenticationSenderNode',\n 'PushResultVerifierNode',\n 'RecoveryCodeCollectorDecisionNode',\n 'RecoveryCodeDisplayNode',\n 'RegisterLogoutWebhookNode',\n 'RemoveSessionPropertiesNode',\n 'RetryLimitDecisionNode',\n 'ScriptedDecisionNode',\n 'SessionDataNode',\n 'SetFailureUrlNode',\n 'SetPersistentCookieNode',\n 'SetSessionPropertiesNode',\n 'SetSuccessUrlNode',\n 'SocialFacebookNode',\n 'SocialGoogleNode',\n 'SocialNode',\n 'SocialOAuthIgnoreProfileNode',\n 'SocialOpenIdConnectNode',\n 'TimerStartNode',\n 'TimerStopNode',\n 'UsernameCollectorNode',\n 'WebAuthnAuthenticationNode',\n 'WebAuthnRegistrationNode',\n 'ZeroPageLoginNode',\n];\n\nconst OOTB_NODE_TYPES_6 = [\n 'AbstractSocialAuthLoginNode',\n 'AccountLockoutNode',\n 'AgentDataStoreDecisionNode',\n 'AnonymousUserNode',\n 'AuthLevelDecisionNode',\n 'ChoiceCollectorNode',\n 'CookiePresenceDecisionNode',\n 'CreatePasswordNode',\n 'DataStoreDecisionNode',\n 'InnerTreeEvaluatorNode',\n 'LdapDecisionNode',\n 'MessageNode',\n 'MetadataNode',\n 'MeterNode',\n 'ModifyAuthLevelNode',\n 'OneTimePasswordCollectorDecisionNode',\n 'OneTimePasswordGeneratorNode',\n 'OneTimePasswordSmsSenderNode',\n 'OneTimePasswordSmtpSenderNode',\n 'PageNode',\n 'PasswordCollectorNode',\n 'PersistentCookieDecisionNode',\n 'PollingWaitNode',\n 'ProvisionDynamicAccountNode',\n 'ProvisionIdmAccountNode',\n 'PushAuthenticationSenderNode',\n 'PushResultVerifierNode',\n 'RecoveryCodeCollectorDecisionNode',\n 'RecoveryCodeDisplayNode',\n 'RegisterLogoutWebhookNode',\n 'RemoveSessionPropertiesNode',\n 'RetryLimitDecisionNode',\n 'ScriptedDecisionNode',\n 'SessionDataNode',\n 'SetFailureUrlNode',\n 'SetPersistentCookieNode',\n 'SetSessionPropertiesNode',\n 'SetSuccessUrlNode',\n 'SocialFacebookNode',\n 'SocialGoogleNode',\n 'SocialNode',\n 'SocialOAuthIgnoreProfileNode',\n 'SocialOpenIdConnectNode',\n 'TimerStartNode',\n 'TimerStopNode',\n 'UsernameCollectorNode',\n 'WebAuthnAuthenticationNode',\n 'WebAuthnRegistrationNode',\n 'ZeroPageLoginNode',\n];\n\nconst CLOUD_ONLY_NODE_TYPES = [\n 'IdentityStoreDecisionNode',\n 'AutonomousAccessSignalNode',\n 'AutonomousAccessDecisionNode',\n 'AutonomousAccessResultNode',\n];\n\nconst PREMIUM_NODE_TYPES = [\n 'AutonomousAccessSignalNode',\n 'AutonomousAccessDecisionNode',\n 'AutonomousAccessResultNode',\n];\n\n/**\n * Analyze if a node is a premium node.\n * @param {string} nodeType Node type\n * @returns {boolean} True if the node type is premium, false otherwise.\n */\nexport function isPremiumNode(nodeType: string): boolean {\n return PREMIUM_NODE_TYPES.includes(nodeType);\n}\n\n/**\n * Analyze if a node is a cloud-only node.\n * @param {string} nodeType Node type\n * @returns {boolean} True if the node type is cloud-only, false otherwise.\n */\nexport function isCloudOnlyNode(nodeType: string): boolean {\n return CLOUD_ONLY_NODE_TYPES.includes(nodeType);\n}\n\n/**\n * Analyze if a node is custom.\n * @param {string} nodeType Node type\n * @returns {boolean} True if the node type is custom, false otherwise.\n */\nexport function isCustomNode(nodeType: string): boolean {\n let ootbNodeTypes = [];\n switch (storage.session.getAmVersion()) {\n case '7.1.0':\n ootbNodeTypes = OOTB_NODE_TYPES_7_1.slice(0);\n break;\n case '7.2.0':\n ootbNodeTypes = OOTB_NODE_TYPES_7_2.slice(0);\n break;\n case '7.3.0':\n ootbNodeTypes = OOTB_NODE_TYPES_7_3.slice(0);\n break;\n case '7.0.0':\n case '7.0.1':\n case '7.0.2':\n ootbNodeTypes = OOTB_NODE_TYPES_7.slice(0);\n break;\n case '6.5.3':\n case '6.5.2.3':\n case '6.5.2.2':\n case '6.5.2.1':\n case '6.5.2':\n case '6.5.1':\n case '6.5.0.2':\n case '6.5.0.1':\n ootbNodeTypes = OOTB_NODE_TYPES_6_5.slice(0);\n break;\n case '6.0.0.7':\n case '6.0.0.6':\n case '6.0.0.5':\n case '6.0.0.4':\n case '6.0.0.3':\n case '6.0.0.2':\n case '6.0.0.1':\n case '6.0.0':\n ootbNodeTypes = OOTB_NODE_TYPES_6.slice(0);\n break;\n default:\n return true;\n }\n return (\n !ootbNodeTypes.includes(nodeType) &&\n !isPremiumNode(nodeType) &&\n !isCloudOnlyNode(nodeType)\n );\n}\n\n/**\n * Get a node's classifications, which can be one or multiple of:\n * - standard: can run on any instance of a ForgeRock platform\n * - cloud: utilize nodes, which are exclusively available in the ForgeRock Identity Cloud\n * - premium: utilizes nodes, which come at a premium\n * @param {string} nodeType Node type\n * @returns {NodeClassification[]} an array of one or multiple classifications\n */\nexport function getNodeClassification(nodeType: string): NodeClassification[] {\n const classifications: NodeClassification[] = [];\n const premium = isPremiumNode(nodeType);\n const custom = isCustomNode(nodeType);\n const cloud = isCloudOnlyNode(nodeType);\n if (custom) {\n classifications.push(NodeClassification.CUSTOM);\n } else if (cloud) {\n classifications.push(NodeClassification.CLOUD);\n } else {\n classifications.push(NodeClassification.STANDARD);\n }\n if (premium) classifications.push(NodeClassification.PREMIUM);\n return classifications;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NodeOps.js","names":["containerNodes","scriptedNodes","emailTemplateNodes","emptyScriptPlaceholder","getSaml2NodeDependencies","nodeObject","allProviders","allCirclesOfTrust","samlProperties","saml2EntityPromises","samlProperty","entityId","_","last","split","entity","find","providerResponse","getProviderByLocationAndId","location","_id","entityLocation","metaDataResponse","getProviderMetadata","base64EntityXML","encodeBase64Url","push","error","printMessage","message","saml2EntitiesPromisesResults","Promise","all","saml2Entities","saml2Entity","samlEntityIds","map","saml2EntityConfig","circlesOfTrust","filter","circleOfTrust","hasEntityId","trustedProvider","trustedProviders","includes","saml2NodeDependencies","findOrphanedNodes","allNodes","orphanedNodes","types","allJourneys","getTrees","result","errorMessage","errorTypes","createProgressIndicator","undefined","getNodeTypes","response","data","type","nodes","getNodesByType","node","updateProgressIndicator","length","stopProgressIndicator","activeNodes","journey","nodeId","hasOwnProperty","call","nodeType","containerNode","getNode","innerNode","diff","x","orphanedNode","removeOrphanedNodes","errorNodes","deleteNode","deleteError","OOTB_NODE_TYPES_7","OOTB_NODE_TYPES_7_1","concat","OOTB_NODE_TYPES_7_2","OOTB_NODE_TYPES_7_3","OOTB_NODE_TYPES_6_5","OOTB_NODE_TYPES_6","CLOUD_ONLY_NODE_TYPES","PREMIUM_NODE_TYPES","isPremiumNode","isCloudOnlyNode","isCustomNode","ootbNodeTypes","state","getAmVersion","slice","getNodeClassification","classifications","premium","custom","cloud","NodeClassification","CUSTOM","CLOUD","STANDARD","PREMIUM"],"sources":["ops/NodeOps.ts"],"sourcesContent":["import _ from 'lodash';\nimport * as state from '../shared/State';\nimport {\n getNode,\n deleteNode,\n getNodeTypes,\n getNodesByType,\n} from '../api/NodeApi';\nimport { getTrees } from '../api/TreeApi';\nimport {\n printMessage,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from './utils/Console';\nimport {\n getProviderByLocationAndId,\n getProviderMetadata,\n} from '../api/Saml2Api';\nimport { encodeBase64Url } from '../api/utils/Base64';\nimport { NodeClassification } from './OpsTypes';\n\nconst containerNodes = ['PageNode', 'CustomPageNode'];\n\nconst scriptedNodes = [\n 'ConfigProviderNode',\n 'ScriptedDecisionNode',\n 'ClientScriptNode',\n 'SocialProviderHandlerNode',\n 'CustomScriptNode',\n];\n\nconst emailTemplateNodes = ['EmailSuspendNode', 'EmailTemplateNode'];\n\nconst emptyScriptPlaceholder = '[Empty]';\n\n/**\n * Helper to get all SAML2 dependencies for a given node object\n * @param {Object} nodeObject node object\n * @param {[Object]} allProviders array of all saml2 providers objects\n * @param {[Object]} allCirclesOfTrust array of all circle of trust objects\n * @returns {Promise} a promise that resolves to an object containing a saml2 dependencies\n */\nasync function getSaml2NodeDependencies(\n nodeObject,\n allProviders,\n allCirclesOfTrust\n) {\n const samlProperties = ['metaAlias', 'idpEntityId'];\n const saml2EntityPromises = [];\n for (const samlProperty of samlProperties) {\n // In the following line nodeObject[samlProperty] will look like '/alpha/iSPAzure'.\n const entityId =\n samlProperty === 'metaAlias'\n ? _.last(nodeObject[samlProperty].split('/'))\n : nodeObject[samlProperty];\n const entity = _.find(allProviders, { entityId });\n if (entity) {\n try {\n const providerResponse = await getProviderByLocationAndId(\n entity.location,\n entity._id\n );\n /**\n * Adding entityLocation here to the entityResponse because the import tool\n * needs to know whether the saml2 entity is remote or not (this will be removed\n * from the config before importing see updateSaml2Entity and createSaml2Entity functions).\n * Importing a remote saml2 entity is a slightly different request (see createSaml2Entity).\n */\n providerResponse.entityLocation = entity.location;\n\n if (entity.location === 'remote') {\n // get the xml representation of this entity and add it to the entityResponse;\n const metaDataResponse = await getProviderMetadata(\n providerResponse.entityId\n );\n providerResponse.base64EntityXML = encodeBase64Url(metaDataResponse);\n }\n saml2EntityPromises.push(providerResponse);\n } catch (error) {\n printMessage(error.message, 'error');\n }\n }\n }\n try {\n const saml2EntitiesPromisesResults = await Promise.all(saml2EntityPromises);\n const saml2Entities = [];\n for (const saml2Entity of saml2EntitiesPromisesResults) {\n if (saml2Entity) {\n saml2Entities.push(saml2Entity);\n }\n }\n const samlEntityIds = _.map(\n saml2Entities,\n (saml2EntityConfig) => `${saml2EntityConfig.entityId}|saml2`\n );\n const circlesOfTrust = _.filter(allCirclesOfTrust, (circleOfTrust) => {\n let hasEntityId = false;\n for (const trustedProvider of circleOfTrust.trustedProviders) {\n if (!hasEntityId && samlEntityIds.includes(trustedProvider)) {\n hasEntityId = true;\n }\n }\n return hasEntityId;\n });\n const saml2NodeDependencies = {\n saml2Entities,\n circlesOfTrust,\n };\n return saml2NodeDependencies;\n } catch (error) {\n printMessage(error.message, 'error');\n const saml2NodeDependencies = {\n saml2Entities: [],\n circlesOfTrust: [],\n };\n return saml2NodeDependencies;\n }\n}\n\n/**\n * Find all node configuration objects that are no longer referenced by any tree\n * @returns {Promise<unknown[]>} a promise that resolves to an array of orphaned nodes\n */\nexport async function findOrphanedNodes(): Promise<unknown[]> {\n const allNodes = [];\n const orphanedNodes = [];\n let types = [];\n const allJourneys = (await getTrees()).result;\n let errorMessage = '';\n const errorTypes = [];\n\n createProgressIndicator(\n undefined,\n `Counting total nodes...`,\n 'indeterminate'\n );\n try {\n types = (await getNodeTypes()).result;\n } catch (error) {\n printMessage('Error retrieving all available node types:', 'error');\n printMessage(error.response.data, 'error');\n return [];\n }\n for (const type of types) {\n try {\n // eslint-disable-next-line no-await-in-loop, no-loop-func\n const nodes = (await getNodesByType(type._id)).result;\n for (const node of nodes) {\n allNodes.push(node);\n updateProgressIndicator(\n `${allNodes.length} total nodes${errorMessage}`\n );\n }\n } catch (error) {\n errorTypes.push(type._id);\n errorMessage = ` (Skipped type(s): ${errorTypes})`['yellow'];\n updateProgressIndicator(`${allNodes.length} total nodes${errorMessage}`);\n }\n }\n if (errorTypes.length > 0) {\n stopProgressIndicator(\n `${allNodes.length} total nodes${errorMessage}`,\n 'warn'\n );\n } else {\n stopProgressIndicator(`${allNodes.length} total nodes`, 'success');\n }\n\n createProgressIndicator(\n undefined,\n 'Counting active nodes...',\n 'indeterminate'\n );\n const activeNodes = [];\n for (const journey of allJourneys) {\n for (const nodeId in journey.nodes) {\n if ({}.hasOwnProperty.call(journey.nodes, nodeId)) {\n activeNodes.push(nodeId);\n updateProgressIndicator(`${activeNodes.length} active nodes`);\n const node = journey.nodes[nodeId];\n if (containerNodes.includes(node.nodeType)) {\n const containerNode = await getNode(nodeId, node.nodeType);\n for (const innerNode of containerNode.nodes) {\n activeNodes.push(innerNode._id);\n updateProgressIndicator(`${activeNodes.length} active nodes`);\n }\n }\n }\n }\n }\n stopProgressIndicator(`${activeNodes.length} active nodes`, 'success');\n\n createProgressIndicator(\n undefined,\n 'Calculating orphaned nodes...',\n 'indeterminate'\n );\n const diff = allNodes.filter((x) => !activeNodes.includes(x._id));\n for (const orphanedNode of diff) {\n orphanedNodes.push(orphanedNode);\n }\n stopProgressIndicator(`${orphanedNodes.length} orphaned nodes`, 'success');\n return orphanedNodes;\n}\n\n/**\n * Remove orphaned nodes\n * @param {[Object]} orphanedNodes Pass in an array of orphaned node configuration objects to remove\n * @returns {Promise<unknown[]>} a promise that resolves to an array nodes that encountered errors deleting\n */\nexport async function removeOrphanedNodes(\n orphanedNodes: unknown[]\n): Promise<unknown[]> {\n const errorNodes = [];\n createProgressIndicator(orphanedNodes.length, 'Removing orphaned nodes...');\n for (const node of orphanedNodes) {\n updateProgressIndicator(`Removing ${node['_id']}...`);\n try {\n // eslint-disable-next-line no-await-in-loop\n await deleteNode(node['_id'], node['_type']['_id']);\n } catch (deleteError) {\n errorNodes.push(node);\n printMessage(` ${deleteError}`, 'error');\n }\n }\n stopProgressIndicator(`Removed ${orphanedNodes.length} orphaned nodes.`);\n return errorNodes;\n}\n\nconst OOTB_NODE_TYPES_7 = [\n 'AcceptTermsAndConditionsNode',\n 'AccountActiveDecisionNode',\n 'AccountLockoutNode',\n 'AgentDataStoreDecisionNode',\n 'AnonymousSessionUpgradeNode',\n 'AnonymousUserNode',\n 'AttributeCollectorNode',\n 'AttributePresentDecisionNode',\n 'AttributeValueDecisionNode',\n 'AuthLevelDecisionNode',\n 'ChoiceCollectorNode',\n 'ConsentNode',\n 'CookiePresenceDecisionNode',\n 'CreateObjectNode',\n 'CreatePasswordNode',\n 'DataStoreDecisionNode',\n 'DeviceGeoFencingNode',\n 'DeviceLocationMatchNode',\n 'DeviceMatchNode',\n 'DeviceProfileCollectorNode',\n 'DeviceSaveNode',\n 'DeviceTamperingVerificationNode',\n 'DisplayUserNameNode',\n 'EmailSuspendNode',\n 'EmailTemplateNode',\n 'IdentifyExistingUserNode',\n 'IncrementLoginCountNode',\n 'InnerTreeEvaluatorNode',\n 'IotAuthenticationNode',\n 'IotRegistrationNode',\n 'KbaCreateNode',\n 'KbaDecisionNode',\n 'KbaVerifyNode',\n 'LdapDecisionNode',\n 'LoginCountDecisionNode',\n 'MessageNode',\n 'MetadataNode',\n 'MeterNode',\n 'ModifyAuthLevelNode',\n 'OneTimePasswordCollectorDecisionNode',\n 'OneTimePasswordGeneratorNode',\n 'OneTimePasswordSmsSenderNode',\n 'OneTimePasswordSmtpSenderNode',\n 'PageNode',\n 'PasswordCollectorNode',\n 'PatchObjectNode',\n 'PersistentCookieDecisionNode',\n 'PollingWaitNode',\n 'ProfileCompletenessDecisionNode',\n 'ProvisionDynamicAccountNode',\n 'ProvisionIdmAccountNode',\n 'PushAuthenticationSenderNode',\n 'PushResultVerifierNode',\n 'QueryFilterDecisionNode',\n 'RecoveryCodeCollectorDecisionNode',\n 'RecoveryCodeDisplayNode',\n 'RegisterLogoutWebhookNode',\n 'RemoveSessionPropertiesNode',\n 'RequiredAttributesDecisionNode',\n 'RetryLimitDecisionNode',\n 'ScriptedDecisionNode',\n 'SelectIdPNode',\n 'SessionDataNode',\n 'SetFailureUrlNode',\n 'SetPersistentCookieNode',\n 'SetSessionPropertiesNode',\n 'SetSuccessUrlNode',\n 'SocialFacebookNode',\n 'SocialGoogleNode',\n 'SocialNode',\n 'SocialOAuthIgnoreProfileNode',\n 'SocialOpenIdConnectNode',\n 'SocialProviderHandlerNode',\n 'TermsAndConditionsDecisionNode',\n 'TimeSinceDecisionNode',\n 'TimerStartNode',\n 'TimerStopNode',\n 'UsernameCollectorNode',\n 'ValidatedPasswordNode',\n 'ValidatedUsernameNode',\n 'WebAuthnAuthenticationNode',\n 'WebAuthnDeviceStorageNode',\n 'WebAuthnRegistrationNode',\n 'ZeroPageLoginNode',\n 'product-CertificateCollectorNode',\n 'product-CertificateUserExtractorNode',\n 'product-CertificateValidationNode',\n 'product-KerberosNode',\n 'product-ReCaptchaNode',\n 'product-Saml2Node',\n 'product-WriteFederationInformationNode',\n];\n\nconst OOTB_NODE_TYPES_7_1 = [\n 'PushRegistrationNode',\n 'GetAuthenticatorAppNode',\n 'MultiFactorRegistrationOptionsNode',\n 'OptOutMultiFactorAuthenticationNode',\n].concat(OOTB_NODE_TYPES_7);\n\nconst OOTB_NODE_TYPES_7_2 = [\n 'OathRegistrationNode',\n 'OathTokenVerifierNode',\n 'PassthroughAuthenticationNode',\n 'ConfigProviderNode',\n 'DebugNode',\n].concat(OOTB_NODE_TYPES_7_1);\n\nconst OOTB_NODE_TYPES_7_3 = [].concat(OOTB_NODE_TYPES_7_2);\n\nconst OOTB_NODE_TYPES_6_5 = [\n 'AbstractSocialAuthLoginNode',\n 'AccountLockoutNode',\n 'AgentDataStoreDecisionNode',\n 'AnonymousUserNode',\n 'AuthLevelDecisionNode',\n 'ChoiceCollectorNode',\n 'CookiePresenceDecisionNode',\n 'CreatePasswordNode',\n 'DataStoreDecisionNode',\n 'InnerTreeEvaluatorNode',\n 'LdapDecisionNode',\n 'MessageNode',\n 'MetadataNode',\n 'MeterNode',\n 'ModifyAuthLevelNode',\n 'OneTimePasswordCollectorDecisionNode',\n 'OneTimePasswordGeneratorNode',\n 'OneTimePasswordSmsSenderNode',\n 'OneTimePasswordSmtpSenderNode',\n 'PageNode',\n 'PasswordCollectorNode',\n 'PersistentCookieDecisionNode',\n 'PollingWaitNode',\n 'ProvisionDynamicAccountNode',\n 'ProvisionIdmAccountNode',\n 'PushAuthenticationSenderNode',\n 'PushResultVerifierNode',\n 'RecoveryCodeCollectorDecisionNode',\n 'RecoveryCodeDisplayNode',\n 'RegisterLogoutWebhookNode',\n 'RemoveSessionPropertiesNode',\n 'RetryLimitDecisionNode',\n 'ScriptedDecisionNode',\n 'SessionDataNode',\n 'SetFailureUrlNode',\n 'SetPersistentCookieNode',\n 'SetSessionPropertiesNode',\n 'SetSuccessUrlNode',\n 'SocialFacebookNode',\n 'SocialGoogleNode',\n 'SocialNode',\n 'SocialOAuthIgnoreProfileNode',\n 'SocialOpenIdConnectNode',\n 'TimerStartNode',\n 'TimerStopNode',\n 'UsernameCollectorNode',\n 'WebAuthnAuthenticationNode',\n 'WebAuthnRegistrationNode',\n 'ZeroPageLoginNode',\n];\n\nconst OOTB_NODE_TYPES_6 = [\n 'AbstractSocialAuthLoginNode',\n 'AccountLockoutNode',\n 'AgentDataStoreDecisionNode',\n 'AnonymousUserNode',\n 'AuthLevelDecisionNode',\n 'ChoiceCollectorNode',\n 'CookiePresenceDecisionNode',\n 'CreatePasswordNode',\n 'DataStoreDecisionNode',\n 'InnerTreeEvaluatorNode',\n 'LdapDecisionNode',\n 'MessageNode',\n 'MetadataNode',\n 'MeterNode',\n 'ModifyAuthLevelNode',\n 'OneTimePasswordCollectorDecisionNode',\n 'OneTimePasswordGeneratorNode',\n 'OneTimePasswordSmsSenderNode',\n 'OneTimePasswordSmtpSenderNode',\n 'PageNode',\n 'PasswordCollectorNode',\n 'PersistentCookieDecisionNode',\n 'PollingWaitNode',\n 'ProvisionDynamicAccountNode',\n 'ProvisionIdmAccountNode',\n 'PushAuthenticationSenderNode',\n 'PushResultVerifierNode',\n 'RecoveryCodeCollectorDecisionNode',\n 'RecoveryCodeDisplayNode',\n 'RegisterLogoutWebhookNode',\n 'RemoveSessionPropertiesNode',\n 'RetryLimitDecisionNode',\n 'ScriptedDecisionNode',\n 'SessionDataNode',\n 'SetFailureUrlNode',\n 'SetPersistentCookieNode',\n 'SetSessionPropertiesNode',\n 'SetSuccessUrlNode',\n 'SocialFacebookNode',\n 'SocialGoogleNode',\n 'SocialNode',\n 'SocialOAuthIgnoreProfileNode',\n 'SocialOpenIdConnectNode',\n 'TimerStartNode',\n 'TimerStopNode',\n 'UsernameCollectorNode',\n 'WebAuthnAuthenticationNode',\n 'WebAuthnRegistrationNode',\n 'ZeroPageLoginNode',\n];\n\nconst CLOUD_ONLY_NODE_TYPES = [\n 'IdentityStoreDecisionNode',\n 'AutonomousAccessSignalNode',\n 'AutonomousAccessDecisionNode',\n 'AutonomousAccessResultNode',\n];\n\nconst PREMIUM_NODE_TYPES = [\n 'AutonomousAccessSignalNode',\n 'AutonomousAccessDecisionNode',\n 'AutonomousAccessResultNode',\n];\n\n/**\n * Analyze if a node is a premium node.\n * @param {string} nodeType Node type\n * @returns {boolean} True if the node type is premium, false otherwise.\n */\nexport function isPremiumNode(nodeType: string): boolean {\n return PREMIUM_NODE_TYPES.includes(nodeType);\n}\n\n/**\n * Analyze if a node is a cloud-only node.\n * @param {string} nodeType Node type\n * @returns {boolean} True if the node type is cloud-only, false otherwise.\n */\nexport function isCloudOnlyNode(nodeType: string): boolean {\n return CLOUD_ONLY_NODE_TYPES.includes(nodeType);\n}\n\n/**\n * Analyze if a node is custom.\n * @param {string} nodeType Node type\n * @returns {boolean} True if the node type is custom, false otherwise.\n */\nexport function isCustomNode(nodeType: string): boolean {\n let ootbNodeTypes = [];\n switch (state.getAmVersion()) {\n case '7.1.0':\n ootbNodeTypes = OOTB_NODE_TYPES_7_1.slice(0);\n break;\n case '7.2.0':\n ootbNodeTypes = OOTB_NODE_TYPES_7_2.slice(0);\n break;\n case '7.3.0':\n ootbNodeTypes = OOTB_NODE_TYPES_7_3.slice(0);\n break;\n case '7.0.0':\n case '7.0.1':\n case '7.0.2':\n ootbNodeTypes = OOTB_NODE_TYPES_7.slice(0);\n break;\n case '6.5.3':\n case '6.5.2.3':\n case '6.5.2.2':\n case '6.5.2.1':\n case '6.5.2':\n case '6.5.1':\n case '6.5.0.2':\n case '6.5.0.1':\n ootbNodeTypes = OOTB_NODE_TYPES_6_5.slice(0);\n break;\n case '6.0.0.7':\n case '6.0.0.6':\n case '6.0.0.5':\n case '6.0.0.4':\n case '6.0.0.3':\n case '6.0.0.2':\n case '6.0.0.1':\n case '6.0.0':\n ootbNodeTypes = OOTB_NODE_TYPES_6.slice(0);\n break;\n default:\n return true;\n }\n return (\n !ootbNodeTypes.includes(nodeType) &&\n !isPremiumNode(nodeType) &&\n !isCloudOnlyNode(nodeType)\n );\n}\n\n/**\n * Get a node's classifications, which can be one or multiple of:\n * - standard: can run on any instance of a ForgeRock platform\n * - cloud: utilize nodes, which are exclusively available in the ForgeRock Identity Cloud\n * - premium: utilizes nodes, which come at a premium\n * @param {string} nodeType Node type\n * @returns {NodeClassification[]} an array of one or multiple classifications\n */\nexport function getNodeClassification(nodeType: string): NodeClassification[] {\n const classifications: NodeClassification[] = [];\n const premium = isPremiumNode(nodeType);\n const custom = isCustomNode(nodeType);\n const cloud = isCloudOnlyNode(nodeType);\n if (custom) {\n classifications.push(NodeClassification.CUSTOM);\n } else if (cloud) {\n classifications.push(NodeClassification.CLOUD);\n } else {\n classifications.push(NodeClassification.STANDARD);\n }\n if (premium) classifications.push(NodeClassification.PREMIUM);\n return classifications;\n}\n"],"mappings":";;;;;;;;;;;AAAA;AACA;AACA;AAMA;AACA;AAMA;AAIA;AACA;AAAgD;AAAA;AAAA;AAAA;AAAA;AAEhD,IAAMA,cAAc,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC;AAErD,IAAMC,aAAa,GAAG,CACpB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,2BAA2B,EAC3B,kBAAkB,CACnB;AAED,IAAMC,kBAAkB,GAAG,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;AAEpE,IAAMC,sBAAsB,GAAG,SAAS;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAOeC,wBAAwB;EAAA;AAAA;AA6EvC;AACA;AACA;AACA;AAHA;EAAA,8CA7EA,WACEC,UAAU,EACVC,YAAY,EACZC,iBAAiB,EACjB;IACA,IAAMC,cAAc,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC;IACnD,IAAMC,mBAAmB,GAAG,EAAE;IAC9B,KAAK,IAAMC,YAAY,IAAIF,cAAc,EAAE;MACzC;MACA,IAAMG,QAAQ,GACZD,YAAY,KAAK,WAAW,GACxBE,eAAC,CAACC,IAAI,CAACR,UAAU,CAACK,YAAY,CAAC,CAACI,KAAK,CAAC,GAAG,CAAC,CAAC,GAC3CT,UAAU,CAACK,YAAY,CAAC;MAC9B,IAAMK,MAAM,GAAGH,eAAC,CAACI,IAAI,CAACV,YAAY,EAAE;QAAEK;MAAS,CAAC,CAAC;MACjD,IAAII,MAAM,EAAE;QACV,IAAI;UACF,IAAME,gBAAgB,SAAS,IAAAC,oCAA0B,EACvDH,MAAM,CAACI,QAAQ,EACfJ,MAAM,CAACK,GAAG,CACX;UACD;AACR;AACA;AACA;AACA;AACA;UACQH,gBAAgB,CAACI,cAAc,GAAGN,MAAM,CAACI,QAAQ;UAEjD,IAAIJ,MAAM,CAACI,QAAQ,KAAK,QAAQ,EAAE;YAChC;YACA,IAAMG,gBAAgB,SAAS,IAAAC,6BAAmB,EAChDN,gBAAgB,CAACN,QAAQ,CAC1B;YACDM,gBAAgB,CAACO,eAAe,GAAG,IAAAC,qBAAe,EAACH,gBAAgB,CAAC;UACtE;UACAb,mBAAmB,CAACiB,IAAI,CAACT,gBAAgB,CAAC;QAC5C,CAAC,CAAC,OAAOU,KAAK,EAAE;UACd,IAAAC,qBAAY,EAACD,KAAK,CAACE,OAAO,EAAE,OAAO,CAAC;QACtC;MACF;IACF;IACA,IAAI;MACF,IAAMC,4BAA4B,SAASC,OAAO,CAACC,GAAG,CAACvB,mBAAmB,CAAC;MAC3E,IAAMwB,aAAa,GAAG,EAAE;MACxB,KAAK,IAAMC,WAAW,IAAIJ,4BAA4B,EAAE;QACtD,IAAII,WAAW,EAAE;UACfD,aAAa,CAACP,IAAI,CAACQ,WAAW,CAAC;QACjC;MACF;MACA,IAAMC,aAAa,GAAGvB,eAAC,CAACwB,GAAG,CACzBH,aAAa,EACZI,iBAAiB,cAAQA,iBAAiB,CAAC1B,QAAQ,WAAQ,CAC7D;MACD,IAAM2B,cAAc,GAAG1B,eAAC,CAAC2B,MAAM,CAAChC,iBAAiB,EAAGiC,aAAa,IAAK;QACpE,IAAIC,WAAW,GAAG,KAAK;QACvB,KAAK,IAAMC,eAAe,IAAIF,aAAa,CAACG,gBAAgB,EAAE;UAC5D,IAAI,CAACF,WAAW,IAAIN,aAAa,CAACS,QAAQ,CAACF,eAAe,CAAC,EAAE;YAC3DD,WAAW,GAAG,IAAI;UACpB;QACF;QACA,OAAOA,WAAW;MACpB,CAAC,CAAC;MACF,IAAMI,qBAAqB,GAAG;QAC5BZ,aAAa;QACbK;MACF,CAAC;MACD,OAAOO,qBAAqB;IAC9B,CAAC,CAAC,OAAOlB,KAAK,EAAE;MACd,IAAAC,qBAAY,EAACD,KAAK,CAACE,OAAO,EAAE,OAAO,CAAC;MACpC,IAAMgB,sBAAqB,GAAG;QAC5BZ,aAAa,EAAE,EAAE;QACjBK,cAAc,EAAE;MAClB,CAAC;MACD,OAAOO,sBAAqB;IAC9B;EACF,CAAC;EAAA;AAAA;AAAA,SAMqBC,iBAAiB;EAAA;AAAA;AAkFvC;AACA;AACA;AACA;AACA;AAJA;EAAA,uCAlFO,aAAuD;IAC5D,IAAMC,QAAQ,GAAG,EAAE;IACnB,IAAMC,aAAa,GAAG,EAAE;IACxB,IAAIC,KAAK,GAAG,EAAE;IACd,IAAMC,WAAW,GAAG,OAAO,IAAAC,iBAAQ,GAAE,EAAEC,MAAM;IAC7C,IAAIC,YAAY,GAAG,EAAE;IACrB,IAAMC,UAAU,GAAG,EAAE;IAErB,IAAAC,gCAAuB,EACrBC,SAAS,6BAET,eAAe,CAChB;IACD,IAAI;MACFP,KAAK,GAAG,OAAO,IAAAQ,qBAAY,GAAE,EAAEL,MAAM;IACvC,CAAC,CAAC,OAAOzB,KAAK,EAAE;MACd,IAAAC,qBAAY,EAAC,4CAA4C,EAAE,OAAO,CAAC;MACnE,IAAAA,qBAAY,EAACD,KAAK,CAAC+B,QAAQ,CAACC,IAAI,EAAE,OAAO,CAAC;MAC1C,OAAO,EAAE;IACX;IACA,KAAK,IAAMC,IAAI,IAAIX,KAAK,EAAE;MACxB,IAAI;QACF;QACA,IAAMY,KAAK,GAAG,OAAO,IAAAC,uBAAc,EAACF,IAAI,CAACxC,GAAG,CAAC,EAAEgC,MAAM;QACrD,KAAK,IAAMW,IAAI,IAAIF,KAAK,EAAE;UACxBd,QAAQ,CAACrB,IAAI,CAACqC,IAAI,CAAC;UACnB,IAAAC,gCAAuB,YAClBjB,QAAQ,CAACkB,MAAM,yBAAeZ,YAAY,EAC9C;QACH;MACF,CAAC,CAAC,OAAO1B,KAAK,EAAE;QACd2B,UAAU,CAAC5B,IAAI,CAACkC,IAAI,CAACxC,GAAG,CAAC;QACzBiC,YAAY,GAAG,6BAAsBC,UAAU,OAAI,QAAQ,CAAC;QAC5D,IAAAU,gCAAuB,YAAIjB,QAAQ,CAACkB,MAAM,yBAAeZ,YAAY,EAAG;MAC1E;IACF;IACA,IAAIC,UAAU,CAACW,MAAM,GAAG,CAAC,EAAE;MACzB,IAAAC,8BAAqB,YAChBnB,QAAQ,CAACkB,MAAM,yBAAeZ,YAAY,GAC7C,MAAM,CACP;IACH,CAAC,MAAM;MACL,IAAAa,8BAAqB,YAAInB,QAAQ,CAACkB,MAAM,mBAAgB,SAAS,CAAC;IACpE;IAEA,IAAAV,gCAAuB,EACrBC,SAAS,EACT,0BAA0B,EAC1B,eAAe,CAChB;IACD,IAAMW,WAAW,GAAG,EAAE;IACtB,KAAK,IAAMC,OAAO,IAAIlB,WAAW,EAAE;MACjC,KAAK,IAAMmB,MAAM,IAAID,OAAO,CAACP,KAAK,EAAE;QAClC,IAAI,CAAC,CAAC,CAACS,cAAc,CAACC,IAAI,CAACH,OAAO,CAACP,KAAK,EAAEQ,MAAM,CAAC,EAAE;UACjDF,WAAW,CAACzC,IAAI,CAAC2C,MAAM,CAAC;UACxB,IAAAL,gCAAuB,YAAIG,WAAW,CAACF,MAAM,mBAAgB;UAC7D,IAAMF,KAAI,GAAGK,OAAO,CAACP,KAAK,CAACQ,MAAM,CAAC;UAClC,IAAIrE,cAAc,CAAC4C,QAAQ,CAACmB,KAAI,CAACS,QAAQ,CAAC,EAAE;YAC1C,IAAMC,aAAa,SAAS,IAAAC,gBAAO,EAACL,MAAM,EAAEN,KAAI,CAACS,QAAQ,CAAC;YAC1D,KAAK,IAAMG,SAAS,IAAIF,aAAa,CAACZ,KAAK,EAAE;cAC3CM,WAAW,CAACzC,IAAI,CAACiD,SAAS,CAACvD,GAAG,CAAC;cAC/B,IAAA4C,gCAAuB,YAAIG,WAAW,CAACF,MAAM,mBAAgB;YAC/D;UACF;QACF;MACF;IACF;IACA,IAAAC,8BAAqB,YAAIC,WAAW,CAACF,MAAM,oBAAiB,SAAS,CAAC;IAEtE,IAAAV,gCAAuB,EACrBC,SAAS,EACT,+BAA+B,EAC/B,eAAe,CAChB;IACD,IAAMoB,IAAI,GAAG7B,QAAQ,CAACR,MAAM,CAAEsC,CAAC,IAAK,CAACV,WAAW,CAACvB,QAAQ,CAACiC,CAAC,CAACzD,GAAG,CAAC,CAAC;IACjE,KAAK,IAAM0D,YAAY,IAAIF,IAAI,EAAE;MAC/B5B,aAAa,CAACtB,IAAI,CAACoD,YAAY,CAAC;IAClC;IACA,IAAAZ,8BAAqB,YAAIlB,aAAa,CAACiB,MAAM,sBAAmB,SAAS,CAAC;IAC1E,OAAOjB,aAAa;EACtB,CAAC;EAAA;AAAA;AAAA,SAOqB+B,mBAAmB;EAAA;AAAA;AAAA;EAAA,yCAAlC,WACL/B,aAAwB,EACJ;IACpB,IAAMgC,UAAU,GAAG,EAAE;IACrB,IAAAzB,gCAAuB,EAACP,aAAa,CAACiB,MAAM,EAAE,4BAA4B,CAAC;IAC3E,KAAK,IAAMF,IAAI,IAAIf,aAAa,EAAE;MAChC,IAAAgB,gCAAuB,qBAAaD,IAAI,CAAC,KAAK,CAAC,SAAM;MACrD,IAAI;QACF;QACA,MAAM,IAAAkB,mBAAU,EAAClB,IAAI,CAAC,KAAK,CAAC,EAAEA,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;MACrD,CAAC,CAAC,OAAOmB,WAAW,EAAE;QACpBF,UAAU,CAACtD,IAAI,CAACqC,IAAI,CAAC;QACrB,IAAAnC,qBAAY,aAAKsD,WAAW,GAAI,OAAO,CAAC;MAC1C;IACF;IACA,IAAAhB,8BAAqB,oBAAYlB,aAAa,CAACiB,MAAM,sBAAmB;IACxE,OAAOe,UAAU;EACnB,CAAC;EAAA;AAAA;AAED,IAAMG,iBAAiB,GAAG,CACxB,8BAA8B,EAC9B,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,EAC5B,6BAA6B,EAC7B,mBAAmB,EACnB,wBAAwB,EACxB,8BAA8B,EAC9B,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,EACrB,aAAa,EACb,4BAA4B,EAC5B,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,iBAAiB,EACjB,4BAA4B,EAC5B,gBAAgB,EAChB,iCAAiC,EACjC,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,sCAAsC,EACtC,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,EAC/B,UAAU,EACV,uBAAuB,EACvB,iBAAiB,EACjB,8BAA8B,EAC9B,iBAAiB,EACjB,iCAAiC,EACjC,6BAA6B,EAC7B,yBAAyB,EACzB,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,EACzB,mCAAmC,EACnC,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,EAC7B,gCAAgC,EAChC,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,8BAA8B,EAC9B,yBAAyB,EACzB,2BAA2B,EAC3B,gCAAgC,EAChC,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,kCAAkC,EAClC,sCAAsC,EACtC,mCAAmC,EACnC,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,wCAAwC,CACzC;AAED,IAAMC,mBAAmB,GAAG,CAC1B,sBAAsB,EACtB,yBAAyB,EACzB,oCAAoC,EACpC,qCAAqC,CACtC,CAACC,MAAM,CAACF,iBAAiB,CAAC;AAE3B,IAAMG,mBAAmB,GAAG,CAC1B,sBAAsB,EACtB,uBAAuB,EACvB,+BAA+B,EAC/B,oBAAoB,EACpB,WAAW,CACZ,CAACD,MAAM,CAACD,mBAAmB,CAAC;AAE7B,IAAMG,mBAAmB,GAAG,EAAE,CAACF,MAAM,CAACC,mBAAmB,CAAC;AAE1D,IAAME,mBAAmB,GAAG,CAC1B,6BAA6B,EAC7B,oBAAoB,EACpB,4BAA4B,EAC5B,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,sCAAsC,EACtC,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,EAC/B,UAAU,EACV,uBAAuB,EACvB,8BAA8B,EAC9B,iBAAiB,EACjB,6BAA6B,EAC7B,yBAAyB,EACzB,8BAA8B,EAC9B,wBAAwB,EACxB,mCAAmC,EACnC,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,8BAA8B,EAC9B,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,CACpB;AAED,IAAMC,iBAAiB,GAAG,CACxB,6BAA6B,EAC7B,oBAAoB,EACpB,4BAA4B,EAC5B,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,sCAAsC,EACtC,8BAA8B,EAC9B,8BAA8B,EAC9B,+BAA+B,EAC/B,UAAU,EACV,uBAAuB,EACvB,8BAA8B,EAC9B,iBAAiB,EACjB,6BAA6B,EAC7B,yBAAyB,EACzB,8BAA8B,EAC9B,wBAAwB,EACxB,mCAAmC,EACnC,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,8BAA8B,EAC9B,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,CACpB;AAED,IAAMC,qBAAqB,GAAG,CAC5B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,4BAA4B,CAC7B;AAED,IAAMC,kBAAkB,GAAG,CACzB,4BAA4B,EAC5B,8BAA8B,EAC9B,4BAA4B,CAC7B;;AAED;AACA;AACA;AACA;AACA;AACO,SAASC,aAAa,CAACpB,QAAgB,EAAW;EACvD,OAAOmB,kBAAkB,CAAC/C,QAAQ,CAAC4B,QAAQ,CAAC;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASqB,eAAe,CAACrB,QAAgB,EAAW;EACzD,OAAOkB,qBAAqB,CAAC9C,QAAQ,CAAC4B,QAAQ,CAAC;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASsB,YAAY,CAACtB,QAAgB,EAAW;EACtD,IAAIuB,aAAa,GAAG,EAAE;EACtB,QAAQC,KAAK,CAACC,YAAY,EAAE;IAC1B,KAAK,OAAO;MACVF,aAAa,GAAGX,mBAAmB,CAACc,KAAK,CAAC,CAAC,CAAC;MAC5C;IACF,KAAK,OAAO;MACVH,aAAa,GAAGT,mBAAmB,CAACY,KAAK,CAAC,CAAC,CAAC;MAC5C;IACF,KAAK,OAAO;MACVH,aAAa,GAAGR,mBAAmB,CAACW,KAAK,CAAC,CAAC,CAAC;MAC5C;IACF,KAAK,OAAO;IACZ,KAAK,OAAO;IACZ,KAAK,OAAO;MACVH,aAAa,GAAGZ,iBAAiB,CAACe,KAAK,CAAC,CAAC,CAAC;MAC1C;IACF,KAAK,OAAO;IACZ,KAAK,SAAS;IACd,KAAK,SAAS;IACd,KAAK,SAAS;IACd,KAAK,OAAO;IACZ,KAAK,OAAO;IACZ,KAAK,SAAS;IACd,KAAK,SAAS;MACZH,aAAa,GAAGP,mBAAmB,CAACU,KAAK,CAAC,CAAC,CAAC;MAC5C;IACF,KAAK,SAAS;IACd,KAAK,SAAS;IACd,KAAK,SAAS;IACd,KAAK,SAAS;IACd,KAAK,SAAS;IACd,KAAK,SAAS;IACd,KAAK,SAAS;IACd,KAAK,OAAO;MACVH,aAAa,GAAGN,iBAAiB,CAACS,KAAK,CAAC,CAAC,CAAC;MAC1C;IACF;MACE,OAAO,IAAI;EAAC;EAEhB,OACE,CAACH,aAAa,CAACnD,QAAQ,CAAC4B,QAAQ,CAAC,IACjC,CAACoB,aAAa,CAACpB,QAAQ,CAAC,IACxB,CAACqB,eAAe,CAACrB,QAAQ,CAAC;AAE9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS2B,qBAAqB,CAAC3B,QAAgB,EAAwB;EAC5E,IAAM4B,eAAqC,GAAG,EAAE;EAChD,IAAMC,OAAO,GAAGT,aAAa,CAACpB,QAAQ,CAAC;EACvC,IAAM8B,MAAM,GAAGR,YAAY,CAACtB,QAAQ,CAAC;EACrC,IAAM+B,KAAK,GAAGV,eAAe,CAACrB,QAAQ,CAAC;EACvC,IAAI8B,MAAM,EAAE;IACVF,eAAe,CAAC1E,IAAI,CAAC8E,4BAAkB,CAACC,MAAM,CAAC;EACjD,CAAC,MAAM,IAAIF,KAAK,EAAE;IAChBH,eAAe,CAAC1E,IAAI,CAAC8E,4BAAkB,CAACE,KAAK,CAAC;EAChD,CAAC,MAAM;IACLN,eAAe,CAAC1E,IAAI,CAAC8E,4BAAkB,CAACG,QAAQ,CAAC;EACnD;EACA,IAAIN,OAAO,EAAED,eAAe,CAAC1E,IAAI,CAAC8E,4BAAkB,CAACI,OAAO,CAAC;EAC7D,OAAOR,eAAe;AACxB"}
|