@depup/aws-cdk 2.1117.0-depup.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/LICENSE +202 -0
- package/NOTICE +16 -0
- package/README.md +25 -0
- package/THIRD_PARTY_LICENSES +24866 -0
- package/bin/cdk +6 -0
- package/build-info.json +4 -0
- package/changes.json +5 -0
- package/db.json.gz +0 -0
- package/docs/deploy-architecture.md +194 -0
- package/lib/api/aws-auth.d.ts +3 -0
- package/lib/api/aws-auth.js +21 -0
- package/lib/api/bootstrap/bootstrap-template.yaml +855 -0
- package/lib/api/bootstrap.d.ts +1 -0
- package/lib/api/bootstrap.js +19 -0
- package/lib/api/cloud-assembly.d.ts +5 -0
- package/lib/api/cloud-assembly.js +23 -0
- package/lib/api/cloudformation.d.ts +1 -0
- package/lib/api/cloudformation.js +19 -0
- package/lib/api/context.d.ts +1 -0
- package/lib/api/context.js +19 -0
- package/lib/api/deployments.d.ts +1 -0
- package/lib/api/deployments.js +19 -0
- package/lib/api/hotswap.d.ts +1 -0
- package/lib/api/hotswap.js +19 -0
- package/lib/api/index.d.ts +16 -0
- package/lib/api/index.js +38 -0
- package/lib/api/network-detector.d.ts +1 -0
- package/lib/api/network-detector.js +19 -0
- package/lib/api/notices.d.ts +1 -0
- package/lib/api/notices.js +19 -0
- package/lib/api/plugin.d.ts +1 -0
- package/lib/api/plugin.js +19 -0
- package/lib/api/refactor.d.ts +1 -0
- package/lib/api/refactor.js +8 -0
- package/lib/api/settings.d.ts +1 -0
- package/lib/api/settings.js +19 -0
- package/lib/api/tags.d.ts +1 -0
- package/lib/api/tags.js +19 -0
- package/lib/api-private.d.ts +9 -0
- package/lib/api-private.js +29 -0
- package/lib/cli/cdk-toolkit.d.ts +699 -0
- package/lib/cli/cdk-toolkit.js +1260 -0
- package/lib/cli/ci-systems.d.ts +29 -0
- package/lib/cli/ci-systems.js +61 -0
- package/lib/cli/cli-config.d.ts +10 -0
- package/lib/cli/cli-config.js +556 -0
- package/lib/cli/cli-type-registry.json +1147 -0
- package/lib/cli/cli.d.ts +3 -0
- package/lib/cli/cli.js +746 -0
- package/lib/cli/convert-to-user-input.d.ts +3 -0
- package/lib/cli/convert-to-user-input.js +560 -0
- package/lib/cli/display-version.d.ts +11 -0
- package/lib/cli/display-version.js +101 -0
- package/lib/cli/io-host/cli-io-host.d.ts +191 -0
- package/lib/cli/io-host/cli-io-host.js +477 -0
- package/lib/cli/io-host/index.d.ts +1 -0
- package/lib/cli/io-host/index.js +18 -0
- package/lib/cli/parse-command-line-arguments.d.ts +1 -0
- package/lib/cli/parse-command-line-arguments.js +1067 -0
- package/lib/cli/platform-warnings.d.ts +3 -0
- package/lib/cli/platform-warnings.js +44 -0
- package/lib/cli/pretty-print-error.d.ts +1 -0
- package/lib/cli/pretty-print-error.js +37 -0
- package/lib/cli/proxy-agent.d.ts +30 -0
- package/lib/cli/proxy-agent.js +52 -0
- package/lib/cli/root-dir.d.ts +10 -0
- package/lib/cli/root-dir.js +23 -0
- package/lib/cli/singleton-plugin-host.d.ts +7 -0
- package/lib/cli/singleton-plugin-host.js +11 -0
- package/lib/cli/tables.d.ts +1 -0
- package/lib/cli/tables.js +10 -0
- package/lib/cli/telemetry/collect-telemetry.d.ts +5 -0
- package/lib/cli/telemetry/collect-telemetry.js +16 -0
- package/lib/cli/telemetry/error.d.ts +15 -0
- package/lib/cli/telemetry/error.js +68 -0
- package/lib/cli/telemetry/feature-flags.d.ts +96 -0
- package/lib/cli/telemetry/feature-flags.js +103 -0
- package/lib/cli/telemetry/installation-id.d.ts +5 -0
- package/lib/cli/telemetry/installation-id.js +47 -0
- package/lib/cli/telemetry/library-version.d.ts +2 -0
- package/lib/cli/telemetry/library-version.js +30 -0
- package/lib/cli/telemetry/messages.d.ts +43 -0
- package/lib/cli/telemetry/messages.js +60 -0
- package/lib/cli/telemetry/sanitation.d.ts +100 -0
- package/lib/cli/telemetry/sanitation.js +79 -0
- package/lib/cli/telemetry/schema.d.ts +85 -0
- package/lib/cli/telemetry/schema.js +3 -0
- package/lib/cli/telemetry/session.d.ts +67 -0
- package/lib/cli/telemetry/session.js +174 -0
- package/lib/cli/telemetry/sink/endpoint-sink.d.ts +44 -0
- package/lib/cli/telemetry/sink/endpoint-sink.js +105 -0
- package/lib/cli/telemetry/sink/file-sink.d.ts +32 -0
- package/lib/cli/telemetry/sink/file-sink.js +43 -0
- package/lib/cli/telemetry/sink/funnel.d.ts +16 -0
- package/lib/cli/telemetry/sink/funnel.js +29 -0
- package/lib/cli/telemetry/sink/io-host-sink.d.ts +27 -0
- package/lib/cli/telemetry/sink/io-host-sink.js +35 -0
- package/lib/cli/telemetry/sink/sink-interface.d.ts +18 -0
- package/lib/cli/telemetry/sink/sink-interface.js +3 -0
- package/lib/cli/user-configuration.d.ts +104 -0
- package/lib/cli/user-configuration.js +334 -0
- package/lib/cli/user-input.d.ts +1505 -0
- package/lib/cli/user-input.js +3 -0
- package/lib/cli/util/ci.d.ts +5 -0
- package/lib/cli/util/ci.js +11 -0
- package/lib/cli/util/console-formatters.d.ts +18 -0
- package/lib/cli/util/console-formatters.js +42 -0
- package/lib/cli/util/guess-agent.d.ts +7 -0
- package/lib/cli/util/guess-agent.js +32 -0
- package/lib/cli/util/npm.d.ts +4 -0
- package/lib/cli/util/npm.js +34 -0
- package/lib/cli/util/trap-errors.d.ts +6 -0
- package/lib/cli/util/trap-errors.js +17 -0
- package/lib/cli/util/yargs-helpers.d.ts +22 -0
- package/lib/cli/util/yargs-helpers.js +49 -0
- package/lib/cli/version.d.ts +3 -0
- package/lib/cli/version.js +22 -0
- package/lib/commands/context.d.ts +40 -0
- package/lib/commands/context.js +158 -0
- package/lib/commands/deploy.d.ts +13 -0
- package/lib/commands/deploy.js +18 -0
- package/lib/commands/docs.d.ts +18 -0
- package/lib/commands/docs.js +33 -0
- package/lib/commands/doctor.d.ts +4 -0
- package/lib/commands/doctor.js +69 -0
- package/lib/commands/flags/flags.d.ts +13 -0
- package/lib/commands/flags/flags.js +30 -0
- package/lib/commands/flags/interactive-handler.d.ts +16 -0
- package/lib/commands/flags/interactive-handler.js +71 -0
- package/lib/commands/flags/obsolete-flags.d.ts +1 -0
- package/lib/commands/flags/obsolete-flags.js +9 -0
- package/lib/commands/flags/operations.d.ts +80 -0
- package/lib/commands/flags/operations.js +467 -0
- package/lib/commands/flags/router.d.ts +18 -0
- package/lib/commands/flags/router.js +60 -0
- package/lib/commands/flags/types.d.ts +12 -0
- package/lib/commands/flags/types.js +12 -0
- package/lib/commands/flags/validator.d.ts +22 -0
- package/lib/commands/flags/validator.js +95 -0
- package/lib/commands/init/index.d.ts +1 -0
- package/lib/commands/init/index.js +18 -0
- package/lib/commands/init/init-hooks.d.ts +41 -0
- package/lib/commands/init/init-hooks.js +85 -0
- package/lib/commands/init/init.d.ts +139 -0
- package/lib/commands/init/init.js +788 -0
- package/lib/commands/init/os.d.ts +8 -0
- package/lib/commands/init/os.js +91 -0
- package/lib/commands/init/package-manager.d.ts +15 -0
- package/lib/commands/init/package-manager.js +14 -0
- package/lib/commands/language.d.ts +30 -0
- package/lib/commands/language.js +46 -0
- package/lib/commands/list-stacks.d.ts +21 -0
- package/lib/commands/list-stacks.js +28 -0
- package/lib/commands/migrate.d.ts +316 -0
- package/lib/commands/migrate.js +801 -0
- package/lib/context-providers.d.ts +1 -0
- package/lib/context-providers.js +19 -0
- package/lib/cxapp/cloud-assembly.d.ts +79 -0
- package/lib/cxapp/cloud-assembly.js +109 -0
- package/lib/cxapp/cloud-executable.d.ts +51 -0
- package/lib/cxapp/cloud-executable.js +123 -0
- package/lib/cxapp/environments.d.ts +8 -0
- package/lib/cxapp/environments.js +66 -0
- package/lib/cxapp/exec.d.ts +14 -0
- package/lib/cxapp/exec.js +133 -0
- package/lib/cxapp/index.d.ts +4 -0
- package/lib/cxapp/index.js +21 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +364043 -0
- package/lib/index_bg.wasm +0 -0
- package/lib/init-templates/.init-version.json +1 -0
- package/lib/init-templates/.no-packagejson-validator +0 -0
- package/lib/init-templates/.recommended-feature-flags.json +86 -0
- package/lib/init-templates/LICENSE +16 -0
- package/lib/init-templates/app/csharp/.template.gitignore +342 -0
- package/lib/init-templates/app/csharp/README.md +14 -0
- package/lib/init-templates/app/csharp/cdk.template.json +15 -0
- package/lib/init-templates/app/csharp/src/%name.PascalCased%/%name.PascalCased%.template.csproj +20 -0
- package/lib/init-templates/app/csharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.cs +13 -0
- package/lib/init-templates/app/csharp/src/%name.PascalCased%/GlobalSuppressions.cs +1 -0
- package/lib/init-templates/app/csharp/src/%name.PascalCased%/Program.template.cs +44 -0
- package/lib/init-templates/app/csharp/src/%name.PascalCased%.template.sln +18 -0
- package/lib/init-templates/app/fsharp/.template.gitignore +342 -0
- package/lib/init-templates/app/fsharp/README.md +18 -0
- package/lib/init-templates/app/fsharp/cdk.template.json +14 -0
- package/lib/init-templates/app/fsharp/src/%name.PascalCased%/%name.PascalCased%.template.fsproj +25 -0
- package/lib/init-templates/app/fsharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.fs +8 -0
- package/lib/init-templates/app/fsharp/src/%name.PascalCased%/Program.template.fs +11 -0
- package/lib/init-templates/app/fsharp/src/%name.PascalCased%.template.sln +18 -0
- package/lib/init-templates/app/go/%name%.template.go +70 -0
- package/lib/init-templates/app/go/%name%_test.template.go +26 -0
- package/lib/init-templates/app/go/.template.gitignore +19 -0
- package/lib/init-templates/app/go/README.md +12 -0
- package/lib/init-templates/app/go/cdk.template.json +13 -0
- package/lib/init-templates/app/go/go.template.mod +9 -0
- package/lib/init-templates/app/info.json +4 -0
- package/lib/init-templates/app/java/.template.gitignore +13 -0
- package/lib/init-templates/app/java/README.md +18 -0
- package/lib/init-templates/app/java/cdk.json +13 -0
- package/lib/init-templates/app/java/pom.xml +60 -0
- package/lib/init-templates/app/java/src/main/java/com/myorg/%name.PascalCased%App.template.java +42 -0
- package/lib/init-templates/app/java/src/main/java/com/myorg/%name.PascalCased%Stack.template.java +24 -0
- package/lib/init-templates/app/java/src/test/java/com/myorg/%name.PascalCased%Test.template.java +26 -0
- package/lib/init-templates/app/javascript/.template.gitignore +5 -0
- package/lib/init-templates/app/javascript/.template.npmignore +3 -0
- package/lib/init-templates/app/javascript/README.md +12 -0
- package/lib/init-templates/app/javascript/bin/%name%.template.js +21 -0
- package/lib/init-templates/app/javascript/cdk.template.json +15 -0
- package/lib/init-templates/app/javascript/jest.config.js +4 -0
- package/lib/init-templates/app/javascript/lib/%name%-stack.template.js +23 -0
- package/lib/init-templates/app/javascript/package.json +20 -0
- package/lib/init-templates/app/javascript/test/%name%.test.template.js +17 -0
- package/lib/init-templates/app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py +19 -0
- package/lib/init-templates/app/python/%name.PythonModule%/__init__.py +0 -0
- package/lib/init-templates/app/python/.template.gitignore +10 -0
- package/lib/init-templates/app/python/README.template.md +58 -0
- package/lib/init-templates/app/python/app.template.py +28 -0
- package/lib/init-templates/app/python/cdk.template.json +15 -0
- package/lib/init-templates/app/python/requirements-dev.txt +1 -0
- package/lib/init-templates/app/python/requirements.txt +2 -0
- package/lib/init-templates/app/python/source.bat +13 -0
- package/lib/init-templates/app/python/tests/__init__.py +0 -0
- package/lib/init-templates/app/python/tests/unit/__init__.py +0 -0
- package/lib/init-templates/app/python/tests/unit/test_%name.PythonModule%_stack.template.py +15 -0
- package/lib/init-templates/app/typescript/.template.gitignore +8 -0
- package/lib/init-templates/app/typescript/.template.npmignore +6 -0
- package/lib/init-templates/app/typescript/README.md +14 -0
- package/lib/init-templates/app/typescript/bin/%name%.template.ts +20 -0
- package/lib/init-templates/app/typescript/cdk.template.json +17 -0
- package/lib/init-templates/app/typescript/jest.config.js +9 -0
- package/lib/init-templates/app/typescript/lib/%name%-stack.template.ts +16 -0
- package/lib/init-templates/app/typescript/package.json +26 -0
- package/lib/init-templates/app/typescript/test/%name%.test.template.ts +17 -0
- package/lib/init-templates/app/typescript/tsconfig.json +32 -0
- package/lib/init-templates/lib/info.json +4 -0
- package/lib/init-templates/lib/typescript/.template.gitignore +8 -0
- package/lib/init-templates/lib/typescript/.template.npmignore +6 -0
- package/lib/init-templates/lib/typescript/README.template.md +12 -0
- package/lib/init-templates/lib/typescript/jest.config.js +9 -0
- package/lib/init-templates/lib/typescript/lib/index.template.ts +21 -0
- package/lib/init-templates/lib/typescript/package.json +24 -0
- package/lib/init-templates/lib/typescript/test/%name%.test.template.ts +18 -0
- package/lib/init-templates/lib/typescript/tsconfig.json +32 -0
- package/lib/init-templates/sample-app/csharp/.template.gitignore +342 -0
- package/lib/init-templates/sample-app/csharp/README.template.md +19 -0
- package/lib/init-templates/sample-app/csharp/cdk.template.json +15 -0
- package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%/%name.PascalCased%.template.csproj +20 -0
- package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.cs +24 -0
- package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%/GlobalSuppressions.cs +1 -0
- package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%/Program.template.cs +15 -0
- package/lib/init-templates/sample-app/csharp/src/%name.PascalCased%.template.sln +18 -0
- package/lib/init-templates/sample-app/fsharp/.template.gitignore +342 -0
- package/lib/init-templates/sample-app/fsharp/README.template.md +20 -0
- package/lib/init-templates/sample-app/fsharp/cdk.template.json +14 -0
- package/lib/init-templates/sample-app/fsharp/src/%name.PascalCased%/%name.PascalCased%.template.fsproj +25 -0
- package/lib/init-templates/sample-app/fsharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.fs +14 -0
- package/lib/init-templates/sample-app/fsharp/src/%name.PascalCased%/Program.template.fs +11 -0
- package/lib/init-templates/sample-app/fsharp/src/%name.PascalCased%.template.sln +18 -0
- package/lib/init-templates/sample-app/go/%name%.template.go +73 -0
- package/lib/init-templates/sample-app/go/%name%_test.template.go +25 -0
- package/lib/init-templates/sample-app/go/.template.gitignore +19 -0
- package/lib/init-templates/sample-app/go/README.md +12 -0
- package/lib/init-templates/sample-app/go/cdk.template.json +13 -0
- package/lib/init-templates/sample-app/go/go.template.mod +9 -0
- package/lib/init-templates/sample-app/info.json +4 -0
- package/lib/init-templates/sample-app/java/.template.gitignore +13 -0
- package/lib/init-templates/sample-app/java/README.template.md +19 -0
- package/lib/init-templates/sample-app/java/cdk.json +13 -0
- package/lib/init-templates/sample-app/java/pom.xml +55 -0
- package/lib/init-templates/sample-app/java/src/main/java/com/myorg/%name.PascalCased%App.template.java +13 -0
- package/lib/init-templates/sample-app/java/src/main/java/com/myorg/%name.PascalCased%Stack.template.java +29 -0
- package/lib/init-templates/sample-app/java/src/test/java/com/myorg/%name.PascalCased%StackTest.template.java +27 -0
- package/lib/init-templates/sample-app/javascript/.template.gitignore +5 -0
- package/lib/init-templates/sample-app/javascript/.template.npmignore +3 -0
- package/lib/init-templates/sample-app/javascript/README.template.md +13 -0
- package/lib/init-templates/sample-app/javascript/bin/%name%.template.js +6 -0
- package/lib/init-templates/sample-app/javascript/cdk.template.json +15 -0
- package/lib/init-templates/sample-app/javascript/jest.config.js +4 -0
- package/lib/init-templates/sample-app/javascript/lib/%name%-stack.template.js +25 -0
- package/lib/init-templates/sample-app/javascript/package.json +20 -0
- package/lib/init-templates/sample-app/javascript/test/%name%.test.template.js +16 -0
- package/lib/init-templates/sample-app/javascript/tsconfig.json +34 -0
- package/lib/init-templates/sample-app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py +26 -0
- package/lib/init-templates/sample-app/python/%name.PythonModule%/__init__.py +0 -0
- package/lib/init-templates/sample-app/python/.template.gitignore +22 -0
- package/lib/init-templates/sample-app/python/README.template.md +65 -0
- package/lib/init-templates/sample-app/python/app.template.py +11 -0
- package/lib/init-templates/sample-app/python/cdk.template.json +15 -0
- package/lib/init-templates/sample-app/python/requirements-dev.txt +1 -0
- package/lib/init-templates/sample-app/python/requirements.txt +2 -0
- package/lib/init-templates/sample-app/python/source.bat +13 -0
- package/lib/init-templates/sample-app/python/tests/__init__.py +0 -0
- package/lib/init-templates/sample-app/python/tests/unit/__init__.py +0 -0
- package/lib/init-templates/sample-app/python/tests/unit/test_%name.PythonModule%_stack.template.py +21 -0
- package/lib/init-templates/sample-app/typescript/.template.gitignore +8 -0
- package/lib/init-templates/sample-app/typescript/.template.npmignore +6 -0
- package/lib/init-templates/sample-app/typescript/README.template.md +15 -0
- package/lib/init-templates/sample-app/typescript/bin/%name%.template.ts +6 -0
- package/lib/init-templates/sample-app/typescript/cdk.template.json +17 -0
- package/lib/init-templates/sample-app/typescript/jest.config.js +9 -0
- package/lib/init-templates/sample-app/typescript/lib/%name%-stack.template.ts +19 -0
- package/lib/init-templates/sample-app/typescript/package.json +26 -0
- package/lib/init-templates/sample-app/typescript/test/%name%.test.template.ts +17 -0
- package/lib/init-templates/sample-app/typescript/tsconfig.json +32 -0
- package/lib/util.d.ts +1 -0
- package/lib/util.js +19 -0
- package/package.json +170 -0
- package/release.txt +2 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.contextHandler = contextHandler;
|
|
4
|
+
const toolkit_lib_1 = require("@aws-cdk/toolkit-lib");
|
|
5
|
+
const chalk = require("chalk");
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
7
|
+
const picomatch = require("picomatch");
|
|
8
|
+
const display_version_1 = require("../cli/display-version");
|
|
9
|
+
const tables_1 = require("../cli/tables");
|
|
10
|
+
const user_configuration_1 = require("../cli/user-configuration");
|
|
11
|
+
async function contextHandler(options) {
|
|
12
|
+
const ioHelper = options.ioHelper;
|
|
13
|
+
if (options.clear) {
|
|
14
|
+
options.context.clear();
|
|
15
|
+
await options.context.save(user_configuration_1.PROJECT_CONTEXT);
|
|
16
|
+
await ioHelper.defaults.info('All context values cleared.');
|
|
17
|
+
}
|
|
18
|
+
else if (options.reset) {
|
|
19
|
+
await invalidateContext(ioHelper, options.context, options.reset, options.force ?? false);
|
|
20
|
+
await options.context.save(user_configuration_1.PROJECT_CONTEXT);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
// List -- support '--json' flag
|
|
24
|
+
if (options.json) {
|
|
25
|
+
/* c8 ignore start */
|
|
26
|
+
const contextValues = options.context.all;
|
|
27
|
+
await ioHelper.defaults.result(JSON.stringify(contextValues, undefined, 2));
|
|
28
|
+
/* c8 ignore stop */
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
await listContext(ioHelper, options.context);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
await (0, display_version_1.displayVersionMessage)(ioHelper);
|
|
35
|
+
return 0;
|
|
36
|
+
}
|
|
37
|
+
async function listContext(ioHelper, context) {
|
|
38
|
+
const keys = contextKeys(context);
|
|
39
|
+
if (keys.length === 0) {
|
|
40
|
+
await ioHelper.defaults.info('This CDK application does not have any saved context values yet.');
|
|
41
|
+
await ioHelper.defaults.info('');
|
|
42
|
+
await ioHelper.defaults.info('Context will automatically be saved when you synthesize CDK apps');
|
|
43
|
+
await ioHelper.defaults.info('that use environment context information like AZ information, VPCs,');
|
|
44
|
+
await ioHelper.defaults.info('SSM parameters, and so on.');
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// Print config by default
|
|
48
|
+
const data_out = [[chalk.green('#'), chalk.green('Key'), chalk.green('Value')]];
|
|
49
|
+
for (const [i, key] of keys) {
|
|
50
|
+
const jsonWithoutNewlines = JSON.stringify(context.all[key], undefined, 2).replace(/\s+/g, ' ');
|
|
51
|
+
data_out.push([i, key, jsonWithoutNewlines]);
|
|
52
|
+
}
|
|
53
|
+
await ioHelper.defaults.info('Context found in %s:', chalk.blue(user_configuration_1.PROJECT_CONFIG));
|
|
54
|
+
await ioHelper.defaults.info('');
|
|
55
|
+
await ioHelper.defaults.info((0, tables_1.renderTable)(data_out, process.stdout.columns));
|
|
56
|
+
// eslint-disable-next-line @stylistic/max-len
|
|
57
|
+
await ioHelper.defaults.info(`Run ${chalk.blue('cdk context --reset KEY_OR_NUMBER')} to remove a context key. It will be refreshed on the next CDK synthesis run.`);
|
|
58
|
+
}
|
|
59
|
+
async function invalidateContext(ioHelper, context, key, force) {
|
|
60
|
+
const i = parseInt(key, 10);
|
|
61
|
+
if (`${i}` === key) {
|
|
62
|
+
// was a number and we fully parsed it.
|
|
63
|
+
key = keyByNumber(context, i);
|
|
64
|
+
}
|
|
65
|
+
// Unset!
|
|
66
|
+
if (context.has(key)) {
|
|
67
|
+
context.unset(key);
|
|
68
|
+
// check if the value was actually unset.
|
|
69
|
+
if (!context.has(key)) {
|
|
70
|
+
await ioHelper.defaults.info('Context value %s reset. It will be refreshed on next synthesis', chalk.blue(key));
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
// Value must be in readonly bag
|
|
74
|
+
await ioHelper.defaults.error('Only context values specified in %s can be reset through the CLI', chalk.blue(user_configuration_1.PROJECT_CONTEXT));
|
|
75
|
+
if (!force) {
|
|
76
|
+
throw new toolkit_lib_1.ToolkitError('ReadonlyContextKey', `Cannot reset readonly context value with key: ${key}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// check if value is expression matching keys
|
|
80
|
+
const matches = keysByExpression(context, key);
|
|
81
|
+
if (matches.length > 0) {
|
|
82
|
+
matches.forEach((match) => {
|
|
83
|
+
context.unset(match);
|
|
84
|
+
});
|
|
85
|
+
const { unset, readonly } = getUnsetAndReadonly(context, matches);
|
|
86
|
+
// output the reset values
|
|
87
|
+
await printUnset(ioHelper, unset);
|
|
88
|
+
// warn about values not reset
|
|
89
|
+
await printReadonly(ioHelper, readonly);
|
|
90
|
+
// throw when none of the matches were reset
|
|
91
|
+
if (!force && unset.length === 0) {
|
|
92
|
+
throw new toolkit_lib_1.ToolkitError('NoResettableContextValues', 'None of the matched context values could be reset');
|
|
93
|
+
}
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (!force) {
|
|
97
|
+
throw new toolkit_lib_1.ToolkitError('ContextKeyNotFound', `No context value matching key: ${key}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
async function printUnset(ioHelper, unset) {
|
|
101
|
+
if (unset.length === 0)
|
|
102
|
+
return;
|
|
103
|
+
await ioHelper.defaults.info('The following matched context values reset. They will be refreshed on next synthesis');
|
|
104
|
+
for (const match of unset) {
|
|
105
|
+
await ioHelper.defaults.info(' %s', match);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async function printReadonly(ioHelper, readonly) {
|
|
109
|
+
if (readonly.length === 0)
|
|
110
|
+
return;
|
|
111
|
+
await ioHelper.defaults.warn('The following matched context values could not be reset through the CLI');
|
|
112
|
+
for (const match of readonly) {
|
|
113
|
+
await ioHelper.defaults.info(' %s', match);
|
|
114
|
+
}
|
|
115
|
+
await ioHelper.defaults.info('');
|
|
116
|
+
await ioHelper.defaults.info('This usually means they are configured in %s or %s', chalk.blue(user_configuration_1.PROJECT_CONFIG), chalk.blue(user_configuration_1.USER_DEFAULTS));
|
|
117
|
+
}
|
|
118
|
+
function keysByExpression(context, expression) {
|
|
119
|
+
const matchesExpression = picomatch(expression);
|
|
120
|
+
return context.keys.filter(key => matchesExpression(key));
|
|
121
|
+
}
|
|
122
|
+
function getUnsetAndReadonly(context, matches) {
|
|
123
|
+
return matches.reduce((acc, match) => {
|
|
124
|
+
if (context.has(match)) {
|
|
125
|
+
acc.readonly.push(match);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
acc.unset.push(match);
|
|
129
|
+
}
|
|
130
|
+
return acc;
|
|
131
|
+
}, { unset: [], readonly: [] });
|
|
132
|
+
}
|
|
133
|
+
function keyByNumber(context, n) {
|
|
134
|
+
for (const [i, key] of contextKeys(context)) {
|
|
135
|
+
if (n === i) {
|
|
136
|
+
return key;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
throw new toolkit_lib_1.ToolkitError('ContextKeyNumberNotFound', `No context key with number: ${n}`);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Return enumerated keys in a definitive order
|
|
143
|
+
*/
|
|
144
|
+
function contextKeys(context) {
|
|
145
|
+
const keys = context.keys;
|
|
146
|
+
keys.sort();
|
|
147
|
+
return enumerate1(keys);
|
|
148
|
+
}
|
|
149
|
+
function enumerate1(xs) {
|
|
150
|
+
const ret = new Array();
|
|
151
|
+
let i = 1;
|
|
152
|
+
for (const x of xs) {
|
|
153
|
+
ret.push([i, x]);
|
|
154
|
+
i += 1;
|
|
155
|
+
}
|
|
156
|
+
return ret;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFxREEsd0NBd0JDO0FBN0VELHNEQUFvRDtBQUNwRCwrQkFBK0I7QUFDL0IsaUVBQWlFO0FBQ2pFLHVDQUF3QztBQUd4Qyw0REFBK0Q7QUFDL0QsMENBQTRDO0FBQzVDLGtFQUEyRjtBQTZDcEYsS0FBSyxVQUFVLGNBQWMsQ0FBQyxPQUF1QjtJQUMxRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBRWxDLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEIsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQ0FBZSxDQUFDLENBQUM7UUFDNUMsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQzlELENBQUM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixNQUFNLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsQ0FBQztRQUMxRixNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9DQUFlLENBQUMsQ0FBQztJQUM5QyxDQUFDO1NBQU0sQ0FBQztRQUNOLGdDQUFnQztRQUNoQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixxQkFBcUI7WUFDckIsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDMUMsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxD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Q0FBQyxPQUFnQjtJQUNuQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzFCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNaLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBSSxFQUFPO0lBQzVCLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFlLENBQUM7SUFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNULENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICdAYXdzLWNkay90b29sa2l0LWxpYic7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuaW1wb3J0IHBpY29tYXRjaCA9IHJlcXVpcmUoJ3BpY29tYXRjaCcpO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0IH0gZnJvbSAnLi4vYXBpL2NvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2FwaS1wcml2YXRlJztcbmltcG9ydCB7IGRpc3BsYXlWZXJzaW9uTWVzc2FnZSB9IGZyb20gJy4uL2NsaS9kaXNwbGF5LXZlcnNpb24nO1xuaW1wb3J0IHsgcmVuZGVyVGFibGUgfSBmcm9tICcuLi9jbGkvdGFibGVzJztcbmltcG9ydCB7IFBST0pFQ1RfQ09ORklHLCBQUk9KRUNUX0NPTlRFWFQsIFVTRVJfREVGQVVMVFMgfSBmcm9tICcuLi9jbGkvdXNlci1jb25maWd1cmF0aW9uJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgY29udGV4dCBjb21tYW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbnRleHQgb2JqZWN0IHNvdXJjZWQgZnJvbSBhbGwgY29udGV4dCBsb2NhdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ6IENvbnRleHQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZXh0IGtleSAob3IgaXRzIGluZGV4KSB0byByZXNldFxuICAgKlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlc2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZ25vcmUgbWlzc2luZyBrZXkgZXJyb3JcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2xlYXIgYWxsIGNvbnRleHRcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNsZWFyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIEpTT04gb3V0cHV0IGluc3RlYWQgb2YgWUFNTCB3aGVuIHRlbXBsYXRlcyBhcmUgcHJpbnRlZCB0byBTVERPVVRcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGpzb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJb0hlbHBlciBmb3IgbWVzc2FnaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29udGV4dEhhbmRsZXIob3B0aW9uczogQ29udGV4dE9wdGlvbnMpOiBQcm9taXNlPG51bWJlcj4ge1xuICBjb25zdCBpb0hlbHBlciA9IG9wdGlvbnMuaW9IZWxwZXI7XG5cbiAgaWYgKG9wdGlvbnMuY2xlYXIpIHtcbiAgICBvcHRpb25zLmNvbnRleHQuY2xlYXIoKTtcbiAgICBhd2FpdCBvcHRpb25zLmNvbnRleHQuc2F2ZShQUk9KRUNUX0NPTlRFWFQpO1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ0FsbCBjb250ZXh0IHZhbHVlcyBjbGVhcmVkLicpO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMucmVzZXQpIHtcbiAgICBhd2FpdCBpbnZhbGlkYXRlQ29udGV4dChpb0hlbHBlciwgb3B0aW9ucy5jb250ZXh0LCBvcHRpb25zLnJlc2V0LCBvcHRpb25zLmZvcmNlID8/IGZhbHNlKTtcbiAgICBhd2FpdCBvcHRpb25zLmNvbnRleHQuc2F2ZShQUk9KRUNUX0NPTlRFWFQpO1xuICB9IGVsc2Uge1xuICAgIC8vIExpc3QgLS0gc3VwcG9ydCAnLS1qc29uJyBmbGFnXG4gICAgaWYgKG9wdGlvbnMuanNvbikge1xuICAgICAgLyogYzggaWdub3JlIHN0YXJ0ICovXG4gICAgICBjb25zdCBjb250ZXh0VmFsdWVzID0gb3B0aW9ucy5jb250ZXh0LmFsbDtcbiAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLnJlc3VsdChKU09OLnN0cmluZ2lmeShjb250ZXh0VmFsdWVzLCB1bmRlZmluZWQsIDIpKTtcbiAgICAgIC8qIGM4IGlnbm9yZSBzdG9wICovXG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGxpc3RDb250ZXh0KGlvSGVscGVyLCBvcHRpb25zLmNvbnRleHQpO1xuICAgIH1cbiAgfVxuICBhd2FpdCBkaXNwbGF5VmVyc2lvbk1lc3NhZ2UoaW9IZWxwZXIpO1xuXG4gIHJldHVybiAwO1xufVxuXG5hc3luYyBmdW5jdGlvbiBsaXN0Q29udGV4dChpb0hlbHBlcjogSW9IZWxwZXIsIGNvbnRleHQ6IENvbnRleHQpIHtcbiAgY29uc3Qga2V5cyA9IGNvbnRleHRLZXlzKGNvbnRleHQpO1xuXG4gIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ1RoaXMgQ0RLIGFwcGxpY2F0aW9uIGRvZXMgbm90IGhhdmUgYW55IHNhdmVkIGNvbnRleHQgdmFsdWVzIHlldC4nKTtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKCcnKTtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKCdDb250ZXh0IHdpbGwgYXV0b21hdGljYWxseSBiZSBzYXZlZCB3aGVuIHlvdSBzeW50aGVzaXplIENESyBhcHBzJyk7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbygndGhhdCB1c2UgZW52aXJvbm1lbnQgY29udGV4dCBpbmZvcm1hdGlvbiBsaWtlIEFaIGluZm9ybWF0aW9uLCBWUENzLCcpO1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ1NTTSBwYXJhbWV0ZXJzLCBhbmQgc28gb24uJyk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBQcmludCBjb25maWcgYnkgZGVmYXVsdFxuICBjb25zdCBkYXRhX291dDogYW55W10gPSBbW2NoYWxrLmdyZWVuKCcjJyksIGNoYWxrLmdyZWVuKCdLZXknKSwgY2hhbGsuZ3JlZW4oJ1ZhbHVlJyldXTtcbiAgZm9yIChjb25zdCBbaSwga2V5XSBvZiBrZXlzKSB7XG4gICAgY29uc3QganNvbldpdGhvdXROZXdsaW5lcyA9IEpTT04uc3RyaW5naWZ5KGNvbnRleHQuYWxsW2tleV0sIHVuZGVmaW5lZCwgMikucmVwbGFjZSgvXFxzKy9nLCAnICcpO1xuICAgIGRhdGFfb3V0LnB1c2goW2ksIGtleSwganNvbldpdGhvdXROZXdsaW5lc10pO1xuICB9XG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ0NvbnRleHQgZm91bmQgaW4gJXM6JywgY2hhbGsuYmx1ZShQUk9KRUNUX0NPTkZJRykpO1xuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKCcnKTtcbiAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhyZW5kZXJUYWJsZShkYXRhX291dCwgcHJvY2Vzcy5zdGRvdXQuY29sdW1ucykpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAc3R5bGlzdGljL21heC1sZW5cbiAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhgUnVuICR7Y2hhbGsuYmx1ZSgnY2RrIGNvbnRleHQgLS1yZXNldCBLRVlfT1JfTlVNQkVSJyl9IHRvIHJlbW92ZSBhIGNvbnRleHQga2V5LiBJdCB3aWxsIGJlIHJlZnJlc2hlZCBvbiB0aGUgbmV4dCBDREsgc3ludGhlc2lzIHJ1bi5gKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW52YWxpZGF0ZUNvbnRleHQoaW9IZWxwZXI6IElvSGVscGVyLCBjb250ZXh0OiBDb250ZXh0LCBrZXk6IHN0cmluZywgZm9yY2U6IGJvb2xlYW4pIHtcbiAgY29uc3QgaSA9IHBhcnNlSW50KGtleSwgMTApO1xuICBpZiAoYCR7aX1gID09PSBrZXkpIHtcbiAgICAvLyB3YXMgYSBudW1iZXIgYW5kIHdlIGZ1bGx5IHBhcnNlZCBpdC5cbiAgICBrZXkgPSBrZXlCeU51bWJlcihjb250ZXh0LCBpKTtcbiAgfVxuICAvLyBVbnNldCFcbiAgaWYgKGNvbnRleHQuaGFzKGtleSkpIHtcbiAgICBjb250ZXh0LnVuc2V0KGtleSk7XG4gICAgLy8gY2hlY2sgaWYgdGhlIHZhbHVlIHdhcyBhY3R1YWxseSB1bnNldC5cbiAgICBpZiAoIWNvbnRleHQuaGFzKGtleSkpIHtcbiAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ0NvbnRleHQgdmFsdWUgJXMgcmVzZXQuIEl0IHdpbGwgYmUgcmVmcmVzaGVkIG9uIG5leHQgc3ludGhlc2lzJywgY2hhbGsuYmx1ZShrZXkpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBWYWx1ZSBtdXN0IGJlIGluIHJlYWRvbmx5IGJhZ1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmVycm9yKCdPbmx5IGNvbnRleHQgdmFsdWVzIHNwZWNpZmllZCBpbiAlcyBjYW4gYmUgcmVzZXQgdGhyb3VnaCB0aGUgQ0xJJywgY2hhbGsuYmx1ZShQUk9KRUNUX0NPTlRFWFQpKTtcbiAgICBpZiAoIWZvcmNlKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdSZWFkb25seUNvbnRleHRLZXknLCBgQ2Fubm90IHJlc2V0IHJlYWRvbmx5IGNvbnRleHQgdmFsdWUgd2l0aCBrZXk6ICR7a2V5fWApO1xuICAgIH1cbiAgfVxuXG4gIC8vIGNoZWNrIGlmIHZhbHVlIGlzIGV4cHJlc3Npb24gbWF0Y2hpbmcga2V5c1xuICBjb25zdCBtYXRjaGVzID0ga2V5c0J5RXhwcmVzc2lvbihjb250ZXh0LCBrZXkpO1xuXG4gIGlmIChtYXRjaGVzLmxlbmd0aCA+IDApIHtcbiAgICBtYXRjaGVzLmZvckVhY2goKG1hdGNoKSA9PiB7XG4gICAgICBjb250ZXh0LnVuc2V0KG1hdGNoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHsgdW5zZXQsIHJlYWRvbmx5IH0gPSBnZXRVbnNldEFuZFJlYWRvbmx5KGNvbnRleHQsIG1hdGNoZXMpO1xuXG4gICAgLy8gb3V0cHV0IHRoZSByZXNldCB2YWx1ZXNcbiAgICBhd2FpdCBwcmludFVuc2V0KGlvSGVscGVyLCB1bnNldCk7XG5cbiAgICAvLyB3YXJuIGFib3V0IHZhbHVlcyBub3QgcmVzZXRcbiAgICBhd2FpdCBwcmludFJlYWRvbmx5KGlvSGVscGVyLCByZWFkb25seSk7XG5cbiAgICAvLyB0aHJvdyB3aGVuIG5vbmUgb2YgdGhlIG1hdGNoZXMgd2VyZSByZXNldFxuICAgIGlmICghZm9yY2UgJiYgdW5zZXQubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdOb1Jlc2V0dGFibGVDb250ZXh0VmFsdWVzJywgJ05vbmUgb2YgdGhlIG1hdGNoZWQgY29udGV4dCB2YWx1ZXMgY291bGQgYmUgcmVzZXQnKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICghZm9yY2UpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdDb250ZXh0S2V5Tm90Rm91bmQnLCBgTm8gY29udGV4dCB2YWx1ZSBtYXRjaGluZyBrZXk6ICR7a2V5fWApO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHByaW50VW5zZXQoaW9IZWxwZXI6IElvSGVscGVyLCB1bnNldDogc3RyaW5nW10pIHtcbiAgaWYgKHVuc2V0Lmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKCdUaGUgZm9sbG93aW5nIG1hdGNoZWQgY29udGV4dCB2YWx1ZXMgcmVzZXQuIFRoZXkgd2lsbCBiZSByZWZyZXNoZWQgb24gbmV4dCBzeW50aGVzaXMnKTtcbiAgZm9yIChjb25zdCBtYXRjaCBvZiB1bnNldCkge1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJyAgJXMnLCBtYXRjaCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJpbnRSZWFkb25seShpb0hlbHBlcjogSW9IZWxwZXIsIHJlYWRvbmx5OiBzdHJpbmdbXSkge1xuICBpZiAocmVhZG9ubHkubGVuZ3RoID09PSAwKSByZXR1cm47XG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLndhcm4oJ1RoZSBmb2xsb3dpbmcgbWF0Y2hlZCBjb250ZXh0IHZhbHVlcyBjb3VsZCBub3QgYmUgcmVzZXQgdGhyb3VnaCB0aGUgQ0xJJyk7XG4gIGZvciAoY29uc3QgbWF0Y2ggb2YgcmVhZG9ubHkpIHtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKCcgICVzJywgbWF0Y2gpO1xuICB9XG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJycpO1xuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKCdUaGlzIHVzdWFsbHkgbWVhbnMgdGhleSBhcmUgY29uZmlndXJlZCBpbiAlcyBvciAlcycsIGNoYWxrLmJsdWUoUFJPSkVDVF9DT05GSUcpLCBjaGFsay5ibHVlKFVTRVJfREVGQVVMVFMpKTtcbn1cblxuZnVuY3Rpb24ga2V5c0J5RXhwcmVzc2lvbihjb250ZXh0OiBDb250ZXh0LCBleHByZXNzaW9uOiBzdHJpbmcpIHtcbiAgY29uc3QgbWF0Y2hlc0V4cHJlc3Npb24gPSBwaWNvbWF0Y2goZXhwcmVzc2lvbik7XG4gIHJldHVybiBjb250ZXh0LmtleXMuZmlsdGVyKGtleSA9PiBtYXRjaGVzRXhwcmVzc2lvbihrZXkpKTtcbn1cblxuZnVuY3Rpb24gZ2V0VW5zZXRBbmRSZWFkb25seShjb250ZXh0OiBDb250ZXh0LCBtYXRjaGVzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gbWF0Y2hlcy5yZWR1Y2U8eyB1bnNldDogc3RyaW5nW107IHJlYWRvbmx5OiBzdHJpbmdbXSB9PigoYWNjLCBtYXRjaCkgPT4ge1xuICAgIGlmIChjb250ZXh0LmhhcyhtYXRjaCkpIHtcbiAgICAgIGFjYy5yZWFkb25seS5wdXNoKG1hdGNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYWNjLnVuc2V0LnB1c2gobWF0Y2gpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7IHVuc2V0OiBbXSwgcmVhZG9ubHk6IFtdIH0pO1xufVxuXG5mdW5jdGlvbiBrZXlCeU51bWJlcihjb250ZXh0OiBDb250ZXh0LCBuOiBudW1iZXIpIHtcbiAgZm9yIChjb25zdCBbaSwga2V5XSBvZiBjb250ZXh0S2V5cyhjb250ZXh0KSkge1xuICAgIGlmIChuID09PSBpKSB7XG4gICAgICByZXR1cm4ga2V5O1xuICAgIH1cbiAgfVxuICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdDb250ZXh0S2V5TnVtYmVyTm90Rm91bmQnLCBgTm8gY29udGV4dCBrZXkgd2l0aCBudW1iZXI6ICR7bn1gKTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gZW51bWVyYXRlZCBrZXlzIGluIGEgZGVmaW5pdGl2ZSBvcmRlclxuICovXG5mdW5jdGlvbiBjb250ZXh0S2V5cyhjb250ZXh0OiBDb250ZXh0KTogW251bWJlciwgc3RyaW5nXVtdIHtcbiAgY29uc3Qga2V5cyA9IGNvbnRleHQua2V5cztcbiAga2V5cy5zb3J0KCk7XG4gIHJldHVybiBlbnVtZXJhdGUxKGtleXMpO1xufVxuXG5mdW5jdGlvbiBlbnVtZXJhdGUxPFQ+KHhzOiBUW10pOiBBcnJheTxbbnVtYmVyLCBUXT4ge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8W251bWJlciwgVF0+KCk7XG4gIGxldCBpID0gMTtcbiAgZm9yIChjb25zdCB4IG9mIHhzKSB7XG4gICAgcmV0LnB1c2goW2ksIHhdKTtcbiAgICBpICs9IDE7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supported display modes for stack deployment activity
|
|
3
|
+
*/
|
|
4
|
+
export declare enum StackActivityProgress {
|
|
5
|
+
/**
|
|
6
|
+
* Displays a progress bar with only the events for the resource currently being deployed
|
|
7
|
+
*/
|
|
8
|
+
BAR = "bar",
|
|
9
|
+
/**
|
|
10
|
+
* Displays complete history with all CloudFormation stack events
|
|
11
|
+
*/
|
|
12
|
+
EVENTS = "events"
|
|
13
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StackActivityProgress = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Supported display modes for stack deployment activity
|
|
6
|
+
*/
|
|
7
|
+
var StackActivityProgress;
|
|
8
|
+
(function (StackActivityProgress) {
|
|
9
|
+
/**
|
|
10
|
+
* Displays a progress bar with only the events for the resource currently being deployed
|
|
11
|
+
*/
|
|
12
|
+
StackActivityProgress["BAR"] = "bar";
|
|
13
|
+
/**
|
|
14
|
+
* Displays complete history with all CloudFormation stack events
|
|
15
|
+
*/
|
|
16
|
+
StackActivityProgress["EVENTS"] = "events";
|
|
17
|
+
})(StackActivityProgress || (exports.StackActivityProgress = StackActivityProgress = {}));
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVwbG95LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsSUFBWSxxQkFVWDtBQVZELFdBQVkscUJBQXFCO0lBQy9COztPQUVHO0lBQ0gsb0NBQVcsQ0FBQTtJQUVYOztPQUVHO0lBQ0gsMENBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVZXLHFCQUFxQixxQ0FBckIscUJBQXFCLFFBVWhDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdXBwb3J0ZWQgZGlzcGxheSBtb2RlcyBmb3Igc3RhY2sgZGVwbG95bWVudCBhY3Rpdml0eVxuICovXG5leHBvcnQgZW51bSBTdGFja0FjdGl2aXR5UHJvZ3Jlc3Mge1xuICAvKipcbiAgICogRGlzcGxheXMgYSBwcm9ncmVzcyBiYXIgd2l0aCBvbmx5IHRoZSBldmVudHMgZm9yIHRoZSByZXNvdXJjZSBjdXJyZW50bHkgYmVpbmcgZGVwbG95ZWRcbiAgICovXG4gIEJBUiA9ICdiYXInLFxuXG4gIC8qKlxuICAgKiBEaXNwbGF5cyBjb21wbGV0ZSBoaXN0b3J5IHdpdGggYWxsIENsb3VkRm9ybWF0aW9uIHN0YWNrIGV2ZW50c1xuICAgKi9cbiAgRVZFTlRTID0gJ2V2ZW50cycsXG59XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { IoHelper } from '../api-private';
|
|
2
|
+
export declare const command = "docs";
|
|
3
|
+
export declare const describe = "Opens the reference documentation in a browser";
|
|
4
|
+
export declare const aliases: string[];
|
|
5
|
+
/**
|
|
6
|
+
* Options for the docs command
|
|
7
|
+
*/
|
|
8
|
+
export interface DocsOptions {
|
|
9
|
+
/**
|
|
10
|
+
* The command to use to open the browser
|
|
11
|
+
*/
|
|
12
|
+
readonly browser: string;
|
|
13
|
+
/**
|
|
14
|
+
* IoHelper for messaging
|
|
15
|
+
*/
|
|
16
|
+
readonly ioHelper: IoHelper;
|
|
17
|
+
}
|
|
18
|
+
export declare function docs(options: DocsOptions): Promise<number>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.aliases = exports.describe = exports.command = void 0;
|
|
4
|
+
exports.docs = docs;
|
|
5
|
+
const childProcess = require("child_process");
|
|
6
|
+
const node_util_1 = require("node:util");
|
|
7
|
+
const chalk = require("chalk");
|
|
8
|
+
exports.command = 'docs';
|
|
9
|
+
exports.describe = 'Opens the reference documentation in a browser';
|
|
10
|
+
exports.aliases = ['doc'];
|
|
11
|
+
async function docs(options) {
|
|
12
|
+
const ioHelper = options.ioHelper;
|
|
13
|
+
const url = 'https://docs.aws.amazon.com/cdk/api/v2/';
|
|
14
|
+
await ioHelper.defaults.info(chalk.green(url));
|
|
15
|
+
const browserCommand = (options.browser).replace(/%u/g, url);
|
|
16
|
+
await ioHelper.defaults.debug(`Opening documentation ${chalk.green(browserCommand)}`);
|
|
17
|
+
const exec = (0, node_util_1.promisify)(childProcess.exec);
|
|
18
|
+
try {
|
|
19
|
+
const { stdout, stderr } = await exec(browserCommand);
|
|
20
|
+
if (stdout) {
|
|
21
|
+
await ioHelper.defaults.debug(stdout);
|
|
22
|
+
}
|
|
23
|
+
if (stderr) {
|
|
24
|
+
await ioHelper.defaults.warn(stderr);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
const e = err;
|
|
29
|
+
await ioHelper.defaults.debug(`An error occurred when trying to open a browser: ${e.stack || e.message}`);
|
|
30
|
+
}
|
|
31
|
+
return 0;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRvY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd0JBLG9CQXVCQztBQS9DRCw4Q0FBOEM7QUFDOUMseUNBQXNDO0FBQ3RDLCtCQUErQjtBQUdsQixRQUFBLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDakIsUUFBQSxRQUFRLEdBQUcsZ0RBQWdELENBQUM7QUFDNUQsUUFBQSxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQWlCeEIsS0FBSyxVQUFVLElBQUksQ0FBQyxPQUFvQjtJQUM3QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ2xDLE1BQU0sR0FBRyxHQUFHLHlDQUF5QyxDQUFDO0lBQ3RELE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0QsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFdEYsTUFBTSxJQUFJLEdBQUcsSUFBQSxxQkFBUyxFQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUxQyxJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sR0FBWSxFQUFFLENBQUM7UUFDdEIsTUFBTSxDQUFDLEdBQUcsR0FBaUMsQ0FBQztRQUM1QyxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGlsZFByb2Nlc3MgZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICdub2RlOnV0aWwnO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2FwaS1wcml2YXRlJztcblxuZXhwb3J0IGNvbnN0IGNvbW1hbmQgPSAnZG9jcyc7XG5leHBvcnQgY29uc3QgZGVzY3JpYmUgPSAnT3BlbnMgdGhlIHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uIGluIGEgYnJvd3Nlcic7XG5leHBvcnQgY29uc3QgYWxpYXNlcyA9IFsnZG9jJ107XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGRvY3MgY29tbWFuZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvY3NPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb21tYW5kIHRvIHVzZSB0byBvcGVuIHRoZSBicm93c2VyXG4gICAqL1xuICByZWFkb25seSBicm93c2VyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElvSGVscGVyIGZvciBtZXNzYWdpbmdcbiAgICovXG4gIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvY3Mob3B0aW9uczogRG9jc09wdGlvbnMpOiBQcm9taXNlPG51bWJlcj4ge1xuICBjb25zdCBpb0hlbHBlciA9IG9wdGlvbnMuaW9IZWxwZXI7XG4gIGNvbnN0IHVybCA9ICdodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2FwaS92Mi8nO1xuICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKGNoYWxrLmdyZWVuKHVybCkpO1xuICBjb25zdCBicm93c2VyQ29tbWFuZCA9IChvcHRpb25zLmJyb3dzZXIpLnJlcGxhY2UoLyV1L2csIHVybCk7XG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBPcGVuaW5nIGRvY3VtZW50YXRpb24gJHtjaGFsay5ncmVlbihicm93c2VyQ29tbWFuZCl9YCk7XG5cbiAgY29uc3QgZXhlYyA9IHByb21pc2lmeShjaGlsZFByb2Nlc3MuZXhlYyk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB7IHN0ZG91dCwgc3RkZXJyIH0gPSBhd2FpdCBleGVjKGJyb3dzZXJDb21tYW5kKTtcbiAgICBpZiAoc3Rkb3V0KSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhzdGRvdXQpO1xuICAgIH1cbiAgICBpZiAoc3RkZXJyKSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy53YXJuKHN0ZGVycik7XG4gICAgfVxuICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICBjb25zdCBlID0gZXJyIGFzIGNoaWxkUHJvY2Vzcy5FeGVjRXhjZXB0aW9uO1xuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBBbiBlcnJvciBvY2N1cnJlZCB3aGVuIHRyeWluZyB0byBvcGVuIGEgYnJvd3NlcjogJHtlLnN0YWNrIHx8IGUubWVzc2FnZX1gKTtcbiAgfVxuXG4gIHJldHVybiAwO1xufVxuIl19
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.doctor = doctor;
|
|
4
|
+
const process = require("process");
|
|
5
|
+
const cxapi = require("@aws-cdk/cx-api");
|
|
6
|
+
const chalk = require("chalk");
|
|
7
|
+
const display_version_1 = require("../cli/display-version");
|
|
8
|
+
const version_1 = require("../cli/version");
|
|
9
|
+
async function doctor({ ioHelper }) {
|
|
10
|
+
let exitStatus = 0;
|
|
11
|
+
for (const verification of verifications) {
|
|
12
|
+
if (!await verification(ioHelper)) {
|
|
13
|
+
exitStatus = -1;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
await (0, display_version_1.displayVersionMessage)(ioHelper);
|
|
17
|
+
return exitStatus;
|
|
18
|
+
}
|
|
19
|
+
const verifications = [
|
|
20
|
+
displayVersionInformation,
|
|
21
|
+
displayAwsEnvironmentVariables,
|
|
22
|
+
displayCdkEnvironmentVariables,
|
|
23
|
+
];
|
|
24
|
+
// ### Verifications ###
|
|
25
|
+
async function displayVersionInformation(ioHelper) {
|
|
26
|
+
await ioHelper.defaults.info(`ℹ️ CDK Version: ${chalk.green((0, version_1.versionWithBuild)())}`);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
async function displayAwsEnvironmentVariables(ioHelper) {
|
|
30
|
+
const keys = Object.keys(process.env).filter(s => s.startsWith('AWS_'));
|
|
31
|
+
if (keys.length === 0) {
|
|
32
|
+
await ioHelper.defaults.info('ℹ️ No AWS environment variables');
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
await ioHelper.defaults.info('ℹ️ AWS environment variables:');
|
|
36
|
+
for (const key of keys) {
|
|
37
|
+
await ioHelper.defaults.info(` - ${chalk.blue(key)} = ${chalk.green(anonymizeAwsVariable(key, process.env[key]))}`);
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
async function displayCdkEnvironmentVariables(ioHelper) {
|
|
42
|
+
const keys = Object.keys(process.env).filter(s => s.startsWith('CDK_'));
|
|
43
|
+
if (keys.length === 0) {
|
|
44
|
+
await ioHelper.defaults.info('ℹ️ No CDK environment variables');
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
await ioHelper.defaults.info('ℹ️ CDK environment variables:');
|
|
48
|
+
let healthy = true;
|
|
49
|
+
for (const key of keys.sort()) {
|
|
50
|
+
if (key === cxapi.CONTEXT_ENV || key === cxapi.CONTEXT_OVERFLOW_LOCATION_ENV || key === cxapi.OUTDIR_ENV) {
|
|
51
|
+
await ioHelper.defaults.info(` - ${chalk.red(key)} = ${chalk.green(process.env[key])} (⚠️ reserved for use by the CDK toolkit)`);
|
|
52
|
+
healthy = false;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
await ioHelper.defaults.info(` - ${chalk.blue(key)} = ${chalk.green(process.env[key])}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return healthy;
|
|
59
|
+
}
|
|
60
|
+
function anonymizeAwsVariable(name, value) {
|
|
61
|
+
if (name === 'AWS_ACCESS_KEY_ID') {
|
|
62
|
+
return value.slice(0, 4) + '<redacted>';
|
|
63
|
+
} // Show ASIA/AKIA key type, but hide identifier
|
|
64
|
+
if (name === 'AWS_SECRET_ACCESS_KEY' || name === 'AWS_SESSION_TOKEN' || name === 'AWS_SECURITY_TOKEN') {
|
|
65
|
+
return '<redacted>';
|
|
66
|
+
}
|
|
67
|
+
return value;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9jdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esd0JBU0M7QUFoQkQsbUNBQW1DO0FBQ25DLHlDQUF5QztBQUN6QywrQkFBK0I7QUFFL0IsNERBQStEO0FBQy9ELDRDQUFrRDtBQUUzQyxLQUFLLFVBQVUsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUEwQjtJQUMvRCxJQUFJLFVBQVUsR0FBVyxDQUFDLENBQUM7SUFDM0IsS0FBSyxNQUFNLFlBQVksSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLElBQUEsdUNBQXFCLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELE1BQU0sYUFBYSxHQUE4RDtJQUMvRSx5QkFBeUI7SUFDekIsOEJBQThCO0lBQzlCLDhCQUE4QjtDQUMvQixDQUFDO0FBRUYsd0JBQXdCO0FBRXhCLEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxRQUFrQjtJQUN6RCxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixLQUFLLENBQUMsS0FBSyxDQUFDLElBQUEsMEJBQWdCLEdBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuRixPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxLQUFLLFVBQVUsOEJBQThCLENBQUMsUUFBa0I7SUFDOUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQzlELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxLQUFLLFVBQVUsOEJBQThCLENBQUMsUUFBa0I7SUFDOUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN0QixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQzlELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztJQUNuQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQzlCLElBQUksR0FBRyxLQUFLLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxLQUFLLEtBQUssQ0FBQyw2QkFBNkIsSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3pHLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1lBQ25JLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDbEIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0YsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxJQUFZLEVBQUUsS0FBYTtJQUN2RCxJQUFJLElBQUksS0FBSyxtQkFBbUIsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDO0lBQzFDLENBQUMsQ0FBQywrQ0FBK0M7SUFDakQsSUFBSSxJQUFJLEtBQUssdUJBQXVCLElBQUksSUFBSSxLQUFLLG1CQUFtQixJQUFJLElBQUksS0FBSyxvQkFBb0IsRUFBRSxDQUFDO1FBQ3RHLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwcm9jZXNzIGZyb20gJ3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9hcGktcHJpdmF0ZSc7XG5pbXBvcnQgeyBkaXNwbGF5VmVyc2lvbk1lc3NhZ2UgfSBmcm9tICcuLi9jbGkvZGlzcGxheS12ZXJzaW9uJztcbmltcG9ydCB7IHZlcnNpb25XaXRoQnVpbGQgfSBmcm9tICcuLi9jbGkvdmVyc2lvbic7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb2N0b3IoeyBpb0hlbHBlciB9OiB7IGlvSGVscGVyOiBJb0hlbHBlciB9KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgbGV0IGV4aXRTdGF0dXM6IG51bWJlciA9IDA7XG4gIGZvciAoY29uc3QgdmVyaWZpY2F0aW9uIG9mIHZlcmlmaWNhdGlvbnMpIHtcbiAgICBpZiAoIWF3YWl0IHZlcmlmaWNhdGlvbihpb0hlbHBlcikpIHtcbiAgICAgIGV4aXRTdGF0dXMgPSAtMTtcbiAgICB9XG4gIH1cbiAgYXdhaXQgZGlzcGxheVZlcnNpb25NZXNzYWdlKGlvSGVscGVyKTtcbiAgcmV0dXJuIGV4aXRTdGF0dXM7XG59XG5cbmNvbnN0IHZlcmlmaWNhdGlvbnM6IEFycmF5PChpb0hlbHBlcjogSW9IZWxwZXIpID0+IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+PiA9IFtcbiAgZGlzcGxheVZlcnNpb25JbmZvcm1hdGlvbixcbiAgZGlzcGxheUF3c0Vudmlyb25tZW50VmFyaWFibGVzLFxuICBkaXNwbGF5Q2RrRW52aXJvbm1lbnRWYXJpYWJsZXMsXG5dO1xuXG4vLyAjIyMgVmVyaWZpY2F0aW9ucyAjIyNcblxuYXN5bmMgZnVuY3Rpb24gZGlzcGxheVZlcnNpb25JbmZvcm1hdGlvbihpb0hlbHBlcjogSW9IZWxwZXIpIHtcbiAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhg4oS577iPIENESyBWZXJzaW9uOiAke2NoYWxrLmdyZWVuKHZlcnNpb25XaXRoQnVpbGQoKSl9YCk7XG4gIHJldHVybiB0cnVlO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkaXNwbGF5QXdzRW52aXJvbm1lbnRWYXJpYWJsZXMoaW9IZWxwZXI6IElvSGVscGVyKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhwcm9jZXNzLmVudikuZmlsdGVyKHMgPT4gcy5zdGFydHNXaXRoKCdBV1NfJykpO1xuICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKCfihLnvuI8gTm8gQVdTIGVudmlyb25tZW50IHZhcmlhYmxlcycpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ+KEue+4jyBBV1MgZW52aXJvbm1lbnQgdmFyaWFibGVzOicpO1xuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuaW5mbyhgICAtICR7Y2hhbGsuYmx1ZShrZXkpfSA9ICR7Y2hhbGsuZ3JlZW4oYW5vbnltaXplQXdzVmFyaWFibGUoa2V5LCBwcm9jZXNzLmVudltrZXldISkpfWApO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkaXNwbGF5Q2RrRW52aXJvbm1lbnRWYXJpYWJsZXMoaW9IZWxwZXI6IElvSGVscGVyKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhwcm9jZXNzLmVudikuZmlsdGVyKHMgPT4gcy5zdGFydHNXaXRoKCdDREtfJykpO1xuICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKCfihLnvuI8gTm8gQ0RLIGVudmlyb25tZW50IHZhcmlhYmxlcycpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oJ+KEue+4jyBDREsgZW52aXJvbm1lbnQgdmFyaWFibGVzOicpO1xuICBsZXQgaGVhbHRoeSA9IHRydWU7XG4gIGZvciAoY29uc3Qga2V5IG9mIGtleXMuc29ydCgpKSB7XG4gICAgaWYgKGtleSA9PT0gY3hhcGkuQ09OVEVYVF9FTlYgfHwga2V5ID09PSBjeGFwaS5DT05URVhUX09WRVJGTE9XX0xPQ0FUSU9OX0VOViB8fCBrZXkgPT09IGN4YXBpLk9VVERJUl9FTlYpIHtcbiAgICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmluZm8oYCAgLSAke2NoYWxrLnJlZChrZXkpfSA9ICR7Y2hhbGsuZ3JlZW4ocHJvY2Vzcy5lbnZba2V5XSEpfSAo4pqg77iPIHJlc2VydmVkIGZvciB1c2UgYnkgdGhlIENESyB0b29sa2l0KWApO1xuICAgICAgaGVhbHRoeSA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5pbmZvKGAgIC0gJHtjaGFsay5ibHVlKGtleSl9ID0gJHtjaGFsay5ncmVlbihwcm9jZXNzLmVudltrZXldISl9YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBoZWFsdGh5O1xufVxuXG5mdW5jdGlvbiBhbm9ueW1pemVBd3NWYXJpYWJsZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgaWYgKG5hbWUgPT09ICdBV1NfQUNDRVNTX0tFWV9JRCcpIHtcbiAgICByZXR1cm4gdmFsdWUuc2xpY2UoMCwgNCkgKyAnPHJlZGFjdGVkPic7XG4gIH0gLy8gU2hvdyBBU0lBL0FLSUEga2V5IHR5cGUsIGJ1dCBoaWRlIGlkZW50aWZpZXJcbiAgaWYgKG5hbWUgPT09ICdBV1NfU0VDUkVUX0FDQ0VTU19LRVknIHx8IG5hbWUgPT09ICdBV1NfU0VTU0lPTl9UT0tFTicgfHwgbmFtZSA9PT0gJ0FXU19TRUNVUklUWV9UT0tFTicpIHtcbiAgICByZXR1cm4gJzxyZWRhY3RlZD4nO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FeatureFlag, Toolkit } from '@aws-cdk/toolkit-lib';
|
|
2
|
+
import type { FlagOperationsParams } from './types';
|
|
3
|
+
import type { IoHelper } from '../../api-private';
|
|
4
|
+
export declare class FlagCommandHandler {
|
|
5
|
+
private readonly flags;
|
|
6
|
+
private readonly router;
|
|
7
|
+
private readonly options;
|
|
8
|
+
private readonly ioHelper;
|
|
9
|
+
/** Main component that sets up all flag operation components */
|
|
10
|
+
constructor(flagData: FeatureFlag[], ioHelper: IoHelper, options: FlagOperationsParams, toolkit: Toolkit, cliContextValues?: Record<string, any>);
|
|
11
|
+
/** Main entry point that processes the flags command */
|
|
12
|
+
processFlagsCommand(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlagCommandHandler = void 0;
|
|
4
|
+
const interactive_handler_1 = require("./interactive-handler");
|
|
5
|
+
const obsolete_flags_1 = require("./obsolete-flags");
|
|
6
|
+
const operations_1 = require("./operations");
|
|
7
|
+
const router_1 = require("./router");
|
|
8
|
+
const validator_1 = require("./validator");
|
|
9
|
+
class FlagCommandHandler {
|
|
10
|
+
/** Main component that sets up all flag operation components */
|
|
11
|
+
constructor(flagData, ioHelper, options, toolkit, cliContextValues = {}) {
|
|
12
|
+
this.flags = flagData.filter(flag => !obsolete_flags_1.OBSOLETE_FLAGS.includes(flag.name));
|
|
13
|
+
this.options = { ...options, concurrency: options.concurrency ?? 4 };
|
|
14
|
+
this.ioHelper = ioHelper;
|
|
15
|
+
const validator = new validator_1.FlagValidator(ioHelper);
|
|
16
|
+
const flagOperations = new operations_1.FlagOperations(this.flags, toolkit, ioHelper, cliContextValues);
|
|
17
|
+
const interactiveHandler = new interactive_handler_1.InteractiveHandler(this.flags, flagOperations);
|
|
18
|
+
this.router = new router_1.FlagOperationRouter(validator, interactiveHandler, flagOperations);
|
|
19
|
+
}
|
|
20
|
+
/** Main entry point that processes the flags command */
|
|
21
|
+
async processFlagsCommand() {
|
|
22
|
+
if (this.flags.length === 0) {
|
|
23
|
+
await this.ioHelper.defaults.error('The \'cdk flags\' command is not compatible with the AWS CDK library used by your application. Please upgrade to 2.212.0 or above.');
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
await this.router.route(this.options);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.FlagCommandHandler = FlagCommandHandler;
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmbGFncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrREFBMkQ7QUFDM0QscURBQWtEO0FBQ2xELDZDQUE4QztBQUM5QyxxQ0FBK0M7QUFFL0MsMkNBQTRDO0FBRzVDLE1BQWEsa0JBQWtCO0lBTTdCLGdFQUFnRTtJQUNoRSxZQUNFLFFBQXVCLEVBQ3ZCLFFBQWtCLEVBQ2xCLE9BQTZCLEVBQzdCLE9BQWdCLEVBQ2hCLG1CQUF3QyxFQUFFO1FBRTFDLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsK0JBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBRXpCLE1BQU0sU0FBUyxHQUFHLElBQUkseUJBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxNQUFNLGNBQWMsR0FBRyxJQUFJLDJCQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDM0YsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLHdDQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLDRCQUFtQixDQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsd0RBQXdEO0lBQ3hELEtBQUssQ0FBQyxtQkFBbUI7UUFDdkIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxvSUFBb0ksQ0FBQyxDQUFDO1lBQ3pLLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQztDQUNGO0FBbENELGdEQWtDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmVhdHVyZUZsYWcsIFRvb2xraXQgfSBmcm9tICdAYXdzLWNkay90b29sa2l0LWxpYic7XG5pbXBvcnQgeyBJbnRlcmFjdGl2ZUhhbmRsZXIgfSBmcm9tICcuL2ludGVyYWN0aXZlLWhhbmRsZXInO1xuaW1wb3J0IHsgT0JTT0xFVEVfRkxBR1MgfSBmcm9tICcuL29ic29sZXRlLWZsYWdzJztcbmltcG9ydCB7IEZsYWdPcGVyYXRpb25zIH0gZnJvbSAnLi9vcGVyYXRpb25zJztcbmltcG9ydCB7IEZsYWdPcGVyYXRpb25Sb3V0ZXIgfSBmcm9tICcuL3JvdXRlcic7XG5pbXBvcnQgdHlwZSB7IEZsYWdPcGVyYXRpb25zUGFyYW1zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBGbGFnVmFsaWRhdG9yIH0gZnJvbSAnLi92YWxpZGF0b3InO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uLy4uL2FwaS1wcml2YXRlJztcblxuZXhwb3J0IGNsYXNzIEZsYWdDb21tYW5kSGFuZGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmxhZ3M6IEZlYXR1cmVGbGFnW107XG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBGbGFnT3BlcmF0aW9uUm91dGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEZsYWdPcGVyYXRpb25zUGFyYW1zO1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcblxuICAvKiogTWFpbiBjb21wb25lbnQgdGhhdCBzZXRzIHVwIGFsbCBmbGFnIG9wZXJhdGlvbiBjb21wb25lbnRzICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIGZsYWdEYXRhOiBGZWF0dXJlRmxhZ1tdLFxuICAgIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgICBvcHRpb25zOiBGbGFnT3BlcmF0aW9uc1BhcmFtcyxcbiAgICB0b29sa2l0OiBUb29sa2l0LFxuICAgIGNsaUNvbnRleHRWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSxcbiAgKSB7XG4gICAgdGhpcy5mbGFncyA9IGZsYWdEYXRhLmZpbHRlcihmbGFnID0+ICFPQlNPTEVURV9GTEFHUy5pbmNsdWRlcyhmbGFnLm5hbWUpKTtcbiAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIGNvbmN1cnJlbmN5OiBvcHRpb25zLmNvbmN1cnJlbmN5ID8/IDQgfTtcbiAgICB0aGlzLmlvSGVscGVyID0gaW9IZWxwZXI7XG5cbiAgICBjb25zdCB2YWxpZGF0b3IgPSBuZXcgRmxhZ1ZhbGlkYXRvcihpb0hlbHBlcik7XG4gICAgY29uc3QgZmxhZ09wZXJhdGlvbnMgPSBuZXcgRmxhZ09wZXJhdGlvbnModGhpcy5mbGFncywgdG9vbGtpdCwgaW9IZWxwZXIsIGNsaUNvbnRleHRWYWx1ZXMpO1xuICAgIGNvbnN0IGludGVyYWN0aXZlSGFuZGxlciA9IG5ldyBJbnRlcmFjdGl2ZUhhbmRsZXIodGhpcy5mbGFncywgZmxhZ09wZXJhdGlvbnMpO1xuXG4gICAgdGhpcy5yb3V0ZXIgPSBuZXcgRmxhZ09wZXJhdGlvblJvdXRlcih2YWxpZGF0b3IsIGludGVyYWN0aXZlSGFuZGxlciwgZmxhZ09wZXJhdGlvbnMpO1xuICB9XG5cbiAgLyoqIE1haW4gZW50cnkgcG9pbnQgdGhhdCBwcm9jZXNzZXMgdGhlIGZsYWdzIGNvbW1hbmQgKi9cbiAgYXN5bmMgcHJvY2Vzc0ZsYWdzQ29tbWFuZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5mbGFncy5sZW5ndGggPT09IDApIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZXJyb3IoJ1RoZSBcXCdjZGsgZmxhZ3NcXCcgY29tbWFuZCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBBV1MgQ0RLIGxpYnJhcnkgdXNlZCBieSB5b3VyIGFwcGxpY2F0aW9uLiBQbGVhc2UgdXBncmFkZSB0byAyLjIxMi4wIG9yIGFib3ZlLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMucm91dGVyLnJvdXRlKHRoaXMub3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { FeatureFlag } from '@aws-cdk/toolkit-lib';
|
|
2
|
+
import type { FlagOperations } from './operations';
|
|
3
|
+
import { type FlagOperationsParams } from './types';
|
|
4
|
+
export declare class InteractiveHandler {
|
|
5
|
+
private readonly flags;
|
|
6
|
+
private readonly flagOperations;
|
|
7
|
+
constructor(flags: FeatureFlag[], flagOperations: FlagOperations);
|
|
8
|
+
/** Displays flags that have differences between user and recommended values */
|
|
9
|
+
private displayFlagsWithDifferences;
|
|
10
|
+
/** Checks if user value matches recommended value */
|
|
11
|
+
private isUserValueEqualToRecommended;
|
|
12
|
+
/** Main interactive mode handler that shows menu and processes user selection */
|
|
13
|
+
handleInteractiveMode(): Promise<FlagOperationsParams | null>;
|
|
14
|
+
/** Handles the specific flag selection flow with flag and value prompts */
|
|
15
|
+
private handleSpecificFlagSelection;
|
|
16
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InteractiveHandler = void 0;
|
|
4
|
+
// @ts-ignore
|
|
5
|
+
const enquirer_1 = require("enquirer");
|
|
6
|
+
const types_1 = require("./types");
|
|
7
|
+
class InteractiveHandler {
|
|
8
|
+
constructor(flags, flagOperations) {
|
|
9
|
+
this.flags = flags;
|
|
10
|
+
this.flagOperations = flagOperations;
|
|
11
|
+
}
|
|
12
|
+
/** Displays flags that have differences between user and recommended values */
|
|
13
|
+
async displayFlagsWithDifferences() {
|
|
14
|
+
const flagsWithDifferences = this.flags.filter(flag => flag.userValue === undefined || !this.isUserValueEqualToRecommended(flag));
|
|
15
|
+
if (flagsWithDifferences.length > 0) {
|
|
16
|
+
await this.flagOperations.displayFlagTable(flagsWithDifferences);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** Checks if user value matches recommended value */
|
|
20
|
+
isUserValueEqualToRecommended(flag) {
|
|
21
|
+
return String(flag.userValue) === String(flag.recommendedValue);
|
|
22
|
+
}
|
|
23
|
+
/** Main interactive mode handler that shows menu and processes user selection */
|
|
24
|
+
async handleInteractiveMode() {
|
|
25
|
+
await this.displayFlagsWithDifferences();
|
|
26
|
+
const prompt = new enquirer_1.Select({
|
|
27
|
+
name: 'option',
|
|
28
|
+
message: 'Menu',
|
|
29
|
+
choices: Object.values(types_1.FlagsMenuOptions),
|
|
30
|
+
});
|
|
31
|
+
const answer = await prompt.run();
|
|
32
|
+
switch (answer) {
|
|
33
|
+
case types_1.FlagsMenuOptions.ALL_TO_RECOMMENDED:
|
|
34
|
+
return { recommended: true, all: true, set: true };
|
|
35
|
+
case types_1.FlagsMenuOptions.UNCONFIGURED_TO_RECOMMENDED:
|
|
36
|
+
return { recommended: true, unconfigured: true, set: true };
|
|
37
|
+
case types_1.FlagsMenuOptions.UNCONFIGURED_TO_DEFAULT:
|
|
38
|
+
return { default: true, unconfigured: true, set: true };
|
|
39
|
+
case types_1.FlagsMenuOptions.MODIFY_SPECIFIC_FLAG:
|
|
40
|
+
return this.handleSpecificFlagSelection();
|
|
41
|
+
case types_1.FlagsMenuOptions.EXIT:
|
|
42
|
+
return null;
|
|
43
|
+
default:
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/** Handles the specific flag selection flow with flag and value prompts */
|
|
48
|
+
async handleSpecificFlagSelection() {
|
|
49
|
+
const booleanFlags = this.flags.filter(flag => this.flagOperations.isBooleanFlag(flag));
|
|
50
|
+
const flagPrompt = new enquirer_1.Select({
|
|
51
|
+
name: 'flag',
|
|
52
|
+
message: 'Select which flag you would like to modify:',
|
|
53
|
+
limit: 100,
|
|
54
|
+
choices: booleanFlags.map(flag => flag.name),
|
|
55
|
+
});
|
|
56
|
+
const selectedFlagName = await flagPrompt.run();
|
|
57
|
+
const valuePrompt = new enquirer_1.Select({
|
|
58
|
+
name: 'value',
|
|
59
|
+
message: 'Select a value:',
|
|
60
|
+
choices: ['true', 'false'],
|
|
61
|
+
});
|
|
62
|
+
const value = await valuePrompt.run();
|
|
63
|
+
return {
|
|
64
|
+
FLAGNAME: [selectedFlagName],
|
|
65
|
+
value,
|
|
66
|
+
set: true,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.InteractiveHandler = InteractiveHandler;
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVyYWN0aXZlLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsYUFBYTtBQUNiLHVDQUFrQztBQUVsQyxtQ0FBc0U7QUFFdEUsTUFBYSxrQkFBa0I7SUFDN0IsWUFDbUIsS0FBb0IsRUFDcEIsY0FBOEI7UUFEOUIsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQUNwQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFFakQsQ0FBQztJQUVELCtFQUErRTtJQUN2RSxLQUFLLENBQUMsMkJBQTJCO1FBQ3ZDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDcEQsSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUU3RSxJQUFJLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVELHFEQUFxRDtJQUM3Qyw2QkFBNkIsQ0FBQyxJQUFpQjtRQUNyRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxpRkFBaUY7SUFDakYsS0FBSyxDQUFDLHFCQUFxQjtRQUN6QixNQUFNLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBRXpDLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQU0sQ0FBQztZQUN4QixJQUFJLEVBQUUsUUFBUTtZQUNkLE9BQU8sRUFBRSxNQUFNO1lBQ2YsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsd0JBQWdCLENBQUM7U0FDekMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFbEMsUUFBUSxNQUFNLEVBQUUsQ0FBQztZQUNmLEtBQUssd0JBQWdCLENBQUMsa0JBQWtCO2dCQUN0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNyRCxLQUFLLHdCQUFnQixDQUFDLDJCQUEyQjtnQkFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDOUQsS0FBSyx3QkFBZ0IsQ0FBQyx1QkFBdUI7Z0JBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzFELEtBQUssd0JBQWdCLENBQUMsb0JBQW9CO2dCQUN4QyxPQUFPLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1lBQzVDLEtBQUssd0JBQWdCLENBQUMsSUFBSTtnQkFDeEIsT0FBTyxJQUFJLENBQUM7WUFDZDtnQkFDRSxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVELDJFQUEyRTtJQUNuRSxLQUFLLENBQUMsMkJBQTJCO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV4RixNQUFNLFVBQVUsR0FBRyxJQUFJLGlCQUFNLENBQUM7WUFDNUIsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUUsNkNBQTZDO1lBQ3RELEtBQUssRUFBRSxHQUFHO1lBQ1YsT0FBTyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzdDLENBQUMsQ0FBQztRQUVILE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFaEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxpQkFBTSxDQUFDO1lBQzdCLElBQUksRUFBRSxPQUFPO1lBQ2IsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO1NBQzNCLENBQUMsQ0FBQztRQUVILE1BQU0sS0FBSyxHQUFHLE1BQU0sV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRXRDLE9BQU87WUFDTCxRQUFRLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUM1QixLQUFLO1lBQ0wsR0FBRyxFQUFFLElBQUk7U0FDVixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBN0VELGdEQTZFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmVhdHVyZUZsYWcgfSBmcm9tICdAYXdzLWNkay90b29sa2l0LWxpYic7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICdlbnF1aXJlcic7XG5pbXBvcnQgdHlwZSB7IEZsYWdPcGVyYXRpb25zIH0gZnJvbSAnLi9vcGVyYXRpb25zJztcbmltcG9ydCB7IEZsYWdzTWVudU9wdGlvbnMsIHR5cGUgRmxhZ09wZXJhdGlvbnNQYXJhbXMgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIEludGVyYWN0aXZlSGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmxhZ3M6IEZlYXR1cmVGbGFnW10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBmbGFnT3BlcmF0aW9uczogRmxhZ09wZXJhdGlvbnMsXG4gICkge1xuICB9XG5cbiAgLyoqIERpc3BsYXlzIGZsYWdzIHRoYXQgaGF2ZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHVzZXIgYW5kIHJlY29tbWVuZGVkIHZhbHVlcyAqL1xuICBwcml2YXRlIGFzeW5jIGRpc3BsYXlGbGFnc1dpdGhEaWZmZXJlbmNlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmbGFnc1dpdGhEaWZmZXJlbmNlcyA9IHRoaXMuZmxhZ3MuZmlsdGVyKGZsYWcgPT5cbiAgICAgIGZsYWcudXNlclZhbHVlID09PSB1bmRlZmluZWQgfHwgIXRoaXMuaXNVc2VyVmFsdWVFcXVhbFRvUmVjb21tZW5kZWQoZmxhZykpO1xuXG4gICAgaWYgKGZsYWdzV2l0aERpZmZlcmVuY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IHRoaXMuZmxhZ09wZXJhdGlvbnMuZGlzcGxheUZsYWdUYWJsZShmbGFnc1dpdGhEaWZmZXJlbmNlcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENoZWNrcyBpZiB1c2VyIHZhbHVlIG1hdGNoZXMgcmVjb21tZW5kZWQgdmFsdWUgKi9cbiAgcHJpdmF0ZSBpc1VzZXJWYWx1ZUVxdWFsVG9SZWNvbW1lbmRlZChmbGFnOiBGZWF0dXJlRmxhZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBTdHJpbmcoZmxhZy51c2VyVmFsdWUpID09PSBTdHJpbmcoZmxhZy5yZWNvbW1lbmRlZFZhbHVlKTtcbiAgfVxuXG4gIC8qKiBNYWluIGludGVyYWN0aXZlIG1vZGUgaGFuZGxlciB0aGF0IHNob3dzIG1lbnUgYW5kIHByb2Nlc3NlcyB1c2VyIHNlbGVjdGlvbiAqL1xuICBhc3luYyBoYW5kbGVJbnRlcmFjdGl2ZU1vZGUoKTogUHJvbWlzZTxGbGFnT3BlcmF0aW9uc1BhcmFtcyB8IG51bGw+IHtcbiAgICBhd2FpdCB0aGlzLmRpc3BsYXlGbGFnc1dpdGhEaWZmZXJlbmNlcygpO1xuXG4gICAgY29uc3QgcHJvbXB0ID0gbmV3IFNlbGVjdCh7XG4gICAgICBuYW1lOiAnb3B0aW9uJyxcbiAgICAgIG1lc3NhZ2U6ICdNZW51JyxcbiAgICAgIGNob2ljZXM6IE9iamVjdC52YWx1ZXMoRmxhZ3NNZW51T3B0aW9ucyksXG4gICAgfSk7XG5cbiAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwcm9tcHQucnVuKCk7XG5cbiAgICBzd2l0Y2ggKGFuc3dlcikge1xuICAgICAgY2FzZSBGbGFnc01lbnVPcHRpb25zLkFMTF9UT19SRUNPTU1FTkRFRDpcbiAgICAgICAgcmV0dXJuIHsgcmVjb21tZW5kZWQ6IHRydWUsIGFsbDogdHJ1ZSwgc2V0OiB0cnVlIH07XG4gICAgICBjYXNlIEZsYWdzTWVudU9wdGlvbnMuVU5DT05GSUdVUkVEX1RPX1JFQ09NTUVOREVEOlxuICAgICAgICByZXR1cm4geyByZWNvbW1lbmRlZDogdHJ1ZSwgdW5jb25maWd1cmVkOiB0cnVlLCBzZXQ6IHRydWUgfTtcbiAgICAgIGNhc2UgRmxhZ3NNZW51T3B0aW9ucy5VTkNPTkZJR1VSRURfVE9fREVGQVVMVDpcbiAgICAgICAgcmV0dXJuIHsgZGVmYXVsdDogdHJ1ZSwgdW5jb25maWd1cmVkOiB0cnVlLCBzZXQ6IHRydWUgfTtcbiAgICAgIGNhc2UgRmxhZ3NNZW51T3B0aW9ucy5NT0RJRllfU1BFQ0lGSUNfRkxBRzpcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlU3BlY2lmaWNGbGFnU2VsZWN0aW9uKCk7XG4gICAgICBjYXNlIEZsYWdzTWVudU9wdGlvbnMuRVhJVDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKiogSGFuZGxlcyB0aGUgc3BlY2lmaWMgZmxhZyBzZWxlY3Rpb24gZmxvdyB3aXRoIGZsYWcgYW5kIHZhbHVlIHByb21wdHMgKi9cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVTcGVjaWZpY0ZsYWdTZWxlY3Rpb24oKTogUHJvbWlzZTxGbGFnT3BlcmF0aW9uc1BhcmFtcz4ge1xuICAgIGNvbnN0IGJvb2xlYW5GbGFncyA9IHRoaXMuZmxhZ3MuZmlsdGVyKGZsYWcgPT4gdGhpcy5mbGFnT3BlcmF0aW9ucy5pc0Jvb2xlYW5GbGFnKGZsYWcpKTtcblxuICAgIGNvbnN0IGZsYWdQcm9tcHQgPSBuZXcgU2VsZWN0KHtcbiAgICAgIG5hbWU6ICdmbGFnJyxcbiAgICAgIG1lc3NhZ2U6ICdTZWxlY3Qgd2hpY2ggZmxhZyB5b3Ugd291bGQgbGlrZSB0byBtb2RpZnk6JyxcbiAgICAgIGxpbWl0OiAxMDAsXG4gICAgICBjaG9pY2VzOiBib29sZWFuRmxhZ3MubWFwKGZsYWcgPT4gZmxhZy5uYW1lKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNlbGVjdGVkRmxhZ05hbWUgPSBhd2FpdCBmbGFnUHJvbXB0LnJ1bigpO1xuXG4gICAgY29uc3QgdmFsdWVQcm9tcHQgPSBuZXcgU2VsZWN0KHtcbiAgICAgIG5hbWU6ICd2YWx1ZScsXG4gICAgICBtZXNzYWdlOiAnU2VsZWN0IGEgdmFsdWU6JyxcbiAgICAgIGNob2ljZXM6IFsndHJ1ZScsICdmYWxzZSddLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdmFsdWUgPSBhd2FpdCB2YWx1ZVByb21wdC5ydW4oKTtcblxuICAgIHJldHVybiB7XG4gICAgICBGTEFHTkFNRTogW3NlbGVjdGVkRmxhZ05hbWVdLFxuICAgICAgdmFsdWUsXG4gICAgICBzZXQ6IHRydWUsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const OBSOLETE_FLAGS: string[];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OBSOLETE_FLAGS = void 0;
|
|
4
|
+
exports.OBSOLETE_FLAGS = [
|
|
5
|
+
'@aws-cdk/core:enableStackNameDuplicates',
|
|
6
|
+
'@aws-cdk/aws-s3:grantWriteWithoutAcl',
|
|
7
|
+
'@aws-cdk/aws-kms:defaultKeyPolicies',
|
|
8
|
+
];
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2Jzb2xldGUtZmxhZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvYnNvbGV0ZS1mbGFncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLGNBQWMsR0FBRztJQUM1Qix5Q0FBeUM7SUFDekMsc0NBQXNDO0lBQ3RDLHFDQUFxQztDQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE9CU09MRVRFX0ZMQUdTID0gW1xuICAnQGF3cy1jZGsvY29yZTplbmFibGVTdGFja05hbWVEdXBsaWNhdGVzJyxcbiAgJ0Bhd3MtY2RrL2F3cy1zMzpncmFudFdyaXRlV2l0aG91dEFjbCcsXG4gICdAYXdzLWNkay9hd3Mta21zOmRlZmF1bHRLZXlQb2xpY2llcycsXG5dO1xuIl19
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { FeatureFlag, Toolkit } from '@aws-cdk/toolkit-lib';
|
|
2
|
+
import type { FlagOperationsParams } from './types';
|
|
3
|
+
import type { IoHelper } from '../../api-private';
|
|
4
|
+
export declare class FlagOperations {
|
|
5
|
+
private readonly flags;
|
|
6
|
+
private readonly toolkit;
|
|
7
|
+
private readonly ioHelper;
|
|
8
|
+
private readonly cliContextValues;
|
|
9
|
+
/**
|
|
10
|
+
* Returns only those feature flags that need configuration
|
|
11
|
+
*
|
|
12
|
+
* That is those flags:
|
|
13
|
+
* - That are unconfigured
|
|
14
|
+
* - That are not obsolete
|
|
15
|
+
* - Whose default value is different from the recommended value
|
|
16
|
+
*
|
|
17
|
+
* The default value being equal to the recommended value sounds odd, but
|
|
18
|
+
* crops up in a number of situtations:
|
|
19
|
+
*
|
|
20
|
+
* - Security-related fixes that we want to force on people, but want to
|
|
21
|
+
* give them a flag to back out of the changes if they really need to.
|
|
22
|
+
* - Flags that changed their default value in the most recent major
|
|
23
|
+
* version.
|
|
24
|
+
* - Flags that we've introduced at some point in the past, but have gone
|
|
25
|
+
* back on.
|
|
26
|
+
*/
|
|
27
|
+
static filterNeedsAttention(flags: FeatureFlag[]): FeatureFlag[];
|
|
28
|
+
private app;
|
|
29
|
+
private baseContextValues;
|
|
30
|
+
private allStacks;
|
|
31
|
+
private queue;
|
|
32
|
+
private baselineTempDir?;
|
|
33
|
+
constructor(flags: FeatureFlag[], toolkit: Toolkit, ioHelper: IoHelper, cliContextValues?: Record<string, any>);
|
|
34
|
+
/** Main entry point that routes to either flag setting or display operations */
|
|
35
|
+
execute(params: FlagOperationsParams): Promise<void>;
|
|
36
|
+
/** Sets a single specific flag with validation and user confirmation */
|
|
37
|
+
setFlag(params: FlagOperationsParams): Promise<void>;
|
|
38
|
+
/** Sets multiple flags (all or unconfigured) with validation and user confirmation */
|
|
39
|
+
setMultipleFlags(params: FlagOperationsParams): Promise<void>;
|
|
40
|
+
/** Determines which flags should be set based on the provided parameters */
|
|
41
|
+
private getFlagsToSet;
|
|
42
|
+
/** Sets flags that don't cause template changes */
|
|
43
|
+
setSafeFlags(params: FlagOperationsParams): Promise<void>;
|
|
44
|
+
/** Initializes the safety check by reading context and synthesizing baseline templates */
|
|
45
|
+
private initializeSafetyCheck;
|
|
46
|
+
/** Cleans up temporary directories created during safety checks */
|
|
47
|
+
private cleanupSafetyCheck;
|
|
48
|
+
/** Tests multiple flags together and isolates unsafe ones using binary search */
|
|
49
|
+
private batchTestFlags;
|
|
50
|
+
/** Tests if a set of context values causes template changes by synthesizing and diffing */
|
|
51
|
+
private testBatch;
|
|
52
|
+
/** Uses binary search to isolate which flags are safe to set without template changes */
|
|
53
|
+
private isolateUnsafeFlags;
|
|
54
|
+
/** Prototypes flag changes by synthesizing templates and showing diffs to the user */
|
|
55
|
+
private prototypeChanges;
|
|
56
|
+
/** Displays a summary of flag changes showing old and new values */
|
|
57
|
+
private displayFlagChanges;
|
|
58
|
+
/** Builds the update object with new flag values based on parameters and current context */
|
|
59
|
+
private buildUpdateObject;
|
|
60
|
+
/** Prompts user for confirmation and applies changes if accepted */
|
|
61
|
+
private handleUserResponse;
|
|
62
|
+
/** Removes temporary directories created during flag operations */
|
|
63
|
+
private cleanupTempDirectories;
|
|
64
|
+
/** Actually modifies the cdk.json file with the new flag values */
|
|
65
|
+
private modifyValues;
|
|
66
|
+
/** Displays flags in a table format, either specific flags or filtered by criteria */
|
|
67
|
+
displayFlags(params: FlagOperationsParams): Promise<void>;
|
|
68
|
+
/** Displays detailed information for specific flags matching the given names */
|
|
69
|
+
private displaySpecificFlags;
|
|
70
|
+
/** Returns sort order for flags */
|
|
71
|
+
private getFlagSortOrder;
|
|
72
|
+
/** Displays flags in a formatted table grouped by module and sorted */
|
|
73
|
+
displayFlagTable(flags: FeatureFlag[]): Promise<void>;
|
|
74
|
+
/** Checks if a flag has a boolean recommended value */
|
|
75
|
+
isBooleanFlag(flag: FeatureFlag): boolean;
|
|
76
|
+
/** Shows helpful usage examples and available command options */
|
|
77
|
+
displayHelpMessage(): Promise<void>;
|
|
78
|
+
}
|
|
79
|
+
/** Checks if the flags current effective value matches the recommended value */
|
|
80
|
+
export declare function isEffectiveValueEqualToRecommended(flag: FeatureFlag): boolean;
|