@cdktn/commons 0.23.0-pre.8 → 0.24.0-pre.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/ambient.d.ts +0 -2
- package/build/checkpoint.d.ts.map +1 -0
- package/build/checkpoint.js +176 -0
- package/build/config.d.ts.map +1 -0
- package/build/config.js +267 -0
- package/build/config.test.d.ts.map +1 -0
- package/build/config.test.js +680 -0
- package/build/construct-maker-target.d.ts.map +1 -0
- package/build/construct-maker-target.js +129 -0
- package/build/construct-maker-target.test.d.ts.map +1 -0
- package/build/construct-maker-target.test.js +72 -0
- package/build/debug.d.ts.map +1 -0
- package/build/debug.js +379 -0
- package/build/environment.d.ts.map +1 -0
- package/build/environment.js +15 -0
- package/build/errors.d.ts.map +1 -0
- package/build/errors.js +75 -0
- package/build/gradle.d.ts.map +1 -0
- package/build/gradle.js +160 -0
- package/build/index.d.ts.map +1 -0
- package/{src → build}/index.js +1 -1
- package/build/logging.d.ts.map +1 -0
- package/build/logging.js +117 -0
- package/{src → build}/module-schema.d.ts +1 -0
- package/build/module-schema.d.ts.map +1 -0
- package/build/module-schema.js +3 -0
- package/build/provider-schema.d.ts.map +1 -0
- package/build/provider-schema.js +21 -0
- package/build/terraform-module.d.ts.map +1 -0
- package/build/terraform-module.js +23 -0
- package/build/terraform-module.test.d.ts.map +1 -0
- package/build/terraform-module.test.js +31 -0
- package/build/terraform.d.ts.map +1 -0
- package/build/terraform.js +12 -0
- package/build/util.d.ts.map +1 -0
- package/build/util.js +262 -0
- package/build/version.d.ts.map +1 -0
- package/build/version.js +11 -0
- package/eslint.config.mjs +1 -76
- package/package.json +11 -20
- package/src/checkpoint.d.ts.map +0 -1
- package/src/checkpoint.js +0 -176
- package/src/config.d.ts.map +0 -1
- package/src/config.js +0 -267
- package/src/config.test.d.ts.map +0 -1
- package/src/config.test.js +0 -680
- package/src/construct-maker-target.d.ts.map +0 -1
- package/src/construct-maker-target.js +0 -129
- package/src/construct-maker-target.test.d.ts.map +0 -1
- package/src/construct-maker-target.test.js +0 -72
- package/src/debug.d.ts.map +0 -1
- package/src/debug.js +0 -379
- package/src/environment.d.ts.map +0 -1
- package/src/environment.js +0 -15
- package/src/errors.d.ts.map +0 -1
- package/src/errors.js +0 -75
- package/src/gradle.d.ts.map +0 -1
- package/src/gradle.js +0 -160
- package/src/index.d.ts.map +0 -1
- package/src/logging.d.ts.map +0 -1
- package/src/logging.js +0 -117
- package/src/module-schema.d.ts.map +0 -1
- package/src/module-schema.js +0 -3
- package/src/provider-schema.d.ts.map +0 -1
- package/src/provider-schema.js +0 -21
- package/src/terraform-module.d.ts.map +0 -1
- package/src/terraform-module.js +0 -23
- package/src/terraform-module.test.d.ts.map +0 -1
- package/src/terraform-module.test.js +0 -31
- package/src/terraform.d.ts.map +0 -1
- package/src/terraform.js +0 -12
- package/src/util.d.ts.map +0 -1
- package/src/util.js +0 -262
- package/src/version.d.ts.map +0 -1
- package/src/version.js +0 -11
- /package/{src → build}/checkpoint.d.ts +0 -0
- /package/{src → build}/config.d.ts +0 -0
- /package/{src → build}/config.test.d.ts +0 -0
- /package/{src → build}/construct-maker-target.d.ts +0 -0
- /package/{src → build}/construct-maker-target.test.d.ts +0 -0
- /package/{src → build}/debug.d.ts +0 -0
- /package/{src → build}/environment.d.ts +0 -0
- /package/{src → build}/errors.d.ts +0 -0
- /package/{src → build}/gradle.d.ts +0 -0
- /package/{src → build}/index.d.ts +0 -0
- /package/{src → build}/logging.d.ts +0 -0
- /package/{src → build}/provider-schema.d.ts +0 -0
- /package/{src → build}/terraform-module.d.ts +0 -0
- /package/{src → build}/terraform-module.test.d.ts +0 -0
- /package/{src → build}/terraform.d.ts +0 -0
- /package/{src → build}/util.d.ts +0 -0
- /package/{src → build}/version.d.ts +0 -0
package/build/debug.js
ADDED
|
@@ -0,0 +1,379 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.collectDebugInformation = exports.getPackageVersion = exports.getNodeVersion = exports.getGoVersion = exports.getPipenvVersion = exports.getPipVersion = exports.getPythonVersion = exports.getGradleVersion = exports.getMavenVersion = exports.getJavaVersion = exports.getDotnetVersion = exports.getLanguage = void 0;
|
|
27
|
+
// Copyright (c) HashiCorp, Inc
|
|
28
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
29
|
+
const path = __importStar(require("path"));
|
|
30
|
+
const os = __importStar(require("os"));
|
|
31
|
+
const logging_1 = require("./logging");
|
|
32
|
+
const util_1 = require("./util");
|
|
33
|
+
const terraform_1 = require("./terraform");
|
|
34
|
+
const version_1 = require("./version");
|
|
35
|
+
const fs_extra_1 = require("fs-extra");
|
|
36
|
+
const gradle_1 = require("./gradle");
|
|
37
|
+
function getLanguage(projectPath = process.cwd()) {
|
|
38
|
+
try {
|
|
39
|
+
const cdktfJson = JSON.parse((0, fs_extra_1.readFileSync)(path.resolve(projectPath, "cdktf.json"), "utf-8"));
|
|
40
|
+
return cdktfJson.language;
|
|
41
|
+
}
|
|
42
|
+
catch (_a) {
|
|
43
|
+
// We can not detect the language
|
|
44
|
+
logging_1.logger.debug(`Unable to detect language in ${projectPath}`);
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.getLanguage = getLanguage;
|
|
49
|
+
async function getBinaryVersion(binary, versionCommand) {
|
|
50
|
+
const noOp = () => { };
|
|
51
|
+
try {
|
|
52
|
+
const result = await (0, util_1.exec)(binary, [versionCommand], { env: process.env, stdio: [undefined, undefined, "ignore"] }, noOp, noOp);
|
|
53
|
+
return result.trim().replace(/\r?\n|\r/g, "");
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
logging_1.logger.debug(`Failed to run ${binary} ${versionCommand}: ${e}`);
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function getDotnetVersion() {
|
|
61
|
+
return getBinaryVersion("dotnet", "--version");
|
|
62
|
+
}
|
|
63
|
+
exports.getDotnetVersion = getDotnetVersion;
|
|
64
|
+
function getJavaVersion() {
|
|
65
|
+
return getBinaryVersion("java", "-version");
|
|
66
|
+
}
|
|
67
|
+
exports.getJavaVersion = getJavaVersion;
|
|
68
|
+
function getMavenVersion() {
|
|
69
|
+
return getBinaryVersion("mvn", "--version");
|
|
70
|
+
}
|
|
71
|
+
exports.getMavenVersion = getMavenVersion;
|
|
72
|
+
function getGradleVersion() {
|
|
73
|
+
return getBinaryVersion("gradle", "--version");
|
|
74
|
+
}
|
|
75
|
+
exports.getGradleVersion = getGradleVersion;
|
|
76
|
+
async function getPythonVersion() {
|
|
77
|
+
return ((await getBinaryVersion("python3", "--version")) ||
|
|
78
|
+
(await getBinaryVersion("python", "--version")));
|
|
79
|
+
}
|
|
80
|
+
exports.getPythonVersion = getPythonVersion;
|
|
81
|
+
function getPipVersion() {
|
|
82
|
+
return getBinaryVersion("pip", "--version");
|
|
83
|
+
}
|
|
84
|
+
exports.getPipVersion = getPipVersion;
|
|
85
|
+
function getPipenvVersion() {
|
|
86
|
+
return getBinaryVersion("pipenv", "--version");
|
|
87
|
+
}
|
|
88
|
+
exports.getPipenvVersion = getPipenvVersion;
|
|
89
|
+
function getGoVersion() {
|
|
90
|
+
return getBinaryVersion("go", "version");
|
|
91
|
+
}
|
|
92
|
+
exports.getGoVersion = getGoVersion;
|
|
93
|
+
function getNodeVersion() {
|
|
94
|
+
return getBinaryVersion("node", "--version");
|
|
95
|
+
}
|
|
96
|
+
exports.getNodeVersion = getNodeVersion;
|
|
97
|
+
async function getNodeModuleVersion(packageName) {
|
|
98
|
+
// Use the presence of the pnpm lock file as a signal that
|
|
99
|
+
// we should interrogate packages via pnpm instead of npm.
|
|
100
|
+
const usingPnpm = await (0, fs_extra_1.pathExists)("pnpm-lock.yaml");
|
|
101
|
+
return usingPnpm
|
|
102
|
+
? getPnpmNodeModuleVersion(packageName)
|
|
103
|
+
: getNpmNodeModuleVersion(packageName);
|
|
104
|
+
}
|
|
105
|
+
async function getPnpmNodeModuleVersion(packageName) {
|
|
106
|
+
var _a, _b, _c;
|
|
107
|
+
let output;
|
|
108
|
+
try {
|
|
109
|
+
output = await (0, util_1.exec)("pnpm", ["list", packageName, "--json"], {
|
|
110
|
+
env: { ...process.env },
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
catch (e) {
|
|
114
|
+
logging_1.logger.debug(`Unable to run 'pnpm list ${packageName} --json': ${e}`);
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
let json;
|
|
118
|
+
try {
|
|
119
|
+
json = JSON.parse(output);
|
|
120
|
+
}
|
|
121
|
+
catch (e) {
|
|
122
|
+
logging_1.logger.debug(`Unable to parse output of 'pnpm list ${packageName} --json': ${e}`);
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
if (!json ||
|
|
126
|
+
!Array.isArray(json) ||
|
|
127
|
+
json.length === 0 ||
|
|
128
|
+
!((_c = (_b = (_a = json[0]) === null || _a === void 0 ? void 0 : _a.dependencies) === null || _b === void 0 ? void 0 : _b[packageName]) === null || _c === void 0 ? void 0 : _c.version)) {
|
|
129
|
+
logging_1.logger.debug(`Unable to find '${packageName}' in 'pnpm list ${packageName} --json': ${output}`);
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
return json[0].dependencies[packageName].version;
|
|
133
|
+
}
|
|
134
|
+
async function getNpmNodeModuleVersion(packageName) {
|
|
135
|
+
let output;
|
|
136
|
+
try {
|
|
137
|
+
output = await (0, util_1.exec)("npm", ["list", packageName, "--json"], {
|
|
138
|
+
env: { ...process.env },
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
catch (e) {
|
|
142
|
+
logging_1.logger.debug(`Unable to run 'npm list ${packageName} --json': ${e}`);
|
|
143
|
+
return undefined;
|
|
144
|
+
}
|
|
145
|
+
let json;
|
|
146
|
+
try {
|
|
147
|
+
json = JSON.parse(output);
|
|
148
|
+
}
|
|
149
|
+
catch (e) {
|
|
150
|
+
logging_1.logger.debug(`Unable to parse output of 'npm list ${packageName} --json': ${e}`);
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
if (!json.dependencies ||
|
|
154
|
+
!json.dependencies[packageName] ||
|
|
155
|
+
!json.dependencies[packageName].version) {
|
|
156
|
+
logging_1.logger.debug(`Unable to find '${packageName}' in 'npm list ${packageName} --json': ${output}`);
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
return json.dependencies[packageName].version;
|
|
160
|
+
}
|
|
161
|
+
async function getPythonPackageVersion(packageName) {
|
|
162
|
+
let output;
|
|
163
|
+
try {
|
|
164
|
+
output = await (0, util_1.exec)("pipenv", ["run", "pip", "show", "-qq", packageName], {
|
|
165
|
+
env: process.env,
|
|
166
|
+
});
|
|
167
|
+
// Running with `-qq` suppresses both missing packages and actual package
|
|
168
|
+
output = await (0, util_1.exec)("pipenv", ["run", "pip", "show", packageName], {
|
|
169
|
+
env: process.env,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
catch (e) {
|
|
173
|
+
logging_1.logger.debug(`Unable to run 'pipenv run pip show ${packageName}': ${e}`);
|
|
174
|
+
}
|
|
175
|
+
// If we couldn't get the output using pipenv, try to get it using pip directly
|
|
176
|
+
if (!output) {
|
|
177
|
+
try {
|
|
178
|
+
output = await (0, util_1.exec)("pip", ["show", "-qq", packageName], {
|
|
179
|
+
env: process.env,
|
|
180
|
+
});
|
|
181
|
+
// Running with `-qq` suppresses both missing packages and actual package
|
|
182
|
+
output = await (0, util_1.exec)("pip", ["show", packageName], {
|
|
183
|
+
env: process.env,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
catch (e) {
|
|
187
|
+
logging_1.logger.debug(`Unable to run 'pip show ${packageName}': ${e}`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (!output) {
|
|
191
|
+
return undefined;
|
|
192
|
+
}
|
|
193
|
+
const versionInfo = output
|
|
194
|
+
.split(/\r\n|\r|\n/)
|
|
195
|
+
.find((line) => line.startsWith("Version:"));
|
|
196
|
+
if (!versionInfo) {
|
|
197
|
+
logging_1.logger.debug(`Unable to find version in output of 'pipenv run pip show ${packageName}' / 'pip show ${packageName}': ${output}`);
|
|
198
|
+
return undefined;
|
|
199
|
+
}
|
|
200
|
+
const version = versionInfo.split(":")[1].trim();
|
|
201
|
+
return version;
|
|
202
|
+
}
|
|
203
|
+
// Once https://github.com/NuGet/Home/issues/7752 gets resolved we can also try with --json
|
|
204
|
+
async function getCSharpPackageVersion(packageName) {
|
|
205
|
+
const translationMap = {
|
|
206
|
+
jsii: "Amazon.JSII.Runtime",
|
|
207
|
+
constructs: "Constructs",
|
|
208
|
+
cdktf: "HashiCorp.Cdktf",
|
|
209
|
+
cdktn: "Io.Cdktn",
|
|
210
|
+
};
|
|
211
|
+
const cSharpPackageName = translationMap[packageName] || packageName;
|
|
212
|
+
let output;
|
|
213
|
+
try {
|
|
214
|
+
output = await (0, util_1.exec)("dotnet", ["list", "package", "--include-transitive"], {
|
|
215
|
+
env: process.env,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
catch (e) {
|
|
219
|
+
logging_1.logger.debug(`Unable to run 'dotnet list package --include-transitive': ${e}`);
|
|
220
|
+
return undefined;
|
|
221
|
+
}
|
|
222
|
+
const versionLine = output
|
|
223
|
+
.split(/\r\n|\r|\n/)
|
|
224
|
+
.find((line) => line.includes(`> ${cSharpPackageName}`));
|
|
225
|
+
if (!versionLine) {
|
|
226
|
+
logging_1.logger.debug(`Unable to find version for '${cSharpPackageName}' in output of 'dotnet list package --include-transitive': ${output}`);
|
|
227
|
+
return undefined;
|
|
228
|
+
}
|
|
229
|
+
// A line might look like this:
|
|
230
|
+
// Transitive Package Resolved
|
|
231
|
+
// > Amazon.JSII.Runtime 1.17.1
|
|
232
|
+
// Therefore we reverse split by whitespace and reverse
|
|
233
|
+
// so that the first thing we find is the version number
|
|
234
|
+
return versionLine
|
|
235
|
+
.split(" ")
|
|
236
|
+
.reverse()
|
|
237
|
+
.find((part) => part !== "");
|
|
238
|
+
}
|
|
239
|
+
async function getGoPackageVersion(packageName) {
|
|
240
|
+
var _a;
|
|
241
|
+
const translationMap = {
|
|
242
|
+
jsii: "jsii-runtime-go",
|
|
243
|
+
cdktf: "github.com/hashicorp/terraform-cdk-go",
|
|
244
|
+
cdktn: "github.com/open-constructs/cdk-terrain-go",
|
|
245
|
+
};
|
|
246
|
+
const goPackageName = translationMap[packageName] || packageName;
|
|
247
|
+
let output;
|
|
248
|
+
try {
|
|
249
|
+
output = await (0, util_1.exec)("go", ["list", "-m", "all"], {
|
|
250
|
+
env: process.env,
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
catch (e) {
|
|
254
|
+
logging_1.logger.debug(`Unable to run 'go list -m all': ${e}`);
|
|
255
|
+
return undefined;
|
|
256
|
+
}
|
|
257
|
+
let versionLine = output
|
|
258
|
+
.split(/\r\n|\r|\n/)
|
|
259
|
+
.find((line) => line.includes(goPackageName));
|
|
260
|
+
if (!versionLine) {
|
|
261
|
+
logging_1.logger.debug(`Unable to find version for '${goPackageName}' in output of 'go list -m all': ${output}`);
|
|
262
|
+
return undefined;
|
|
263
|
+
}
|
|
264
|
+
// We are dealing with a local version
|
|
265
|
+
if (versionLine.includes("=>")) {
|
|
266
|
+
logging_1.logger.debug(`Found local version for '${goPackageName}': ${versionLine}`);
|
|
267
|
+
versionLine = versionLine.split("=>")[0].trim();
|
|
268
|
+
}
|
|
269
|
+
return (_a = versionLine.split(" ").pop()) === null || _a === void 0 ? void 0 : _a.replace("v", "");
|
|
270
|
+
}
|
|
271
|
+
async function getMavenPackageVersion(packageName) {
|
|
272
|
+
const translationMap = {
|
|
273
|
+
jsii: "jsii-runtime",
|
|
274
|
+
};
|
|
275
|
+
const javaPackageName = translationMap[packageName] || packageName;
|
|
276
|
+
let output;
|
|
277
|
+
try {
|
|
278
|
+
output = await (0, util_1.exec)("mvn", ["dependency:list"], {
|
|
279
|
+
env: process.env,
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
catch (e) {
|
|
283
|
+
logging_1.logger.debug(`Unable to run 'mvn dependency:list': ${e}`);
|
|
284
|
+
return undefined;
|
|
285
|
+
}
|
|
286
|
+
const resolutionPart = output.split("The following files have been resolved")[1];
|
|
287
|
+
if (!resolutionPart) {
|
|
288
|
+
logging_1.logger.debug(`Unable to find resolution passage in output of 'mvn dependency:list': ${output}`);
|
|
289
|
+
return undefined;
|
|
290
|
+
}
|
|
291
|
+
// We need to search for the package name AND a colon to not match a line like
|
|
292
|
+
// [INFO] com.hashicorp:cdktf-provider-aws:jar:9.0.9:compile
|
|
293
|
+
// when looking for the cdktf package (see Github issue #1994)
|
|
294
|
+
const versionLine = resolutionPart
|
|
295
|
+
.split(/\r\n|\r|\n/)
|
|
296
|
+
.find((line) => line.includes(`${javaPackageName}:`));
|
|
297
|
+
if (!versionLine) {
|
|
298
|
+
logging_1.logger.debug(`Unable to find version for '${javaPackageName}' in output of 'mvn dependency:list': ${output}`);
|
|
299
|
+
return undefined;
|
|
300
|
+
}
|
|
301
|
+
// Example line: [INFO] com.hashicorp:cdktf:jar:0.0.0:compile
|
|
302
|
+
const versionStartDelimiter = `${javaPackageName}:jar:`;
|
|
303
|
+
const versionStart = versionLine.indexOf(versionStartDelimiter) + versionStartDelimiter.length;
|
|
304
|
+
const versionEndDelemiter = ":compile";
|
|
305
|
+
const versionEnd = versionLine.indexOf(versionEndDelemiter);
|
|
306
|
+
return versionLine.substring(versionStart, versionEnd);
|
|
307
|
+
}
|
|
308
|
+
async function getJavaPackageVersion(packageName) {
|
|
309
|
+
if ((0, gradle_1.isGradleProject)("./")) {
|
|
310
|
+
return (0, gradle_1.getGradlePackageVersion)(packageName);
|
|
311
|
+
}
|
|
312
|
+
return getMavenPackageVersion(packageName);
|
|
313
|
+
}
|
|
314
|
+
async function getPackageVersion(language, packageName) {
|
|
315
|
+
const noOp = async () => undefined;
|
|
316
|
+
const getLibraryVersionMap = {
|
|
317
|
+
typescript: getNodeModuleVersion,
|
|
318
|
+
python: getPythonPackageVersion,
|
|
319
|
+
go: getGoPackageVersion,
|
|
320
|
+
csharp: getCSharpPackageVersion,
|
|
321
|
+
java: getJavaPackageVersion,
|
|
322
|
+
};
|
|
323
|
+
const libVersion = await (getLibraryVersionMap[language] || noOp)(packageName);
|
|
324
|
+
return libVersion !== null && libVersion !== void 0 ? libVersion : undefined;
|
|
325
|
+
}
|
|
326
|
+
exports.getPackageVersion = getPackageVersion;
|
|
327
|
+
async function collectDebugInformation() {
|
|
328
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
329
|
+
const debugOutput = {};
|
|
330
|
+
const language = getLanguage();
|
|
331
|
+
debugOutput["language"] = language !== null && language !== void 0 ? language : null;
|
|
332
|
+
debugOutput["cdktn-cli"] = version_1.DISPLAY_VERSION;
|
|
333
|
+
const node = getNodeVersion();
|
|
334
|
+
debugOutput["node"] = (_a = (await node)) !== null && _a !== void 0 ? _a : null;
|
|
335
|
+
if (language) {
|
|
336
|
+
const cdktn = getPackageVersion(language, "cdktn");
|
|
337
|
+
const cdktf = getPackageVersion(language, "cdktf");
|
|
338
|
+
const constructs = getPackageVersion(language, "constructs");
|
|
339
|
+
const jsii = getPackageVersion(language, "jsii");
|
|
340
|
+
debugOutput["cdktn"] = (_b = (await cdktn)) !== null && _b !== void 0 ? _b : null;
|
|
341
|
+
debugOutput["cdktf"] = (_c = (await cdktf)) !== null && _c !== void 0 ? _c : null;
|
|
342
|
+
debugOutput["constructs"] = (_d = (await constructs)) !== null && _d !== void 0 ? _d : null;
|
|
343
|
+
debugOutput["jsii"] = (_e = (await jsii)) !== null && _e !== void 0 ? _e : null;
|
|
344
|
+
}
|
|
345
|
+
debugOutput["terraform"] = await terraform_1.terraformVersion;
|
|
346
|
+
debugOutput["arch"] = os.arch();
|
|
347
|
+
debugOutput["os"] = `${os.platform()} ${os.release()}`;
|
|
348
|
+
switch (language) {
|
|
349
|
+
case "python":
|
|
350
|
+
{
|
|
351
|
+
const python = getPythonVersion();
|
|
352
|
+
const pip = getPipVersion();
|
|
353
|
+
const pipenv = getPipenvVersion();
|
|
354
|
+
debugOutput["python"] = (_f = (await python)) !== null && _f !== void 0 ? _f : null;
|
|
355
|
+
debugOutput["pip"] = (_g = (await pip)) !== null && _g !== void 0 ? _g : null;
|
|
356
|
+
debugOutput["pipenv"] = (_h = (await pipenv)) !== null && _h !== void 0 ? _h : null;
|
|
357
|
+
}
|
|
358
|
+
break;
|
|
359
|
+
case "java":
|
|
360
|
+
{
|
|
361
|
+
const java = getJavaVersion();
|
|
362
|
+
const maven = getMavenVersion();
|
|
363
|
+
const gradle = getGradleVersion();
|
|
364
|
+
debugOutput["java"] = (_j = (await java)) !== null && _j !== void 0 ? _j : null;
|
|
365
|
+
debugOutput["maven"] = (_k = (await maven)) !== null && _k !== void 0 ? _k : null;
|
|
366
|
+
debugOutput["gradle"] = (_l = (await gradle)) !== null && _l !== void 0 ? _l : null;
|
|
367
|
+
}
|
|
368
|
+
break;
|
|
369
|
+
case "csharp":
|
|
370
|
+
debugOutput["dotnet"] = (_m = (await getDotnetVersion())) !== null && _m !== void 0 ? _m : null;
|
|
371
|
+
break;
|
|
372
|
+
case "go":
|
|
373
|
+
debugOutput["go"] = (_o = (await getGoVersion())) !== null && _o !== void 0 ? _o : null;
|
|
374
|
+
break;
|
|
375
|
+
}
|
|
376
|
+
return debugOutput;
|
|
377
|
+
}
|
|
378
|
+
exports.collectDebugInformation = collectDebugInformation;
|
|
379
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDJDQUE2QjtBQUM3Qix1Q0FBeUI7QUFDekIsdUNBQW1DO0FBQ25DLGlDQUE4QjtBQUM5QiwyQ0FBK0M7QUFDL0MsdUNBQTRDO0FBQzVDLHVDQUFvRDtBQUNwRCxxQ0FBb0U7QUFFcEUsU0FBZ0IsV0FBVyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO0lBQ3JELElBQUksQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQzFCLElBQUEsdUJBQVksRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FDL0QsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBQUMsV0FBTSxDQUFDO1FBQ1AsaUNBQWlDO1FBQ2pDLGdCQUFNLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBWEQsa0NBV0M7QUFFRCxLQUFLLFVBQVUsZ0JBQWdCLENBQzdCLE1BQWMsRUFDZCxjQUFzQjtJQUV0QixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDdEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLFdBQUksRUFDdkIsTUFBTSxFQUNOLENBQUMsY0FBYyxDQUFDLEVBQ2hCLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUM3RCxJQUFJLEVBQ0os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Q0FBQztnQkFDOUIsTUFBTSxLQUFLLEdBQUcsZUFBZSxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixFQUFFLENBQUM7Z0JBQ2xDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxJQUFJLENBQUMsbUNBQUksSUFBSSxDQUFDO2dCQUMzQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBQSxDQUFDLE1BQU0sS0FBSyxDQUFDLG1DQUFJLElBQUksQ0FBQztnQkFDN0MsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxtQ0FBSSxJQUFJLENBQUM7WUFDakQsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLFFBQVE7WUFDWCxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBQSxDQUFDLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQyxtQ0FBSSxJQUFJLENBQUM7WUFDM0QsTUFBTTtRQUNSLEtBQUssSUFBSTtZQUNQLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxZQUFZLEVBQUUsQ0FBQyxtQ0FBSSxJQUFJLENBQUM7WUFDbkQsTUFBTTtJQUNWLENBQUM7SUFFRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBdERELDBEQXNEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCB7IGV4ZWMgfSBmcm9tIFwiLi91dGlsXCI7XG5pbXBvcnQgeyB0ZXJyYWZvcm1WZXJzaW9uIH0gZnJvbSBcIi4vdGVycmFmb3JtXCI7XG5pbXBvcnQgeyBESVNQTEFZX1ZFUlNJT04gfSBmcm9tIFwiLi92ZXJzaW9uXCI7XG5pbXBvcnQgeyBwYXRoRXhpc3RzLCByZWFkRmlsZVN5bmMgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCB7IGdldEdyYWRsZVBhY2thZ2VWZXJzaW9uLCBpc0dyYWRsZVByb2plY3QgfSBmcm9tIFwiLi9ncmFkbGVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldExhbmd1YWdlKHByb2plY3RQYXRoID0gcHJvY2Vzcy5jd2QoKSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHRyeSB7XG4gICAgY29uc3QgY2RrdGZKc29uID0gSlNPTi5wYXJzZShcbiAgICAgIHJlYWRGaWxlU3luYyhwYXRoLnJlc29sdmUocHJvamVjdFBhdGgsIFwiY2RrdGYuanNvblwiKSwgXCJ1dGYtOFwiKSxcbiAgICApO1xuICAgIHJldHVybiBjZGt0Zkpzb24ubGFuZ3VhZ2U7XG4gIH0gY2F0Y2gge1xuICAgIC8vIFdlIGNhbiBub3QgZGV0ZWN0IHRoZSBsYW5ndWFnZVxuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIGRldGVjdCBsYW5ndWFnZSBpbiAke3Byb2plY3RQYXRofWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QmluYXJ5VmVyc2lvbihcbiAgYmluYXJ5OiBzdHJpbmcsXG4gIHZlcnNpb25Db21tYW5kOiBzdHJpbmcsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBub09wID0gKCkgPT4ge307XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlYyhcbiAgICAgIGJpbmFyeSxcbiAgICAgIFt2ZXJzaW9uQ29tbWFuZF0sXG4gICAgICB7IGVudjogcHJvY2Vzcy5lbnYsIHN0ZGlvOiBbdW5kZWZpbmVkLCB1bmRlZmluZWQsIFwiaWdub3JlXCJdIH0sXG4gICAgICBub09wLFxuICAgICAgbm9PcCxcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQudHJpbSgpLnJlcGxhY2UoL1xccj9cXG58XFxyL2csIFwiXCIpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBGYWlsZWQgdG8gcnVuICR7YmluYXJ5fSAke3ZlcnNpb25Db21tYW5kfTogJHtlfWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERvdG5ldFZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwiZG90bmV0XCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SmF2YVZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwiamF2YVwiLCBcIi12ZXJzaW9uXCIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldE1hdmVuVmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJtdm5cIiwgXCItLXZlcnNpb25cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHcmFkbGVWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcImdyYWRsZVwiLCBcIi0tdmVyc2lvblwiKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFB5dGhvblZlcnNpb24oKSB7XG4gIHJldHVybiAoXG4gICAgKGF3YWl0IGdldEJpbmFyeVZlcnNpb24oXCJweXRob24zXCIsIFwiLS12ZXJzaW9uXCIpKSB8fFxuICAgIChhd2FpdCBnZXRCaW5hcnlWZXJzaW9uKFwicHl0aG9uXCIsIFwiLS12ZXJzaW9uXCIpKVxuICApO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFBpcFZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwicGlwXCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFBpcGVudlZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwicGlwZW52XCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0R29WZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcImdvXCIsIFwidmVyc2lvblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5vZGVWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcIm5vZGVcIiwgXCItLXZlcnNpb25cIik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE5vZGVNb2R1bGVWZXJzaW9uKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgLy8gVXNlIHRoZSBwcmVzZW5jZSBvZiB0aGUgcG5wbSBsb2NrIGZpbGUgYXMgYSBzaWduYWwgdGhhdFxuICAvLyB3ZSBzaG91bGQgaW50ZXJyb2dhdGUgcGFja2FnZXMgdmlhIHBucG0gaW5zdGVhZCBvZiBucG0uXG4gIGNvbnN0IHVzaW5nUG5wbSA9IGF3YWl0IHBhdGhFeGlzdHMoXCJwbnBtLWxvY2sueWFtbFwiKTtcblxuICByZXR1cm4gdXNpbmdQbnBtXG4gICAgPyBnZXRQbnBtTm9kZU1vZHVsZVZlcnNpb24ocGFja2FnZU5hbWUpXG4gICAgOiBnZXROcG1Ob2RlTW9kdWxlVmVyc2lvbihwYWNrYWdlTmFtZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFBucG1Ob2RlTW9kdWxlVmVyc2lvbihcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGxldCBvdXRwdXQ7XG5cbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwicG5wbVwiLCBbXCJsaXN0XCIsIHBhY2thZ2VOYW1lLCBcIi0tanNvblwiXSwge1xuICAgICAgZW52OiB7IC4uLnByb2Nlc3MuZW52IH0sXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBydW4gJ3BucG0gbGlzdCAke3BhY2thZ2VOYW1lfSAtLWpzb24nOiAke2V9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGxldCBqc29uO1xuICB0cnkge1xuICAgIGpzb24gPSBKU09OLnBhcnNlKG91dHB1dCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIHBhcnNlIG91dHB1dCBvZiAncG5wbSBsaXN0ICR7cGFja2FnZU5hbWV9IC0tanNvbic6ICR7ZX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChcbiAgICAhanNvbiB8fFxuICAgICFBcnJheS5pc0FycmF5KGpzb24pIHx8XG4gICAganNvbi5sZW5ndGggPT09IDAgfHxcbiAgICAhanNvblswXT8uZGVwZW5kZW5jaWVzPy5bcGFja2FnZU5hbWVdPy52ZXJzaW9uXG4gICkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCAnJHtwYWNrYWdlTmFtZX0nIGluICdwbnBtIGxpc3QgJHtwYWNrYWdlTmFtZX0gLS1qc29uJzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4ganNvblswXS5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdLnZlcnNpb247XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE5wbU5vZGVNb2R1bGVWZXJzaW9uKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgbGV0IG91dHB1dDtcblxuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJucG1cIiwgW1wibGlzdFwiLCBwYWNrYWdlTmFtZSwgXCItLWpzb25cIl0sIHtcbiAgICAgIGVudjogeyAuLi5wcm9jZXNzLmVudiB9LFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICducG0gbGlzdCAke3BhY2thZ2VOYW1lfSAtLWpzb24nOiAke2V9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGxldCBqc29uO1xuICB0cnkge1xuICAgIGpzb24gPSBKU09OLnBhcnNlKG91dHB1dCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIHBhcnNlIG91dHB1dCBvZiAnbnBtIGxpc3QgJHtwYWNrYWdlTmFtZX0gLS1qc29uJzogJHtlfWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKFxuICAgICFqc29uLmRlcGVuZGVuY2llcyB8fFxuICAgICFqc29uLmRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gfHxcbiAgICAhanNvbi5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdLnZlcnNpb25cbiAgKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kICcke3BhY2thZ2VOYW1lfScgaW4gJ25wbSBsaXN0ICR7cGFja2FnZU5hbWV9IC0tanNvbic6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIGpzb24uZGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXS52ZXJzaW9uO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRQeXRob25QYWNrYWdlVmVyc2lvbihcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGxldCBvdXRwdXQ7XG4gIHRyeSB7XG4gICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBpcGVudlwiLCBbXCJydW5cIiwgXCJwaXBcIiwgXCJzaG93XCIsIFwiLXFxXCIsIHBhY2thZ2VOYW1lXSwge1xuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICB9KTtcblxuICAgIC8vIFJ1bm5pbmcgd2l0aCBgLXFxYCBzdXBwcmVzc2VzIGJvdGggbWlzc2luZyBwYWNrYWdlcyBhbmQgYWN0dWFsIHBhY2thZ2VcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwicGlwZW52XCIsIFtcInJ1blwiLCBcInBpcFwiLCBcInNob3dcIiwgcGFja2FnZU5hbWVdLCB7XG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICdwaXBlbnYgcnVuIHBpcCBzaG93ICR7cGFja2FnZU5hbWV9JzogJHtlfWApO1xuICB9XG5cbiAgLy8gSWYgd2UgY291bGRuJ3QgZ2V0IHRoZSBvdXRwdXQgdXNpbmcgcGlwZW52LCB0cnkgdG8gZ2V0IGl0IHVzaW5nIHBpcCBkaXJlY3RseVxuICBpZiAoIW91dHB1dCkge1xuICAgIHRyeSB7XG4gICAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwicGlwXCIsIFtcInNob3dcIiwgXCItcXFcIiwgcGFja2FnZU5hbWVdLCB7XG4gICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICB9KTtcblxuICAgICAgLy8gUnVubmluZyB3aXRoIGAtcXFgIHN1cHByZXNzZXMgYm90aCBtaXNzaW5nIHBhY2thZ2VzIGFuZCBhY3R1YWwgcGFja2FnZVxuICAgICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBpcFwiLCBbXCJzaG93XCIsIHBhY2thZ2VOYW1lXSwge1xuICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICdwaXAgc2hvdyAke3BhY2thZ2VOYW1lfSc6ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIW91dHB1dCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCB2ZXJzaW9uSW5mbyA9IG91dHB1dFxuICAgIC5zcGxpdCgvXFxyXFxufFxccnxcXG4vKVxuICAgIC5maW5kKChsaW5lKSA9PiBsaW5lLnN0YXJ0c1dpdGgoXCJWZXJzaW9uOlwiKSk7XG5cbiAgaWYgKCF2ZXJzaW9uSW5mbykge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCB2ZXJzaW9uIGluIG91dHB1dCBvZiAncGlwZW52IHJ1biBwaXAgc2hvdyAke3BhY2thZ2VOYW1lfScgLyAncGlwIHNob3cgJHtwYWNrYWdlTmFtZX0nOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uSW5mby5zcGxpdChcIjpcIilbMV0udHJpbSgpO1xuICByZXR1cm4gdmVyc2lvbjtcbn1cblxuLy8gT25jZSBodHRwczovL2dpdGh1Yi5jb20vTnVHZXQvSG9tZS9pc3N1ZXMvNzc1MiBnZXRzIHJlc29sdmVkIHdlIGNhbiBhbHNvIHRyeSB3aXRoIC0tanNvblxuYXN5bmMgZnVuY3Rpb24gZ2V0Q1NoYXJwUGFja2FnZVZlcnNpb24ocGFja2FnZU5hbWU6IHN0cmluZykge1xuICBjb25zdCB0cmFuc2xhdGlvbk1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBqc2lpOiBcIkFtYXpvbi5KU0lJLlJ1bnRpbWVcIixcbiAgICBjb25zdHJ1Y3RzOiBcIkNvbnN0cnVjdHNcIixcbiAgICBjZGt0ZjogXCJIYXNoaUNvcnAuQ2RrdGZcIixcbiAgICBjZGt0bjogXCJJby5DZGt0blwiLFxuICB9O1xuICBjb25zdCBjU2hhcnBQYWNrYWdlTmFtZSA9IHRyYW5zbGF0aW9uTWFwW3BhY2thZ2VOYW1lXSB8fCBwYWNrYWdlTmFtZTtcblxuICBsZXQgb3V0cHV0O1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJkb3RuZXRcIiwgW1wibGlzdFwiLCBcInBhY2thZ2VcIiwgXCItLWluY2x1ZGUtdHJhbnNpdGl2ZVwiXSwge1xuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gcnVuICdkb3RuZXQgbGlzdCBwYWNrYWdlIC0taW5jbHVkZS10cmFuc2l0aXZlJzogJHtlfWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgdmVyc2lvbkxpbmUgPSBvdXRwdXRcbiAgICAuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLylcbiAgICAuZmluZCgobGluZSkgPT4gbGluZS5pbmNsdWRlcyhgPiAke2NTaGFycFBhY2thZ2VOYW1lfWApKTtcblxuICBpZiAoIXZlcnNpb25MaW5lKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIHZlcnNpb24gZm9yICcke2NTaGFycFBhY2thZ2VOYW1lfScgaW4gb3V0cHV0IG9mICdkb3RuZXQgbGlzdCBwYWNrYWdlIC0taW5jbHVkZS10cmFuc2l0aXZlJzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBBIGxpbmUgbWlnaHQgbG9vayBsaWtlIHRoaXM6XG4gIC8vICAgVHJhbnNpdGl2ZSBQYWNrYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc29sdmVkXG4gIC8vICAgPiBBbWF6b24uSlNJSS5SdW50aW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMTcuMVxuICAvLyBUaGVyZWZvcmUgd2UgcmV2ZXJzZSBzcGxpdCBieSB3aGl0ZXNwYWNlIGFuZCByZXZlcnNlXG4gIC8vIHNvIHRoYXQgdGhlIGZpcnN0IHRoaW5nIHdlIGZpbmQgaXMgdGhlIHZlcnNpb24gbnVtYmVyXG4gIHJldHVybiB2ZXJzaW9uTGluZVxuICAgIC5zcGxpdChcIiBcIilcbiAgICAucmV2ZXJzZSgpXG4gICAgLmZpbmQoKHBhcnQpID0+IHBhcnQgIT09IFwiXCIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRHb1BhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAganNpaTogXCJqc2lpLXJ1bnRpbWUtZ29cIixcbiAgICBjZGt0ZjogXCJnaXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrLWdvXCIsXG4gICAgY2RrdG46IFwiZ2l0aHViLmNvbS9vcGVuLWNvbnN0cnVjdHMvY2RrLXRlcnJhaW4tZ29cIixcbiAgfTtcbiAgY29uc3QgZ29QYWNrYWdlTmFtZSA9IHRyYW5zbGF0aW9uTWFwW3BhY2thZ2VOYW1lXSB8fCBwYWNrYWdlTmFtZTtcblxuICBsZXQgb3V0cHV0O1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJnb1wiLCBbXCJsaXN0XCIsIFwiLW1cIiwgXCJhbGxcIl0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBydW4gJ2dvIGxpc3QgLW0gYWxsJzogJHtlfWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBsZXQgdmVyc2lvbkxpbmUgPSBvdXRwdXRcbiAgICAuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLylcbiAgICAuZmluZCgobGluZSkgPT4gbGluZS5pbmNsdWRlcyhnb1BhY2thZ2VOYW1lKSk7XG5cbiAgaWYgKCF2ZXJzaW9uTGluZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCB2ZXJzaW9uIGZvciAnJHtnb1BhY2thZ2VOYW1lfScgaW4gb3V0cHV0IG9mICdnbyBsaXN0IC1tIGFsbCc6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gV2UgYXJlIGRlYWxpbmcgd2l0aCBhIGxvY2FsIHZlcnNpb25cbiAgaWYgKHZlcnNpb25MaW5lLmluY2x1ZGVzKFwiPT5cIikpIHtcbiAgICBsb2dnZXIuZGVidWcoYEZvdW5kIGxvY2FsIHZlcnNpb24gZm9yICcke2dvUGFja2FnZU5hbWV9JzogJHt2ZXJzaW9uTGluZX1gKTtcbiAgICB2ZXJzaW9uTGluZSA9IHZlcnNpb25MaW5lLnNwbGl0KFwiPT5cIilbMF0udHJpbSgpO1xuICB9XG5cbiAgcmV0dXJuIHZlcnNpb25MaW5lLnNwbGl0KFwiIFwiKS5wb3AoKT8ucmVwbGFjZShcInZcIiwgXCJcIik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE1hdmVuUGFja2FnZVZlcnNpb24ocGFja2FnZU5hbWU6IHN0cmluZykge1xuICBjb25zdCB0cmFuc2xhdGlvbk1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBqc2lpOiBcImpzaWktcnVudGltZVwiLFxuICB9O1xuICBjb25zdCBqYXZhUGFja2FnZU5hbWUgPSB0cmFuc2xhdGlvbk1hcFtwYWNrYWdlTmFtZV0gfHwgcGFja2FnZU5hbWU7XG5cbiAgbGV0IG91dHB1dDtcbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwibXZuXCIsIFtcImRlcGVuZGVuY3k6bGlzdFwiXSwge1xuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAnbXZuIGRlcGVuZGVuY3k6bGlzdCc6ICR7ZX1gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgcmVzb2x1dGlvblBhcnQgPSBvdXRwdXQuc3BsaXQoXG4gICAgXCJUaGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgYmVlbiByZXNvbHZlZFwiLFxuICApWzFdO1xuICBpZiAoIXJlc29sdXRpb25QYXJ0KSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIHJlc29sdXRpb24gcGFzc2FnZSBpbiBvdXRwdXQgb2YgJ212biBkZXBlbmRlbmN5Omxpc3QnOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIFdlIG5lZWQgdG8gc2VhcmNoIGZvciB0aGUgcGFja2FnZSBuYW1lIEFORCBhIGNvbG9uIHRvIG5vdCBtYXRjaCBhIGxpbmUgbGlrZVxuICAvLyBbSU5GT10gICAgY29tLmhhc2hpY29ycDpjZGt0Zi1wcm92aWRlci1hd3M6amFyOjkuMC45OmNvbXBpbGVcbiAgLy8gd2hlbiBsb29raW5nIGZvciB0aGUgY2RrdGYgcGFja2FnZSAoc2VlIEdpdGh1YiBpc3N1ZSAjMTk5NClcbiAgY29uc3QgdmVyc2lvbkxpbmUgPSByZXNvbHV0aW9uUGFydFxuICAgIC5zcGxpdCgvXFxyXFxufFxccnxcXG4vKVxuICAgIC5maW5kKChsaW5lKSA9PiBsaW5lLmluY2x1ZGVzKGAke2phdmFQYWNrYWdlTmFtZX06YCkpO1xuXG4gIGlmICghdmVyc2lvbkxpbmUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgdmVyc2lvbiBmb3IgJyR7amF2YVBhY2thZ2VOYW1lfScgaW4gb3V0cHV0IG9mICdtdm4gZGVwZW5kZW5jeTpsaXN0JzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBFeGFtcGxlIGxpbmU6IFtJTkZPXSAgICBjb20uaGFzaGljb3JwOmNka3RmOmphcjowLjAuMDpjb21waWxlXG4gIGNvbnN0IHZlcnNpb25TdGFydERlbGltaXRlciA9IGAke2phdmFQYWNrYWdlTmFtZX06amFyOmA7XG4gIGNvbnN0IHZlcnNpb25TdGFydCA9XG4gICAgdmVyc2lvbkxpbmUuaW5kZXhPZih2ZXJzaW9uU3RhcnREZWxpbWl0ZXIpICsgdmVyc2lvblN0YXJ0RGVsaW1pdGVyLmxlbmd0aDtcbiAgY29uc3QgdmVyc2lvbkVuZERlbGVtaXRlciA9IFwiOmNvbXBpbGVcIjtcbiAgY29uc3QgdmVyc2lvbkVuZCA9IHZlcnNpb25MaW5lLmluZGV4T2YodmVyc2lvbkVuZERlbGVtaXRlcik7XG4gIHJldHVybiB2ZXJzaW9uTGluZS5zdWJzdHJpbmcodmVyc2lvblN0YXJ0LCB2ZXJzaW9uRW5kKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0SmF2YVBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgaWYgKGlzR3JhZGxlUHJvamVjdChcIi4vXCIpKSB7XG4gICAgcmV0dXJuIGdldEdyYWRsZVBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lKTtcbiAgfVxuXG4gIHJldHVybiBnZXRNYXZlblBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFBhY2thZ2VWZXJzaW9uKFxuICBsYW5ndWFnZTogc3RyaW5nLFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3Qgbm9PcCA9IGFzeW5jICgpID0+IHVuZGVmaW5lZDtcbiAgY29uc3QgZ2V0TGlicmFyeVZlcnNpb25NYXA6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAgKG5hbWU6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+XG4gID4gPSB7XG4gICAgdHlwZXNjcmlwdDogZ2V0Tm9kZU1vZHVsZVZlcnNpb24sXG4gICAgcHl0aG9uOiBnZXRQeXRob25QYWNrYWdlVmVyc2lvbixcbiAgICBnbzogZ2V0R29QYWNrYWdlVmVyc2lvbixcbiAgICBjc2hhcnA6IGdldENTaGFycFBhY2thZ2VWZXJzaW9uLFxuICAgIGphdmE6IGdldEphdmFQYWNrYWdlVmVyc2lvbixcbiAgfTtcblxuICBjb25zdCBsaWJWZXJzaW9uID0gYXdhaXQgKGdldExpYnJhcnlWZXJzaW9uTWFwW2xhbmd1YWdlXSB8fCBub09wKShcbiAgICBwYWNrYWdlTmFtZSxcbiAgKTtcbiAgcmV0dXJuIGxpYlZlcnNpb24gPz8gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29sbGVjdERlYnVnSW5mb3JtYXRpb24oKSB7XG4gIGNvbnN0IGRlYnVnT3V0cHV0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPiA9IHt9O1xuICBjb25zdCBsYW5ndWFnZSA9IGdldExhbmd1YWdlKCk7XG4gIGRlYnVnT3V0cHV0W1wibGFuZ3VhZ2VcIl0gPSBsYW5ndWFnZSA/PyBudWxsO1xuICBkZWJ1Z091dHB1dFtcImNka3RuLWNsaVwiXSA9IERJU1BMQVlfVkVSU0lPTjtcblxuICBjb25zdCBub2RlID0gZ2V0Tm9kZVZlcnNpb24oKTtcblxuICBkZWJ1Z091dHB1dFtcIm5vZGVcIl0gPSAoYXdhaXQgbm9kZSkgPz8gbnVsbDtcbiAgaWYgKGxhbmd1YWdlKSB7XG4gICAgY29uc3QgY2RrdG4gPSBnZXRQYWNrYWdlVmVyc2lvbihsYW5ndWFnZSwgXCJjZGt0blwiKTtcbiAgICBjb25zdCBjZGt0ZiA9IGdldFBhY2thZ2VWZXJzaW9uKGxhbmd1YWdlLCBcImNka3RmXCIpO1xuICAgIGNvbnN0IGNvbnN0cnVjdHMgPSBnZXRQYWNrYWdlVmVyc2lvbihsYW5ndWFnZSwgXCJjb25zdHJ1Y3RzXCIpO1xuICAgIGNvbnN0IGpzaWkgPSBnZXRQYWNrYWdlVmVyc2lvbihsYW5ndWFnZSwgXCJqc2lpXCIpO1xuXG4gICAgZGVidWdPdXRwdXRbXCJjZGt0blwiXSA9IChhd2FpdCBjZGt0bikgPz8gbnVsbDtcbiAgICBkZWJ1Z091dHB1dFtcImNka3RmXCJdID0gKGF3YWl0IGNka3RmKSA/PyBudWxsO1xuICAgIGRlYnVnT3V0cHV0W1wiY29uc3RydWN0c1wiXSA9IChhd2FpdCBjb25zdHJ1Y3RzKSA/PyBudWxsO1xuICAgIGRlYnVnT3V0cHV0W1wianNpaVwiXSA9IChhd2FpdCBqc2lpKSA/PyBudWxsO1xuICB9XG4gIGRlYnVnT3V0cHV0W1widGVycmFmb3JtXCJdID0gYXdhaXQgdGVycmFmb3JtVmVyc2lvbjtcbiAgZGVidWdPdXRwdXRbXCJhcmNoXCJdID0gb3MuYXJjaCgpO1xuICBkZWJ1Z091dHB1dFtcIm9zXCJdID0gYCR7b3MucGxhdGZvcm0oKX0gJHtvcy5yZWxlYXNlKCl9YDtcblxuICBzd2l0Y2ggKGxhbmd1YWdlKSB7XG4gICAgY2FzZSBcInB5dGhvblwiOlxuICAgICAge1xuICAgICAgICBjb25zdCBweXRob24gPSBnZXRQeXRob25WZXJzaW9uKCk7XG4gICAgICAgIGNvbnN0IHBpcCA9IGdldFBpcFZlcnNpb24oKTtcbiAgICAgICAgY29uc3QgcGlwZW52ID0gZ2V0UGlwZW52VmVyc2lvbigpO1xuICAgICAgICBkZWJ1Z091dHB1dFtcInB5dGhvblwiXSA9IChhd2FpdCBweXRob24pID8/IG51bGw7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wicGlwXCJdID0gKGF3YWl0IHBpcCkgPz8gbnVsbDtcbiAgICAgICAgZGVidWdPdXRwdXRbXCJwaXBlbnZcIl0gPSAoYXdhaXQgcGlwZW52KSA/PyBudWxsO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImphdmFcIjpcbiAgICAgIHtcbiAgICAgICAgY29uc3QgamF2YSA9IGdldEphdmFWZXJzaW9uKCk7XG4gICAgICAgIGNvbnN0IG1hdmVuID0gZ2V0TWF2ZW5WZXJzaW9uKCk7XG4gICAgICAgIGNvbnN0IGdyYWRsZSA9IGdldEdyYWRsZVZlcnNpb24oKTtcbiAgICAgICAgZGVidWdPdXRwdXRbXCJqYXZhXCJdID0gKGF3YWl0IGphdmEpID8/IG51bGw7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wibWF2ZW5cIl0gPSAoYXdhaXQgbWF2ZW4pID8/IG51bGw7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wiZ3JhZGxlXCJdID0gKGF3YWl0IGdyYWRsZSkgPz8gbnVsbDtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJjc2hhcnBcIjpcbiAgICAgIGRlYnVnT3V0cHV0W1wiZG90bmV0XCJdID0gKGF3YWl0IGdldERvdG5ldFZlcnNpb24oKSkgPz8gbnVsbDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJnb1wiOlxuICAgICAgZGVidWdPdXRwdXRbXCJnb1wiXSA9IChhd2FpdCBnZXRHb1ZlcnNpb24oKSkgPz8gbnVsbDtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGRlYnVnT3V0cHV0O1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,qBAAqB,SAEjC,CAAC;AAGF,eAAO,MAAM,kBAAkB,SAA0C,CAAC;AAE1E,eAAO,MAAM,8BAA8B,SAE1C,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) HashiCorp, Inc
|
|
3
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
// All switches based on environment variables in one place
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CDKTF_DISABLE_PLUGIN_CACHE_ENV = exports.CHECKPOINT_DISABLE = exports.DISABLE_VERSION_CHECK = void 0;
|
|
7
|
+
function envVarToBoolean(envVar) {
|
|
8
|
+
return envVar === "true" || envVar === "1";
|
|
9
|
+
}
|
|
10
|
+
exports.DISABLE_VERSION_CHECK = envVarToBoolean(process.env.DISABLE_VERSION_CHECK);
|
|
11
|
+
// This is a Terraform global environment variable, so we can't use the same logic as the other env vars
|
|
12
|
+
// https://www.terraform.io/cli/commands#upgrade-and-security-bulletin-checks
|
|
13
|
+
exports.CHECKPOINT_DISABLE = Boolean(process.env.CHECKPOINT_DISABLE);
|
|
14
|
+
exports.CDKTF_DISABLE_PLUGIN_CACHE_ENV = envVarToBoolean(process.env.CDKTF_DISABLE_PLUGIN_CACHE_ENV);
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsMkRBQTJEOzs7QUFFM0QsU0FBUyxlQUFlLENBQUMsTUFBMEI7SUFDakQsT0FBTyxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sS0FBSyxHQUFHLENBQUM7QUFDN0MsQ0FBQztBQUVZLFFBQUEscUJBQXFCLEdBQUcsZUFBZSxDQUNsRCxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUNsQyxDQUFDO0FBQ0Ysd0dBQXdHO0FBQ3hHLDZFQUE2RTtBQUNoRSxRQUFBLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFN0QsUUFBQSw4QkFBOEIsR0FBRyxlQUFlLENBQzNELE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuLy8gQWxsIHN3aXRjaGVzIGJhc2VkIG9uIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiBvbmUgcGxhY2VcblxuZnVuY3Rpb24gZW52VmFyVG9Cb29sZWFuKGVudlZhcjogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIHJldHVybiBlbnZWYXIgPT09IFwidHJ1ZVwiIHx8IGVudlZhciA9PT0gXCIxXCI7XG59XG5cbmV4cG9ydCBjb25zdCBESVNBQkxFX1ZFUlNJT05fQ0hFQ0sgPSBlbnZWYXJUb0Jvb2xlYW4oXG4gIHByb2Nlc3MuZW52LkRJU0FCTEVfVkVSU0lPTl9DSEVDSyxcbik7XG4vLyBUaGlzIGlzIGEgVGVycmFmb3JtIGdsb2JhbCBlbnZpcm9ubWVudCB2YXJpYWJsZSwgc28gd2UgY2FuJ3QgdXNlIHRoZSBzYW1lIGxvZ2ljIGFzIHRoZSBvdGhlciBlbnYgdmFyc1xuLy8gaHR0cHM6Ly93d3cudGVycmFmb3JtLmlvL2NsaS9jb21tYW5kcyN1cGdyYWRlLWFuZC1zZWN1cml0eS1idWxsZXRpbi1jaGVja3NcbmV4cG9ydCBjb25zdCBDSEVDS1BPSU5UX0RJU0FCTEUgPSBCb29sZWFuKHByb2Nlc3MuZW52LkNIRUNLUE9JTlRfRElTQUJMRSk7XG5cbmV4cG9ydCBjb25zdCBDREtURl9ESVNBQkxFX1BMVUdJTl9DQUNIRV9FTlYgPSBlbnZWYXJUb0Jvb2xlYW4oXG4gIHByb2Nlc3MuZW52LkNES1RGX0RJU0FCTEVfUExVR0lOX0NBQ0hFX0VOVixcbik7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAmBA,KAAK,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AACnD,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAEhE;AAsBD,eAAO,MAAM,MAAM;wBAlBN,MAAM,kBACA,KAAK,YACV,OAAO,MAAM,EAAE,GAAG,CAAC;qBAFpB,MAAM,kBACA,KAAK,YACV,OAAO,MAAM,EAAE,GAAG,CAAC;wBAFpB,MAAM,kBACA,KAAK,YACV,OAAO,MAAM,EAAE,GAAG,CAAC;oBAyBf,MAAM;CAIvB,CAAC"}
|
package/build/errors.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.Errors = exports.IsErrorType = void 0;
|
|
27
|
+
// Copyright (c) HashiCorp, Inc
|
|
28
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
29
|
+
const checkpoint_1 = require("./checkpoint");
|
|
30
|
+
const version_1 = require("./version");
|
|
31
|
+
const Sentry = __importStar(require("@sentry/node"));
|
|
32
|
+
// Errors that will emit telemetry events
|
|
33
|
+
async function report(command, payload) {
|
|
34
|
+
const reportParams = {
|
|
35
|
+
command,
|
|
36
|
+
product: "cdktn",
|
|
37
|
+
version: `${version_1.DISPLAY_VERSION}`,
|
|
38
|
+
dateTime: new Date(),
|
|
39
|
+
payload,
|
|
40
|
+
};
|
|
41
|
+
await (0, checkpoint_1.ReportRequest)(reportParams);
|
|
42
|
+
}
|
|
43
|
+
function IsErrorType(error, type) {
|
|
44
|
+
return error && error.__type === type;
|
|
45
|
+
}
|
|
46
|
+
exports.IsErrorType = IsErrorType;
|
|
47
|
+
function reportPrefixedError(type, command) {
|
|
48
|
+
return (message, originalError = new Error(), context) => {
|
|
49
|
+
report(command, { ...context, message, type });
|
|
50
|
+
const err = new Error(`${type} Error: ${message}`);
|
|
51
|
+
Object.entries(context || {}).forEach(([key, value]) => {
|
|
52
|
+
err[key] = value;
|
|
53
|
+
});
|
|
54
|
+
err.__type = type;
|
|
55
|
+
err.stack = originalError.stack;
|
|
56
|
+
return err;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// The CLI only deals with one command at a time, so we can just use the same
|
|
60
|
+
// scope for all errors and set it once during initialization.
|
|
61
|
+
let errorScope = "unknown";
|
|
62
|
+
exports.Errors = {
|
|
63
|
+
// Error within our control
|
|
64
|
+
Internal: reportPrefixedError("Internal", errorScope),
|
|
65
|
+
// Error in the usage
|
|
66
|
+
Usage: reportPrefixedError("Usage", errorScope),
|
|
67
|
+
// Error outside of our control (e.g. terraform failed)
|
|
68
|
+
External: reportPrefixedError("External", errorScope),
|
|
69
|
+
// Set the scope for all errors
|
|
70
|
+
setScope(scope) {
|
|
71
|
+
errorScope = scope;
|
|
72
|
+
Sentry.configureScope((s) => s.setTransactionName(scope));
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsNkNBQTJEO0FBQzNELHVDQUE0QztBQUM1QyxxREFBdUM7QUFFdkMseUNBQXlDO0FBQ3pDLEtBQUssVUFBVSxNQUFNLENBQUMsT0FBZSxFQUFFLE9BQTRCO0lBQ2pFLE1BQU0sWUFBWSxHQUFpQjtRQUNqQyxPQUFPO1FBQ1AsT0FBTyxFQUFFLE9BQU87UUFDaEIsT0FBTyxFQUFFLEdBQUcseUJBQWUsRUFBRTtRQUM3QixRQUFRLEVBQUUsSUFBSSxJQUFJLEVBQUU7UUFDcEIsT0FBTztLQUNSLENBQUM7SUFFRixNQUFNLElBQUEsMEJBQWEsRUFBQyxZQUFZLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBR0QsU0FBZ0IsV0FBVyxDQUFDLEtBQVUsRUFBRSxJQUFlO0lBQ3JELE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDO0FBQ3hDLENBQUM7QUFGRCxrQ0FFQztBQUVELFNBQVMsbUJBQW1CLENBQUMsSUFBZSxFQUFFLE9BQWU7SUFDM0QsT0FBTyxDQUNMLE9BQWUsRUFDZixnQkFBdUIsSUFBSSxLQUFLLEVBQUUsRUFDbEMsT0FBNkIsRUFDN0IsRUFBRTtRQUNGLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQyxNQUFNLEdBQUcsR0FBUSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksV0FBVyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDckQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUNoQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCw2RUFBNkU7QUFDN0UsOERBQThEO0FBQzlELElBQUksVUFBVSxHQUFHLFNBQVMsQ0FBQztBQUNkLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLDJCQUEyQjtJQUMzQixRQUFRLEVBQUUsbUJBQW1CLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUNyRCxxQkFBcUI7SUFDckIsS0FBSyxFQUFFLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUM7SUFDL0MsdURBQXVEO0lBQ3ZELFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO0lBRXJELCtCQUErQjtJQUMvQixRQUFRLENBQUMsS0FBYTtRQUNwQixVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IFJlcG9ydFBhcmFtcywgUmVwb3J0UmVxdWVzdCB9IGZyb20gXCIuL2NoZWNrcG9pbnRcIjtcbmltcG9ydCB7IERJU1BMQVlfVkVSU0lPTiB9IGZyb20gXCIuL3ZlcnNpb25cIjtcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tIFwiQHNlbnRyeS9ub2RlXCI7XG5cbi8vIEVycm9ycyB0aGF0IHdpbGwgZW1pdCB0ZWxlbWV0cnkgZXZlbnRzXG5hc3luYyBmdW5jdGlvbiByZXBvcnQoY29tbWFuZDogc3RyaW5nLCBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gIGNvbnN0IHJlcG9ydFBhcmFtczogUmVwb3J0UGFyYW1zID0ge1xuICAgIGNvbW1hbmQsXG4gICAgcHJvZHVjdDogXCJjZGt0blwiLFxuICAgIHZlcnNpb246IGAke0RJU1BMQVlfVkVSU0lPTn1gLFxuICAgIGRhdGVUaW1lOiBuZXcgRGF0ZSgpLFxuICAgIHBheWxvYWQsXG4gIH07XG5cbiAgYXdhaXQgUmVwb3J0UmVxdWVzdChyZXBvcnRQYXJhbXMpO1xufVxuXG50eXBlIEVycm9yVHlwZSA9IFwiSW50ZXJuYWxcIiB8IFwiRXh0ZXJuYWxcIiB8IFwiVXNhZ2VcIjtcbmV4cG9ydCBmdW5jdGlvbiBJc0Vycm9yVHlwZShlcnJvcjogYW55LCB0eXBlOiBFcnJvclR5cGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIGVycm9yICYmIGVycm9yLl9fdHlwZSA9PT0gdHlwZTtcbn1cblxuZnVuY3Rpb24gcmVwb3J0UHJlZml4ZWRFcnJvcih0eXBlOiBFcnJvclR5cGUsIGNvbW1hbmQ6IHN0cmluZykge1xuICByZXR1cm4gKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBvcmlnaW5hbEVycm9yOiBFcnJvciA9IG5ldyBFcnJvcigpLFxuICAgIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICApID0+IHtcbiAgICByZXBvcnQoY29tbWFuZCwgeyAuLi5jb250ZXh0LCBtZXNzYWdlLCB0eXBlIH0pO1xuICAgIGNvbnN0IGVycjogYW55ID0gbmV3IEVycm9yKGAke3R5cGV9IEVycm9yOiAke21lc3NhZ2V9YCk7XG4gICAgT2JqZWN0LmVudHJpZXMoY29udGV4dCB8fCB7fSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBlcnJba2V5XSA9IHZhbHVlO1xuICAgIH0pO1xuICAgIGVyci5fX3R5cGUgPSB0eXBlO1xuICAgIGVyci5zdGFjayA9IG9yaWdpbmFsRXJyb3Iuc3RhY2s7XG4gICAgcmV0dXJuIGVycjtcbiAgfTtcbn1cblxuLy8gVGhlIENMSSBvbmx5IGRlYWxzIHdpdGggb25lIGNvbW1hbmQgYXQgYSB0aW1lLCBzbyB3ZSBjYW4ganVzdCB1c2UgdGhlIHNhbWVcbi8vIHNjb3BlIGZvciBhbGwgZXJyb3JzIGFuZCBzZXQgaXQgb25jZSBkdXJpbmcgaW5pdGlhbGl6YXRpb24uXG5sZXQgZXJyb3JTY29wZSA9IFwidW5rbm93blwiO1xuZXhwb3J0IGNvbnN0IEVycm9ycyA9IHtcbiAgLy8gRXJyb3Igd2l0aGluIG91ciBjb250cm9sXG4gIEludGVybmFsOiByZXBvcnRQcmVmaXhlZEVycm9yKFwiSW50ZXJuYWxcIiwgZXJyb3JTY29wZSksXG4gIC8vIEVycm9yIGluIHRoZSB1c2FnZVxuICBVc2FnZTogcmVwb3J0UHJlZml4ZWRFcnJvcihcIlVzYWdlXCIsIGVycm9yU2NvcGUpLFxuICAvLyBFcnJvciBvdXRzaWRlIG9mIG91ciBjb250cm9sIChlLmcuIHRlcnJhZm9ybSBmYWlsZWQpXG4gIEV4dGVybmFsOiByZXBvcnRQcmVmaXhlZEVycm9yKFwiRXh0ZXJuYWxcIiwgZXJyb3JTY29wZSksXG5cbiAgLy8gU2V0IHRoZSBzY29wZSBmb3IgYWxsIGVycm9yc1xuICBzZXRTY29wZShzY29wZTogc3RyaW5nKSB7XG4gICAgZXJyb3JTY29wZSA9IHNjb3BlO1xuICAgIFNlbnRyeS5jb25maWd1cmVTY29wZSgocykgPT4gcy5zZXRUcmFuc2FjdGlvbk5hbWUoc2NvcGUpKTtcbiAgfSxcbn07XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradle.d.ts","sourceRoot":"","sources":["../src/gradle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,wBAAgB,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAUjE;AAED,wBAAsB,qBAAqB,kCAqD1C;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,MAAM,GACX,qBAAqB,GAAG,SAAS,CAuBnC;AAWD,wBAAsB,uBAAuB,CAAC,WAAW,EAAE,MAAM,+BAiChE;AAED,wBAAsB,gCAAgC,CAAC,WAAW,EAAE,MAAM;;;;eAqDzE"}
|