@cdktn/cli-core 0.23.0-pre.38 → 0.23.0-pre.39
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/build/lib/cdktf-config.d.ts.map +1 -0
- package/build/lib/cdktf-config.js +108 -0
- package/build/lib/cdktf-project-io-handler.d.ts.map +1 -0
- package/build/lib/cdktf-project-io-handler.js +84 -0
- package/build/lib/cdktf-project.d.ts.map +1 -0
- package/build/lib/cdktf-project.js +371 -0
- package/{src → build}/lib/cdktf-stack.d.ts +1 -0
- package/build/lib/cdktf-stack.d.ts.map +1 -0
- package/build/lib/cdktf-stack.js +386 -0
- package/build/lib/convert.d.ts.map +1 -0
- package/build/lib/convert.js +51 -0
- package/build/lib/dependencies/cdktf-config-manager.d.ts.map +1 -0
- package/build/lib/dependencies/cdktf-config-manager.js +36 -0
- package/build/lib/dependencies/dependency-manager.d.ts.map +1 -0
- package/build/lib/dependencies/dependency-manager.js +393 -0
- package/build/lib/dependencies/package-manager.d.ts.map +1 -0
- package/build/lib/dependencies/package-manager.js +581 -0
- package/build/lib/dependencies/prebuilt-providers.d.ts.map +1 -0
- package/build/lib/dependencies/prebuilt-providers.js +221 -0
- package/build/lib/dependencies/registry-api.d.ts.map +1 -0
- package/build/lib/dependencies/registry-api.js +77 -0
- package/build/lib/dependencies/version-constraints.d.ts.map +1 -0
- package/build/lib/dependencies/version-constraints.js +95 -0
- package/build/lib/error-reporting.d.ts.map +1 -0
- package/build/lib/error-reporting.js +133 -0
- package/build/lib/errors.d.ts.map +1 -0
- package/build/lib/errors.js +10 -0
- package/build/lib/execution-logs.d.ts.map +1 -0
- package/build/lib/execution-logs.js +47 -0
- package/build/lib/get.d.ts.map +1 -0
- package/build/lib/get.js +90 -0
- package/build/lib/helpers/stack-helpers.d.ts.map +1 -0
- package/build/lib/helpers/stack-helpers.js +155 -0
- package/build/lib/index.d.ts.map +1 -0
- package/{src → build}/lib/index.js +1 -1
- package/build/lib/init.d.ts.map +1 -0
- package/build/lib/init.js +131 -0
- package/build/lib/local-provider-constraints.d.ts.map +1 -0
- package/build/lib/local-provider-constraints.js +95 -0
- package/build/lib/local-provider-versions.d.ts.map +1 -0
- package/build/lib/local-provider-versions.js +73 -0
- package/build/lib/models/deploy-machine.d.ts.map +1 -0
- package/build/lib/models/deploy-machine.js +283 -0
- package/build/lib/models/interactive-process.d.ts.map +1 -0
- package/build/lib/models/interactive-process.js +59 -0
- package/{src → build}/lib/models/schema.d.ts.map +1 -1
- package/build/lib/models/schema.js +181 -0
- package/{src → build}/lib/models/terraform-cli.d.ts +1 -0
- package/build/lib/models/terraform-cli.d.ts.map +1 -0
- package/build/lib/models/terraform-cli.js +355 -0
- package/build/lib/models/terraform.d.ts.map +1 -0
- package/build/lib/models/terraform.js +72 -0
- package/build/lib/output.d.ts.map +1 -0
- package/build/lib/output.js +211 -0
- package/build/lib/provider-add.d.ts.map +1 -0
- package/build/lib/provider-add.js +30 -0
- package/build/lib/server/terraform-logs.d.ts.map +1 -0
- package/build/lib/server/terraform-logs.js +19 -0
- package/{src → build}/lib/synth-stack.d.ts +1 -0
- package/build/lib/synth-stack.d.ts.map +1 -0
- package/build/lib/synth-stack.js +251 -0
- package/build/lib/synth.d.ts.map +1 -0
- package/build/lib/synth.js +67 -0
- package/{src → build}/lib/terraform-json.d.ts.map +1 -1
- package/build/lib/terraform-json.js +82 -0
- package/build/lib/terraform-provider-lock.d.ts.map +1 -0
- package/build/lib/terraform-provider-lock.js +95 -0
- package/{src → build}/lib/watch.d.ts +1 -0
- package/build/lib/watch.d.ts.map +1 -0
- package/build/lib/watch.js +155 -0
- package/package.json +10 -10
- package/src/lib/cdktf-config.d.ts.map +0 -1
- package/src/lib/cdktf-config.js +0 -108
- package/src/lib/cdktf-project-io-handler.d.ts.map +0 -1
- package/src/lib/cdktf-project-io-handler.js +0 -84
- package/src/lib/cdktf-project.d.ts.map +0 -1
- package/src/lib/cdktf-project.js +0 -371
- package/src/lib/cdktf-stack.d.ts.map +0 -1
- package/src/lib/cdktf-stack.js +0 -386
- package/src/lib/convert.d.ts.map +0 -1
- package/src/lib/convert.js +0 -51
- package/src/lib/dependencies/cdktf-config-manager.d.ts.map +0 -1
- package/src/lib/dependencies/cdktf-config-manager.js +0 -36
- package/src/lib/dependencies/dependency-manager.d.ts.map +0 -1
- package/src/lib/dependencies/dependency-manager.js +0 -393
- package/src/lib/dependencies/package-manager.d.ts.map +0 -1
- package/src/lib/dependencies/package-manager.js +0 -581
- package/src/lib/dependencies/prebuilt-providers.d.ts.map +0 -1
- package/src/lib/dependencies/prebuilt-providers.js +0 -221
- package/src/lib/dependencies/registry-api.d.ts.map +0 -1
- package/src/lib/dependencies/registry-api.js +0 -77
- package/src/lib/dependencies/version-constraints.d.ts.map +0 -1
- package/src/lib/dependencies/version-constraints.js +0 -95
- package/src/lib/error-reporting.d.ts.map +0 -1
- package/src/lib/error-reporting.js +0 -133
- package/src/lib/errors.d.ts.map +0 -1
- package/src/lib/errors.js +0 -10
- package/src/lib/execution-logs.d.ts.map +0 -1
- package/src/lib/execution-logs.js +0 -47
- package/src/lib/get.d.ts.map +0 -1
- package/src/lib/get.js +0 -90
- package/src/lib/helpers/stack-helpers.d.ts.map +0 -1
- package/src/lib/helpers/stack-helpers.js +0 -155
- package/src/lib/index.d.ts.map +0 -1
- package/src/lib/init.d.ts.map +0 -1
- package/src/lib/init.js +0 -131
- package/src/lib/local-provider-constraints.d.ts.map +0 -1
- package/src/lib/local-provider-constraints.js +0 -95
- package/src/lib/local-provider-versions.d.ts.map +0 -1
- package/src/lib/local-provider-versions.js +0 -73
- package/src/lib/models/deploy-machine.d.ts.map +0 -1
- package/src/lib/models/deploy-machine.js +0 -283
- package/src/lib/models/interactive-process.d.ts.map +0 -1
- package/src/lib/models/interactive-process.js +0 -59
- package/src/lib/models/schema.js +0 -181
- package/src/lib/models/terraform-cli.d.ts.map +0 -1
- package/src/lib/models/terraform-cli.js +0 -355
- package/src/lib/models/terraform.d.ts.map +0 -1
- package/src/lib/models/terraform.js +0 -72
- package/src/lib/output.d.ts.map +0 -1
- package/src/lib/output.js +0 -211
- package/src/lib/provider-add.d.ts.map +0 -1
- package/src/lib/provider-add.js +0 -30
- package/src/lib/server/terraform-logs.d.ts.map +0 -1
- package/src/lib/server/terraform-logs.js +0 -19
- package/src/lib/synth-stack.d.ts.map +0 -1
- package/src/lib/synth-stack.js +0 -251
- package/src/lib/synth.d.ts.map +0 -1
- package/src/lib/synth.js +0 -67
- package/src/lib/terraform-json.js +0 -82
- package/src/lib/terraform-provider-lock.d.ts.map +0 -1
- package/src/lib/terraform-provider-lock.js +0 -95
- package/src/lib/watch.d.ts.map +0 -1
- package/src/lib/watch.js +0 -155
- /package/{src → build}/lib/cdktf-config.d.ts +0 -0
- /package/{src → build}/lib/cdktf-project-io-handler.d.ts +0 -0
- /package/{src → build}/lib/cdktf-project.d.ts +0 -0
- /package/{src → build}/lib/convert.d.ts +0 -0
- /package/{src → build}/lib/dependencies/cdktf-config-manager.d.ts +0 -0
- /package/{src → build}/lib/dependencies/dependency-manager.d.ts +0 -0
- /package/{src → build}/lib/dependencies/package-manager.d.ts +0 -0
- /package/{src → build}/lib/dependencies/prebuilt-providers.d.ts +0 -0
- /package/{src → build}/lib/dependencies/registry-api.d.ts +0 -0
- /package/{src → build}/lib/dependencies/version-constraints.d.ts +0 -0
- /package/{src → build}/lib/error-reporting.d.ts +0 -0
- /package/{src → build}/lib/errors.d.ts +0 -0
- /package/{src → build}/lib/execution-logs.d.ts +0 -0
- /package/{src → build}/lib/get.d.ts +0 -0
- /package/{src → build}/lib/helpers/stack-helpers.d.ts +0 -0
- /package/{src → build}/lib/index.d.ts +0 -0
- /package/{src → build}/lib/init.d.ts +0 -0
- /package/{src → build}/lib/local-provider-constraints.d.ts +0 -0
- /package/{src → build}/lib/local-provider-versions.d.ts +0 -0
- /package/{src → build}/lib/models/deploy-machine.d.ts +0 -0
- /package/{src → build}/lib/models/interactive-process.d.ts +0 -0
- /package/{src → build}/lib/models/schema.d.ts +0 -0
- /package/{src → build}/lib/models/terraform.d.ts +0 -0
- /package/{src → build}/lib/output.d.ts +0 -0
- /package/{src → build}/lib/provider-add.d.ts +0 -0
- /package/{src → build}/lib/server/terraform-logs.d.ts +0 -0
- /package/{src → build}/lib/synth.d.ts +0 -0
- /package/{src → build}/lib/terraform-json.d.ts +0 -0
- /package/{src → build}/lib/terraform-provider-lock.d.ts +0 -0
|
@@ -0,0 +1,251 @@
|
|
|
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.SynthStack = exports.StackDependencies = void 0;
|
|
30
|
+
// Copyright (c) HashiCorp, Inc
|
|
31
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
32
|
+
const fs = __importStar(require("fs-extra"));
|
|
33
|
+
const path = __importStar(require("path"));
|
|
34
|
+
const chalk = __importStar(require("chalk"));
|
|
35
|
+
const indent_string_1 = __importDefault(require("indent-string"));
|
|
36
|
+
const cdktn_1 = require("cdktn");
|
|
37
|
+
const perf_hooks_1 = require("perf_hooks");
|
|
38
|
+
const commons_1 = require("@cdktn/commons");
|
|
39
|
+
const cdktf_config_1 = require("./cdktf-config");
|
|
40
|
+
const hcl_tools_1 = require("@cdktn/hcl-tools");
|
|
41
|
+
const chalkColour = new chalk.Instance();
|
|
42
|
+
class StackDependencies {
|
|
43
|
+
constructor(stacks) {
|
|
44
|
+
this.stacks = stacks;
|
|
45
|
+
this.pendingStacks = [];
|
|
46
|
+
this.inflightStacks = [];
|
|
47
|
+
this.deployedStacks = [];
|
|
48
|
+
this.pendingStacks = [...this.stacks];
|
|
49
|
+
}
|
|
50
|
+
startRun(stack) {
|
|
51
|
+
this.pendingStacks = this.pendingStacks.filter((item) => item.name !== stack.name);
|
|
52
|
+
this.inflightStacks.push(stack);
|
|
53
|
+
}
|
|
54
|
+
finishRun(stack) {
|
|
55
|
+
this.inflightStacks = this.inflightStacks.filter((item) => item.name !== stack.name);
|
|
56
|
+
this.deployedStacks.push(stack);
|
|
57
|
+
}
|
|
58
|
+
get pendingDeployableStacks() {
|
|
59
|
+
return this.pendingStacks.filter((pendingStack) => {
|
|
60
|
+
const unmetDependencies = pendingStack.dependencies.filter((dependency) => {
|
|
61
|
+
return !this.deployedStacks.some((deployedStack) => {
|
|
62
|
+
return deployedStack.name === dependency;
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
return unmetDependencies.length === 0;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.StackDependencies = StackDependencies;
|
|
70
|
+
class SynthStack {
|
|
71
|
+
static async synth(abortSignal, command, outdir, workingDirectory = process.cwd(), graceful = false, // will not exit the process but rethrow the error instead
|
|
72
|
+
noColor = false, synthOrigin, hcl = false) {
|
|
73
|
+
// start performance timer
|
|
74
|
+
const startTime = perf_hooks_1.performance.now();
|
|
75
|
+
const isDirectory = (source) => fs.lstatSync(source).isDirectory();
|
|
76
|
+
const getDirectories = (source) => {
|
|
77
|
+
if (!fs.existsSync(source))
|
|
78
|
+
return [];
|
|
79
|
+
return fs
|
|
80
|
+
.readdirSync(source)
|
|
81
|
+
.map((name) => path.join(source, name))
|
|
82
|
+
.filter(isDirectory);
|
|
83
|
+
};
|
|
84
|
+
const existingDirectories = getDirectories(path.join(outdir, cdktn_1.Manifest.stacksFolder));
|
|
85
|
+
const env = Object.fromEntries(Object.entries(process.env).filter(
|
|
86
|
+
// We don't want to pass Terraform variables to the synth command since they should only be used at execution time
|
|
87
|
+
([key]) => !key.startsWith("TF_VAR_")));
|
|
88
|
+
// Increases the default memory available to Node.js when synthesizing a TypeScript CDK project.
|
|
89
|
+
const nodeOptsSwitch = "--max-old-space-size";
|
|
90
|
+
const nodeOptsSetting = `${nodeOptsSwitch}=4096`;
|
|
91
|
+
if (env.NODE_OPTIONS && !env.NODE_OPTIONS.includes(nodeOptsSwitch)) {
|
|
92
|
+
commons_1.logger.warn(`WARNING: Found NODE_OPTIONS environment variable without a setting for ${nodeOptsSwitch}
|
|
93
|
+
The synthesizing step for TypeScript may need an increased amount of memory if multiple large providers
|
|
94
|
+
are used with locally generated bindings. You can ignore this if you don't use CDKTN with TypeScript.
|
|
95
|
+
If not present, the cdktn-cli sets it to NODE_OPTIONS="${nodeOptsSetting}" by default. But as
|
|
96
|
+
your environment already contains a NODE_OPTIONS variable, we won't override it. Hence, the app command
|
|
97
|
+
might fail while synthesizing with an out of memory error.`);
|
|
98
|
+
}
|
|
99
|
+
else if (!env.NODE_OPTIONS) {
|
|
100
|
+
// increase memory to allow ts-node (when using TypeScript) to handle large amounts of generated code in memory
|
|
101
|
+
env.NODE_OPTIONS = `${env.NODE_OPTIONS || ""} ${nodeOptsSetting}`.trim();
|
|
102
|
+
}
|
|
103
|
+
const currentContext = process.env[cdktn_1.CONTEXT_ENV]
|
|
104
|
+
? JSON.parse(process.env.CDKTF_CONTEXT_JSON)
|
|
105
|
+
: {};
|
|
106
|
+
const relativeModules = getRelativeTerraformModules();
|
|
107
|
+
try {
|
|
108
|
+
await (0, commons_1.shell)(command, [], {
|
|
109
|
+
shell: true,
|
|
110
|
+
env: {
|
|
111
|
+
...env,
|
|
112
|
+
CDKTF_OUTDIR: outdir,
|
|
113
|
+
CDKTF_CONTINUE_SYNTH_ON_ERROR_ANNOTATIONS: "true", // we want to display the errors ourselves
|
|
114
|
+
[cdktn_1.CONTEXT_ENV]: JSON.stringify({
|
|
115
|
+
...currentContext,
|
|
116
|
+
cdktfRelativeModules: relativeModules,
|
|
117
|
+
}),
|
|
118
|
+
SYNTH_HCL_OUTPUT: hcl.toString(),
|
|
119
|
+
},
|
|
120
|
+
cwd: workingDirectory,
|
|
121
|
+
signal: abortSignal,
|
|
122
|
+
noColor: noColor,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
const errorOutput = chalkColour `{redBright cdktn encountered an error while synthesizing}
|
|
127
|
+
|
|
128
|
+
Synth command: {blue ${command}}
|
|
129
|
+
Error: {redBright ${e.message}}
|
|
130
|
+
${e.stderr
|
|
131
|
+
? chalkColour `
|
|
132
|
+
Command output on stderr:
|
|
133
|
+
|
|
134
|
+
{dim ${(0, indent_string_1.default)(e.stderr, 4)}}
|
|
135
|
+
`
|
|
136
|
+
: ""}
|
|
137
|
+
${e.stdout
|
|
138
|
+
? chalkColour `
|
|
139
|
+
Command output on stdout:
|
|
140
|
+
|
|
141
|
+
{dim ${(0, indent_string_1.default)(e.stdout, 4)}}
|
|
142
|
+
`
|
|
143
|
+
: ""}`;
|
|
144
|
+
await this.synthErrorTelemetry(synthOrigin);
|
|
145
|
+
if (graceful) {
|
|
146
|
+
e.errorOutput = errorOutput;
|
|
147
|
+
throw e;
|
|
148
|
+
}
|
|
149
|
+
console.error(`ERROR: ${errorOutput}`);
|
|
150
|
+
process.exit(1);
|
|
151
|
+
}
|
|
152
|
+
// Apply formatting to HCL files if hcl output was selected
|
|
153
|
+
if (hcl) {
|
|
154
|
+
await SynthStack.formatHclFiles(outdir);
|
|
155
|
+
}
|
|
156
|
+
// end performance timer
|
|
157
|
+
const endTime = perf_hooks_1.performance.now();
|
|
158
|
+
let stacks = [];
|
|
159
|
+
try {
|
|
160
|
+
stacks = await SynthStack.readSynthesizedStacks(outdir);
|
|
161
|
+
}
|
|
162
|
+
catch (e) {
|
|
163
|
+
const errorMessage = `ERROR: synthesis failed, because app was expected to call 'synth()', but didn't. Thus "${outdir}/${cdktn_1.Manifest.fileName}" was not created: ${e}`;
|
|
164
|
+
if (graceful) {
|
|
165
|
+
throw new Error(errorMessage);
|
|
166
|
+
}
|
|
167
|
+
commons_1.logger.error(errorMessage);
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}
|
|
170
|
+
await this.synthTelemetry(endTime - startTime, stacks, synthOrigin);
|
|
171
|
+
if (stacks.length === 0) {
|
|
172
|
+
commons_1.logger.error("ERROR: No Terraform code synthesized.");
|
|
173
|
+
}
|
|
174
|
+
const stackNames = stacks.map((s) => s.name);
|
|
175
|
+
const orphanedDirectories = existingDirectories.filter((e) => !stackNames.includes(path.basename(e)));
|
|
176
|
+
for (const orphanedDirectory of orphanedDirectories) {
|
|
177
|
+
fs.rmSync(orphanedDirectory, { recursive: true });
|
|
178
|
+
}
|
|
179
|
+
return stacks;
|
|
180
|
+
}
|
|
181
|
+
static async formatHclFiles(outDir) {
|
|
182
|
+
const manifestPath = path.join(outDir, cdktn_1.Manifest.fileName);
|
|
183
|
+
if (!(await fs.pathExists(manifestPath))) {
|
|
184
|
+
throw new Error(`Could not find manifest file at ${manifestPath}. In case --skip-synth was passed, please try again without the flag.`);
|
|
185
|
+
}
|
|
186
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath).toString());
|
|
187
|
+
for (const stackName in manifest.stacks) {
|
|
188
|
+
const stack = manifest.stacks[stackName];
|
|
189
|
+
const filePath = path.join(outDir, stack.synthesizedStackPath);
|
|
190
|
+
const hclContent = fs.readFileSync(filePath).toString();
|
|
191
|
+
const formattedHcl = await (0, hcl_tools_1.format)(hclContent);
|
|
192
|
+
fs.writeFileSync(filePath, formattedHcl);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
static async readSynthesizedStacks(outdir) {
|
|
196
|
+
const manifestPath = path.join(outdir, cdktn_1.Manifest.fileName);
|
|
197
|
+
if (!(await fs.pathExists(manifestPath))) {
|
|
198
|
+
throw new Error(`Could not find manifest file at ${manifestPath}. In case --skip-synth was passed, please try again without the flag.`);
|
|
199
|
+
}
|
|
200
|
+
const stacks = [];
|
|
201
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath).toString());
|
|
202
|
+
for (const stackName in manifest.stacks) {
|
|
203
|
+
const stack = manifest.stacks[stackName];
|
|
204
|
+
const filePath = path.join(outdir, stack.synthesizedStackPath);
|
|
205
|
+
let jsonContent = {};
|
|
206
|
+
if (filePath.endsWith(".tf.json")) {
|
|
207
|
+
jsonContent = JSON.parse(fs.readFileSync(filePath).toString());
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
const metadataPath = path.join(outdir, stack.stackMetadataPath);
|
|
211
|
+
jsonContent = JSON.parse(fs.readFileSync(metadataPath).toString());
|
|
212
|
+
}
|
|
213
|
+
stacks.push({
|
|
214
|
+
...stack,
|
|
215
|
+
workingDirectory: path.join(outdir, stack.workingDirectory),
|
|
216
|
+
content: JSON.stringify(jsonContent, null, 2),
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
return stacks;
|
|
220
|
+
}
|
|
221
|
+
static async synthTelemetry(totalTime, stacks, synthOrigin) {
|
|
222
|
+
const config = (0, commons_1.readConfigSync)();
|
|
223
|
+
await (0, commons_1.sendTelemetry)("synth", {
|
|
224
|
+
totalTime: totalTime,
|
|
225
|
+
language: config.language,
|
|
226
|
+
synthOrigin,
|
|
227
|
+
stackMetadata: stacks.map((stack) => JSON.parse(stack.content)["//"].metadata),
|
|
228
|
+
requiredProviders: stacks.map((stack) => JSON.parse(stack.content)["terraform"].required_providers),
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
static async synthErrorTelemetry(synthOrigin) {
|
|
232
|
+
await (0, commons_1.sendTelemetry)("synth", { error: true, synthOrigin });
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
exports.SynthStack = SynthStack;
|
|
236
|
+
function getRelativeTerraformModules() {
|
|
237
|
+
let cfg;
|
|
238
|
+
try {
|
|
239
|
+
cfg = cdktf_config_1.CdktfConfig.read();
|
|
240
|
+
}
|
|
241
|
+
catch (e) {
|
|
242
|
+
commons_1.logger.trace("Could not read cdktf.json: " + e);
|
|
243
|
+
return [];
|
|
244
|
+
}
|
|
245
|
+
return cfg.terraformModules.filter((mod) => {
|
|
246
|
+
return typeof mod === "string"
|
|
247
|
+
? mod.startsWith("./") || mod.startsWith("../")
|
|
248
|
+
: mod.source.startsWith("./") || mod.source.startsWith("../");
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGgtc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3N5bnRoLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyw2Q0FBK0I7QUFDL0IsMkNBQTZCO0FBQzdCLDZDQUErQjtBQUMvQixrRUFBeUM7QUFDekMsaUNBS2U7QUFDZiwyQ0FBeUM7QUFDekMsNENBQThFO0FBQzlFLGlEQUE2QztBQUM3QyxnREFBMEM7QUFFMUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7QUFVekMsTUFBYSxpQkFBaUI7SUFLNUIsWUFBNkIsTUFBMEI7UUFBMUIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFKaEQsa0JBQWEsR0FBdUIsRUFBRSxDQUFDO1FBQ3ZDLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUN4QyxtQkFBYyxHQUF1QixFQUFFLENBQUM7UUFHN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBdUI7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FDNUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksQ0FDbkMsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBdUI7UUFDdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FDOUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFD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LENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCBpbmRlbnRTdHJpbmcgZnJvbSBcImluZGVudC1zdHJpbmdcIjtcbmltcG9ydCB7XG4gIENPTlRFWFRfRU5WLFxuICBNYW5pZmVzdCxcbiAgU3RhY2tNYW5pZmVzdCxcbiAgVGVycmFmb3JtU3RhY2tNZXRhZGF0YSxcbn0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgeyBwZXJmb3JtYW5jZSB9IGZyb20gXCJwZXJmX2hvb2tzXCI7XG5pbXBvcnQgeyBsb2dnZXIsIHJlYWRDb25maWdTeW5jLCBzZW5kVGVsZW1ldHJ5LCBzaGVsbCB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHsgQ2RrdGZDb25maWcgfSBmcm9tIFwiLi9jZGt0Zi1jb25maWdcIjtcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gXCJAY2RrdG4vaGNsLXRvb2xzXCI7XG5cbmNvbnN0IGNoYWxrQ29sb3VyID0gbmV3IGNoYWxrLkluc3RhbmNlKCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3ludGhlc2l6ZWRTdGFja01ldGFkYXRhIHtcbiAgXCIvL1wiPzogeyBba2V5OiBzdHJpbmddOiBUZXJyYWZvcm1TdGFja01ldGFkYXRhIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3ludGhlc2l6ZWRTdGFjayBleHRlbmRzIFN0YWNrTWFuaWZlc3Qge1xuICBjb250ZW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBTdGFja0RlcGVuZGVuY2llcyB7XG4gIHB1YmxpYyBwZW5kaW5nU3RhY2tzOiBTeW50aGVzaXplZFN0YWNrW10gPSBbXTtcbiAgcHVibGljIGluZmxpZ2h0U3RhY2tzOiBTeW50aGVzaXplZFN0YWNrW10gPSBbXTtcbiAgcHVibGljIGRlcGxveWVkU3RhY2tzOiBTeW50aGVzaXplZFN0YWNrW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0YWNrczogU3ludGhlc2l6ZWRTdGFja1tdKSB7XG4gICAgdGhpcy5wZW5kaW5nU3RhY2tzID0gWy4uLnRoaXMuc3RhY2tzXTtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydFJ1bihzdGFjazogU3ludGhlc2l6ZWRTdGFjayk6IHZvaWQge1xuICAgIHRoaXMucGVuZGluZ1N0YWNrcyA9IHRoaXMucGVuZGluZ1N0YWNrcy5maWx0ZXIoXG4gICAgICAoaXRlbSkgPT4gaXRlbS5uYW1lICE9PSBzdGFjay5uYW1lLFxuICAgICk7XG4gICAgdGhpcy5pbmZsaWdodFN0YWNrcy5wdXNoKHN0YWNrKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5pc2hSdW4oc3RhY2s6IFN5bnRoZXNpemVkU3RhY2spOiB2b2lkIHtcbiAgICB0aGlzLmluZmxpZ2h0U3RhY2tzID0gdGhpcy5pbmZsaWdodFN0YWNrcy5maWx0ZXIoXG4gICAgICAoaXRlbSkgPT4gaXRlbS5uYW1lICE9PSBzdGFjay5uYW1lLFxuICAgICk7XG4gICAgdGhpcy5kZXBsb3llZFN0YWNrcy5wdXNoKHN0YWNrKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGVuZGluZ0RlcGxveWFibGVTdGFja3MoKTogU3ludGhlc2l6ZWRTdGFja1tdIHtcbiAgICByZXR1cm4gdGhpcy5wZW5kaW5nU3RhY2tzLmZpbHRlcigocGVuZGluZ1N0YWNrKSA9PiB7XG4gICAgICBjb25zdCB1bm1ldERlcGVuZGVuY2llcyA9IHBlbmRpbmdTdGFjay5kZXBlbmRlbmNpZXMuZmlsdGVyKFxuICAgICAgICAoZGVwZW5kZW5jeSkgPT4ge1xuICAgICAgICAgIHJldHVybiAhdGhpcy5kZXBsb3llZFN0YWNrcy5zb21lKChkZXBsb3llZFN0YWNrKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZGVwbG95ZWRTdGFjay5uYW1lID09PSBkZXBlbmRlbmN5O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHVubWV0RGVwZW5kZW5jaWVzLmxlbmd0aCA9PT0gMDtcbiAgICB9KTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgTWFuaWZlc3RKc29uIHtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBzdGFja3M6IFN0YWNrTWFuaWZlc3RbXTtcbn1cblxuZXhwb3J0IHR5cGUgU3ludGhPcmlnaW4gPSBcIndhdGNoXCI7XG5cbmV4cG9ydCBjbGFzcyBTeW50aFN0YWNrIHtcbiAgcHVibGljIHN0YXRpYyBhc3luYyBzeW50aChcbiAgICBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwsXG4gICAgY29tbWFuZDogc3RyaW5nLFxuICAgIG91dGRpcjogc3RyaW5nLFxuICAgIHdvcmtpbmdEaXJlY3RvcnkgPSBwcm9jZXNzLmN3ZCgpLFxuICAgIGdyYWNlZnVsID0gZmFsc2UsIC8vIHdpbGwgbm90IGV4aXQgdGhlIHByb2Nlc3MgYnV0IHJldGhyb3cgdGhlIGVycm9yIGluc3RlYWRcbiAgICBub0NvbG9yID0gZmFsc2UsXG4gICAgc3ludGhPcmlnaW4/OiBTeW50aE9yaWdpbixcbiAgICBoY2wgPSBmYWxzZSxcbiAgKTogUHJvbWlzZTxTeW50aGVzaXplZFN0YWNrW10+IHtcbiAgICAvLyBzdGFydCBwZXJmb3JtYW5jZSB0aW1lclxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4gICAgY29uc3QgaXNEaXJlY3RvcnkgPSAoc291cmNlOiBzdHJpbmcpID0+IGZzLmxzdGF0U3luYyhzb3VyY2UpLmlzRGlyZWN0b3J5KCk7XG4gICAgY29uc3QgZ2V0RGlyZWN0b3JpZXMgPSAoc291cmNlOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhzb3VyY2UpKSByZXR1cm4gW107XG4gICAgICByZXR1cm4gZnNcbiAgICAgICAgLnJlYWRkaXJTeW5jKHNvdXJjZSlcbiAgICAgICAgLm1hcCgobmFtZSkgPT4gcGF0aC5qb2luKHNvdXJjZSwgbmFtZSkpXG4gICAgICAgIC5maWx0ZXIoaXNEaXJlY3RvcnkpO1xuICAgIH07XG5cbiAgICBjb25zdCBleGlzdGluZ0RpcmVjdG9yaWVzID0gZ2V0RGlyZWN0b3JpZXMoXG4gICAgICBwYXRoLmpvaW4ob3V0ZGlyLCBNYW5pZmVzdC5zdGFja3NGb2xkZXIpLFxuICAgICk7XG5cbiAgICBjb25zdCBlbnYgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhwcm9jZXNzLmVudikuZmlsdGVyKFxuICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHBhc3MgVGVycmFmb3JtIHZhcmlhYmxlcyB0byB0aGUgc3ludGggY29tbWFuZCBzaW5jZSB0aGV5IHNob3VsZCBvbmx5IGJlIHVzZWQgYXQgZXhlY3V0aW9uIHRpbWVcbiAgICAgICAgKFtrZXldKSA9PiAha2V5LnN0YXJ0c1dpdGgoXCJURl9WQVJfXCIpLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgLy8gSW5jcmVhc2VzIHRoZSBkZWZhdWx0IG1lbW9yeSBhdmFpbGFibGUgdG8gTm9kZS5qcyB3aGVuIHN5bnRoZXNpemluZyBhIFR5cGVTY3JpcHQgQ0RLIHByb2plY3QuXG4gICAgY29uc3Qgbm9kZU9wdHNTd2l0Y2ggPSBcIi0tbWF4LW9sZC1zcGFjZS1zaXplXCI7XG4gICAgY29uc3Qgbm9kZU9wdHNTZXR0aW5nID0gYCR7bm9kZU9wdHNTd2l0Y2h9PTQwOTZgO1xuICAgIGlmIChlbnYuTk9ERV9PUFRJT05TICYmICFlbnYuTk9ERV9PUFRJT05TLmluY2x1ZGVzKG5vZGVPcHRzU3dpdGNoKSkge1xuICAgICAgbG9nZ2VyLndhcm4oYFdBUk5JTkc6IEZvdW5kIE5PREVfT1BUSU9OUyBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aXRob3V0IGEgc2V0dGluZyBmb3IgJHtub2RlT3B0c1N3aXRjaH1cblRoZSBzeW50aGVzaXppbmcgc3RlcCBmb3IgVHlwZVNjcmlwdCBtYXkgbmVlZCBhbiBpbmNyZWFzZWQgYW1vdW50IG9mIG1lbW9yeSBpZiBtdWx0aXBsZSBsYXJnZSBwcm92aWRlcnNcbmFyZSB1c2VkIHdpdGggbG9jYWxseSBnZW5lcmF0ZWQgYmluZGluZ3MuIFlvdSBjYW4gaWdub3JlIHRoaXMgaWYgeW91IGRvbid0IHVzZSBDREtUTiB3aXRoIFR5cGVTY3JpcHQuXG5JZiBub3QgcHJlc2VudCwgdGhlIGNka3RuLWNsaSBzZXRzIGl0IHRvIE5PREVfT1BUSU9OUz1cIiR7bm9kZU9wdHNTZXR0aW5nfVwiIGJ5IGRlZmF1bHQuIEJ1dCBhc1xueW91ciBlbnZpcm9ubWVudCBhbHJlYWR5IGNvbnRhaW5zIGEgTk9ERV9PUFRJT05TIHZhcmlhYmxlLCB3ZSB3b24ndCBvdmVycmlkZSBpdC4gSGVuY2UsIHRoZSBhcHAgY29tbWFuZFxubWlnaHQgZmFpbCB3aGlsZSBzeW50aGVzaXppbmcgd2l0aCBhbiBvdXQgb2YgbWVtb3J5IGVycm9yLmApO1xuICAgIH0gZWxzZSBpZiAoIWVudi5OT0RFX09QVElPTlMpIHtcbiAgICAgIC8vIGluY3JlYXNlIG1lbW9yeSB0byBhbGxvdyB0cy1ub2RlICh3aGVuIHVzaW5nIFR5cGVTY3JpcHQpIHRvIGhhbmRsZSBsYXJnZSBhbW91bnRzIG9mIGdlbmVyYXRlZCBjb2RlIGluIG1lbW9yeVxuICAgICAgZW52Lk5PREVfT1BUSU9OUyA9IGAke2Vudi5OT0RFX09QVElPTlMgfHwgXCJcIn0gJHtub2RlT3B0c1NldHRpbmd9YC50cmltKCk7XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudENvbnRleHQgPSBwcm9jZXNzLmVudltDT05URVhUX0VOVl1cbiAgICAgID8gSlNPTi5wYXJzZShwcm9jZXNzLmVudi5DREtURl9DT05URVhUX0pTT04pXG4gICAgICA6IHt9O1xuICAgIGNvbnN0IHJlbGF0aXZlTW9kdWxlcyA9IGdldFJlbGF0aXZlVGVycmFmb3JtTW9kdWxlcygpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHNoZWxsKGNvbW1hbmQsIFtdLCB7XG4gICAgICAgIHNoZWxsOiB0cnVlLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICAuLi5lbnYsXG4gICAgICAgICAgQ0RLVEZfT1VURElSOiBvdXRkaXIsXG4gICAgICAgICAgQ0RLVEZfQ09OVElOVUVfU1lOVEhfT05fRVJST1JfQU5OT1RBVElPTlM6IFwidHJ1ZVwiLCAvLyB3ZSB3YW50IHRvIGRpc3BsYXkgdGhlIGVycm9ycyBvdXJzZWx2ZXNcbiAgICAgICAgICBbQ09OVEVYVF9FTlZdOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAuLi5jdXJyZW50Q29udGV4dCxcbiAgICAgICAgICAgIGNka3RmUmVsYXRpdmVNb2R1bGVzOiByZWxhdGl2ZU1vZHVsZXMsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgU1lOVEhfSENMX09VVFBVVDogaGNsLnRvU3RyaW5nKCksXG4gICAgICAgIH0sXG4gICAgICAgIGN3ZDogd29ya2luZ0RpcmVjdG9yeSxcbiAgICAgICAgc2lnbmFsOiBhYm9ydFNpZ25hbCxcbiAgICAgICAgbm9Db2xvcjogbm9Db2xvcixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgY29uc3QgZXJyb3JPdXRwdXQgPSBjaGFsa0NvbG91cmB7cmVkQnJpZ2h0IGNka3RuIGVuY291bnRlcmVkIGFuIGVycm9yIHdoaWxlIHN5bnRoZXNpemluZ31cblxuU3ludGggY29tbWFuZDoge2JsdWUgJHtjb21tYW5kfX1cbkVycm9yOiAgICAgICAgIHtyZWRCcmlnaHQgJHtlLm1lc3NhZ2V9fVxuJHtcbiAgZS5zdGRlcnJcbiAgICA/IGNoYWxrQ29sb3VyYFxuQ29tbWFuZCBvdXRwdXQgb24gc3RkZXJyOlxuXG57ZGltICR7aW5kZW50U3RyaW5nKGUuc3RkZXJyLCA0KX19XG5gXG4gICAgOiBcIlwiXG59XG4ke1xuICBlLnN0ZG91dFxuICAgID8gY2hhbGtDb2xvdXJgXG5Db21tYW5kIG91dHB1dCBvbiBzdGRvdXQ6XG5cbntkaW0gJHtpbmRlbnRTdHJpbmcoZS5zdGRvdXQsIDQpfX1cbmBcbiAgICA6IFwiXCJcbn1gO1xuICAgICAgYXdhaXQgdGhpcy5zeW50aEVycm9yVGVsZW1ldHJ5KHN5bnRoT3JpZ2luKTtcbiAgICAgIGlmIChncmFjZWZ1bCkge1xuICAgICAgICBlLmVycm9yT3V0cHV0ID0gZXJyb3JPdXRwdXQ7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgICBjb25zb2xlLmVycm9yKGBFUlJPUjogJHtlcnJvck91dHB1dH1gKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSBmb3JtYXR0aW5nIHRvIEhDTCBmaWxlcyBpZiBoY2wgb3V0cHV0IHdhcyBzZWxlY3RlZFxuICAgIGlmIChoY2wpIHtcbiAgICAgIGF3YWl0IFN5bnRoU3RhY2suZm9ybWF0SGNsRmlsZXMob3V0ZGlyKTtcbiAgICB9XG5cbiAgICAvLyBlbmQgcGVyZm9ybWFuY2UgdGltZXJcbiAgICBjb25zdCBlbmRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgICBsZXQgc3RhY2tzOiBTeW50aGVzaXplZFN0YWNrW10gPSBbXTtcbiAgICB0cnkge1xuICAgICAgc3RhY2tzID0gYXdhaXQgU3ludGhTdGFjay5yZWFkU3ludGhlc2l6ZWRTdGFja3Mob3V0ZGlyKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGBFUlJPUjogc3ludGhlc2lzIGZhaWxlZCwgYmVjYXVzZSBhcHAgd2FzIGV4cGVjdGVkIHRvIGNhbGwgJ3N5bnRoKCknLCBidXQgZGlkbid0LiBUaHVzIFwiJHtvdXRkaXJ9LyR7TWFuaWZlc3QuZmlsZU5hbWV9XCIgIHdhcyBub3QgY3JlYXRlZDogJHtlfWA7XG4gICAgICBpZiAoZ3JhY2VmdWwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICB9XG4gICAgICBsb2dnZXIuZXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnN5bnRoVGVsZW1ldHJ5KGVuZFRpbWUgLSBzdGFydFRpbWUsIHN0YWNrcywgc3ludGhPcmlnaW4pO1xuXG4gICAgaWYgKHN0YWNrcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGxvZ2dlci5lcnJvcihcIkVSUk9SOiBObyBUZXJyYWZvcm0gY29kZSBzeW50aGVzaXplZC5cIik7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhY2tOYW1lcyA9IHN0YWNrcy5tYXAoKHMpID0+IHMubmFtZSk7XG4gICAgY29uc3Qgb3JwaGFuZWREaXJlY3RvcmllcyA9IGV4aXN0aW5nRGlyZWN0b3JpZXMuZmlsdGVyKFxuICAgICAgKGUpID0+ICFzdGFja05hbWVzLmluY2x1ZGVzKHBhdGguYmFzZW5hbWUoZSkpLFxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IG9ycGhhbmVkRGlyZWN0b3J5IG9mIG9ycGhhbmVkRGlyZWN0b3JpZXMpIHtcbiAgICAgIGZzLnJtU3luYyhvcnBoYW5lZERpcmVjdG9yeSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YWNrcztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgZm9ybWF0SGNsRmlsZXMob3V0RGlyOiBzdHJpbmcpIHtcbiAgICBjb25zdCBtYW5pZmVzdFBhdGggPSBwYXRoLmpvaW4ob3V0RGlyLCBNYW5pZmVzdC5maWxlTmFtZSk7XG4gICAgaWYgKCEoYXdhaXQgZnMucGF0aEV4aXN0cyhtYW5pZmVzdFBhdGgpKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ291bGQgbm90IGZpbmQgbWFuaWZlc3QgZmlsZSBhdCAke21hbmlmZXN0UGF0aH0uIEluIGNhc2UgLS1za2lwLXN5bnRoIHdhcyBwYXNzZWQsIHBsZWFzZSB0cnkgYWdhaW4gd2l0aG91dCB0aGUgZmxhZy5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBtYW5pZmVzdCA9IEpTT04ucGFyc2UoXG4gICAgICBmcy5yZWFkRmlsZVN5bmMobWFuaWZlc3RQYXRoKS50b1N0cmluZygpLFxuICAgICkgYXMgTWFuaWZlc3RKc29uO1xuXG4gICAgZm9yIChjb25zdCBzdGFja05hbWUgaW4gbWFuaWZlc3Quc3RhY2tzKSB7XG4gICAgICBjb25zdCBzdGFjayA9IG1hbmlmZXN0LnN0YWNrc1tzdGFja05hbWVdO1xuICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4ob3V0RGlyLCBzdGFjay5zeW50aGVzaXplZFN0YWNrUGF0aCk7XG5cbiAgICAgIGNvbnN0IGhjbENvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgpLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRIY2wgPSBhd2FpdCBmb3JtYXQoaGNsQ29udGVudCk7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBmb3JtYXR0ZWRIY2wpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgcmVhZFN5bnRoZXNpemVkU3RhY2tzKFxuICAgIG91dGRpcjogc3RyaW5nLFxuICApOiBQcm9taXNlPFN5bnRoZXNpemVkU3RhY2tbXT4ge1xuICAgIGNvbnN0IG1hbmlmZXN0UGF0aCA9IHBhdGguam9pbihvdXRkaXIsIE1hbmlmZXN0LmZpbGVOYW1lKTtcbiAgICBpZiAoIShhd2FpdCBmcy5wYXRoRXhpc3RzKG1hbmlmZXN0UGF0aCkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDb3VsZCBub3QgZmluZCBtYW5pZmVzdCBmaWxlIGF0ICR7bWFuaWZlc3RQYXRofS4gSW4gY2FzZSAtLXNraXAtc3ludGggd2FzIHBhc3NlZCwgcGxlYXNlIHRyeSBhZ2FpbiB3aXRob3V0IHRoZSBmbGFnLmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YWNrczogU3ludGhlc2l6ZWRTdGFja1tdID0gW107XG4gICAgY29uc3QgbWFuaWZlc3QgPSBKU09OLnBhcnNlKFxuICAgICAgZnMucmVhZEZpbGVTeW5jKG1hbmlmZXN0UGF0aCkudG9TdHJpbmcoKSxcbiAgICApIGFzIE1hbmlmZXN0SnNvbjtcblxuICAgIGZvciAoY29uc3Qgc3RhY2tOYW1lIGluIG1hbmlmZXN0LnN0YWNrcykge1xuICAgICAgY29uc3Qgc3RhY2sgPSBtYW5pZmVzdC5zdGFja3Nbc3RhY2tOYW1lXTtcbiAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKG91dGRpciwgc3RhY2suc3ludGhlc2l6ZWRTdGFja1BhdGgpO1xuICAgICAgbGV0IGpzb25Db250ZW50OiBTeW50aGVzaXplZFN0YWNrTWV0YWRhdGEgPSB7fTtcbiAgICAgIGlmIChmaWxlUGF0aC5lbmRzV2l0aChcIi50Zi5qc29uXCIpKSB7XG4gICAgICAgIGpzb25Db250ZW50ID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgpLnRvU3RyaW5nKCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbWV0YWRhdGFQYXRoID0gcGF0aC5qb2luKG91dGRpciwgc3RhY2suc3RhY2tNZXRhZGF0YVBhdGghKTtcbiAgICAgICAganNvbkNvbnRlbnQgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhtZXRhZGF0YVBhdGgpLnRvU3RyaW5nKCkpO1xuICAgICAgfVxuXG4gICAgICBzdGFja3MucHVzaCh7XG4gICAgICAgIC4uLnN0YWNrLFxuICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiBwYXRoLmpvaW4ob3V0ZGlyLCBzdGFjay53b3JraW5nRGlyZWN0b3J5KSxcbiAgICAgICAgY29udGVudDogSlNPTi5zdHJpbmdpZnkoanNvbkNvbnRlbnQsIG51bGwsIDIpLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YWNrcztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgc3ludGhUZWxlbWV0cnkoXG4gICAgdG90YWxUaW1lOiBudW1iZXIsXG4gICAgc3RhY2tzOiBTeW50aGVzaXplZFN0YWNrW10sXG4gICAgc3ludGhPcmlnaW4/OiBTeW50aE9yaWdpbixcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29uZmlnID0gcmVhZENvbmZpZ1N5bmMoKTtcblxuICAgIGF3YWl0IHNlbmRUZWxlbWV0cnkoXCJzeW50aFwiLCB7XG4gICAgICB0b3RhbFRpbWU6IHRvdGFsVGltZSxcbiAgICAgIGxhbmd1YWdlOiBjb25maWcubGFuZ3VhZ2UsXG4gICAgICBzeW50aE9yaWdpbixcbiAgICAgIHN0YWNrTWV0YWRhdGE6IHN0YWNrcy5tYXAoXG4gICAgICAgIChzdGFjaykgPT4gSlNPTi5wYXJzZShzdGFjay5jb250ZW50KVtcIi8vXCJdLm1ldGFkYXRhLFxuICAgICAgKSxcbiAgICAgIHJlcXVpcmVkUHJvdmlkZXJzOiBzdGFja3MubWFwKFxuICAgICAgICAoc3RhY2s6IGFueSkgPT5cbiAgICAgICAgICBKU09OLnBhcnNlKHN0YWNrLmNvbnRlbnQpW1widGVycmFmb3JtXCJdLnJlcXVpcmVkX3Byb3ZpZGVycyxcbiAgICAgICksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIHN5bnRoRXJyb3JUZWxlbWV0cnkoc3ludGhPcmlnaW4/OiBTeW50aE9yaWdpbikge1xuICAgIGF3YWl0IHNlbmRUZWxlbWV0cnkoXCJzeW50aFwiLCB7IGVycm9yOiB0cnVlLCBzeW50aE9yaWdpbiB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRSZWxhdGl2ZVRlcnJhZm9ybU1vZHVsZXMoKSB7XG4gIGxldCBjZmc7XG5cbiAgdHJ5IHtcbiAgICBjZmcgPSBDZGt0ZkNvbmZpZy5yZWFkKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIudHJhY2UoXCJDb3VsZCBub3QgcmVhZCBjZGt0Zi5qc29uOiBcIiArIGUpO1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiBjZmcudGVycmFmb3JtTW9kdWxlcy5maWx0ZXIoKG1vZCkgPT4ge1xuICAgIHJldHVybiB0eXBlb2YgbW9kID09PSBcInN0cmluZ1wiXG4gICAgICA/IG1vZC5zdGFydHNXaXRoKFwiLi9cIikgfHwgbW9kLnN0YXJ0c1dpdGgoXCIuLi9cIilcbiAgICAgIDogbW9kLnNvdXJjZS5zdGFydHNXaXRoKFwiLi9cIikgfHwgbW9kLnNvdXJjZS5zdGFydHNXaXRoKFwiLi4vXCIpO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synth.d.ts","sourceRoot":"","sources":["../../src/lib/synth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMjD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,QA0C1D"}
|
|
@@ -0,0 +1,67 @@
|
|
|
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.printAnnotations = void 0;
|
|
27
|
+
const cdktn_1 = require("cdktn");
|
|
28
|
+
const chalk = __importStar(require("chalk"));
|
|
29
|
+
const chalkColour = new chalk.Instance();
|
|
30
|
+
/**
|
|
31
|
+
* prints annotations via console
|
|
32
|
+
* @throws Error if an Annotation with level === ERROR has been encountered
|
|
33
|
+
*/
|
|
34
|
+
function printAnnotations(stacks) {
|
|
35
|
+
let encounteredAnnotationError = false;
|
|
36
|
+
stacks.forEach((stack) => (stack.annotations || []).forEach((annotation) => {
|
|
37
|
+
if (annotation.level === cdktn_1.AnnotationMetadataEntryType.ERROR)
|
|
38
|
+
encounteredAnnotationError = true;
|
|
39
|
+
let color = chalkColour.whiteBright;
|
|
40
|
+
let level = annotation.level;
|
|
41
|
+
switch (annotation.level) {
|
|
42
|
+
case cdktn_1.AnnotationMetadataEntryType.INFO: {
|
|
43
|
+
level = "INFO";
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
case cdktn_1.AnnotationMetadataEntryType.WARN: {
|
|
47
|
+
color = chalkColour.hex("#FFA500"); // orange
|
|
48
|
+
level = "WARN";
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
case cdktn_1.AnnotationMetadataEntryType.ERROR: {
|
|
52
|
+
color = chalkColour.redBright;
|
|
53
|
+
level = "ERROR";
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
console.log(color(`${level} [${annotation.constructPath}]: ${annotation.message}`));
|
|
58
|
+
if (annotation.level === cdktn_1.AnnotationMetadataEntryType.ERROR &&
|
|
59
|
+
annotation.stacktrace)
|
|
60
|
+
console.log(chalkColour.gray(annotation.stacktrace.join("\n")));
|
|
61
|
+
}));
|
|
62
|
+
if (encounteredAnnotationError) {
|
|
63
|
+
throw new Error("While synthesizing one or more error annotations have been encountered. Please check the log output above.");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.printAnnotations = printAnnotations;
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3N5bnRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsaUNBQW9EO0FBQ3BELDZDQUErQjtBQUUvQixNQUFNLFdBQVcsR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUV6Qzs7O0dBR0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxNQUEwQjtJQUN6RCxJQUFJLDBCQUEwQixHQUFHLEtBQUssQ0FBQztJQUV2QyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDdkIsQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQy9DLElBQUksVUFBVSxDQUFDLEtBQUssS0FBSyxtQ0FBMkIsQ0FBQyxLQUFLO1lBQ3hELDBCQUEwQixHQUFHLElBQUksQ0FBQztRQUVwQyxJQUFJLEtBQUssR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDO1FBQ3BDLElBQUksS0FBSyxHQUFXLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDckMsUUFBUSxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekIsS0FBSyxtQ0FBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN0QyxLQUFLLEdBQUcsTUFBTSxDQUFDO2dCQUNmLE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSyxtQ0FBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN0QyxLQUFLLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQzdDLEtBQUssR0FBRyxNQUFNLENBQUM7Z0JBQ2YsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLG1DQUEyQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLEtBQUssR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDO2dCQUM5QixLQUFLLEdBQUcsT0FBTyxDQUFDO2dCQUNoQixNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUNULEtBQUssQ0FBQyxHQUFHLEtBQUssS0FBSyxVQUFVLENBQUMsYUFBYSxNQUFNLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUN2RSxDQUFDO1FBQ0YsSUFDRSxVQUFVLENBQUMsS0FBSyxLQUFLLG1DQUEyQixDQUFDLEtBQUs7WUFDdEQsVUFBVSxDQUFDLFVBQVU7WUFFckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBRUYsSUFBSSwwQkFBMEIsRUFBRSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQ2IsNEdBQTRHLENBQzdHLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQTFDRCw0Q0EwQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgU3ludGhlc2l6ZWRTdGFjayB9IGZyb20gXCIuL3N5bnRoLXN0YWNrXCI7XG5pbXBvcnQgeyBBbm5vdGF0aW9uTWV0YWRhdGFFbnRyeVR5cGUgfSBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuXG5jb25zdCBjaGFsa0NvbG91ciA9IG5ldyBjaGFsay5JbnN0YW5jZSgpO1xuXG4vKipcbiAqIHByaW50cyBhbm5vdGF0aW9ucyB2aWEgY29uc29sZVxuICogQHRocm93cyBFcnJvciBpZiBhbiBBbm5vdGF0aW9uIHdpdGggbGV2ZWwgPT09IEVSUk9SIGhhcyBiZWVuIGVuY291bnRlcmVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludEFubm90YXRpb25zKHN0YWNrczogU3ludGhlc2l6ZWRTdGFja1tdKSB7XG4gIGxldCBlbmNvdW50ZXJlZEFubm90YXRpb25FcnJvciA9IGZhbHNlO1xuXG4gIHN0YWNrcy5mb3JFYWNoKChzdGFjaykgPT5cbiAgICAoc3RhY2suYW5ub3RhdGlvbnMgfHwgW10pLmZvckVhY2goKGFubm90YXRpb24pID0+IHtcbiAgICAgIGlmIChhbm5vdGF0aW9uLmxldmVsID09PSBBbm5vdGF0aW9uTWV0YWRhdGFFbnRyeVR5cGUuRVJST1IpXG4gICAgICAgIGVuY291bnRlcmVkQW5ub3RhdGlvbkVycm9yID0gdHJ1ZTtcblxuICAgICAgbGV0IGNvbG9yID0gY2hhbGtDb2xvdXIud2hpdGVCcmlnaHQ7XG4gICAgICBsZXQgbGV2ZWw6IHN0cmluZyA9IGFubm90YXRpb24ubGV2ZWw7XG4gICAgICBzd2l0Y2ggKGFubm90YXRpb24ubGV2ZWwpIHtcbiAgICAgICAgY2FzZSBBbm5vdGF0aW9uTWV0YWRhdGFFbnRyeVR5cGUuSU5GTzoge1xuICAgICAgICAgIGxldmVsID0gXCJJTkZPXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBbm5vdGF0aW9uTWV0YWRhdGFFbnRyeVR5cGUuV0FSTjoge1xuICAgICAgICAgIGNvbG9yID0gY2hhbGtDb2xvdXIuaGV4KFwiI0ZGQTUwMFwiKTsgLy8gb3JhbmdlXG4gICAgICAgICAgbGV2ZWwgPSBcIldBUk5cIjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFubm90YXRpb25NZXRhZGF0YUVudHJ5VHlwZS5FUlJPUjoge1xuICAgICAgICAgIGNvbG9yID0gY2hhbGtDb2xvdXIucmVkQnJpZ2h0O1xuICAgICAgICAgIGxldmVsID0gXCJFUlJPUlwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY29sb3IoYCR7bGV2ZWx9IFske2Fubm90YXRpb24uY29uc3RydWN0UGF0aH1dOiAke2Fubm90YXRpb24ubWVzc2FnZX1gKSxcbiAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgIGFubm90YXRpb24ubGV2ZWwgPT09IEFubm90YXRpb25NZXRhZGF0YUVudHJ5VHlwZS5FUlJPUiAmJlxuICAgICAgICBhbm5vdGF0aW9uLnN0YWNrdHJhY2VcbiAgICAgIClcbiAgICAgICAgY29uc29sZS5sb2coY2hhbGtDb2xvdXIuZ3JheShhbm5vdGF0aW9uLnN0YWNrdHJhY2Uuam9pbihcIlxcblwiKSkpO1xuICAgIH0pLFxuICApO1xuXG4gIGlmIChlbmNvdW50ZXJlZEFubm90YXRpb25FcnJvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiV2hpbGUgc3ludGhlc2l6aW5nIG9uZSBvciBtb3JlIGVycm9yIGFubm90YXRpb25zIGhhdmUgYmVlbiBlbmNvdW50ZXJlZC4gUGxlYXNlIGNoZWNrIHRoZSBsb2cgb3V0cHV0IGFib3ZlLlwiLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terraform-json.d.ts","sourceRoot":"","sources":["terraform-json.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUI,CAAC;AAEjB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA0ClB,CAAC;AAEf,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACjE,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"terraform-json.d.ts","sourceRoot":"","sources":["../../src/lib/terraform-json.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUI,CAAC;AAEjB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA0ClB,CAAC;AAEf,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACjE,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
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.terraformJsonSchema = void 0;
|
|
27
|
+
// Copyright (c) HashiCorp, Inc
|
|
28
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
29
|
+
const z = __importStar(require("zod"));
|
|
30
|
+
const remote = z
|
|
31
|
+
.object({
|
|
32
|
+
organization: z.string(),
|
|
33
|
+
hostname: z.string().optional(),
|
|
34
|
+
token: z.string().optional(),
|
|
35
|
+
workspaces: z.object({
|
|
36
|
+
name: z.string().optional(),
|
|
37
|
+
prefix: z.string().optional(),
|
|
38
|
+
}),
|
|
39
|
+
})
|
|
40
|
+
.deepPartial();
|
|
41
|
+
exports.terraformJsonSchema = z
|
|
42
|
+
.object({
|
|
43
|
+
"//": z
|
|
44
|
+
.object({
|
|
45
|
+
metadata: z
|
|
46
|
+
.object({
|
|
47
|
+
version: z.string(),
|
|
48
|
+
stackName: z.string(),
|
|
49
|
+
backend: z.string(),
|
|
50
|
+
})
|
|
51
|
+
.nonstrict(),
|
|
52
|
+
outputs: z.record(z.any()),
|
|
53
|
+
})
|
|
54
|
+
.nonstrict(),
|
|
55
|
+
terraform: z.object({
|
|
56
|
+
backend: z
|
|
57
|
+
.object({
|
|
58
|
+
// All other backends are here as well, but we don't read them right now
|
|
59
|
+
remote,
|
|
60
|
+
})
|
|
61
|
+
.nonstrict(),
|
|
62
|
+
cloud: z
|
|
63
|
+
.object({
|
|
64
|
+
organization: z.string(),
|
|
65
|
+
hostname: z.string().optional(),
|
|
66
|
+
token: z.string().optional(),
|
|
67
|
+
workspaces: z.union([
|
|
68
|
+
z.object({ name: z.string() }),
|
|
69
|
+
z.object({ tags: z.array(z.string()) }),
|
|
70
|
+
]),
|
|
71
|
+
})
|
|
72
|
+
.nonstrict(),
|
|
73
|
+
required_providers: z.record(z.object({ source: z.string(), version: z.string() }).nonstrict()),
|
|
74
|
+
required_version: z.string(),
|
|
75
|
+
}),
|
|
76
|
+
data: z.record(z.any()),
|
|
77
|
+
provider: z.record(z.any()),
|
|
78
|
+
resource: z.record(z.any()),
|
|
79
|
+
})
|
|
80
|
+
.deepPartial()
|
|
81
|
+
.nonstrict();
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3RlcnJhZm9ybS1qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyx1Q0FBeUI7QUFFekIsTUFBTSxNQUFNLEdBQUcsQ0FBQztLQUNiLE1BQU0sQ0FBQztJQUNOLFlBQVksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3hCLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQy9CLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzVCLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ25CLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQzNCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0tBQzlCLENBQUM7Q0FDSCxDQUFDO0tBQ0QsV0FBVyxFQUFFLENBQUM7QUFFSixRQUFBLG1CQUFtQixHQUFHLENBQUM7S0FDakMsTUFBTSxDQUFDO0lBQ04sSUFBSSxFQUFFLENBQUM7U0FDSixNQUFNLENBQUM7UUFDTixRQUFRLEVBQUUsQ0FBQzthQUNSLE1BQU0sQ0FBQztZQUNOLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ25CLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ3JCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO1NBQ3BCLENBQUM7YUFDRCxTQUFTLEVBQUU7UUFDZCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDM0IsQ0FBQztTQUNELFNBQVMsRUFBRTtJQUNkLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ2xCLE9BQU8sRUFBRSxDQUFDO2FBQ1AsTUFBTSxDQUFDO1lBQ04sd0VBQXdFO1lBQ3hFLE1BQU07U0FDUCxDQUFDO2FBQ0QsU0FBUyxFQUFFO1FBQ2QsS0FBSyxFQUFFLENBQUM7YUFDTCxNQUFNLENBQUM7WUFDTixZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUN4QixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUMvQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUM1QixVQUFVLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDbEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDeEMsQ0FBQztTQUNILENBQUM7YUFDRCxTQUFTLEVBQUU7UUFDZCxrQkFBa0IsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUMxQixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FDbEU7UUFDRCxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0tBQzdCLENBQUM7SUFDRixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkIsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzNCLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztDQUM1QixDQUFDO0tBQ0QsV0FBVyxFQUFFO0tBQ2IsU0FBUyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgeiBmcm9tIFwiem9kXCI7XG5cbmNvbnN0IHJlbW90ZSA9IHpcbiAgLm9iamVjdCh7XG4gICAgb3JnYW5pemF0aW9uOiB6LnN0cmluZygpLFxuICAgIGhvc3RuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgdG9rZW46IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICB3b3Jrc3BhY2VzOiB6Lm9iamVjdCh7XG4gICAgICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICBwcmVmaXg6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICB9KSxcbiAgfSlcbiAgLmRlZXBQYXJ0aWFsKCk7XG5cbmV4cG9ydCBjb25zdCB0ZXJyYWZvcm1Kc29uU2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBcIi8vXCI6IHpcbiAgICAgIC5vYmplY3Qoe1xuICAgICAgICBtZXRhZGF0YTogelxuICAgICAgICAgIC5vYmplY3Qoe1xuICAgICAgICAgICAgdmVyc2lvbjogei5zdHJpbmcoKSxcbiAgICAgICAgICAgIHN0YWNrTmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgICAgIGJhY2tlbmQ6IHouc3RyaW5nKCksXG4gICAgICAgICAgfSlcbiAgICAgICAgICAubm9uc3RyaWN0KCksXG4gICAgICAgIG91dHB1dHM6IHoucmVjb3JkKHouYW55KCkpLFxuICAgICAgfSlcbiAgICAgIC5ub25zdHJpY3QoKSxcbiAgICB0ZXJyYWZvcm06IHoub2JqZWN0KHtcbiAgICAgIGJhY2tlbmQ6IHpcbiAgICAgICAgLm9iamVjdCh7XG4gICAgICAgICAgLy8gQWxsIG90aGVyIGJhY2tlbmRzIGFyZSBoZXJlIGFzIHdlbGwsIGJ1dCB3ZSBkb24ndCByZWFkIHRoZW0gcmlnaHQgbm93XG4gICAgICAgICAgcmVtb3RlLFxuICAgICAgICB9KVxuICAgICAgICAubm9uc3RyaWN0KCksXG4gICAgICBjbG91ZDogelxuICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICBvcmdhbml6YXRpb246IHouc3RyaW5nKCksXG4gICAgICAgICAgaG9zdG5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgICAgICB0b2tlbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgICAgICAgIHdvcmtzcGFjZXM6IHoudW5pb24oW1xuICAgICAgICAgICAgei5vYmplY3QoeyBuYW1lOiB6LnN0cmluZygpIH0pLFxuICAgICAgICAgICAgei5vYmplY3QoeyB0YWdzOiB6LmFycmF5KHouc3RyaW5nKCkpIH0pLFxuICAgICAgICAgIF0pLFxuICAgICAgICB9KVxuICAgICAgICAubm9uc3RyaWN0KCksXG4gICAgICByZXF1aXJlZF9wcm92aWRlcnM6IHoucmVjb3JkKFxuICAgICAgICB6Lm9iamVjdCh7IHNvdXJjZTogei5zdHJpbmcoKSwgdmVyc2lvbjogei5zdHJpbmcoKSB9KS5ub25zdHJpY3QoKSxcbiAgICAgICksXG4gICAgICByZXF1aXJlZF92ZXJzaW9uOiB6LnN0cmluZygpLFxuICAgIH0pLFxuICAgIGRhdGE6IHoucmVjb3JkKHouYW55KCkpLFxuICAgIHByb3ZpZGVyOiB6LnJlY29yZCh6LmFueSgpKSxcbiAgICByZXNvdXJjZTogei5yZWNvcmQoei5hbnkoKSksXG4gIH0pXG4gIC5kZWVwUGFydGlhbCgpXG4gIC5ub25zdHJpY3QoKTtcblxuZXhwb3J0IHR5cGUgVGVycmFmb3JtU3RhY2sgPSB6LmluZmVyPHR5cGVvZiB0ZXJyYWZvcm1Kc29uU2NoZW1hPjtcbmV4cG9ydCB0eXBlIFRlcnJhZm9ybUpzb25Db25maWdCYWNrZW5kUmVtb3RlID0gei5pbmZlcjx0eXBlb2YgcmVtb3RlPjtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terraform-provider-lock.d.ts","sourceRoot":"","sources":["../../src/lib/terraform-provider-lock.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAKvE,KAAK,8BAA8B,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC,CAAC;AAQF,qBAAa,qBAAqB;IAEpB,OAAO,CAAC,qBAAqB;IADzC,OAAO,CAAC,iBAAiB,CAAuC;gBAC5C,qBAAqB,EAAE,MAAM;IAIjD,OAAO,KAAK,YAAY,GAEvB;IAEY,mBAAmB;YASlB,oBAAoB;IAYlC,OAAO,CAAC,qBAAqB;IAyChB,SAAS,CAAC,WAAW,UAAQ;;;IAS7B,mBAAmB,CAAC,UAAU,EAAE,kBAAkB;CAWhE"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) HashiCorp, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.TerraformProviderLock = void 0;
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
13
|
+
const dependency_manager_1 = require("./dependencies/dependency-manager");
|
|
14
|
+
const commons_1 = require("@cdktn/commons");
|
|
15
|
+
const TerraformLockFileName = ".terraform.lock.hcl";
|
|
16
|
+
class TerraformProviderLock {
|
|
17
|
+
constructor(stackWorkingDirectory) {
|
|
18
|
+
this.stackWorkingDirectory = stackWorkingDirectory;
|
|
19
|
+
this._providerLockData = null;
|
|
20
|
+
}
|
|
21
|
+
get lockFilePath() {
|
|
22
|
+
return path_1.default.join(this.stackWorkingDirectory, TerraformLockFileName);
|
|
23
|
+
}
|
|
24
|
+
async hasProviderLockFile() {
|
|
25
|
+
try {
|
|
26
|
+
await promises_1.default.stat(this.lockFilePath);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async readProviderLockFile() {
|
|
34
|
+
try {
|
|
35
|
+
const lockFile = (await promises_1.default.readFile(this.lockFilePath)).toString();
|
|
36
|
+
return lockFile;
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
commons_1.logger.debug("Unable to read provider lock file", e);
|
|
40
|
+
}
|
|
41
|
+
return "";
|
|
42
|
+
}
|
|
43
|
+
parseProviderLockFile(contents) {
|
|
44
|
+
const providerLockData = {
|
|
45
|
+
providers: {},
|
|
46
|
+
};
|
|
47
|
+
let currentProvider;
|
|
48
|
+
contents.split(/\r\n|\r|\n/).forEach((line) => {
|
|
49
|
+
if (currentProvider) {
|
|
50
|
+
const constraintMatch = line.match(/^\s*constraints\s+=\s+"(.*)"/);
|
|
51
|
+
if (constraintMatch) {
|
|
52
|
+
providerLockData.providers[currentProvider].constraints =
|
|
53
|
+
new dependency_manager_1.ProviderConstraint(currentProvider, constraintMatch[1]);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const versionMatch = line.match(/^\s*version\s+=\s+"(.*)"/);
|
|
57
|
+
if (versionMatch) {
|
|
58
|
+
providerLockData.providers[currentProvider].version = versionMatch[1];
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const endMatch = line.match(/^\s*}/);
|
|
62
|
+
if (endMatch) {
|
|
63
|
+
currentProvider = undefined;
|
|
64
|
+
}
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const providerMatch = line.match(/provider "(.*)"/);
|
|
68
|
+
if (providerMatch) {
|
|
69
|
+
currentProvider = providerMatch[1];
|
|
70
|
+
providerLockData.providers[currentProvider] = {
|
|
71
|
+
name: new dependency_manager_1.ProviderConstraint(currentProvider, ">=0").simplifiedName,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
return providerLockData;
|
|
76
|
+
}
|
|
77
|
+
async providers(forceReread = false) {
|
|
78
|
+
if (!this._providerLockData || forceReread) {
|
|
79
|
+
const contents = await this.readProviderLockFile();
|
|
80
|
+
this._providerLockData = this.parseProviderLockFile(contents);
|
|
81
|
+
}
|
|
82
|
+
return this._providerLockData.providers;
|
|
83
|
+
}
|
|
84
|
+
async hasMatchingProvider(constraint) {
|
|
85
|
+
var _a, _b;
|
|
86
|
+
const providerLockData = await this.providers();
|
|
87
|
+
const lockedProvider = providerLockData[constraint.source];
|
|
88
|
+
if (lockedProvider) {
|
|
89
|
+
return (_a = lockedProvider.constraints) === null || _a === void 0 ? void 0 : _a.matchesVersion((_b = constraint.version) !== null && _b !== void 0 ? _b : ">0");
|
|
90
|
+
}
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.TerraformProviderLock = TerraformProviderLock;
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLXByb3ZpZGVyLWxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3RlcnJhZm9ybS1wcm92aWRlci1sb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7Ozs7OztBQUVILGdEQUF3QjtBQUN4QiwyREFBNkI7QUFDN0IsMEVBQXVFO0FBQ3ZFLDRDQUF3QztBQUV4QyxNQUFNLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO0FBY3BELE1BQWEscUJBQXFCO0lBRWhDLFlBQW9CLHFCQUE2QjtRQUE3QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQVE7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBWSxZQUFZO1FBQ3RCLE9BQU8sY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sS0FBSyxDQUFDLG1CQUFtQjtRQUM5QixJQUFJLENBQUM7WUFDSCxNQUFNLGtCQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxvQkFBb0I7UUFDaEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLGtCQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRW5FLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVPLHFCQUFxQixDQUFDLFFBQWdCO1FBQzVDLE1BQU0sZ0JBQWdCLEdBQWtDO1lBQ3RELFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztRQUNGLElBQUksZUFBbUMsQ0FBQztRQUV4QyxRQUFRLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzVDLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDcEIsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFdBQVc7d0JBQ3JELElBQUksdUNBQWtCLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM5RCxPQUFPO2dCQUNULENBQUM7Z0JBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLFlBQVksRUFBRSxDQUFDO29CQUNqQixnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdEUsT0FBTztnQkFDVCxDQUFDO2dCQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3JDLElBQUksUUFBUSxFQUFFLENBQUM7b0JBQ2IsZUFBZSxHQUFHLFNBQVMsQ0FBQztnQkFDOUIsQ0FBQztnQkFFRCxPQUFPO1lBQ1QsQ0FBQztZQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNwRCxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixlQUFlLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEdBQUc7b0JBQzVDLElBQUksRUFBRSxJQUFJLHVDQUFrQixDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQyxjQUFjO2lCQUNwRSxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsS0FBSztRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQzNDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDO0lBQzFDLENBQUM7SUFFTSxLQUFLLENBQUMsbUJBQW1CLENBQUMsVUFBOEI7O1FBQzdELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEQsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsT0FBTyxNQUFBLGNBQWMsQ0FBQyxXQUFXLDBDQUFFLGNBQWMsQ0FDL0MsTUFBQSxVQUFVLENBQUMsT0FBTyxtQ0FBSSxJQUFJLENBQzNCLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUE1RkQsc0RBNEZDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IGZzIGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgUHJvdmlkZXJDb25zdHJhaW50IH0gZnJvbSBcIi4vZGVwZW5kZW5jaWVzL2RlcGVuZGVuY3ktbWFuYWdlclwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5cbmNvbnN0IFRlcnJhZm9ybUxvY2tGaWxlTmFtZSA9IFwiLnRlcnJhZm9ybS5sb2NrLmhjbFwiO1xuXG50eXBlIFRlcnJhZm9ybVByb3ZpZGVyTG9ja0ZpbGVFbnRyeSA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBjb25zdHJhaW50cz86IFByb3ZpZGVyQ29uc3RyYWludDtcbn07XG5cbnR5cGUgVGVycmFmb3JtUHJvdmlkZXJMb2NrRmlsZURhdGEgPSB7XG4gIHByb3ZpZGVyczoge1xuICAgIFtuYW1lOiBzdHJpbmddOiBUZXJyYWZvcm1Qcm92aWRlckxvY2tGaWxlRW50cnk7XG4gIH07XG59O1xuXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtUHJvdmlkZXJMb2NrIHtcbiAgcHJpdmF0ZSBfcHJvdmlkZXJMb2NrRGF0YTogVGVycmFmb3JtUHJvdmlkZXJMb2NrRmlsZURhdGEgfCBudWxsO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0YWNrV29ya2luZ0RpcmVjdG9yeTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcHJvdmlkZXJMb2NrRGF0YSA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldCBsb2NrRmlsZVBhdGgoKSB7XG4gICAgcmV0dXJuIHBhdGguam9pbih0aGlzLnN0YWNrV29ya2luZ0RpcmVjdG9yeSwgVGVycmFmb3JtTG9ja0ZpbGVOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBoYXNQcm92aWRlckxvY2tGaWxlKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy5zdGF0KHRoaXMubG9ja0ZpbGVQYXRoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlYWRQcm92aWRlckxvY2tGaWxlKCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBsb2NrRmlsZSA9IChhd2FpdCBmcy5yZWFkRmlsZSh0aGlzLmxvY2tGaWxlUGF0aCkpLnRvU3RyaW5nKCk7XG5cbiAgICAgIHJldHVybiBsb2NrRmlsZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBsb2dnZXIuZGVidWcoXCJVbmFibGUgdG8gcmVhZCBwcm92aWRlciBsb2NrIGZpbGVcIiwgZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlUHJvdmlkZXJMb2NrRmlsZShjb250ZW50czogc3RyaW5nKSB7XG4gICAgY29uc3QgcHJvdmlkZXJMb2NrRGF0YTogVGVycmFmb3JtUHJvdmlkZXJMb2NrRmlsZURhdGEgPSB7XG4gICAgICBwcm92aWRlcnM6IHt9LFxuICAgIH07XG4gICAgbGV0IGN1cnJlbnRQcm92aWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgY29udGVudHMuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLykuZm9yRWFjaCgobGluZSkgPT4ge1xuICAgICAgaWYgKGN1cnJlbnRQcm92aWRlcikge1xuICAgICAgICBjb25zdCBjb25zdHJhaW50TWF0Y2ggPSBsaW5lLm1hdGNoKC9eXFxzKmNvbnN0cmFpbnRzXFxzKz1cXHMrXCIoLiopXCIvKTtcbiAgICAgICAgaWYgKGNvbnN0cmFpbnRNYXRjaCkge1xuICAgICAgICAgIHByb3ZpZGVyTG9ja0RhdGEucHJvdmlkZXJzW2N1cnJlbnRQcm92aWRlcl0uY29uc3RyYWludHMgPVxuICAgICAgICAgICAgbmV3IFByb3ZpZGVyQ29uc3RyYWludChjdXJyZW50UHJvdmlkZXIsIGNvbnN0cmFpbnRNYXRjaFsxXSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmVyc2lvbk1hdGNoID0gbGluZS5tYXRjaCgvXlxccyp2ZXJzaW9uXFxzKz1cXHMrXCIoLiopXCIvKTtcbiAgICAgICAgaWYgKHZlcnNpb25NYXRjaCkge1xuICAgICAgICAgIHByb3ZpZGVyTG9ja0RhdGEucHJvdmlkZXJzW2N1cnJlbnRQcm92aWRlcl0udmVyc2lvbiA9IHZlcnNpb25NYXRjaFsxXTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbmRNYXRjaCA9IGxpbmUubWF0Y2goL15cXHMqfS8pO1xuICAgICAgICBpZiAoZW5kTWF0Y2gpIHtcbiAgICAgICAgICBjdXJyZW50UHJvdmlkZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb3ZpZGVyTWF0Y2ggPSBsaW5lLm1hdGNoKC9wcm92aWRlciBcIiguKilcIi8pO1xuICAgICAgaWYgKHByb3ZpZGVyTWF0Y2gpIHtcbiAgICAgICAgY3VycmVudFByb3ZpZGVyID0gcHJvdmlkZXJNYXRjaFsxXTtcbiAgICAgICAgcHJvdmlkZXJMb2NrRGF0YS5wcm92aWRlcnNbY3VycmVudFByb3ZpZGVyXSA9IHtcbiAgICAgICAgICBuYW1lOiBuZXcgUHJvdmlkZXJDb25zdHJhaW50KGN1cnJlbnRQcm92aWRlciwgXCI+PTBcIikuc2ltcGxpZmllZE5hbWUsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvdmlkZXJMb2NrRGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcm92aWRlcnMoZm9yY2VSZXJlYWQgPSBmYWxzZSkge1xuICAgIGlmICghdGhpcy5fcHJvdmlkZXJMb2NrRGF0YSB8fCBmb3JjZVJlcmVhZCkge1xuICAgICAgY29uc3QgY29udGVudHMgPSBhd2FpdCB0aGlzLnJlYWRQcm92aWRlckxvY2tGaWxlKCk7XG4gICAgICB0aGlzLl9wcm92aWRlckxvY2tEYXRhID0gdGhpcy5wYXJzZVByb3ZpZGVyTG9ja0ZpbGUoY29udGVudHMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wcm92aWRlckxvY2tEYXRhLnByb3ZpZGVycztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBoYXNNYXRjaGluZ1Byb3ZpZGVyKGNvbnN0cmFpbnQ6IFByb3ZpZGVyQ29uc3RyYWludCkge1xuICAgIGNvbnN0IHByb3ZpZGVyTG9ja0RhdGEgPSBhd2FpdCB0aGlzLnByb3ZpZGVycygpO1xuICAgIGNvbnN0IGxvY2tlZFByb3ZpZGVyID0gcHJvdmlkZXJMb2NrRGF0YVtjb25zdHJhaW50LnNvdXJjZV07XG4gICAgaWYgKGxvY2tlZFByb3ZpZGVyKSB7XG4gICAgICByZXR1cm4gbG9ja2VkUHJvdmlkZXIuY29uc3RyYWludHM/Lm1hdGNoZXNWZXJzaW9uKFxuICAgICAgICBjb25zdHJhaW50LnZlcnNpb24gPz8gXCI+MFwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/lib/watch.ts"],"names":[],"mappings":";AAGA,OAAO,EAEL,mBAAmB,EACnB,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA0E3C,MAAM,MAAM,KAAK,GACb;IACE,IAAI,EAAE,SAAS,CAAC;CACjB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB,GACD;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAExB,wBAAsB,KAAK,CACzB,cAAc,EAAE,mBAAmB,EACnC,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,IAAI,iBAiFzC"}
|