@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,10 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) HashiCorp, Inc.
4
+ * SPDX-License-Identifier: MPL-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.missingVariable = void 0;
8
+ const missingVariable = (variableName) => `Missing variable: '${variableName}'. You can provide it using the 'TF_VAR_${variableName}' environment variable.`;
9
+ exports.missingVariable = missingVariable;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBRUksTUFBTSxlQUFlLEdBQUcsQ0FBQyxZQUFvQixFQUFFLEVBQUUsQ0FDdEQsc0JBQXNCLFlBQVksMkNBQTJDLFlBQVkseUJBQXlCLENBQUM7QUFEeEcsUUFBQSxlQUFlLG1CQUN5RiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuZXhwb3J0IGNvbnN0IG1pc3NpbmdWYXJpYWJsZSA9ICh2YXJpYWJsZU5hbWU6IHN0cmluZykgPT5cbiAgYE1pc3NpbmcgdmFyaWFibGU6ICcke3ZhcmlhYmxlTmFtZX0nLiBZb3UgY2FuIHByb3ZpZGUgaXQgdXNpbmcgdGhlICdURl9WQVJfJHt2YXJpYWJsZU5hbWV9JyBlbnZpcm9ubWVudCB2YXJpYWJsZS5gO1xuIl19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-logs.d.ts","sourceRoot":"","sources":["../../src/lib/execution-logs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AA2BjD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,gBAAgB,GACtB,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CA6CzC"}
@@ -0,0 +1,47 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLWxvZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2V4ZWN1dGlvbi1sb2dzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsNENBQXdDO0FBb0J4Qyw4Q0FBOEM7QUFDOUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQzlDLEdBQUcsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFL0MsMkRBQTJEO0FBQzNELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsWUFBb0IsRUFBRSxFQUFFLENBQy9ELElBQUksTUFBTSxDQUFDLE1BQU0sdUJBQXVCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUUxRSxTQUFnQix1QkFBdUIsQ0FDckMsS0FBdUI7SUFFdkIsaUZBQWlGO0lBQ2pGLE1BQU0sV0FBVyxHQUE0QyxFQUFFLENBQUM7SUFDaEUsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFXLENBQUM7UUFFakQsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDcEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBMkIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FDN0QsQ0FBQyxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BDLE1BQU0sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUM3QyxDQUFDLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7b0JBQzNCLDJDQUEyQztvQkFDM0MsSUFDRSxRQUFRLENBQUMsSUFBSSxDQUFDO3dCQUNkLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRO3dCQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFDNUIsQ0FBQzt3QkFDRCxXQUFXLENBQUMsR0FBRyxZQUFZLElBQUksWUFBWSxFQUFFLENBQUMsR0FBRyxRQUFRLENBQ3ZELElBQUksQ0FDTCxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNoRCxDQUFDO2dCQUNILENBQUMsQ0FDRixDQUFDO1lBQ0osQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFlLEVBQUUsRUFBRTtRQUN6QixPQUFPLE9BQU87YUFDWCxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ1gsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDcEQsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQzFELENBQUM7WUFDRixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEdBQUcsYUFBYSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQS9DRCwwREErQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQgeyBTeW50aGVzaXplZFN0YWNrIH0gZnJvbSBcIi4vc3ludGgtc3RhY2tcIjtcbnR5cGUgVEZJZGVudGlmaWVyID0gc3RyaW5nO1xudHlwZSBDREtURlJlc291cmNlUGF0aCA9IHN0cmluZztcbnR5cGUgVGZSZXNvdXJjZSA9IFJlY29yZDxcbiAgc3RyaW5nLFxuICB7XG4gICAgW1wiLy9cIl0/OiB7XG4gICAgICBtZXRhZGF0YT86IHtcbiAgICAgICAgcGF0aD86IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgfVxuPjtcbnR5cGUgVGZSZXNvdXJjZVR5cGUgPSBSZWNvcmQ8c3RyaW5nLCBUZlJlc291cmNlPjtcbnR5cGUgVEZKc29uID0ge1xuICBkYXRhOiBUZlJlc291cmNlVHlwZTtcbiAgcmVzb3VyY2U6IFRmUmVzb3VyY2VUeXBlO1xufTtcblxuLy8gZXNjYXBlcyBhbnkgc3BlY2lhbCBjaGFyYXRlcnMgdXNlZCBpbiByZWdleFxuY29uc3QgZXNjYXBlUmVnZXhTcGVjaWFsQ2hhcnMgPSAoc3RyOiBzdHJpbmcpID0+XG4gIHN0ci5yZXBsYWNlKC9bLS9cXFxcXiQqKz8uKCl8W1xcXXt9XS9nLCBcIlxcXFwkJlwiKTtcblxuLy8gdXNlcyB3b3JkIGJvdW5kYXJ5IHRvIG1hdGNoIHRoZSB3aG9sZSBvZiB0aGUgdGZJZGVudGlmZXJcbmNvbnN0IGxpbmVIYXNFeGFjdE1hdGNoID0gKGxpbmU6IHN0cmluZywgdGZJZGVudGlmaWVyOiBzdHJpbmcpID0+XG4gIG5ldyBSZWdFeHAoYFxcXFxiJHtlc2NhcGVSZWdleFNwZWNpYWxDaGFycyh0ZklkZW50aWZpZXIpfVxcXFxiYCkudGVzdChsaW5lKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVuaGFuY2VMb2dNZXNzYWdlKFxuICBzdGFjazogU3ludGhlc2l6ZWRTdGFjayxcbik6IChtZXNzYWdlOiBzdHJpbmcpID0+IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIC8vIHdlIG5ldmVyIHdhbnQgdG8gdGhyb3csIGlmIGl0IGRvZXMgbm90IHdvcmsgd2UganVzdCBkbyBhcyBpZiBpdCBkaWQgbm90IGhhcHBlblxuICBjb25zdCBwYXRoTWFwcGluZzogUmVjb3JkPFRGSWRlbnRpZmllciwgQ0RLVEZSZXNvdXJjZVBhdGg+ID0ge307XG4gIHRyeSB7XG4gICAgY29uc3QganNvbiA9IEpTT04ucGFyc2Uoc3RhY2suY29udGVudCkgYXMgVEZKc29uO1xuXG4gICAgW1wiZGF0YVwiLCBcInJlc291cmNlXCJdLmZvckVhY2goKHR5cGUpID0+IHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKGpzb25bdHlwZSBhcyBcImRhdGFcIiB8IFwicmVzb3VyY2VcIl0gfHwge30pLmZvckVhY2goXG4gICAgICAgIChbcmVzb3VyY2VUeXBlLCByZXNvdXJjZUluc3RhbmNlc10pID0+IHtcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhyZXNvdXJjZUluc3RhbmNlcyB8fCB7fSkuZm9yRWFjaChcbiAgICAgICAgICAgIChbcmVzb3VyY2VOYW1lLCByZXNvdXJjZV0pID0+IHtcbiAgICAgICAgICAgICAgLy8gU29tZSBjb25zdHJ1Y3RzIGRvbid0IGhhdmUgdGhpcyBtZXRhZGF0YVxuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VbXCIvL1wiXSAmJlxuICAgICAgICAgICAgICAgIHJlc291cmNlW1wiLy9cIl0ubWV0YWRhdGEgJiZcbiAgICAgICAgICAgICAgICByZXNvdXJjZVtcIi8vXCJdLm1ldGFkYXRhLnBhdGhcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcGF0aE1hcHBpbmdbYCR7cmVzb3VyY2VUeXBlfS4ke3Jlc291cmNlTmFtZX1gXSA9IHJlc291cmNlW1xuICAgICAgICAgICAgICAgICAgXCIvL1wiXG4gICAgICAgICAgICAgICAgXS5tZXRhZGF0YS5wYXRoLnJlcGxhY2UoYCR7c3RhY2submFtZX0vYCwgXCJcIik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYENvdWxkIG5vdCBlbmhhbmNlIGxvZyBtZXNzYWdlOiAke2V9YCk7XG4gIH1cblxuICByZXR1cm4gKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBtZXNzYWdlXG4gICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgIC5tYXAoKGxpbmUpID0+IHtcbiAgICAgICAgY29uc3QgbWF0Y2hpbmdFbnRyeSA9IE9iamVjdC5lbnRyaWVzKHBhdGhNYXBwaW5nKS5maW5kKFxuICAgICAgICAgIChbdGZJZGVudGlmaWVyXSkgPT4gbGluZUhhc0V4YWN0TWF0Y2gobGluZSwgdGZJZGVudGlmaWVyKSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFtYXRjaGluZ0VudHJ5KSB7XG4gICAgICAgICAgcmV0dXJuIGxpbmU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgW2lkLCBjZGtQYXRoXSA9IG1hdGNoaW5nRW50cnk7XG4gICAgICAgIHJldHVybiBsaW5lLnJlcGxhY2UoaWQsIGAke2lkfSAoJHtjZGtQYXRofSlgKTtcbiAgICAgIH0pXG4gICAgICAuam9pbihcIlxcblwiKTtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../src/lib/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"}
@@ -0,0 +1,90 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9nZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLGtFQUF3RTtBQUN4RSw0Q0FLd0I7QUFDeEIsNkNBQStCO0FBQy9CLDRDQUF3QztBQUN4QywyQ0FBNkI7QUFDN0IsaURBQTZDO0FBRTdDLElBQVksU0FLWDtBQUxELFdBQVksU0FBUztJQUNuQixrQ0FBcUIsQ0FBQTtJQUNyQiw2RUFBZ0UsQ0FBQTtJQUNoRSwwQkFBYSxDQUFBO0lBQ2IsNEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTFcsU0FBUyx5QkFBVCxTQUFTLFFBS3BCO0FBc0JNLEtBQUssVUFBVSxHQUFHLENBQUMsRUFDeEIsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsY0FBYyxFQUNkLHVCQUF1QixFQUN2QixRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUMxQixlQUFlLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEdBQzdCO0lBQ1YsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDOUUsTUFBTSxlQUFlLEdBQUcsSUFBSSxvQ0FBZSxDQUN6QyxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGVBQWUsQ0FDaEIsQ0FBQztJQUVGLElBQUksY0FBYyxFQUFFLENBQUM7UUFDbkIsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7U0FBTSxDQUFDO1FBQ04sb0RBQW9EO1FBQ3BELE1BQU0sZUFBZSxDQUFDLCtCQUErQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25FLElBQUksaUJBQWlCLENBQUMsY0FBYyxLQUFLLGtCQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDN0QscUJBQXFCO1lBQ3JCLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FDYixJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsQ0FDM0QsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsaUNBQWlDO0lBQ2pDLE1BQU0sVUFBVSxHQUNkLHFCQUFxQjtRQUNyQixDQUFDLE1BQU0sZUFBZSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFFOUQsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sZUFBZSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDeEQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUU1QyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlELFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUN2RCxDQUFDO1NBQU0sQ0FBQztRQUNOLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0FBQ0gsQ0FBQztBQTlDRCxrQkE4Q0M7QUFFTSxLQUFLLFVBQVUsV0FBVyxDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsSUFBSTtJQUN6RCxNQUFNLE1BQU0sR0FBRywwQkFBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVyQyxNQUFNLFdBQVcsR0FBRztRQUNsQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUkscUNBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0UsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLG1DQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3hFLENBQUM7SUFFRixNQUFNLEdBQUcsQ0FBQztRQUNSLFdBQVc7UUFDWCxpQkFBaUIsRUFBRTtZQUNqQixlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLGVBQWUsQ0FBQztZQUMxRCxjQUFjLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDL0IsZUFBZSxFQUFFLENBQUM7U0FDbkI7UUFDRCxjQUFjLEVBQUUsS0FBSztLQUN0QixDQUFDLENBQUM7QUFDTCxDQUFDO0FBakJELGtDQWlCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBDb25zdHJ1Y3RzTWFrZXIsIEdldE9wdGlvbnMgfSBmcm9tIFwiQGNka3RuL3Byb3ZpZGVyLWdlbmVyYXRvclwiO1xuaW1wb3J0IHtcbiAgTGFuZ3VhZ2UsXG4gIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQsXG4gIFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludCxcbiAgVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQsXG59IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IENka3RmQ29uZmlnIH0gZnJvbSBcIi4vY2RrdGYtY29uZmlnXCI7XG5cbmV4cG9ydCBlbnVtIEdldFN0YXR1cyB7XG4gIFNUQVJUSU5HID0gXCJzdGFydGluZ1wiLFxuICBET1dOTE9BRElORyA9IFwiZG93bmxvYWRpbmcgYW5kIGdlbmVyYXRpbmcgbW9kdWxlcyBhbmQgcHJvdmlkZXJzXCIsXG4gIERPTkUgPSBcImRvbmVcIixcbiAgRVJST1IgPSBcImVycm9yXCIsXG59XG5cbnR5cGUgUGFyc2VkRGVwZW5kZW5jeUNvbnN0cmFpbnQgPVxuICB8IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnRcbiAgfCBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnRcbiAgfCBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludDtcblxuaW50ZXJmYWNlIEdldENvbmZpZyB7XG4gIC8vIEFsbCBleGlzdGluZyBjb25zdHJhaW50cyAodG8gYmUgYWJsZSB0byByZW1vdmUgbm8gbG9uZ2VyIHVzZWQgb25lcylcbiAgY29uc3RyYWludHM6IFBhcnNlZERlcGVuZGVuY3lDb25zdHJhaW50W107XG4gIC8vIFRoZSBjb25zdHJhaW50cyB0aGF0IHNob3VsZCBiZSBnZW5lcmF0ZWRcbiAgY29uc3RyYWludHNUb0dlbmVyYXRlPzogUGFyc2VkRGVwZW5kZW5jeUNvbnN0cmFpbnRbXTtcbiAgY29uc3RydWN0c09wdGlvbnM6IEdldE9wdGlvbnM7XG4gIGNsZWFuRGlyZWN0b3J5PzogYm9vbGVhbjtcbiAgcHJvdmlkZXJTY2hlbWFDYWNoZVBhdGg/OiBzdHJpbmc7XG4gIG9uVXBkYXRlPzogKHBheWxvYWQ6IEdldFN0YXR1cykgPT4gdm9pZDtcbiAgcmVwb3J0VGVsZW1ldHJ5PzogKHRlbGVtZXRyeToge1xuICAgIHRhcmdldExhbmd1YWdlOiBzdHJpbmc7XG4gICAgdHJhY2tpbmdQYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICB9KSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0KHtcbiAgY29uc3RydWN0c09wdGlvbnMsXG4gIGNvbnN0cmFpbnRzLFxuICBjb25zdHJhaW50c1RvR2VuZXJhdGUsXG4gIGNsZWFuRGlyZWN0b3J5LFxuICBwcm92aWRlclNjaGVtYUNhY2hlUGF0aCxcbiAgb25VcGRhdGUgPSAoKSA9PiB1bmRlZmluZWQsXG4gIHJlcG9ydFRlbGVtZXRyeSA9IGFzeW5jICgpID0+IHVuZGVmaW5lZCxcbn06IEdldENvbmZpZykge1xuICBsb2dnZXIuZGVidWcoYFN0YXJ0aW5nIGdldCB3aXRoIG91dGRpciAke2NvbnN0cnVjdHNPcHRpb25zLmNvZGVNYWtlck91dHB1dH1gKTtcbiAgY29uc3QgY29uc3RydWN0c01ha2VyID0gbmV3IENvbnN0cnVjdHNNYWtlcihcbiAgICBjb25zdHJ1Y3RzT3B0aW9ucyxcbiAgICBwcm92aWRlclNjaGVtYUNhY2hlUGF0aCxcbiAgICByZXBvcnRUZWxlbWV0cnksXG4gICk7XG5cbiAgaWYgKGNsZWFuRGlyZWN0b3J5KSB7XG4gICAgYXdhaXQgZnMucmVtb3ZlKGNvbnN0cnVjdHNPcHRpb25zLmNvZGVNYWtlck91dHB1dCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gUmVtb3ZlIGFsbCBwcm92aWRlcnMgdGhhdCBhcmUgbm90IGluIHRoZSBuZXcgbGlzdFxuICAgIGF3YWl0IGNvbnN0cnVjdHNNYWtlci5yZW1vdmVGb2xkZXJzVGhhdFNob3VsZE5vdEV4aXN0KGNvbnN0cmFpbnRzKTtcbiAgICBpZiAoY29uc3RydWN0c09wdGlvbnMudGFyZ2V0TGFuZ3VhZ2UgPT09IExhbmd1YWdlLlRZUEVTQ1JJUFQpIHtcbiAgICAgIC8vIFJlbW92ZSBhbGwgbW9kdWxlc1xuICAgICAgYXdhaXQgZnMucmVtb3ZlKFxuICAgICAgICBwYXRoLnJlc29sdmUoY29uc3RydWN0c09wdGlvbnMuY29kZU1ha2VyT3V0cHV0LCBcIm1vZHVsZXNcIiksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZpbHRlciBjb25zdHJhaW50cyB0byBnZW5lcmF0ZVxuICBjb25zdCB0b0dlbmVyYXRlID1cbiAgICBjb25zdHJhaW50c1RvR2VuZXJhdGUgfHxcbiAgICAoYXdhaXQgY29uc3RydWN0c01ha2VyLmZpbHRlckFscmVhZHlHZW5lcmF0ZWQoY29uc3RyYWludHMpKTtcblxuICBvblVwZGF0ZShHZXRTdGF0dXMuRE9XTkxPQURJTkcpO1xuICBsb2dnZXIuZGVidWcoXCJHZW5lcmF0aW5nIHByb3ZpZGVyIGJpbmRpbmdzXCIpO1xuICBhd2FpdCBjb25zdHJ1Y3RzTWFrZXIuZ2VuZXJhdGUoY29uc3RyYWludHMsIHRvR2VuZXJhdGUpO1xuICBsb2dnZXIuZGVidWcoXCJQcm92aWRlciBiaW5kaW5ncyBnZW5lcmF0ZWRcIik7XG5cbiAgaWYgKCEoYXdhaXQgZnMucGF0aEV4aXN0cyhjb25zdHJ1Y3RzT3B0aW9ucy5jb2RlTWFrZXJPdXRwdXQpKSkge1xuICAgIG9uVXBkYXRlKEdldFN0YXR1cy5FUlJPUik7XG4gICAgbG9nZ2VyLmRlYnVnKFwiRmFpbGVkIHRvIGdlbmVyYXRlIHByb3ZpZGVyIGJpbmRpbmdzXCIpO1xuICB9IGVsc2Uge1xuICAgIG9uVXBkYXRlKEdldFN0YXR1cy5ET05FKTtcbiAgICBsb2dnZXIuZGVidWcoXCJQcm92aWRlciBiaW5kaW5ncyBnZW5lcmF0ZWRcIik7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkdldEluRGlyKGRpcjogc3RyaW5nLCBjbGVhbiA9IHRydWUpIHtcbiAgY29uc3QgY29uZmlnID0gQ2RrdGZDb25maWcucmVhZChkaXIpO1xuXG4gIGNvbnN0IGNvbnN0cmFpbnRzID0gW1xuICAgIC4uLmNvbmZpZy50ZXJyYWZvcm1Qcm92aWRlcnMubWFwKChjKSA9PiBuZXcgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50KGMpKSxcbiAgICAuLi5jb25maWcudGVycmFmb3JtTW9kdWxlcy5tYXAoKGMpID0+IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KGMpKSxcbiAgXTtcblxuICBhd2FpdCBnZXQoe1xuICAgIGNvbnN0cmFpbnRzLFxuICAgIGNvbnN0cnVjdHNPcHRpb25zOiB7XG4gICAgICBjb2RlTWFrZXJPdXRwdXQ6IHBhdGgucmVzb2x2ZShkaXIsIGNvbmZpZy5jb2RlTWFrZXJPdXRwdXQpLFxuICAgICAgdGFyZ2V0TGFuZ3VhZ2U6IGNvbmZpZy5sYW5ndWFnZSxcbiAgICAgIGpzaWlQYXJhbGxlbGlzbTogMSxcbiAgICB9LFxuICAgIGNsZWFuRGlyZWN0b3J5OiBjbGVhbixcbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-helpers.d.ts","sourceRoot":"","sources":["../../../src/lib/helpers/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"}
@@ -0,0 +1,155 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2staGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaGVscGVycy9zdGFjay1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7Ozs7QUFFbkMsNENBQWdGO0FBQ2hGLDBEQUFrQztBQUlsQyxTQUFnQixjQUFjLENBQzVCLE1BQTBCLEVBQzFCLFNBQWtCLEVBQ2xCLFlBQXFCO0lBRXJCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE1BQU0sZ0JBQU0sQ0FBQyxRQUFRLENBQ25CLHlEQUF5RCxDQUMxRCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sZ0JBQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxnQkFBTSxDQUFDLEtBQUssQ0FDaEIsdUVBQ0UsWUFBWSxJQUFJLFFBQ2xCLHNDQUFzQyxNQUFNO1NBQ3pDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDakIsQ0FBQztBQUNKLENBQUM7QUEvQkQsd0NBK0JDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQy9CLE1B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eUVBQXlFLGlCQUFpQixDQUFDLElBQUksQ0FDN0YsSUFBSSxDQUNMLHdFQUF3RSxDQUMxRSxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUF4QkQsMEVBd0JDO0FBRUQ7Ozs7O0VBS0U7QUFDRixTQUFnQixpQ0FBaUMsQ0FDL0MsV0FBK0I7SUFFL0IsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUMxQyxXQUFXO1NBQ1IsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1NBQ2xDLElBQUksRUFBRTtTQUNOLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRTVELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxNQUFNLENBQ3JELENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQ2pELENBQUM7SUFFRixJQUFJLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLGdCQUFNLENBQUMsS0FBSyxDQUNoQixxRUFBcUUsbUJBQW1CLENBQUMsSUFBSSxDQUMzRixJQUFJLENBQ0wsd0VBQXdFLENBQzFFLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQXJCRCw4RUFxQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuXG5pbXBvcnQgeyBlbnN1cmVBbGxTZXR0bGVkQmVmb3JlVGhyb3dpbmcsIEVycm9ycywgbG9nZ2VyIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQgbWluaW1hdGNoIGZyb20gXCJtaW5pbWF0Y2hcIjtcbmltcG9ydCB7IENka3RmU3RhY2sgfSBmcm9tIFwiLi4vY2RrdGYtc3RhY2tcIjtcbmltcG9ydCB7IFN5bnRoZXNpemVkU3RhY2sgfSBmcm9tIFwiLi4vc3ludGgtc3RhY2tcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbmdsZVN0YWNrKFxuICBzdGFja3M6IFN5bnRoZXNpemVkU3RhY2tbXSxcbiAgc3RhY2tOYW1lPzogc3RyaW5nLFxuICB0YXJnZXRBY3Rpb24/OiBzdHJpbmcsXG4pIHtcbiAgaWYgKCFzdGFja3MpIHtcbiAgICB0aHJvdyBFcnJvcnMuSW50ZXJuYWwoXG4gICAgICBcIlRyeWluZyB0byBhY2Nlc3MgYSBzdGFjayBiZWZvcmUgaXQgaGFzIGJlZW4gc3ludGhlc2l6ZWRcIixcbiAgICApO1xuICB9XG5cbiAgaWYgKHN0YWNrTmFtZSkge1xuICAgIGNvbnN0IHN0YWNrID0gc3RhY2tzLmZpbmQoKHMpID0+IHMubmFtZSA9PT0gc3RhY2tOYW1lKTtcbiAgICBpZiAoIXN0YWNrKSB7XG4gICAgICB0aHJvdyBFcnJvcnMuVXNhZ2UoXCJDb3VsZCBub3QgZmluZCBzdGFjazogXCIgKyBzdGFja05hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBzdGFjaztcbiAgfVxuXG4gIGlmIChzdGFja3MubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIHN0YWNrc1swXTtcbiAgfVxuXG4gIHRocm93IEVycm9ycy5Vc2FnZShcbiAgICBgRm91bmQgbW9yZSB0aGFuIG9uZSBzdGFjaywgcGxlYXNlIHNwZWNpZnkgYSB0YXJnZXQgc3RhY2suIFJ1biBjZGt0biAke1xuICAgICAgdGFyZ2V0QWN0aW9uIHx8IFwiPHZlcmI+XCJcbiAgICB9IDxzdGFjaz4gd2l0aCBvbmUgb2YgdGhlc2Ugc3RhY2tzOiAke3N0YWNrc1xuICAgICAgLm1hcCgocykgPT4gcy5uYW1lKVxuICAgICAgLmpvaW4oXCIsIFwiKX0gYCxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE11bHRpcGxlU3RhY2tzKFxuICBzdGFja3M6IFN5bnRoZXNpemVkU3RhY2tbXSxcbiAgcGF0dGVybnM/OiBzdHJpbmdbXSxcbiAgdGFyZ2V0QWN0aW9uPzogc3RyaW5nLFxuKSB7XG4gIGlmICghcGF0dGVybnMgfHwgIXBhdHRlcm5zLmxlbmd0aCkge1xuICAgIGlmIChzdGFja3MubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gW3N0YWNrc1swXV07XG4gICAgfVxuICAgIHRocm93IEVycm9ycy5Vc2FnZShcbiAgICAgIGBGb3VuZCBtb3JlIHRoYW4gb25lIHN0YWNrLCBwbGVhc2Ugc3BlY2lmeSBhIHRhcmdldCBzdGFjay4gUnVuIGNka3RuICR7XG4gICAgICAgIHRhcmdldEFjdGlvbiB8fCBcIjx2ZXJiPlwiXG4gICAgICB9IDxzdGFjaz4gd2l0aCBvbmUgb2YgdGhlc2Ugc3RhY2tzOiAke3N0YWNrc1xuICAgICAgICAubWFwKChzKSA9PiBzLm5hbWUpXG4gICAgICAgIC5qb2luKFwiLCBcIil9IGAsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBwYXR0ZXJucy5mbGF0TWFwKChwYXR0ZXJuKSA9PiB7XG4gICAgY29uc3QgbWF0Y2hpbmdTdGFja3MgPSBzdGFja3MuZmlsdGVyKChzdGFjaykgPT5cbiAgICAgIG1pbmltYXRjaChzdGFjay5uYW1lLCBwYXR0ZXJuKSxcbiAgICApO1xuXG4gICAgaWYgKG1hdGNoaW5nU3RhY2tzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgRXJyb3JzLlVzYWdlKGBDb3VsZCBub3QgZmluZCBzdGFjayBmb3IgcGF0dGVybiAnJHtwYXR0ZXJufSdgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2hpbmdTdGFja3M7XG4gIH0pO1xufVxuXG4vLyBSZXR1cm5zIHRoZSBmaXJzdCBzdGFjayB0aGF0IGhhcyBubyB1bm1ldCBkZXBlbmRlbmNpZXNcbi8vIEFuIHVubWV0IGRlcGVuZGVuY3kgaXMgYSBkZXBlbmRlbmN5IHRoYXQgaGFzIG5vdCBiZWVuIGRlcGxveWVkIHlldFxuLy8gSWYgdGhlcmUgaXMgbm8gdW5maW5pc2hlZCBzdGFjaywgcmV0dXJucyB1bmRlZmluZWRcbi8vIElmIHRoZXJlIGlzIG5vIHN0YWNrIHJlYWR5IHRvIGJlIHdvcmtlZCBvbiwgaXQgcmV0dXJucyBhIHByb21pc2UgdGhhdCB3aWxsIHJlc29sdmUgYXMgc29vbiBhcyB0aGVyZSBpcyBhIGZvbGxvdy11cCBzdGFjayBhdmFpbGFibGVcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTdGFja1dpdGhOb1VubWV0RGVwZW5kZW5jaWVzKFxuICBzdGFja0V4ZWN1dG9yczogQ2RrdGZTdGFja1tdLFxuKTogUHJvbWlzZTxDZGt0ZlN0YWNrIHwgdW5kZWZpbmVkPiB7XG4gIGxvZ2dlci5kZWJ1ZyhcIkNoZWNraW5nIGZvciBzdGFja3Mgd2l0aCB1bm1ldCBkZXBlbmRlbmNpZXNcIik7XG4gIGxvZ2dlci5kZWJ1ZyhcInN0YWNrIGV4ZWN1dG9yczpcIiwgc3RhY2tFeGVjdXRvcnMpO1xuICBjb25zdCBwZW5kaW5nU3RhY2tzID0gc3RhY2tFeGVjdXRvcnMuZmlsdGVyKChleGVjdXRvcikgPT4gZXhlY3V0b3IuaXNQZW5kaW5nKTtcbiAgbG9nZ2VyLmRlYnVnKFwicGVuZGluZyBzdGFja3M6XCIsIHN0YWNrRXhlY3V0b3JzKTtcblxuICBpZiAocGVuZGluZ1N0YWNrcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgY3VycmVudGx5UmVhZHlTdGFjayA9IHBlbmRpbmdTdGFja3MuZmluZCgoZXhlY3V0b3IpID0+XG4gICAgZXhlY3V0b3Iuc3RhY2suZGVwZW5kZW5jaWVzLmV2ZXJ5KFxuICAgICAgKGRlcGVuZGVuY3kpID0+XG4gICAgICAgIHN0YWNrRXhlY3V0b3JzLmZpbmQoKGV4ZWN1dG9yKSA9PiBleGVjdXRvci5zdGFjay5uYW1lID09PSBkZXBlbmRlbmN5KVxuICAgICAgICAgID8uY3VycmVudFN0YXRlID09PSBcImRvbmVcIixcbiAgICApLFxuICApO1xuXG4gIGlmIChjdXJyZW50bHlSZWFkeVN0YWNrKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFwiRm91bmQgYSBzdGFjayB3aXRoIG5vIHVubWV0IGRlcGVuZGVuY2llc1wiKTtcbiAgICByZXR1cm4gY3VycmVudGx5UmVhZHlTdGFjaztcbiAgfVxuXG4gIGNvbnN0IHN0YWNrRXhlY3V0aW9uUHJvbWlzZXMgPSBzdGFja0V4ZWN1dG9yc1xuICAgIC5maWx0ZXIoKGV4KSA9PiBleC5jdXJyZW50V29ya1Byb21pc2UpXG4gICAgLm1hcCgoZXgpID0+IGV4LmN1cnJlbnRXb3JrUHJvbWlzZSk7XG5cbiAgbG9nZ2VyLmRlYnVnKFxuICAgIGAke3N0YWNrRXhlY3V0aW9uUHJvbWlzZXMubGVuZ3RofSBzdGFja3MgYXJlIGN1cnJlbnRseSBidXN5LCB3YWl0aW5nIGZvciBvbmUgdG8gZmluaXNoYCxcbiAgKTtcblxuICBpZiAoIXN0YWNrRXhlY3V0aW9uUHJvbWlzZXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGF3YWl0IGVuc3VyZUFsbFNldHRsZWRCZWZvcmVUaHJvd2luZyhcbiAgICBQcm9taXNlLnJhY2Uoc3RhY2tFeGVjdXRpb25Qcm9taXNlcyksXG4gICAgc3RhY2tFeGVjdXRpb25Qcm9taXNlcyxcbiAgKTtcblxuICByZXR1cm4gYXdhaXQgZ2V0U3RhY2tXaXRoTm9Vbm1ldERlcGVuZGVuY2llcyhzdGFja0V4ZWN1dG9ycyk7XG59XG5cbmZ1bmN0aW9uIGZpbmRBbGxEZXBlbmRhbnRTdGFja3MoXG4gIHN0YWNrRXhlY3V0b3JzOiBDZGt0ZlN0YWNrW10sXG4gIHN0YWNrTmFtZTogc3RyaW5nLFxuKTogQ2RrdGZTdGFja1tdIHtcbiAgcmV0dXJuIHN0YWNrRXhlY3V0b3JzLmZpbHRlcigoaW5uZXJFeGVjdXRvcikgPT5cbiAgICBpbm5lckV4ZWN1dG9yLnN0YWNrLmRlcGVuZGVuY2llcy5pbmNsdWRlcyhzdGFja05hbWUpLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEFsbE5lc3RlZERlcGVuZGFudFN0YWNrcyhcbiAgc3RhY2tFeGVjdXRvcnM6IENka3RmU3RhY2tbXSxcbiAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gIGtub3duRGVwZW5kYW50U3RhY2tOYW1lczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCksXG4pOiBDZGt0ZlN0YWNrW10ge1xuICBjb25zdCBkZXBlbmRhbnRTdGFja3MgPSBmaW5kQWxsRGVwZW5kYW50U3RhY2tzKHN0YWNrRXhlY3V0b3JzLCBzdGFja05hbWUpO1xuICBkZXBlbmRhbnRTdGFja3MuZm9yRWFjaCgoc3RhY2spID0+IHtcbiAgICBpZiAoa25vd25EZXBlbmRhbnRTdGFja05hbWVzLmhhcyhzdGFjay5zdGFjay5uYW1lKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGtub3duRGVwZW5kYW50U3RhY2tOYW1lcy5hZGQoc3RhY2suc3RhY2submFtZSk7XG4gICAgZmluZEFsbE5lc3RlZERlcGVuZGFudFN0YWNrcyhcbiAgICAgIHN0YWNrRXhlY3V0b3JzLFxuICAgICAgc3RhY2suc3RhY2submFtZSxcbiAgICAgIGtub3duRGVwZW5kYW50U3RhY2tOYW1lcyxcbiAgICApO1xuICB9KTtcblxuICByZXR1cm4gc3RhY2tFeGVjdXRvcnMuZmlsdGVyKChleGVjdXRvcikgPT5cbiAgICBrbm93bkRlcGVuZGFudFN0YWNrTmFtZXMuaGFzKGV4ZWN1dG9yLnN0YWNrLm5hbWUpLFxuICApO1xufVxuXG4vLyBSZXR1cm5zIHRoZSBmaXJzdCBzdGFjayB0aGF0IGhhcyBubyBkZXBlbmRlbnRzIHRoYXQgbmVlZCB0byBiZSBkZXN0cm95ZWQgZmlyc3RcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTdGFja1dpdGhOb1VubWV0RGVwZW5kYW50cyhcbiAgc3RhY2tFeGVjdXRvcnM6IENka3RmU3RhY2tbXSxcbik6IFByb21pc2U8Q2RrdGZTdGFjayB8IHVuZGVmaW5lZD4ge1xuICBsb2dnZXIuZGVidWcoXCJDaGVja2luZyBmb3Igc3RhY2tzIHdpdGggdW5tZXQgZGVwZW5kYW50c1wiKTtcbiAgbG9nZ2VyLmRlYnVnKFwic3RhY2sgZXhlY3V0b3JzOlwiLCBzdGFja0V4ZWN1dG9ycyk7XG4gIGNvbnN0IHBlbmRpbmdTdGFja3MgPSBzdGFja0V4ZWN1dG9ycy5maWx0ZXIoKGV4ZWN1dG9yKSA9PiBleGVjdXRvci5pc1BlbmRpbmcpO1xuICBsb2dnZXIuZGVidWcoXCJwZW5kaW5nIHN0YWNrczpcIiwgc3RhY2tFeGVjdXRvcnMpO1xuXG4gIGlmIChwZW5kaW5nU3RhY2tzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBjdXJyZW50bHlSZWFkeVN0YWNrID0gcGVuZGluZ1N0YWNrcy5maW5kKChleGVjdXRvcikgPT4ge1xuICAgIGNvbnN0IGRlcGVuZGFudFN0YWNrcyA9IGZpbmRBbGxEZXBlbmRhbnRTdGFja3MoXG4gICAgICBzdGFja0V4ZWN1dG9ycyxcbiAgICAgIGV4ZWN1dG9yLnN0YWNrLm5hbWUsXG4gICAgKTtcbiAgICByZXR1cm4gZGVwZW5kYW50U3RhY2tzLmV2ZXJ5KChzdGFjaykgPT4gc3RhY2suY3VycmVudFN0YXRlID09PSBcImRvbmVcIik7XG4gIH0pO1xuXG4gIGlmIChjdXJyZW50bHlSZWFkeVN0YWNrKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFwiRm91bmQgYSBzdGFjayB3aXRoIG5vIHVubWV0IGRlcGVuZGFudHNcIik7XG4gICAgcmV0dXJuIGN1cnJlbnRseVJlYWR5U3RhY2s7XG4gIH1cbiAgY29uc3Qgc3RhY2tFeGVjdXRpb25Qcm9taXNlcyA9IHN0YWNrRXhlY3V0b3JzXG4gICAgLmZpbHRlcigoZXgpID0+IGV4LmN1cnJlbnRXb3JrUHJvbWlzZSlcbiAgICAubWFwKChleCkgPT4gZXguY3VycmVudFdvcmtQcm9taXNlKTtcblxuICBsb2dnZXIuZGVidWcoXG4gICAgYCR7c3RhY2tFeGVjdXRpb25Qcm9taXNlcy5sZW5ndGh9IHN0YWNrcyBhcmUgY3VycmVudGx5IGJ1c3ksIHdhaXRpbmcgZm9yIG9uZSB0byBmaW5pc2hgLFxuICApO1xuICBpZiAoIXN0YWNrRXhlY3V0aW9uUHJvbWlzZXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGF3YWl0IFByb21pc2UucmFjZShzdGFja0V4ZWN1dGlvblByb21pc2VzKTtcbiAgcmV0dXJuIGF3YWl0IGdldFN0YWNrV2l0aE5vVW5tZXREZXBlbmRhbnRzKHN0YWNrRXhlY3V0b3JzKTtcbn1cblxuLy8gVGhyb3dzIGFuIGVycm9yIGlmIHRoZXJlIGlzIGEgZGVwZW5kYW50IHN0YWNrIHRoYXQgaXMgbm90IGluY2x1ZGVkXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJZkFsbERlcGVuZGFudHNBcmVJbmNsdWRlZChcbiAgc3RhY2tzVG9SdW46IFN5bnRoZXNpemVkU3RhY2tbXSxcbiAgYWxsU3RhY2tzOiBTeW50aGVzaXplZFN0YWNrW10sXG4pIHtcbiAgY29uc3QgYWxsRGVwZW5kYW50cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBzdGFja3NUb1J1blxuICAgIC5tYXAoKHN0YWNrKSA9PlxuICAgICAgYWxsU3RhY2tzLmZpbHRlcigocykgPT4gcy5kZXBlbmRlbmNpZXMuaW5jbHVkZXMoc3RhY2submFtZSkpLFxuICAgIClcbiAgICAuZmxhdCgpXG4gICAgLmZvckVhY2goKGRlcGVuZGFudCkgPT4gYWxsRGVwZW5kYW50cy5hZGQoZGVwZW5kYW50Lm5hbWUpKTtcblxuICBjb25zdCBzdGFja05hbWVzID0gc3RhY2tzVG9SdW4ubWFwKChzdGFjaykgPT4gc3RhY2submFtZSk7XG4gIGNvbnN0IG1pc3NpbmdEZXBlbmRhbnRzID0gWy4uLmFsbERlcGVuZGFudHNdLmZpbHRlcihcbiAgICAoZGVwZW5kYW50KSA9PiAhc3RhY2tOYW1lcy5pbmNsdWRlcyhkZXBlbmRhbnQpLFxuICApO1xuXG4gIGlmIChtaXNzaW5nRGVwZW5kYW50cy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgRXJyb3JzLlVzYWdlKFxuICAgICAgYFRoZSBmb2xsb3dpbmcgZGVwZW5kYW50IHN0YWNrcyBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSBzdGFja3MgdG8gcnVuOiAke21pc3NpbmdEZXBlbmRhbnRzLmpvaW4oXG4gICAgICAgIFwiLCBcIixcbiAgICAgICl9LiBFaXRoZXIgYWRkIHRoZW0gb3IgYWRkIHRoZSAtLWlnbm9yZS1taXNzaW5nLXN0YWNrLWRlcGVuZGVuY2llcyBmbGFnLmAsXG4gICAgKTtcbiAgfVxufVxuXG4vKiogXG4gIFRocm93cyBhbiBlcnJvciBpZiB0aGVyZSBpcyBhIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgaW5jbHVkZWRcbiAgQ3ljbGVzIGFyZSBkZXRlY3RlZCBvbiBkZXBlbmRlbmN5IGNyZWF0aW9uIGF0IHN5bnRoZXNpcyB0aW1lXG4gIFJ1bm5pbmcgdGhpcyBwcmV2ZW50cyB1cyBmcm9tIGJlaW5nIGluIGEgc2l0dWF0aW9uIHdoZXJlIHdlIFxuICBoYXZlIHRvIHdhaXQgZm9yIGEgc3RhY2sgdG8gYmUgZGVwbG95ZWQgdGhhdCBpcyBub3QgaW5jbHVkZWQgdG8gYmUgcnVuXG4qL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrSWZBbGxEZXBlbmRlbmNpZXNBcmVJbmNsdWRlZChcbiAgc3RhY2tzVG9SdW46IFN5bnRoZXNpemVkU3RhY2tbXSxcbikge1xuICBjb25zdCBhbGxEZXBlbmRlbmNpZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgc3RhY2tzVG9SdW5cbiAgICAubWFwKChzdGFjaykgPT4gc3RhY2suZGVwZW5kZW5jaWVzKVxuICAgIC5mbGF0KClcbiAgICAuZm9yRWFjaCgoZGVwZW5kZW5jeSkgPT4gYWxsRGVwZW5kZW5jaWVzLmFkZChkZXBlbmRlbmN5KSk7XG5cbiAgY29uc3Qgc3RhY2tOYW1lcyA9IHN0YWNrc1RvUnVuLm1hcCgoc3RhY2spID0+IHN0YWNrLm5hbWUpO1xuICBjb25zdCBtaXNzaW5nRGVwZW5kZW5jaWVzID0gWy4uLmFsbERlcGVuZGVuY2llc10uZmlsdGVyKFxuICAgIChkZXBlbmRlbmN5KSA9PiAhc3RhY2tOYW1lcy5pbmNsdWRlcyhkZXBlbmRlbmN5KSxcbiAgKTtcblxuICBpZiAobWlzc2luZ0RlcGVuZGVuY2llcy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgRXJyb3JzLlVzYWdlKFxuICAgICAgYFRoZSBmb2xsb3dpbmcgZGVwZW5kZW5jaWVzIGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIHN0YWNrcyB0byBydW46ICR7bWlzc2luZ0RlcGVuZGVuY2llcy5qb2luKFxuICAgICAgICBcIiwgXCIsXG4gICAgICApfS4gRWl0aGVyIGFkZCB0aGVtIG9yIGFkZCB0aGUgLS1pZ25vcmUtbWlzc2luZy1zdGFjay1kZXBlbmRlbmNpZXMgZmxhZy5gLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAMA,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"}
@@ -4,7 +4,6 @@
4
4
  // This is the programmatic entrypoint that the CLI uses.
5
5
  // While this is the closest we have to a programmatic API, please understand that the interfaces in this file are not stable.
6
6
  // Convert is not included here since it's published independently as @cdktn/hcl2cdk.
7
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
8
7
  Object.defineProperty(exports, "__esModule", { value: true });
9
8
  exports.PlannedResourceAction = exports.isTerraformOutput = exports.DeployingResourceApplyState = exports.normalizeOutputPath = exports.saveOutputs = exports.watch = exports.CdktfProject = exports.runGetInDir = exports.GetStatus = exports.get = exports.templatesDir = exports.templates = exports.init = exports.CdktfStack = exports.initializErrorReporting = exports.CdktfConfig = exports.TerraformCli = exports.providerAdd = exports.getAllPrebuiltProviders = exports.ProviderConstraint = exports.DependencyManager = void 0;
10
9
  var dependency_manager_1 = require("./dependencies/dependency-manager");
@@ -41,4 +40,4 @@ var terraform_1 = require("./models/terraform");
41
40
  Object.defineProperty(exports, "DeployingResourceApplyState", { enumerable: true, get: function () { return terraform_1.DeployingResourceApplyState; } });
42
41
  Object.defineProperty(exports, "isTerraformOutput", { enumerable: true, get: function () { return terraform_1.isTerraformOutput; } });
43
42
  Object.defineProperty(exports, "PlannedResourceAction", { enumerable: true, get: function () { return terraform_1.PlannedResourceAction; } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyx5REFBeUQ7QUFDekQsOEhBQThIO0FBQzlILHFGQUFxRjtBQUNyRiw2REFBNkQ7OztBQUU3RCx3RUFHMkM7QUFGekMsdUhBQUEsaUJBQWlCLE9BQUE7QUFDakIsd0hBQUEsa0JBQWtCLE9BQUE7QUFFcEIsd0VBQTRFO0FBQW5FLDZIQUFBLHVCQUF1QixPQUFBO0FBQ2hDLCtDQUE2QztBQUFwQywyR0FBQSxXQUFXLE9BQUE7QUFDcEIsd0RBQXNEO0FBQTdDLDZHQUFBLFlBQVksT0FBQTtBQUNyQiwrQ0FBNkM7QUFBcEMsMkdBQUEsV0FBVyxPQUFBO0FBQ3BCLHFEQUE0RDtBQUFuRCwwSEFBQSx1QkFBdUIsT0FBQTtBQUNoQyw2Q0FBMkM7QUFBbEMseUdBQUEsVUFBVSxPQUFBO0FBQ25CLCtCQUEwRTtBQUFqRSw0RkFBQSxJQUFJLE9BQUE7QUFBcUIsaUdBQUEsU0FBUyxPQUFBO0FBQUUsb0dBQUEsWUFBWSxPQUFBO0FBQ3pELDZCQUFvRDtBQUEzQywwRkFBQSxHQUFHLE9BQUE7QUFBRSxnR0FBQSxTQUFTLE9BQUE7QUFBRSxrR0FBQSxXQUFXLE9BQUE7QUFFcEMsaURBQThEO0FBQXJELDZHQUFBLFlBQVksT0FBQTtBQUNyQixpQ0FBcUQ7QUFBNUMsOEZBQUEsS0FBSyxPQUFBO0FBQ2QsbUNBSWtCO0FBRmhCLHFHQUFBLFdBQVcsT0FBQTtBQUNYLDZHQUFBLG1CQUFtQixPQUFBO0FBRXJCLGdEQU00QjtBQUoxQix3SEFBQSwyQkFBMkIsT0FBQTtBQUMzQiw4R0FBQSxpQkFBaUIsT0FBQTtBQUNqQixrSEFBQSxxQkFBcUIsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4vLyBUaGlzIGlzIHRoZSBwcm9ncmFtbWF0aWMgZW50cnlwb2ludCB0aGF0IHRoZSBDTEkgdXNlcy5cbi8vIFdoaWxlIHRoaXMgaXMgdGhlIGNsb3Nlc3Qgd2UgaGF2ZSB0byBhIHByb2dyYW1tYXRpYyBBUEksIHBsZWFzZSB1bmRlcnN0YW5kIHRoYXQgdGhlIGludGVyZmFjZXMgaW4gdGhpcyBmaWxlIGFyZSBub3Qgc3RhYmxlLlxuLy8gQ29udmVydCBpcyBub3QgaW5jbHVkZWQgaGVyZSBzaW5jZSBpdCdzIHB1Ymxpc2hlZCBpbmRlcGVuZGVudGx5IGFzIEBjZGt0bi9oY2wyY2RrLlxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiAqL1xuXG5leHBvcnQge1xuICBEZXBlbmRlbmN5TWFuYWdlcixcbiAgUHJvdmlkZXJDb25zdHJhaW50LFxufSBmcm9tIFwiLi9kZXBlbmRlbmNpZXMvZGVwZW5kZW5jeS1tYW5hZ2VyXCI7XG5leHBvcnQgeyBnZXRBbGxQcmVidWlsdFByb3ZpZGVycyB9IGZyb20gXCIuL2RlcGVuZGVuY2llcy9wcmVidWlsdC1wcm92aWRlcnNcIjtcbmV4cG9ydCB7IHByb3ZpZGVyQWRkIH0gZnJvbSBcIi4vcHJvdmlkZXItYWRkXCI7XG5leHBvcnQgeyBUZXJyYWZvcm1DbGkgfSBmcm9tIFwiLi9tb2RlbHMvdGVycmFmb3JtLWNsaVwiO1xuZXhwb3J0IHsgQ2RrdGZDb25maWcgfSBmcm9tIFwiLi9jZGt0Zi1jb25maWdcIjtcbmV4cG9ydCB7IGluaXRpYWxpekVycm9yUmVwb3J0aW5nIH0gZnJvbSBcIi4vZXJyb3ItcmVwb3J0aW5nXCI7XG5leHBvcnQgeyBDZGt0ZlN0YWNrIH0gZnJvbSBcIi4vY2RrdGYtc3RhY2tcIjtcbmV4cG9ydCB7IGluaXQsIFByb2plY3QsIEluaXRBcmdzLCB0ZW1wbGF0ZXMsIHRlbXBsYXRlc0RpciB9IGZyb20gXCIuL2luaXRcIjtcbmV4cG9ydCB7IGdldCwgR2V0U3RhdHVzLCBydW5HZXRJbkRpciB9IGZyb20gXCIuL2dldFwiO1xuZXhwb3J0IHsgU3ludGhlc2l6ZWRTdGFjayB9IGZyb20gXCIuL3N5bnRoLXN0YWNrXCI7XG5leHBvcnQgeyBDZGt0ZlByb2plY3QsIFByb2plY3RVcGRhdGUgfSBmcm9tIFwiLi9jZGt0Zi1wcm9qZWN0XCI7XG5leHBvcnQgeyB3YXRjaCwgU3RhdGUgYXMgV2F0Y2hTdGF0ZSB9IGZyb20gXCIuL3dhdGNoXCI7XG5leHBvcnQge1xuICBOZXN0ZWRUZXJyYWZvcm1PdXRwdXRzLFxuICBzYXZlT3V0cHV0cyxcbiAgbm9ybWFsaXplT3V0cHV0UGF0aCxcbn0gZnJvbSBcIi4vb3V0cHV0XCI7XG5leHBvcnQge1xuICBEZXBsb3lpbmdSZXNvdXJjZSxcbiAgRGVwbG95aW5nUmVzb3VyY2VBcHBseVN0YXRlLFxuICBpc1RlcnJhZm9ybU91dHB1dCxcbiAgUGxhbm5lZFJlc291cmNlQWN0aW9uLFxuICBUZXJyYWZvcm1PdXRwdXQsXG59IGZyb20gXCIuL21vZGVscy90ZXJyYWZvcm1cIjtcbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHlEQUF5RDtBQUN6RCw4SEFBOEg7QUFDOUgscUZBQXFGOzs7QUFFckYsd0VBRzJDO0FBRnpDLHVIQUFBLGlCQUFpQixPQUFBO0FBQ2pCLHdIQUFBLGtCQUFrQixPQUFBO0FBRXBCLHdFQUE0RTtBQUFuRSw2SEFBQSx1QkFBdUIsT0FBQTtBQUNoQywrQ0FBNkM7QUFBcEMsMkdBQUEsV0FBVyxPQUFBO0FBQ3BCLHdEQUFzRDtBQUE3Qyw2R0FBQSxZQUFZLE9BQUE7QUFDckIsK0NBQTZDO0FBQXBDLDJHQUFBLFdBQVcsT0FBQTtBQUNwQixxREFBNEQ7QUFBbkQsMEhBQUEsdUJBQXVCLE9BQUE7QUFDaEMsNkNBQTJDO0FBQWxDLHlHQUFBLFVBQVUsT0FBQTtBQUNuQiwrQkFBMEU7QUFBakUsNEZBQUEsSUFBSSxPQUFBO0FBQXFCLGlHQUFBLFNBQVMsT0FBQTtBQUFFLG9HQUFBLFlBQVksT0FBQTtBQUN6RCw2QkFBb0Q7QUFBM0MsMEZBQUEsR0FBRyxPQUFBO0FBQUUsZ0dBQUEsU0FBUyxPQUFBO0FBQUUsa0dBQUEsV0FBVyxPQUFBO0FBRXBDLGlEQUE4RDtBQUFyRCw2R0FBQSxZQUFZLE9BQUE7QUFDckIsaUNBQXFEO0FBQTVDLDhGQUFBLEtBQUssT0FBQTtBQUNkLG1DQUlrQjtBQUZoQixxR0FBQSxXQUFXLE9BQUE7QUFDWCw2R0FBQSxtQkFBbUIsT0FBQTtBQUVyQixnREFNNEI7QUFKMUIsd0hBQUEsMkJBQTJCLE9BQUE7QUFDM0IsOEdBQUEsaUJBQWlCLE9BQUE7QUFDakIsa0hBQUEscUJBQXFCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuLy8gVGhpcyBpcyB0aGUgcHJvZ3JhbW1hdGljIGVudHJ5cG9pbnQgdGhhdCB0aGUgQ0xJIHVzZXMuXG4vLyBXaGlsZSB0aGlzIGlzIHRoZSBjbG9zZXN0IHdlIGhhdmUgdG8gYSBwcm9ncmFtbWF0aWMgQVBJLCBwbGVhc2UgdW5kZXJzdGFuZCB0aGF0IHRoZSBpbnRlcmZhY2VzIGluIHRoaXMgZmlsZSBhcmUgbm90IHN0YWJsZS5cbi8vIENvbnZlcnQgaXMgbm90IGluY2x1ZGVkIGhlcmUgc2luY2UgaXQncyBwdWJsaXNoZWQgaW5kZXBlbmRlbnRseSBhcyBAY2RrdG4vaGNsMmNkay5cblxuZXhwb3J0IHtcbiAgRGVwZW5kZW5jeU1hbmFnZXIsXG4gIFByb3ZpZGVyQ29uc3RyYWludCxcbn0gZnJvbSBcIi4vZGVwZW5kZW5jaWVzL2RlcGVuZGVuY3ktbWFuYWdlclwiO1xuZXhwb3J0IHsgZ2V0QWxsUHJlYnVpbHRQcm92aWRlcnMgfSBmcm9tIFwiLi9kZXBlbmRlbmNpZXMvcHJlYnVpbHQtcHJvdmlkZXJzXCI7XG5leHBvcnQgeyBwcm92aWRlckFkZCB9IGZyb20gXCIuL3Byb3ZpZGVyLWFkZFwiO1xuZXhwb3J0IHsgVGVycmFmb3JtQ2xpIH0gZnJvbSBcIi4vbW9kZWxzL3RlcnJhZm9ybS1jbGlcIjtcbmV4cG9ydCB7IENka3RmQ29uZmlnIH0gZnJvbSBcIi4vY2RrdGYtY29uZmlnXCI7XG5leHBvcnQgeyBpbml0aWFsaXpFcnJvclJlcG9ydGluZyB9IGZyb20gXCIuL2Vycm9yLXJlcG9ydGluZ1wiO1xuZXhwb3J0IHsgQ2RrdGZTdGFjayB9IGZyb20gXCIuL2Nka3RmLXN0YWNrXCI7XG5leHBvcnQgeyBpbml0LCBQcm9qZWN0LCBJbml0QXJncywgdGVtcGxhdGVzLCB0ZW1wbGF0ZXNEaXIgfSBmcm9tIFwiLi9pbml0XCI7XG5leHBvcnQgeyBnZXQsIEdldFN0YXR1cywgcnVuR2V0SW5EaXIgfSBmcm9tIFwiLi9nZXRcIjtcbmV4cG9ydCB7IFN5bnRoZXNpemVkU3RhY2sgfSBmcm9tIFwiLi9zeW50aC1zdGFja1wiO1xuZXhwb3J0IHsgQ2RrdGZQcm9qZWN0LCBQcm9qZWN0VXBkYXRlIH0gZnJvbSBcIi4vY2RrdGYtcHJvamVjdFwiO1xuZXhwb3J0IHsgd2F0Y2gsIFN0YXRlIGFzIFdhdGNoU3RhdGUgfSBmcm9tIFwiLi93YXRjaFwiO1xuZXhwb3J0IHtcbiAgTmVzdGVkVGVycmFmb3JtT3V0cHV0cyxcbiAgc2F2ZU91dHB1dHMsXG4gIG5vcm1hbGl6ZU91dHB1dFBhdGgsXG59IGZyb20gXCIuL291dHB1dFwiO1xuZXhwb3J0IHtcbiAgRGVwbG95aW5nUmVzb3VyY2UsXG4gIERlcGxveWluZ1Jlc291cmNlQXBwbHlTdGF0ZSxcbiAgaXNUZXJyYWZvcm1PdXRwdXQsXG4gIFBsYW5uZWRSZXNvdXJjZUFjdGlvbixcbiAgVGVycmFmb3JtT3V0cHV0LFxufSBmcm9tIFwiLi9tb2RlbHMvdGVycmFmb3JtXCI7XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/lib/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"}
@@ -0,0 +1,131 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvaW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsMkNBQTZCO0FBQzdCLDZDQUErQjtBQUMvQiw4Q0FBZ0M7QUFDaEMsNENBQXdDO0FBRXhDLG1DQUFnQztBQUNoQyxpREFBa0Q7QUFDbEQsaURBQTZDO0FBQzdDLGlEQUE2QztBQUU3QyxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7SUFDM0IsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQyxDQUFDO0FBQ0YsTUFBTSxHQUFHLEdBQUcsZUFBZSxFQUFFLENBQUM7QUFDOUIsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztBQTJCekMsUUFBQSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztBQUUxRSxNQUFNLGtCQUFrQixHQUFHLEVBQUU7S0FDMUIsV0FBVyxDQUFDLG9CQUFZLENBQUM7S0FDekIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN4QixRQUFBLFNBQVMsR0FBYSxFQUFFLENBQUM7QUFDdEMs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akMsTUFBTSxnQkFBTSxDQUFDLFFBQVEsQ0FDbkIsa0JBQWtCLElBQUksZ0NBQWdDLElBQUksR0FBRyxFQUM3RCxJQUFJLEtBQUssRUFBRSxFQUNYLEVBQUUsT0FBTyxFQUFFLENBQ1osQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUc7WUFDZixhQUFhLEVBQUUsT0FBTztZQUN0QixrQkFBa0IsRUFBRSxpQkFBaUI7U0FDdEMsQ0FBQztRQUVGLE9BQU87WUFDTCxHQUFHLEdBQUc7WUFDTixHQUFHLFFBQVE7U0FDWixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksT0FBTyxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLE1BQU0sZ0JBQU0sQ0FBQyxLQUFLLENBQ2hCLHdHQUF3RyxDQUN6RyxDQUFDO0lBQ0osQ0FBQztJQUVELDRFQUE0RTtJQUM1RSxvRUFBb0U7SUFDcEUseUVBQXlFO0lBQ3pFLFdBQVc7SUFDWCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxFQUFFLENBQUM7SUFFNUQsT0FBTztRQUNMLGFBQWEsRUFBRSxPQUFPO1FBQ3RCLGtCQUFrQixFQUFFLGlCQUFpQjtRQUNyQyxTQUFTLEVBQUUsU0FBUyxHQUFHLEVBQUU7UUFDekIsYUFBYSxFQUFFLGFBQWEsR0FBRyxFQUFFO1FBQ2pDLFVBQVUsRUFBRSxVQUFVLGFBQWEsRUFBRTtRQUNyQyxTQUFTLEVBQUUsT0FBTztRQUNsQixXQUFXLEVBQUUsT0FBTztRQUNwQixRQUFRLEVBQUUsSUFBSSxPQUFPLEVBQUU7S0FDeEIsQ0FBQztBQUNKLENBQUM7QUF4RUQsc0NBd0VDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgcGtnVXAgZnJvbSBcInBrZy11cFwiO1xuaW1wb3J0IHsgRXJyb3JzIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5cbmltcG9ydCB7IHNzY2FmZiB9IGZyb20gXCJzc2NhZmZcIjtcbmltcG9ydCB7IEZVVFVSRV9GTEFHUyB9IGZyb20gXCJjZGt0bi9saWIvZmVhdHVyZXNcIjtcbmltcG9ydCB7IENka3RmQ29uZmlnIH0gZnJvbSBcIi4vY2RrdGYtY29uZmlnXCI7XG5pbXBvcnQgeyBwcm92aWRlckFkZCB9IGZyb20gXCIuL3Byb3ZpZGVyLWFkZFwiO1xuXG5jb25zdCByZWFkUGFja2FnZUpzb24gPSAoKSA9PiB7XG4gIGNvbnN0IHBrZ1BhdGggPSBwa2dVcC5zeW5jKHsgY3dkOiBfX2Rpcm5hbWUgfSk7XG4gIGlmICghcGtnUGF0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVuYWJsZSB0byBmaW5kIHBhY2thZ2UuanNvblwiKTtcbiAgfVxuXG4gIHJldHVybiBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwa2dQYXRoLCBcInV0Zi04XCIpKTtcbn07XG5jb25zdCBwa2cgPSByZWFkUGFja2FnZUpzb24oKTtcbmNvbnN0IGNvbnN0cnVjdHNWZXJzaW9uID0gcGtnLmRlcGVuZGVuY2llcy5jb25zdHJ1Y3RzO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsUHJvamVjdCB7XG4gIERlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW1vdGVQcm9qZWN0IGV4dGVuZHMgTG9jYWxQcm9qZWN0IHtcbiAgT3JnYW5pemF0aW9uTmFtZTogc3RyaW5nO1xuICBXb3Jrc3BhY2VOYW1lOiBzdHJpbmc7XG4gIFRlcnJhZm9ybVJlbW90ZUhvc3RuYW1lOiBzdHJpbmc7XG59XG5leHBvcnQgdHlwZSBQcm9qZWN0ID0gTG9jYWxQcm9qZWN0IHwgUmVtb3RlUHJvamVjdDtcblxuZXhwb3J0IHR5cGUgSW5pdEFyZ3MgPSB7XG4gIGNka3RmVmVyc2lvbj86IHN0cmluZztcbiAgZGVzdGluYXRpb246IHN0cmluZztcbiAgZGlzdD86IHN0cmluZztcbiAgcHJvdmlkZXJzPzogc3RyaW5nW107XG4gIHByb3ZpZGVyc0ZvcmNlTG9jYWw/OiBib29sZWFuO1xuICBwcm9qZWN0SWQ6IHN0cmluZztcbiAgcHJvamVjdEluZm86IFByb2plY3Q7XG4gIHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuICBzZW5kQ3Jhc2hSZXBvcnRzOiBib29sZWFuO1xuICBzaWxlbnQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IHRlbXBsYXRlc0RpciA9IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi5cIiwgXCIuLlwiLCBcInRlbXBsYXRlc1wiKTtcblxuY29uc3QgYXZhaWxhYmxlVGVtcGxhdGVzID0gZnNcbiAgLnJlYWRkaXJTeW5jKHRlbXBsYXRlc0RpcilcbiAgLmZpbHRlcigoeCkgPT4gIXguc3RhcnRzV2l0aChcIi5cIikpO1xuZXhwb3J0IGNvbnN0IHRlbXBsYXRlczogc3RyaW5nW10gPSBbXTtcbmZvciAoY29uc3QgdGVtcGxhdGUgb2YgYXZhaWxhYmxlVGVtcGxhdGVzKSB7XG4gIHRlbXBsYXRlcy5wdXNoKHRlbXBsYXRlKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluaXQoe1xuICBjZGt0ZlZlcnNpb24sXG4gIGRlc3RpbmF0aW9uLFxuICBkaXN0LFxuICBwcm9qZWN0SWQsXG4gIHByb2plY3RJbmZvLFxuICB0ZW1wbGF0ZVBhdGgsXG4gIHNlbmRDcmFzaFJlcG9ydHMsXG4gIHByb3ZpZGVycyxcbiAgcHJvdmlkZXJzRm9yY2VMb2NhbCxcbiAgc2lsZW50LFxufTogSW5pdEFyZ3MpIHtcbiAgY29uc3QgZGVwczogYW55ID0gYXdhaXQgZGV0ZXJtaW5lRGVwcyhjZGt0ZlZlcnNpb24sIGRpc3QpO1xuXG4gIGNvbnN0IGZ1dHVyZUZsYWdzID0gT2JqZWN0LmVudHJpZXMoRlVUVVJFX0ZMQUdTKVxuICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCAgICBcIiR7a2V5fVwiOiBcIiR7dmFsdWV9XCJgKVxuICAgIC5qb2luKGAsXFxuYCk7XG5cbiAgYXdhaXQgc3NjYWZmKHRlbXBsYXRlUGF0aCwgZGVzdGluYXRpb24sIHtcbiAgICAuLi5kZXBzLFxuICAgIC4uLnByb2plY3RJbmZvLFxuICAgIGZ1dHVyZUZsYWdzLFxuICAgIHByb2plY3RJZCxcbiAgICBzZW5kQ3Jhc2hSZXBvcnRzLFxuICAgIHNpbGVudCxcbiAgfSk7XG4gIGNvbnN0IGNka3RmQ29uZmlnID0gQ2RrdGZDb25maWcucmVhZChkZXN0aW5hdGlvbik7XG5cbiAgbGV0IG5lZWRzR2V0ID0gZmFsc2U7XG4gIGlmIChwcm92aWRlcnMgJiYgcHJvdmlkZXJzLmxlbmd0aCkge1xuICAgIG5lZWRzR2V0ID0gYXdhaXQgcHJvdmlkZXJBZGQoe1xuICAgICAgcHJvdmlkZXJzOiBwcm92aWRlcnMsXG4gICAgICBsYW5ndWFnZTogY2RrdGZDb25maWcubGFuZ3VhZ2UsXG4gICAgICBwcm9qZWN0RGlyZWN0b3J5OiBkZXN0aW5hdGlvbixcbiAgICAgIGZvcmNlTG9jYWw6IHByb3ZpZGVyc0ZvcmNlTG9jYWwsXG4gICAgICBkaXN0LFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBuZWVkc0dldDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXBzIHtcbiAgbnBtX2Nka3RmOiBzdHJpbmc7XG4gIG5wbV9jZGt0Zl9jbGk6IHN0cmluZztcbiAgcHlwaV9jZGt0Zjogc3RyaW5nO1xuICBtdm5fY2RrdGY6IHN0cmluZztcbiAgbnVnZXRfY2RrdGY6IHN0cmluZztcbiAgZ29fY2RrdGY6IHN0cmluZztcbiAgY2RrdGZfdmVyc2lvbjogc3RyaW5nO1xuICBjb25zdHJ1Y3RzX3ZlcnNpb246IHN0cmluZztcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZXRlcm1pbmVEZXBzKFxuICB2ZXJzaW9uOiBzdHJpbmcgPSBwa2cudmVyc2lvbixcbiAgZGlzdD86IHN0cmluZyxcbik6IFByb21pc2U8RGVwcz4ge1xuICAvLyBUUzogY2RrdGYtMC4xMC4xLWRldi4yMTYwOTM4MjU4XG4gIC8vIFB5OiBjZGt0Zi0wLjEwLjEuZGV2MTY1ODgyMTQ5My53aGxcbiAgY29uc3QgcHl0aG9uVmVyc2lvbiA9IHZlcnNpb25cbiAgICAucmVwbGFjZSgvLXByZVxcLi9nLCBcIi5kZXZcIilcbiAgICAucmVwbGFjZSgvLWRldlxcLi9nLCBcIi5kZXZcIik7XG5cbiAgaWYgKGRpc3QpIHtcbiAgICAvLyBUT0RPOiBXaGF0IGFib3V0IGV4aXN0aW5nIGNka3RmIFRTL1BZIGRlcGVuZGVuY2llcz9cbiAgICBjb25zdCByZXQgPSB7XG4gICAgICBucG1fY2RrdGY6IHBhdGgucmVzb2x2ZShkaXN0LCBcImpzXCIsIGBjZGt0bkAke3ZlcnNpb259LmpzaWkudGd6YCksXG4gICAgICBucG1fY2RrdGZfY2xpOiBwYXRoLnJlc29sdmUoZGlzdCwgXCJqc1wiLCBgY2RrdG4tY2xpLSR7dmVyc2lvbn0udGd6YCksXG4gICAgICBweXBpX2Nka3RmOiBwYXRoLnJlc29sdmUoXG4gICAgICAgIGRpc3QsXG4gICAgICAgIFwicHl0aG9uXCIsXG4gICAgICAgIGBjZGt0bi0ke3B5dGhvblZlcnNpb259LXB5My1ub25lLWFueS53aGxgLFxuICAgICAgKSxcbiAgICAgIG12bl9jZGt0ZjogcGF0aC5yZXNvbHZlKFxuICAgICAgICBkaXN0LFxuICAgICAgICBcImphdmFcIixcbiAgICAgICAgYGlvL2Nka3RuL2Nka3RuLyR7dmVyc2lvbn0vY2RrdG4tJHt2ZXJzaW9ufS5qYXJgLFxuICAgICAgKSxcbiAgICAgIG51Z2V0X2Nka3RmOiBwYXRoLnJlc29sdmUoZGlzdCwgXCJkb3RuZXRcIiwgYElvLkNka3RuLiR7dmVyc2lvbn0ubnVwa2dgKSxcbiAgICAgIGdvX2Nka3RmOiBwYXRoLnJlc29sdmUoZGlzdCwgXCJnb1wiLCBgY2RrdG5gKSxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIE9iamVjdC52YWx1ZXMocmV0KSkge1xuICAgICAgaWYgKCEoYXdhaXQgZnMucGF0aEV4aXN0cyhmaWxlKSkpIHtcbiAgICAgICAgdGhyb3cgRXJyb3JzLkludGVybmFsKFxuICAgICAgICAgIGB1bmFibGUgdG8gZmluZCAke2ZpbGV9IHVuZGVyIHRoZSBcImRpc3RcIiBkaXJlY3RvcnkgKCR7ZGlzdH0pYCxcbiAgICAgICAgICBuZXcgRXJyb3IoKSxcbiAgICAgICAgICB7IHZlcnNpb24gfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB2ZXJzaW9ucyA9IHtcbiAgICAgIGNka3RmX3ZlcnNpb246IHZlcnNpb24sXG4gICAgICBjb25zdHJ1Y3RzX3ZlcnNpb246IGNvbnN0cnVjdHNWZXJzaW9uLFxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmV0LFxuICAgICAgLi4udmVyc2lvbnMsXG4gICAgfTtcbiAgfVxuXG4gIGlmICh2ZXJzaW9uID09PSBcIjAuMC4wXCIpIHtcbiAgICB0aHJvdyBFcnJvcnMuVXNhZ2UoXG4gICAgICBgY2Fubm90IHVzZSB2ZXJzaW9uIDAuMC4wLCB1c2UgLS1jZGt0Zi12ZXJzaW9uLCAtLWRpc3Qgb3IgQ0RLVEZfRElTVCB0byBpbnN0YWxsIGZyb20gYSBcImRpc3RcIiBkaXJlY3RvcnlgLFxuICAgICk7XG4gIH1cblxuICAvLyBkZXRlcm1pbmUgaWYgd2Ugd2FudCBhIHNwZWNpZmljIHBpbm5lZCB2ZXJzaW9uIG9yIGEgdmVyc2lvbiByYW5nZSB3ZSB0YWtlXG4gIC8vIGEgcGlubmVkIHZlcnNpb24gaWYgdmVyc2lvbiBpbmNsdWRlcyBhIGh5cGhlbiB3aGljaCBtZWFucyBpdCBpcyBhXG4gIC8vIHByZS1yZWxlYXNlIChlLmcuIFwiMC4xMi4wLXByZS5lNjgzNGQzXCIpLiBvdGhlcndpc2UsIHdlIHJlcXVpcmUgYSBjYXJldFxuICAvLyB2ZXJzaW9uLlxuICBjb25zdCB2ZXIgPSB2ZXJzaW9uLmluY2x1ZGVzKFwiLVwiKSA/IHZlcnNpb24gOiBgXiR7dmVyc2lvbn1gO1xuXG4gIHJldHVybiB7XG4gICAgY2RrdGZfdmVyc2lvbjogdmVyc2lvbixcbiAgICBjb25zdHJ1Y3RzX3ZlcnNpb246IGNvbnN0cnVjdHNWZXJzaW9uLFxuICAgIG5wbV9jZGt0ZjogYGNka3RuQCR7dmVyfWAsXG4gICAgbnBtX2Nka3RmX2NsaTogYGNka3RuLWNsaUAke3Zlcn1gLFxuICAgIHB5cGlfY2RrdGY6IGBjZGt0bn49JHtweXRob25WZXJzaW9ufWAsXG4gICAgbXZuX2Nka3RmOiB2ZXJzaW9uLFxuICAgIG51Z2V0X2Nka3RmOiB2ZXJzaW9uLFxuICAgIGdvX2Nka3RmOiBgdiR7dmVyc2lvbn1gLFxuICB9O1xufVxuIl19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-provider-constraints.d.ts","sourceRoot":"","sources":["../../src/lib/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"}