@cdktn/cli-core 0.23.0-pre.4 → 0.23.0-pre.40

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 +371 -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/build/lib/terraform-provider-lock.js +95 -0
  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 -66
  75. package/package.json +32 -44
  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/src/lib/cdktf-config.d.ts.map +0 -1
  80. package/src/lib/cdktf-config.js +0 -108
  81. package/src/lib/cdktf-project-io-handler.d.ts.map +0 -1
  82. package/src/lib/cdktf-project-io-handler.js +0 -84
  83. package/src/lib/cdktf-project.d.ts.map +0 -1
  84. package/src/lib/cdktf-project.js +0 -371
  85. package/src/lib/cdktf-stack.d.ts.map +0 -1
  86. package/src/lib/cdktf-stack.js +0 -386
  87. package/src/lib/convert.d.ts.map +0 -1
  88. package/src/lib/convert.js +0 -51
  89. package/src/lib/dependencies/cdktf-config-manager.d.ts.map +0 -1
  90. package/src/lib/dependencies/cdktf-config-manager.js +0 -36
  91. package/src/lib/dependencies/dependency-manager.d.ts.map +0 -1
  92. package/src/lib/dependencies/dependency-manager.js +0 -393
  93. package/src/lib/dependencies/package-manager.d.ts.map +0 -1
  94. package/src/lib/dependencies/package-manager.js +0 -581
  95. package/src/lib/dependencies/prebuilt-providers.d.ts.map +0 -1
  96. package/src/lib/dependencies/prebuilt-providers.js +0 -220
  97. package/src/lib/dependencies/registry-api.d.ts.map +0 -1
  98. package/src/lib/dependencies/registry-api.js +0 -77
  99. package/src/lib/dependencies/version-constraints.d.ts.map +0 -1
  100. package/src/lib/dependencies/version-constraints.js +0 -95
  101. package/src/lib/error-reporting.d.ts.map +0 -1
  102. package/src/lib/error-reporting.js +0 -133
  103. package/src/lib/errors.d.ts.map +0 -1
  104. package/src/lib/errors.js +0 -10
  105. package/src/lib/execution-logs.d.ts.map +0 -1
  106. package/src/lib/execution-logs.js +0 -47
  107. package/src/lib/get.d.ts.map +0 -1
  108. package/src/lib/get.js +0 -90
  109. package/src/lib/helpers/stack-helpers.d.ts.map +0 -1
  110. package/src/lib/helpers/stack-helpers.js +0 -155
  111. package/src/lib/index.d.ts.map +0 -1
  112. package/src/lib/init.d.ts.map +0 -1
  113. package/src/lib/init.js +0 -131
  114. package/src/lib/local-provider-constraints.d.ts.map +0 -1
  115. package/src/lib/local-provider-constraints.js +0 -95
  116. package/src/lib/local-provider-versions.d.ts.map +0 -1
  117. package/src/lib/local-provider-versions.js +0 -73
  118. package/src/lib/models/deploy-machine.d.ts.map +0 -1
  119. package/src/lib/models/deploy-machine.js +0 -280
  120. package/src/lib/models/pty-process.d.ts +0 -29
  121. package/src/lib/models/pty-process.d.ts.map +0 -1
  122. package/src/lib/models/pty-process.js +0 -132
  123. package/src/lib/models/schema.js +0 -181
  124. package/src/lib/models/terraform-cli.d.ts.map +0 -1
  125. package/src/lib/models/terraform-cli.js +0 -357
  126. package/src/lib/models/terraform.d.ts.map +0 -1
  127. package/src/lib/models/terraform.js +0 -72
  128. package/src/lib/output.d.ts.map +0 -1
  129. package/src/lib/output.js +0 -211
  130. package/src/lib/provider-add.d.ts.map +0 -1
  131. package/src/lib/provider-add.js +0 -30
  132. package/src/lib/server/terraform-logs.d.ts.map +0 -1
  133. package/src/lib/server/terraform-logs.js +0 -19
  134. package/src/lib/synth-stack.d.ts.map +0 -1
  135. package/src/lib/synth-stack.js +0 -251
  136. package/src/lib/synth.d.ts.map +0 -1
  137. package/src/lib/synth.js +0 -67
  138. package/src/lib/terraform-json.js +0 -82
  139. package/src/lib/terraform-provider-lock.d.ts.map +0 -1
  140. package/src/lib/terraform-provider-lock.js +0 -95
  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
@@ -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==
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import { CdktfProjectOptions, MutationOptions } from "./cdktf-project";
2
3
  import { CdktfStack } from "./cdktf-stack";
3
4
  export type State = {
@@ -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"}
@@ -0,0 +1,155 @@
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.watch = void 0;
30
+ // Copyright (c) HashiCorp, Inc
31
+ // SPDX-License-Identifier: MPL-2.0
32
+ const path_1 = __importDefault(require("path"));
33
+ const cdktf_project_1 = require("./cdktf-project");
34
+ const fs = __importStar(require("fs"));
35
+ const chokidar = __importStar(require("chokidar"));
36
+ const commons_1 = require("@cdktn/commons");
37
+ // In this very first iteration we will find out which files to watch by asking the user to provide the files
38
+ // We default to something reasonable per language and write it into the cdkt.json file
39
+ // Mid-Term we might want to add a WatchFile / WatchDir construct that we can use (e.g. in assets) and that a user can use to specify their watch behaviour
40
+ // See https://github.com/hashicorp/terraform-cdk/issues/1668
41
+ function getOrWriteDefaultWatchConfig(projectPath = process.cwd()) {
42
+ const cdktfJsonPath = path_1.default.resolve(projectPath, "cdktf.json");
43
+ commons_1.logger.debug(`Getting files to watch from cdktf.json at ${cdktfJsonPath}`);
44
+ let cdktfJson;
45
+ try {
46
+ cdktfJson = require(cdktfJsonPath);
47
+ }
48
+ catch (err) {
49
+ throw commons_1.Errors.Internal(`Could not find cdktf.json file in ${projectPath}`, err);
50
+ }
51
+ if (cdktfJson.watchPattern) {
52
+ commons_1.logger.debug(`Found watchPattern in cdktf.json: ${cdktfJson.watchPattern}`);
53
+ return cdktfJson.watchPattern;
54
+ }
55
+ const language = cdktfJson.language;
56
+ if (!language) {
57
+ throw commons_1.Errors.Usage(`No language specified in cdktf.json, please either specify a language or watchPattern to use the watch command`);
58
+ }
59
+ const defaultWatchPattern = {
60
+ typescript: ["./**/*.ts"],
61
+ python: ["./**/*.py"],
62
+ java: ["src/**/*.java"],
63
+ csharp: ["./**/*.cs"],
64
+ go: ["./**/*.go"],
65
+ }[language];
66
+ fs.writeFileSync(cdktfJsonPath, JSON.stringify({ ...cdktfJson, watchPattern: defaultWatchPattern }, null, 2));
67
+ commons_1.logger.debug(`Write default watchPattern for ${language} in cdktf.json.`);
68
+ return defaultWatchPattern;
69
+ }
70
+ const projectStatus = (project) => {
71
+ if (!(project === null || project === void 0 ? void 0 : project.stacksToRun.length)) {
72
+ return {
73
+ inProgress: [],
74
+ finished: [],
75
+ pending: [],
76
+ };
77
+ }
78
+ const inProgress = project.stacksToRun.filter((s) => s.isRunning);
79
+ const finished = project.stacksToRun.filter((s) => s.isDone);
80
+ const pending = project.stacksToRun.filter((s) => s.isPending);
81
+ return { inProgress, finished, pending };
82
+ };
83
+ async function watch(projectOptions, mutationOptions, abortSignal, onStateChange) {
84
+ const patterns = getOrWriteDefaultWatchConfig();
85
+ const watcher = chokidar.watch(patterns, {
86
+ ignoreInitial: true,
87
+ });
88
+ let state = { type: "waiting" };
89
+ const changeState = (newState) => {
90
+ state = newState;
91
+ onStateChange(state);
92
+ };
93
+ async function run() {
94
+ commons_1.logger.debug("Running cdktn deploy");
95
+ const project = new cdktf_project_1.CdktfProject({
96
+ synthOrigin: "watch",
97
+ ...projectOptions,
98
+ onLog: (log) => {
99
+ if (projectOptions.onLog) {
100
+ projectOptions.onLog(log);
101
+ }
102
+ if (state.type === "running") {
103
+ changeState({ ...state, ...projectStatus(project) });
104
+ }
105
+ },
106
+ });
107
+ const abort = () => project.hardAbort();
108
+ abortSignal.addEventListener("abort", abort);
109
+ await project.deploy(mutationOptions);
110
+ abortSignal.removeEventListener("abort", abort);
111
+ commons_1.logger.debug("cdktn deploy finished");
112
+ if (state.type !== "running") {
113
+ throw commons_1.Errors.Internal("Watch was in a state where the state was not running in the run phase");
114
+ }
115
+ if (state.nextRunQueued) {
116
+ commons_1.logger.debug("Next run was queued, starting it now");
117
+ changeState({
118
+ ...state,
119
+ nextRunQueued: false,
120
+ currentRun: run(),
121
+ ...projectStatus(project),
122
+ });
123
+ }
124
+ else {
125
+ commons_1.logger.debug("Nothing queued, waiting for changes");
126
+ changeState({ type: "waiting" });
127
+ }
128
+ }
129
+ abortSignal.addEventListener("abort", () => {
130
+ commons_1.logger.debug("Abort signal received, stopping watch");
131
+ watcher.close();
132
+ changeState({ type: "stopped" });
133
+ });
134
+ const onFileChange = () => {
135
+ if (state.type === "stopped") {
136
+ return;
137
+ }
138
+ if (state.type === "running") {
139
+ changeState({ ...state, nextRunQueued: true });
140
+ return;
141
+ }
142
+ changeState({
143
+ type: "running",
144
+ nextRunQueued: false,
145
+ currentRun: run(),
146
+ ...projectStatus(),
147
+ });
148
+ };
149
+ watcher.on("all", onFileChange);
150
+ // initially run once
151
+ onFileChange();
152
+ await (0, commons_1.sendTelemetry)("watch", { event: "start" });
153
+ }
154
+ exports.watch = watch;
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3dhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyxnREFBd0I7QUFDeEIsbURBSXlCO0FBQ3pCLHVDQUF5QjtBQUN6QixtREFBcUM7QUFDckMsNENBQStEO0FBRy9ELDZHQUE2RztBQUM3Ryx1RkFBdUY7QUFDdkYsMkpBQTJKO0FBQzNKLDZEQUE2RDtBQUM3RCxTQUFTLDRCQUE0QixDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO0lBQy9ELE1BQU0sYUFBYSxHQUFHLGNBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzlELGdCQUFNLENBQUMsS0FBSyxDQUFDLDZDQUE2QyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBRTNFLElBQUksU0FBUyxDQUFDO0lBQ2QsSUFBSSxDQUFDO1FBQ0gsU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztRQUNsQixNQUFNLGdCQUFNLENBQUMsUUFBUSxDQUNuQixxQ0FBcUMsV0FBVyxFQUFFLEVBQ2xELEdBQUcsQ0FDSixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNCLGdCQUFNLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM1RSxPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUM7SUFDaEMsQ0FBQztJQUNELE1BQU0sUUFBUSxHQU1FLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFFbkMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsTUFBTSxnQkFBTSxDQUFDLEtBQUssQ0FDaEIsZ0hBQWdILENBQ2pILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxtQkFBbUIsR0FBRztRQUMxQixVQUFVLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDekIsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ3JCLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQztRQUN2QixNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDckIsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDO0tBQ2xCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFWixFQUFFLENBQUMsYUFBYSxDQUNkLGFBQWEsRUFDYixJQUFJLENBQUMsU0FBUyxDQUNaLEVBQUUsR0FBRyxTQUFTLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLEVBQ25ELElBQUksRUFDSixDQUFDLENBQ0YsQ0FDRixDQUFDO0lBQ0YsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLFFBQVEsaUJBQWlCLENBQUMsQ0FBQztJQUUxRSxPQUFPLG1CQUFtQixDQUFDO0FBQzdCLENBQUM7QUFFRCxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQXNCLEVBQUUsRUFBRTtJQUMvQyxJQUFJLENBQUMsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQSxFQUFFLENBQUM7UUFDakMsT0FBTztZQUNMLFVBQVUsRUFBRSxFQUFFO1lBQ2QsUUFBUSxFQUFFLEVBQUU7WUFDWixPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBZ0JLLEtBQUssVUFBVSxLQUFLLENBQ3pCLGNBQW1DLEVBQ25DLGVBQWdDLEVBQ2hDLFdBQXdCLEVBQ3hCLGFBQXdDO0lBRXhDLE1BQU0sUUFBUSxHQUFHLDRCQUE0QixFQUFFLENBQUM7SUFDaEQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7UUFDdkMsYUFBYSxFQUFFLElBQUk7S0FDcEIsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxLQUFLLEdBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDdkMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxRQUFlLEVBQUUsRUFBRTtRQUN0QyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ2pCLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDLENBQUM7SUFFRixLQUFLLFVBQVUsR0FBRztRQUNoQixnQkFBTSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLElBQUksNEJBQVksQ0FBQztZQUMvQixXQUFXLEVBQUUsT0FBTztZQUNwQixHQUFHLGNBQWM7WUFDakIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ3pCLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVCLENBQUM7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUM3QixXQUFXLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZELENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0MsTUFBTSxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUV0QyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0IsTUFBTSxnQkFBTSxDQUFDLFFBQVEsQ0FDbkIsdUVBQXVFLENBQ3hFLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUNyRCxXQUFXLENBQUM7Z0JBQ1YsR0FBRyxLQUFLO2dCQUNSLGFBQWEsRUFBRSxLQUFLO2dCQUNwQixVQUFVLEVBQUUsR0FBRyxFQUFFO2dCQUNqQixHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7YUFDMUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixnQkFBTSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBQ3BELFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDekMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUN0RCxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEIsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7UUFDeEIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdCLFdBQVcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQy9DLE9BQU87UUFDVCxDQUFDO1FBRUQsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLFNBQVM7WUFDZixhQUFhLEVBQUUsS0FBSztZQUNwQixVQUFVLEVBQUUsR0FBRyxFQUFFO1lBQ2pCLEdBQUcsYUFBYSxFQUFFO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ2hDLHFCQUFxQjtJQUNyQixZQUFZLEVBQUUsQ0FBQztJQUVmLE1BQU0sSUFBQSx1QkFBYSxFQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFyRkQsc0JBcUZDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQge1xuICBDZGt0ZlByb2plY3QsXG4gIENka3RmUHJvamVjdE9wdGlvbnMsXG4gIE11dGF0aW9uT3B0aW9ucyxcbn0gZnJvbSBcIi4vY2RrdGYtcHJvamVjdFwiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyBjaG9raWRhciBmcm9tIFwiY2hva2lkYXJcIjtcbmltcG9ydCB7IGxvZ2dlciwgRXJyb3JzLCBzZW5kVGVsZW1ldHJ5IH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQgeyBDZGt0ZlN0YWNrIH0gZnJvbSBcIi4vY2RrdGYtc3RhY2tcIjtcblxuLy8gSW4gdGhpcyB2ZXJ5IGZpcnN0IGl0ZXJhdGlvbiB3ZSB3aWxsIGZpbmQgb3V0IHdoaWNoIGZpbGVzIHRvIHdhdGNoIGJ5IGFza2luZyB0aGUgdXNlciB0byBwcm92aWRlIHRoZSBmaWxlc1xuLy8gV2UgZGVmYXVsdCB0byBzb21ldGhpbmcgcmVhc29uYWJsZSBwZXIgbGFuZ3VhZ2UgYW5kIHdyaXRlIGl0IGludG8gdGhlIGNka3QuanNvbiBmaWxlXG4vLyBNaWQtVGVybSB3ZSBtaWdodCB3YW50IHRvIGFkZCBhIFdhdGNoRmlsZSAvIFdhdGNoRGlyIGNvbnN0cnVjdCB0aGF0IHdlIGNhbiB1c2UgKGUuZy4gaW4gYXNzZXRzKSBhbmQgdGhhdCBhIHVzZXIgY2FuIHVzZSB0byBzcGVjaWZ5IHRoZWlyIHdhdGNoIGJlaGF2aW91clxuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay9pc3N1ZXMvMTY2OFxuZnVuY3Rpb24gZ2V0T3JXcml0ZURlZmF1bHRXYXRjaENvbmZpZyhwcm9qZWN0UGF0aCA9IHByb2Nlc3MuY3dkKCkpIHtcbiAgY29uc3QgY2RrdGZKc29uUGF0aCA9IHBhdGgucmVzb2x2ZShwcm9qZWN0UGF0aCwgXCJjZGt0Zi5qc29uXCIpO1xuICBsb2dnZXIuZGVidWcoYEdldHRpbmcgZmlsZXMgdG8gd2F0Y2ggZnJvbSBjZGt0Zi5qc29uIGF0ICR7Y2RrdGZKc29uUGF0aH1gKTtcblxuICBsZXQgY2RrdGZKc29uO1xuICB0cnkge1xuICAgIGNka3RmSnNvbiA9IHJlcXVpcmUoY2RrdGZKc29uUGF0aCk7XG4gIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgdGhyb3cgRXJyb3JzLkludGVybmFsKFxuICAgICAgYENvdWxkIG5vdCBmaW5kIGNka3RmLmpzb24gZmlsZSBpbiAke3Byb2plY3RQYXRofWAsXG4gICAgICBlcnIsXG4gICAgKTtcbiAgfVxuXG4gIGlmIChjZGt0Zkpzb24ud2F0Y2hQYXR0ZXJuKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBGb3VuZCB3YXRjaFBhdHRlcm4gaW4gY2RrdGYuanNvbjogJHtjZGt0Zkpzb24ud2F0Y2hQYXR0ZXJufWApO1xuICAgIHJldHVybiBjZGt0Zkpzb24ud2F0Y2hQYXR0ZXJuO1xuICB9XG4gIGNvbnN0IGxhbmd1YWdlOlxuICAgIHwgXCJ0eXBlc2NyaXB0XCJcbiAgICB8IFwicHl0aG9uXCJcbiAgICB8IFwiamF2YVwiXG4gICAgfCBcImNzaGFycFwiXG4gICAgfCBcImdvXCJcbiAgICB8IHVuZGVmaW5lZCA9IGNka3RmSnNvbi5sYW5ndWFnZTtcblxuICBpZiAoIWxhbmd1YWdlKSB7XG4gICAgdGhyb3cgRXJyb3JzLlVzYWdlKFxuICAgICAgYE5vIGxhbmd1YWdlIHNwZWNpZmllZCBpbiBjZGt0Zi5qc29uLCBwbGVhc2UgZWl0aGVyIHNwZWNpZnkgYSBsYW5ndWFnZSBvciB3YXRjaFBhdHRlcm4gdG8gdXNlIHRoZSB3YXRjaCBjb21tYW5kYCxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgZGVmYXVsdFdhdGNoUGF0dGVybiA9IHtcbiAgICB0eXBlc2NyaXB0OiBbXCIuLyoqLyoudHNcIl0sXG4gICAgcHl0aG9uOiBbXCIuLyoqLyoucHlcIl0sXG4gICAgamF2YTogW1wic3JjLyoqLyouamF2YVwiXSxcbiAgICBjc2hhcnA6IFtcIi4vKiovKi5jc1wiXSxcbiAgICBnbzogW1wiLi8qKi8qLmdvXCJdLFxuICB9W2xhbmd1YWdlXTtcblxuICBmcy53cml0ZUZpbGVTeW5jKFxuICAgIGNka3RmSnNvblBhdGgsXG4gICAgSlNPTi5zdHJpbmdpZnkoXG4gICAgICB7IC4uLmNka3RmSnNvbiwgd2F0Y2hQYXR0ZXJuOiBkZWZhdWx0V2F0Y2hQYXR0ZXJuIH0sXG4gICAgICBudWxsLFxuICAgICAgMixcbiAgICApLFxuICApO1xuICBsb2dnZXIuZGVidWcoYFdyaXRlIGRlZmF1bHQgd2F0Y2hQYXR0ZXJuIGZvciAke2xhbmd1YWdlfSBpbiBjZGt0Zi5qc29uLmApO1xuXG4gIHJldHVybiBkZWZhdWx0V2F0Y2hQYXR0ZXJuO1xufVxuXG5jb25zdCBwcm9qZWN0U3RhdHVzID0gKHByb2plY3Q/OiBDZGt0ZlByb2plY3QpID0+IHtcbiAgaWYgKCFwcm9qZWN0Py5zdGFja3NUb1J1bi5sZW5ndGgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5Qcm9ncmVzczogW10sXG4gICAgICBmaW5pc2hlZDogW10sXG4gICAgICBwZW5kaW5nOiBbXSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgaW5Qcm9ncmVzcyA9IHByb2plY3Quc3RhY2tzVG9SdW4uZmlsdGVyKChzKSA9PiBzLmlzUnVubmluZyk7XG4gIGNvbnN0IGZpbmlzaGVkID0gcHJvamVjdC5zdGFja3NUb1J1bi5maWx0ZXIoKHMpID0+IHMuaXNEb25lKTtcbiAgY29uc3QgcGVuZGluZyA9IHByb2plY3Quc3RhY2tzVG9SdW4uZmlsdGVyKChzKSA9PiBzLmlzUGVuZGluZyk7XG4gIHJldHVybiB7IGluUHJvZ3Jlc3MsIGZpbmlzaGVkLCBwZW5kaW5nIH07XG59O1xuXG5leHBvcnQgdHlwZSBTdGF0ZSA9XG4gIHwge1xuICAgICAgdHlwZTogXCJ3YWl0aW5nXCI7XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6IFwicnVubmluZ1wiO1xuICAgICAgbmV4dFJ1blF1ZXVlZDogYm9vbGVhbjtcbiAgICAgIGN1cnJlbnRSdW46IFByb21pc2U8dm9pZD47XG4gICAgICBpblByb2dyZXNzOiBDZGt0ZlN0YWNrW107XG4gICAgICBmaW5pc2hlZDogQ2RrdGZTdGFja1tdO1xuICAgICAgcGVuZGluZzogQ2RrdGZTdGFja1tdO1xuICAgIH1cbiAgfCB7IHR5cGU6IFwic3RvcHBlZFwiIH07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YXRjaChcbiAgcHJvamVjdE9wdGlvbnM6IENka3RmUHJvamVjdE9wdGlvbnMsXG4gIG11dGF0aW9uT3B0aW9uczogTXV0YXRpb25PcHRpb25zLFxuICBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwsXG4gIG9uU3RhdGVDaGFuZ2U6IChuZXdTdGF0ZTogU3RhdGUpID0+IHZvaWQsXG4pIHtcbiAgY29uc3QgcGF0dGVybnMgPSBnZXRPcldyaXRlRGVmYXVsdFdhdGNoQ29uZmlnKCk7XG4gIGNvbnN0IHdhdGNoZXIgPSBjaG9raWRhci53YXRjaChwYXR0ZXJucywge1xuICAgIGlnbm9yZUluaXRpYWw6IHRydWUsXG4gIH0pO1xuICBsZXQgc3RhdGU6IFN0YXRlID0geyB0eXBlOiBcIndhaXRpbmdcIiB9O1xuICBjb25zdCBjaGFuZ2VTdGF0ZSA9IChuZXdTdGF0ZTogU3RhdGUpID0+IHtcbiAgICBzdGF0ZSA9IG5ld1N0YXRlO1xuICAgIG9uU3RhdGVDaGFuZ2Uoc3RhdGUpO1xuICB9O1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHJ1bigpIHtcbiAgICBsb2dnZXIuZGVidWcoXCJSdW5uaW5nIGNka3RuIGRlcGxveVwiKTtcbiAgICBjb25zdCBwcm9qZWN0ID0gbmV3IENka3RmUHJvamVjdCh7XG4gICAgICBzeW50aE9yaWdpbjogXCJ3YXRjaFwiLFxuICAgICAgLi4ucHJvamVjdE9wdGlvbnMsXG4gICAgICBvbkxvZzogKGxvZykgPT4ge1xuICAgICAgICBpZiAocHJvamVjdE9wdGlvbnMub25Mb2cpIHtcbiAgICAgICAgICBwcm9qZWN0T3B0aW9ucy5vbkxvZyhsb2cpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZS50eXBlID09PSBcInJ1bm5pbmdcIikge1xuICAgICAgICAgIGNoYW5nZVN0YXRlKHsgLi4uc3RhdGUsIC4uLnByb2plY3RTdGF0dXMocHJvamVjdCkgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3QgYWJvcnQgPSAoKSA9PiBwcm9qZWN0LmhhcmRBYm9ydCgpO1xuICAgIGFib3J0U2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBhYm9ydCk7XG4gICAgYXdhaXQgcHJvamVjdC5kZXBsb3kobXV0YXRpb25PcHRpb25zKTtcbiAgICBhYm9ydFNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgYWJvcnQpO1xuICAgIGxvZ2dlci5kZWJ1ZyhcImNka3RuIGRlcGxveSBmaW5pc2hlZFwiKTtcblxuICAgIGlmIChzdGF0ZS50eXBlICE9PSBcInJ1bm5pbmdcIikge1xuICAgICAgdGhyb3cgRXJyb3JzLkludGVybmFsKFxuICAgICAgICBcIldhdGNoIHdhcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBzdGF0ZSB3YXMgbm90IHJ1bm5pbmcgaW4gdGhlIHJ1biBwaGFzZVwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoc3RhdGUubmV4dFJ1blF1ZXVlZCkge1xuICAgICAgbG9nZ2VyLmRlYnVnKFwiTmV4dCBydW4gd2FzIHF1ZXVlZCwgc3RhcnRpbmcgaXQgbm93XCIpO1xuICAgICAgY2hhbmdlU3RhdGUoe1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbmV4dFJ1blF1ZXVlZDogZmFsc2UsXG4gICAgICAgIGN1cnJlbnRSdW46IHJ1bigpLFxuICAgICAgICAuLi5wcm9qZWN0U3RhdHVzKHByb2plY3QpLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcIk5vdGhpbmcgcXVldWVkLCB3YWl0aW5nIGZvciBjaGFuZ2VzXCIpO1xuICAgICAgY2hhbmdlU3RhdGUoeyB0eXBlOiBcIndhaXRpbmdcIiB9KTtcbiAgICB9XG4gIH1cblxuICBhYm9ydFNpZ25hbC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgKCkgPT4ge1xuICAgIGxvZ2dlci5kZWJ1ZyhcIkFib3J0IHNpZ25hbCByZWNlaXZlZCwgc3RvcHBpbmcgd2F0Y2hcIik7XG4gICAgd2F0Y2hlci5jbG9zZSgpO1xuICAgIGNoYW5nZVN0YXRlKHsgdHlwZTogXCJzdG9wcGVkXCIgfSk7XG4gIH0pO1xuXG4gIGNvbnN0IG9uRmlsZUNoYW5nZSA9ICgpID0+IHtcbiAgICBpZiAoc3RhdGUudHlwZSA9PT0gXCJzdG9wcGVkXCIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoc3RhdGUudHlwZSA9PT0gXCJydW5uaW5nXCIpIHtcbiAgICAgIGNoYW5nZVN0YXRlKHsgLi4uc3RhdGUsIG5leHRSdW5RdWV1ZWQ6IHRydWUgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY2hhbmdlU3RhdGUoe1xuICAgICAgdHlwZTogXCJydW5uaW5nXCIsXG4gICAgICBuZXh0UnVuUXVldWVkOiBmYWxzZSxcbiAgICAgIGN1cnJlbnRSdW46IHJ1bigpLFxuICAgICAgLi4ucHJvamVjdFN0YXR1cygpLFxuICAgIH0pO1xuICB9O1xuXG4gIHdhdGNoZXIub24oXCJhbGxcIiwgb25GaWxlQ2hhbmdlKTtcbiAgLy8gaW5pdGlhbGx5IHJ1biBvbmNlXG4gIG9uRmlsZUNoYW5nZSgpO1xuXG4gIGF3YWl0IHNlbmRUZWxlbWV0cnkoXCJ3YXRjaFwiLCB7IGV2ZW50OiBcInN0YXJ0XCIgfSk7XG59XG4iXX0=
package/eslint.config.mjs CHANGED
@@ -3,80 +3,16 @@
3
3
  * SPDX-License-Identifier: MPL-2.0
4
4
  */
5
5
 
6
- import { fixupConfigRules } from "@eslint/compat";
7
- import eslint from "@eslint/js";
8
- import tseslint from "typescript-eslint";
9
- import tsParser from "@typescript-eslint/parser";
10
- import react from "eslint-plugin-react";
11
- import prettierConfig from "eslint-plugin-prettier/recommended";
12
- import path from "node:path";
13
- import { fileURLToPath } from "node:url";
14
- import js from "@eslint/js";
15
- import { FlatCompat } from "@eslint/eslintrc";
16
-
17
- const __filename = fileURLToPath(import.meta.url);
18
- const __dirname = path.dirname(__filename);
19
- const compat = new FlatCompat({
20
- baseDirectory: __dirname,
21
- recommendedConfig: js.configs.recommended,
22
- allConfig: js.configs.all,
23
- });
6
+ import rootConfig from "../../../eslint.config.mjs";
24
7
 
25
8
  export default [
26
9
  {
27
10
  ignores: [
28
- "**/node_modules",
29
- "**/dist",
30
- "**/coverage",
31
- "**/*.d.ts",
32
- "**/*.js",
33
11
  // prettier v2 managed inline snapshots
34
12
  "src/test/lib/cdktf-project.test.ts",
35
13
  "src/test/lib/terraform-logs.test.ts",
36
14
  "src/test/lib/execution-logs.test.ts",
37
15
  ],
38
16
  },
39
- ...tseslint.config(eslint.configs.recommended, tseslint.configs.recommended),
40
- {
41
- settings: {
42
- react: {
43
- version: "detect",
44
- },
45
- },
46
- },
47
- react.configs.flat.recommended,
48
- ...fixupConfigRules(compat.extends("plugin:react-hooks/recommended")).map(
49
- (config) => ({
50
- ...config,
51
- files: ["**/*.ts", "**/*.tsx"],
52
- }),
53
- ),
54
- {
55
- files: ["**/*.ts", "**/*.tsx"],
56
-
57
- languageOptions: {
58
- parser: tsParser,
59
- },
60
-
61
- rules: {
62
- "@typescript-eslint/no-explicit-any": 0,
63
- "@typescript-eslint/explicit-function-return-type": 0,
64
- "@typescript-eslint/no-use-before-define": 0,
65
- "@typescript-eslint/explicit-module-boundary-types": 0,
66
- "@typescript-eslint/no-var-requires": 0,
67
- "@typescript-eslint/no-require-imports": "warn",
68
- "@typescript-eslint/no-unused-vars": "warn",
69
- "react/no-unescaped-entities": 0,
70
- "no-sequences": "error",
71
- "no-unused-vars": "warn",
72
-
73
- "no-irregular-whitespace": [
74
- "error",
75
- {
76
- skipTemplates: true,
77
- },
78
- ],
79
- },
80
- },
81
- prettierConfig,
17
+ ...rootConfig,
82
18
  ];