aws-cdk 2.31.1 → 2.32.1
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/CONTRIBUTING.md +29 -0
- package/README.md +7 -6
- package/build-info.json +2 -2
- package/lib/cli.js +4 -3
- package/lib/commands/context.js +67 -7
- package/lib/index.js +321 -134
- package/lib/init-templates/{v1/app → app}/csharp/.template.gitignore +0 -0
- package/lib/init-templates/{v1/app → app}/csharp/README.md +0 -0
- package/lib/init-templates/app/csharp/add-project.hook.d.ts +2 -0
- package/lib/init-templates/{v2/app → app}/csharp/add-project.hook.js +1 -1
- package/lib/init-templates/{v1/app → app}/csharp/cdk.template.json +0 -0
- package/lib/init-templates/{v2/app → app}/csharp/src/%name.PascalCased%/%name.PascalCased%.template.csproj +0 -0
- package/lib/init-templates/{v2/app → app}/csharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.cs +0 -0
- package/lib/init-templates/{v1/app → app}/csharp/src/%name.PascalCased%/GlobalSuppressions.cs +0 -0
- package/lib/init-templates/{v2/app → app}/csharp/src/%name.PascalCased%/Program.template.cs +0 -0
- package/lib/init-templates/{v1/app → app}/csharp/src/%name.PascalCased%.template.sln +0 -0
- package/lib/init-templates/{v1/app → app}/fsharp/.template.gitignore +0 -0
- package/lib/init-templates/{v1/app → app}/fsharp/README.md +0 -0
- package/lib/init-templates/app/fsharp/add-project.hook.d.ts +2 -0
- package/lib/init-templates/{v1/app → app}/fsharp/add-project.hook.js +1 -1
- package/lib/init-templates/{v1/app → app}/fsharp/cdk.template.json +0 -0
- package/lib/init-templates/{v2/app → app}/fsharp/src/%name.PascalCased%/%name.PascalCased%.template.fsproj +0 -0
- package/lib/init-templates/{v1/app → app}/fsharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.fs +0 -0
- package/lib/init-templates/{v1/app → app}/fsharp/src/%name.PascalCased%/Program.template.fs +0 -0
- package/lib/init-templates/{v1/app → app}/fsharp/src/%name.PascalCased%.template.sln +0 -0
- package/lib/init-templates/{v2/app → app}/go/%name%.template.go +0 -0
- package/lib/init-templates/{v2/app → app}/go/%name%_test.template.go +0 -0
- package/lib/init-templates/{v1/app → app}/go/.template.gitignore +0 -0
- package/lib/init-templates/{v2/app → app}/go/README.md +1 -3
- package/lib/init-templates/{v1/app → app}/go/cdk.template.json +0 -0
- package/lib/init-templates/{v2/app → app}/go/go.template.mod +0 -0
- package/lib/init-templates/{v1/app → app}/info.json +0 -0
- package/lib/init-templates/{v1/app → app}/java/.template.gitignore +0 -0
- package/lib/init-templates/{v1/app → app}/java/README.md +0 -0
- package/lib/init-templates/{v1/app → app}/java/cdk.json +0 -0
- package/lib/init-templates/{v2/app → app}/java/pom.xml +0 -0
- package/lib/init-templates/{v2/app → app}/java/src/main/java/com/myorg/%name.PascalCased%App.template.java +0 -0
- package/lib/init-templates/{v2/app → app}/java/src/main/java/com/myorg/%name.PascalCased%Stack.template.java +0 -0
- package/lib/init-templates/{v2/app → app}/java/src/test/java/com/myorg/%name.PascalCased%Test.template.java +0 -0
- package/lib/init-templates/app/java/sub-placeholders.hook.d.ts +2 -0
- package/lib/init-templates/{v1/app → app}/java/sub-placeholders.hook.js +1 -1
- package/lib/init-templates/{v1/app → app}/javascript/.template.gitignore +0 -0
- package/lib/init-templates/{v1/app → app}/javascript/.template.npmignore +0 -0
- package/lib/init-templates/{v1/app → app}/javascript/README.md +0 -0
- package/lib/init-templates/{v2/app → app}/javascript/bin/%name%.template.js +0 -0
- package/lib/init-templates/{v1/app → app}/javascript/cdk.template.json +0 -0
- package/lib/init-templates/{v1/sample-app → app}/javascript/jest.config.js +0 -0
- package/lib/init-templates/{v2/app → app}/javascript/lib/%name%-stack.template.js +0 -0
- package/lib/init-templates/{v2/app → app}/javascript/package.json +0 -0
- package/lib/init-templates/app/javascript/sub-placeholders.hook.d.ts +2 -0
- package/lib/init-templates/{v1/sample-app → app}/javascript/sub-placeholders.hook.js +1 -1
- package/lib/init-templates/{v2/app → app}/javascript/test/%name%.test.template.js +0 -0
- package/lib/init-templates/{v2/app → app}/python/%name.PythonModule%/%name.PythonModule%_stack.template.py +0 -0
- package/lib/init-templates/{v1/app → app}/python/%name.PythonModule%/__init__.py +0 -0
- package/lib/init-templates/{v2/app → app}/python/.template.gitignore +0 -0
- package/lib/init-templates/{v1/app → app}/python/README.template.md +0 -0
- package/lib/init-templates/{v2/app → app}/python/app.template.py +0 -0
- package/lib/init-templates/{v1/app → app}/python/cdk.template.json +0 -0
- package/lib/init-templates/{v1/app → app}/python/requirements-dev.txt +0 -0
- package/lib/init-templates/{v2/app → app}/python/requirements.txt +0 -0
- package/lib/init-templates/{v1/app → app}/python/source.bat +0 -0
- package/lib/init-templates/app/python/sub-placeholders.hook.d.ts +2 -0
- package/lib/init-templates/{v1/sample-app → app}/python/sub-placeholders.hook.js +1 -1
- package/lib/init-templates/{v1/app → app}/python/tests/__init__.py +0 -0
- package/lib/init-templates/{v1/app → app}/python/tests/unit/__init__.py +0 -0
- package/lib/init-templates/{v2/app → app}/python/tests/unit/test_%name.PythonModule%_stack.template.py +0 -0
- package/lib/init-templates/{v1/app → app}/typescript/.template.gitignore +0 -0
- package/lib/init-templates/{v1/app → app}/typescript/.template.npmignore +0 -0
- package/lib/init-templates/{v1/app → app}/typescript/README.md +0 -0
- package/lib/init-templates/{v2/app → app}/typescript/bin/%name%.template.ts +0 -0
- package/lib/init-templates/{v1/app → app}/typescript/cdk.template.json +0 -0
- package/lib/init-templates/{v1/app → app}/typescript/jest.config.js +0 -0
- package/lib/init-templates/{v2/app → app}/typescript/lib/%name%-stack.template.ts +0 -0
- package/lib/init-templates/{v2/app → app}/typescript/package.json +0 -0
- package/lib/init-templates/app/typescript/sub-placeholders.hook.d.ts +2 -0
- package/lib/init-templates/{v1/app/javascript → app/typescript}/sub-placeholders.hook.js +1 -1
- package/lib/init-templates/{v2/app → app}/typescript/test/%name%.test.template.ts +0 -0
- package/lib/init-templates/{v1/app → app}/typescript/tsconfig.json +0 -0
- package/lib/init-templates/{v1/lib → lib}/info.json +0 -0
- package/lib/init-templates/{v1/lib → lib}/typescript/.template.gitignore +0 -0
- package/lib/init-templates/{v1/lib → lib}/typescript/.template.npmignore +0 -0
- package/lib/init-templates/{v2/lib → lib}/typescript/README.template.md +0 -0
- package/lib/init-templates/{v1/lib → lib}/typescript/jest.config.js +0 -0
- package/lib/init-templates/{v2/lib → lib}/typescript/lib/index.template.ts +0 -0
- package/lib/init-templates/{v2/lib → lib}/typescript/package.json +0 -0
- package/lib/init-templates/lib/typescript/sub-placeholders.hook.d.ts +2 -0
- package/lib/init-templates/{v1/lib → lib}/typescript/sub-placeholders.hook.js +1 -1
- package/lib/init-templates/{v2/lib → lib}/typescript/test/%name%.test.template.ts +0 -0
- package/lib/init-templates/{v1/lib → lib}/typescript/tsconfig.json +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/csharp/.template.gitignore +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/csharp/README.template.md +0 -0
- package/lib/init-templates/sample-app/csharp/add-project.hook.d.ts +2 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/csharp/add-project.hook.js +1 -1
- package/lib/init-templates/{v1/sample-app → sample-app}/csharp/cdk.template.json +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/csharp/src/%name.PascalCased%/%name.PascalCased%.template.csproj +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/csharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.cs +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/csharp/src/%name.PascalCased%/GlobalSuppressions.cs +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/csharp/src/%name.PascalCased%/Program.template.cs +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/csharp/src/%name.PascalCased%.template.sln +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/fsharp/.template.gitignore +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/fsharp/README.template.md +0 -0
- package/lib/init-templates/sample-app/fsharp/add-project.hook.d.ts +2 -0
- package/lib/init-templates/{v2/app → sample-app}/fsharp/add-project.hook.js +1 -1
- package/lib/init-templates/{v1/sample-app → sample-app}/fsharp/cdk.template.json +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/fsharp/src/%name.PascalCased%/%name.PascalCased%.template.fsproj +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/fsharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.fs +1 -1
- package/lib/init-templates/{v1/sample-app → sample-app}/fsharp/src/%name.PascalCased%/Program.template.fs +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/fsharp/src/%name.PascalCased%.template.sln +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/go/%name%.template.go +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/go/%name%_test.template.go +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/go/.template.gitignore +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/go/README.md +1 -3
- package/lib/init-templates/{v1/sample-app → sample-app}/go/cdk.template.json +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/go/go.template.mod +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/info.json +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/java/.template.gitignore +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/java/README.template.md +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/java/cdk.json +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/java/pom.xml +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/java/src/main/java/com/myorg/%name.PascalCased%App.template.java +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/java/src/main/java/com/myorg/%name.PascalCased%Stack.template.java +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/java/src/test/java/com/myorg/%name.PascalCased%StackTest.template.java +0 -0
- package/lib/init-templates/sample-app/java/sub-placeholders.hook.d.ts +2 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/java/sub-placeholders.hook.js +1 -1
- package/lib/init-templates/{v1/sample-app → sample-app}/javascript/.template.gitignore +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/javascript/.template.npmignore +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/javascript/README.template.md +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/javascript/bin/%name%.template.js +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/javascript/cdk.template.json +0 -0
- package/lib/init-templates/{v2/app → sample-app}/javascript/jest.config.js +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/javascript/lib/%name%-stack.template.js +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/javascript/package.json +0 -0
- package/lib/init-templates/sample-app/javascript/sub-placeholders.hook.d.ts +2 -0
- package/lib/init-templates/{v1/app/typescript → sample-app/javascript}/sub-placeholders.hook.js +1 -1
- package/lib/init-templates/{v2/sample-app → sample-app}/javascript/test/%name%.test.template.js +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/javascript/tsconfig.json +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/python/%name.PythonModule%/%name.PythonModule%_stack.template.py +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/python/%name.PythonModule%/__init__.py +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/python/.template.gitignore +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/python/README.template.md +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/python/app.template.py +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/python/cdk.template.json +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/python/requirements-dev.txt +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/python/requirements.txt +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/python/source.bat +0 -0
- package/lib/init-templates/sample-app/python/sub-placeholders.hook.d.ts +2 -0
- package/lib/init-templates/{v2/app → sample-app}/python/sub-placeholders.hook.js +1 -1
- package/lib/init-templates/{v1/sample-app → sample-app}/python/tests/__init__.py +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/python/tests/unit/__init__.py +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/python/tests/unit/test_%name.PythonModule%_stack.template.py +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/typescript/.template.gitignore +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/typescript/.template.npmignore +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/typescript/README.template.md +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/typescript/bin/%name%.template.ts +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/typescript/cdk.template.json +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/typescript/jest.config.js +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/typescript/lib/%name%-stack.template.ts +0 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/typescript/package.json +0 -0
- package/lib/init-templates/sample-app/typescript/sub-placeholders.hook.d.ts +2 -0
- package/lib/init-templates/sample-app/typescript/sub-placeholders.hook.js +9 -0
- package/lib/init-templates/{v2/sample-app → sample-app}/typescript/test/%name%.test.template.ts +0 -0
- package/lib/init-templates/{v1/sample-app → sample-app}/typescript/tsconfig.json +0 -0
- package/lib/init.js +3 -16
- package/lib/util/directories.d.ts +11 -0
- package/lib/util/directories.js +19 -2
- package/package.json +9 -9
- package/test/api/deploy-stack.test.js +2 -2
- package/test/commands/context-command.test.js +186 -47
- package/test/init.test.js +50 -56
- package/test/integ/cli/cli.integtest.js +30 -1
- package/test/integ/cli/sam_cdk_integ_app/src/python/Function/requirements.txt +1 -1
- package/test/integ/cli/sam_cdk_integ_app/src/python/Layer/requirements.txt +1 -1
- package/lib/init-templates/v1/app/csharp/add-project.hook.d.ts +0 -2
- package/lib/init-templates/v1/app/csharp/add-project.hook.js +0 -31
- package/lib/init-templates/v1/app/csharp/src/%name.PascalCased%/%name.PascalCased%.template.csproj +0 -19
- package/lib/init-templates/v1/app/csharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.cs +0 -12
- package/lib/init-templates/v1/app/csharp/src/%name.PascalCased%/Program.template.cs +0 -45
- package/lib/init-templates/v1/app/fsharp/add-project.hook.d.ts +0 -2
- package/lib/init-templates/v1/app/fsharp/src/%name.PascalCased%/%name.PascalCased%.template.fsproj +0 -24
- package/lib/init-templates/v1/app/go/%name%.template.go +0 -68
- package/lib/init-templates/v1/app/go/%name%_test.template.go +0 -26
- package/lib/init-templates/v1/app/go/README.md +0 -14
- package/lib/init-templates/v1/app/go/go.template.mod +0 -9
- package/lib/init-templates/v1/app/java/pom.xml +0 -60
- package/lib/init-templates/v1/app/java/src/main/java/com/myorg/%name.PascalCased%App.template.java +0 -41
- package/lib/init-templates/v1/app/java/src/main/java/com/myorg/%name.PascalCased%Stack.template.java +0 -24
- package/lib/init-templates/v1/app/java/src/test/java/com/myorg/%name.PascalCased%Test.template.java +0 -26
- package/lib/init-templates/v1/app/java/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v1/app/javascript/bin/%name%.template.js +0 -21
- package/lib/init-templates/v1/app/javascript/jest.config.js +0 -3
- package/lib/init-templates/v1/app/javascript/lib/%name%-stack.template.js +0 -23
- package/lib/init-templates/v1/app/javascript/package.json +0 -20
- package/lib/init-templates/v1/app/javascript/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v1/app/javascript/test/%name%.test.template.js +0 -18
- package/lib/init-templates/v1/app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py +0 -24
- package/lib/init-templates/v1/app/python/.template.gitignore +0 -11
- package/lib/init-templates/v1/app/python/app.template.py +0 -34
- package/lib/init-templates/v1/app/python/requirements.txt +0 -2
- package/lib/init-templates/v1/app/python/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v1/app/python/sub-placeholders.hook.js +0 -9
- package/lib/init-templates/v1/app/python/tests/unit/test_%name.PythonModule%_stack.template.py +0 -19
- package/lib/init-templates/v1/app/typescript/bin/%name%.template.ts +0 -21
- package/lib/init-templates/v1/app/typescript/lib/%name%-stack.template.ts +0 -15
- package/lib/init-templates/v1/app/typescript/package.json +0 -28
- package/lib/init-templates/v1/app/typescript/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v1/app/typescript/test/%name%.test.template.ts +0 -17
- package/lib/init-templates/v1/lib/typescript/README.template.md +0 -12
- package/lib/init-templates/v1/lib/typescript/lib/index.template.ts +0 -20
- package/lib/init-templates/v1/lib/typescript/package.json +0 -26
- package/lib/init-templates/v1/lib/typescript/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v1/lib/typescript/test/%name%.test.template.ts +0 -18
- package/lib/init-templates/v1/sample-app/csharp/README.template.md +0 -22
- package/lib/init-templates/v1/sample-app/csharp/add-project.hook.d.ts +0 -2
- package/lib/init-templates/v1/sample-app/csharp/src/%name.PascalCased%/%name.PascalCased%.template.csproj +0 -23
- package/lib/init-templates/v1/sample-app/csharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.cs +0 -23
- package/lib/init-templates/v1/sample-app/fsharp/add-project.hook.d.ts +0 -2
- package/lib/init-templates/v1/sample-app/fsharp/add-project.hook.js +0 -31
- package/lib/init-templates/v1/sample-app/fsharp/src/%name.PascalCased%/%name.PascalCased%.template.fsproj +0 -27
- package/lib/init-templates/v1/sample-app/fsharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.fs +0 -14
- package/lib/init-templates/v1/sample-app/go/%name%.template.go +0 -71
- package/lib/init-templates/v1/sample-app/go/%name%_test.template.go +0 -25
- package/lib/init-templates/v1/sample-app/go/README.md +0 -14
- package/lib/init-templates/v1/sample-app/go/go.template.mod +0 -9
- package/lib/init-templates/v1/sample-app/java/README.template.md +0 -23
- package/lib/init-templates/v1/sample-app/java/pom.xml +0 -72
- package/lib/init-templates/v1/sample-app/java/src/main/java/com/myorg/%name.PascalCased%App.template.java +0 -13
- package/lib/init-templates/v1/sample-app/java/src/main/java/com/myorg/%name.PascalCased%Stack.template.java +0 -29
- package/lib/init-templates/v1/sample-app/java/src/test/java/com/myorg/%name.PascalCased%StackTest.template.java +0 -26
- package/lib/init-templates/v1/sample-app/java/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v1/sample-app/javascript/README.template.md +0 -17
- package/lib/init-templates/v1/sample-app/javascript/bin/%name%.template.js +0 -6
- package/lib/init-templates/v1/sample-app/javascript/lib/%name%-stack.template.js +0 -25
- package/lib/init-templates/v1/sample-app/javascript/package.json +0 -23
- package/lib/init-templates/v1/sample-app/javascript/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v1/sample-app/javascript/test/%name%.test.template.js +0 -25
- package/lib/init-templates/v1/sample-app/python/%name.PythonModule%/%name.PythonModule%_stack.template.py +0 -24
- package/lib/init-templates/v1/sample-app/python/README.template.md +0 -68
- package/lib/init-templates/v1/sample-app/python/app.template.py +0 -11
- package/lib/init-templates/v1/sample-app/python/requirements.txt +0 -7
- package/lib/init-templates/v1/sample-app/python/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v1/sample-app/python/tests/unit/test_%name.PythonModule%_stack.template.py +0 -24
- package/lib/init-templates/v1/sample-app/typescript/README.template.md +0 -19
- package/lib/init-templates/v1/sample-app/typescript/bin/%name%.template.ts +0 -6
- package/lib/init-templates/v1/sample-app/typescript/lib/%name%-stack.template.ts +0 -18
- package/lib/init-templates/v1/sample-app/typescript/package.json +0 -30
- package/lib/init-templates/v1/sample-app/typescript/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v1/sample-app/typescript/sub-placeholders.hook.js +0 -9
- package/lib/init-templates/v1/sample-app/typescript/test/%name%.test.template.ts +0 -25
- package/lib/init-templates/v2/app/csharp/.template.gitignore +0 -342
- package/lib/init-templates/v2/app/csharp/README.md +0 -14
- package/lib/init-templates/v2/app/csharp/add-project.hook.d.ts +0 -2
- package/lib/init-templates/v2/app/csharp/cdk.template.json +0 -15
- package/lib/init-templates/v2/app/csharp/src/%name.PascalCased%/GlobalSuppressions.cs +0 -1
- package/lib/init-templates/v2/app/csharp/src/%name.PascalCased%.template.sln +0 -18
- package/lib/init-templates/v2/app/fsharp/.template.gitignore +0 -342
- package/lib/init-templates/v2/app/fsharp/README.md +0 -18
- package/lib/init-templates/v2/app/fsharp/add-project.hook.d.ts +0 -2
- package/lib/init-templates/v2/app/fsharp/cdk.template.json +0 -14
- package/lib/init-templates/v2/app/fsharp/src/%name.PascalCased%/%name.PascalCased%Stack.template.fs +0 -8
- package/lib/init-templates/v2/app/fsharp/src/%name.PascalCased%/Program.template.fs +0 -11
- package/lib/init-templates/v2/app/fsharp/src/%name.PascalCased%.template.sln +0 -18
- package/lib/init-templates/v2/app/go/.template.gitignore +0 -19
- package/lib/init-templates/v2/app/go/cdk.template.json +0 -13
- package/lib/init-templates/v2/app/info.json +0 -4
- package/lib/init-templates/v2/app/java/.template.gitignore +0 -13
- package/lib/init-templates/v2/app/java/README.md +0 -18
- package/lib/init-templates/v2/app/java/cdk.json +0 -13
- package/lib/init-templates/v2/app/java/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v2/app/java/sub-placeholders.hook.js +0 -9
- package/lib/init-templates/v2/app/javascript/.template.gitignore +0 -5
- package/lib/init-templates/v2/app/javascript/.template.npmignore +0 -3
- package/lib/init-templates/v2/app/javascript/README.md +0 -12
- package/lib/init-templates/v2/app/javascript/cdk.template.json +0 -15
- package/lib/init-templates/v2/app/javascript/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v2/app/javascript/sub-placeholders.hook.js +0 -9
- package/lib/init-templates/v2/app/python/%name.PythonModule%/__init__.py +0 -0
- package/lib/init-templates/v2/app/python/README.template.md +0 -58
- package/lib/init-templates/v2/app/python/cdk.template.json +0 -15
- package/lib/init-templates/v2/app/python/requirements-dev.txt +0 -1
- package/lib/init-templates/v2/app/python/source.bat +0 -13
- package/lib/init-templates/v2/app/python/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v2/app/python/tests/__init__.py +0 -0
- package/lib/init-templates/v2/app/python/tests/unit/__init__.py +0 -0
- package/lib/init-templates/v2/app/typescript/.template.gitignore +0 -8
- package/lib/init-templates/v2/app/typescript/.template.npmignore +0 -6
- package/lib/init-templates/v2/app/typescript/README.md +0 -14
- package/lib/init-templates/v2/app/typescript/cdk.template.json +0 -17
- package/lib/init-templates/v2/app/typescript/jest.config.js +0 -8
- package/lib/init-templates/v2/app/typescript/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v2/app/typescript/sub-placeholders.hook.js +0 -9
- package/lib/init-templates/v2/app/typescript/tsconfig.json +0 -30
- package/lib/init-templates/v2/lib/info.json +0 -4
- package/lib/init-templates/v2/lib/typescript/.template.gitignore +0 -8
- package/lib/init-templates/v2/lib/typescript/.template.npmignore +0 -6
- package/lib/init-templates/v2/lib/typescript/jest.config.js +0 -8
- package/lib/init-templates/v2/lib/typescript/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v2/lib/typescript/sub-placeholders.hook.js +0 -9
- package/lib/init-templates/v2/lib/typescript/tsconfig.json +0 -30
- package/lib/init-templates/v2/sample-app/csharp/.template.gitignore +0 -342
- package/lib/init-templates/v2/sample-app/csharp/add-project.hook.d.ts +0 -2
- package/lib/init-templates/v2/sample-app/csharp/add-project.hook.js +0 -31
- package/lib/init-templates/v2/sample-app/csharp/cdk.template.json +0 -15
- package/lib/init-templates/v2/sample-app/csharp/src/%name.PascalCased%/GlobalSuppressions.cs +0 -1
- package/lib/init-templates/v2/sample-app/csharp/src/%name.PascalCased%/Program.template.cs +0 -15
- package/lib/init-templates/v2/sample-app/csharp/src/%name.PascalCased%.template.sln +0 -18
- package/lib/init-templates/v2/sample-app/fsharp/.template.gitignore +0 -342
- package/lib/init-templates/v2/sample-app/fsharp/README.template.md +0 -20
- package/lib/init-templates/v2/sample-app/fsharp/add-project.hook.d.ts +0 -2
- package/lib/init-templates/v2/sample-app/fsharp/add-project.hook.js +0 -31
- package/lib/init-templates/v2/sample-app/fsharp/cdk.template.json +0 -14
- package/lib/init-templates/v2/sample-app/fsharp/src/%name.PascalCased%/Program.template.fs +0 -11
- package/lib/init-templates/v2/sample-app/fsharp/src/%name.PascalCased%.template.sln +0 -18
- package/lib/init-templates/v2/sample-app/go/.template.gitignore +0 -19
- package/lib/init-templates/v2/sample-app/go/cdk.template.json +0 -13
- package/lib/init-templates/v2/sample-app/info.json +0 -4
- package/lib/init-templates/v2/sample-app/java/.template.gitignore +0 -13
- package/lib/init-templates/v2/sample-app/java/cdk.json +0 -13
- package/lib/init-templates/v2/sample-app/java/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v2/sample-app/java/sub-placeholders.hook.js +0 -9
- package/lib/init-templates/v2/sample-app/javascript/.template.gitignore +0 -5
- package/lib/init-templates/v2/sample-app/javascript/.template.npmignore +0 -3
- package/lib/init-templates/v2/sample-app/javascript/cdk.template.json +0 -15
- package/lib/init-templates/v2/sample-app/javascript/jest.config.js +0 -3
- package/lib/init-templates/v2/sample-app/javascript/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v2/sample-app/javascript/sub-placeholders.hook.js +0 -9
- package/lib/init-templates/v2/sample-app/javascript/tsconfig.json +0 -35
- package/lib/init-templates/v2/sample-app/python/%name.PythonModule%/__init__.py +0 -0
- package/lib/init-templates/v2/sample-app/python/.template.gitignore +0 -22
- package/lib/init-templates/v2/sample-app/python/cdk.template.json +0 -15
- package/lib/init-templates/v2/sample-app/python/requirements-dev.txt +0 -1
- package/lib/init-templates/v2/sample-app/python/source.bat +0 -13
- package/lib/init-templates/v2/sample-app/python/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v2/sample-app/python/sub-placeholders.hook.js +0 -9
- package/lib/init-templates/v2/sample-app/python/tests/__init__.py +0 -0
- package/lib/init-templates/v2/sample-app/python/tests/unit/__init__.py +0 -0
- package/lib/init-templates/v2/sample-app/typescript/.template.gitignore +0 -8
- package/lib/init-templates/v2/sample-app/typescript/.template.npmignore +0 -6
- package/lib/init-templates/v2/sample-app/typescript/cdk.template.json +0 -17
- package/lib/init-templates/v2/sample-app/typescript/jest.config.js +0 -8
- package/lib/init-templates/v2/sample-app/typescript/sub-placeholders.hook.d.ts +0 -2
- package/lib/init-templates/v2/sample-app/typescript/sub-placeholders.hook.js +0 -9
- package/lib/init-templates/v2/sample-app/typescript/tsconfig.json +0 -30
package/lib/commands/context.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.realHandler = void 0;
|
|
4
4
|
const chalk = require("chalk");
|
|
5
|
+
const minimatch = require("minimatch");
|
|
5
6
|
const version = require("../../lib/version");
|
|
6
7
|
const logging_1 = require("../logging");
|
|
7
8
|
const settings_1 = require("../settings");
|
|
@@ -14,7 +15,7 @@ async function realHandler(options) {
|
|
|
14
15
|
logging_1.print('All context values cleared.');
|
|
15
16
|
}
|
|
16
17
|
else if (args.reset) {
|
|
17
|
-
invalidateContext(configuration.context, args.reset);
|
|
18
|
+
invalidateContext(configuration.context, args.reset, args.force);
|
|
18
19
|
await configuration.saveContext();
|
|
19
20
|
}
|
|
20
21
|
else {
|
|
@@ -47,12 +48,13 @@ function listContext(context) {
|
|
|
47
48
|
const jsonWithoutNewlines = JSON.stringify(context.all[key], undefined, 2).replace(/\s+/g, ' ');
|
|
48
49
|
data.push([i, key, jsonWithoutNewlines]);
|
|
49
50
|
}
|
|
50
|
-
logging_1.print(
|
|
51
|
+
logging_1.print('Context found in %s:', chalk.blue(settings_1.PROJECT_CONFIG));
|
|
52
|
+
logging_1.print('');
|
|
51
53
|
logging_1.print(util_1.renderTable(data, process.stdout.columns));
|
|
52
54
|
// eslint-disable-next-line max-len
|
|
53
55
|
logging_1.print(`Run ${chalk.blue('cdk context --reset KEY_OR_NUMBER')} to remove a context key. It will be refreshed on the next CDK synthesis run.`);
|
|
54
56
|
}
|
|
55
|
-
function invalidateContext(context, key) {
|
|
57
|
+
function invalidateContext(context, key, force) {
|
|
56
58
|
const i = parseInt(key, 10);
|
|
57
59
|
if (`${i}` === key) {
|
|
58
60
|
// was a number and we fully parsed it.
|
|
@@ -61,12 +63,70 @@ function invalidateContext(context, key) {
|
|
|
61
63
|
// Unset!
|
|
62
64
|
if (context.has(key)) {
|
|
63
65
|
context.unset(key);
|
|
64
|
-
|
|
66
|
+
// check if the value was actually unset.
|
|
67
|
+
if (!context.has(key)) {
|
|
68
|
+
logging_1.print('Context value %s reset. It will be refreshed on next synthesis', chalk.blue(key));
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// Value must be in readonly bag
|
|
72
|
+
logging_1.error('Only context values specified in %s can be reset through the CLI', chalk.blue(settings_1.PROJECT_CONTEXT));
|
|
73
|
+
if (!force) {
|
|
74
|
+
throw new Error(`Cannot reset readonly context value with key: ${key}`);
|
|
75
|
+
}
|
|
65
76
|
}
|
|
66
|
-
|
|
67
|
-
|
|
77
|
+
// check if value is expression matching keys
|
|
78
|
+
const matches = keysByExpression(context, key);
|
|
79
|
+
if (matches.length > 0) {
|
|
80
|
+
matches.forEach((match) => {
|
|
81
|
+
context.unset(match);
|
|
82
|
+
});
|
|
83
|
+
const { unset, readonly } = getUnsetAndReadonly(context, matches);
|
|
84
|
+
// output the reset values
|
|
85
|
+
printUnset(unset);
|
|
86
|
+
// warn about values not reset
|
|
87
|
+
printReadonly(readonly);
|
|
88
|
+
// throw when none of the matches were reset
|
|
89
|
+
if (!force && unset.length === 0) {
|
|
90
|
+
throw new Error('None of the matched context values could be reset');
|
|
91
|
+
}
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (!force) {
|
|
95
|
+
throw new Error(`No context value matching key: ${key}`);
|
|
68
96
|
}
|
|
69
97
|
}
|
|
98
|
+
function printUnset(unset) {
|
|
99
|
+
if (unset.length === 0)
|
|
100
|
+
return;
|
|
101
|
+
logging_1.print('The following matched context values reset. They will be refreshed on next synthesis');
|
|
102
|
+
unset.forEach((match) => {
|
|
103
|
+
logging_1.print(' %s', match);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
function printReadonly(readonly) {
|
|
107
|
+
if (readonly.length === 0)
|
|
108
|
+
return;
|
|
109
|
+
logging_1.warning('The following matched context values could not be reset through the CLI');
|
|
110
|
+
readonly.forEach((match) => {
|
|
111
|
+
logging_1.print(' %s', match);
|
|
112
|
+
});
|
|
113
|
+
logging_1.print('');
|
|
114
|
+
logging_1.print('This usually means they are configured in %s or %s', chalk.blue(settings_1.PROJECT_CONFIG), chalk.blue(settings_1.USER_DEFAULTS));
|
|
115
|
+
}
|
|
116
|
+
function keysByExpression(context, expression) {
|
|
117
|
+
return context.keys.filter(minimatch.filter(expression));
|
|
118
|
+
}
|
|
119
|
+
function getUnsetAndReadonly(context, matches) {
|
|
120
|
+
return matches.reduce((acc, match) => {
|
|
121
|
+
if (context.has(match)) {
|
|
122
|
+
acc.readonly.push(match);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
acc.unset.push(match);
|
|
126
|
+
}
|
|
127
|
+
return acc;
|
|
128
|
+
}, { unset: [], readonly: [] });
|
|
129
|
+
}
|
|
70
130
|
function keyByNumber(context, n) {
|
|
71
131
|
for (const [i, key] of contextKeys(context)) {
|
|
72
132
|
if (n === i) {
|
|
@@ -92,4 +152,4 @@ function enumerate1(xs) {
|
|
|
92
152
|
}
|
|
93
153
|
return ret;
|
|
94
154
|
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQStCO0FBQy9CLDZDQUE2QztBQUU3Qyx3Q0FBbUM7QUFDbkMsMENBQXNEO0FBQ3RELGtDQUFzQztBQUUvQixLQUFLLFVBQVUsV0FBVyxDQUFDLE9BQXVCO0lBQ3ZELE1BQU0sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRXhDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNkLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsTUFBTSxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsZUFBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7S0FDdEM7U0FBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDckIsaUJBQWlCLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBZSxDQUFDLENBQUM7UUFDL0QsTUFBTSxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7S0FDbkM7U0FBTTtRQUNMLGdDQUFnQztRQUNoQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUNoRCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuRTthQUFNO1lBQ0wsV0FBVyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwQztLQUNGO0lBQ0QsTUFBTSxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUV0QyxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUF0QkQsa0NBc0JDO0FBRUQsU0FBUyxXQUFXLENBQUMsT0FBZ0I7SUFDbkMsTUFB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TztJQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBZSxDQUFDO0lBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNWLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2xCLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ1I7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgKiBhcyB2ZXJzaW9uIGZyb20gJy4uLy4uL2xpYi92ZXJzaW9uJztcbmltcG9ydCB7IENvbW1hbmRPcHRpb25zIH0gZnJvbSAnLi4vY29tbWFuZC1hcGknO1xuaW1wb3J0IHsgcHJpbnQgfSBmcm9tICcuLi9sb2dnaW5nJztcbmltcG9ydCB7IENvbnRleHQsIFBST0pFQ1RfQ09ORklHIH0gZnJvbSAnLi4vc2V0dGluZ3MnO1xuaW1wb3J0IHsgcmVuZGVyVGFibGUgfSBmcm9tICcuLi91dGlsJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWxIYW5kbGVyKG9wdGlvbnM6IENvbW1hbmRPcHRpb25zKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3QgeyBjb25maWd1cmF0aW9uLCBhcmdzIH0gPSBvcHRpb25zO1xuXG4gIGlmIChhcmdzLmNsZWFyKSB7XG4gICAgY29uZmlndXJhdGlvbi5jb250ZXh0LmNsZWFyKCk7XG4gICAgYXdhaXQgY29uZmlndXJhdGlvbi5zYXZlQ29udGV4dCgpO1xuICAgIHByaW50KCdBbGwgY29udGV4dCB2YWx1ZXMgY2xlYXJlZC4nKTtcbiAgfSBlbHNlIGlmIChhcmdzLnJlc2V0KSB7XG4gICAgaW52YWxpZGF0ZUNvbnRleHQoY29uZmlndXJhdGlvbi5jb250ZXh0LCBhcmdzLnJlc2V0IGFzIHN0cmluZyk7XG4gICAgYXdhaXQgY29uZmlndXJhdGlvbi5zYXZlQ29udGV4dCgpO1xuICB9IGVsc2Uge1xuICAgIC8vIExpc3QgLS0gc3VwcG9ydCAnLS1qc29uJyBmbGFnXG4gICAgaWYgKGFyZ3MuanNvbikge1xuICAgICAgY29uc3QgY29udGV4dFZhbHVlcyA9IGNvbmZpZ3VyYXRpb24uY29udGV4dC5hbGw7XG4gICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShKU09OLnN0cmluZ2lmeShjb250ZXh0VmFsdWVzLCB1bmRlZmluZWQsIDIpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGlzdENvbnRleHQoY29uZmlndXJhdGlvbi5jb250ZXh0KTtcbiAgICB9XG4gIH1cbiAgYXdhaXQgdmVyc2lvbi5kaXNwbGF5VmVyc2lvbk1lc3NhZ2UoKTtcblxuICByZXR1cm4gMDtcbn1cblxuZnVuY3Rpb24gbGlzdENvbnRleHQoY29udGV4dDogQ29udGV4dCkge1xuICBjb25zdCBrZXlzID0gY29udGV4dEtleXMoY29udGV4dCk7XG5cbiAgaWYgKGtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgcHJpbnQoJ1RoaXMgQ0RLIGFwcGxpY2F0aW9uIGRvZXMgbm90IGhhdmUgYW55IHNhdmVkIGNvbnRleHQgdmFsdWVzIHlldC4nKTtcbiAgICBwcmludCgnJyk7XG4gICAgcHJpbnQoJ0NvbnRleHQgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIHNhdmVkIHdoZW4geW91IHN5bnRoZXNpemUgQ0RLIGFwcHMnKTtcbiAgICBwcmludCgndGhhdCB1c2UgZW52aXJvbm1lbnQgY29udGV4dCBpbmZvcm1hdGlvbiBsaWtlIEFaIGluZm9ybWF0aW9uLCBWUENzLCcpO1xuICAgIHByaW50KCdTU00gcGFyYW1ldGVycywgYW5kIHNvIG9uLicpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gUHJpbnQgY29uZmlnIGJ5IGRlZmF1bHRcbiAgY29uc3QgZGF0YTogYW55W10gPSBbW2NoYWxrLmdyZWVuKCcjJyksIGNoYWxrLmdyZWVuKCdLZXknKSwgY2hhbGsuZ3JlZW4oJ1ZhbHVlJyldXTtcbiAgZm9yIChjb25zdCBbaSwga2V5XSBvZiBrZXlzKSB7XG4gICAgY29uc3QganNvbldpdGhvdXROZXdsaW5lcyA9IEpTT04uc3RyaW5naWZ5KGNvbnRleHQuYWxsW2tleV0sIHVuZGVmaW5lZCwgMikucmVwbGFjZSgvXFxzKy9nLCAnICcpO1xuICAgIGRhdGEucHVzaChbaSwga2V5LCBqc29uV2l0aG91dE5ld2xpbmVzXSk7XG4gIH1cblxuICBwcmludChgQ29udGV4dCBmb3VuZCBpbiAke2NoYWxrLmJsdWUoUFJPSkVDVF9DT05GSUcpfTpcXG5gKTtcblxuICBwcmludChyZW5kZXJUYWJsZShkYXRhLCBwcm9jZXNzLnN0ZG91dC5jb2x1bW5zKSk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgcHJpbnQoYFJ1biAke2NoYWxrLmJsdWUoJ2NkayBjb250ZXh0IC0tcmVzZXQgS0VZX09SX05VTUJFUicpfSB0byByZW1vdmUgYSBjb250ZXh0IGtleS4gSXQgd2lsbCBiZSByZWZyZXNoZWQgb24gdGhlIG5leHQgQ0RLIHN5bnRoZXNpcyBydW4uYCk7XG59XG5cbmZ1bmN0aW9uIGludmFsaWRhdGVDb250ZXh0KGNvbnRleHQ6IENvbnRleHQsIGtleTogc3RyaW5nKSB7XG4gIGNvbnN0IGkgPSBwYXJzZUludChrZXksIDEwKTtcbiAgaWYgKGAke2l9YCA9PT0ga2V5KSB7XG4gICAgLy8gd2FzIGEgbnVtYmVyIGFuZCB3ZSBmdWxseSBwYXJzZWQgaXQuXG4gICAga2V5ID0ga2V5QnlOdW1iZXIoY29udGV4dCwgaSk7XG4gIH1cblxuICAvLyBVbnNldCFcbiAgaWYgKGNvbnRleHQuaGFzKGtleSkpIHtcbiAgICBjb250ZXh0LnVuc2V0KGtleSk7XG4gICAgcHJpbnQoYENvbnRleHQgdmFsdWUgJHtjaGFsay5ibHVlKGtleSl9IHJlc2V0LiBJdCB3aWxsIGJlIHJlZnJlc2hlZCBvbiBuZXh0IHN5bnRoZXNpc2ApO1xuICB9IGVsc2Uge1xuICAgIHByaW50KGBObyBjb250ZXh0IHZhbHVlIHdpdGgga2V5ICR7Y2hhbGsuYmx1ZShrZXkpfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGtleUJ5TnVtYmVyKGNvbnRleHQ6IENvbnRleHQsIG46IG51bWJlcikge1xuICBmb3IgKGNvbnN0IFtpLCBrZXldIG9mIGNvbnRleHRLZXlzKGNvbnRleHQpKSB7XG4gICAgaWYgKG4gPT09IGkpIHtcbiAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuICB9XG4gIHRocm93IG5ldyBFcnJvcihgTm8gY29udGV4dCBrZXkgd2l0aCBudW1iZXI6ICR7bn1gKTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gZW51bWVyYXRlZCBrZXlzIGluIGEgZGVmaW5pdGl2ZSBvcmRlclxuICovXG5mdW5jdGlvbiBjb250ZXh0S2V5cyhjb250ZXh0OiBDb250ZXh0KTogW251bWJlciwgc3RyaW5nXVtdIHtcbiAgY29uc3Qga2V5cyA9IGNvbnRleHQua2V5cztcbiAga2V5cy5zb3J0KCk7XG4gIHJldHVybiBlbnVtZXJhdGUxKGtleXMpO1xufVxuXG5mdW5jdGlvbiBlbnVtZXJhdGUxPFQ+KHhzOiBUW10pOiBBcnJheTxbbnVtYmVyLCBUXT4ge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8W251bWJlciwgVF0+KCk7XG4gIGxldCBpID0gMTtcbiAgZm9yIChjb25zdCB4IG9mIHhzKSB7XG4gICAgcmV0LnB1c2goW2ksIHhdKTtcbiAgICBpICs9IDE7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQStCO0FBQy9CLHVDQUF1QztBQUN2Qyw2Q0FBNkM7QUFFN0Msd0NBQW1EO0FBQ25ELDBDQUFzRjtBQUN0RixrQ0FBc0M7QUFFL0IsS0FBSyxVQUFVLFdBQVcsQ0FBQyxPQUF1QjtJQUN2RCxNQUFNLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUN4QyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDZCxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlCLE1BQU0sYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLGVBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ3RDO1NBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ3JCLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQWUsRUFBRSxJQUFJLENBQUMsS0FBZ0IsQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0tBQ25DO1NBQU07UUFDTCxnQ0FBZ0M7UUFDaEMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDaEQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkU7YUFBTTtZQUNMLFdBQVcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDcEM7S0FDRjtJQUNELE1BQU0sT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFFdEMsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDO0FBckJELGtDQXFCQztB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LENBQUMsSUFBSSxDQUFDO0lBQzFCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNaLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBSSxFQUFPO0lBQzVCLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFlLENBQUM7SUFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDbEIsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDUjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIG1pbmltYXRjaCBmcm9tICdtaW5pbWF0Y2gnO1xuaW1wb3J0ICogYXMgdmVyc2lvbiBmcm9tICcuLi8uLi9saWIvdmVyc2lvbic7XG5pbXBvcnQgeyBDb21tYW5kT3B0aW9ucyB9IGZyb20gJy4uL2NvbW1hbmQtYXBpJztcbmltcG9ydCB7IHByaW50LCBlcnJvciwgd2FybmluZyB9IGZyb20gJy4uL2xvZ2dpbmcnO1xuaW1wb3J0IHsgQ29udGV4dCwgUFJPSkVDVF9DT05GSUcsIFBST0pFQ1RfQ09OVEVYVCwgVVNFUl9ERUZBVUxUUyB9IGZyb20gJy4uL3NldHRpbmdzJztcbmltcG9ydCB7IHJlbmRlclRhYmxlIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFsSGFuZGxlcihvcHRpb25zOiBDb21tYW5kT3B0aW9ucyk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGNvbnN0IHsgY29uZmlndXJhdGlvbiwgYXJncyB9ID0gb3B0aW9ucztcbiAgaWYgKGFyZ3MuY2xlYXIpIHtcbiAgICBjb25maWd1cmF0aW9uLmNvbnRleHQuY2xlYXIoKTtcbiAgICBhd2FpdCBjb25maWd1cmF0aW9uLnNhdmVDb250ZXh0KCk7XG4gICAgcHJpbnQoJ0FsbCBjb250ZXh0IHZhbHVlcyBjbGVhcmVkLicpO1xuICB9IGVsc2UgaWYgKGFyZ3MucmVzZXQpIHtcbiAgICBpbnZhbGlkYXRlQ29udGV4dChjb25maWd1cmF0aW9uLmNvbnRleHQsIGFyZ3MucmVzZXQgYXMgc3RyaW5nLCBhcmdzLmZvcmNlIGFzIGJvb2xlYW4pO1xuICAgIGF3YWl0IGNvbmZpZ3VyYXRpb24uc2F2ZUNvbnRleHQoKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBMaXN0IC0tIHN1cHBvcnQgJy0tanNvbicgZmxhZ1xuICAgIGlmIChhcmdzLmpzb24pIHtcbiAgICAgIGNvbnN0IGNvbnRleHRWYWx1ZXMgPSBjb25maWd1cmF0aW9uLmNvbnRleHQuYWxsO1xuICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoSlNPTi5zdHJpbmdpZnkoY29udGV4dFZhbHVlcywgdW5kZWZpbmVkLCAyKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpc3RDb250ZXh0KGNvbmZpZ3VyYXRpb24uY29udGV4dCk7XG4gICAgfVxuICB9XG4gIGF3YWl0IHZlcnNpb24uZGlzcGxheVZlcnNpb25NZXNzYWdlKCk7XG5cbiAgcmV0dXJuIDA7XG59XG5cbmZ1bmN0aW9uIGxpc3RDb250ZXh0KGNvbnRleHQ6IENvbnRleHQpIHtcbiAgY29uc3Qga2V5cyA9IGNvbnRleHRLZXlzKGNvbnRleHQpO1xuXG4gIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgIHByaW50KCdUaGlzIENESyBhcHBsaWNhdGlvbiBkb2VzIG5vdCBoYXZlIGFueSBzYXZlZCBjb250ZXh0IHZhbHVlcyB5ZXQuJyk7XG4gICAgcHJpbnQoJycpO1xuICAgIHByaW50KCdDb250ZXh0IHdpbGwgYXV0b21hdGljYWxseSBiZSBzYXZlZCB3aGVuIHlvdSBzeW50aGVzaXplIENESyBhcHBzJyk7XG4gICAgcHJpbnQoJ3RoYXQgdXNlIGVudmlyb25tZW50IGNvbnRleHQgaW5mb3JtYXRpb24gbGlrZSBBWiBpbmZvcm1hdGlvbiwgVlBDcywnKTtcbiAgICBwcmludCgnU1NNIHBhcmFtZXRlcnMsIGFuZCBzbyBvbi4nKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIFByaW50IGNvbmZpZyBieSBkZWZhdWx0XG4gIGNvbnN0IGRhdGE6IGFueVtdID0gW1tjaGFsay5ncmVlbignIycpLCBjaGFsay5ncmVlbignS2V5JyksIGNoYWxrLmdyZWVuKCdWYWx1ZScpXV07XG4gIGZvciAoY29uc3QgW2ksIGtleV0gb2Yga2V5cykge1xuICAgIGNvbnN0IGpzb25XaXRob3V0TmV3bGluZXMgPSBKU09OLnN0cmluZ2lmeShjb250ZXh0LmFsbFtrZXldLCB1bmRlZmluZWQsIDIpLnJlcGxhY2UoL1xccysvZywgJyAnKTtcbiAgICBkYXRhLnB1c2goW2ksIGtleSwganNvbldpdGhvdXROZXdsaW5lc10pO1xuICB9XG4gIHByaW50KCdDb250ZXh0IGZvdW5kIGluICVzOicsIGNoYWxrLmJsdWUoUFJPSkVDVF9DT05GSUcpKTtcbiAgcHJpbnQoJycpO1xuICBwcmludChyZW5kZXJUYWJsZShkYXRhLCBwcm9jZXNzLnN0ZG91dC5jb2x1bW5zKSk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgcHJpbnQoYFJ1biAke2NoYWxrLmJsdWUoJ2NkayBjb250ZXh0IC0tcmVzZXQgS0VZX09SX05VTUJFUicpfSB0byByZW1vdmUgYSBjb250ZXh0IGtleS4gSXQgd2lsbCBiZSByZWZyZXNoZWQgb24gdGhlIG5leHQgQ0RLIHN5bnRoZXNpcyBydW4uYCk7XG59XG5cbmZ1bmN0aW9uIGludmFsaWRhdGVDb250ZXh0KGNvbnRleHQ6IENvbnRleHQsIGtleTogc3RyaW5nLCBmb3JjZTogYm9vbGVhbikge1xuICBjb25zdCBpID0gcGFyc2VJbnQoa2V5LCAxMCk7XG4gIGlmIChgJHtpfWAgPT09IGtleSkge1xuICAgIC8vIHdhcyBhIG51bWJlciBhbmQgd2UgZnVsbHkgcGFyc2VkIGl0LlxuICAgIGtleSA9IGtleUJ5TnVtYmVyKGNvbnRleHQsIGkpO1xuICB9XG4gIC8vIFVuc2V0IVxuICBpZiAoY29udGV4dC5oYXMoa2V5KSkge1xuICAgIGNvbnRleHQudW5zZXQoa2V5KTtcbiAgICAvLyBjaGVjayBpZiB0aGUgdmFsdWUgd2FzIGFjdHVhbGx5IHVuc2V0LlxuICAgIGlmICghY29udGV4dC5oYXMoa2V5KSkge1xuICAgICAgcHJpbnQoJ0NvbnRleHQgdmFsdWUgJXMgcmVzZXQuIEl0IHdpbGwgYmUgcmVmcmVzaGVkIG9uIG5leHQgc3ludGhlc2lzJywgY2hhbGsuYmx1ZShrZXkpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBWYWx1ZSBtdXN0IGJlIGluIHJlYWRvbmx5IGJhZ1xuICAgIGVycm9yKCdPbmx5IGNvbnRleHQgdmFsdWVzIHNwZWNpZmllZCBpbiAlcyBjYW4gYmUgcmVzZXQgdGhyb3VnaCB0aGUgQ0xJJywgY2hhbGsuYmx1ZShQUk9KRUNUX0NPTlRFWFQpKTtcbiAgICBpZiAoIWZvcmNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXNldCByZWFkb25seSBjb250ZXh0IHZhbHVlIHdpdGgga2V5OiAke2tleX1gKTtcbiAgICB9XG4gIH1cblxuICAvLyBjaGVjayBpZiB2YWx1ZSBpcyBleHByZXNzaW9uIG1hdGNoaW5nIGtleXNcbiAgY29uc3QgbWF0Y2hlcyA9IGtleXNCeUV4cHJlc3Npb24oY29udGV4dCwga2V5KTtcblxuICBpZiAobWF0Y2hlcy5sZW5ndGggPiAwKSB7XG5cbiAgICBtYXRjaGVzLmZvckVhY2goKG1hdGNoKSA9PiB7XG4gICAgICBjb250ZXh0LnVuc2V0KG1hdGNoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHsgdW5zZXQsIHJlYWRvbmx5IH0gPSBnZXRVbnNldEFuZFJlYWRvbmx5KGNvbnRleHQsIG1hdGNoZXMpO1xuXG4gICAgLy8gb3V0cHV0IHRoZSByZXNldCB2YWx1ZXNcbiAgICBwcmludFVuc2V0KHVuc2V0KTtcblxuICAgIC8vIHdhcm4gYWJvdXQgdmFsdWVzIG5vdCByZXNldFxuICAgIHByaW50UmVhZG9ubHkocmVhZG9ubHkpO1xuXG4gICAgLy8gdGhyb3cgd2hlbiBub25lIG9mIHRoZSBtYXRjaGVzIHdlcmUgcmVzZXRcbiAgICBpZiAoIWZvcmNlICYmIHVuc2V0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb25lIG9mIHRoZSBtYXRjaGVkIGNvbnRleHQgdmFsdWVzIGNvdWxkIGJlIHJlc2V0Jyk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuICBpZiAoIWZvcmNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBjb250ZXh0IHZhbHVlIG1hdGNoaW5nIGtleTogJHtrZXl9YCk7XG4gIH1cbn1cbmZ1bmN0aW9uIHByaW50VW5zZXQodW5zZXQ6IHN0cmluZ1tdKSB7XG4gIGlmICh1bnNldC5sZW5ndGggPT09IDApIHJldHVybjtcbiAgcHJpbnQoJ1RoZSBmb2xsb3dpbmcgbWF0Y2hlZCBjb250ZXh0IHZhbHVlcyByZXNldC4gVGhleSB3aWxsIGJlIHJlZnJlc2hlZCBvbiBuZXh0IHN5bnRoZXNpcycpO1xuICB1bnNldC5mb3JFYWNoKChtYXRjaCkgPT4ge1xuICAgIHByaW50KCcgICVzJywgbWF0Y2gpO1xuICB9KTtcbn1cbmZ1bmN0aW9uIHByaW50UmVhZG9ubHkocmVhZG9ubHk6IHN0cmluZ1tdKSB7XG4gIGlmIChyZWFkb25seS5sZW5ndGggPT09IDApIHJldHVybjtcbiAgd2FybmluZygnVGhlIGZvbGxvd2luZyBtYXRjaGVkIGNvbnRleHQgdmFsdWVzIGNvdWxkIG5vdCBiZSByZXNldCB0aHJvdWdoIHRoZSBDTEknKTtcbiAgcmVhZG9ubHkuZm9yRWFjaCgobWF0Y2gpID0+IHtcbiAgICBwcmludCgnICAlcycsIG1hdGNoKTtcbiAgfSk7XG4gIHByaW50KCcnKTtcbiAgcHJpbnQoJ1RoaXMgdXN1YWxseSBtZWFucyB0aGV5IGFyZSBjb25maWd1cmVkIGluICVzIG9yICVzJywgY2hhbGsuYmx1ZShQUk9KRUNUX0NPTkZJRyksIGNoYWxrLmJsdWUoVVNFUl9ERUZBVUxUUykpO1xufVxuZnVuY3Rpb24ga2V5c0J5RXhwcmVzc2lvbihjb250ZXh0OiBDb250ZXh0LCBleHByZXNzaW9uOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNvbnRleHQua2V5cy5maWx0ZXIobWluaW1hdGNoLmZpbHRlcihleHByZXNzaW9uKSk7XG59XG5cbmZ1bmN0aW9uIGdldFVuc2V0QW5kUmVhZG9ubHkoY29udGV4dDogQ29udGV4dCwgbWF0Y2hlczogc3RyaW5nW10pIHtcbiAgcmV0dXJuIG1hdGNoZXMucmVkdWNlPHsgdW5zZXQ6IHN0cmluZ1tdLCByZWFkb25seTogc3RyaW5nW10gfT4oKGFjYywgbWF0Y2gpID0+IHtcbiAgICBpZiAoY29udGV4dC5oYXMobWF0Y2gpKSB7XG4gICAgICBhY2MucmVhZG9ubHkucHVzaChtYXRjaCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjYy51bnNldC5wdXNoKG1hdGNoKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwgeyB1bnNldDogW10sIHJlYWRvbmx5OiBbXSB9KTtcbn1cblxuZnVuY3Rpb24ga2V5QnlOdW1iZXIoY29udGV4dDogQ29udGV4dCwgbjogbnVtYmVyKSB7XG4gIGZvciAoY29uc3QgW2ksIGtleV0gb2YgY29udGV4dEtleXMoY29udGV4dCkpIHtcbiAgICBpZiAobiA9PT0gaSkge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBObyBjb250ZXh0IGtleSB3aXRoIG51bWJlcjogJHtufWApO1xufVxuXG4vKipcbiAqIFJldHVybiBlbnVtZXJhdGVkIGtleXMgaW4gYSBkZWZpbml0aXZlIG9yZGVyXG4gKi9cbmZ1bmN0aW9uIGNvbnRleHRLZXlzKGNvbnRleHQ6IENvbnRleHQpOiBbbnVtYmVyLCBzdHJpbmddW10ge1xuICBjb25zdCBrZXlzID0gY29udGV4dC5rZXlzO1xuICBrZXlzLnNvcnQoKTtcbiAgcmV0dXJuIGVudW1lcmF0ZTEoa2V5cyk7XG59XG5cbmZ1bmN0aW9uIGVudW1lcmF0ZTE8VD4oeHM6IFRbXSk6IEFycmF5PFtudW1iZXIsIFRdPiB7XG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxbbnVtYmVyLCBUXT4oKTtcbiAgbGV0IGkgPSAxO1xuICBmb3IgKGNvbnN0IHggb2YgeHMpIHtcbiAgICByZXQucHVzaChbaSwgeF0pO1xuICAgIGkgKz0gMTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuIl19
|