@rockcarver/frodo-cli 0.18.2-9 → 0.19.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 +112 -1
- package/esm/app.js +4 -1
- package/esm/app.js.map +1 -1
- package/esm/cli/FrodoCommand.js +133 -0
- package/esm/cli/FrodoCommand.js.map +1 -0
- package/esm/cli/_template/something-delete.js +9 -15
- package/esm/cli/_template/something-delete.js.map +1 -1
- package/esm/cli/_template/something-describe.js +9 -15
- package/esm/cli/_template/something-describe.js.map +1 -1
- package/esm/cli/_template/something-else-delete.js +9 -15
- package/esm/cli/_template/something-else-delete.js.map +1 -1
- package/esm/cli/_template/something-else-describe.js +9 -15
- package/esm/cli/_template/something-else-describe.js.map +1 -1
- package/esm/cli/_template/something-else-export.js +9 -15
- package/esm/cli/_template/something-else-export.js.map +1 -1
- package/esm/cli/_template/something-else-import.js +9 -15
- package/esm/cli/_template/something-else-import.js.map +1 -1
- package/esm/cli/_template/something-else-list.js +9 -15
- package/esm/cli/_template/something-else-list.js.map +1 -1
- package/esm/cli/_template/something-else.js +8 -8
- package/esm/cli/_template/something-else.js.map +1 -1
- package/esm/cli/_template/something-export.js +9 -15
- package/esm/cli/_template/something-export.js.map +1 -1
- package/esm/cli/_template/something-import.js +9 -15
- package/esm/cli/_template/something-import.js.map +1 -1
- package/esm/cli/_template/something-list.js +9 -15
- package/esm/cli/_template/something-list.js.map +1 -1
- package/esm/cli/_template/something-other-delete.js +9 -15
- package/esm/cli/_template/something-other-delete.js.map +1 -1
- package/esm/cli/_template/something-other-describe.js +9 -15
- package/esm/cli/_template/something-other-describe.js.map +1 -1
- package/esm/cli/_template/something-other-export.js +9 -15
- package/esm/cli/_template/something-other-export.js.map +1 -1
- package/esm/cli/_template/something-other-import.js +9 -15
- package/esm/cli/_template/something-other-import.js.map +1 -1
- package/esm/cli/_template/something-other-list.js +9 -15
- package/esm/cli/_template/something-other-list.js.map +1 -1
- package/esm/cli/_template/something-other.js +8 -8
- package/esm/cli/_template/something-other.js.map +1 -1
- package/esm/cli/_template/something.js +9 -10
- package/esm/cli/_template/something.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +8 -15
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +9 -15
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-get-access-token.js +9 -15
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +9 -15
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +9 -15
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +8 -15
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +8 -15
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-static-user-mappings.js +9 -15
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +8 -15
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +9 -15
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +9 -15
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +9 -15
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin.js +14 -15
- package/esm/cli/admin/admin.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +8 -15
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-describe.js +9 -15
- package/esm/cli/agent/agent-describe.js.map +1 -1
- package/esm/cli/agent/agent-export.js +8 -15
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +8 -15
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-describe.js +9 -15
- package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +8 -15
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +8 -15
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +9 -15
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-gateway.js +8 -8
- package/esm/cli/agent/agent-gateway.js.map +1 -1
- package/esm/cli/agent/agent-import.js +8 -15
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +8 -15
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-describe.js +9 -15
- package/esm/cli/agent/agent-java-describe.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +8 -15
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +8 -15
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +9 -15
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-java.js +8 -8
- package/esm/cli/agent/agent-java.js.map +1 -1
- package/esm/cli/agent/agent-list.js +9 -15
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +8 -15
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-describe.js +9 -15
- package/esm/cli/agent/agent-web-describe.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +8 -15
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +8 -15
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +9 -15
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/agent/agent-web.js +8 -8
- package/esm/cli/agent/agent-web.js.map +1 -1
- package/esm/cli/agent/agent.js +10 -11
- package/esm/cli/agent/agent.js.map +1 -1
- package/esm/cli/app/app-delete.js +9 -12
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-describe.js +9 -12
- package/esm/cli/app/app-describe.js.map +1 -1
- package/esm/cli/app/app-export.js +28 -34
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +11 -14
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +11 -14
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/app/app.js +8 -10
- package/esm/cli/app/app.js.map +1 -1
- package/esm/cli/conn/conn-delete.js +5 -5
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-describe.js +6 -5
- package/esm/cli/conn/conn-describe.js.map +1 -1
- package/esm/cli/conn/conn-list.js +6 -8
- package/esm/cli/conn/conn-list.js.map +1 -1
- package/esm/cli/conn/conn-save.js +72 -0
- package/esm/cli/conn/conn-save.js.map +1 -0
- package/esm/cli/conn/conn.js +10 -8
- package/esm/cli/conn/conn.js.map +1 -1
- package/esm/cli/email/email-template-export.js +27 -33
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +33 -39
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +11 -14
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/email/email-template.js +6 -6
- package/esm/cli/email/email-template.js.map +1 -1
- package/esm/cli/email/email.js +2 -2
- package/esm/cli/email/email.js.map +1 -1
- package/esm/cli/esv/esv-apply.js +9 -12
- package/esm/cli/esv/esv-apply.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +11 -14
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +23 -29
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +11 -14
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +9 -12
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-import.js +9 -12
- package/esm/cli/esv/esv-secret-import.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +11 -14
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +11 -14
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +18 -24
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +11 -14
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +18 -24
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +23 -29
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +11 -14
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-version.js +8 -8
- package/esm/cli/esv/esv-secret-version.js.map +1 -1
- package/esm/cli/esv/esv-secret.js +11 -11
- package/esm/cli/esv/esv-secret.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +10 -14
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +23 -29
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +11 -14
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +9 -12
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-import.js +9 -12
- package/esm/cli/esv/esv-variable-import.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +11 -14
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +19 -26
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/esv/esv-variable.js +10 -10
- package/esm/cli/esv/esv-variable.js.map +1 -1
- package/esm/cli/esv/esv.js +5 -6
- package/esm/cli/esv/esv.js.map +1 -1
- package/esm/cli/idm/idm-count.js +12 -17
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +29 -39
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +29 -39
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +11 -17
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idm/idm.js +6 -9
- package/esm/cli/idm/idm.js.map +1 -1
- package/esm/cli/idp/idp-export.js +11 -15
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +32 -38
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +9 -13
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/idp/idp.js +5 -6
- package/esm/cli/idp/idp.js.map +1 -1
- package/esm/cli/info/info.js +19 -20
- package/esm/cli/info/info.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +22 -28
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +12 -19
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-disable.js +20 -26
- package/esm/cli/journey/journey-disable.js.map +1 -1
- package/esm/cli/journey/journey-enable.js +20 -26
- package/esm/cli/journey/journey-enable.js.map +1 -1
- package/esm/cli/journey/journey-export.js +37 -45
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +44 -52
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +10 -13
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +9 -13
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/journey/journey.js +10 -11
- package/esm/cli/journey/journey.js.map +1 -1
- package/esm/cli/logging/logs-fetch.js +17 -19
- package/esm/cli/logging/logs-fetch.js.map +1 -1
- package/esm/cli/logging/logs-list.js +19 -25
- package/esm/cli/logging/logs-list.js.map +1 -1
- package/esm/cli/logging/logs-tail.js +17 -19
- package/esm/cli/logging/logs-tail.js.map +1 -1
- package/esm/cli/logging/logs.js +7 -6
- package/esm/cli/logging/logs.js.map +1 -1
- package/esm/cli/realm/realm-add-custom-domain.js +11 -14
- package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm-describe.js +10 -14
- package/esm/cli/realm/realm-describe.js.map +1 -1
- package/esm/cli/realm/realm-list.js +11 -14
- package/esm/cli/realm/realm-list.js.map +1 -1
- package/esm/cli/realm/realm-remove-custom-domain.js +11 -14
- package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
- package/esm/cli/realm/realm.js +7 -8
- package/esm/cli/realm/realm.js.map +1 -1
- package/esm/cli/saml/saml-cot-export.js +27 -36
- package/esm/cli/saml/saml-cot-export.js.map +1 -1
- package/esm/cli/saml/saml-cot-import.js +32 -41
- package/esm/cli/saml/saml-cot-import.js.map +1 -1
- package/esm/cli/saml/saml-cot-list.js +10 -16
- package/esm/cli/saml/saml-cot-list.js.map +1 -1
- package/esm/cli/saml/saml-cot.js +6 -6
- package/esm/cli/saml/saml-cot.js.map +1 -1
- package/esm/cli/saml/saml-delete.js +8 -15
- package/esm/cli/saml/saml-delete.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +10 -16
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +9 -16
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +45 -54
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +11 -17
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +21 -30
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/saml/saml-metadata.js +4 -4
- package/esm/cli/saml/saml-metadata.js.map +1 -1
- package/esm/cli/saml/saml.js +9 -10
- package/esm/cli/saml/saml.js.map +1 -1
- package/esm/cli/script/script-delete.js +9 -12
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-describe.js +9 -12
- package/esm/cli/script/script-describe.js.map +1 -1
- package/esm/cli/script/script-export.js +28 -34
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +10 -13
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/script/script-list.js +10 -13
- package/esm/cli/script/script-list.js.map +1 -1
- package/esm/cli/script/script.js +7 -8
- package/esm/cli/script/script.js.map +1 -1
- package/esm/cli/service/service-delete.js +10 -16
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +12 -17
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +12 -18
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +9 -15
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/service/service.js +6 -7
- package/esm/cli/service/service.js.map +1 -1
- package/esm/cli/theme/theme-delete.js +12 -19
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +12 -19
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +14 -21
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +10 -16
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/cli/theme/theme.js +6 -7
- package/esm/cli/theme/theme.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +30 -0
- package/esm/ops/ConnectionProfileOps.js.map +1 -0
- package/esm/ops/IdmOps.js +317 -0
- package/esm/ops/IdmOps.js.map +1 -0
- package/esm/ops/JourneyOps.js +2 -1
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/ServiceOps.js +20 -20
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/utils/Console.js +15 -25
- package/esm/utils/Console.js.map +1 -1
- package/package.json +6 -6
- package/esm/cli/cmd_common.js +0 -79
- package/esm/cli/cmd_common.js.map +0 -1
- package/esm/cli/conn/conn-add.js +0 -37
- package/esm/cli/conn/conn-add.js.map +0 -1
- package/esm/cli/journey/journey-delete.e2e.test_.js.map +0 -1
- package/esm/cli/journey/journey-list.e2e.test_.js.map +0 -1
|
@@ -1,46 +1,36 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import { printMessage } from '../../utils/Console';
|
|
1
|
+
import { FrodoCommand } from '../FrodoCommand';
|
|
2
|
+
import { Option } from 'commander';
|
|
3
|
+
import { Authenticate } from '@rockcarver/frodo-lib';
|
|
4
|
+
import { printMessage, verboseMessage } from '../../utils/Console';
|
|
5
|
+
import { exportAllConfigEntities, exportAllRawConfigEntities, exportConfigEntity } from '../../ops/IdmOps';
|
|
5
6
|
const {
|
|
6
7
|
getTokens
|
|
7
8
|
} = Authenticate;
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
exportAllRawConfigEntities,
|
|
11
|
-
exportConfigEntity
|
|
12
|
-
} = Idm;
|
|
13
|
-
const program = new Command('frodo idm export');
|
|
14
|
-
program.description('Export IDM configuration objects.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.realmArgument).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(new Option('-N, --name <name>', 'Config entity name. E.g. "managed", "sync", "provisioner-<connector-name>", etc.')).addOption(new Option('-f, --file [file]', 'Export file. Ignored with -A.')).addOption(new Option('-E, --entities-file [entities-file]', 'Name of the entity file. Ignored with -A.')).addOption(new Option('-e, --env-file [envfile]', 'Name of the env file. Ignored with -A.')).addOption(new Option('-a, --all', 'Export all IDM configuration objects into a single file in directory -D. Ignored with -N.')).addOption(new Option('-A, --all-separate', 'Export all IDM configuration objects into separate JSON files in directory -D. Ignored with -N, and -a.')).addOption(new Option('-D, --directory <directory>', 'Export directory. Required with and ignored without -a/-A.')).action(
|
|
9
|
+
const program = new FrodoCommand('frodo idm export');
|
|
10
|
+
program.description('Export IDM configuration objects.').addOption(new Option('-N, --name <name>', 'Config entity name. E.g. "managed", "sync", "provisioner-<connector-name>", etc.')).addOption(new Option('-f, --file [file]', 'Export file. Ignored with -A.')).addOption(new Option('-E, --entities-file [entities-file]', 'Name of the entity file. Ignored with -A.')).addOption(new Option('-e, --env-file [envfile]', 'Name of the env file. Ignored with -A.')).addOption(new Option('-a, --all', 'Export all IDM configuration objects into a single file in directory -D. Ignored with -N.')).addOption(new Option('-A, --all-separate', 'Export all IDM configuration objects into separate JSON files in directory -D. Ignored with -N, and -a.')).addOption(new Option('-D, --directory <directory>', 'Export directory. Required with and ignored without -a/-A.')).action(
|
|
15
11
|
// implement command logic inside action handler
|
|
16
|
-
async (host, realm, user, password, options) => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
// unrecognized combination of options or no options
|
|
40
|
-
else {
|
|
41
|
-
printMessage('Unrecognized combination of options or no options...', 'error');
|
|
42
|
-
program.help();
|
|
43
|
-
}
|
|
12
|
+
async (host, realm, user, password, options, command) => {
|
|
13
|
+
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
14
|
+
// export by id/name
|
|
15
|
+
if (options.name && (await getTokens())) {
|
|
16
|
+
verboseMessage(`Exporting object "${options.name}"...`);
|
|
17
|
+
exportConfigEntity(options.name, options.file);
|
|
18
|
+
}
|
|
19
|
+
// --all-separate -A
|
|
20
|
+
else if (options.allSeparate && options.directory && options.entitiesFile && options.envFile && (await getTokens())) {
|
|
21
|
+
verboseMessage(`Exporting IDM configuration objects specified in ${options.entitiesFile} into separate files in ${options.directory} using ${options.envFile} for variable replacement...`);
|
|
22
|
+
exportAllConfigEntities(options.directory, options.entitiesFile, options.envFile);
|
|
23
|
+
}
|
|
24
|
+
// --all-separate -A without variable replacement
|
|
25
|
+
else if (options.allSeparate && options.directory && (await getTokens())) {
|
|
26
|
+
verboseMessage(`Exporting all IDM configuration objects into separate files in ${options.directory}...`);
|
|
27
|
+
exportAllRawConfigEntities(options.directory);
|
|
28
|
+
}
|
|
29
|
+
// unrecognized combination of options or no options
|
|
30
|
+
else {
|
|
31
|
+
printMessage('Unrecognized combination of options or no options...', 'error');
|
|
32
|
+
program.help();
|
|
33
|
+
process.exitCode = 1;
|
|
44
34
|
}
|
|
45
35
|
}
|
|
46
36
|
// end command logic inside action handler
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idm-export.js","names":["
|
|
1
|
+
{"version":3,"file":"idm-export.js","names":["FrodoCommand","Option","Authenticate","printMessage","verboseMessage","exportAllConfigEntities","exportAllRawConfigEntities","exportConfigEntity","getTokens","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","name","file","allSeparate","directory","entitiesFile","envFile","help","process","exitCode","parse"],"sources":["cli/idm/idm-export.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n exportAllConfigEntities,\n exportAllRawConfigEntities,\n exportConfigEntity,\n} from '../../ops/IdmOps';\n\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo idm export');\n\nprogram\n .description('Export IDM configuration objects.')\n .addOption(\n new Option(\n '-N, --name <name>',\n 'Config entity name. E.g. \"managed\", \"sync\", \"provisioner-<connector-name>\", etc.'\n )\n )\n .addOption(new Option('-f, --file [file]', 'Export file. Ignored with -A.'))\n .addOption(\n new Option(\n '-E, --entities-file [entities-file]',\n 'Name of the entity file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-e, --env-file [envfile]',\n 'Name of the env file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Export all IDM configuration objects into a single file in directory -D. Ignored with -N.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all IDM configuration objects into separate JSON files in directory -D. Ignored with -N, and -a.'\n )\n )\n .addOption(\n new Option(\n '-D, --directory <directory>',\n 'Export directory. Required with and ignored without -a/-A.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // export by id/name\n if (options.name && (await getTokens())) {\n verboseMessage(`Exporting object \"${options.name}\"...`);\n exportConfigEntity(options.name, options.file);\n }\n // --all-separate -A\n else if (\n options.allSeparate &&\n options.directory &&\n options.entitiesFile &&\n options.envFile &&\n (await getTokens())\n ) {\n verboseMessage(\n `Exporting IDM configuration objects specified in ${options.entitiesFile} into separate files in ${options.directory} using ${options.envFile} for variable replacement...`\n );\n exportAllConfigEntities(\n options.directory,\n options.entitiesFile,\n options.envFile\n );\n }\n // --all-separate -A without variable replacement\n else if (\n options.allSeparate &&\n options.directory &&\n (await getTokens())\n ) {\n verboseMessage(\n `Exporting all IDM configuration objects into separate files in ${options.directory}...`\n );\n exportAllRawConfigEntities(options.directory);\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SACEC,uBAAuB,EACvBC,0BAA0B,EAC1BC,kBAAkB,QACb,kBAAkB;AAEzB,MAAM;EAAEC;AAAU,CAAC,GAAGN,YAAY;AAElC,MAAMO,OAAO,GAAG,IAAIT,YAAY,CAAC,kBAAkB,CAAC;AAEpDS,OAAO,CACJC,WAAW,CAAC,mCAAmC,CAAC,CAChDC,SAAS,CACR,IAAIV,MAAM,CACR,mBAAmB,EACnB,kFAAkF,CACnF,CACF,CACAU,SAAS,CAAC,IAAIV,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,CAAC,CAAC,CAC3EU,SAAS,CACR,IAAIV,MAAM,CACR,qCAAqC,EACrC,2CAA2C,CAC5C,CACF,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,0BAA0B,EAC1B,wCAAwC,CACzC,CACF,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,WAAW,EACX,2FAA2F,CAC5F,CACF,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,oBAAoB,EACpB,yGAAyG,CAC1G,CACF,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,6BAA6B,EAC7B,4DAA4D,CAC7D,CACF,CACAW,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD;EACA,IAAID,OAAO,CAACG,IAAI,KAAK,MAAMZ,SAAS,EAAE,CAAC,EAAE;IACvCJ,cAAc,CAAE,qBAAoBa,OAAO,CAACG,IAAK,MAAK,CAAC;IACvDb,kBAAkB,CAACU,OAAO,CAACG,IAAI,EAAEH,OAAO,CAACI,IAAI,CAAC;EAChD;EACA;EAAA,KACK,IACHJ,OAAO,CAACK,WAAW,IACnBL,OAAO,CAACM,SAAS,IACjBN,OAAO,CAACO,YAAY,IACpBP,OAAO,CAACQ,OAAO,KACd,MAAMjB,SAAS,EAAE,CAAC,EACnB;IACAJ,cAAc,CACX,oDAAmDa,OAAO,CAACO,YAAa,2BAA0BP,OAAO,CAACM,SAAU,UAASN,OAAO,CAACQ,OAAQ,8BAA6B,CAC5K;IACDpB,uBAAuB,CACrBY,OAAO,CAACM,SAAS,EACjBN,OAAO,CAACO,YAAY,EACpBP,OAAO,CAACQ,OAAO,CAChB;EACH;EACA;EAAA,KACK,IACHR,OAAO,CAACK,WAAW,IACnBL,OAAO,CAACM,SAAS,KAChB,MAAMf,SAAS,EAAE,CAAC,EACnB;IACAJ,cAAc,CACX,kEAAiEa,OAAO,CAACM,SAAU,KAAI,CACzF;IACDjB,0BAA0B,CAACW,OAAO,CAACM,SAAS,CAAC;EAC/C;EACA;EAAA,KACK;IACHpB,YAAY,CACV,sDAAsD,EACtD,OAAO,CACR;IACDM,OAAO,CAACiB,IAAI,EAAE;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHnB,OAAO,CAACoB,KAAK,EAAE"}
|
|
@@ -1,46 +1,36 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import { printMessage } from '../../utils/Console';
|
|
1
|
+
import { FrodoCommand } from '../FrodoCommand';
|
|
2
|
+
import { Option } from 'commander';
|
|
3
|
+
import { Authenticate } from '@rockcarver/frodo-lib';
|
|
4
|
+
import { printMessage, verboseMessage } from '../../utils/Console';
|
|
5
|
+
import { importAllConfigEntities, importAllRawConfigEntities, importConfigEntity } from '../../ops/IdmOps';
|
|
5
6
|
const {
|
|
6
7
|
getTokens
|
|
7
8
|
} = Authenticate;
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
importAllRawConfigEntities,
|
|
11
|
-
importConfigEntity
|
|
12
|
-
} = Idm;
|
|
13
|
-
const program = new Command('frodo idm import');
|
|
14
|
-
program.description('Import IDM configuration objects.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.realmArgument).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(new Option('-N, --name <name>', 'Config entity name. E.g. "managed", "sync", "provisioner-<connector-name>", etc.')).addOption(new Option('-f, --file [file]', 'Import file. Ignored with -A.')).addOption(new Option('-E, --entities-file [entities-file]', 'Name of the entity file. Ignored with -A.')).addOption(new Option('-e, --env-file [envfile]', 'Name of the env file. Ignored with -A.')).addOption(new Option('-A, --all-separate', 'Import all IDM configuration objects into separate JSON files in directory -D. Ignored with -N, and -a.')).addOption(new Option('-D, --directory <directory>', 'Import directory. Required with and ignored without -a/-A.')).action(
|
|
9
|
+
const program = new FrodoCommand('frodo idm import');
|
|
10
|
+
program.description('Import IDM configuration objects.').addOption(new Option('-N, --name <name>', 'Config entity name. E.g. "managed", "sync", "provisioner-<connector-name>", etc.')).addOption(new Option('-f, --file [file]', 'Import file. Ignored with -A.')).addOption(new Option('-E, --entities-file [entities-file]', 'Name of the entity file. Ignored with -A.')).addOption(new Option('-e, --env-file [envfile]', 'Name of the env file. Ignored with -A.')).addOption(new Option('-A, --all-separate', 'Import all IDM configuration objects from separate files in directory -D. Ignored with -N, and -a.')).addOption(new Option('-D, --directory <directory>', 'Import directory. Required with and ignored without -a/-A.')).action(
|
|
15
11
|
// implement command logic inside action handler
|
|
16
|
-
async (host, realm, user, password, options) => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
// unrecognized combination of options or no options
|
|
40
|
-
else {
|
|
41
|
-
printMessage('Unrecognized combination of options or no options...', 'error');
|
|
42
|
-
program.help();
|
|
43
|
-
}
|
|
12
|
+
async (host, realm, user, password, options, command) => {
|
|
13
|
+
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
14
|
+
// import by id/name
|
|
15
|
+
if (options.name && (await getTokens())) {
|
|
16
|
+
verboseMessage(`Importing object "${options.name}"...`);
|
|
17
|
+
await importConfigEntity(options.name, options.file);
|
|
18
|
+
}
|
|
19
|
+
// --all-separate -A
|
|
20
|
+
else if (options.allSeparate && options.directory && options.entitiesFile && options.envFile && (await getTokens())) {
|
|
21
|
+
verboseMessage(`Importing IDM configuration objects specified in ${options.entitiesFile} into separate files in ${options.directory} using ${options.envFile} for variable replacement...`);
|
|
22
|
+
await importAllConfigEntities(options.directory, options.entitiesFile, options.envFile);
|
|
23
|
+
}
|
|
24
|
+
// --all-separate -A without variable replacement
|
|
25
|
+
else if (options.allSeparate && options.directory && (await getTokens())) {
|
|
26
|
+
verboseMessage(`Importing all IDM configuration objects into separate files in ${options.directory}...`);
|
|
27
|
+
await importAllRawConfigEntities(options.directory);
|
|
28
|
+
}
|
|
29
|
+
// unrecognized combination of options or no options
|
|
30
|
+
else {
|
|
31
|
+
printMessage('Unrecognized combination of options or no options...', 'error');
|
|
32
|
+
program.help();
|
|
33
|
+
process.exitCode = 1;
|
|
44
34
|
}
|
|
45
35
|
}
|
|
46
36
|
// end command logic inside action handler
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idm-import.js","names":["
|
|
1
|
+
{"version":3,"file":"idm-import.js","names":["FrodoCommand","Option","Authenticate","printMessage","verboseMessage","importAllConfigEntities","importAllRawConfigEntities","importConfigEntity","getTokens","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","name","file","allSeparate","directory","entitiesFile","envFile","help","process","exitCode","parse"],"sources":["cli/idm/idm-import.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n importAllConfigEntities,\n importAllRawConfigEntities,\n importConfigEntity,\n} from '../../ops/IdmOps';\n\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo idm import');\n\ninterface IdmImportOptions {\n type?: string;\n insecure?: boolean;\n verbose?: boolean;\n debug?: boolean;\n curlirize?: boolean;\n name?: string;\n file?: string;\n entitiesFile?: string;\n envFile?: string;\n all?: string;\n allSeparate?: string;\n directory?: string;\n}\n\nprogram\n .description('Import IDM configuration objects.')\n .addOption(\n new Option(\n '-N, --name <name>',\n 'Config entity name. E.g. \"managed\", \"sync\", \"provisioner-<connector-name>\", etc.'\n )\n )\n .addOption(new Option('-f, --file [file]', 'Import file. Ignored with -A.'))\n .addOption(\n new Option(\n '-E, --entities-file [entities-file]',\n 'Name of the entity file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-e, --env-file [envfile]',\n 'Name of the env file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all IDM configuration objects from separate files in directory -D. Ignored with -N, and -a.'\n )\n )\n .addOption(\n new Option(\n '-D, --directory <directory>',\n 'Import directory. Required with and ignored without -a/-A.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (\n host: string,\n realm: string,\n user: string,\n password: string,\n options: IdmImportOptions,\n command\n ) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // import by id/name\n if (options.name && (await getTokens())) {\n verboseMessage(`Importing object \"${options.name}\"...`);\n await importConfigEntity(options.name, options.file);\n }\n // --all-separate -A\n else if (\n options.allSeparate &&\n options.directory &&\n options.entitiesFile &&\n options.envFile &&\n (await getTokens())\n ) {\n verboseMessage(\n `Importing IDM configuration objects specified in ${options.entitiesFile} into separate files in ${options.directory} using ${options.envFile} for variable replacement...`\n );\n await importAllConfigEntities(\n options.directory,\n options.entitiesFile,\n options.envFile\n );\n }\n // --all-separate -A without variable replacement\n else if (\n options.allSeparate &&\n options.directory &&\n (await getTokens())\n ) {\n verboseMessage(\n `Importing all IDM configuration objects into separate files in ${options.directory}...`\n );\n await importAllRawConfigEntities(options.directory);\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SACEC,uBAAuB,EACvBC,0BAA0B,EAC1BC,kBAAkB,QACb,kBAAkB;AAEzB,MAAM;EAAEC;AAAU,CAAC,GAAGN,YAAY;AAElC,MAAMO,OAAO,GAAG,IAAIT,YAAY,CAAC,kBAAkB,CAAC;AAiBpDS,OAAO,CACJC,WAAW,CAAC,mCAAmC,CAAC,CAChDC,SAAS,CACR,IAAIV,MAAM,CACR,mBAAmB,EACnB,kFAAkF,CACnF,CACF,CACAU,SAAS,CAAC,IAAIV,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,CAAC,CAAC,CAC3EU,SAAS,CACR,IAAIV,MAAM,CACR,qCAAqC,EACrC,2CAA2C,CAC5C,CACF,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,0BAA0B,EAC1B,wCAAwC,CACzC,CACF,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,oBAAoB,EACpB,oGAAoG,CACrG,CACF,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,6BAA6B,EAC7B,4DAA4D,CAC7D,CACF,CACAW,MAAM;AACL;AACA,OACEC,IAAY,EACZC,KAAa,EACbC,IAAY,EACZC,QAAgB,EAChBC,OAAyB,EACzBC,OAAO,KACJ;EACHA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD;EACA,IAAID,OAAO,CAACG,IAAI,KAAK,MAAMZ,SAAS,EAAE,CAAC,EAAE;IACvCJ,cAAc,CAAE,qBAAoBa,OAAO,CAACG,IAAK,MAAK,CAAC;IACvD,MAAMb,kBAAkB,CAACU,OAAO,CAACG,IAAI,EAAEH,OAAO,CAACI,IAAI,CAAC;EACtD;EACA;EAAA,KACK,IACHJ,OAAO,CAACK,WAAW,IACnBL,OAAO,CAACM,SAAS,IACjBN,OAAO,CAACO,YAAY,IACpBP,OAAO,CAACQ,OAAO,KACd,MAAMjB,SAAS,EAAE,CAAC,EACnB;IACAJ,cAAc,CACX,oDAAmDa,OAAO,CAACO,YAAa,2BAA0BP,OAAO,CAACM,SAAU,UAASN,OAAO,CAACQ,OAAQ,8BAA6B,CAC5K;IACD,MAAMpB,uBAAuB,CAC3BY,OAAO,CAACM,SAAS,EACjBN,OAAO,CAACO,YAAY,EACpBP,OAAO,CAACQ,OAAO,CAChB;EACH;EACA;EAAA,KACK,IACHR,OAAO,CAACK,WAAW,IACnBL,OAAO,CAACM,SAAS,KAChB,MAAMf,SAAS,EAAE,CAAC,EACnB;IACAJ,cAAc,CACX,kEAAiEa,OAAO,CAACM,SAAU,KAAI,CACzF;IACD,MAAMjB,0BAA0B,CAACW,OAAO,CAACM,SAAS,CAAC;EACrD;EACA;EAAA,KACK;IACHpB,YAAY,CACV,sDAAsD,EACtD,OAAO,CACR;IACDM,OAAO,CAACiB,IAAI,EAAE;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHnB,OAAO,CAACoB,KAAK,EAAE"}
|
package/esm/cli/idm/idm-list.js
CHANGED
|
@@ -1,30 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Authenticate
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
1
|
+
import { FrodoCommand } from '../FrodoCommand';
|
|
2
|
+
import { Authenticate } from '@rockcarver/frodo-lib';
|
|
3
|
+
import { verboseMessage } from '../../utils/Console';
|
|
4
|
+
import { listAllConfigEntities } from '../../ops/IdmOps';
|
|
5
5
|
const {
|
|
6
6
|
getTokens
|
|
7
7
|
} = Authenticate;
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
} = Idm;
|
|
11
|
-
const program = new Command('frodo idm list');
|
|
12
|
-
program.description('List IDM configuration objects.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.realmArgument).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.deploymentOption).addOption(common.insecureOption)
|
|
8
|
+
const program = new FrodoCommand('frodo idm list');
|
|
9
|
+
program.description('List IDM configuration objects.')
|
|
13
10
|
// .addOption(
|
|
14
11
|
// new Option('-l, --long', 'Long with all fields.').default(false, 'false')
|
|
15
12
|
// )
|
|
16
13
|
.action(
|
|
17
14
|
// implement command logic inside action handler
|
|
18
|
-
async (host, realm, user, password, options) => {
|
|
19
|
-
|
|
20
|
-
state.default.session.setRealm(realm);
|
|
21
|
-
state.default.session.setUsername(user);
|
|
22
|
-
state.default.session.setPassword(password);
|
|
23
|
-
state.default.session.setDeploymentType(options.type);
|
|
24
|
-
state.default.session.setAllowInsecureConnection(options.insecure);
|
|
15
|
+
async (host, realm, user, password, options, command) => {
|
|
16
|
+
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
25
17
|
if (await getTokens()) {
|
|
26
|
-
|
|
18
|
+
verboseMessage('Listing all IDM configuration objects...');
|
|
27
19
|
listAllConfigEntities();
|
|
20
|
+
} else {
|
|
21
|
+
process.exitCode = 1;
|
|
28
22
|
}
|
|
29
23
|
}
|
|
30
24
|
// end command logic inside action handler
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idm-list.js","names":["
|
|
1
|
+
{"version":3,"file":"idm-list.js","names":["FrodoCommand","Authenticate","verboseMessage","listAllConfigEntities","getTokens","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["cli/idm/idm-list.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Authenticate } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console';\nimport { listAllConfigEntities } from '../../ops/IdmOps';\n\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo idm list');\n\nprogram\n .description('List IDM configuration objects.')\n // .addOption(\n // new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n // )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Listing all IDM configuration objects...');\n listAllConfigEntities();\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,qBAAqB,QAAQ,kBAAkB;AAExD,MAAM;EAAEC;AAAU,CAAC,GAAGH,YAAY;AAElC,MAAMI,OAAO,GAAG,IAAIL,YAAY,CAAC,gBAAgB,CAAC;AAElDK,OAAO,CACJC,WAAW,CAAC,iCAAiC;AAC9C;AACA;AACA;AAAA,CACCC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD,IAAI,MAAMT,SAAS,EAAE,EAAE;IACrBF,cAAc,CAAC,0CAA0C,CAAC;IAC1DC,qBAAqB,EAAE;EACzB,CAAC,MAAM;IACLY,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHX,OAAO,CAACY,KAAK,EAAE"}
|
package/esm/cli/idm/idm.js
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FrodoStubCommand } from '../FrodoCommand';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
4
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
5
5
|
export default function setup() {
|
|
6
|
-
const program = new
|
|
7
|
-
program.command('list', 'List all IDM configuration objects.')
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
program.command('
|
|
11
|
-
program.command('import', 'Import IDM configuration objects.').showHelpAfterError();
|
|
12
|
-
program.command('count', 'Count number of managed objects of a given type.').showHelpAfterError();
|
|
13
|
-
program.showHelpAfterError();
|
|
6
|
+
const program = new FrodoStubCommand('idm').description('Manage IDM configuration.').executableDir(__dirname);
|
|
7
|
+
program.command('list', 'List all IDM configuration objects.');
|
|
8
|
+
program.command('export', 'Export IDM configuration objects.');
|
|
9
|
+
program.command('import', 'Import IDM configuration objects.');
|
|
10
|
+
program.command('count', 'Count number of managed objects of a given type.');
|
|
14
11
|
return program;
|
|
15
12
|
}
|
|
16
13
|
//# sourceMappingURL=idm.js.map
|
package/esm/cli/idm/idm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idm.js","names":["
|
|
1
|
+
{"version":3,"file":"idm.js","names":["FrodoStubCommand","path","fileURLToPath","__dirname","dirname","import","meta","url","setup","program","description","executableDir","command"],"sources":["cli/idm/idm.ts"],"sourcesContent":["import { FrodoStubCommand } from '../FrodoCommand';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport default function setup() {\n const program = new FrodoStubCommand('idm')\n .description('Manage IDM configuration.')\n .executableDir(__dirname);\n\n program.command('list', 'List all IDM configuration objects.');\n\n program.command('export', 'Export IDM configuration objects.');\n\n program.command('import', 'Import IDM configuration objects.');\n\n program.command('count', 'Count number of managed objects of a given type.');\n\n return program;\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,iBAAiB;AAClD,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,aAAa,QAAQ,KAAK;AAEnC,MAAMC,SAAS,GAAGF,IAAI,CAACG,OAAO,CAACF,aAAa,CAACG,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC;AAE9D,eAAe,SAASC,KAAK,GAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIT,gBAAgB,CAAC,KAAK,CAAC,CACxCU,WAAW,CAAC,2BAA2B,CAAC,CACxCC,aAAa,CAACR,SAAS,CAAC;EAE3BM,OAAO,CAACG,OAAO,CAAC,MAAM,EAAE,qCAAqC,CAAC;EAE9DH,OAAO,CAACG,OAAO,CAAC,QAAQ,EAAE,mCAAmC,CAAC;EAE9DH,OAAO,CAACG,OAAO,CAAC,QAAQ,EAAE,mCAAmC,CAAC;EAE9DH,OAAO,CAACG,OAAO,CAAC,OAAO,EAAE,kDAAkD,CAAC;EAE5E,OAAOH,OAAO;AAChB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FrodoCommand } from '../FrodoCommand';
|
|
2
|
+
import { Option } from 'commander';
|
|
2
3
|
import { Authenticate, Idp, state } from '@rockcarver/frodo-lib';
|
|
3
|
-
import
|
|
4
|
-
import { printMessage } from '../../utils/Console';
|
|
4
|
+
import { printMessage, verboseMessage } from '../../utils/Console';
|
|
5
5
|
const {
|
|
6
6
|
getTokens
|
|
7
7
|
} = Authenticate;
|
|
@@ -10,36 +10,32 @@ const {
|
|
|
10
10
|
exportSocialProvidersToFile,
|
|
11
11
|
exportSocialProvidersToFiles
|
|
12
12
|
} = Idp;
|
|
13
|
-
const program = new
|
|
14
|
-
program.description('Export (social) identity providers.').
|
|
13
|
+
const program = new FrodoCommand('frodo idp export');
|
|
14
|
+
program.description('Export (social) identity providers.').addOption(new Option('-i, --idp-id <idp-id>', 'Id/name of a provider. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file [file]', 'Name of the file to write the exported provider(s) to. Ignored with -A.')).addOption(new Option('-a, --all', 'Export all the providers in a realm to a single file. Ignored with -t and -i.')).addOption(new Option('-A, --all-separate', 'Export all the providers in a realm as separate files <provider name>.idp.json. Ignored with -t, -i, and -a.')).action(
|
|
15
15
|
// implement command logic inside action handler
|
|
16
|
-
async (host, realm, user, password, options) => {
|
|
17
|
-
|
|
18
|
-
state.default.session.setRealm(realm);
|
|
19
|
-
state.default.session.setUsername(user);
|
|
20
|
-
state.default.session.setPassword(password);
|
|
21
|
-
state.default.session.setDeploymentType(options.type);
|
|
22
|
-
state.default.session.setAllowInsecureConnection(options.insecure);
|
|
16
|
+
async (host, realm, user, password, options, command) => {
|
|
17
|
+
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
23
18
|
if (await getTokens()) {
|
|
24
19
|
// export by id/name
|
|
25
20
|
if (options.idpId) {
|
|
26
|
-
|
|
21
|
+
verboseMessage(`Exporting provider "${options.idpId}" from realm "${state.getRealm()}"...`);
|
|
27
22
|
exportSocialProviderToFile(options.idpId, options.file);
|
|
28
23
|
}
|
|
29
24
|
// --all -a
|
|
30
25
|
else if (options.all) {
|
|
31
|
-
|
|
26
|
+
verboseMessage('Exporting all providers to a single file...');
|
|
32
27
|
exportSocialProvidersToFile(options.file);
|
|
33
28
|
}
|
|
34
29
|
// --all-separate -A
|
|
35
30
|
else if (options.allSeparate) {
|
|
36
|
-
|
|
31
|
+
verboseMessage('Exporting all providers to separate files...');
|
|
37
32
|
exportSocialProvidersToFiles();
|
|
38
33
|
}
|
|
39
34
|
// unrecognized combination of options or no options
|
|
40
35
|
else {
|
|
41
36
|
printMessage('Unrecognized combination of options or no options...', 'error');
|
|
42
37
|
program.help();
|
|
38
|
+
process.exitCode = 1;
|
|
43
39
|
}
|
|
44
40
|
}
|
|
45
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idp-export.js","names":["
|
|
1
|
+
{"version":3,"file":"idp-export.js","names":["FrodoCommand","Option","Authenticate","Idp","state","printMessage","verboseMessage","getTokens","exportSocialProviderToFile","exportSocialProvidersToFile","exportSocialProvidersToFiles","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","idpId","getRealm","file","all","allSeparate","help","process","exitCode","parse"],"sources":["cli/idp/idp-export.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate, Idp, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\n\nconst { getTokens } = Authenticate;\nconst {\n exportSocialProviderToFile,\n exportSocialProvidersToFile,\n exportSocialProvidersToFiles,\n} = Idp;\n\nconst program = new FrodoCommand('frodo idp export');\n\nprogram\n .description('Export (social) identity providers.')\n .addOption(\n new Option(\n '-i, --idp-id <idp-id>',\n 'Id/name of a provider. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file [file]',\n 'Name of the file to write the exported provider(s) to. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Export all the providers in a realm to a single file. Ignored with -t and -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all the providers in a realm as separate files <provider name>.idp.json. Ignored with -t, -i, and -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n // export by id/name\n if (options.idpId) {\n verboseMessage(\n `Exporting provider \"${\n options.idpId\n }\" from realm \"${state.getRealm()}\"...`\n );\n exportSocialProviderToFile(options.idpId, options.file);\n }\n // --all -a\n else if (options.all) {\n verboseMessage('Exporting all providers to a single file...');\n exportSocialProvidersToFile(options.file);\n }\n // --all-separate -A\n else if (options.allSeparate) {\n verboseMessage('Exporting all providers to separate files...');\n exportSocialProvidersToFiles();\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,EAAEC,GAAG,EAAEC,KAAK,QAAQ,uBAAuB;AAChE,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAElE,MAAM;EAAEC;AAAU,CAAC,GAAGL,YAAY;AAClC,MAAM;EACJM,0BAA0B;EAC1BC,2BAA2B;EAC3BC;AACF,CAAC,GAAGP,GAAG;AAEP,MAAMQ,OAAO,GAAG,IAAIX,YAAY,CAAC,kBAAkB,CAAC;AAEpDW,OAAO,CACJC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,SAAS,CACR,IAAIZ,MAAM,CACR,uBAAuB,EACvB,6DAA6D,CAC9D,CACF,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,mBAAmB,EACnB,yEAAyE,CAC1E,CACF,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,WAAW,EACX,+EAA+E,CAChF,CACF,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,oBAAoB,EACpB,8GAA8G,CAC/G,CACF,CACAa,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD,IAAI,MAAMb,SAAS,EAAE,EAAE;IACrB;IACA,IAAIY,OAAO,CAACG,KAAK,EAAE;MACjBhB,cAAc,CACX,uBACCa,OAAO,CAACG,KACT,iBAAgBlB,KAAK,CAACmB,QAAQ,EAAG,MAAK,CACxC;MACDf,0BAA0B,CAACW,OAAO,CAACG,KAAK,EAAEH,OAAO,CAACK,IAAI,CAAC;IACzD;IACA;IAAA,KACK,IAAIL,OAAO,CAACM,GAAG,EAAE;MACpBnB,cAAc,CAAC,6CAA6C,CAAC;MAC7DG,2BAA2B,CAACU,OAAO,CAACK,IAAI,CAAC;IAC3C;IACA;IAAA,KACK,IAAIL,OAAO,CAACO,WAAW,EAAE;MAC5BpB,cAAc,CAAC,8CAA8C,CAAC;MAC9DI,4BAA4B,EAAE;IAChC;IACA;IAAA,KACK;MACHL,YAAY,CACV,sDAAsD,EACtD,OAAO,CACR;MACDM,OAAO,CAACgB,IAAI,EAAE;MACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;IACtB;EACF;AACF;AACA;AAAA,CACD;;AAEHlB,OAAO,CAACmB,KAAK,EAAE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FrodoCommand } from '../FrodoCommand';
|
|
2
|
+
import { Option } from 'commander';
|
|
2
3
|
import { Authenticate, Idp, state } from '@rockcarver/frodo-lib';
|
|
3
|
-
import
|
|
4
|
-
import { printMessage } from '../../utils/Console';
|
|
4
|
+
import { printMessage, verboseMessage } from '../../utils/Console';
|
|
5
5
|
const {
|
|
6
6
|
getTokens
|
|
7
7
|
} = Authenticate;
|
|
@@ -11,42 +11,36 @@ const {
|
|
|
11
11
|
importSocialProvidersFromFile,
|
|
12
12
|
importSocialProvidersFromFiles
|
|
13
13
|
} = Idp;
|
|
14
|
-
const program = new
|
|
15
|
-
program.description('Import (social) identity providers.').
|
|
14
|
+
const program = new FrodoCommand('frodo idp import');
|
|
15
|
+
program.description('Import (social) identity providers.').addOption(new Option('-i, --idp-id <id>', 'Provider id. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to import the provider(s) from.')).addOption(new Option('-a, --all', 'Import all the providers from single file. Ignored with -t or -i.')).addOption(new Option('-A, --all-separate', 'Import all the providers from separate files (*.json) in the current directory. Ignored with -t or -i or -a.')).action(
|
|
16
16
|
// implement command logic inside action handler
|
|
17
|
-
async (host, realm, user, password, options) => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
// unrecognized combination of options or no options
|
|
46
|
-
else {
|
|
47
|
-
printMessage('Unrecognized combination of options or no options...');
|
|
48
|
-
program.help();
|
|
49
|
-
}
|
|
17
|
+
async (host, realm, user, password, options, command) => {
|
|
18
|
+
command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
|
|
19
|
+
// import by id
|
|
20
|
+
if (options.file && options.idpId && (await getTokens())) {
|
|
21
|
+
verboseMessage(`Importing provider "${options.idpId}" into realm "${state.getRealm()}"...`);
|
|
22
|
+
importSocialProviderFromFile(options.idpId, options.file);
|
|
23
|
+
}
|
|
24
|
+
// --all -a
|
|
25
|
+
else if (options.all && options.file && (await getTokens())) {
|
|
26
|
+
verboseMessage(`Importing all providers from a single file (${options.file})...`);
|
|
27
|
+
importSocialProvidersFromFile(options.file);
|
|
28
|
+
}
|
|
29
|
+
// --all-separate -A
|
|
30
|
+
else if (options.allSeparate && !options.file && (await getTokens())) {
|
|
31
|
+
verboseMessage('Importing all providers from separate files in current directory...');
|
|
32
|
+
importSocialProvidersFromFiles();
|
|
33
|
+
}
|
|
34
|
+
// import first provider from file
|
|
35
|
+
else if (options.file && (await getTokens())) {
|
|
36
|
+
verboseMessage(`Importing first provider from file "${options.file}" into realm "${state.getRealm()}"...`);
|
|
37
|
+
importFirstSocialProviderFromFile(options.file);
|
|
38
|
+
}
|
|
39
|
+
// unrecognized combination of options or no options
|
|
40
|
+
else {
|
|
41
|
+
printMessage('Unrecognized combination of options or no options...');
|
|
42
|
+
program.help();
|
|
43
|
+
process.exitCode = 1;
|
|
50
44
|
}
|
|
51
45
|
}
|
|
52
46
|
// end command logic inside action handler
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idp-import.js","names":["
|
|
1
|
+
{"version":3,"file":"idp-import.js","names":["FrodoCommand","Option","Authenticate","Idp","state","printMessage","verboseMessage","getTokens","importSocialProviderFromFile","importFirstSocialProviderFromFile","importSocialProvidersFromFile","importSocialProvidersFromFiles","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","idpId","getRealm","all","allSeparate","help","process","exitCode","parse"],"sources":["cli/idp/idp-import.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate, Idp, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\n\nconst { getTokens } = Authenticate;\nconst {\n importSocialProviderFromFile,\n importFirstSocialProviderFromFile,\n importSocialProvidersFromFile,\n importSocialProvidersFromFiles,\n} = Idp;\n\nconst program = new FrodoCommand('frodo idp import');\n\nprogram\n .description('Import (social) identity providers.')\n .addOption(\n new Option(\n '-i, --idp-id <id>',\n 'Provider id. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the file to import the provider(s) from.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Import all the providers from single file. Ignored with -t or -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all the providers from separate files (*.json) in the current directory. Ignored with -t or -i or -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // import by id\n if (options.file && options.idpId && (await getTokens())) {\n verboseMessage(\n `Importing provider \"${\n options.idpId\n }\" into realm \"${state.getRealm()}\"...`\n );\n importSocialProviderFromFile(options.idpId, options.file);\n }\n // --all -a\n else if (options.all && options.file && (await getTokens())) {\n verboseMessage(\n `Importing all providers from a single file (${options.file})...`\n );\n importSocialProvidersFromFile(options.file);\n }\n // --all-separate -A\n else if (options.allSeparate && !options.file && (await getTokens())) {\n verboseMessage(\n 'Importing all providers from separate files in current directory...'\n );\n importSocialProvidersFromFiles();\n }\n // import first provider from file\n else if (options.file && (await getTokens())) {\n verboseMessage(\n `Importing first provider from file \"${\n options.file\n }\" into realm \"${state.getRealm()}\"...`\n );\n importFirstSocialProviderFromFile(options.file);\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,EAAEC,GAAG,EAAEC,KAAK,QAAQ,uBAAuB;AAChE,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAElE,MAAM;EAAEC;AAAU,CAAC,GAAGL,YAAY;AAClC,MAAM;EACJM,4BAA4B;EAC5BC,iCAAiC;EACjCC,6BAA6B;EAC7BC;AACF,CAAC,GAAGR,GAAG;AAEP,MAAMS,OAAO,GAAG,IAAIZ,YAAY,CAAC,kBAAkB,CAAC;AAEpDY,OAAO,CACJC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,SAAS,CACR,IAAIb,MAAM,CACR,mBAAmB,EACnB,mDAAmD,CACpD,CACF,CACAa,SAAS,CACR,IAAIb,MAAM,CACR,mBAAmB,EACnB,kDAAkD,CACnD,CACF,CACAa,SAAS,CACR,IAAIb,MAAM,CACR,WAAW,EACX,mEAAmE,CACpE,CACF,CACAa,SAAS,CACR,IAAIb,MAAM,CACR,oBAAoB,EACpB,8GAA8G,CAC/G,CACF,CACAc,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD;EACA,IAAID,OAAO,CAACG,IAAI,IAAIH,OAAO,CAACI,KAAK,KAAK,MAAMjB,SAAS,EAAE,CAAC,EAAE;IACxDD,cAAc,CACX,uBACCc,OAAO,CAACI,KACT,iBAAgBpB,KAAK,CAACqB,QAAQ,EAAG,MAAK,CACxC;IACDjB,4BAA4B,CAACY,OAAO,CAACI,KAAK,EAAEJ,OAAO,CAACG,IAAI,CAAC;EAC3D;EACA;EAAA,KACK,IAAIH,OAAO,CAACM,GAAG,IAAIN,OAAO,CAACG,IAAI,KAAK,MAAMhB,SAAS,EAAE,CAAC,EAAE;IAC3DD,cAAc,CACX,+CAA8Cc,OAAO,CAACG,IAAK,MAAK,CAClE;IACDb,6BAA6B,CAACU,OAAO,CAACG,IAAI,CAAC;EAC7C;EACA;EAAA,KACK,IAAIH,OAAO,CAACO,WAAW,IAAI,CAACP,OAAO,CAACG,IAAI,KAAK,MAAMhB,SAAS,EAAE,CAAC,EAAE;IACpED,cAAc,CACZ,qEAAqE,CACtE;IACDK,8BAA8B,EAAE;EAClC;EACA;EAAA,KACK,IAAIS,OAAO,CAACG,IAAI,KAAK,MAAMhB,SAAS,EAAE,CAAC,EAAE;IAC5CD,cAAc,CACX,uCACCc,OAAO,CAACG,IACT,iBAAgBnB,KAAK,CAACqB,QAAQ,EAAG,MAAK,CACxC;IACDhB,iCAAiC,CAACW,OAAO,CAACG,IAAI,CAAC;EACjD;EACA;EAAA,KACK;IACHlB,YAAY,CAAC,sDAAsD,CAAC;IACpEO,OAAO,CAACgB,IAAI,EAAE;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHlB,OAAO,CAACmB,KAAK,EAAE"}
|