@cdktn/cli-core 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.
Files changed (169) hide show
  1. package/ambient.d.ts +0 -1
  2. package/build/lib/cdktf-config.d.ts.map +1 -0
  3. package/build/lib/cdktf-config.js +108 -0
  4. package/build/lib/cdktf-project-io-handler.d.ts.map +1 -0
  5. package/build/lib/cdktf-project-io-handler.js +84 -0
  6. package/build/lib/cdktf-project.d.ts.map +1 -0
  7. package/build/lib/cdktf-project.js +370 -0
  8. package/{src → build}/lib/cdktf-stack.d.ts +1 -0
  9. package/build/lib/cdktf-stack.d.ts.map +1 -0
  10. package/build/lib/cdktf-stack.js +386 -0
  11. package/build/lib/convert.d.ts.map +1 -0
  12. package/build/lib/convert.js +51 -0
  13. package/build/lib/dependencies/cdktf-config-manager.d.ts.map +1 -0
  14. package/build/lib/dependencies/cdktf-config-manager.js +36 -0
  15. package/build/lib/dependencies/dependency-manager.d.ts.map +1 -0
  16. package/build/lib/dependencies/dependency-manager.js +393 -0
  17. package/build/lib/dependencies/package-manager.d.ts.map +1 -0
  18. package/build/lib/dependencies/package-manager.js +581 -0
  19. package/build/lib/dependencies/prebuilt-providers.d.ts.map +1 -0
  20. package/build/lib/dependencies/prebuilt-providers.js +221 -0
  21. package/build/lib/dependencies/registry-api.d.ts.map +1 -0
  22. package/build/lib/dependencies/registry-api.js +77 -0
  23. package/build/lib/dependencies/version-constraints.d.ts.map +1 -0
  24. package/build/lib/dependencies/version-constraints.js +95 -0
  25. package/build/lib/error-reporting.d.ts.map +1 -0
  26. package/build/lib/error-reporting.js +133 -0
  27. package/build/lib/errors.d.ts.map +1 -0
  28. package/build/lib/errors.js +10 -0
  29. package/build/lib/execution-logs.d.ts.map +1 -0
  30. package/build/lib/execution-logs.js +47 -0
  31. package/build/lib/get.d.ts.map +1 -0
  32. package/build/lib/get.js +90 -0
  33. package/build/lib/helpers/stack-helpers.d.ts.map +1 -0
  34. package/build/lib/helpers/stack-helpers.js +155 -0
  35. package/build/lib/index.d.ts.map +1 -0
  36. package/{src → build}/lib/index.js +1 -2
  37. package/build/lib/init.d.ts.map +1 -0
  38. package/build/lib/init.js +131 -0
  39. package/build/lib/local-provider-constraints.d.ts.map +1 -0
  40. package/build/lib/local-provider-constraints.js +95 -0
  41. package/build/lib/local-provider-versions.d.ts.map +1 -0
  42. package/build/lib/local-provider-versions.js +73 -0
  43. package/{src → build}/lib/models/deploy-machine.d.ts +3 -11
  44. package/build/lib/models/deploy-machine.d.ts.map +1 -0
  45. package/build/lib/models/deploy-machine.js +283 -0
  46. package/build/lib/models/interactive-process.d.ts +28 -0
  47. package/build/lib/models/interactive-process.d.ts.map +1 -0
  48. package/build/lib/models/interactive-process.js +59 -0
  49. package/{src → build}/lib/models/schema.d.ts.map +1 -1
  50. package/build/lib/models/schema.js +181 -0
  51. package/{src → build}/lib/models/terraform-cli.d.ts +1 -0
  52. package/build/lib/models/terraform-cli.d.ts.map +1 -0
  53. package/build/lib/models/terraform-cli.js +355 -0
  54. package/build/lib/models/terraform.d.ts.map +1 -0
  55. package/build/lib/models/terraform.js +72 -0
  56. package/build/lib/output.d.ts.map +1 -0
  57. package/build/lib/output.js +211 -0
  58. package/build/lib/provider-add.d.ts.map +1 -0
  59. package/build/lib/provider-add.js +30 -0
  60. package/build/lib/server/terraform-logs.d.ts.map +1 -0
  61. package/build/lib/server/terraform-logs.js +19 -0
  62. package/{src → build}/lib/synth-stack.d.ts +1 -0
  63. package/build/lib/synth-stack.d.ts.map +1 -0
  64. package/build/lib/synth-stack.js +251 -0
  65. package/build/lib/synth.d.ts.map +1 -0
  66. package/build/lib/synth.js +67 -0
  67. package/{src → build}/lib/terraform-json.d.ts.map +1 -1
  68. package/build/lib/terraform-json.js +82 -0
  69. package/build/lib/terraform-provider-lock.d.ts.map +1 -0
  70. package/{src → build}/lib/terraform-provider-lock.js +2 -2
  71. package/{src → build}/lib/watch.d.ts +1 -0
  72. package/build/lib/watch.d.ts.map +1 -0
  73. package/build/lib/watch.js +155 -0
  74. package/eslint.config.mjs +2 -70
  75. package/package.json +22 -33
  76. package/templates/go/go.mod +1 -1
  77. package/templates/python/Pipfile +1 -1
  78. package/templates/typescript/.hooks.sscaff.js +1 -1
  79. package/templates/typescript/jest.config.js +1 -1
  80. package/src/lib/cdktf-config.d.ts.map +0 -1
  81. package/src/lib/cdktf-config.js +0 -108
  82. package/src/lib/cdktf-project-io-handler.d.ts.map +0 -1
  83. package/src/lib/cdktf-project-io-handler.js +0 -84
  84. package/src/lib/cdktf-project.d.ts.map +0 -1
  85. package/src/lib/cdktf-project.js +0 -371
  86. package/src/lib/cdktf-stack.d.ts.map +0 -1
  87. package/src/lib/cdktf-stack.js +0 -386
  88. package/src/lib/convert.d.ts.map +0 -1
  89. package/src/lib/convert.js +0 -51
  90. package/src/lib/dependencies/cdktf-config-manager.d.ts.map +0 -1
  91. package/src/lib/dependencies/cdktf-config-manager.js +0 -36
  92. package/src/lib/dependencies/dependency-manager.d.ts.map +0 -1
  93. package/src/lib/dependencies/dependency-manager.js +0 -393
  94. package/src/lib/dependencies/package-manager.d.ts.map +0 -1
  95. package/src/lib/dependencies/package-manager.js +0 -581
  96. package/src/lib/dependencies/prebuilt-providers.d.ts.map +0 -1
  97. package/src/lib/dependencies/prebuilt-providers.js +0 -220
  98. package/src/lib/dependencies/registry-api.d.ts.map +0 -1
  99. package/src/lib/dependencies/registry-api.js +0 -77
  100. package/src/lib/dependencies/version-constraints.d.ts.map +0 -1
  101. package/src/lib/dependencies/version-constraints.js +0 -95
  102. package/src/lib/error-reporting.d.ts.map +0 -1
  103. package/src/lib/error-reporting.js +0 -133
  104. package/src/lib/errors.d.ts.map +0 -1
  105. package/src/lib/errors.js +0 -10
  106. package/src/lib/execution-logs.d.ts.map +0 -1
  107. package/src/lib/execution-logs.js +0 -47
  108. package/src/lib/get.d.ts.map +0 -1
  109. package/src/lib/get.js +0 -90
  110. package/src/lib/helpers/stack-helpers.d.ts.map +0 -1
  111. package/src/lib/helpers/stack-helpers.js +0 -155
  112. package/src/lib/index.d.ts.map +0 -1
  113. package/src/lib/init.d.ts.map +0 -1
  114. package/src/lib/init.js +0 -131
  115. package/src/lib/local-provider-constraints.d.ts.map +0 -1
  116. package/src/lib/local-provider-constraints.js +0 -95
  117. package/src/lib/local-provider-versions.d.ts.map +0 -1
  118. package/src/lib/local-provider-versions.js +0 -73
  119. package/src/lib/models/deploy-machine.d.ts.map +0 -1
  120. package/src/lib/models/deploy-machine.js +0 -280
  121. package/src/lib/models/pty-process.d.ts +0 -29
  122. package/src/lib/models/pty-process.d.ts.map +0 -1
  123. package/src/lib/models/pty-process.js +0 -132
  124. package/src/lib/models/schema.js +0 -181
  125. package/src/lib/models/terraform-cli.d.ts.map +0 -1
  126. package/src/lib/models/terraform-cli.js +0 -357
  127. package/src/lib/models/terraform.d.ts.map +0 -1
  128. package/src/lib/models/terraform.js +0 -72
  129. package/src/lib/output.d.ts.map +0 -1
  130. package/src/lib/output.js +0 -211
  131. package/src/lib/provider-add.d.ts.map +0 -1
  132. package/src/lib/provider-add.js +0 -30
  133. package/src/lib/server/terraform-logs.d.ts.map +0 -1
  134. package/src/lib/server/terraform-logs.js +0 -19
  135. package/src/lib/synth-stack.d.ts.map +0 -1
  136. package/src/lib/synth-stack.js +0 -251
  137. package/src/lib/synth.d.ts.map +0 -1
  138. package/src/lib/synth.js +0 -67
  139. package/src/lib/terraform-json.js +0 -82
  140. package/src/lib/terraform-provider-lock.d.ts.map +0 -1
  141. package/src/lib/watch.d.ts.map +0 -1
  142. package/src/lib/watch.js +0 -155
  143. /package/{src → build}/lib/cdktf-config.d.ts +0 -0
  144. /package/{src → build}/lib/cdktf-project-io-handler.d.ts +0 -0
  145. /package/{src → build}/lib/cdktf-project.d.ts +0 -0
  146. /package/{src → build}/lib/convert.d.ts +0 -0
  147. /package/{src → build}/lib/dependencies/cdktf-config-manager.d.ts +0 -0
  148. /package/{src → build}/lib/dependencies/dependency-manager.d.ts +0 -0
  149. /package/{src → build}/lib/dependencies/package-manager.d.ts +0 -0
  150. /package/{src → build}/lib/dependencies/prebuilt-providers.d.ts +0 -0
  151. /package/{src → build}/lib/dependencies/registry-api.d.ts +0 -0
  152. /package/{src → build}/lib/dependencies/version-constraints.d.ts +0 -0
  153. /package/{src → build}/lib/error-reporting.d.ts +0 -0
  154. /package/{src → build}/lib/errors.d.ts +0 -0
  155. /package/{src → build}/lib/execution-logs.d.ts +0 -0
  156. /package/{src → build}/lib/get.d.ts +0 -0
  157. /package/{src → build}/lib/helpers/stack-helpers.d.ts +0 -0
  158. /package/{src → build}/lib/index.d.ts +0 -0
  159. /package/{src → build}/lib/init.d.ts +0 -0
  160. /package/{src → build}/lib/local-provider-constraints.d.ts +0 -0
  161. /package/{src → build}/lib/local-provider-versions.d.ts +0 -0
  162. /package/{src → build}/lib/models/schema.d.ts +0 -0
  163. /package/{src → build}/lib/models/terraform.d.ts +0 -0
  164. /package/{src → build}/lib/output.d.ts +0 -0
  165. /package/{src → build}/lib/provider-add.d.ts +0 -0
  166. /package/{src → build}/lib/server/terraform-logs.d.ts +0 -0
  167. /package/{src → build}/lib/synth.d.ts +0 -0
  168. /package/{src → build}/lib/terraform-json.d.ts +0 -0
  169. /package/{src → build}/lib/terraform-provider-lock.d.ts +0 -0
@@ -1,251 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGgtc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzeW50aC1zdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsNkNBQStCO0FBQy9CLDJDQUE2QjtBQUM3Qiw2Q0FBK0I7QUFDL0Isa0VBQXlDO0FBQ3pDLGlDQUtlO0FBQ2YsMkNBQXlDO0FBQ3pDLDRDQUE4RTtBQUM5RSxpREFBNkM7QUFDN0MsZ0RBQTBDO0FBRTFDLE1BQU0sV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBVXpDLE1BQWEsaUJBQWlCO0lBSzVCLFlBQTZCLE1BQTBCO1FBQTFCLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBSmhELGtCQUFhLEdBQXVCLEVBQUUsQ0FBQztRQUN2QyxtQkFBYyxHQUF1QixFQUFFLENBQUM7UUFDeEMsbUJBQWMsR0FBdUIsRUFBRSxDQUFDO1FBRzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQXVCO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQzVDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQ25DLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQXVCO1FBQ3RDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQzlDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQ25DLENB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c0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5pbXBvcnQgaW5kZW50U3RyaW5nIGZyb20gXCJpbmRlbnQtc3RyaW5nXCI7XG5pbXBvcnQge1xuICBDT05URVhUX0VOVixcbiAgTWFuaWZlc3QsXG4gIFN0YWNrTWFuaWZlc3QsXG4gIFRlcnJhZm9ybVN0YWNrTWV0YWRhdGEsXG59IGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgcGVyZm9ybWFuY2UgfSBmcm9tIFwicGVyZl9ob29rc1wiO1xuaW1wb3J0IHsgbG9nZ2VyLCByZWFkQ29uZmlnU3luYywgc2VuZFRlbGVtZXRyeSwgc2hlbGwgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7IENka3RmQ29uZmlnIH0gZnJvbSBcIi4vY2RrdGYtY29uZmlnXCI7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwiQGNka3RuL2hjbC10b29sc1wiO1xuXG5jb25zdCBjaGFsa0NvbG91ciA9IG5ldyBjaGFsay5JbnN0YW5jZSgpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN5bnRoZXNpemVkU3RhY2tNZXRhZGF0YSB7XG4gIFwiLy9cIj86IHsgW2tleTogc3RyaW5nXTogVGVycmFmb3JtU3RhY2tNZXRhZGF0YSB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN5bnRoZXNpemVkU3RhY2sgZXh0ZW5kcyBTdGFja01hbmlmZXN0IHtcbiAgY29udGVudDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgU3RhY2tEZXBlbmRlbmNpZXMge1xuICBwdWJsaWMgcGVuZGluZ1N0YWNrczogU3ludGhlc2l6ZWRTdGFja1tdID0gW107XG4gIHB1YmxpYyBpbmZsaWdodFN0YWNrczogU3ludGhlc2l6ZWRTdGFja1tdID0gW107XG4gIHB1YmxpYyBkZXBsb3llZFN0YWNrczogU3ludGhlc2l6ZWRTdGFja1tdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdGFja3M6IFN5bnRoZXNpemVkU3RhY2tbXSkge1xuICAgIHRoaXMucGVuZGluZ1N0YWNrcyA9IFsuLi50aGlzLnN0YWNrc107XG4gIH1cblxuICBwdWJsaWMgc3RhcnRSdW4oc3RhY2s6IFN5bnRoZXNpemVkU3RhY2spOiB2b2lkIHtcbiAgICB0aGlzLnBlbmRpbmdTdGFja3MgPSB0aGlzLnBlbmRpbmdTdGFja3MuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+IGl0ZW0ubmFtZSAhPT0gc3RhY2submFtZSxcbiAgICApO1xuICAgIHRoaXMuaW5mbGlnaHRTdGFja3MucHVzaChzdGFjayk7XG4gIH1cblxuICBwdWJsaWMgZmluaXNoUnVuKHN0YWNrOiBTeW50aGVzaXplZFN0YWNrKTogdm9pZCB7XG4gICAgdGhpcy5pbmZsaWdodFN0YWNrcyA9IHRoaXMuaW5mbGlnaHRTdGFja3MuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+IGl0ZW0ubmFtZSAhPT0gc3RhY2submFtZSxcbiAgICApO1xuICAgIHRoaXMuZGVwbG95ZWRTdGFja3MucHVzaChzdGFjayk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBlbmRpbmdEZXBsb3lhYmxlU3RhY2tzKCk6IFN5bnRoZXNpemVkU3RhY2tbXSB7XG4gICAgcmV0dXJuIHRoaXMucGVuZGluZ1N0YWNrcy5maWx0ZXIoKHBlbmRpbmdTdGFjaykgPT4ge1xuICAgICAgY29uc3QgdW5tZXREZXBlbmRlbmNpZXMgPSBwZW5kaW5nU3RhY2suZGVwZW5kZW5jaWVzLmZpbHRlcihcbiAgICAgICAgKGRlcGVuZGVuY3kpID0+IHtcbiAgICAgICAgICByZXR1cm4gIXRoaXMuZGVwbG95ZWRTdGFja3Muc29tZSgoZGVwbG95ZWRTdGFjaykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGRlcGxveWVkU3RhY2submFtZSA9PT0gZGVwZW5kZW5jeTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiB1bm1ldERlcGVuZGVuY2llcy5sZW5ndGggPT09IDA7XG4gICAgfSk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIE1hbmlmZXN0SnNvbiB7XG4gIHZlcnNpb246IHN0cmluZztcbiAgc3RhY2tzOiBTdGFja01hbmlmZXN0W107XG59XG5cbmV4cG9ydCB0eXBlIFN5bnRoT3JpZ2luID0gXCJ3YXRjaFwiO1xuXG5leHBvcnQgY2xhc3MgU3ludGhTdGFjayB7XG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgc3ludGgoXG4gICAgYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsLFxuICAgIGNvbW1hbmQ6IHN0cmluZyxcbiAgICBvdXRkaXI6IHN0cmluZyxcbiAgICB3b3JraW5nRGlyZWN0b3J5ID0gcHJvY2Vzcy5jd2QoKSxcbiAgICBncmFjZWZ1bCA9IGZhbHNlLCAvLyB3aWxsIG5vdCBleGl0IHRoZSBwcm9jZXNzIGJ1dCByZXRocm93IHRoZSBlcnJvciBpbnN0ZWFkXG4gICAgbm9Db2xvciA9IGZhbHNlLFxuICAgIHN5bnRoT3JpZ2luPzogU3ludGhPcmlnaW4sXG4gICAgaGNsID0gZmFsc2UsXG4gICk6IFByb21pc2U8U3ludGhlc2l6ZWRTdGFja1tdPiB7XG4gICAgLy8gc3RhcnQgcGVyZm9ybWFuY2UgdGltZXJcbiAgICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICAgIGNvbnN0IGlzRGlyZWN0b3J5ID0gKHNvdXJjZTogc3RyaW5nKSA9PiBmcy5sc3RhdFN5bmMoc291cmNlKS5pc0RpcmVjdG9yeSgpO1xuICAgIGNvbnN0IGdldERpcmVjdG9yaWVzID0gKHNvdXJjZTogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoc291cmNlKSkgcmV0dXJuIFtdO1xuICAgICAgcmV0dXJuIGZzXG4gICAgICAgIC5yZWFkZGlyU3luYyhzb3VyY2UpXG4gICAgICAgIC5tYXAoKG5hbWUpID0+IHBhdGguam9pbihzb3VyY2UsIG5hbWUpKVxuICAgICAgICAuZmlsdGVyKGlzRGlyZWN0b3J5KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZXhpc3RpbmdEaXJlY3RvcmllcyA9IGdldERpcmVjdG9yaWVzKFxuICAgICAgcGF0aC5qb2luKG91dGRpciwgTWFuaWZlc3Quc3RhY2tzRm9sZGVyKSxcbiAgICApO1xuXG4gICAgY29uc3QgZW52ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMocHJvY2Vzcy5lbnYpLmZpbHRlcihcbiAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBwYXNzIFRlcnJhZm9ybSB2YXJpYWJsZXMgdG8gdGhlIHN5bnRoIGNvbW1hbmQgc2luY2UgdGhleSBzaG91bGQgb25seSBiZSB1c2VkIGF0IGV4ZWN1dGlvbiB0aW1lXG4gICAgICAgIChba2V5XSkgPT4gIWtleS5zdGFydHNXaXRoKFwiVEZfVkFSX1wiKSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIC8vIEluY3JlYXNlcyB0aGUgZGVmYXVsdCBtZW1vcnkgYXZhaWxhYmxlIHRvIE5vZGUuanMgd2hlbiBzeW50aGVzaXppbmcgYSBUeXBlU2NyaXB0IENESyBwcm9qZWN0LlxuICAgIGNvbnN0IG5vZGVPcHRzU3dpdGNoID0gXCItLW1heC1vbGQtc3BhY2Utc2l6ZVwiO1xuICAgIGNvbnN0IG5vZGVPcHRzU2V0dGluZyA9IGAke25vZGVPcHRzU3dpdGNofT00MDk2YDtcbiAgICBpZiAoZW52Lk5PREVfT1BUSU9OUyAmJiAhZW52Lk5PREVfT1BUSU9OUy5pbmNsdWRlcyhub2RlT3B0c1N3aXRjaCkpIHtcbiAgICAgIGxvZ2dlci53YXJuKGBXQVJOSU5HOiBGb3VuZCBOT0RFX09QVElPTlMgZW52aXJvbm1lbnQgdmFyaWFibGUgd2l0aG91dCBhIHNldHRpbmcgZm9yICR7bm9kZU9wdHNTd2l0Y2h9XG5UaGUgc3ludGhlc2l6aW5nIHN0ZXAgZm9yIFR5cGVTY3JpcHQgbWF5IG5lZWQgYW4gaW5jcmVhc2VkIGFtb3VudCBvZiBtZW1vcnkgaWYgbXVsdGlwbGUgbGFyZ2UgcHJvdmlkZXJzXG5hcmUgdXNlZCB3aXRoIGxvY2FsbHkgZ2VuZXJhdGVkIGJpbmRpbmdzLiBZb3UgY2FuIGlnbm9yZSB0aGlzIGlmIHlvdSBkb24ndCB1c2UgQ0RLVE4gd2l0aCBUeXBlU2NyaXB0LlxuSWYgbm90IHByZXNlbnQsIHRoZSBjZGt0bi1jbGkgc2V0cyBpdCB0byBOT0RFX09QVElPTlM9XCIke25vZGVPcHRzU2V0dGluZ31cIiBieSBkZWZhdWx0LiBCdXQgYXNcbnlvdXIgZW52aXJvbm1lbnQgYWxyZWFkeSBjb250YWlucyBhIE5PREVfT1BUSU9OUyB2YXJpYWJsZSwgd2Ugd29uJ3Qgb3ZlcnJpZGUgaXQuIEhlbmNlLCB0aGUgYXBwIGNvbW1hbmRcbm1pZ2h0IGZhaWwgd2hpbGUgc3ludGhlc2l6aW5nIHdpdGggYW4gb3V0IG9mIG1lbW9yeSBlcnJvci5gKTtcbiAgICB9IGVsc2UgaWYgKCFlbnYuTk9ERV9PUFRJT05TKSB7XG4gICAgICAvLyBpbmNyZWFzZSBtZW1vcnkgdG8gYWxsb3cgdHMtbm9kZSAod2hlbiB1c2luZyBUeXBlU2NyaXB0KSB0byBoYW5kbGUgbGFyZ2UgYW1vdW50cyBvZiBnZW5lcmF0ZWQgY29kZSBpbiBtZW1vcnlcbiAgICAgIGVudi5OT0RFX09QVElPTlMgPSBgJHtlbnYuTk9ERV9PUFRJT05TIHx8IFwiXCJ9ICR7bm9kZU9wdHNTZXR0aW5nfWAudHJpbSgpO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRDb250ZXh0ID0gcHJvY2Vzcy5lbnZbQ09OVEVYVF9FTlZdXG4gICAgICA/IEpTT04ucGFyc2UocHJvY2Vzcy5lbnYuQ0RLVEZfQ09OVEVYVF9KU09OKVxuICAgICAgOiB7fTtcbiAgICBjb25zdCByZWxhdGl2ZU1vZHVsZXMgPSBnZXRSZWxhdGl2ZVRlcnJhZm9ybU1vZHVsZXMoKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBzaGVsbChjb21tYW5kLCBbXSwge1xuICAgICAgICBzaGVsbDogdHJ1ZSxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgLi4uZW52LFxuICAgICAgICAgIENES1RGX09VVERJUjogb3V0ZGlyLFxuICAgICAgICAgIENES1RGX0NPTlRJTlVFX1NZTlRIX09OX0VSUk9SX0FOTk9UQVRJT05TOiBcInRydWVcIiwgLy8gd2Ugd2FudCB0byBkaXNwbGF5IHRoZSBlcnJvcnMgb3Vyc2VsdmVzXG4gICAgICAgICAgW0NPTlRFWFRfRU5WXTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgLi4uY3VycmVudENvbnRleHQsXG4gICAgICAgICAgICBjZGt0ZlJlbGF0aXZlTW9kdWxlczogcmVsYXRpdmVNb2R1bGVzLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIFNZTlRIX0hDTF9PVVRQVVQ6IGhjbC50b1N0cmluZygpLFxuICAgICAgICB9LFxuICAgICAgICBjd2Q6IHdvcmtpbmdEaXJlY3RvcnksXG4gICAgICAgIHNpZ25hbDogYWJvcnRTaWduYWwsXG4gICAgICAgIG5vQ29sb3I6IG5vQ29sb3IsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGNvbnN0IGVycm9yT3V0cHV0ID0gY2hhbGtDb2xvdXJge3JlZEJyaWdodCBjZGt0biBlbmNvdW50ZXJlZCBhbiBlcnJvciB3aGlsZSBzeW50aGVzaXppbmd9XG5cblN5bnRoIGNvbW1hbmQ6IHtibHVlICR7Y29tbWFuZH19XG5FcnJvcjogICAgICAgICB7cmVkQnJpZ2h0ICR7ZS5tZXNzYWdlfX1cbiR7XG4gIGUuc3RkZXJyXG4gICAgPyBjaGFsa0NvbG91cmBcbkNvbW1hbmQgb3V0cHV0IG9uIHN0ZGVycjpcblxue2RpbSAke2luZGVudFN0cmluZyhlLnN0ZGVyciwgNCl9fVxuYFxuICAgIDogXCJcIlxufVxuJHtcbiAgZS5zdGRvdXRcbiAgICA/IGNoYWxrQ29sb3VyYFxuQ29tbWFuZCBvdXRwdXQgb24gc3Rkb3V0OlxuXG57ZGltICR7aW5kZW50U3RyaW5nKGUuc3Rkb3V0LCA0KX19XG5gXG4gICAgOiBcIlwiXG59YDtcbiAgICAgIGF3YWl0IHRoaXMuc3ludGhFcnJvclRlbGVtZXRyeShzeW50aE9yaWdpbik7XG4gICAgICBpZiAoZ3JhY2VmdWwpIHtcbiAgICAgICAgZS5lcnJvck91dHB1dCA9IGVycm9yT3V0cHV0O1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgICAgY29uc29sZS5lcnJvcihgRVJST1I6ICR7ZXJyb3JPdXRwdXR9YCk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgLy8gQXBwbHkgZm9ybWF0dGluZyB0byBIQ0wgZmlsZXMgaWYgaGNsIG91dHB1dCB3YXMgc2VsZWN0ZWRcbiAgICBpZiAoaGNsKSB7XG4gICAgICBhd2FpdCBTeW50aFN0YWNrLmZvcm1hdEhjbEZpbGVzKG91dGRpcik7XG4gICAgfVxuXG4gICAgLy8gZW5kIHBlcmZvcm1hbmNlIHRpbWVyXG4gICAgY29uc3QgZW5kVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4gICAgbGV0IHN0YWNrczogU3ludGhlc2l6ZWRTdGFja1tdID0gW107XG4gICAgdHJ5IHtcbiAgICAgIHN0YWNrcyA9IGF3YWl0IFN5bnRoU3RhY2sucmVhZFN5bnRoZXNpemVkU3RhY2tzKG91dGRpcik7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgRVJST1I6IHN5bnRoZXNpcyBmYWlsZWQsIGJlY2F1c2UgYXBwIHdhcyBleHBlY3RlZCB0byBjYWxsICdzeW50aCgpJywgYnV0IGRpZG4ndC4gVGh1cyBcIiR7b3V0ZGlyfS8ke01hbmlmZXN0LmZpbGVOYW1lfVwiICB3YXMgbm90IGNyZWF0ZWQ6ICR7ZX1gO1xuICAgICAgaWYgKGdyYWNlZnVsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgfVxuICAgICAgbG9nZ2VyLmVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5zeW50aFRlbGVtZXRyeShlbmRUaW1lIC0gc3RhcnRUaW1lLCBzdGFja3MsIHN5bnRoT3JpZ2luKTtcblxuICAgIGlmIChzdGFja3MubGVuZ3RoID09PSAwKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoXCJFUlJPUjogTm8gVGVycmFmb3JtIGNvZGUgc3ludGhlc2l6ZWQuXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YWNrTmFtZXMgPSBzdGFja3MubWFwKChzKSA9PiBzLm5hbWUpO1xuICAgIGNvbnN0IG9ycGhhbmVkRGlyZWN0b3JpZXMgPSBleGlzdGluZ0RpcmVjdG9yaWVzLmZpbHRlcihcbiAgICAgIChlKSA9PiAhc3RhY2tOYW1lcy5pbmNsdWRlcyhwYXRoLmJhc2VuYW1lKGUpKSxcbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBvcnBoYW5lZERpcmVjdG9yeSBvZiBvcnBoYW5lZERpcmVjdG9yaWVzKSB7XG4gICAgICBmcy5ybVN5bmMob3JwaGFuZWREaXJlY3RvcnksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdGFja3M7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIGZvcm1hdEhjbEZpbGVzKG91dERpcjogc3RyaW5nKSB7XG4gICAgY29uc3QgbWFuaWZlc3RQYXRoID0gcGF0aC5qb2luKG91dERpciwgTWFuaWZlc3QuZmlsZU5hbWUpO1xuICAgIGlmICghKGF3YWl0IGZzLnBhdGhFeGlzdHMobWFuaWZlc3RQYXRoKSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENvdWxkIG5vdCBmaW5kIG1hbmlmZXN0IGZpbGUgYXQgJHttYW5pZmVzdFBhdGh9LiBJbiBjYXNlIC0tc2tpcC1zeW50aCB3YXMgcGFzc2VkLCBwbGVhc2UgdHJ5IGFnYWluIHdpdGhvdXQgdGhlIGZsYWcuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgbWFuaWZlc3QgPSBKU09OLnBhcnNlKFxuICAgICAgZnMucmVhZEZpbGVTeW5jKG1hbmlmZXN0UGF0aCkudG9TdHJpbmcoKSxcbiAgICApIGFzIE1hbmlmZXN0SnNvbjtcblxuICAgIGZvciAoY29uc3Qgc3RhY2tOYW1lIGluIG1hbmlmZXN0LnN0YWNrcykge1xuICAgICAgY29uc3Qgc3RhY2sgPSBtYW5pZmVzdC5zdGFja3Nbc3RhY2tOYW1lXTtcbiAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKG91dERpciwgc3RhY2suc3ludGhlc2l6ZWRTdGFja1BhdGgpO1xuXG4gICAgICBjb25zdCBoY2xDb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoKS50b1N0cmluZygpO1xuICAgICAgY29uc3QgZm9ybWF0dGVkSGNsID0gYXdhaXQgZm9ybWF0KGhjbENvbnRlbnQpO1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgZm9ybWF0dGVkSGNsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIHJlYWRTeW50aGVzaXplZFN0YWNrcyhcbiAgICBvdXRkaXI6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxTeW50aGVzaXplZFN0YWNrW10+IHtcbiAgICBjb25zdCBtYW5pZmVzdFBhdGggPSBwYXRoLmpvaW4ob3V0ZGlyLCBNYW5pZmVzdC5maWxlTmFtZSk7XG4gICAgaWYgKCEoYXdhaXQgZnMucGF0aEV4aXN0cyhtYW5pZmVzdFBhdGgpKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ291bGQgbm90IGZpbmQgbWFuaWZlc3QgZmlsZSBhdCAke21hbmlmZXN0UGF0aH0uIEluIGNhc2UgLS1za2lwLXN5bnRoIHdhcyBwYXNzZWQsIHBsZWFzZSB0cnkgYWdhaW4gd2l0aG91dCB0aGUgZmxhZy5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFja3M6IFN5bnRoZXNpemVkU3RhY2tbXSA9IFtdO1xuICAgIGNvbnN0IG1hbmlmZXN0ID0gSlNPTi5wYXJzZShcbiAgICAgIGZzLnJlYWRGaWxlU3luYyhtYW5pZmVzdFBhdGgpLnRvU3RyaW5nKCksXG4gICAgKSBhcyBNYW5pZmVzdEpzb247XG5cbiAgICBmb3IgKGNvbnN0IHN0YWNrTmFtZSBpbiBtYW5pZmVzdC5zdGFja3MpIHtcbiAgICAgIGNvbnN0IHN0YWNrID0gbWFuaWZlc3Quc3RhY2tzW3N0YWNrTmFtZV07XG4gICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihvdXRkaXIsIHN0YWNrLnN5bnRoZXNpemVkU3RhY2tQYXRoKTtcbiAgICAgIGxldCBqc29uQ29udGVudDogU3ludGhlc2l6ZWRTdGFja01ldGFkYXRhID0ge307XG4gICAgICBpZiAoZmlsZVBhdGguZW5kc1dpdGgoXCIudGYuanNvblwiKSkge1xuICAgICAgICBqc29uQ29udGVudCA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoKS50b1N0cmluZygpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhUGF0aCA9IHBhdGguam9pbihvdXRkaXIsIHN0YWNrLnN0YWNrTWV0YWRhdGFQYXRoISk7XG4gICAgICAgIGpzb25Db250ZW50ID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMobWV0YWRhdGFQYXRoKS50b1N0cmluZygpKTtcbiAgICAgIH1cblxuICAgICAgc3RhY2tzLnB1c2goe1xuICAgICAgICAuLi5zdGFjayxcbiAgICAgICAgd29ya2luZ0RpcmVjdG9yeTogcGF0aC5qb2luKG91dGRpciwgc3RhY2sud29ya2luZ0RpcmVjdG9yeSksXG4gICAgICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KGpzb25Db250ZW50LCBudWxsLCAyKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdGFja3M7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIHN5bnRoVGVsZW1ldHJ5KFxuICAgIHRvdGFsVGltZTogbnVtYmVyLFxuICAgIHN0YWNrczogU3ludGhlc2l6ZWRTdGFja1tdLFxuICAgIHN5bnRoT3JpZ2luPzogU3ludGhPcmlnaW4sXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHJlYWRDb25maWdTeW5jKCk7XG5cbiAgICBhd2FpdCBzZW5kVGVsZW1ldHJ5KFwic3ludGhcIiwge1xuICAgICAgdG90YWxUaW1lOiB0b3RhbFRpbWUsXG4gICAgICBsYW5ndWFnZTogY29uZmlnLmxhbmd1YWdlLFxuICAgICAgc3ludGhPcmlnaW4sXG4gICAgICBzdGFja01ldGFkYXRhOiBzdGFja3MubWFwKFxuICAgICAgICAoc3RhY2spID0+IEpTT04ucGFyc2Uoc3RhY2suY29udGVudClbXCIvL1wiXS5tZXRhZGF0YSxcbiAgICAgICksXG4gICAgICByZXF1aXJlZFByb3ZpZGVyczogc3RhY2tzLm1hcChcbiAgICAgICAgKHN0YWNrOiBhbnkpID0+XG4gICAgICAgICAgSlNPTi5wYXJzZShzdGFjay5jb250ZW50KVtcInRlcnJhZm9ybVwiXS5yZXF1aXJlZF9wcm92aWRlcnMsXG4gICAgICApLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBhc3luYyBzeW50aEVycm9yVGVsZW1ldHJ5KHN5bnRoT3JpZ2luPzogU3ludGhPcmlnaW4pIHtcbiAgICBhd2FpdCBzZW5kVGVsZW1ldHJ5KFwic3ludGhcIiwgeyBlcnJvcjogdHJ1ZSwgc3ludGhPcmlnaW4gfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UmVsYXRpdmVUZXJyYWZvcm1Nb2R1bGVzKCkge1xuICBsZXQgY2ZnO1xuXG4gIHRyeSB7XG4gICAgY2ZnID0gQ2RrdGZDb25maWcucmVhZCgpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLnRyYWNlKFwiQ291bGQgbm90IHJlYWQgY2RrdGYuanNvbjogXCIgKyBlKTtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICByZXR1cm4gY2ZnLnRlcnJhZm9ybU1vZHVsZXMuZmlsdGVyKChtb2QpID0+IHtcbiAgICByZXR1cm4gdHlwZW9mIG1vZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBtb2Quc3RhcnRzV2l0aChcIi4vXCIpIHx8IG1vZC5zdGFydHNXaXRoKFwiLi4vXCIpXG4gICAgICA6IG1vZC5zb3VyY2Uuc3RhcnRzV2l0aChcIi4vXCIpIHx8IG1vZC5zb3VyY2Uuc3RhcnRzV2l0aChcIi4uL1wiKTtcbiAgfSk7XG59XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"synth.d.ts","sourceRoot":"","sources":["synth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMjD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,QA0C1D"}
package/src/lib/synth.js DELETED
@@ -1,67 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzeW50aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLGlDQUFvRDtBQUNwRCw2Q0FBK0I7QUFFL0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7QUFFekM7OztHQUdHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsTUFBMEI7SUFDekQsSUFBSSwwQkFBMEIsR0FBRyxLQUFLLENBQUM7SUFFdkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ3ZCLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtRQUMvQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEtBQUssbUNBQTJCLENBQUMsS0FBSztZQUN4RCwwQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFFcEMsSUFBSSxLQUFLLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQztRQUNwQyxJQUFJLEtBQUssR0FBVyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3JDLFFBQVEsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pCLEtBQUssbUNBQTJCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDdEMsS0FBSyxHQUFHLE1BQU0sQ0FBQztnQkFDZixNQUFNO1lBQ1IsQ0FBQztZQUNELEtBQUssbUNBQTJCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDdEMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUM3QyxLQUFLLEdBQUcsTUFBTSxDQUFDO2dCQUNmLE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSyxtQ0FBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxLQUFLLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztnQkFDOUIsS0FBSyxHQUFHLE9BQU8sQ0FBQztnQkFDaEIsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUssVUFBVSxDQUFDLGFBQWEsTUFBTSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FDdkUsQ0FBQztRQUNGLElBQ0UsVUFBVSxDQUFDLEtBQUssS0FBSyxtQ0FBMkIsQ0FBQyxLQUFLO1lBQ3RELFVBQVUsQ0FBQyxVQUFVO1lBRXJCLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUVGLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUMvQixNQUFNLElBQUksS0FBSyxDQUNiLDRHQUE0RyxDQUM3RyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUExQ0QsNENBMENDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IFN5bnRoZXNpemVkU3RhY2sgfSBmcm9tIFwiLi9zeW50aC1zdGFja1wiO1xuaW1wb3J0IHsgQW5ub3RhdGlvbk1ldGFkYXRhRW50cnlUeXBlIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tIFwiY2hhbGtcIjtcblxuY29uc3QgY2hhbGtDb2xvdXIgPSBuZXcgY2hhbGsuSW5zdGFuY2UoKTtcblxuLyoqXG4gKiBwcmludHMgYW5ub3RhdGlvbnMgdmlhIGNvbnNvbGVcbiAqIEB0aHJvd3MgRXJyb3IgaWYgYW4gQW5ub3RhdGlvbiB3aXRoIGxldmVsID09PSBFUlJPUiBoYXMgYmVlbiBlbmNvdW50ZXJlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRBbm5vdGF0aW9ucyhzdGFja3M6IFN5bnRoZXNpemVkU3RhY2tbXSkge1xuICBsZXQgZW5jb3VudGVyZWRBbm5vdGF0aW9uRXJyb3IgPSBmYWxzZTtcblxuICBzdGFja3MuZm9yRWFjaCgoc3RhY2spID0+XG4gICAgKHN0YWNrLmFubm90YXRpb25zIHx8IFtdKS5mb3JFYWNoKChhbm5vdGF0aW9uKSA9PiB7XG4gICAgICBpZiAoYW5ub3RhdGlvbi5sZXZlbCA9PT0gQW5ub3RhdGlvbk1ldGFkYXRhRW50cnlUeXBlLkVSUk9SKVxuICAgICAgICBlbmNvdW50ZXJlZEFubm90YXRpb25FcnJvciA9IHRydWU7XG5cbiAgICAgIGxldCBjb2xvciA9IGNoYWxrQ29sb3VyLndoaXRlQnJpZ2h0O1xuICAgICAgbGV0IGxldmVsOiBzdHJpbmcgPSBhbm5vdGF0aW9uLmxldmVsO1xuICAgICAgc3dpdGNoIChhbm5vdGF0aW9uLmxldmVsKSB7XG4gICAgICAgIGNhc2UgQW5ub3RhdGlvbk1ldGFkYXRhRW50cnlUeXBlLklORk86IHtcbiAgICAgICAgICBsZXZlbCA9IFwiSU5GT1wiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQW5ub3RhdGlvbk1ldGFkYXRhRW50cnlUeXBlLldBUk46IHtcbiAgICAgICAgICBjb2xvciA9IGNoYWxrQ29sb3VyLmhleChcIiNGRkE1MDBcIik7IC8vIG9yYW5nZVxuICAgICAgICAgIGxldmVsID0gXCJXQVJOXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBbm5vdGF0aW9uTWV0YWRhdGFFbnRyeVR5cGUuRVJST1I6IHtcbiAgICAgICAgICBjb2xvciA9IGNoYWxrQ29sb3VyLnJlZEJyaWdodDtcbiAgICAgICAgICBsZXZlbCA9IFwiRVJST1JcIjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGNvbG9yKGAke2xldmVsfSBbJHthbm5vdGF0aW9uLmNvbnN0cnVjdFBhdGh9XTogJHthbm5vdGF0aW9uLm1lc3NhZ2V9YCksXG4gICAgICApO1xuICAgICAgaWYgKFxuICAgICAgICBhbm5vdGF0aW9uLmxldmVsID09PSBBbm5vdGF0aW9uTWV0YWRhdGFFbnRyeVR5cGUuRVJST1IgJiZcbiAgICAgICAgYW5ub3RhdGlvbi5zdGFja3RyYWNlXG4gICAgICApXG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWxrQ29sb3VyLmdyYXkoYW5ub3RhdGlvbi5zdGFja3RyYWNlLmpvaW4oXCJcXG5cIikpKTtcbiAgICB9KSxcbiAgKTtcblxuICBpZiAoZW5jb3VudGVyZWRBbm5vdGF0aW9uRXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIldoaWxlIHN5bnRoZXNpemluZyBvbmUgb3IgbW9yZSBlcnJvciBhbm5vdGF0aW9ucyBoYXZlIGJlZW4gZW5jb3VudGVyZWQuIFBsZWFzZSBjaGVjayB0aGUgbG9nIG91dHB1dCBhYm92ZS5cIixcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,82 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXJyYWZvcm0tanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsdUNBQXlCO0FBRXpCLE1BQU0sTUFBTSxHQUFHLENBQUM7S0FDYixNQUFNLENBQUM7SUFDTixZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUN4QixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMvQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNuQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtRQUMzQixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUM5QixDQUFDO0NBQ0gsQ0FBQztLQUNELFdBQVcsRUFBRSxDQUFDO0FBRUosUUFBQSxtQkFBbUIsR0FBRyxDQUFDO0tBQ2pDLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDO1NBQ0osTUFBTSxDQUFDO1FBQ04sUUFBUSxFQUFFLENBQUM7YUFDUixNQUFNLENBQUM7WUFDTixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUNuQixTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUNyQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtTQUNwQixDQUFDO2FBQ0QsU0FBUyxFQUFFO1FBQ2QsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0tBQzNCLENBQUM7U0FDRCxTQUFTLEVBQUU7SUFDZCxTQUFTLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNsQixPQUFPLEVBQUUsQ0FBQzthQUNQLE1BQU0sQ0FBQztZQUNOLHdFQUF3RTtZQUN4RSxNQUFNO1NBQ1AsQ0FBQzthQUNELFNBQVMsRUFBRTtRQUNkLEtBQUssRUFBRSxDQUFDO2FBQ0wsTUFBTSxDQUFDO1lBQ04sWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDeEIsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7WUFDL0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7WUFDNUIsVUFBVSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ2xCLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ3hDLENBQUM7U0FDSCxDQUFDO2FBQ0QsU0FBUyxFQUFFO1FBQ2Qsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDMUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQ2xFO1FBQ0QsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtLQUM3QixDQUFDO0lBQ0YsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMzQixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Q0FDNUIsQ0FBQztLQUNELFdBQVcsRUFBRTtLQUNiLFNBQVMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCAqIGFzIHogZnJvbSBcInpvZFwiO1xuXG5jb25zdCByZW1vdGUgPSB6XG4gIC5vYmplY3Qoe1xuICAgIG9yZ2FuaXphdGlvbjogei5zdHJpbmcoKSxcbiAgICBob3N0bmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIHRva2VuOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgd29ya3NwYWNlczogei5vYmplY3Qoe1xuICAgICAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgICAgcHJlZml4OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgfSksXG4gIH0pXG4gIC5kZWVwUGFydGlhbCgpO1xuXG5leHBvcnQgY29uc3QgdGVycmFmb3JtSnNvblNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgXCIvL1wiOiB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgbWV0YWRhdGE6IHpcbiAgICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICAgIHZlcnNpb246IHouc3RyaW5nKCksXG4gICAgICAgICAgICBzdGFja05hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgICBiYWNrZW5kOiB6LnN0cmluZygpLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLm5vbnN0cmljdCgpLFxuICAgICAgICBvdXRwdXRzOiB6LnJlY29yZCh6LmFueSgpKSxcbiAgICAgIH0pXG4gICAgICAubm9uc3RyaWN0KCksXG4gICAgdGVycmFmb3JtOiB6Lm9iamVjdCh7XG4gICAgICBiYWNrZW5kOiB6XG4gICAgICAgIC5vYmplY3Qoe1xuICAgICAgICAgIC8vIEFsbCBvdGhlciBiYWNrZW5kcyBhcmUgaGVyZSBhcyB3ZWxsLCBidXQgd2UgZG9uJ3QgcmVhZCB0aGVtIHJpZ2h0IG5vd1xuICAgICAgICAgIHJlbW90ZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm5vbnN0cmljdCgpLFxuICAgICAgY2xvdWQ6IHpcbiAgICAgICAgLm9iamVjdCh7XG4gICAgICAgICAgb3JnYW5pemF0aW9uOiB6LnN0cmluZygpLFxuICAgICAgICAgIGhvc3RuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICAgICAgdG9rZW46IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgICAgICB3b3Jrc3BhY2VzOiB6LnVuaW9uKFtcbiAgICAgICAgICAgIHoub2JqZWN0KHsgbmFtZTogei5zdHJpbmcoKSB9KSxcbiAgICAgICAgICAgIHoub2JqZWN0KHsgdGFnczogei5hcnJheSh6LnN0cmluZygpKSB9KSxcbiAgICAgICAgICBdKSxcbiAgICAgICAgfSlcbiAgICAgICAgLm5vbnN0cmljdCgpLFxuICAgICAgcmVxdWlyZWRfcHJvdmlkZXJzOiB6LnJlY29yZChcbiAgICAgICAgei5vYmplY3QoeyBzb3VyY2U6IHouc3RyaW5nKCksIHZlcnNpb246IHouc3RyaW5nKCkgfSkubm9uc3RyaWN0KCksXG4gICAgICApLFxuICAgICAgcmVxdWlyZWRfdmVyc2lvbjogei5zdHJpbmcoKSxcbiAgICB9KSxcbiAgICBkYXRhOiB6LnJlY29yZCh6LmFueSgpKSxcbiAgICBwcm92aWRlcjogei5yZWNvcmQoei5hbnkoKSksXG4gICAgcmVzb3VyY2U6IHoucmVjb3JkKHouYW55KCkpLFxuICB9KVxuICAuZGVlcFBhcnRpYWwoKVxuICAubm9uc3RyaWN0KCk7XG5cbmV4cG9ydCB0eXBlIFRlcnJhZm9ybVN0YWNrID0gei5pbmZlcjx0eXBlb2YgdGVycmFmb3JtSnNvblNjaGVtYT47XG5leHBvcnQgdHlwZSBUZXJyYWZvcm1Kc29uQ29uZmlnQmFja2VuZFJlbW90ZSA9IHouaW5mZXI8dHlwZW9mIHJlbW90ZT47XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"terraform-provider-lock.d.ts","sourceRoot":"","sources":["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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["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"}