@cdktn/cli-core 0.22.0-pre.2
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 +84 -0
- package/src/lib/dependencies/dependency-manager.d.ts.map +1 -0
- package/src/lib/dependencies/dependency-manager.js +365 -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 +574 -0
- package/src/lib/dependencies/prebuilt-providers.d.ts +18 -0
- package/src/lib/dependencies/prebuilt-providers.d.ts.map +1 -0
- package/src/lib/dependencies/prebuilt-providers.js +204 -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
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DeployingResource, TerraformOutput } from "./models/terraform";
|
|
2
|
+
export type Outputs = {
|
|
3
|
+
[key: string]: TerraformOutput;
|
|
4
|
+
};
|
|
5
|
+
export type OutputIdMapLeaf = {
|
|
6
|
+
[constructId: string]: string;
|
|
7
|
+
};
|
|
8
|
+
export type OutputIdMapNode = {
|
|
9
|
+
[stackOrConstructId: string]: OutputIdMap;
|
|
10
|
+
};
|
|
11
|
+
export type OutputIdMap = OutputIdMapLeaf | OutputIdMapNode;
|
|
12
|
+
export declare function saveOutputs(filePath: string, outputs: NestedTerraformOutputs, includeSensitiveOutputs: boolean): Promise<void>;
|
|
13
|
+
export declare function normalizeOutputPath(filePath: string): string;
|
|
14
|
+
export type NestedTerraformOutputs = {
|
|
15
|
+
[key: string]: TerraformOutput;
|
|
16
|
+
} | {
|
|
17
|
+
[key: string]: NestedTerraformOutputs;
|
|
18
|
+
};
|
|
19
|
+
export declare const parseOutput: (str: string) => DeployingResource[];
|
|
20
|
+
export declare const getConstructIdsForOutputs: (stackContent: Record<string, any>, outputs: {
|
|
21
|
+
[key: string]: TerraformOutput;
|
|
22
|
+
}) => NestedTerraformOutputs;
|
|
23
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["output.ts"],"names":[],"mappings":"AASA,OAAO,EACL,iBAAiB,EAGjB,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,OAAO,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,CAAC;AACzD,MAAM,MAAM,eAAe,GAAG;IAAE,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAChE,MAAM,MAAM,eAAe,GAAG;IAAE,CAAC,kBAAkB,EAAE,MAAM,GAAG,WAAW,CAAA;CAAE,CAAC;AAC5E,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,eAAe,CAAC;AAmB5D,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,sBAAsB,EAC/B,uBAAuB,EAAE,OAAO,iBAUjC;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,UAInD;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,GAClC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAAA;CAAE,CAAC;AAoH9C,eAAO,MAAM,WAAW,QAAS,MAAM,KAAG,iBAAiB,EAwB1D,CAAC;AAcF,eAAO,MAAM,yBAAyB,iBACtB,OAAO,MAAM,EAAE,GAAG,CAAC,WACxB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,KAC1C,sBA0BF,CAAC"}
|
|
@@ -0,0 +1,211 @@
|
|
|
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.getConstructIdsForOutputs = exports.parseOutput = exports.normalizeOutputPath = exports.saveOutputs = void 0;
|
|
30
|
+
// Copyright (c) HashiCorp, Inc
|
|
31
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
32
|
+
const z = __importStar(require("zod"));
|
|
33
|
+
const fs = __importStar(require("fs"));
|
|
34
|
+
const path = __importStar(require("path"));
|
|
35
|
+
const strip_ansi_1 = __importDefault(require("strip-ansi"));
|
|
36
|
+
const commons_1 = require("@cdktn/commons");
|
|
37
|
+
const schema_1 = require("./models/schema");
|
|
38
|
+
const terraform_1 = require("./models/terraform");
|
|
39
|
+
function unpackTerraformOutput(outputs, includeSensitiveOutputs) {
|
|
40
|
+
return Object.entries(outputs).reduce((acc, [key, entry]) => ({
|
|
41
|
+
...acc,
|
|
42
|
+
[key]: (0, terraform_1.isTerraformOutput)(entry)
|
|
43
|
+
? !entry.sensitive || includeSensitiveOutputs
|
|
44
|
+
? entry.value
|
|
45
|
+
: undefined
|
|
46
|
+
: unpackTerraformOutput(entry, includeSensitiveOutputs),
|
|
47
|
+
}), {});
|
|
48
|
+
}
|
|
49
|
+
async function saveOutputs(filePath, outputs, includeSensitiveOutputs) {
|
|
50
|
+
fs.writeFileSync(filePath, JSON.stringify(unpackTerraformOutput(outputs, includeSensitiveOutputs), null, 2));
|
|
51
|
+
}
|
|
52
|
+
exports.saveOutputs = saveOutputs;
|
|
53
|
+
function normalizeOutputPath(filePath) {
|
|
54
|
+
return path.isAbsolute(filePath)
|
|
55
|
+
? filePath
|
|
56
|
+
: path.join(process.cwd(), filePath);
|
|
57
|
+
}
|
|
58
|
+
exports.normalizeOutputPath = normalizeOutputPath;
|
|
59
|
+
const mapActionToState = (action, done) => {
|
|
60
|
+
switch (action) {
|
|
61
|
+
case "create":
|
|
62
|
+
case "update":
|
|
63
|
+
return done
|
|
64
|
+
? terraform_1.DeployingResourceApplyState.CREATED
|
|
65
|
+
: terraform_1.DeployingResourceApplyState.CREATING;
|
|
66
|
+
case "delete":
|
|
67
|
+
return done
|
|
68
|
+
? terraform_1.DeployingResourceApplyState.DESTROYED
|
|
69
|
+
: terraform_1.DeployingResourceApplyState.DESTROYING;
|
|
70
|
+
default:
|
|
71
|
+
return terraform_1.DeployingResourceApplyState.WAITING;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
// This is deprecated and will be removed in a future version.
|
|
75
|
+
const parseJsonOutputLine = (line) => {
|
|
76
|
+
let json, message;
|
|
77
|
+
try {
|
|
78
|
+
json = JSON.parse(line);
|
|
79
|
+
}
|
|
80
|
+
catch (_a) {
|
|
81
|
+
commons_1.logger.trace(`Could not parse line as JSON: ${line}`);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
message = schema_1.schema.parse(json);
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
if (err instanceof z.ZodError) {
|
|
89
|
+
commons_1.logger.trace(`Error parsing line into schema: ${JSON.stringify(err.errors)} => ${line}`);
|
|
90
|
+
}
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
switch (message.type) {
|
|
94
|
+
case "apply_start":
|
|
95
|
+
case "apply_progress":
|
|
96
|
+
return {
|
|
97
|
+
id: message.hook.resource.resource,
|
|
98
|
+
applyState: mapActionToState(message.hook.action, false),
|
|
99
|
+
};
|
|
100
|
+
case "apply_complete":
|
|
101
|
+
return {
|
|
102
|
+
id: message.hook.resource.resource,
|
|
103
|
+
applyState: mapActionToState(message.hook.action, true),
|
|
104
|
+
};
|
|
105
|
+
default:
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
const parseTextOutputLine = (line) => {
|
|
110
|
+
if (/^Outputs:/.test(line)) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (/^Plan:/.test(line)) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
if (/^data\..*/.test(line)) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const resourceMatch = line.match(/^([a-zA-Z_][a-zA-Z\d_\-.]*):/);
|
|
120
|
+
let applyState;
|
|
121
|
+
switch (true) {
|
|
122
|
+
case /Creating.../.test(line):
|
|
123
|
+
case /Still creating.../.test(line):
|
|
124
|
+
applyState = terraform_1.DeployingResourceApplyState.CREATING;
|
|
125
|
+
break;
|
|
126
|
+
case /Creation complete/.test(line):
|
|
127
|
+
applyState = terraform_1.DeployingResourceApplyState.CREATED;
|
|
128
|
+
break;
|
|
129
|
+
case /Modifying.../.test(line):
|
|
130
|
+
applyState = terraform_1.DeployingResourceApplyState.UPDATING;
|
|
131
|
+
break;
|
|
132
|
+
case /Modifications complete/.test(line):
|
|
133
|
+
applyState = terraform_1.DeployingResourceApplyState.UPDATED;
|
|
134
|
+
break;
|
|
135
|
+
case /Destroying.../.test(line):
|
|
136
|
+
case /Still destroying.../.test(line):
|
|
137
|
+
applyState = terraform_1.DeployingResourceApplyState.DESTROYING;
|
|
138
|
+
break;
|
|
139
|
+
case /Destruction complete/.test(line):
|
|
140
|
+
applyState = terraform_1.DeployingResourceApplyState.DESTROYED;
|
|
141
|
+
break;
|
|
142
|
+
default:
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (resourceMatch &&
|
|
146
|
+
resourceMatch.length >= 0 &&
|
|
147
|
+
resourceMatch[1] != "Warning") {
|
|
148
|
+
return {
|
|
149
|
+
id: resourceMatch[1],
|
|
150
|
+
applyState,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
const parseOutput = (str) => {
|
|
158
|
+
const lines = (0, strip_ansi_1.default)(str.toString()).split("\n");
|
|
159
|
+
const resources = lines.map((line) => {
|
|
160
|
+
const parsed = parseJsonOutputLine(line) || parseTextOutputLine(line);
|
|
161
|
+
if (parsed === undefined) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
const { id, applyState } = parsed;
|
|
165
|
+
return {
|
|
166
|
+
id,
|
|
167
|
+
applyState,
|
|
168
|
+
action: terraform_1.PlannedResourceAction.CREATE,
|
|
169
|
+
};
|
|
170
|
+
});
|
|
171
|
+
return resources.reduce((acc, resource) => {
|
|
172
|
+
if (resource) {
|
|
173
|
+
acc.push(resource);
|
|
174
|
+
}
|
|
175
|
+
return acc;
|
|
176
|
+
// eslint-disable-next-line @typescript-eslint/no-array-constructor
|
|
177
|
+
}, new Array());
|
|
178
|
+
};
|
|
179
|
+
exports.parseOutput = parseOutput;
|
|
180
|
+
const isObjectEmpty = (obj) => {
|
|
181
|
+
if (typeof obj !== "object") {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
return (Object.keys(obj).length === 0 ||
|
|
185
|
+
Object.values(obj).every((v) => v === undefined || v === null || isObjectEmpty(v)));
|
|
186
|
+
};
|
|
187
|
+
const getConstructIdsForOutputs = (stackContent, outputs) => {
|
|
188
|
+
// Older cdktf versions might not have the output metadata
|
|
189
|
+
if (!("//" in stackContent) || !("outputs" in stackContent["//"])) {
|
|
190
|
+
return outputs;
|
|
191
|
+
}
|
|
192
|
+
const outputsMapping = stackContent["//"].outputs;
|
|
193
|
+
const mapOutputs = (value) => {
|
|
194
|
+
return Object.entries(value).reduce((acc, [key, value]) => {
|
|
195
|
+
if (typeof value === "string") {
|
|
196
|
+
return { ...acc, [key]: outputs[value] };
|
|
197
|
+
}
|
|
198
|
+
const mapped = mapOutputs(value);
|
|
199
|
+
if (isObjectEmpty(mapped)) {
|
|
200
|
+
return acc;
|
|
201
|
+
}
|
|
202
|
+
return {
|
|
203
|
+
...acc,
|
|
204
|
+
[key]: mapped,
|
|
205
|
+
};
|
|
206
|
+
}, {});
|
|
207
|
+
};
|
|
208
|
+
return mapOutputs(outputsMapping);
|
|
209
|
+
};
|
|
210
|
+
exports.getConstructIdsForOutputs = getConstructIdsForOutputs;
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsib3V0cHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyx1Q0FBeUI7QUFDekIsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3Qiw0REFBbUM7QUFFbkMsNENBQXdDO0FBQ3hDLDRDQUFzRDtBQUN0RCxrREFNNEI7QUFPNUIsU0FBUyxxQkFBcUIsQ0FDNUIsT0FBK0IsRUFDL0IsdUJBQWdDO0lBRWhDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQ25DLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLEdBQUcsR0FBRztRQUNOLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBQSw2QkFBaUIsRUFBQyxLQUFLLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSx1QkFBdUI7Z0JBQzNDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSztnQkFDYixDQUFDLENBQUMsU0FBUztZQUNiLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUM7S0FDMUQsQ0FBQyxFQUNGLEVBQUUsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVNLEtBQUssVUFBVSxXQUFXLENBQy9CLFFBQWdCLEVBQ2hCLE9BQStCLEVBQy9CLHVCQUFnQztJQUVoQyxFQUFFLENBQUMsYUFBYSxDQUNkLFFBQVEsRUFDUixJQUFJLENBQUMsU0FBUyxDQUNaLHFCQUFxQixDQUFDLE9BQU8sRUFBRSx1QkFBdUIsQ0FBQyxFQUN2RCxJQUFJLEVBQ0osQ0FBQyxDQUNGLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFiRCxrQ0FhQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLFFBQWdCO0lBQ2xELE9B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QyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQyxDQUFDO0lBRUYsT0FBTyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDO0FBN0JXLFFBQUEseUJBQXlCLDZCQTZCcEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgeiBmcm9tIFwiem9kXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCBzdHJpcEFuc2kgZnJvbSBcInN0cmlwLWFuc2lcIjtcblxuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQgeyBBY3Rpb25UeXBlcywgc2NoZW1hIH0gZnJvbSBcIi4vbW9kZWxzL3NjaGVtYVwiO1xuaW1wb3J0IHtcbiAgRGVwbG95aW5nUmVzb3VyY2UsXG4gIERlcGxveWluZ1Jlc291cmNlQXBwbHlTdGF0ZSxcbiAgUGxhbm5lZFJlc291cmNlQWN0aW9uLFxuICBUZXJyYWZvcm1PdXRwdXQsXG4gIGlzVGVycmFmb3JtT3V0cHV0LFxufSBmcm9tIFwiLi9tb2RlbHMvdGVycmFmb3JtXCI7XG5cbmV4cG9ydCB0eXBlIE91dHB1dHMgPSB7IFtrZXk6IHN0cmluZ106IFRlcnJhZm9ybU91dHB1dCB9O1xuZXhwb3J0IHR5cGUgT3V0cHV0SWRNYXBMZWFmID0geyBbY29uc3RydWN0SWQ6IHN0cmluZ106IHN0cmluZyB9O1xuZXhwb3J0IHR5cGUgT3V0cHV0SWRNYXBOb2RlID0geyBbc3RhY2tPckNvbnN0cnVjdElkOiBzdHJpbmddOiBPdXRwdXRJZE1hcCB9O1xuZXhwb3J0IHR5cGUgT3V0cHV0SWRNYXAgPSBPdXRwdXRJZE1hcExlYWYgfCBPdXRwdXRJZE1hcE5vZGU7XG5cbmZ1bmN0aW9uIHVucGFja1RlcnJhZm9ybU91dHB1dChcbiAgb3V0cHV0czogTmVzdGVkVGVycmFmb3JtT3V0cHV0cyxcbiAgaW5jbHVkZVNlbnNpdGl2ZU91dHB1dHM6IGJvb2xlYW4sXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG91dHB1dHMpLnJlZHVjZShcbiAgICAoYWNjLCBba2V5LCBlbnRyeV0pID0+ICh7XG4gICAgICAuLi5hY2MsXG4gICAgICBba2V5XTogaXNUZXJyYWZvcm1PdXRwdXQoZW50cnkpXG4gICAgICAgID8gIWVudHJ5LnNlbnNpdGl2ZSB8fCBpbmNsdWRlU2Vuc2l0aXZlT3V0cHV0c1xuICAgICAgICAgID8gZW50cnkudmFsdWVcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICA6IHVucGFja1RlcnJhZm9ybU91dHB1dChlbnRyeSwgaW5jbHVkZVNlbnNpdGl2ZU91dHB1dHMpLFxuICAgIH0pLFxuICAgIHt9LFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2F2ZU91dHB1dHMoXG4gIGZpbGVQYXRoOiBzdHJpbmcsXG4gIG91dHB1dHM6IE5lc3RlZFRlcnJhZm9ybU91dHB1dHMsXG4gIGluY2x1ZGVTZW5zaXRpdmVPdXRwdXRzOiBib29sZWFuLFxuKSB7XG4gIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgZmlsZVBhdGgsXG4gICAgSlNPTi5zdHJpbmdpZnkoXG4gICAgICB1bnBhY2tUZXJyYWZvcm1PdXRwdXQob3V0cHV0cywgaW5jbHVkZVNlbnNpdGl2ZU91dHB1dHMpLFxuICAgICAgbnVsbCxcbiAgICAgIDIsXG4gICAgKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZU91dHB1dFBhdGgoZmlsZVBhdGg6IHN0cmluZykge1xuICByZXR1cm4gcGF0aC5pc0Fic29sdXRlKGZpbGVQYXRoKVxuICAgID8gZmlsZVBhdGhcbiAgICA6IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBmaWxlUGF0aCk7XG59XG5cbmV4cG9ydCB0eXBlIE5lc3RlZFRlcnJhZm9ybU91dHB1dHMgPVxuICB8IHsgW2tleTogc3RyaW5nXTogVGVycmFmb3JtT3V0cHV0IH1cbiAgfCB7IFtrZXk6IHN0cmluZ106IE5lc3RlZFRlcnJhZm9ybU91dHB1dHMgfTtcblxuY29uc3QgbWFwQWN0aW9uVG9TdGF0ZSA9IChhY3Rpb246IEFjdGlvblR5cGVzLCBkb25lOiBib29sZWFuKSA9PiB7XG4gIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgY2FzZSBcImNyZWF0ZVwiOlxuICAgIGNhc2UgXCJ1cGRhdGVcIjpcbiAgICAgIHJldHVybiBkb25lXG4gICAgICAgID8gRGVwbG95aW5nUmVzb3VyY2VBcHBseVN0YXRlLkNSRUFURURcbiAgICAgICAgOiBEZXBsb3lpbmdSZXNvdXJjZUFwcGx5U3RhdGUuQ1JFQVRJTkc7XG4gICAgY2FzZSBcImRlbGV0ZVwiOlxuICAgICAgcmV0dXJuIGRvbmVcbiAgICAgICAgPyBEZXBsb3lpbmdSZXNvdXJjZUFwcGx5U3RhdGUuREVTVFJPWUVEXG4gICAgICAgIDogRGVwbG95aW5nUmVzb3VyY2VBcHBseVN0YXRlLkRFU1RST1lJTkc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBEZXBsb3lpbmdSZXNvdXJjZUFwcGx5U3RhdGUuV0FJVElORztcbiAgfVxufTtcbi8vIFRoaXMgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uXG5jb25zdCBwYXJzZUpzb25PdXRwdXRMaW5lID0gKFxuICBsaW5lOiBzdHJpbmcsXG4pOiBPbWl0PERlcGxveWluZ1Jlc291cmNlLCBcImFjdGlvblwiPiB8IHVuZGVmaW5lZCA9PiB7XG4gIGxldCBqc29uLCBtZXNzYWdlO1xuICB0cnkge1xuICAgIGpzb24gPSBKU09OLnBhcnNlKGxpbmUpO1xuICB9IGNhdGNoIHtcbiAgICBsb2dnZXIudHJhY2UoYENvdWxkIG5vdCBwYXJzZSBsaW5lIGFzIEpTT046ICR7bGluZX1gKTtcbiAgICByZXR1cm47XG4gIH1cblxuICB0cnkge1xuICAgIG1lc3NhZ2UgPSBzY2hlbWEucGFyc2UoanNvbik7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChlcnIgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBsb2dnZXIudHJhY2UoXG4gICAgICAgIGBFcnJvciBwYXJzaW5nIGxpbmUgaW50byBzY2hlbWE6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgZXJyLmVycm9ycyxcbiAgICAgICAgKX0gPT4gJHtsaW5lfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHN3aXRjaCAobWVzc2FnZS50eXBlKSB7XG4gICAgY2FzZSBcImFwcGx5X3N0YXJ0XCI6XG4gICAgY2FzZSBcImFwcGx5X3Byb2dyZXNzXCI6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogbWVzc2FnZS5ob29rLnJlc291cmNlLnJlc291cmNlLFxuICAgICAgICBhcHBseVN0YXRlOiBtYXBBY3Rpb25Ub1N0YXRlKG1lc3NhZ2UuaG9vay5hY3Rpb24sIGZhbHNlKSxcbiAgICAgIH07XG5cbiAgICBjYXNlIFwiYXBwbHlfY29tcGxldGVcIjpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBtZXNzYWdlLmhvb2sucmVzb3VyY2UucmVzb3VyY2UsXG4gICAgICAgIGFwcGx5U3RhdGU6IG1hcEFjdGlvblRvU3RhdGUobWVzc2FnZS5ob29rLmFjdGlvbiwgdHJ1ZSksXG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm47XG4gIH1cbn07XG5cbmNvbnN0IHBhcnNlVGV4dE91dHB1dExpbmUgPSAoXG4gIGxpbmU6IHN0cmluZyxcbik6IE9taXQ8RGVwbG95aW5nUmVzb3VyY2UsIFwiYWN0aW9uXCI+IHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKC9eT3V0cHV0czovLnRlc3QobGluZSkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKC9eUGxhbjovLnRlc3QobGluZSkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKC9eZGF0YVxcLi4qLy50ZXN0KGxpbmUpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcmVzb3VyY2VNYXRjaCA9IGxpbmUubWF0Y2goL14oW2EtekEtWl9dW2EtekEtWlxcZF9cXC0uXSopOi8pO1xuICBsZXQgYXBwbHlTdGF0ZTogRGVwbG95aW5nUmVzb3VyY2VBcHBseVN0YXRlO1xuXG4gIHN3aXRjaCAodHJ1ZSkge1xuICAgIGNhc2UgL0NyZWF0aW5nLi4uLy50ZXN0KGxpbmUpOlxuICAgIGNhc2UgL1N0aWxsIGNyZWF0aW5nLi4uLy50ZXN0KGxpbmUpOlxuICAgICAgYXBwbHlTdGF0ZSA9IERlcGxveWluZ1Jlc291cmNlQXBwbHlTdGF0ZS5DUkVBVElORztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgL0NyZWF0aW9uIGNvbXBsZXRlLy50ZXN0KGxpbmUpOlxuICAgICAgYXBwbHlTdGF0ZSA9IERlcGxveWluZ1Jlc291cmNlQXBwbHlTdGF0ZS5DUkVBVEVEO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAvTW9kaWZ5aW5nLi4uLy50ZXN0KGxpbmUpOlxuICAgICAgYXBwbHlTdGF0ZSA9IERlcGxveWluZ1Jlc291cmNlQXBwbHlTdGF0ZS5VUERBVElORztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgL01vZGlmaWNhdGlvbnMgY29tcGxldGUvLnRlc3QobGluZSk6XG4gICAgICBhcHBseVN0YXRlID0gRGVwbG95aW5nUmVzb3VyY2VBcHBseVN0YXRlLlVQREFURUQ7XG4gICAgICBicmVhaztcbiAgICBjYXNlIC9EZXN0cm95aW5nLi4uLy50ZXN0KGxpbmUpOlxuICAgIGNhc2UgL1N0aWxsIGRlc3Ryb3lpbmcuLi4vLnRlc3QobGluZSk6XG4gICAgICBhcHBseVN0YXRlID0gRGVwbG95aW5nUmVzb3VyY2VBcHBseVN0YXRlLkRFU1RST1lJTkc7XG4gICAgICBicmVhaztcbiAgICBjYXNlIC9EZXN0cnVjdGlvbiBjb21wbGV0ZS8udGVzdChsaW5lKTpcbiAgICAgIGFwcGx5U3RhdGUgPSBEZXBsb3lpbmdSZXNvdXJjZUFwcGx5U3RhdGUuREVTVFJPWUVEO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChcbiAgICByZXNvdXJjZU1hdGNoICYmXG4gICAgcmVzb3VyY2VNYXRjaC5sZW5ndGggPj0gMCAmJlxuICAgIHJlc291cmNlTWF0Y2hbMV0gIT0gXCJXYXJuaW5nXCJcbiAgKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiByZXNvdXJjZU1hdGNoWzFdLFxuICAgICAgYXBwbHlTdGF0ZSxcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlT3V0cHV0ID0gKHN0cjogc3RyaW5nKTogRGVwbG95aW5nUmVzb3VyY2VbXSA9PiB7XG4gIGNvbnN0IGxpbmVzID0gc3RyaXBBbnNpKHN0ci50b1N0cmluZygpKS5zcGxpdChcIlxcblwiKTtcblxuICBjb25zdCByZXNvdXJjZXMgPSBsaW5lcy5tYXAoKGxpbmUpID0+IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUpzb25PdXRwdXRMaW5lKGxpbmUpIHx8IHBhcnNlVGV4dE91dHB1dExpbmUobGluZSk7XG4gICAgaWYgKHBhcnNlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBpZCwgYXBwbHlTdGF0ZSB9ID0gcGFyc2VkO1xuICAgIHJldHVybiB7XG4gICAgICBpZCxcbiAgICAgIGFwcGx5U3RhdGUsXG4gICAgICBhY3Rpb246IFBsYW5uZWRSZXNvdXJjZUFjdGlvbi5DUkVBVEUsXG4gICAgfTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc291cmNlcy5yZWR1Y2UoKGFjYywgcmVzb3VyY2UpID0+IHtcbiAgICBpZiAocmVzb3VyY2UpIHtcbiAgICAgIGFjYy5wdXNoKHJlc291cmNlKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWFycmF5LWNvbnN0cnVjdG9yXG4gIH0sIG5ldyBBcnJheSgpKTtcbn07XG5cbmNvbnN0IGlzT2JqZWN0RW1wdHkgPSAob2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogYm9vbGVhbiA9PiB7XG4gIGlmICh0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiAoXG4gICAgT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPT09IDAgfHxcbiAgICBPYmplY3QudmFsdWVzKG9iaikuZXZlcnkoXG4gICAgICAodikgPT4gdiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09IG51bGwgfHwgaXNPYmplY3RFbXB0eSh2KSxcbiAgICApXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29uc3RydWN0SWRzRm9yT3V0cHV0cyA9IChcbiAgc3RhY2tDb250ZW50OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICBvdXRwdXRzOiB7IFtrZXk6IHN0cmluZ106IFRlcnJhZm9ybU91dHB1dCB9LFxuKTogTmVzdGVkVGVycmFmb3JtT3V0cHV0cyA9PiB7XG4gIC8vIE9sZGVyIGNka3RmIHZlcnNpb25zIG1pZ2h0IG5vdCBoYXZlIHRoZSBvdXRwdXQgbWV0YWRhdGFcbiAgaWYgKCEoXCIvL1wiIGluIHN0YWNrQ29udGVudCkgfHwgIShcIm91dHB1dHNcIiBpbiBzdGFja0NvbnRlbnRbXCIvL1wiXSkpIHtcbiAgICByZXR1cm4gb3V0cHV0cztcbiAgfVxuICBjb25zdCBvdXRwdXRzTWFwcGluZyA9IHN0YWNrQ29udGVudFtcIi8vXCJdLm91dHB1dHM7XG5cbiAgY29uc3QgbWFwT3V0cHV0cyA9ICh2YWx1ZTogT3V0cHV0SWRNYXApOiBOZXN0ZWRUZXJyYWZvcm1PdXRwdXRzID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModmFsdWUpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogb3V0cHV0c1t2YWx1ZV0gfTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWFwcGVkID0gbWFwT3V0cHV0cyh2YWx1ZSk7XG4gICAgICBpZiAoaXNPYmplY3RFbXB0eShtYXBwZWQpKSB7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgW2tleV06IG1hcHBlZCxcbiAgICAgIH07XG4gICAgfSwge30pO1xuICB9O1xuXG4gIHJldHVybiBtYXBPdXRwdXRzKG91dHB1dHNNYXBwaW5nKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { Language } from "@cdktn/commons";
|
|
6
|
+
export type ProviderAddArgs = {
|
|
7
|
+
providers: string[];
|
|
8
|
+
language: Language;
|
|
9
|
+
projectDirectory: string;
|
|
10
|
+
cdktfVersion?: string;
|
|
11
|
+
forceLocal?: boolean;
|
|
12
|
+
dist?: string;
|
|
13
|
+
};
|
|
14
|
+
export declare function providerAdd({ providers, language, projectDirectory, cdktfVersion, dist, forceLocal, }: ProviderAddArgs): Promise<boolean>;
|
|
15
|
+
//# sourceMappingURL=provider-add.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-add.d.ts","sourceRoot":"","sources":["provider-add.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO1C,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAsB,WAAW,CAAC,EAChC,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,IAAI,EACJ,UAAU,GACX,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBpC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
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.providerAdd = void 0;
|
|
8
|
+
const dependency_manager_1 = require("./dependencies/dependency-manager");
|
|
9
|
+
const init_1 = require("./init");
|
|
10
|
+
async function providerAdd({ providers, language, projectDirectory, cdktfVersion, dist, forceLocal, }) {
|
|
11
|
+
const version = cdktfVersion || (await (0, init_1.determineDeps)(cdktfVersion, dist)).cdktf_version;
|
|
12
|
+
const manager = new dependency_manager_1.DependencyManager(language, version, projectDirectory);
|
|
13
|
+
let needsGet = false;
|
|
14
|
+
for (const provider of providers) {
|
|
15
|
+
const constraint = dependency_manager_1.ProviderConstraint.fromConfigEntry(provider);
|
|
16
|
+
if (forceLocal) {
|
|
17
|
+
needsGet = true;
|
|
18
|
+
await manager.addLocalProvider(constraint);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
const { addedLocalProvider } = await manager.addProvider(constraint);
|
|
22
|
+
if (addedLocalProvider) {
|
|
23
|
+
needsGet = true;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return needsGet;
|
|
28
|
+
}
|
|
29
|
+
exports.providerAdd = providerAdd;
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItYWRkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHJvdmlkZXItYWRkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUdILDBFQUcyQztBQUMzQyxpQ0FBdUM7QUFXaEMsS0FBSyxVQUFVLFdBQVcsQ0FBQyxFQUNoQyxTQUFTLEVBQ1QsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osSUFBSSxFQUNKLFVBQVUsR0FDTTtJQUNoQixNQUFNLE9BQU8sR0FDWCxZQUFZLElBQUksQ0FBQyxNQUFNLElBQUEsb0JBQWEsRUFBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFFMUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxzQ0FBaUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFFM0UsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRXJCLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7UUFDakMsTUFBTSxVQUFVLEdBQUcsdUNBQWtCLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hFLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ2hCLE1BQU0sT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsTUFBTSxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JFLElBQUksa0JBQWtCLEVBQUUsQ0FBQztnQkFDdkIsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNsQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBN0JELGtDQTZCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgTGFuZ3VhZ2UgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7XG4gIERlcGVuZGVuY3lNYW5hZ2VyLFxuICBQcm92aWRlckNvbnN0cmFpbnQsXG59IGZyb20gXCIuL2RlcGVuZGVuY2llcy9kZXBlbmRlbmN5LW1hbmFnZXJcIjtcbmltcG9ydCB7IGRldGVybWluZURlcHMgfSBmcm9tIFwiLi9pbml0XCI7XG5cbmV4cG9ydCB0eXBlIFByb3ZpZGVyQWRkQXJncyA9IHtcbiAgcHJvdmlkZXJzOiBzdHJpbmdbXTtcbiAgbGFuZ3VhZ2U6IExhbmd1YWdlO1xuICBwcm9qZWN0RGlyZWN0b3J5OiBzdHJpbmc7XG4gIGNka3RmVmVyc2lvbj86IHN0cmluZztcbiAgZm9yY2VMb2NhbD86IGJvb2xlYW47XG4gIGRpc3Q/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvdmlkZXJBZGQoe1xuICBwcm92aWRlcnMsXG4gIGxhbmd1YWdlLFxuICBwcm9qZWN0RGlyZWN0b3J5LFxuICBjZGt0ZlZlcnNpb24sXG4gIGRpc3QsXG4gIGZvcmNlTG9jYWwsXG59OiBQcm92aWRlckFkZEFyZ3MpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgdmVyc2lvbiA9XG4gICAgY2RrdGZWZXJzaW9uIHx8IChhd2FpdCBkZXRlcm1pbmVEZXBzKGNka3RmVmVyc2lvbiwgZGlzdCkpLmNka3RmX3ZlcnNpb247XG5cbiAgY29uc3QgbWFuYWdlciA9IG5ldyBEZXBlbmRlbmN5TWFuYWdlcihsYW5ndWFnZSwgdmVyc2lvbiwgcHJvamVjdERpcmVjdG9yeSk7XG5cbiAgbGV0IG5lZWRzR2V0ID0gZmFsc2U7XG5cbiAgZm9yIChjb25zdCBwcm92aWRlciBvZiBwcm92aWRlcnMpIHtcbiAgICBjb25zdCBjb25zdHJhaW50ID0gUHJvdmlkZXJDb25zdHJhaW50LmZyb21Db25maWdFbnRyeShwcm92aWRlcik7XG4gICAgaWYgKGZvcmNlTG9jYWwpIHtcbiAgICAgIG5lZWRzR2V0ID0gdHJ1ZTtcbiAgICAgIGF3YWl0IG1hbmFnZXIuYWRkTG9jYWxQcm92aWRlcihjb25zdHJhaW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgeyBhZGRlZExvY2FsUHJvdmlkZXIgfSA9IGF3YWl0IG1hbmFnZXIuYWRkUHJvdmlkZXIoY29uc3RyYWludCk7XG4gICAgICBpZiAoYWRkZWRMb2NhbFByb3ZpZGVyKSB7XG4gICAgICAgIG5lZWRzR2V0ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmVlZHNHZXQ7XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terraform-logs.d.ts","sourceRoot":"","sources":["terraform-logs.ts"],"names":[],"mappings":"AAWA,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractJsonLogIfPresent = void 0;
|
|
4
|
+
// Copyright (c) HashiCorp, Inc
|
|
5
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
6
|
+
function extractJsonLogLineIfPresent(logLine) {
|
|
7
|
+
try {
|
|
8
|
+
const extractedMessage = JSON.parse(logLine)["@message"];
|
|
9
|
+
return extractedMessage ? extractedMessage.trim() : logLine;
|
|
10
|
+
}
|
|
11
|
+
catch (e) {
|
|
12
|
+
return logLine;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function extractJsonLogIfPresent(logLines) {
|
|
16
|
+
return logLines.split("\n").map(extractJsonLogLineIfPresent).join("\n");
|
|
17
|
+
}
|
|
18
|
+
exports.extractJsonLogIfPresent = extractJsonLogIfPresent;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWxvZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXJyYWZvcm0tbG9ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLFNBQVMsMkJBQTJCLENBQUMsT0FBZTtJQUNsRCxJQUFJLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM5RCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsUUFBZ0I7SUFDdEQsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBRkQsMERBRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuZnVuY3Rpb24gZXh0cmFjdEpzb25Mb2dMaW5lSWZQcmVzZW50KGxvZ0xpbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgY29uc3QgZXh0cmFjdGVkTWVzc2FnZSA9IEpTT04ucGFyc2UobG9nTGluZSlbXCJAbWVzc2FnZVwiXTtcbiAgICByZXR1cm4gZXh0cmFjdGVkTWVzc2FnZSA/IGV4dHJhY3RlZE1lc3NhZ2UudHJpbSgpIDogbG9nTGluZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBsb2dMaW5lO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0SnNvbkxvZ0lmUHJlc2VudChsb2dMaW5lczogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGxvZ0xpbmVzLnNwbGl0KFwiXFxuXCIpLm1hcChleHRyYWN0SnNvbkxvZ0xpbmVJZlByZXNlbnQpLmpvaW4oXCJcXG5cIik7XG59XG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { StackManifest, TerraformStackMetadata } from "cdktn";
|
|
2
|
+
export interface SynthesizedStackMetadata {
|
|
3
|
+
"//"?: {
|
|
4
|
+
[key: string]: TerraformStackMetadata;
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
export interface SynthesizedStack extends StackManifest {
|
|
8
|
+
content: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class StackDependencies {
|
|
11
|
+
private readonly stacks;
|
|
12
|
+
pendingStacks: SynthesizedStack[];
|
|
13
|
+
inflightStacks: SynthesizedStack[];
|
|
14
|
+
deployedStacks: SynthesizedStack[];
|
|
15
|
+
constructor(stacks: SynthesizedStack[]);
|
|
16
|
+
startRun(stack: SynthesizedStack): void;
|
|
17
|
+
finishRun(stack: SynthesizedStack): void;
|
|
18
|
+
get pendingDeployableStacks(): SynthesizedStack[];
|
|
19
|
+
}
|
|
20
|
+
export type SynthOrigin = "watch";
|
|
21
|
+
export declare class SynthStack {
|
|
22
|
+
static synth(abortSignal: AbortSignal, command: string, outdir: string, workingDirectory?: string, graceful?: boolean, // will not exit the process but rethrow the error instead
|
|
23
|
+
noColor?: boolean, synthOrigin?: SynthOrigin, hcl?: boolean): Promise<SynthesizedStack[]>;
|
|
24
|
+
static formatHclFiles(outDir: string): Promise<void>;
|
|
25
|
+
static readSynthesizedStacks(outdir: string): Promise<SynthesizedStack[]>;
|
|
26
|
+
static synthTelemetry(totalTime: number, stacks: SynthesizedStack[], synthOrigin?: SynthOrigin): Promise<void>;
|
|
27
|
+
static synthErrorTelemetry(synthOrigin?: SynthOrigin): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=synth-stack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synth-stack.d.ts","sourceRoot":"","sources":["synth-stack.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,aAAa,EACb,sBAAsB,EACvB,MAAM,OAAO,CAAC;AAQf,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAAA;KAAE,CAAC;CAClD;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,iBAAiB;IAKhB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJ5B,aAAa,EAAE,gBAAgB,EAAE,CAAM;IACvC,cAAc,EAAE,gBAAgB,EAAE,CAAM;IACxC,cAAc,EAAE,gBAAgB,EAAE,CAAM;gBAElB,MAAM,EAAE,gBAAgB,EAAE;IAIhD,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAOvC,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAO/C,IAAW,uBAAuB,IAAI,gBAAgB,EAAE,CAYvD;CACF;AAOD,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC;AAElC,qBAAa,UAAU;WACD,KAAK,CACvB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,gBAAgB,SAAgB,EAChC,QAAQ,UAAQ,EAAE,0DAA0D;IAC5E,OAAO,UAAQ,EACf,WAAW,CAAC,EAAE,WAAW,EACzB,GAAG,UAAQ,GACV,OAAO,CAAC,gBAAgB,EAAE,CAAC;WAmIV,cAAc,CAAC,MAAM,EAAE,MAAM;WAsB7B,qBAAqB,CACvC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,EAAE,CAAC;WAkCV,cAAc,CAChC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,gBAAgB,EAAE,EAC1B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,IAAI,CAAC;WAiBI,mBAAmB,CAAC,WAAW,CAAC,EAAE,WAAW;CAGlE"}
|