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

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
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createEnhanceLogMessage = void 0;
4
- // Copyright (c) HashiCorp, Inc
5
- // SPDX-License-Identifier: MPL-2.0
6
- const commons_1 = require("@cdktn/commons");
7
- // escapes any special charaters used in regex
8
- const escapeRegexSpecialChars = (str) => str.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
9
- // uses word boundary to match the whole of the tfIdentifer
10
- const lineHasExactMatch = (line, tfIdentifier) => new RegExp(`\\b${escapeRegexSpecialChars(tfIdentifier)}\\b`).test(line);
11
- function createEnhanceLogMessage(stack) {
12
- // we never want to throw, if it does not work we just do as if it did not happen
13
- const pathMapping = {};
14
- try {
15
- const json = JSON.parse(stack.content);
16
- ["data", "resource"].forEach((type) => {
17
- Object.entries(json[type] || {}).forEach(([resourceType, resourceInstances]) => {
18
- Object.entries(resourceInstances || {}).forEach(([resourceName, resource]) => {
19
- // Some constructs don't have this metadata
20
- if (resource["//"] &&
21
- resource["//"].metadata &&
22
- resource["//"].metadata.path) {
23
- pathMapping[`${resourceType}.${resourceName}`] = resource["//"].metadata.path.replace(`${stack.name}/`, "");
24
- }
25
- });
26
- });
27
- });
28
- }
29
- catch (e) {
30
- commons_1.logger.debug(`Could not enhance log message: ${e}`);
31
- }
32
- return (message) => {
33
- return message
34
- .split("\n")
35
- .map((line) => {
36
- const matchingEntry = Object.entries(pathMapping).find(([tfIdentifier]) => lineHasExactMatch(line, tfIdentifier));
37
- if (!matchingEntry) {
38
- return line;
39
- }
40
- const [id, cdkPath] = matchingEntry;
41
- return line.replace(id, `${id} (${cdkPath})`);
42
- })
43
- .join("\n");
44
- };
45
- }
46
- exports.createEnhanceLogMessage = createEnhanceLogMessage;
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLWxvZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleGVjdXRpb24tbG9ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDRDQUF3QztBQW9CeEMsOENBQThDO0FBQzlDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUM5QyxHQUFHLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRS9DLDJEQUEyRDtBQUMzRCxNQUFNLGlCQUFpQixHQUFHLENBQUMsSUFBWSxFQUFFLFlBQW9CLEVBQUUsRUFBRSxDQUMvRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFMUUsU0FBZ0IsdUJBQXVCLENBQ3JDLEtBQXVCO0lBRXZCLGlGQUFpRjtJQUNqRixNQUFNLFdBQVcsR0FBNEMsRUFBRSxDQUFDO0lBQ2hFLElBQUksQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBVyxDQUFDO1FBRWpELENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQTJCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQzdELENBQUMsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxFQUFFO2dCQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FDN0MsQ0FBQyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFO29CQUMzQiwyQ0FBMkM7b0JBQzNDLElBQ0UsUUFBUSxDQUFDLElBQUksQ0FBQzt3QkFDZCxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUTt3QkFDdkIsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQzVCLENBQUM7d0JBQ0QsV0FBVyxDQUFDLEdBQUcsWUFBWSxJQUFJLFlBQVksRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUN2RCxJQUFJLENBQ0wsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDaEQsQ0FBQztnQkFDSCxDQUFDLENBQ0YsQ0FBQztZQUNKLENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLGdCQUFNLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZSxFQUFFLEVBQUU7UUFDekIsT0FBTyxPQUFPO2FBQ1gsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNYLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1osTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQ3BELENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUMxRCxDQUFDO1lBQ0YsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNuQixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLGFBQWEsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUM7QUEvQ0QsMERBK0NDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHsgU3ludGhlc2l6ZWRTdGFjayB9IGZyb20gXCIuL3N5bnRoLXN0YWNrXCI7XG50eXBlIFRGSWRlbnRpZmllciA9IHN0cmluZztcbnR5cGUgQ0RLVEZSZXNvdXJjZVBhdGggPSBzdHJpbmc7XG50eXBlIFRmUmVzb3VyY2UgPSBSZWNvcmQ8XG4gIHN0cmluZyxcbiAge1xuICAgIFtcIi8vXCJdPzoge1xuICAgICAgbWV0YWRhdGE/OiB7XG4gICAgICAgIHBhdGg/OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gIH1cbj47XG50eXBlIFRmUmVzb3VyY2VUeXBlID0gUmVjb3JkPHN0cmluZywgVGZSZXNvdXJjZT47XG50eXBlIFRGSnNvbiA9IHtcbiAgZGF0YTogVGZSZXNvdXJjZVR5cGU7XG4gIHJlc291cmNlOiBUZlJlc291cmNlVHlwZTtcbn07XG5cbi8vIGVzY2FwZXMgYW55IHNwZWNpYWwgY2hhcmF0ZXJzIHVzZWQgaW4gcmVnZXhcbmNvbnN0IGVzY2FwZVJlZ2V4U3BlY2lhbENoYXJzID0gKHN0cjogc3RyaW5nKSA9PlxuICBzdHIucmVwbGFjZSgvWy0vXFxcXF4kKis/LigpfFtcXF17fV0vZywgXCJcXFxcJCZcIik7XG5cbi8vIHVzZXMgd29yZCBib3VuZGFyeSB0byBtYXRjaCB0aGUgd2hvbGUgb2YgdGhlIHRmSWRlbnRpZmVyXG5jb25zdCBsaW5lSGFzRXhhY3RNYXRjaCA9IChsaW5lOiBzdHJpbmcsIHRmSWRlbnRpZmllcjogc3RyaW5nKSA9PlxuICBuZXcgUmVnRXhwKGBcXFxcYiR7ZXNjYXBlUmVnZXhTcGVjaWFsQ2hhcnModGZJZGVudGlmaWVyKX1cXFxcYmApLnRlc3QobGluZSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbmhhbmNlTG9nTWVzc2FnZShcbiAgc3RhY2s6IFN5bnRoZXNpemVkU3RhY2ssXG4pOiAobWVzc2FnZTogc3RyaW5nKSA9PiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAvLyB3ZSBuZXZlciB3YW50IHRvIHRocm93LCBpZiBpdCBkb2VzIG5vdCB3b3JrIHdlIGp1c3QgZG8gYXMgaWYgaXQgZGlkIG5vdCBoYXBwZW5cbiAgY29uc3QgcGF0aE1hcHBpbmc6IFJlY29yZDxURklkZW50aWZpZXIsIENES1RGUmVzb3VyY2VQYXRoPiA9IHt9O1xuICB0cnkge1xuICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHN0YWNrLmNvbnRlbnQpIGFzIFRGSnNvbjtcblxuICAgIFtcImRhdGFcIiwgXCJyZXNvdXJjZVwiXS5mb3JFYWNoKCh0eXBlKSA9PiB7XG4gICAgICBPYmplY3QuZW50cmllcyhqc29uW3R5cGUgYXMgXCJkYXRhXCIgfCBcInJlc291cmNlXCJdIHx8IHt9KS5mb3JFYWNoKFxuICAgICAgICAoW3Jlc291cmNlVHlwZSwgcmVzb3VyY2VJbnN0YW5jZXNdKSA9PiB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMocmVzb3VyY2VJbnN0YW5jZXMgfHwge30pLmZvckVhY2goXG4gICAgICAgICAgICAoW3Jlc291cmNlTmFtZSwgcmVzb3VyY2VdKSA9PiB7XG4gICAgICAgICAgICAgIC8vIFNvbWUgY29uc3RydWN0cyBkb24ndCBoYXZlIHRoaXMgbWV0YWRhdGFcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHJlc291cmNlW1wiLy9cIl0gJiZcbiAgICAgICAgICAgICAgICByZXNvdXJjZVtcIi8vXCJdLm1ldGFkYXRhICYmXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VbXCIvL1wiXS5tZXRhZGF0YS5wYXRoXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHBhdGhNYXBwaW5nW2Ake3Jlc291cmNlVHlwZX0uJHtyZXNvdXJjZU5hbWV9YF0gPSByZXNvdXJjZVtcbiAgICAgICAgICAgICAgICAgIFwiLy9cIlxuICAgICAgICAgICAgICAgIF0ubWV0YWRhdGEucGF0aC5yZXBsYWNlKGAke3N0YWNrLm5hbWV9L2AsIFwiXCIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBDb3VsZCBub3QgZW5oYW5jZSBsb2cgbWVzc2FnZTogJHtlfWApO1xuICB9XG5cbiAgcmV0dXJuIChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gbWVzc2FnZVxuICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAubWFwKChsaW5lKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hdGNoaW5nRW50cnkgPSBPYmplY3QuZW50cmllcyhwYXRoTWFwcGluZykuZmluZChcbiAgICAgICAgICAoW3RmSWRlbnRpZmllcl0pID0+IGxpbmVIYXNFeGFjdE1hdGNoKGxpbmUsIHRmSWRlbnRpZmllciksXG4gICAgICAgICk7XG4gICAgICAgIGlmICghbWF0Y2hpbmdFbnRyeSkge1xuICAgICAgICAgIHJldHVybiBsaW5lO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IFtpZCwgY2RrUGF0aF0gPSBtYXRjaGluZ0VudHJ5O1xuICAgICAgICByZXR1cm4gbGluZS5yZXBsYWNlKGlkLCBgJHtpZH0gKCR7Y2RrUGF0aH0pYCk7XG4gICAgICB9KVxuICAgICAgLmpvaW4oXCJcXG5cIik7XG4gIH07XG59XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["get.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAEL,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,gBAAgB,CAAC;AAMxB,oBAAY,SAAS;IACnB,QAAQ,aAAa;IACrB,WAAW,qDAAqD;IAChE,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,KAAK,0BAA0B,GAC3B,yBAAyB,GACzB,2BAA2B,GAC3B,6BAA6B,CAAC;AAElC,UAAU,SAAS;IAEjB,WAAW,EAAE,0BAA0B,EAAE,CAAC;IAE1C,qBAAqB,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACrD,iBAAiB,EAAE,UAAU,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACtC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB;AAED,wBAAsB,GAAG,CAAC,EACxB,iBAAiB,EACjB,WAAW,EACX,qBAAqB,EACrB,cAAc,EACd,uBAAuB,EACvB,QAA0B,EAC1B,eAAuC,GACxC,EAAE,SAAS,iBAsCX;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,UAAO,iBAiB1D"}
package/src/lib/get.js DELETED
@@ -1,90 +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.runGetInDir = exports.get = exports.GetStatus = void 0;
27
- // Copyright (c) HashiCorp, Inc
28
- // SPDX-License-Identifier: MPL-2.0
29
- const provider_generator_1 = require("@cdktn/provider-generator");
30
- const commons_1 = require("@cdktn/commons");
31
- const fs = __importStar(require("fs-extra"));
32
- const commons_2 = require("@cdktn/commons");
33
- const path = __importStar(require("path"));
34
- const cdktf_config_1 = require("./cdktf-config");
35
- var GetStatus;
36
- (function (GetStatus) {
37
- GetStatus["STARTING"] = "starting";
38
- GetStatus["DOWNLOADING"] = "downloading and generating modules and providers";
39
- GetStatus["DONE"] = "done";
40
- GetStatus["ERROR"] = "error";
41
- })(GetStatus || (exports.GetStatus = GetStatus = {}));
42
- async function get({ constructsOptions, constraints, constraintsToGenerate, cleanDirectory, providerSchemaCachePath, onUpdate = () => undefined, reportTelemetry = async () => undefined, }) {
43
- commons_2.logger.debug(`Starting get with outdir ${constructsOptions.codeMakerOutput}`);
44
- const constructsMaker = new provider_generator_1.ConstructsMaker(constructsOptions, providerSchemaCachePath, reportTelemetry);
45
- if (cleanDirectory) {
46
- await fs.remove(constructsOptions.codeMakerOutput);
47
- }
48
- else {
49
- // Remove all providers that are not in the new list
50
- await constructsMaker.removeFoldersThatShouldNotExist(constraints);
51
- if (constructsOptions.targetLanguage === commons_1.Language.TYPESCRIPT) {
52
- // Remove all modules
53
- await fs.remove(path.resolve(constructsOptions.codeMakerOutput, "modules"));
54
- }
55
- }
56
- // Filter constraints to generate
57
- const toGenerate = constraintsToGenerate ||
58
- (await constructsMaker.filterAlreadyGenerated(constraints));
59
- onUpdate(GetStatus.DOWNLOADING);
60
- commons_2.logger.debug("Generating provider bindings");
61
- await constructsMaker.generate(constraints, toGenerate);
62
- commons_2.logger.debug("Provider bindings generated");
63
- if (!(await fs.pathExists(constructsOptions.codeMakerOutput))) {
64
- onUpdate(GetStatus.ERROR);
65
- commons_2.logger.debug("Failed to generate provider bindings");
66
- }
67
- else {
68
- onUpdate(GetStatus.DONE);
69
- commons_2.logger.debug("Provider bindings generated");
70
- }
71
- }
72
- exports.get = get;
73
- async function runGetInDir(dir, clean = true) {
74
- const config = cdktf_config_1.CdktfConfig.read(dir);
75
- const constraints = [
76
- ...config.terraformProviders.map((c) => new commons_1.TerraformProviderConstraint(c)),
77
- ...config.terraformModules.map((c) => new commons_1.TerraformModuleConstraint(c)),
78
- ];
79
- await get({
80
- constraints,
81
- constructsOptions: {
82
- codeMakerOutput: path.resolve(dir, config.codeMakerOutput),
83
- targetLanguage: config.language,
84
- jsiiParallelism: 1,
85
- },
86
- cleanDirectory: clean,
87
- });
88
- }
89
- exports.runGetInDir = runGetInDir;
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyxrRUFBd0U7QUFDeEUsNENBS3dCO0FBQ3hCLDZDQUErQjtBQUMvQiw0Q0FBd0M7QUFDeEMsMkNBQTZCO0FBQzdCLGlEQUE2QztBQUU3QyxJQUFZLFNBS1g7QUFMRCxXQUFZLFNBQVM7SUFDbkIsa0NBQXFCLENBQUE7SUFDckIsNkVBQWdFLENBQUE7SUFDaEUsMEJBQWEsQ0FBQTtJQUNiLDRCQUFlLENBQUE7QUFDakIsQ0FBQyxFQUxXLFNBQVMseUJBQVQsU0FBUyxRQUtwQjtBQXNCTSxLQUFLLFVBQVUsR0FBRyxDQUFDLEVBQ3hCLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFDMUIsZUFBZSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUMsU0FBUyxHQUM3QjtJQUNWLGdCQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLE1BQU0sZUFBZSxHQUFHLElBQUksb0NBQWUsQ0FDekMsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixlQUFlLENBQ2hCLENBQUM7SUFFRixJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ25CLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNyRCxDQUFDO1NBQU0sQ0FBQztRQUNOLG9EQUFvRDtRQUNwRCxNQUFNLGVBQWUsQ0FBQywrQkFBK0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRSxJQUFJLGlCQUFpQixDQUFDLGNBQWMsS0FBSyxrQkFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzdELHFCQUFxQjtZQUNyQixNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLENBQzNELENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELGlDQUFpQztJQUNqQyxNQUFNLFVBQVUsR0FDZCxxQkFBcUI7UUFDckIsQ0FBQyxNQUFNLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBRTlELFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUM3QyxNQUFNLGVBQWUsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELGdCQUFNLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFFNUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5RCxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLGdCQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztTQUFNLENBQUM7UUFDTixRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLGdCQUFNLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDOUMsQ0FBQztBQUNILENBQUM7QUE5Q0Qsa0JBOENDO0FBRU0sS0FBSyxVQUFVLFdBQVcsQ0FBQyxHQUFXLEVBQUUsS0FBSyxHQUFHLElBQUk7SUFDekQsTUFBTSxNQUFNLEdBQUcsMEJBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFckMsTUFBTSxXQUFXLEdBQUc7UUFDbEIsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLHFDQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNFLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxtQ0FBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN4RSxDQUFDO0lBRUYsTUFBTSxHQUFHLENBQUM7UUFDUixXQUFXO1FBQ1gsaUJBQWlCLEVBQUU7WUFDakIsZUFBZSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUM7WUFDMUQsY0FBYyxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQy9CLGVBQWUsRUFBRSxDQUFDO1NBQ25CO1FBQ0QsY0FBYyxFQUFFLEtBQUs7S0FDdEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQWpCRCxrQ0FpQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgQ29uc3RydWN0c01ha2VyLCBHZXRPcHRpb25zIH0gZnJvbSBcIkBjZGt0bi9wcm92aWRlci1nZW5lcmF0b3JcIjtcbmltcG9ydCB7XG4gIExhbmd1YWdlLFxuICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50LFxuICBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQsXG4gIFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50LFxufSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBDZGt0ZkNvbmZpZyB9IGZyb20gXCIuL2Nka3RmLWNvbmZpZ1wiO1xuXG5leHBvcnQgZW51bSBHZXRTdGF0dXMge1xuICBTVEFSVElORyA9IFwic3RhcnRpbmdcIixcbiAgRE9XTkxPQURJTkcgPSBcImRvd25sb2FkaW5nIGFuZCBnZW5lcmF0aW5nIG1vZHVsZXMgYW5kIHByb3ZpZGVyc1wiLFxuICBET05FID0gXCJkb25lXCIsXG4gIEVSUk9SID0gXCJlcnJvclwiLFxufVxuXG50eXBlIFBhcnNlZERlcGVuZGVuY3lDb25zdHJhaW50ID1cbiAgfCBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50XG4gIHwgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50XG4gIHwgVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQ7XG5cbmludGVyZmFjZSBHZXRDb25maWcge1xuICAvLyBBbGwgZXhpc3RpbmcgY29uc3RyYWludHMgKHRvIGJlIGFibGUgdG8gcmVtb3ZlIG5vIGxvbmdlciB1c2VkIG9uZXMpXG4gIGNvbnN0cmFpbnRzOiBQYXJzZWREZXBlbmRlbmN5Q29uc3RyYWludFtdO1xuICAvLyBUaGUgY29uc3RyYWludHMgdGhhdCBzaG91bGQgYmUgZ2VuZXJhdGVkXG4gIGNvbnN0cmFpbnRzVG9HZW5lcmF0ZT86IFBhcnNlZERlcGVuZGVuY3lDb25zdHJhaW50W107XG4gIGNvbnN0cnVjdHNPcHRpb25zOiBHZXRPcHRpb25zO1xuICBjbGVhbkRpcmVjdG9yeT86IGJvb2xlYW47XG4gIHByb3ZpZGVyU2NoZW1hQ2FjaGVQYXRoPzogc3RyaW5nO1xuICBvblVwZGF0ZT86IChwYXlsb2FkOiBHZXRTdGF0dXMpID0+IHZvaWQ7XG4gIHJlcG9ydFRlbGVtZXRyeT86ICh0ZWxlbWV0cnk6IHtcbiAgICB0YXJnZXRMYW5ndWFnZTogc3RyaW5nO1xuICAgIHRyYWNraW5nUGF5bG9hZDogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgfSkgPT4gUHJvbWlzZTx2b2lkPjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldCh7XG4gIGNvbnN0cnVjdHNPcHRpb25zLFxuICBjb25zdHJhaW50cyxcbiAgY29uc3RyYWludHNUb0dlbmVyYXRlLFxuICBjbGVhbkRpcmVjdG9yeSxcbiAgcHJvdmlkZXJTY2hlbWFDYWNoZVBhdGgsXG4gIG9uVXBkYXRlID0gKCkgPT4gdW5kZWZpbmVkLFxuICByZXBvcnRUZWxlbWV0cnkgPSBhc3luYyAoKSA9PiB1bmRlZmluZWQsXG59OiBHZXRDb25maWcpIHtcbiAgbG9nZ2VyLmRlYnVnKGBTdGFydGluZyBnZXQgd2l0aCBvdXRkaXIgJHtjb25zdHJ1Y3RzT3B0aW9ucy5jb2RlTWFrZXJPdXRwdXR9YCk7XG4gIGNvbnN0IGNvbnN0cnVjdHNNYWtlciA9IG5ldyBDb25zdHJ1Y3RzTWFrZXIoXG4gICAgY29uc3RydWN0c09wdGlvbnMsXG4gICAgcHJvdmlkZXJTY2hlbWFDYWNoZVBhdGgsXG4gICAgcmVwb3J0VGVsZW1ldHJ5LFxuICApO1xuXG4gIGlmIChjbGVhbkRpcmVjdG9yeSkge1xuICAgIGF3YWl0IGZzLnJlbW92ZShjb25zdHJ1Y3RzT3B0aW9ucy5jb2RlTWFrZXJPdXRwdXQpO1xuICB9IGVsc2Uge1xuICAgIC8vIFJlbW92ZSBhbGwgcHJvdmlkZXJzIHRoYXQgYXJlIG5vdCBpbiB0aGUgbmV3IGxpc3RcbiAgICBhd2FpdCBjb25zdHJ1Y3RzTWFrZXIucmVtb3ZlRm9sZGVyc1RoYXRTaG91bGROb3RFeGlzdChjb25zdHJhaW50cyk7XG4gICAgaWYgKGNvbnN0cnVjdHNPcHRpb25zLnRhcmdldExhbmd1YWdlID09PSBMYW5ndWFnZS5UWVBFU0NSSVBUKSB7XG4gICAgICAvLyBSZW1vdmUgYWxsIG1vZHVsZXNcbiAgICAgIGF3YWl0IGZzLnJlbW92ZShcbiAgICAgICAgcGF0aC5yZXNvbHZlKGNvbnN0cnVjdHNPcHRpb25zLmNvZGVNYWtlck91dHB1dCwgXCJtb2R1bGVzXCIpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBGaWx0ZXIgY29uc3RyYWludHMgdG8gZ2VuZXJhdGVcbiAgY29uc3QgdG9HZW5lcmF0ZSA9XG4gICAgY29uc3RyYWludHNUb0dlbmVyYXRlIHx8XG4gICAgKGF3YWl0IGNvbnN0cnVjdHNNYWtlci5maWx0ZXJBbHJlYWR5R2VuZXJhdGVkKGNvbnN0cmFpbnRzKSk7XG5cbiAgb25VcGRhdGUoR2V0U3RhdHVzLkRPV05MT0FESU5HKTtcbiAgbG9nZ2VyLmRlYnVnKFwiR2VuZXJhdGluZyBwcm92aWRlciBiaW5kaW5nc1wiKTtcbiAgYXdhaXQgY29uc3RydWN0c01ha2VyLmdlbmVyYXRlKGNvbnN0cmFpbnRzLCB0b0dlbmVyYXRlKTtcbiAgbG9nZ2VyLmRlYnVnKFwiUHJvdmlkZXIgYmluZGluZ3MgZ2VuZXJhdGVkXCIpO1xuXG4gIGlmICghKGF3YWl0IGZzLnBhdGhFeGlzdHMoY29uc3RydWN0c09wdGlvbnMuY29kZU1ha2VyT3V0cHV0KSkpIHtcbiAgICBvblVwZGF0ZShHZXRTdGF0dXMuRVJST1IpO1xuICAgIGxvZ2dlci5kZWJ1ZyhcIkZhaWxlZCB0byBnZW5lcmF0ZSBwcm92aWRlciBiaW5kaW5nc1wiKTtcbiAgfSBlbHNlIHtcbiAgICBvblVwZGF0ZShHZXRTdGF0dXMuRE9ORSk7XG4gICAgbG9nZ2VyLmRlYnVnKFwiUHJvdmlkZXIgYmluZGluZ3MgZ2VuZXJhdGVkXCIpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5HZXRJbkRpcihkaXI6IHN0cmluZywgY2xlYW4gPSB0cnVlKSB7XG4gIGNvbnN0IGNvbmZpZyA9IENka3RmQ29uZmlnLnJlYWQoZGlyKTtcblxuICBjb25zdCBjb25zdHJhaW50cyA9IFtcbiAgICAuLi5jb25maWcudGVycmFmb3JtUHJvdmlkZXJzLm1hcCgoYykgPT4gbmV3IFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludChjKSksXG4gICAgLi4uY29uZmlnLnRlcnJhZm9ybU1vZHVsZXMubWFwKChjKSA9PiBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludChjKSksXG4gIF07XG5cbiAgYXdhaXQgZ2V0KHtcbiAgICBjb25zdHJhaW50cyxcbiAgICBjb25zdHJ1Y3RzT3B0aW9uczoge1xuICAgICAgY29kZU1ha2VyT3V0cHV0OiBwYXRoLnJlc29sdmUoZGlyLCBjb25maWcuY29kZU1ha2VyT3V0cHV0KSxcbiAgICAgIHRhcmdldExhbmd1YWdlOiBjb25maWcubGFuZ3VhZ2UsXG4gICAgICBqc2lpUGFyYWxsZWxpc206IDEsXG4gICAgfSxcbiAgICBjbGVhbkRpcmVjdG9yeTogY2xlYW4sXG4gIH0pO1xufVxuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"stack-helpers.d.ts","sourceRoot":"","sources":["stack-helpers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,gBAAgB,EAAE,EAC1B,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,oBA4BtB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,gBAAgB,EAAE,EAC1B,QAAQ,CAAC,EAAE,MAAM,EAAE,EACnB,YAAY,CAAC,EAAE,MAAM,sBA0BtB;AAMD,wBAAsB,+BAA+B,CACnD,cAAc,EAAE,UAAU,EAAE,GAC3B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAyCjC;AAWD,wBAAgB,4BAA4B,CAC1C,cAAc,EAAE,UAAU,EAAE,EAC5B,SAAS,EAAE,MAAM,EACjB,wBAAwB,GAAE,GAAG,CAAC,MAAM,CAAa,GAChD,UAAU,EAAE,CAkBd;AAGD,wBAAsB,6BAA6B,CACjD,cAAc,EAAE,UAAU,EAAE,GAC3B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAmCjC;AAGD,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,gBAAgB,EAAE,EAC/B,SAAS,EAAE,gBAAgB,EAAE,QAsB9B;AAED;;;;;EAKE;AACF,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,gBAAgB,EAAE,QAoBhC"}
@@ -1,155 +0,0 @@
1
- "use strict";
2
- // Copyright (c) HashiCorp, Inc
3
- // SPDX-License-Identifier: MPL-2.0
4
- var __importDefault = (this && this.__importDefault) || function (mod) {
5
- return (mod && mod.__esModule) ? mod : { "default": mod };
6
- };
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.checkIfAllDependenciesAreIncluded = exports.checkIfAllDependantsAreIncluded = exports.getStackWithNoUnmetDependants = exports.findAllNestedDependantStacks = exports.getStackWithNoUnmetDependencies = exports.getMultipleStacks = exports.getSingleStack = void 0;
9
- const commons_1 = require("@cdktn/commons");
10
- const minimatch_1 = __importDefault(require("minimatch"));
11
- function getSingleStack(stacks, stackName, targetAction) {
12
- if (!stacks) {
13
- throw commons_1.Errors.Internal("Trying to access a stack before it has been synthesized");
14
- }
15
- if (stackName) {
16
- const stack = stacks.find((s) => s.name === stackName);
17
- if (!stack) {
18
- throw commons_1.Errors.Usage("Could not find stack: " + stackName);
19
- }
20
- return stack;
21
- }
22
- if (stacks.length === 1) {
23
- return stacks[0];
24
- }
25
- throw commons_1.Errors.Usage(`Found more than one stack, please specify a target stack. Run cdktn ${targetAction || "<verb>"} <stack> with one of these stacks: ${stacks
26
- .map((s) => s.name)
27
- .join(", ")} `);
28
- }
29
- exports.getSingleStack = getSingleStack;
30
- function getMultipleStacks(stacks, patterns, targetAction) {
31
- if (!patterns || !patterns.length) {
32
- if (stacks.length === 1) {
33
- return [stacks[0]];
34
- }
35
- throw commons_1.Errors.Usage(`Found more than one stack, please specify a target stack. Run cdktn ${targetAction || "<verb>"} <stack> with one of these stacks: ${stacks
36
- .map((s) => s.name)
37
- .join(", ")} `);
38
- }
39
- return patterns.flatMap((pattern) => {
40
- const matchingStacks = stacks.filter((stack) => (0, minimatch_1.default)(stack.name, pattern));
41
- if (matchingStacks.length === 0) {
42
- throw commons_1.Errors.Usage(`Could not find stack for pattern '${pattern}'`);
43
- }
44
- return matchingStacks;
45
- });
46
- }
47
- exports.getMultipleStacks = getMultipleStacks;
48
- // Returns the first stack that has no unmet dependencies
49
- // An unmet dependency is a dependency that has not been deployed yet
50
- // If there is no unfinished stack, returns undefined
51
- // If there is no stack ready to be worked on, it returns a promise that will resolve as soon as there is a follow-up stack available
52
- async function getStackWithNoUnmetDependencies(stackExecutors) {
53
- commons_1.logger.debug("Checking for stacks with unmet dependencies");
54
- commons_1.logger.debug("stack executors:", stackExecutors);
55
- const pendingStacks = stackExecutors.filter((executor) => executor.isPending);
56
- commons_1.logger.debug("pending stacks:", stackExecutors);
57
- if (pendingStacks.length === 0) {
58
- return undefined;
59
- }
60
- const currentlyReadyStack = pendingStacks.find((executor) => executor.stack.dependencies.every((dependency) => {
61
- var _a;
62
- return ((_a = stackExecutors.find((executor) => executor.stack.name === dependency)) === null || _a === void 0 ? void 0 : _a.currentState) === "done";
63
- }));
64
- if (currentlyReadyStack) {
65
- commons_1.logger.debug("Found a stack with no unmet dependencies");
66
- return currentlyReadyStack;
67
- }
68
- const stackExecutionPromises = stackExecutors
69
- .filter((ex) => ex.currentWorkPromise)
70
- .map((ex) => ex.currentWorkPromise);
71
- commons_1.logger.debug(`${stackExecutionPromises.length} stacks are currently busy, waiting for one to finish`);
72
- if (!stackExecutionPromises.length) {
73
- return undefined;
74
- }
75
- await (0, commons_1.ensureAllSettledBeforeThrowing)(Promise.race(stackExecutionPromises), stackExecutionPromises);
76
- return await getStackWithNoUnmetDependencies(stackExecutors);
77
- }
78
- exports.getStackWithNoUnmetDependencies = getStackWithNoUnmetDependencies;
79
- function findAllDependantStacks(stackExecutors, stackName) {
80
- return stackExecutors.filter((innerExecutor) => innerExecutor.stack.dependencies.includes(stackName));
81
- }
82
- function findAllNestedDependantStacks(stackExecutors, stackName, knownDependantStackNames = new Set()) {
83
- const dependantStacks = findAllDependantStacks(stackExecutors, stackName);
84
- dependantStacks.forEach((stack) => {
85
- if (knownDependantStackNames.has(stack.stack.name)) {
86
- return;
87
- }
88
- knownDependantStackNames.add(stack.stack.name);
89
- findAllNestedDependantStacks(stackExecutors, stack.stack.name, knownDependantStackNames);
90
- });
91
- return stackExecutors.filter((executor) => knownDependantStackNames.has(executor.stack.name));
92
- }
93
- exports.findAllNestedDependantStacks = findAllNestedDependantStacks;
94
- // Returns the first stack that has no dependents that need to be destroyed first
95
- async function getStackWithNoUnmetDependants(stackExecutors) {
96
- commons_1.logger.debug("Checking for stacks with unmet dependants");
97
- commons_1.logger.debug("stack executors:", stackExecutors);
98
- const pendingStacks = stackExecutors.filter((executor) => executor.isPending);
99
- commons_1.logger.debug("pending stacks:", stackExecutors);
100
- if (pendingStacks.length === 0) {
101
- return undefined;
102
- }
103
- const currentlyReadyStack = pendingStacks.find((executor) => {
104
- const dependantStacks = findAllDependantStacks(stackExecutors, executor.stack.name);
105
- return dependantStacks.every((stack) => stack.currentState === "done");
106
- });
107
- if (currentlyReadyStack) {
108
- commons_1.logger.debug("Found a stack with no unmet dependants");
109
- return currentlyReadyStack;
110
- }
111
- const stackExecutionPromises = stackExecutors
112
- .filter((ex) => ex.currentWorkPromise)
113
- .map((ex) => ex.currentWorkPromise);
114
- commons_1.logger.debug(`${stackExecutionPromises.length} stacks are currently busy, waiting for one to finish`);
115
- if (!stackExecutionPromises.length) {
116
- return undefined;
117
- }
118
- await Promise.race(stackExecutionPromises);
119
- return await getStackWithNoUnmetDependants(stackExecutors);
120
- }
121
- exports.getStackWithNoUnmetDependants = getStackWithNoUnmetDependants;
122
- // Throws an error if there is a dependant stack that is not included
123
- function checkIfAllDependantsAreIncluded(stacksToRun, allStacks) {
124
- const allDependants = new Set();
125
- stacksToRun
126
- .map((stack) => allStacks.filter((s) => s.dependencies.includes(stack.name)))
127
- .flat()
128
- .forEach((dependant) => allDependants.add(dependant.name));
129
- const stackNames = stacksToRun.map((stack) => stack.name);
130
- const missingDependants = [...allDependants].filter((dependant) => !stackNames.includes(dependant));
131
- if (missingDependants.length > 0) {
132
- throw commons_1.Errors.Usage(`The following dependant stacks are not included in the stacks to run: ${missingDependants.join(", ")}. Either add them or add the --ignore-missing-stack-dependencies flag.`);
133
- }
134
- }
135
- exports.checkIfAllDependantsAreIncluded = checkIfAllDependantsAreIncluded;
136
- /**
137
- Throws an error if there is a dependency that is not included
138
- Cycles are detected on dependency creation at synthesis time
139
- Running this prevents us from being in a situation where we
140
- have to wait for a stack to be deployed that is not included to be run
141
- */
142
- function checkIfAllDependenciesAreIncluded(stacksToRun) {
143
- const allDependencies = new Set();
144
- stacksToRun
145
- .map((stack) => stack.dependencies)
146
- .flat()
147
- .forEach((dependency) => allDependencies.add(dependency));
148
- const stackNames = stacksToRun.map((stack) => stack.name);
149
- const missingDependencies = [...allDependencies].filter((dependency) => !stackNames.includes(dependency));
150
- if (missingDependencies.length > 0) {
151
- throw commons_1.Errors.Usage(`The following dependencies are not included in the stacks to run: ${missingDependencies.join(", ")}. Either add them or add the --ignore-missing-stack-dependencies flag.`);
152
- }
153
- }
154
- exports.checkIfAllDependenciesAreIncluded = checkIfAllDependenciesAreIncluded;
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2staGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7Ozs7OztBQUVuQyw0Q0FBZ0Y7QUFDaEYsMERBQWtDO0FBSWxDLFNBQWdCLGNBQWMsQ0FDNUIsTUFBMEIsRUFDMUIsU0FBa0IsRUFDbEIsWUFBcUI7SUFFckIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxnQkFBTSxDQUFDLFFBQVEsQ0FDbkIseURBQXlELENBQzFELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsTUFBTSxnQkFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLGdCQUFNLENBQUMsS0FBSyxDQUNoQix1RUFDRSxZQUFZLElBQUksUUFDbEIsc0NBQXNDLE1BQU07U0FDekMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNqQixDQUFDO0FBQ0osQ0FBQztBQS9CRCx3Q0ErQkM7QUFFRCxTQUFnQixpQkFBaUIsQ0FDL0IsTUFBMEIsRUFDMUIsUUFBbUIsRUFDbkIsWUFB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QUM3RixJQUFJLENBQ0wsd0VBQXdFLENBQzFFLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQXhCRCwwRUF3QkM7QUFFRDs7Ozs7RUFLRTtBQUNGLFNBQWdCLGlDQUFpQyxDQUMvQyxXQUErQjtJQUUvQixNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBQzFDLFdBQVc7U0FDUixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7U0FDbEMsSUFBSSxFQUFFO1NBQ04sT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFFNUQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDLE1BQU0sQ0FDckQsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FDakQsQ0FBQztJQUVGLElBQUksbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sZ0JBQU0sQ0FBQyxLQUFLLENBQ2hCLHFFQUFxRSxtQkFBbUIsQ0FBQyxJQUFJLENBQzNGLElBQUksQ0FDTCx3RUFBd0UsQ0FDMUUsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDO0FBckJELDhFQXFCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5cbmltcG9ydCB7IGVuc3VyZUFsbFNldHRsZWRCZWZvcmVUaHJvd2luZywgRXJyb3JzLCBsb2dnZXIgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCBtaW5pbWF0Y2ggZnJvbSBcIm1pbmltYXRjaFwiO1xuaW1wb3J0IHsgQ2RrdGZTdGFjayB9IGZyb20gXCIuLi9jZGt0Zi1zdGFja1wiO1xuaW1wb3J0IHsgU3ludGhlc2l6ZWRTdGFjayB9IGZyb20gXCIuLi9zeW50aC1zdGFja1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2luZ2xlU3RhY2soXG4gIHN0YWNrczogU3ludGhlc2l6ZWRTdGFja1tdLFxuICBzdGFja05hbWU/OiBzdHJpbmcsXG4gIHRhcmdldEFjdGlvbj86IHN0cmluZyxcbikge1xuICBpZiAoIXN0YWNrcykge1xuICAgIHRocm93IEVycm9ycy5JbnRlcm5hbChcbiAgICAgIFwiVHJ5aW5nIHRvIGFjY2VzcyBhIHN0YWNrIGJlZm9yZSBpdCBoYXMgYmVlbiBzeW50aGVzaXplZFwiLFxuICAgICk7XG4gIH1cblxuICBpZiAoc3RhY2tOYW1lKSB7XG4gICAgY29uc3Qgc3RhY2sgPSBzdGFja3MuZmluZCgocykgPT4gcy5uYW1lID09PSBzdGFja05hbWUpO1xuICAgIGlmICghc3RhY2spIHtcbiAgICAgIHRocm93IEVycm9ycy5Vc2FnZShcIkNvdWxkIG5vdCBmaW5kIHN0YWNrOiBcIiArIHN0YWNrTmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YWNrO1xuICB9XG5cbiAgaWYgKHN0YWNrcy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gc3RhY2tzWzBdO1xuICB9XG5cbiAgdGhyb3cgRXJyb3JzLlVzYWdlKFxuICAgIGBGb3VuZCBtb3JlIHRoYW4gb25lIHN0YWNrLCBwbGVhc2Ugc3BlY2lmeSBhIHRhcmdldCBzdGFjay4gUnVuIGNka3RuICR7XG4gICAgICB0YXJnZXRBY3Rpb24gfHwgXCI8dmVyYj5cIlxuICAgIH0gPHN0YWNrPiB3aXRoIG9uZSBvZiB0aGVzZSBzdGFja3M6ICR7c3RhY2tzXG4gICAgICAubWFwKChzKSA9PiBzLm5hbWUpXG4gICAgICAuam9pbihcIiwgXCIpfSBgLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TXVsdGlwbGVTdGFja3MoXG4gIHN0YWNrczogU3ludGhlc2l6ZWRTdGFja1tdLFxuICBwYXR0ZXJucz86IHN0cmluZ1tdLFxuICB0YXJnZXRBY3Rpb24/OiBzdHJpbmcsXG4pIHtcbiAgaWYgKCFwYXR0ZXJucyB8fCAhcGF0dGVybnMubGVuZ3RoKSB7XG4gICAgaWYgKHN0YWNrcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiBbc3RhY2tzWzBdXTtcbiAgICB9XG4gICAgdGhyb3cgRXJyb3JzLlVzYWdlKFxuICAgICAgYEZvdW5kIG1vcmUgdGhhbiBvbmUgc3RhY2ssIHBsZWFzZSBzcGVjaWZ5IGEgdGFyZ2V0IHN0YWNrLiBSdW4gY2RrdG4gJHtcbiAgICAgICAgdGFyZ2V0QWN0aW9uIHx8IFwiPHZlcmI+XCJcbiAgICAgIH0gPHN0YWNrPiB3aXRoIG9uZSBvZiB0aGVzZSBzdGFja3M6ICR7c3RhY2tzXG4gICAgICAgIC5tYXAoKHMpID0+IHMubmFtZSlcbiAgICAgICAgLmpvaW4oXCIsIFwiKX0gYCxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHBhdHRlcm5zLmZsYXRNYXAoKHBhdHRlcm4pID0+IHtcbiAgICBjb25zdCBtYXRjaGluZ1N0YWNrcyA9IHN0YWNrcy5maWx0ZXIoKHN0YWNrKSA9PlxuICAgICAgbWluaW1hdGNoKHN0YWNrLm5hbWUsIHBhdHRlcm4pLFxuICAgICk7XG5cbiAgICBpZiAobWF0Y2hpbmdTdGFja3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBFcnJvcnMuVXNhZ2UoYENvdWxkIG5vdCBmaW5kIHN0YWNrIGZvciBwYXR0ZXJuICcke3BhdHRlcm59J2ApO1xuICAgIH1cblxuICAgIHJldHVybiBtYXRjaGluZ1N0YWNrcztcbiAgfSk7XG59XG5cbi8vIFJldHVybnMgdGhlIGZpcnN0IHN0YWNrIHRoYXQgaGFzIG5vIHVubWV0IGRlcGVuZGVuY2llc1xuLy8gQW4gdW5tZXQgZGVwZW5kZW5jeSBpcyBhIGRlcGVuZGVuY3kgdGhhdCBoYXMgbm90IGJlZW4gZGVwbG95ZWQgeWV0XG4vLyBJZiB0aGVyZSBpcyBubyB1bmZpbmlzaGVkIHN0YWNrLCByZXR1cm5zIHVuZGVmaW5lZFxuLy8gSWYgdGhlcmUgaXMgbm8gc3RhY2sgcmVhZHkgdG8gYmUgd29ya2VkIG9uLCBpdCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHdpbGwgcmVzb2x2ZSBhcyBzb29uIGFzIHRoZXJlIGlzIGEgZm9sbG93LXVwIHN0YWNrIGF2YWlsYWJsZVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFN0YWNrV2l0aE5vVW5tZXREZXBlbmRlbmNpZXMoXG4gIHN0YWNrRXhlY3V0b3JzOiBDZGt0ZlN0YWNrW10sXG4pOiBQcm9taXNlPENka3RmU3RhY2sgfCB1bmRlZmluZWQ+IHtcbiAgbG9nZ2VyLmRlYnVnKFwiQ2hlY2tpbmcgZm9yIHN0YWNrcyB3aXRoIHVubWV0IGRlcGVuZGVuY2llc1wiKTtcbiAgbG9nZ2VyLmRlYnVnKFwic3RhY2sgZXhlY3V0b3JzOlwiLCBzdGFja0V4ZWN1dG9ycyk7XG4gIGNvbnN0IHBlbmRpbmdTdGFja3MgPSBzdGFja0V4ZWN1dG9ycy5maWx0ZXIoKGV4ZWN1dG9yKSA9PiBleGVjdXRvci5pc1BlbmRpbmcpO1xuICBsb2dnZXIuZGVidWcoXCJwZW5kaW5nIHN0YWNrczpcIiwgc3RhY2tFeGVjdXRvcnMpO1xuXG4gIGlmIChwZW5kaW5nU3RhY2tzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBjdXJyZW50bHlSZWFkeVN0YWNrID0gcGVuZGluZ1N0YWNrcy5maW5kKChleGVjdXRvcikgPT5cbiAgICBleGVjdXRvci5zdGFjay5kZXBlbmRlbmNpZXMuZXZlcnkoXG4gICAgICAoZGVwZW5kZW5jeSkgPT5cbiAgICAgICAgc3RhY2tFeGVjdXRvcnMuZmluZCgoZXhlY3V0b3IpID0+IGV4ZWN1dG9yLnN0YWNrLm5hbWUgPT09IGRlcGVuZGVuY3kpXG4gICAgICAgICAgPy5jdXJyZW50U3RhdGUgPT09IFwiZG9uZVwiLFxuICAgICksXG4gICk7XG5cbiAgaWYgKGN1cnJlbnRseVJlYWR5U3RhY2spIHtcbiAgICBsb2dnZXIuZGVidWcoXCJGb3VuZCBhIHN0YWNrIHdpdGggbm8gdW5tZXQgZGVwZW5kZW5jaWVzXCIpO1xuICAgIHJldHVybiBjdXJyZW50bHlSZWFkeVN0YWNrO1xuICB9XG5cbiAgY29uc3Qgc3RhY2tFeGVjdXRpb25Qcm9taXNlcyA9IHN0YWNrRXhlY3V0b3JzXG4gICAgLmZpbHRlcigoZXgpID0+IGV4LmN1cnJlbnRXb3JrUHJvbWlzZSlcbiAgICAubWFwKChleCkgPT4gZXguY3VycmVudFdvcmtQcm9taXNlKTtcblxuICBsb2dnZXIuZGVidWcoXG4gICAgYCR7c3RhY2tFeGVjdXRpb25Qcm9taXNlcy5sZW5ndGh9IHN0YWNrcyBhcmUgY3VycmVudGx5IGJ1c3ksIHdhaXRpbmcgZm9yIG9uZSB0byBmaW5pc2hgLFxuICApO1xuXG4gIGlmICghc3RhY2tFeGVjdXRpb25Qcm9taXNlcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgYXdhaXQgZW5zdXJlQWxsU2V0dGxlZEJlZm9yZVRocm93aW5nKFxuICAgIFByb21pc2UucmFjZShzdGFja0V4ZWN1dGlvblByb21pc2VzKSxcbiAgICBzdGFja0V4ZWN1dGlvblByb21pc2VzLFxuICApO1xuXG4gIHJldHVybiBhd2FpdCBnZXRTdGFja1dpdGhOb1VubWV0RGVwZW5kZW5jaWVzKHN0YWNrRXhlY3V0b3JzKTtcbn1cblxuZnVuY3Rpb24gZmluZEFsbERlcGVuZGFudFN0YWNrcyhcbiAgc3RhY2tFeGVjdXRvcnM6IENka3RmU3RhY2tbXSxcbiAgc3RhY2tOYW1lOiBzdHJpbmcsXG4pOiBDZGt0ZlN0YWNrW10ge1xuICByZXR1cm4gc3RhY2tFeGVjdXRvcnMuZmlsdGVyKChpbm5lckV4ZWN1dG9yKSA9PlxuICAgIGlubmVyRXhlY3V0b3Iuc3RhY2suZGVwZW5kZW5jaWVzLmluY2x1ZGVzKHN0YWNrTmFtZSksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQWxsTmVzdGVkRGVwZW5kYW50U3RhY2tzKFxuICBzdGFja0V4ZWN1dG9yczogQ2RrdGZTdGFja1tdLFxuICBzdGFja05hbWU6IHN0cmluZyxcbiAga25vd25EZXBlbmRhbnRTdGFja05hbWVzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKSxcbik6IENka3RmU3RhY2tbXSB7XG4gIGNvbnN0IGRlcGVuZGFudFN0YWNrcyA9IGZpbmRBbGxEZXBlbmRhbnRTdGFja3Moc3RhY2tFeGVjdXRvcnMsIHN0YWNrTmFtZSk7XG4gIGRlcGVuZGFudFN0YWNrcy5mb3JFYWNoKChzdGFjaykgPT4ge1xuICAgIGlmIChrbm93bkRlcGVuZGFudFN0YWNrTmFtZXMuaGFzKHN0YWNrLnN0YWNrLm5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAga25vd25EZXBlbmRhbnRTdGFja05hbWVzLmFkZChzdGFjay5zdGFjay5uYW1lKTtcbiAgICBmaW5kQWxsTmVzdGVkRGVwZW5kYW50U3RhY2tzKFxuICAgICAgc3RhY2tFeGVjdXRvcnMsXG4gICAgICBzdGFjay5zdGFjay5uYW1lLFxuICAgICAga25vd25EZXBlbmRhbnRTdGFja05hbWVzLFxuICAgICk7XG4gIH0pO1xuXG4gIHJldHVybiBzdGFja0V4ZWN1dG9ycy5maWx0ZXIoKGV4ZWN1dG9yKSA9PlxuICAgIGtub3duRGVwZW5kYW50U3RhY2tOYW1lcy5oYXMoZXhlY3V0b3Iuc3RhY2submFtZSksXG4gICk7XG59XG5cbi8vIFJldHVybnMgdGhlIGZpcnN0IHN0YWNrIHRoYXQgaGFzIG5vIGRlcGVuZGVudHMgdGhhdCBuZWVkIHRvIGJlIGRlc3Ryb3llZCBmaXJzdFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFN0YWNrV2l0aE5vVW5tZXREZXBlbmRhbnRzKFxuICBzdGFja0V4ZWN1dG9yczogQ2RrdGZTdGFja1tdLFxuKTogUHJvbWlzZTxDZGt0ZlN0YWNrIHwgdW5kZWZpbmVkPiB7XG4gIGxvZ2dlci5kZWJ1ZyhcIkNoZWNraW5nIGZvciBzdGFja3Mgd2l0aCB1bm1ldCBkZXBlbmRhbnRzXCIpO1xuICBsb2dnZXIuZGVidWcoXCJzdGFjayBleGVjdXRvcnM6XCIsIHN0YWNrRXhlY3V0b3JzKTtcbiAgY29uc3QgcGVuZGluZ1N0YWNrcyA9IHN0YWNrRXhlY3V0b3JzLmZpbHRlcigoZXhlY3V0b3IpID0+IGV4ZWN1dG9yLmlzUGVuZGluZyk7XG4gIGxvZ2dlci5kZWJ1ZyhcInBlbmRpbmcgc3RhY2tzOlwiLCBzdGFja0V4ZWN1dG9ycyk7XG5cbiAgaWYgKHBlbmRpbmdTdGFja3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRseVJlYWR5U3RhY2sgPSBwZW5kaW5nU3RhY2tzLmZpbmQoKGV4ZWN1dG9yKSA9PiB7XG4gICAgY29uc3QgZGVwZW5kYW50U3RhY2tzID0gZmluZEFsbERlcGVuZGFudFN0YWNrcyhcbiAgICAgIHN0YWNrRXhlY3V0b3JzLFxuICAgICAgZXhlY3V0b3Iuc3RhY2submFtZSxcbiAgICApO1xuICAgIHJldHVybiBkZXBlbmRhbnRTdGFja3MuZXZlcnkoKHN0YWNrKSA9PiBzdGFjay5jdXJyZW50U3RhdGUgPT09IFwiZG9uZVwiKTtcbiAgfSk7XG5cbiAgaWYgKGN1cnJlbnRseVJlYWR5U3RhY2spIHtcbiAgICBsb2dnZXIuZGVidWcoXCJGb3VuZCBhIHN0YWNrIHdpdGggbm8gdW5tZXQgZGVwZW5kYW50c1wiKTtcbiAgICByZXR1cm4gY3VycmVudGx5UmVhZHlTdGFjaztcbiAgfVxuICBjb25zdCBzdGFja0V4ZWN1dGlvblByb21pc2VzID0gc3RhY2tFeGVjdXRvcnNcbiAgICAuZmlsdGVyKChleCkgPT4gZXguY3VycmVudFdvcmtQcm9taXNlKVxuICAgIC5tYXAoKGV4KSA9PiBleC5jdXJyZW50V29ya1Byb21pc2UpO1xuXG4gIGxvZ2dlci5kZWJ1ZyhcbiAgICBgJHtzdGFja0V4ZWN1dGlvblByb21pc2VzLmxlbmd0aH0gc3RhY2tzIGFyZSBjdXJyZW50bHkgYnVzeSwgd2FpdGluZyBmb3Igb25lIHRvIGZpbmlzaGAsXG4gICk7XG4gIGlmICghc3RhY2tFeGVjdXRpb25Qcm9taXNlcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgYXdhaXQgUHJvbWlzZS5yYWNlKHN0YWNrRXhlY3V0aW9uUHJvbWlzZXMpO1xuICByZXR1cm4gYXdhaXQgZ2V0U3RhY2tXaXRoTm9Vbm1ldERlcGVuZGFudHMoc3RhY2tFeGVjdXRvcnMpO1xufVxuXG4vLyBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlcmUgaXMgYSBkZXBlbmRhbnQgc3RhY2sgdGhhdCBpcyBub3QgaW5jbHVkZWRcbmV4cG9ydCBmdW5jdGlvbiBjaGVja0lmQWxsRGVwZW5kYW50c0FyZUluY2x1ZGVkKFxuICBzdGFja3NUb1J1bjogU3ludGhlc2l6ZWRTdGFja1tdLFxuICBhbGxTdGFja3M6IFN5bnRoZXNpemVkU3RhY2tbXSxcbikge1xuICBjb25zdCBhbGxEZXBlbmRhbnRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHN0YWNrc1RvUnVuXG4gICAgLm1hcCgoc3RhY2spID0+XG4gICAgICBhbGxTdGFja3MuZmlsdGVyKChzKSA9PiBzLmRlcGVuZGVuY2llcy5pbmNsdWRlcyhzdGFjay5uYW1lKSksXG4gICAgKVxuICAgIC5mbGF0KClcbiAgICAuZm9yRWFjaCgoZGVwZW5kYW50KSA9PiBhbGxEZXBlbmRhbnRzLmFkZChkZXBlbmRhbnQubmFtZSkpO1xuXG4gIGNvbnN0IHN0YWNrTmFtZXMgPSBzdGFja3NUb1J1bi5tYXAoKHN0YWNrKSA9PiBzdGFjay5uYW1lKTtcbiAgY29uc3QgbWlzc2luZ0RlcGVuZGFudHMgPSBbLi4uYWxsRGVwZW5kYW50c10uZmlsdGVyKFxuICAgIChkZXBlbmRhbnQpID0+ICFzdGFja05hbWVzLmluY2x1ZGVzKGRlcGVuZGFudCksXG4gICk7XG5cbiAgaWYgKG1pc3NpbmdEZXBlbmRhbnRzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBFcnJvcnMuVXNhZ2UoXG4gICAgICBgVGhlIGZvbGxvd2luZyBkZXBlbmRhbnQgc3RhY2tzIGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIHN0YWNrcyB0byBydW46ICR7bWlzc2luZ0RlcGVuZGFudHMuam9pbihcbiAgICAgICAgXCIsIFwiLFxuICAgICAgKX0uIEVpdGhlciBhZGQgdGhlbSBvciBhZGQgdGhlIC0taWdub3JlLW1pc3Npbmctc3RhY2stZGVwZW5kZW5jaWVzIGZsYWcuYCxcbiAgICApO1xuICB9XG59XG5cbi8qKiBcbiAgVGhyb3dzIGFuIGVycm9yIGlmIHRoZXJlIGlzIGEgZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBpbmNsdWRlZFxuICBDeWNsZXMgYXJlIGRldGVjdGVkIG9uIGRlcGVuZGVuY3kgY3JlYXRpb24gYXQgc3ludGhlc2lzIHRpbWVcbiAgUnVubmluZyB0aGlzIHByZXZlbnRzIHVzIGZyb20gYmVpbmcgaW4gYSBzaXR1YXRpb24gd2hlcmUgd2UgXG4gIGhhdmUgdG8gd2FpdCBmb3IgYSBzdGFjayB0byBiZSBkZXBsb3llZCB0aGF0IGlzIG5vdCBpbmNsdWRlZCB0byBiZSBydW5cbiovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJZkFsbERlcGVuZGVuY2llc0FyZUluY2x1ZGVkKFxuICBzdGFja3NUb1J1bjogU3ludGhlc2l6ZWRTdGFja1tdLFxuKSB7XG4gIGNvbnN0IGFsbERlcGVuZGVuY2llcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBzdGFja3NUb1J1blxuICAgIC5tYXAoKHN0YWNrKSA9PiBzdGFjay5kZXBlbmRlbmNpZXMpXG4gICAgLmZsYXQoKVxuICAgIC5mb3JFYWNoKChkZXBlbmRlbmN5KSA9PiBhbGxEZXBlbmRlbmNpZXMuYWRkKGRlcGVuZGVuY3kpKTtcblxuICBjb25zdCBzdGFja05hbWVzID0gc3RhY2tzVG9SdW4ubWFwKChzdGFjaykgPT4gc3RhY2submFtZSk7XG4gIGNvbnN0IG1pc3NpbmdEZXBlbmRlbmNpZXMgPSBbLi4uYWxsRGVwZW5kZW5jaWVzXS5maWx0ZXIoXG4gICAgKGRlcGVuZGVuY3kpID0+ICFzdGFja05hbWVzLmluY2x1ZGVzKGRlcGVuZGVuY3kpLFxuICApO1xuXG4gIGlmIChtaXNzaW5nRGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBFcnJvcnMuVXNhZ2UoXG4gICAgICBgVGhlIGZvbGxvd2luZyBkZXBlbmRlbmNpZXMgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgc3RhY2tzIHRvIHJ1bjogJHttaXNzaW5nRGVwZW5kZW5jaWVzLmpvaW4oXG4gICAgICAgIFwiLCBcIixcbiAgICAgICl9LiBFaXRoZXIgYWRkIHRoZW0gb3IgYWRkIHRoZSAtLWlnbm9yZS1taXNzaW5nLXN0YWNrLWRlcGVuZGVuY2llcyBmbGFnLmAsXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC1E,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,GAChB,MAAM,oBAAoB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["init.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;CACjC;AACD,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,aAAa,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,YAAY,QAAgD,CAAC;AAK1E,eAAO,MAAM,SAAS,EAAE,MAAM,EAAO,CAAC;AAKtC,wBAAsB,IAAI,CAAC,EACzB,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,SAAS,EACT,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,mBAAmB,EACnB,MAAM,GACP,EAAE,QAAQ,oBA4BV;AAED,MAAM,WAAW,IAAI;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AACD,wBAAsB,aAAa,CACjC,OAAO,GAAE,MAAoB,EAC7B,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAqEf"}
package/src/lib/init.js DELETED
@@ -1,131 +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.determineDeps = exports.init = exports.templates = exports.templatesDir = void 0;
27
- // Copyright (c) HashiCorp, Inc
28
- // SPDX-License-Identifier: MPL-2.0
29
- const path = __importStar(require("path"));
30
- const fs = __importStar(require("fs-extra"));
31
- const pkgUp = __importStar(require("pkg-up"));
32
- const commons_1 = require("@cdktn/commons");
33
- const sscaff_1 = require("sscaff");
34
- const features_1 = require("cdktn/lib/features");
35
- const cdktf_config_1 = require("./cdktf-config");
36
- const provider_add_1 = require("./provider-add");
37
- const readPackageJson = () => {
38
- const pkgPath = pkgUp.sync({ cwd: __dirname });
39
- if (!pkgPath) {
40
- throw new Error("unable to find package.json");
41
- }
42
- return JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
43
- };
44
- const pkg = readPackageJson();
45
- const constructsVersion = pkg.dependencies.constructs;
46
- exports.templatesDir = path.join(__dirname, "..", "..", "templates");
47
- const availableTemplates = fs
48
- .readdirSync(exports.templatesDir)
49
- .filter((x) => !x.startsWith("."));
50
- exports.templates = [];
51
- for (const template of availableTemplates) {
52
- exports.templates.push(template);
53
- }
54
- async function init({ cdktfVersion, destination, dist, projectId, projectInfo, templatePath, sendCrashReports, providers, providersForceLocal, silent, }) {
55
- const deps = await determineDeps(cdktfVersion, dist);
56
- const futureFlags = Object.entries(features_1.FUTURE_FLAGS)
57
- .map(([key, value]) => ` "${key}": "${value}"`)
58
- .join(`,\n`);
59
- await (0, sscaff_1.sscaff)(templatePath, destination, {
60
- ...deps,
61
- ...projectInfo,
62
- futureFlags,
63
- projectId,
64
- sendCrashReports,
65
- silent,
66
- });
67
- const cdktfConfig = cdktf_config_1.CdktfConfig.read(destination);
68
- let needsGet = false;
69
- if (providers && providers.length) {
70
- needsGet = await (0, provider_add_1.providerAdd)({
71
- providers: providers,
72
- language: cdktfConfig.language,
73
- projectDirectory: destination,
74
- forceLocal: providersForceLocal,
75
- dist,
76
- });
77
- }
78
- return needsGet;
79
- }
80
- exports.init = init;
81
- async function determineDeps(version = pkg.version, dist) {
82
- // TS: cdktf-0.10.1-dev.2160938258
83
- // Py: cdktf-0.10.1.dev1658821493.whl
84
- const pythonVersion = version
85
- .replace(/-pre\./g, ".dev")
86
- .replace(/-dev\./g, ".dev");
87
- if (dist) {
88
- // TODO: What about existing cdktf TS/PY dependencies?
89
- const ret = {
90
- npm_cdktf: path.resolve(dist, "js", `cdktn@${version}.jsii.tgz`),
91
- npm_cdktf_cli: path.resolve(dist, "js", `cdktn-cli-${version}.tgz`),
92
- pypi_cdktf: path.resolve(dist, "python", `cdktn-${pythonVersion}-py3-none-any.whl`),
93
- mvn_cdktf: path.resolve(dist, "java", `io/cdktn/cdktn/${version}/cdktn-${version}.jar`),
94
- nuget_cdktf: path.resolve(dist, "dotnet", `Io.Cdktn.${version}.nupkg`),
95
- go_cdktf: path.resolve(dist, "go", `cdktn`),
96
- };
97
- for (const file of Object.values(ret)) {
98
- if (!(await fs.pathExists(file))) {
99
- throw commons_1.Errors.Internal(`unable to find ${file} under the "dist" directory (${dist})`, new Error(), { version });
100
- }
101
- }
102
- const versions = {
103
- cdktf_version: version,
104
- constructs_version: constructsVersion,
105
- };
106
- return {
107
- ...ret,
108
- ...versions,
109
- };
110
- }
111
- if (version === "0.0.0") {
112
- throw commons_1.Errors.Usage(`cannot use version 0.0.0, use --cdktf-version, --dist or CDKTF_DIST to install from a "dist" directory`);
113
- }
114
- // determine if we want a specific pinned version or a version range we take
115
- // a pinned version if version includes a hyphen which means it is a
116
- // pre-release (e.g. "0.12.0-pre.e6834d3"). otherwise, we require a caret
117
- // version.
118
- const ver = version.includes("-") ? version : `^${version}`;
119
- return {
120
- cdktf_version: version,
121
- constructs_version: constructsVersion,
122
- npm_cdktf: `cdktn@${ver}`,
123
- npm_cdktf_cli: `cdktn-cli@${ver}`,
124
- pypi_cdktf: `cdktn~=${pythonVersion}`,
125
- mvn_cdktf: version,
126
- nuget_cdktf: version,
127
- go_cdktf: `v${version}`,
128
- };
129
- }
130
- exports.determineDeps = determineDeps;
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImluaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDJDQUE2QjtBQUM3Qiw2Q0FBK0I7QUFDL0IsOENBQWdDO0FBQ2hDLDRDQUF3QztBQUV4QyxtQ0FBZ0M7QUFDaEMsaURBQWtEO0FBQ2xELGlEQUE2QztBQUM3QyxpREFBNkM7QUFFN0MsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFO0lBQzNCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMvQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELENBQUMsQ0FBQztBQUNGLE1BQU0sR0FBRyxHQUFHLGVBQWUsRUFBRSxDQUFDO0FBQzlCLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7QUEyQnpDLFFBQUEsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFMUUsTUFBTSxrQkFBa0IsR0FBRyxFQUFFO0tBQzFCLFdBQVcsQ0FBQyxvQkFBWSxDQUFDO0tBQ3pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDeEIsUUFBQSxTQUFTLEdBQWEsRUFBRSxDQUFDO0FBQ3RDLEtBQUssTUFBTSxRQUFR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Q0FBQyxRQUFRLENBQ25CLGtCQUFrQixJQUFJLGdDQUFnQyxJQUFJLEdBQUcsRUFDN0QsSUFBSSxLQUFLLEVBQUUsRUFDWCxFQUFFLE9BQU8sRUFBRSxDQUNaLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHO1lBQ2YsYUFBYSxFQUFFLE9BQU87WUFDdEIsa0JBQWtCLEVBQUUsaUJBQWlCO1NBQ3RDLENBQUM7UUFFRixPQUFPO1lBQ0wsR0FBRyxHQUFHO1lBQ04sR0FBRyxRQUFRO1NBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUN4QixNQUFNLGdCQUFNLENBQUMsS0FBSyxDQUNoQix3R0FBd0csQ0FDekcsQ0FBQztJQUNKLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsb0VBQW9FO0lBQ3BFLHlFQUF5RTtJQUN6RSxXQUFXO0lBQ1gsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTVELE9BQU87UUFDTCxhQUFhLEVBQUUsT0FBTztRQUN0QixrQkFBa0IsRUFBRSxpQkFBaUI7UUFDckMsU0FBUyxFQUFFLFNBQVMsR0FBRyxFQUFFO1FBQ3pCLGFBQWEsRUFBRSxhQUFhLEdBQUcsRUFBRTtRQUNqQyxVQUFVLEVBQUUsVUFBVSxhQUFhLEVBQUU7UUFDckMsU0FBUyxFQUFFLE9BQU87UUFDbEIsV0FBVyxFQUFFLE9BQU87UUFDcEIsUUFBUSxFQUFFLElBQUksT0FBTyxFQUFFO0tBQ3hCLENBQUM7QUFDSixDQUFDO0FBeEVELHNDQXdFQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIHBrZ1VwIGZyb20gXCJwa2ctdXBcIjtcbmltcG9ydCB7IEVycm9ycyB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuXG5pbXBvcnQgeyBzc2NhZmYgfSBmcm9tIFwic3NjYWZmXCI7XG5pbXBvcnQgeyBGVVRVUkVfRkxBR1MgfSBmcm9tIFwiY2RrdG4vbGliL2ZlYXR1cmVzXCI7XG5pbXBvcnQgeyBDZGt0ZkNvbmZpZyB9IGZyb20gXCIuL2Nka3RmLWNvbmZpZ1wiO1xuaW1wb3J0IHsgcHJvdmlkZXJBZGQgfSBmcm9tIFwiLi9wcm92aWRlci1hZGRcIjtcblxuY29uc3QgcmVhZFBhY2thZ2VKc29uID0gKCkgPT4ge1xuICBjb25zdCBwa2dQYXRoID0gcGtnVXAuc3luYyh7IGN3ZDogX19kaXJuYW1lIH0pO1xuICBpZiAoIXBrZ1BhdGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1bmFibGUgdG8gZmluZCBwYWNrYWdlLmpzb25cIik7XG4gIH1cblxuICByZXR1cm4gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGtnUGF0aCwgXCJ1dGYtOFwiKSk7XG59O1xuY29uc3QgcGtnID0gcmVhZFBhY2thZ2VKc29uKCk7XG5jb25zdCBjb25zdHJ1Y3RzVmVyc2lvbiA9IHBrZy5kZXBlbmRlbmNpZXMuY29uc3RydWN0cztcblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbFByb2plY3Qge1xuICBEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3RlUHJvamVjdCBleHRlbmRzIExvY2FsUHJvamVjdCB7XG4gIE9yZ2FuaXphdGlvbk5hbWU6IHN0cmluZztcbiAgV29ya3NwYWNlTmFtZTogc3RyaW5nO1xuICBUZXJyYWZvcm1SZW1vdGVIb3N0bmFtZTogc3RyaW5nO1xufVxuZXhwb3J0IHR5cGUgUHJvamVjdCA9IExvY2FsUHJvamVjdCB8IFJlbW90ZVByb2plY3Q7XG5cbmV4cG9ydCB0eXBlIEluaXRBcmdzID0ge1xuICBjZGt0ZlZlcnNpb24/OiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uOiBzdHJpbmc7XG4gIGRpc3Q/OiBzdHJpbmc7XG4gIHByb3ZpZGVycz86IHN0cmluZ1tdO1xuICBwcm92aWRlcnNGb3JjZUxvY2FsPzogYm9vbGVhbjtcbiAgcHJvamVjdElkOiBzdHJpbmc7XG4gIHByb2plY3RJbmZvOiBQcm9qZWN0O1xuICB0ZW1wbGF0ZVBhdGg6IHN0cmluZztcbiAgc2VuZENyYXNoUmVwb3J0czogYm9vbGVhbjtcbiAgc2lsZW50PzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCB0ZW1wbGF0ZXNEaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uXCIsIFwiLi5cIiwgXCJ0ZW1wbGF0ZXNcIik7XG5cbmNvbnN0IGF2YWlsYWJsZVRlbXBsYXRlcyA9IGZzXG4gIC5yZWFkZGlyU3luYyh0ZW1wbGF0ZXNEaXIpXG4gIC5maWx0ZXIoKHgpID0+ICF4LnN0YXJ0c1dpdGgoXCIuXCIpKTtcbmV4cG9ydCBjb25zdCB0ZW1wbGF0ZXM6IHN0cmluZ1tdID0gW107XG5mb3IgKGNvbnN0IHRlbXBsYXRlIG9mIGF2YWlsYWJsZVRlbXBsYXRlcykge1xuICB0ZW1wbGF0ZXMucHVzaCh0ZW1wbGF0ZSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbml0KHtcbiAgY2RrdGZWZXJzaW9uLFxuICBkZXN0aW5hdGlvbixcbiAgZGlzdCxcbiAgcHJvamVjdElkLFxuICBwcm9qZWN0SW5mbyxcbiAgdGVtcGxhdGVQYXRoLFxuICBzZW5kQ3Jhc2hSZXBvcnRzLFxuICBwcm92aWRlcnMsXG4gIHByb3ZpZGVyc0ZvcmNlTG9jYWwsXG4gIHNpbGVudCxcbn06IEluaXRBcmdzKSB7XG4gIGNvbnN0IGRlcHM6IGFueSA9IGF3YWl0IGRldGVybWluZURlcHMoY2RrdGZWZXJzaW9uLCBkaXN0KTtcblxuICBjb25zdCBmdXR1cmVGbGFncyA9IE9iamVjdC5lbnRyaWVzKEZVVFVSRV9GTEFHUylcbiAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAgICAgXCIke2tleX1cIjogXCIke3ZhbHVlfVwiYClcbiAgICAuam9pbihgLFxcbmApO1xuXG4gIGF3YWl0IHNzY2FmZih0ZW1wbGF0ZVBhdGgsIGRlc3RpbmF0aW9uLCB7XG4gICAgLi4uZGVwcyxcbiAgICAuLi5wcm9qZWN0SW5mbyxcbiAgICBmdXR1cmVGbGFncyxcbiAgICBwcm9qZWN0SWQsXG4gICAgc2VuZENyYXNoUmVwb3J0cyxcbiAgICBzaWxlbnQsXG4gIH0pO1xuICBjb25zdCBjZGt0ZkNvbmZpZyA9IENka3RmQ29uZmlnLnJlYWQoZGVzdGluYXRpb24pO1xuXG4gIGxldCBuZWVkc0dldCA9IGZhbHNlO1xuICBpZiAocHJvdmlkZXJzICYmIHByb3ZpZGVycy5sZW5ndGgpIHtcbiAgICBuZWVkc0dldCA9IGF3YWl0IHByb3ZpZGVyQWRkKHtcbiAgICAgIHByb3ZpZGVyczogcHJvdmlkZXJzLFxuICAgICAgbGFuZ3VhZ2U6IGNka3RmQ29uZmlnLmxhbmd1YWdlLFxuICAgICAgcHJvamVjdERpcmVjdG9yeTogZGVzdGluYXRpb24sXG4gICAgICBmb3JjZUxvY2FsOiBwcm92aWRlcnNGb3JjZUxvY2FsLFxuICAgICAgZGlzdCxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gbmVlZHNHZXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwcyB7XG4gIG5wbV9jZGt0Zjogc3RyaW5nO1xuICBucG1fY2RrdGZfY2xpOiBzdHJpbmc7XG4gIHB5cGlfY2RrdGY6IHN0cmluZztcbiAgbXZuX2Nka3RmOiBzdHJpbmc7XG4gIG51Z2V0X2Nka3RmOiBzdHJpbmc7XG4gIGdvX2Nka3RmOiBzdHJpbmc7XG4gIGNka3RmX3ZlcnNpb246IHN0cmluZztcbiAgY29uc3RydWN0c192ZXJzaW9uOiBzdHJpbmc7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGV0ZXJtaW5lRGVwcyhcbiAgdmVyc2lvbjogc3RyaW5nID0gcGtnLnZlcnNpb24sXG4gIGRpc3Q/OiBzdHJpbmcsXG4pOiBQcm9taXNlPERlcHM+IHtcbiAgLy8gVFM6IGNka3RmLTAuMTAuMS1kZXYuMjE2MDkzODI1OFxuICAvLyBQeTogY2RrdGYtMC4xMC4xLmRldjE2NTg4MjE0OTMud2hsXG4gIGNvbnN0IHB5dGhvblZlcnNpb24gPSB2ZXJzaW9uXG4gICAgLnJlcGxhY2UoLy1wcmVcXC4vZywgXCIuZGV2XCIpXG4gICAgLnJlcGxhY2UoLy1kZXZcXC4vZywgXCIuZGV2XCIpO1xuXG4gIGlmIChkaXN0KSB7XG4gICAgLy8gVE9ETzogV2hhdCBhYm91dCBleGlzdGluZyBjZGt0ZiBUUy9QWSBkZXBlbmRlbmNpZXM/XG4gICAgY29uc3QgcmV0ID0ge1xuICAgICAgbnBtX2Nka3RmOiBwYXRoLnJlc29sdmUoZGlzdCwgXCJqc1wiLCBgY2RrdG5AJHt2ZXJzaW9ufS5qc2lpLnRnemApLFxuICAgICAgbnBtX2Nka3RmX2NsaTogcGF0aC5yZXNvbHZlKGRpc3QsIFwianNcIiwgYGNka3RuLWNsaS0ke3ZlcnNpb259LnRnemApLFxuICAgICAgcHlwaV9jZGt0ZjogcGF0aC5yZXNvbHZlKFxuICAgICAgICBkaXN0LFxuICAgICAgICBcInB5dGhvblwiLFxuICAgICAgICBgY2RrdG4tJHtweXRob25WZXJzaW9ufS1weTMtbm9uZS1hbnkud2hsYCxcbiAgICAgICksXG4gICAgICBtdm5fY2RrdGY6IHBhdGgucmVzb2x2ZShcbiAgICAgICAgZGlzdCxcbiAgICAgICAgXCJqYXZhXCIsXG4gICAgICAgIGBpby9jZGt0bi9jZGt0bi8ke3ZlcnNpb259L2Nka3RuLSR7dmVyc2lvbn0uamFyYCxcbiAgICAgICksXG4gICAgICBudWdldF9jZGt0ZjogcGF0aC5yZXNvbHZlKGRpc3QsIFwiZG90bmV0XCIsIGBJby5DZGt0bi4ke3ZlcnNpb259Lm51cGtnYCksXG4gICAgICBnb19jZGt0ZjogcGF0aC5yZXNvbHZlKGRpc3QsIFwiZ29cIiwgYGNka3RuYCksXG4gICAgfTtcblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBPYmplY3QudmFsdWVzKHJldCkpIHtcbiAgICAgIGlmICghKGF3YWl0IGZzLnBhdGhFeGlzdHMoZmlsZSkpKSB7XG4gICAgICAgIHRocm93IEVycm9ycy5JbnRlcm5hbChcbiAgICAgICAgICBgdW5hYmxlIHRvIGZpbmQgJHtmaWxlfSB1bmRlciB0aGUgXCJkaXN0XCIgZGlyZWN0b3J5ICgke2Rpc3R9KWAsXG4gICAgICAgICAgbmV3IEVycm9yKCksXG4gICAgICAgICAgeyB2ZXJzaW9uIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdmVyc2lvbnMgPSB7XG4gICAgICBjZGt0Zl92ZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgY29uc3RydWN0c192ZXJzaW9uOiBjb25zdHJ1Y3RzVmVyc2lvbixcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJldCxcbiAgICAgIC4uLnZlcnNpb25zLFxuICAgIH07XG4gIH1cblxuICBpZiAodmVyc2lvbiA9PT0gXCIwLjAuMFwiKSB7XG4gICAgdGhyb3cgRXJyb3JzLlVzYWdlKFxuICAgICAgYGNhbm5vdCB1c2UgdmVyc2lvbiAwLjAuMCwgdXNlIC0tY2RrdGYtdmVyc2lvbiwgLS1kaXN0IG9yIENES1RGX0RJU1QgdG8gaW5zdGFsbCBmcm9tIGEgXCJkaXN0XCIgZGlyZWN0b3J5YCxcbiAgICApO1xuICB9XG5cbiAgLy8gZGV0ZXJtaW5lIGlmIHdlIHdhbnQgYSBzcGVjaWZpYyBwaW5uZWQgdmVyc2lvbiBvciBhIHZlcnNpb24gcmFuZ2Ugd2UgdGFrZVxuICAvLyBhIHBpbm5lZCB2ZXJzaW9uIGlmIHZlcnNpb24gaW5jbHVkZXMgYSBoeXBoZW4gd2hpY2ggbWVhbnMgaXQgaXMgYVxuICAvLyBwcmUtcmVsZWFzZSAoZS5nLiBcIjAuMTIuMC1wcmUuZTY4MzRkM1wiKS4gb3RoZXJ3aXNlLCB3ZSByZXF1aXJlIGEgY2FyZXRcbiAgLy8gdmVyc2lvbi5cbiAgY29uc3QgdmVyID0gdmVyc2lvbi5pbmNsdWRlcyhcIi1cIikgPyB2ZXJzaW9uIDogYF4ke3ZlcnNpb259YDtcblxuICByZXR1cm4ge1xuICAgIGNka3RmX3ZlcnNpb246IHZlcnNpb24sXG4gICAgY29uc3RydWN0c192ZXJzaW9uOiBjb25zdHJ1Y3RzVmVyc2lvbixcbiAgICBucG1fY2RrdGY6IGBjZGt0bkAke3Zlcn1gLFxuICAgIG5wbV9jZGt0Zl9jbGk6IGBjZGt0bi1jbGlAJHt2ZXJ9YCxcbiAgICBweXBpX2Nka3RmOiBgY2RrdG5+PSR7cHl0aG9uVmVyc2lvbn1gLFxuICAgIG12bl9jZGt0ZjogdmVyc2lvbixcbiAgICBudWdldF9jZGt0ZjogdmVyc2lvbixcbiAgICBnb19jZGt0ZjogYHYke3ZlcnNpb259YCxcbiAgfTtcbn1cbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-provider-constraints.d.ts","sourceRoot":"","sources":["local-provider-constraints.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,QAAA,MAAM,eAAe;;;;;;;;;EAGnB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAI1D;;;GAGG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,WAAW,CAA0B;IAE7C,OAAO,KAAK,YAAY,GAGvB;YAEa,wBAAwB;IA+BzB,0BAA0B;;;;IAU1B,qBAAqB,CAChC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAe1B"}
@@ -1,95 +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.LocalProviderConstraints = void 0;
30
- // Copyright (c) HashiCorp, Inc
31
- // SPDX-License-Identifier: MPL-2.0
32
- const fs_extra_1 = __importDefault(require("fs-extra"));
33
- const path_1 = __importDefault(require("path"));
34
- const commons_1 = require("@cdktn/commons");
35
- const cdktf_config_1 = require("./cdktf-config");
36
- const z = __importStar(require("zod"));
37
- const constraintsType = z.object({
38
- cdktf: z.string(),
39
- providers: z.record(z.string()),
40
- });
41
- // TODO: move this to @cdktn/commons
42
- // tracked here https://github.com/hashicorp/terraform-cdk/issues/1814
43
- /**
44
- * Class to help with reading `constraints.json` file
45
- * published by `provider get` or `provider add` commands
46
- */
47
- class LocalProviderConstraints {
48
- get jsonFilePath() {
49
- const config = cdktf_config_1.CdktfConfig.read();
50
- return path_1.default.resolve(config.codeMakerOutput, "constraints.json");
51
- }
52
- async readLocalConstraintsJson() {
53
- let constraintsJson;
54
- try {
55
- constraintsJson = await fs_extra_1.default.readFile(this.jsonFilePath, "utf8");
56
- }
57
- catch (e) {
58
- // If we cannot read the constraints.json file, it may not exist
59
- commons_1.logger.debug("constraints.json file reading error: ", e);
60
- this.constraints = undefined;
61
- return;
62
- }
63
- let providerConstraints;
64
- try {
65
- providerConstraints = constraintsType.parse(JSON.parse(constraintsJson));
66
- providerConstraints.providers = Object.fromEntries(Object.entries(providerConstraints.providers).map(([name, constraint]) => {
67
- return [name.toLowerCase(), constraint];
68
- }));
69
- }
70
- catch (e) {
71
- throw commons_1.Errors.External("constraints.json file is malformed. The root must be a JSON object.", e);
72
- }
73
- this.constraints = providerConstraints;
74
- }
75
- async constraintsForAllProviders() {
76
- if (this.constraints) {
77
- return this.constraints;
78
- }
79
- await this.readLocalConstraintsJson();
80
- return this.constraints;
81
- }
82
- async constraintForProvider(providerName) {
83
- const constraints = await this.constraintsForAllProviders();
84
- if (!constraints) {
85
- return null;
86
- }
87
- const providerConstraint = constraints.providers[providerName.toLowerCase()];
88
- if (!providerName) {
89
- return null;
90
- }
91
- return providerConstraint;
92
- }
93
- }
94
- exports.LocalProviderConstraints = LocalProviderConstraints;
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtcHJvdmlkZXItY29uc3RyYWludHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsb2NhbC1wcm92aWRlci1jb25zdHJhaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsd0RBQTBCO0FBQzFCLGdEQUF3QjtBQUN4Qiw0Q0FBZ0Q7QUFDaEQsaURBQTZDO0FBRTdDLHVDQUF5QjtBQUV6QixNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9CLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2pCLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztDQUNoQyxDQUFDLENBQUM7QUFJSCxvQ0FBb0M7QUFDcEMsc0VBQXNFO0FBQ3RFOzs7R0FHRztBQUNILE1BQWEsd0JBQXdCO0lBR25DLElBQVksWUFBWTtRQUN0QixNQUFNLE1BQU0sR0FBRywwQkFBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xDLE9BQU8sY0FBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLEtBQUssQ0FBQyx3QkFBd0I7UUFDcEMsSUFBSSxlQUFlLENBQUM7UUFDcEIsSUFBSSxDQUFDO1lBQ0gsZUFBZSxHQUFHLE1BQU0sa0JBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLGdFQUFnRTtZQUNoRSxnQkFBTSxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztZQUM3QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksbUJBQW1CLENBQUM7UUFDeEIsSUFBSSxDQUFDO1lBQ0gsbUJBQW1CLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDekUsbUJBQW1CLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQ2hELE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUMvQyxDQUFDLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUNGLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sZ0JBQU0sQ0FBQyxRQUFRLENBQ25CLHFFQUFxRSxFQUNyRSxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLG1CQUFtQixDQUFDO0lBQ3pDLENBQUM7SUFFTSxLQUFLLENBQUMsMEJBQTBCO1FBQ3JDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO1FBRUQsTUFBTSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUV0QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxxQkFBcUIsQ0FDaEMsWUFBb0I7UUFFcEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUU1RCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxrQkFBa0IsR0FDdEIsV0FBVyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFsRUQsNERBa0VDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBFcnJvcnMsIGxvZ2dlciB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHsgQ2RrdGZDb25maWcgfSBmcm9tIFwiLi9jZGt0Zi1jb25maWdcIjtcblxuaW1wb3J0ICogYXMgeiBmcm9tIFwiem9kXCI7XG5cbmNvbnN0IGNvbnN0cmFpbnRzVHlwZSA9IHoub2JqZWN0KHtcbiAgY2RrdGY6IHouc3RyaW5nKCksXG4gIHByb3ZpZGVyczogei5yZWNvcmQoei5zdHJpbmcoKSksXG59KTtcblxuZXhwb3J0IHR5cGUgQ29uc3RyYWludHMgPSB6LmluZmVyPHR5cGVvZiBjb25zdHJhaW50c1R5cGU+O1xuXG4vLyBUT0RPOiBtb3ZlIHRoaXMgdG8gQGNka3RuL2NvbW1vbnNcbi8vIHRyYWNrZWQgaGVyZSBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvaXNzdWVzLzE4MTRcbi8qKlxuICogQ2xhc3MgdG8gaGVscCB3aXRoIHJlYWRpbmcgYGNvbnN0cmFpbnRzLmpzb25gIGZpbGVcbiAqIHB1Ymxpc2hlZCBieSBgcHJvdmlkZXIgZ2V0YCBvciBgcHJvdmlkZXIgYWRkYCBjb21tYW5kc1xuICovXG5leHBvcnQgY2xhc3MgTG9jYWxQcm92aWRlckNvbnN0cmFpbnRzIHtcbiAgcHJpdmF0ZSBjb25zdHJhaW50czogQ29uc3RyYWludHMgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBnZXQganNvbkZpbGVQYXRoKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29uZmlnID0gQ2RrdGZDb25maWcucmVhZCgpO1xuICAgIHJldHVybiBwYXRoLnJlc29sdmUoY29uZmlnLmNvZGVNYWtlck91dHB1dCwgXCJjb25zdHJhaW50cy5qc29uXCIpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWFkTG9jYWxDb25zdHJhaW50c0pzb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgbGV0IGNvbnN0cmFpbnRzSnNvbjtcbiAgICB0cnkge1xuICAgICAgY29uc3RyYWludHNKc29uID0gYXdhaXQgZnMucmVhZEZpbGUodGhpcy5qc29uRmlsZVBhdGgsIFwidXRmOFwiKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBJZiB3ZSBjYW5ub3QgcmVhZCB0aGUgY29uc3RyYWludHMuanNvbiBmaWxlLCBpdCBtYXkgbm90IGV4aXN0XG4gICAgICBsb2dnZXIuZGVidWcoXCJjb25zdHJhaW50cy5qc29uIGZpbGUgcmVhZGluZyBlcnJvcjogXCIsIGUpO1xuICAgICAgdGhpcy5jb25zdHJhaW50cyA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgcHJvdmlkZXJDb25zdHJhaW50cztcbiAgICB0cnkge1xuICAgICAgcHJvdmlkZXJDb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzVHlwZS5wYXJzZShKU09OLnBhcnNlKGNvbnN0cmFpbnRzSnNvbikpO1xuICAgICAgcHJvdmlkZXJDb25zdHJhaW50cy5wcm92aWRlcnMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHByb3ZpZGVyQ29uc3RyYWludHMucHJvdmlkZXJzKS5tYXAoXG4gICAgICAgICAgKFtuYW1lLCBjb25zdHJhaW50XSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIFtuYW1lLnRvTG93ZXJDYXNlKCksIGNvbnN0cmFpbnRdO1xuICAgICAgICAgIH0sXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgRXJyb3JzLkV4dGVybmFsKFxuICAgICAgICBcImNvbnN0cmFpbnRzLmpzb24gZmlsZSBpcyBtYWxmb3JtZWQuIFRoZSByb290IG11c3QgYmUgYSBKU09OIG9iamVjdC5cIixcbiAgICAgICAgZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5jb25zdHJhaW50cyA9IHByb3ZpZGVyQ29uc3RyYWludHM7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY29uc3RyYWludHNGb3JBbGxQcm92aWRlcnMoKSB7XG4gICAgaWYgKHRoaXMuY29uc3RyYWludHMpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnN0cmFpbnRzO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMucmVhZExvY2FsQ29uc3RyYWludHNKc29uKCk7XG5cbiAgICByZXR1cm4gdGhpcy5jb25zdHJhaW50cztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjb25zdHJhaW50Rm9yUHJvdmlkZXIoXG4gICAgcHJvdmlkZXJOYW1lOiBzdHJpbmcsXG4gICk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gYXdhaXQgdGhpcy5jb25zdHJhaW50c0ZvckFsbFByb3ZpZGVycygpO1xuXG4gICAgaWYgKCFjb25zdHJhaW50cykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvdmlkZXJDb25zdHJhaW50ID1cbiAgICAgIGNvbnN0cmFpbnRzLnByb3ZpZGVyc1twcm92aWRlck5hbWUudG9Mb3dlckNhc2UoKV07XG4gICAgaWYgKCFwcm92aWRlck5hbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBwcm92aWRlckNvbnN0cmFpbnQ7XG4gIH1cbn1cbiJdfQ==