@cdktn/cli-core 0.21.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/README.md +3 -0
- package/ambient.d.ts +13 -0
- package/eslint.config.mjs +82 -0
- package/jest.config.js +20 -0
- package/package.json +139 -0
- package/src/lib/cdktf-config.d.ts +16 -0
- package/src/lib/cdktf-config.d.ts.map +1 -0
- package/src/lib/cdktf-config.js +108 -0
- package/src/lib/cdktf-project-io-handler.d.ts +20 -0
- package/src/lib/cdktf-project-io-handler.d.ts.map +1 -0
- package/src/lib/cdktf-project-io-handler.js +84 -0
- package/src/lib/cdktf-project.d.ts +111 -0
- package/src/lib/cdktf-project.d.ts.map +1 -0
- package/src/lib/cdktf-project.js +371 -0
- package/src/lib/cdktf-stack.d.ts +134 -0
- package/src/lib/cdktf-stack.d.ts.map +1 -0
- package/src/lib/cdktf-stack.js +386 -0
- package/src/lib/convert.d.ts +6 -0
- package/src/lib/convert.d.ts.map +1 -0
- package/src/lib/convert.js +51 -0
- package/src/lib/dependencies/cdktf-config-manager.d.ts +12 -0
- package/src/lib/dependencies/cdktf-config-manager.d.ts.map +1 -0
- package/src/lib/dependencies/cdktf-config-manager.js +36 -0
- package/src/lib/dependencies/dependency-manager.d.ts +95 -0
- package/src/lib/dependencies/dependency-manager.d.ts.map +1 -0
- package/src/lib/dependencies/dependency-manager.js +393 -0
- package/src/lib/dependencies/package-manager.d.ts +18 -0
- package/src/lib/dependencies/package-manager.d.ts.map +1 -0
- package/src/lib/dependencies/package-manager.js +581 -0
- package/src/lib/dependencies/prebuilt-providers.d.ts +23 -0
- package/src/lib/dependencies/prebuilt-providers.d.ts.map +1 -0
- package/src/lib/dependencies/prebuilt-providers.js +220 -0
- package/src/lib/dependencies/registry-api.d.ts +8 -0
- package/src/lib/dependencies/registry-api.d.ts.map +1 -0
- package/src/lib/dependencies/registry-api.js +77 -0
- package/src/lib/dependencies/version-constraints.d.ts +8 -0
- package/src/lib/dependencies/version-constraints.d.ts.map +1 -0
- package/src/lib/dependencies/version-constraints.js +95 -0
- package/src/lib/error-reporting.d.ts +10 -0
- package/src/lib/error-reporting.d.ts.map +1 -0
- package/src/lib/error-reporting.js +133 -0
- package/src/lib/errors.d.ts +6 -0
- package/src/lib/errors.d.ts.map +1 -0
- package/src/lib/errors.js +10 -0
- package/src/lib/execution-logs.d.ts +3 -0
- package/src/lib/execution-logs.d.ts.map +1 -0
- package/src/lib/execution-logs.js +47 -0
- package/src/lib/get.d.ts +25 -0
- package/src/lib/get.d.ts.map +1 -0
- package/src/lib/get.js +90 -0
- package/src/lib/helpers/stack-helpers.d.ts +16 -0
- package/src/lib/helpers/stack-helpers.d.ts.map +1 -0
- package/src/lib/helpers/stack-helpers.js +155 -0
- package/src/lib/index.d.ts +15 -0
- package/src/lib/index.d.ts.map +1 -0
- package/src/lib/index.js +44 -0
- package/src/lib/init.d.ts +37 -0
- package/src/lib/init.d.ts.map +1 -0
- package/src/lib/init.js +131 -0
- package/src/lib/local-provider-constraints.d.ts +28 -0
- package/src/lib/local-provider-constraints.d.ts.map +1 -0
- package/src/lib/local-provider-constraints.js +95 -0
- package/src/lib/local-provider-versions.d.ts +12 -0
- package/src/lib/local-provider-versions.d.ts.map +1 -0
- package/src/lib/local-provider-versions.js +73 -0
- package/src/lib/models/deploy-machine.d.ts +128 -0
- package/src/lib/models/deploy-machine.d.ts.map +1 -0
- package/src/lib/models/deploy-machine.js +280 -0
- package/src/lib/models/pty-process.d.ts +29 -0
- package/src/lib/models/pty-process.d.ts.map +1 -0
- package/src/lib/models/pty-process.js +132 -0
- package/src/lib/models/schema.d.ts +2307 -0
- package/src/lib/models/schema.d.ts.map +1 -0
- package/src/lib/models/schema.js +181 -0
- package/src/lib/models/terraform-cli.d.ts +72 -0
- package/src/lib/models/terraform-cli.d.ts.map +1 -0
- package/src/lib/models/terraform-cli.js +357 -0
- package/src/lib/models/terraform.d.ts +125 -0
- package/src/lib/models/terraform.d.ts.map +1 -0
- package/src/lib/models/terraform.js +72 -0
- package/src/lib/output.d.ts +23 -0
- package/src/lib/output.d.ts.map +1 -0
- package/src/lib/output.js +211 -0
- package/src/lib/provider-add.d.ts +15 -0
- package/src/lib/provider-add.d.ts.map +1 -0
- package/src/lib/provider-add.js +30 -0
- package/src/lib/server/terraform-logs.d.ts +2 -0
- package/src/lib/server/terraform-logs.d.ts.map +1 -0
- package/src/lib/server/terraform-logs.js +19 -0
- package/src/lib/synth-stack.d.ts +29 -0
- package/src/lib/synth-stack.d.ts.map +1 -0
- package/src/lib/synth-stack.js +251 -0
- package/src/lib/synth.d.ts +7 -0
- package/src/lib/synth.d.ts.map +1 -0
- package/src/lib/synth.js +67 -0
- package/src/lib/terraform-json.d.ts +1015 -0
- package/src/lib/terraform-json.d.ts.map +1 -0
- package/src/lib/terraform-json.js +82 -0
- package/src/lib/terraform-provider-lock.d.ts +25 -0
- package/src/lib/terraform-provider-lock.d.ts.map +1 -0
- package/src/lib/terraform-provider-lock.js +95 -0
- package/src/lib/watch.d.ts +16 -0
- package/src/lib/watch.d.ts.map +1 -0
- package/src/lib/watch.js +155 -0
- package/templates/csharp/.hooks.sscaff.js +63 -0
- package/templates/csharp/MainStack.cs +15 -0
- package/templates/csharp/MyTerraformStack.csproj +13 -0
- package/templates/csharp/Program.cs +17 -0
- package/templates/csharp/TestProgram.cs +42 -0
- package/templates/csharp/cdktf.json +11 -0
- package/templates/csharp/help +42 -0
- package/templates/csharp/{{}}.gitignore +345 -0
- package/templates/go/.hooks.sscaff.js +70 -0
- package/templates/go/cdktf.json +12 -0
- package/templates/go/go.mod +8 -0
- package/templates/go/help +32 -0
- package/templates/go/main.go +22 -0
- package/templates/go/main_test.go +42 -0
- package/templates/go/{{}}.gitignore +21 -0
- package/templates/java/.hooks.sscaff.js +64 -0
- package/templates/java/build.gradle +55 -0
- package/templates/java/cdktf.json +12 -0
- package/templates/java/gradle.properties +1 -0
- package/templates/java/gradlew +248 -0
- package/templates/java/gradlew.bat +92 -0
- package/templates/java/help +35 -0
- package/templates/java/settings.gradle +5 -0
- package/templates/java/src/main/java/com/mycompany/app/Main.java +16 -0
- package/templates/java/src/main/java/com/mycompany/app/MainStack.java +14 -0
- package/templates/java/src/test/java/com/company/app/MainTest.java +38 -0
- package/templates/java/{{}}.gitignore +14 -0
- package/templates/python/.hooks.sscaff.js +59 -0
- package/templates/python/Pipfile +7 -0
- package/templates/python/cdktf.json +12 -0
- package/templates/python/help +42 -0
- package/templates/python/main-test.py +26 -0
- package/templates/python/main.py +16 -0
- package/templates/python/{{}}.gitignore +7 -0
- package/templates/python-pip/.hooks.sscaff.js +63 -0
- package/templates/python-pip/cdktf.json +12 -0
- package/templates/python-pip/help +35 -0
- package/templates/python-pip/main-test.py +23 -0
- package/templates/python-pip/main.py +16 -0
- package/templates/python-pip/{{}}.gitignore +7 -0
- package/templates/typescript/.hooks.sscaff.js +78 -0
- package/templates/typescript/__tests__/main-test.ts +89 -0
- package/templates/typescript/cdktf.json +11 -0
- package/templates/typescript/help +51 -0
- package/templates/typescript/jest.config.js +187 -0
- package/templates/typescript/main.ts +14 -0
- package/templates/typescript/package.json +22 -0
- package/templates/typescript/setup.js +2 -0
- package/templates/typescript/tsconfig.json +35 -0
- package/templates/typescript/{{}}.gitignore +11 -0
package/README.md
ADDED
package/ambient.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Copyright (c) HashiCorp, Inc
|
|
2
|
+
// Licensed under the Mozilla Public License 2.0
|
|
3
|
+
declare module '@skorfmann/ink-confirm-input';
|
|
4
|
+
declare module '@npmcli/ci-detect';
|
|
5
|
+
|
|
6
|
+
declare module 'child_process' {
|
|
7
|
+
interface SpawnOptions {
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
declare module 'tunnel-agent';
|
|
13
|
+
declare module "archiver";
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { fixupConfigRules } from "@eslint/compat";
|
|
7
|
+
import eslint from "@eslint/js";
|
|
8
|
+
import tseslint from "typescript-eslint";
|
|
9
|
+
import tsParser from "@typescript-eslint/parser";
|
|
10
|
+
import react from "eslint-plugin-react";
|
|
11
|
+
import prettierConfig from "eslint-plugin-prettier/recommended";
|
|
12
|
+
import path from "node:path";
|
|
13
|
+
import { fileURLToPath } from "node:url";
|
|
14
|
+
import js from "@eslint/js";
|
|
15
|
+
import { FlatCompat } from "@eslint/eslintrc";
|
|
16
|
+
|
|
17
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
18
|
+
const __dirname = path.dirname(__filename);
|
|
19
|
+
const compat = new FlatCompat({
|
|
20
|
+
baseDirectory: __dirname,
|
|
21
|
+
recommendedConfig: js.configs.recommended,
|
|
22
|
+
allConfig: js.configs.all,
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
export default [
|
|
26
|
+
{
|
|
27
|
+
ignores: [
|
|
28
|
+
"**/node_modules",
|
|
29
|
+
"**/dist",
|
|
30
|
+
"**/coverage",
|
|
31
|
+
"**/*.d.ts",
|
|
32
|
+
"**/*.js",
|
|
33
|
+
// prettier v2 managed inline snapshots
|
|
34
|
+
"src/test/lib/cdktf-project.test.ts",
|
|
35
|
+
"src/test/lib/terraform-logs.test.ts",
|
|
36
|
+
"src/test/lib/execution-logs.test.ts",
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
...tseslint.config(eslint.configs.recommended, tseslint.configs.recommended),
|
|
40
|
+
{
|
|
41
|
+
settings: {
|
|
42
|
+
react: {
|
|
43
|
+
version: "detect",
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
react.configs.flat.recommended,
|
|
48
|
+
...fixupConfigRules(compat.extends("plugin:react-hooks/recommended")).map(
|
|
49
|
+
(config) => ({
|
|
50
|
+
...config,
|
|
51
|
+
files: ["**/*.ts", "**/*.tsx"],
|
|
52
|
+
}),
|
|
53
|
+
),
|
|
54
|
+
{
|
|
55
|
+
files: ["**/*.ts", "**/*.tsx"],
|
|
56
|
+
|
|
57
|
+
languageOptions: {
|
|
58
|
+
parser: tsParser,
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
rules: {
|
|
62
|
+
"@typescript-eslint/no-explicit-any": 0,
|
|
63
|
+
"@typescript-eslint/explicit-function-return-type": 0,
|
|
64
|
+
"@typescript-eslint/no-use-before-define": 0,
|
|
65
|
+
"@typescript-eslint/explicit-module-boundary-types": 0,
|
|
66
|
+
"@typescript-eslint/no-var-requires": 0,
|
|
67
|
+
"@typescript-eslint/no-require-imports": "warn",
|
|
68
|
+
"@typescript-eslint/no-unused-vars": "warn",
|
|
69
|
+
"react/no-unescaped-entities": 0,
|
|
70
|
+
"no-sequences": "error",
|
|
71
|
+
"no-unused-vars": "warn",
|
|
72
|
+
|
|
73
|
+
"no-irregular-whitespace": [
|
|
74
|
+
"error",
|
|
75
|
+
{
|
|
76
|
+
skipTemplates: true,
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
prettierConfig,
|
|
82
|
+
];
|
package/jest.config.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
module.exports = {
|
|
7
|
+
roots: [
|
|
8
|
+
"<rootDir>"
|
|
9
|
+
],
|
|
10
|
+
testMatch: ['**/*.test.ts', '**/*.test.tsx'],
|
|
11
|
+
transform: {
|
|
12
|
+
"^.+\\.tsx?$": "ts-jest"
|
|
13
|
+
},
|
|
14
|
+
moduleFileExtensions: [
|
|
15
|
+
"js",
|
|
16
|
+
"ts",
|
|
17
|
+
"tsx"
|
|
18
|
+
],
|
|
19
|
+
prettierPath: "<rootDir>/node_modules/prettier",
|
|
20
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cdktn/cli-core",
|
|
3
|
+
"version": "0.21.0",
|
|
4
|
+
"description": "CDK Terrain CLI Core, meant for internal use only",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"build": "tsc",
|
|
7
|
+
"watch": "tsc -w",
|
|
8
|
+
"watch-preserve-output": "tsc -w --preserveWatchOutput",
|
|
9
|
+
"lint": "eslint .",
|
|
10
|
+
"lint:fix": "eslint . --fix",
|
|
11
|
+
"pretest": "yarn build",
|
|
12
|
+
"pretest:ci": "yarn build",
|
|
13
|
+
"test": "yarn lint && jest",
|
|
14
|
+
"test:ci": "yarn lint && jest --ci",
|
|
15
|
+
"test:update": "jest -u --maxWorkers=50%",
|
|
16
|
+
"jest-watch": "jest --watch",
|
|
17
|
+
"package": "./package.sh",
|
|
18
|
+
"dist-clean": "rm -rf dist",
|
|
19
|
+
"package:js": "./package.sh"
|
|
20
|
+
},
|
|
21
|
+
"main": "src/lib/index.js",
|
|
22
|
+
"types": "src/lib/index.d.ts",
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
},
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "git://github.com/open-constructs/cdk-terrain.git",
|
|
29
|
+
"directory": "packages/@cdktn/cli-core"
|
|
30
|
+
},
|
|
31
|
+
"author": {
|
|
32
|
+
"name": "OpenConstructs",
|
|
33
|
+
"url": "https://github.com/open-constructs"
|
|
34
|
+
},
|
|
35
|
+
"keywords": [
|
|
36
|
+
"cdk",
|
|
37
|
+
"cdktf",
|
|
38
|
+
"terraform"
|
|
39
|
+
],
|
|
40
|
+
"license": "MPL-2.0",
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@cdktf/node-pty-prebuilt-multiarch": "^0.10.2",
|
|
43
|
+
"@cdktn/commons": "0.21.0",
|
|
44
|
+
"@cdktn/hcl-tools": "0.21.0",
|
|
45
|
+
"@cdktn/hcl2cdk": "0.21.0",
|
|
46
|
+
"@cdktn/hcl2json": "0.21.0",
|
|
47
|
+
"@cdktn/provider-schema": "0.21.0",
|
|
48
|
+
"@sentry/node": "7.120.3",
|
|
49
|
+
"archiver": "7.0.1",
|
|
50
|
+
"cdktn": "0.21.0",
|
|
51
|
+
"chalk": "4.1.2",
|
|
52
|
+
"chokidar": "3.6.0",
|
|
53
|
+
"cli-spinners": "2.9.2",
|
|
54
|
+
"codemaker": "1.112.0",
|
|
55
|
+
"constructs": "10.4.2",
|
|
56
|
+
"cross-fetch": "3.2.0",
|
|
57
|
+
"cross-spawn": "7.0.6",
|
|
58
|
+
"detect-port": "1.6.1",
|
|
59
|
+
"execa": "5.1.1",
|
|
60
|
+
"extract-zip": "2.0.1",
|
|
61
|
+
"follow-redirects": "1.15.9",
|
|
62
|
+
"fs-extra": "8.1.0",
|
|
63
|
+
"https-proxy-agent": "5.0.1",
|
|
64
|
+
"indent-string": "4.0.0",
|
|
65
|
+
"ink": "3.2.0",
|
|
66
|
+
"ink-select-input": "4.2.2",
|
|
67
|
+
"ink-spinner": "4.0.3",
|
|
68
|
+
"ink-testing-library": "2.1.0",
|
|
69
|
+
"ink-use-stdout-dimensions": "1.0.5",
|
|
70
|
+
"jsii": "^5.8.9",
|
|
71
|
+
"jsii-pacmak": "^1.112.0",
|
|
72
|
+
"jsii-rosetta": "^5.8.8",
|
|
73
|
+
"lodash.isequal": "4.5.0",
|
|
74
|
+
"log4js": "6.9.1",
|
|
75
|
+
"minimatch": "5.1.6",
|
|
76
|
+
"node-fetch": "2.7.0",
|
|
77
|
+
"open": "7.4.2",
|
|
78
|
+
"parse-gitignore": "1.0.1",
|
|
79
|
+
"pkg-up": "3.1.0",
|
|
80
|
+
"semver": "7.7.2",
|
|
81
|
+
"sscaff": "1.2.274",
|
|
82
|
+
"stream-buffers": "3.0.3",
|
|
83
|
+
"strip-ansi": "6.0.1",
|
|
84
|
+
"tunnel-agent": "0.6.0",
|
|
85
|
+
"uuid": "8.3.2",
|
|
86
|
+
"xml-js": "1.6.11",
|
|
87
|
+
"xstate": "4.38.3",
|
|
88
|
+
"yargs": "17.7.2",
|
|
89
|
+
"yoga-layout-prebuilt": "1.10.0",
|
|
90
|
+
"zod": "3.24.4"
|
|
91
|
+
},
|
|
92
|
+
"lint-staged": {
|
|
93
|
+
"src/**/*.{ts,tsx}": "tsc-files ambient.d.ts --noEmit"
|
|
94
|
+
},
|
|
95
|
+
"devDependencies": {
|
|
96
|
+
"@cdktn/provider-generator": "0.21.0",
|
|
97
|
+
"@eslint/compat": "^1.2.9",
|
|
98
|
+
"@eslint/eslintrc": "^3.3.1",
|
|
99
|
+
"@eslint/js": "^9.27.0",
|
|
100
|
+
"@npmcli/ci-detect": "1.4.0",
|
|
101
|
+
"@skorfmann/ink-confirm-input": "3.0.0",
|
|
102
|
+
"@skorfmann/terraform-cloud": "1.15.0",
|
|
103
|
+
"@types/archiver": "5.3.4",
|
|
104
|
+
"@types/cross-spawn": "6.0.6",
|
|
105
|
+
"@types/detect-port": "1.3.5",
|
|
106
|
+
"@types/follow-redirects": "1.14.4",
|
|
107
|
+
"@types/fs-extra": "8.1.5",
|
|
108
|
+
"@types/ink": "2.0.3",
|
|
109
|
+
"@types/ink-spinner": "3.0.4",
|
|
110
|
+
"@types/jest": "29.5.14",
|
|
111
|
+
"@types/json-schema": "7.0.15",
|
|
112
|
+
"@types/lodash.isequal": "4.5.8",
|
|
113
|
+
"@types/nock": "11.1.0",
|
|
114
|
+
"@types/node": "20.17.51",
|
|
115
|
+
"@types/node-fetch": "2.6.12",
|
|
116
|
+
"@types/parse-gitignore": "1.0.2",
|
|
117
|
+
"@types/react": "18.3.21",
|
|
118
|
+
"@types/scheduler": "^0.26.0",
|
|
119
|
+
"@types/semver": "7.7.0",
|
|
120
|
+
"@types/stream-buffers": "3.0.7",
|
|
121
|
+
"@types/uuid": "8.3.4",
|
|
122
|
+
"esbuild": "^0.25.4",
|
|
123
|
+
"esbuild-jest": "0.5.0",
|
|
124
|
+
"eslint": "^9.27.0",
|
|
125
|
+
"eslint-config-prettier": "^10.1.5",
|
|
126
|
+
"eslint-plugin-prettier": "^5.4.0",
|
|
127
|
+
"eslint-plugin-react": "7.37.5",
|
|
128
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
129
|
+
"jest": "^29.7.0",
|
|
130
|
+
"nock": "13.5.6",
|
|
131
|
+
"prettier": "2.8.8",
|
|
132
|
+
"react": "18.3.1",
|
|
133
|
+
"ts-jest": "29.3.4",
|
|
134
|
+
"tsc-files": "1.1.4",
|
|
135
|
+
"typescript": "5.4.5",
|
|
136
|
+
"typescript-eslint": "^8.32.1",
|
|
137
|
+
"utility-types": "3.11.0"
|
|
138
|
+
}
|
|
139
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Language, TerraformDependencyConstraint } from "@cdktn/commons";
|
|
2
|
+
export declare class CdktfConfig {
|
|
3
|
+
private cdktfConfigPath;
|
|
4
|
+
constructor(cdktfConfigPath: string);
|
|
5
|
+
private readCdktfConfig;
|
|
6
|
+
private writeCdktfConfig;
|
|
7
|
+
private getProperty;
|
|
8
|
+
get language(): Language;
|
|
9
|
+
get codeMakerOutput(): string;
|
|
10
|
+
get terraformProviders(): (TerraformDependencyConstraint | string)[];
|
|
11
|
+
get terraformModules(): (TerraformDependencyConstraint | string)[];
|
|
12
|
+
writeTerraformProviders(providers: (TerraformDependencyConstraint | string)[]): void;
|
|
13
|
+
get projectDirectory(): string;
|
|
14
|
+
static read(path?: string): CdktfConfig;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=cdktf-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdktf-config.d.ts","sourceRoot":"","sources":["cdktf-config.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EAGR,6BAA6B,EAC9B,MAAM,gBAAgB,CAAC;AAuBxB,qBAAa,WAAW;IACV,OAAO,CAAC,eAAe;gBAAf,eAAe,EAAE,MAAM;IAE3C,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,WAAW;IAKnB,IAAW,QAAQ,IAAI,QAAQ,CAa9B;IAED,IAAW,eAAe,IAAI,MAAM,CAEnC;IAED,IAAW,kBAAkB,IAAI,CAAC,6BAA6B,GAAG,MAAM,CAAC,EAAE,CAI1E;IAED,IAAW,gBAAgB,IAAI,CAAC,6BAA6B,GAAG,MAAM,CAAC,EAAE,CAIxE;IAEM,uBAAuB,CAC5B,SAAS,EAAE,CAAC,6BAA6B,GAAG,MAAM,CAAC,EAAE;IAOvD,IAAW,gBAAgB,IAAI,MAAM,CAEpC;WAEa,IAAI,CAAC,IAAI,GAAE,MAAsB,GAAG,WAAW;CAW9D"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.CdktfConfig = void 0;
|
|
30
|
+
// Copyright (c) HashiCorp, Inc
|
|
31
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
32
|
+
const fs = __importStar(require("fs"));
|
|
33
|
+
const commons_1 = require("@cdktn/commons");
|
|
34
|
+
const path_1 = __importDefault(require("path"));
|
|
35
|
+
const commons_2 = require("@cdktn/commons");
|
|
36
|
+
function findFileAboveCwd(file, rootPath = process.cwd()) {
|
|
37
|
+
const fullPath = path_1.default.resolve(rootPath, file);
|
|
38
|
+
if (fs.existsSync(fullPath)) {
|
|
39
|
+
return fullPath;
|
|
40
|
+
}
|
|
41
|
+
const parentDir = path_1.default.resolve(rootPath, "..");
|
|
42
|
+
if (fs.existsSync(parentDir) && parentDir !== rootPath) {
|
|
43
|
+
return findFileAboveCwd(file, parentDir);
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
// TODO: move this to @cdktn/commons
|
|
48
|
+
// tracked here https://github.com/hashicorp/terraform-cdk/issues/1814
|
|
49
|
+
class CdktfConfig {
|
|
50
|
+
constructor(cdktfConfigPath) {
|
|
51
|
+
this.cdktfConfigPath = cdktfConfigPath;
|
|
52
|
+
}
|
|
53
|
+
readCdktfConfig() {
|
|
54
|
+
const cdktfConfig = require(this.cdktfConfigPath);
|
|
55
|
+
if (typeof cdktfConfig !== "object" || cdktfConfig === null) {
|
|
56
|
+
throw commons_1.Errors.External("cdktf.json is malformed. The root must be a JSON object."); // TODO: define a schema and validate against it
|
|
57
|
+
}
|
|
58
|
+
return cdktfConfig;
|
|
59
|
+
}
|
|
60
|
+
writeCdktfConfig(cdktfConfig) {
|
|
61
|
+
const cdktfConfigString = JSON.stringify(cdktfConfig, null, 2);
|
|
62
|
+
fs.writeFileSync(this.cdktfConfigPath, cdktfConfigString);
|
|
63
|
+
}
|
|
64
|
+
getProperty(property) {
|
|
65
|
+
const cdktfConfig = this.readCdktfConfig();
|
|
66
|
+
return cdktfConfig[property] || commons_1.CONFIG_DEFAULTS[property];
|
|
67
|
+
}
|
|
68
|
+
get language() {
|
|
69
|
+
const rawLanguage = this.getProperty("language");
|
|
70
|
+
const language = Object.values(commons_1.Language).find((value) => value === rawLanguage);
|
|
71
|
+
if (!language)
|
|
72
|
+
throw commons_1.Errors.Usage(`${rawLanguage} is not a valid language. It must be one of ${Object.values(commons_1.Language)}`);
|
|
73
|
+
return language;
|
|
74
|
+
}
|
|
75
|
+
get codeMakerOutput() {
|
|
76
|
+
return this.getProperty("codeMakerOutput");
|
|
77
|
+
}
|
|
78
|
+
get terraformProviders() {
|
|
79
|
+
const providers = this.getProperty("terraformProviders");
|
|
80
|
+
if (!Array.isArray(providers))
|
|
81
|
+
return [];
|
|
82
|
+
return providers;
|
|
83
|
+
}
|
|
84
|
+
get terraformModules() {
|
|
85
|
+
const modules = this.getProperty("terraformModules");
|
|
86
|
+
if (!Array.isArray(modules))
|
|
87
|
+
return [];
|
|
88
|
+
return modules;
|
|
89
|
+
}
|
|
90
|
+
writeTerraformProviders(providers) {
|
|
91
|
+
const cdktfConfig = this.readCdktfConfig();
|
|
92
|
+
cdktfConfig.terraformProviders = providers;
|
|
93
|
+
this.writeCdktfConfig(cdktfConfig);
|
|
94
|
+
}
|
|
95
|
+
get projectDirectory() {
|
|
96
|
+
return path_1.default.dirname(this.cdktfConfigPath);
|
|
97
|
+
}
|
|
98
|
+
static read(path = process.cwd()) {
|
|
99
|
+
const cdktfConfigPath = findFileAboveCwd("cdktf.json", path);
|
|
100
|
+
if (!cdktfConfigPath) {
|
|
101
|
+
throw commons_1.Errors.External("Could not find cdktf.json. Make sure there is a cdktf.json file in the current directory or one of its parents.");
|
|
102
|
+
}
|
|
103
|
+
commons_2.logger.trace(`cdktf.json found at ${cdktfConfigPath}`);
|
|
104
|
+
return new CdktfConfig(cdktfConfigPath);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.CdktfConfig = CdktfConfig;
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrdGYtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrdGYtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyx1Q0FBeUI7QUFDekIsNENBS3dCO0FBQ3hCLGdEQUF3QjtBQUN4Qiw0Q0FBd0M7QUFFeEMsU0FBUyxnQkFBZ0IsQ0FDdkIsSUFBWSxFQUNaLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO0lBRXhCLE1BQU0sUUFBUSxHQUFHLGNBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3ZELE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxvQ0FBb0M7QUFDcEMsc0VBQXNFO0FBQ3RFLE1BQWEsV0FBVztJQUN0QixZQUFvQixlQUF1QjtRQUF2QixvQkFBZSxHQUFmLGVBQWUsQ0FBUTtJQUFHLENBQUM7SUFFdkMsZUFBZTtRQUNyQixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2xELElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxJQUFJLFdBQVcsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM1RCxNQUFNLGdCQUFNLENBQUMsUUFBUSxDQUNuQiwwREFBMEQsQ0FDM0QsQ0FBQyxDQUFDLGdEQUFnRDtRQUNyRCxDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFdBQW9DO1FBQzNELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9ELEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTyxXQUFXLENBQUMsUUFBZ0I7UUFDbEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzNDLE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFLLHlCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGtCQUFRLENBQUMsQ0FBQyxJQUFJLENBQzNDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUNqQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVE7WUFDWCxNQUFNLGdCQUFNLENBQUMsS0FBSyxDQUNoQixHQUFHLFdBQVcsK0NBQStDLE1BQU0sQ0FBQyxNQUFNLENBQ3hFLGtCQUFRLENBQ1QsRUFBRSxDQUNKLENBQUM7UUFFSixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBVyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDekMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU0sdUJBQXVCLENBQzVCLFNBQXFEO1FBRXJELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMzQyxXQUFXLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxjQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFlLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDN0MsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixNQUFNLGdCQUFNLENBQUMsUUFBUSxDQUNuQixpSEFBaUgsQ0FDbEgsQ0FBQztRQUNKLENBQUM7UUFDRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUV2RCxPQUFPLElBQUksV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQTdFRCxrQ0E2RUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQge1xuICBMYW5ndWFnZSxcbiAgRXJyb3JzLFxuICBDT05GSUdfREVGQVVMVFMsXG4gIFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50LFxufSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcblxuZnVuY3Rpb24gZmluZEZpbGVBYm92ZUN3ZChcbiAgZmlsZTogc3RyaW5nLFxuICByb290UGF0aCA9IHByb2Nlc3MuY3dkKCksXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgZnVsbFBhdGggPSBwYXRoLnJlc29sdmUocm9vdFBhdGgsIGZpbGUpO1xuICBpZiAoZnMuZXhpc3RzU3luYyhmdWxsUGF0aCkpIHtcbiAgICByZXR1cm4gZnVsbFBhdGg7XG4gIH1cblxuICBjb25zdCBwYXJlbnREaXIgPSBwYXRoLnJlc29sdmUocm9vdFBhdGgsIFwiLi5cIik7XG4gIGlmIChmcy5leGlzdHNTeW5jKHBhcmVudERpcikgJiYgcGFyZW50RGlyICE9PSByb290UGF0aCkge1xuICAgIHJldHVybiBmaW5kRmlsZUFib3ZlQ3dkKGZpbGUsIHBhcmVudERpcik7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLy8gVE9ETzogbW92ZSB0aGlzIHRvIEBjZGt0bi9jb21tb25zXG4vLyB0cmFja2VkIGhlcmUgaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2lzc3Vlcy8xODE0XG5leHBvcnQgY2xhc3MgQ2RrdGZDb25maWcge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNka3RmQ29uZmlnUGF0aDogc3RyaW5nKSB7fVxuXG4gIHByaXZhdGUgcmVhZENka3RmQ29uZmlnKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICBjb25zdCBjZGt0ZkNvbmZpZyA9IHJlcXVpcmUodGhpcy5jZGt0ZkNvbmZpZ1BhdGgpO1xuICAgIGlmICh0eXBlb2YgY2RrdGZDb25maWcgIT09IFwib2JqZWN0XCIgfHwgY2RrdGZDb25maWcgPT09IG51bGwpIHtcbiAgICAgIHRocm93IEVycm9ycy5FeHRlcm5hbChcbiAgICAgICAgXCJjZGt0Zi5qc29uIGlzIG1hbGZvcm1lZC4gVGhlIHJvb3QgbXVzdCBiZSBhIEpTT04gb2JqZWN0LlwiLFxuICAgICAgKTsgLy8gVE9ETzogZGVmaW5lIGEgc2NoZW1hIGFuZCB2YWxpZGF0ZSBhZ2FpbnN0IGl0XG4gICAgfVxuICAgIHJldHVybiBjZGt0ZkNvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgd3JpdGVDZGt0ZkNvbmZpZyhjZGt0ZkNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHtcbiAgICBjb25zdCBjZGt0ZkNvbmZpZ1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KGNka3RmQ29uZmlnLCBudWxsLCAyKTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuY2RrdGZDb25maWdQYXRoLCBjZGt0ZkNvbmZpZ1N0cmluZyk7XG4gIH1cblxuICBwcml2YXRlIGdldFByb3BlcnR5KHByb3BlcnR5OiBzdHJpbmcpOiB1bmtub3duIHtcbiAgICBjb25zdCBjZGt0ZkNvbmZpZyA9IHRoaXMucmVhZENka3RmQ29uZmlnKCk7XG4gICAgcmV0dXJuIGNka3RmQ29uZmlnW3Byb3BlcnR5XSB8fCAoQ09ORklHX0RFRkFVTFRTIGFzIGFueSlbcHJvcGVydHldO1xuICB9XG5cbiAgcHVibGljIGdldCBsYW5ndWFnZSgpOiBMYW5ndWFnZSB7XG4gICAgY29uc3QgcmF3TGFuZ3VhZ2UgPSB0aGlzLmdldFByb3BlcnR5KFwibGFuZ3VhZ2VcIik7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBPYmplY3QudmFsdWVzKExhbmd1YWdlKS5maW5kKFxuICAgICAgKHZhbHVlKSA9PiB2YWx1ZSA9PT0gcmF3TGFuZ3VhZ2UsXG4gICAgKTtcbiAgICBpZiAoIWxhbmd1YWdlKVxuICAgICAgdGhyb3cgRXJyb3JzLlVzYWdlKFxuICAgICAgICBgJHtyYXdMYW5ndWFnZX0gaXMgbm90IGEgdmFsaWQgbGFuZ3VhZ2UuIEl0IG11c3QgYmUgb25lIG9mICR7T2JqZWN0LnZhbHVlcyhcbiAgICAgICAgICBMYW5ndWFnZSxcbiAgICAgICAgKX1gLFxuICAgICAgKTtcblxuICAgIHJldHVybiBsYW5ndWFnZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29kZU1ha2VyT3V0cHV0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHkoXCJjb2RlTWFrZXJPdXRwdXRcIikgYXMgc3RyaW5nO1xuICB9XG5cbiAgcHVibGljIGdldCB0ZXJyYWZvcm1Qcm92aWRlcnMoKTogKFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHwgc3RyaW5nKVtdIHtcbiAgICBjb25zdCBwcm92aWRlcnMgPSB0aGlzLmdldFByb3BlcnR5KFwidGVycmFmb3JtUHJvdmlkZXJzXCIpO1xuICAgIGlmICghQXJyYXkuaXNBcnJheShwcm92aWRlcnMpKSByZXR1cm4gW107XG4gICAgcmV0dXJuIHByb3ZpZGVycztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGVycmFmb3JtTW9kdWxlcygpOiAoVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQgfCBzdHJpbmcpW10ge1xuICAgIGNvbnN0IG1vZHVsZXMgPSB0aGlzLmdldFByb3BlcnR5KFwidGVycmFmb3JtTW9kdWxlc1wiKTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobW9kdWxlcykpIHJldHVybiBbXTtcbiAgICByZXR1cm4gbW9kdWxlcztcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVRlcnJhZm9ybVByb3ZpZGVycyhcbiAgICBwcm92aWRlcnM6IChUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB8IHN0cmluZylbXSxcbiAgKSB7XG4gICAgY29uc3QgY2RrdGZDb25maWcgPSB0aGlzLnJlYWRDZGt0ZkNvbmZpZygpO1xuICAgIGNka3RmQ29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycyA9IHByb3ZpZGVycztcbiAgICB0aGlzLndyaXRlQ2RrdGZDb25maWcoY2RrdGZDb25maWcpO1xuICB9XG5cbiAgcHVibGljIGdldCBwcm9qZWN0RGlyZWN0b3J5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhdGguZGlybmFtZSh0aGlzLmNka3RmQ29uZmlnUGF0aCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlYWQocGF0aDogc3RyaW5nID0gcHJvY2Vzcy5jd2QoKSk6IENka3RmQ29uZmlnIHtcbiAgICBjb25zdCBjZGt0ZkNvbmZpZ1BhdGggPSBmaW5kRmlsZUFib3ZlQ3dkKFwiY2RrdGYuanNvblwiLCBwYXRoKTtcbiAgICBpZiAoIWNka3RmQ29uZmlnUGF0aCkge1xuICAgICAgdGhyb3cgRXJyb3JzLkV4dGVybmFsKFxuICAgICAgICBcIkNvdWxkIG5vdCBmaW5kIGNka3RmLmpzb24uIE1ha2Ugc3VyZSB0aGVyZSBpcyBhIGNka3RmLmpzb24gZmlsZSBpbiB0aGUgY3VycmVudCBkaXJlY3Rvcnkgb3Igb25lIG9mIGl0cyBwYXJlbnRzLlwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgbG9nZ2VyLnRyYWNlKGBjZGt0Zi5qc29uIGZvdW5kIGF0ICR7Y2RrdGZDb25maWdQYXRofWApO1xuXG4gICAgcmV0dXJuIG5ldyBDZGt0ZkNvbmZpZyhjZGt0ZkNvbmZpZ1BhdGgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { ProjectEvent, LogMessage } from "./cdktf-project";
|
|
6
|
+
/**
|
|
7
|
+
* This class is used to buffer events while the user is being asked for input. It is solely consumed by the CdktfProject class,
|
|
8
|
+
* and is mostly created as a separation of concerns to keep the CdktfProject class as clean as possible.
|
|
9
|
+
*/
|
|
10
|
+
export declare class CdktfProjectIOHandler {
|
|
11
|
+
private waitingForUserInput;
|
|
12
|
+
private eventBuffer;
|
|
13
|
+
awaitUserInput(): void;
|
|
14
|
+
filterUserInputEventsFromBuffer(): void;
|
|
15
|
+
resumeAfterUserInput(stackName: string): void;
|
|
16
|
+
isWaitingForUserInput(): boolean;
|
|
17
|
+
pushEvent(event: ProjectEvent): void;
|
|
18
|
+
bufferWhileAwaitingUserInput(cb?: (msg: LogMessage) => void): ((msg: LogMessage) => void) | undefined;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=cdktf-project-io-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdktf-project-io-handler.d.ts","sourceRoot":"","sources":["cdktf-project-io-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,YAAY,EAGZ,UAAU,EACX,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,qBAAa,qBAAqB;IAIhC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,WAAW,CAA2B;IAEvC,cAAc;IAId,+BAA+B;IAS/B,oBAAoB,CAAC,SAAS,EAAE,MAAM;IA0CtC,qBAAqB;IAIrB,SAAS,CAAC,KAAK,EAAE,YAAY;IAI7B,4BAA4B,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,UAKnD,UAAU;CAY1B"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) HashiCorp, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.CdktfProjectIOHandler = void 0;
|
|
8
|
+
const cdktf_project_1 = require("./cdktf-project");
|
|
9
|
+
/**
|
|
10
|
+
* This class is used to buffer events while the user is being asked for input. It is solely consumed by the CdktfProject class,
|
|
11
|
+
* and is mostly created as a separation of concerns to keep the CdktfProject class as clean as possible.
|
|
12
|
+
*/
|
|
13
|
+
class CdktfProjectIOHandler {
|
|
14
|
+
constructor() {
|
|
15
|
+
// Pauses all progress / status events from being forwarded to the user
|
|
16
|
+
// If set from true to false, the events will be sent through the channels they came in
|
|
17
|
+
// (until a waiting for approval event is sent)
|
|
18
|
+
this.waitingForUserInput = false;
|
|
19
|
+
this.eventBuffer = [];
|
|
20
|
+
}
|
|
21
|
+
awaitUserInput() {
|
|
22
|
+
this.waitingForUserInput = true;
|
|
23
|
+
}
|
|
24
|
+
filterUserInputEventsFromBuffer() {
|
|
25
|
+
this.eventBuffer = this.eventBuffer.filter((event) => event.type === "projectUpdate"
|
|
26
|
+
? !(0, cdktf_project_1.isWaitingForUserInputUpdate)(event.value) // we want to filter out the waiting for approval events
|
|
27
|
+
: true);
|
|
28
|
+
}
|
|
29
|
+
resumeAfterUserInput(stackName) {
|
|
30
|
+
// remove waiting for approval event that should be resumed
|
|
31
|
+
this.eventBuffer = this.eventBuffer.filter((event) => !(event.type === "projectUpdate" &&
|
|
32
|
+
(0, cdktf_project_1.isWaitingForUserInputUpdate)(event.value) &&
|
|
33
|
+
event.value.stackName === stackName));
|
|
34
|
+
if (this.eventBuffer.length &&
|
|
35
|
+
this.eventBuffer[0].type === "projectUpdate" &&
|
|
36
|
+
(0, cdktf_project_1.isWaitingForUserInputUpdate)(this.eventBuffer[0].value)) {
|
|
37
|
+
// we are still waiting on approval for the current stack
|
|
38
|
+
// we removed a future "waiting for approval" event for some other stack
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// We first need to flush all events, we can not resume if there is a new waiting for approval update
|
|
42
|
+
let event = this.eventBuffer.shift();
|
|
43
|
+
while (event) {
|
|
44
|
+
if (event.type === "projectUpdate") {
|
|
45
|
+
event.cb(event.value);
|
|
46
|
+
if ((0, cdktf_project_1.isWaitingForUserInputUpdate)(event.value)) {
|
|
47
|
+
// We have to wait for user input again, therefore we can not resume
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (event.type === "logMessage") {
|
|
52
|
+
event.cb(event.value);
|
|
53
|
+
}
|
|
54
|
+
event = this.eventBuffer.shift();
|
|
55
|
+
}
|
|
56
|
+
// If we reach this point there was no waiting for user input event, so we can safely resume
|
|
57
|
+
this.waitingForUserInput = false;
|
|
58
|
+
}
|
|
59
|
+
isWaitingForUserInput() {
|
|
60
|
+
return this.waitingForUserInput;
|
|
61
|
+
}
|
|
62
|
+
pushEvent(event) {
|
|
63
|
+
this.eventBuffer.push(event);
|
|
64
|
+
}
|
|
65
|
+
bufferWhileAwaitingUserInput(cb) {
|
|
66
|
+
if (!cb) {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
return (msg) => {
|
|
70
|
+
if (this.waitingForUserInput) {
|
|
71
|
+
this.eventBuffer.push({
|
|
72
|
+
cb,
|
|
73
|
+
value: msg,
|
|
74
|
+
type: "logMessage",
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
cb(msg);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.CdktfProjectIOHandler = CdktfProjectIOHandler;
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrdGYtcHJvamVjdC1pby1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrdGYtcHJvamVjdC1pby1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUVILG1EQUt5QjtBQUV6Qjs7O0dBR0c7QUFDSCxNQUFhLHFCQUFxQjtJQUFsQztRQUNFLHVFQUF1RTtRQUN2RSx1RkFBdUY7UUFDdkYsK0NBQStDO1FBQ3ZDLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUM1QixnQkFBVyxHQUF3QixFQUFFLENBQUM7SUFrRmhELENBQUM7SUFoRlEsY0FBYztRQUNuQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFTSwrQkFBK0I7UUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FDeEMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNSLEtBQUssQ0FBQyxJQUFJLEtBQUssZUFBZTtZQUM1QixDQUFDLENBQUMsQ0FBQyxJQUFBLDJDQUEyQixFQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyx3REFBd0Q7WUFDcEcsQ0FBQyxDQUFDLElBQUksQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVNLG9CQUFvQixDQUFDLFNBQWlCO1FBQzNDLDJEQUEyRDtRQUMzRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUN4QyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ1IsQ0FBQyxDQUNDLEtBQUssQ0FBQyxJQUFJLEtBQUssZUFBZTtZQUM5QixJQUFBLDJDQUEyQixFQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDdkMsS0FBSyxDQUFDLEtBQTBCLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FDMUQsQ0FDSixDQUFDO1FBRUYsSUFDRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU07WUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZUFBZTtZQUM1QyxJQUFBLDJDQUEyQixFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQ3RELENBQUM7WUFDRCx5REFBeUQ7WUFDekQsd0VBQXdFO1lBQ3hFLE9BQU87UUFDVCxDQUFDO1FBRUQscUdBQXFHO1FBQ3JHLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxlQUFlLEVBQUUsQ0FBQztnQkFDbkMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksSUFBQSwyQ0FBMkIsRUFBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDN0Msb0VBQW9FO29CQUNwRSxPQUFPO2dCQUNULENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRSxDQUFDO2dCQUNoQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixDQUFDO1lBRUQsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkMsQ0FBQztRQUVELDRGQUE0RjtRQUM1RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFtQjtRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sNEJBQTRCLENBQUMsRUFBOEI7UUFDaEUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFlLEVBQUUsRUFBRTtZQUN6QixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztvQkFDcEIsRUFBRTtvQkFDRixLQUFLLEVBQUUsR0FBRztvQkFDVixJQUFJLEVBQUUsWUFBWTtpQkFDbkIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNWLENBQUM7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF2RkQsc0RBdUZDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQge1xuICBQcm9qZWN0RXZlbnQsXG4gIGlzV2FpdGluZ0ZvclVzZXJJbnB1dFVwZGF0ZSxcbiAgTXVsdGlTdGFja1VwZGF0ZSxcbiAgTG9nTWVzc2FnZSxcbn0gZnJvbSBcIi4vY2RrdGYtcHJvamVjdFwiO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBidWZmZXIgZXZlbnRzIHdoaWxlIHRoZSB1c2VyIGlzIGJlaW5nIGFza2VkIGZvciBpbnB1dC4gSXQgaXMgc29sZWx5IGNvbnN1bWVkIGJ5IHRoZSBDZGt0ZlByb2plY3QgY2xhc3MsXG4gKiBhbmQgaXMgbW9zdGx5IGNyZWF0ZWQgYXMgYSBzZXBhcmF0aW9uIG9mIGNvbmNlcm5zIHRvIGtlZXAgdGhlIENka3RmUHJvamVjdCBjbGFzcyBhcyBjbGVhbiBhcyBwb3NzaWJsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENka3RmUHJvamVjdElPSGFuZGxlciB7XG4gIC8vIFBhdXNlcyBhbGwgcHJvZ3Jlc3MgLyBzdGF0dXMgZXZlbnRzIGZyb20gYmVpbmcgZm9yd2FyZGVkIHRvIHRoZSB1c2VyXG4gIC8vIElmIHNldCBmcm9tIHRydWUgdG8gZmFsc2UsIHRoZSBldmVudHMgd2lsbCBiZSBzZW50IHRocm91Z2ggdGhlIGNoYW5uZWxzIHRoZXkgY2FtZSBpblxuICAvLyAodW50aWwgYSB3YWl0aW5nIGZvciBhcHByb3ZhbCBldmVudCBpcyBzZW50KVxuICBwcml2YXRlIHdhaXRpbmdGb3JVc2VySW5wdXQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBldmVudEJ1ZmZlcjogQXJyYXk8UHJvamVjdEV2ZW50PiA9IFtdO1xuXG4gIHB1YmxpYyBhd2FpdFVzZXJJbnB1dCgpIHtcbiAgICB0aGlzLndhaXRpbmdGb3JVc2VySW5wdXQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGZpbHRlclVzZXJJbnB1dEV2ZW50c0Zyb21CdWZmZXIoKSB7XG4gICAgdGhpcy5ldmVudEJ1ZmZlciA9IHRoaXMuZXZlbnRCdWZmZXIuZmlsdGVyKFxuICAgICAgKGV2ZW50KSA9PlxuICAgICAgICBldmVudC50eXBlID09PSBcInByb2plY3RVcGRhdGVcIlxuICAgICAgICAgID8gIWlzV2FpdGluZ0ZvclVzZXJJbnB1dFVwZGF0ZShldmVudC52YWx1ZSkgLy8gd2Ugd2FudCB0byBmaWx0ZXIgb3V0IHRoZSB3YWl0aW5nIGZvciBhcHByb3ZhbCBldmVudHNcbiAgICAgICAgICA6IHRydWUsIC8vIHdlIHdhbnQgYWxsIG90aGVyIHR5cGVzXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZXN1bWVBZnRlclVzZXJJbnB1dChzdGFja05hbWU6IHN0cmluZykge1xuICAgIC8vIHJlbW92ZSB3YWl0aW5nIGZvciBhcHByb3ZhbCBldmVudCB0aGF0IHNob3VsZCBiZSByZXN1bWVkXG4gICAgdGhpcy5ldmVudEJ1ZmZlciA9IHRoaXMuZXZlbnRCdWZmZXIuZmlsdGVyKFxuICAgICAgKGV2ZW50KSA9PlxuICAgICAgICAhKFxuICAgICAgICAgIGV2ZW50LnR5cGUgPT09IFwicHJvamVjdFVwZGF0ZVwiICYmXG4gICAgICAgICAgaXNXYWl0aW5nRm9yVXNlcklucHV0VXBkYXRlKGV2ZW50LnZhbHVlKSAmJlxuICAgICAgICAgIChldmVudC52YWx1ZSBhcyBNdWx0aVN0YWNrVXBkYXRlKS5zdGFja05hbWUgPT09IHN0YWNrTmFtZVxuICAgICAgICApLFxuICAgICk7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmV2ZW50QnVmZmVyLmxlbmd0aCAmJlxuICAgICAgdGhpcy5ldmVudEJ1ZmZlclswXS50eXBlID09PSBcInByb2plY3RVcGRhdGVcIiAmJlxuICAgICAgaXNXYWl0aW5nRm9yVXNlcklucHV0VXBkYXRlKHRoaXMuZXZlbnRCdWZmZXJbMF0udmFsdWUpXG4gICAgKSB7XG4gICAgICAvLyB3ZSBhcmUgc3RpbGwgd2FpdGluZyBvbiBhcHByb3ZhbCBmb3IgdGhlIGN1cnJlbnQgc3RhY2tcbiAgICAgIC8vIHdlIHJlbW92ZWQgYSBmdXR1cmUgXCJ3YWl0aW5nIGZvciBhcHByb3ZhbFwiIGV2ZW50IGZvciBzb21lIG90aGVyIHN0YWNrXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gV2UgZmlyc3QgbmVlZCB0byBmbHVzaCBhbGwgZXZlbnRzLCB3ZSBjYW4gbm90IHJlc3VtZSBpZiB0aGVyZSBpcyBhIG5ldyB3YWl0aW5nIGZvciBhcHByb3ZhbCB1cGRhdGVcbiAgICBsZXQgZXZlbnQgPSB0aGlzLmV2ZW50QnVmZmVyLnNoaWZ0KCk7XG4gICAgd2hpbGUgKGV2ZW50KSB7XG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJwcm9qZWN0VXBkYXRlXCIpIHtcbiAgICAgICAgZXZlbnQuY2IoZXZlbnQudmFsdWUpO1xuICAgICAgICBpZiAoaXNXYWl0aW5nRm9yVXNlcklucHV0VXBkYXRlKGV2ZW50LnZhbHVlKSkge1xuICAgICAgICAgIC8vIFdlIGhhdmUgdG8gd2FpdCBmb3IgdXNlciBpbnB1dCBhZ2FpbiwgdGhlcmVmb3JlIHdlIGNhbiBub3QgcmVzdW1lXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJsb2dNZXNzYWdlXCIpIHtcbiAgICAgICAgZXZlbnQuY2IoZXZlbnQudmFsdWUpO1xuICAgICAgfVxuXG4gICAgICBldmVudCA9IHRoaXMuZXZlbnRCdWZmZXIuc2hpZnQoKTtcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSByZWFjaCB0aGlzIHBvaW50IHRoZXJlIHdhcyBubyB3YWl0aW5nIGZvciB1c2VyIGlucHV0IGV2ZW50LCBzbyB3ZSBjYW4gc2FmZWx5IHJlc3VtZVxuICAgIHRoaXMud2FpdGluZ0ZvclVzZXJJbnB1dCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGlzV2FpdGluZ0ZvclVzZXJJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy53YWl0aW5nRm9yVXNlcklucHV0O1xuICB9XG5cbiAgcHVibGljIHB1c2hFdmVudChldmVudDogUHJvamVjdEV2ZW50KSB7XG4gICAgdGhpcy5ldmVudEJ1ZmZlci5wdXNoKGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBidWZmZXJXaGlsZUF3YWl0aW5nVXNlcklucHV0KGNiPzogKG1zZzogTG9nTWVzc2FnZSkgPT4gdm9pZCkge1xuICAgIGlmICghY2IpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIChtc2c6IExvZ01lc3NhZ2UpID0+IHtcbiAgICAgIGlmICh0aGlzLndhaXRpbmdGb3JVc2VySW5wdXQpIHtcbiAgICAgICAgdGhpcy5ldmVudEJ1ZmZlci5wdXNoKHtcbiAgICAgICAgICBjYixcbiAgICAgICAgICB2YWx1ZTogbXNnLFxuICAgICAgICAgIHR5cGU6IFwibG9nTWVzc2FnZVwiLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNiKG1zZyk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { SynthesizedStack, SynthOrigin } from "./synth-stack";
|
|
2
|
+
import { CdktfStack, StackUpdate } from "./cdktf-stack";
|
|
3
|
+
import { NestedTerraformOutputs } from "./output";
|
|
4
|
+
type MultiStackApprovalUpdate = {
|
|
5
|
+
type: "waiting for approval";
|
|
6
|
+
stackName: string;
|
|
7
|
+
approve: () => void;
|
|
8
|
+
dismiss: () => void;
|
|
9
|
+
stop: () => void;
|
|
10
|
+
};
|
|
11
|
+
type MultiStackSentinelOverrideUpdate = {
|
|
12
|
+
type: "waiting for sentinel override";
|
|
13
|
+
stackName: string;
|
|
14
|
+
override: () => void;
|
|
15
|
+
reject: () => void;
|
|
16
|
+
};
|
|
17
|
+
export type MultiStackUpdate = MultiStackApprovalUpdate | MultiStackSentinelOverrideUpdate;
|
|
18
|
+
export type ProjectUpdate = {
|
|
19
|
+
type: "synthesizing";
|
|
20
|
+
} | {
|
|
21
|
+
type: "synthesized";
|
|
22
|
+
stacks: SynthesizedStack[];
|
|
23
|
+
errorMessage?: string;
|
|
24
|
+
} | StackUpdate | MultiStackUpdate;
|
|
25
|
+
export type SingleStackOptions = {
|
|
26
|
+
stackName?: string;
|
|
27
|
+
};
|
|
28
|
+
export type MultipleStackOptions = {
|
|
29
|
+
stackNames?: string[];
|
|
30
|
+
};
|
|
31
|
+
export type SkipSynthOptions = {
|
|
32
|
+
skipSynth?: boolean;
|
|
33
|
+
};
|
|
34
|
+
export type SkipProviderLockOptions = {
|
|
35
|
+
skipProviderLock?: boolean;
|
|
36
|
+
};
|
|
37
|
+
export type FetchOutputOptions = SkipSynthOptions & SkipProviderLockOptions & MultipleStackOptions;
|
|
38
|
+
export type AutoApproveOptions = {
|
|
39
|
+
autoApprove?: boolean;
|
|
40
|
+
};
|
|
41
|
+
export type DiffOptions = SingleStackOptions & SkipProviderLockOptions & SkipSynthOptions & {
|
|
42
|
+
refreshOnly?: boolean;
|
|
43
|
+
terraformParallelism?: number;
|
|
44
|
+
vars?: string[];
|
|
45
|
+
varFiles?: string[];
|
|
46
|
+
noColor?: boolean;
|
|
47
|
+
migrateState?: boolean;
|
|
48
|
+
};
|
|
49
|
+
export type MutationOptions = MultipleStackOptions & SkipProviderLockOptions & SkipSynthOptions & AutoApproveOptions & {
|
|
50
|
+
refreshOnly?: boolean;
|
|
51
|
+
ignoreMissingStackDependencies?: boolean;
|
|
52
|
+
parallelism?: number;
|
|
53
|
+
terraformParallelism?: number;
|
|
54
|
+
vars?: string[];
|
|
55
|
+
varFiles?: string[];
|
|
56
|
+
noColor?: boolean;
|
|
57
|
+
migrateState?: boolean;
|
|
58
|
+
};
|
|
59
|
+
export type LogMessage = {
|
|
60
|
+
stackName: string;
|
|
61
|
+
messageWithConstructPath?: string;
|
|
62
|
+
message: string;
|
|
63
|
+
};
|
|
64
|
+
type Buffered<T, V> = {
|
|
65
|
+
cb: (item: T) => void;
|
|
66
|
+
value: T;
|
|
67
|
+
type: V;
|
|
68
|
+
};
|
|
69
|
+
export declare function isWaitingForUserInputUpdate(update: ProjectUpdate | StackUpdate): boolean;
|
|
70
|
+
export type ProjectEvent = Buffered<ProjectUpdate, "projectUpdate"> | Buffered<LogMessage, "logMessage">;
|
|
71
|
+
export type CdktfProjectOptions = {
|
|
72
|
+
synthCommand: string;
|
|
73
|
+
outDir: string;
|
|
74
|
+
onUpdate: (update: ProjectUpdate) => void;
|
|
75
|
+
onLog?: (log: LogMessage) => void;
|
|
76
|
+
workingDirectory?: string;
|
|
77
|
+
synthOrigin?: SynthOrigin;
|
|
78
|
+
hcl?: boolean;
|
|
79
|
+
};
|
|
80
|
+
export declare class CdktfProject {
|
|
81
|
+
stacks?: SynthesizedStack[];
|
|
82
|
+
hardAbort: () => void;
|
|
83
|
+
private synthCommand;
|
|
84
|
+
private outDir;
|
|
85
|
+
private workingDirectory;
|
|
86
|
+
private onUpdate;
|
|
87
|
+
private onLog?;
|
|
88
|
+
private abortSignal;
|
|
89
|
+
private synthOrigin?;
|
|
90
|
+
private hcl?;
|
|
91
|
+
stacksToRun: CdktfStack[];
|
|
92
|
+
private stopAllStacksThatCanNotRunWithout;
|
|
93
|
+
private ioHandler;
|
|
94
|
+
constructor({ synthCommand, outDir, onUpdate, onLog, workingDirectory, synthOrigin, hcl, }: CdktfProjectOptions);
|
|
95
|
+
private stopAllStacks;
|
|
96
|
+
private handleUserUpdate;
|
|
97
|
+
private handleUserInputProcess;
|
|
98
|
+
getStackExecutor(stack: SynthesizedStack, opts?: AutoApproveOptions): CdktfStack;
|
|
99
|
+
get outputsByConstructId(): NestedTerraformOutputs;
|
|
100
|
+
synth(noColor?: boolean): Promise<SynthesizedStack[]>;
|
|
101
|
+
readSynthesizedStacks(): Promise<SynthesizedStack[]>;
|
|
102
|
+
diff(opts?: DiffOptions): Promise<void>;
|
|
103
|
+
private execute;
|
|
104
|
+
deploy(opts?: MutationOptions): Promise<void>;
|
|
105
|
+
destroy(opts?: MutationOptions): Promise<void>;
|
|
106
|
+
projectTelemetry(command: string, payload: any): Promise<void>;
|
|
107
|
+
fetchOutputs(opts: FetchOutputOptions): Promise<NestedTerraformOutputs>;
|
|
108
|
+
private initializeStacksToRunInSerial;
|
|
109
|
+
}
|
|
110
|
+
export {};
|
|
111
|
+
//# sourceMappingURL=cdktf-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdktf-project.d.ts","sourceRoot":"","sources":["cdktf-project.ts"],"names":[],"mappings":"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"}
|