@cdktn/cli-core 0.22.0-pre.2

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 (154) hide show
  1. package/README.md +3 -0
  2. package/ambient.d.ts +13 -0
  3. package/eslint.config.mjs +82 -0
  4. package/jest.config.js +20 -0
  5. package/package.json +139 -0
  6. package/src/lib/cdktf-config.d.ts +16 -0
  7. package/src/lib/cdktf-config.d.ts.map +1 -0
  8. package/src/lib/cdktf-config.js +108 -0
  9. package/src/lib/cdktf-project-io-handler.d.ts +20 -0
  10. package/src/lib/cdktf-project-io-handler.d.ts.map +1 -0
  11. package/src/lib/cdktf-project-io-handler.js +84 -0
  12. package/src/lib/cdktf-project.d.ts +111 -0
  13. package/src/lib/cdktf-project.d.ts.map +1 -0
  14. package/src/lib/cdktf-project.js +371 -0
  15. package/src/lib/cdktf-stack.d.ts +134 -0
  16. package/src/lib/cdktf-stack.d.ts.map +1 -0
  17. package/src/lib/cdktf-stack.js +386 -0
  18. package/src/lib/convert.d.ts +6 -0
  19. package/src/lib/convert.d.ts.map +1 -0
  20. package/src/lib/convert.js +51 -0
  21. package/src/lib/dependencies/cdktf-config-manager.d.ts +12 -0
  22. package/src/lib/dependencies/cdktf-config-manager.d.ts.map +1 -0
  23. package/src/lib/dependencies/cdktf-config-manager.js +36 -0
  24. package/src/lib/dependencies/dependency-manager.d.ts +84 -0
  25. package/src/lib/dependencies/dependency-manager.d.ts.map +1 -0
  26. package/src/lib/dependencies/dependency-manager.js +365 -0
  27. package/src/lib/dependencies/package-manager.d.ts +18 -0
  28. package/src/lib/dependencies/package-manager.d.ts.map +1 -0
  29. package/src/lib/dependencies/package-manager.js +574 -0
  30. package/src/lib/dependencies/prebuilt-providers.d.ts +18 -0
  31. package/src/lib/dependencies/prebuilt-providers.d.ts.map +1 -0
  32. package/src/lib/dependencies/prebuilt-providers.js +204 -0
  33. package/src/lib/dependencies/registry-api.d.ts +8 -0
  34. package/src/lib/dependencies/registry-api.d.ts.map +1 -0
  35. package/src/lib/dependencies/registry-api.js +77 -0
  36. package/src/lib/dependencies/version-constraints.d.ts +8 -0
  37. package/src/lib/dependencies/version-constraints.d.ts.map +1 -0
  38. package/src/lib/dependencies/version-constraints.js +95 -0
  39. package/src/lib/error-reporting.d.ts +10 -0
  40. package/src/lib/error-reporting.d.ts.map +1 -0
  41. package/src/lib/error-reporting.js +133 -0
  42. package/src/lib/errors.d.ts +6 -0
  43. package/src/lib/errors.d.ts.map +1 -0
  44. package/src/lib/errors.js +10 -0
  45. package/src/lib/execution-logs.d.ts +3 -0
  46. package/src/lib/execution-logs.d.ts.map +1 -0
  47. package/src/lib/execution-logs.js +47 -0
  48. package/src/lib/get.d.ts +25 -0
  49. package/src/lib/get.d.ts.map +1 -0
  50. package/src/lib/get.js +90 -0
  51. package/src/lib/helpers/stack-helpers.d.ts +16 -0
  52. package/src/lib/helpers/stack-helpers.d.ts.map +1 -0
  53. package/src/lib/helpers/stack-helpers.js +155 -0
  54. package/src/lib/index.d.ts +15 -0
  55. package/src/lib/index.d.ts.map +1 -0
  56. package/src/lib/index.js +44 -0
  57. package/src/lib/init.d.ts +37 -0
  58. package/src/lib/init.d.ts.map +1 -0
  59. package/src/lib/init.js +131 -0
  60. package/src/lib/local-provider-constraints.d.ts +28 -0
  61. package/src/lib/local-provider-constraints.d.ts.map +1 -0
  62. package/src/lib/local-provider-constraints.js +95 -0
  63. package/src/lib/local-provider-versions.d.ts +12 -0
  64. package/src/lib/local-provider-versions.d.ts.map +1 -0
  65. package/src/lib/local-provider-versions.js +73 -0
  66. package/src/lib/models/deploy-machine.d.ts +128 -0
  67. package/src/lib/models/deploy-machine.d.ts.map +1 -0
  68. package/src/lib/models/deploy-machine.js +280 -0
  69. package/src/lib/models/pty-process.d.ts +29 -0
  70. package/src/lib/models/pty-process.d.ts.map +1 -0
  71. package/src/lib/models/pty-process.js +132 -0
  72. package/src/lib/models/schema.d.ts +2307 -0
  73. package/src/lib/models/schema.d.ts.map +1 -0
  74. package/src/lib/models/schema.js +181 -0
  75. package/src/lib/models/terraform-cli.d.ts +72 -0
  76. package/src/lib/models/terraform-cli.d.ts.map +1 -0
  77. package/src/lib/models/terraform-cli.js +357 -0
  78. package/src/lib/models/terraform.d.ts +125 -0
  79. package/src/lib/models/terraform.d.ts.map +1 -0
  80. package/src/lib/models/terraform.js +72 -0
  81. package/src/lib/output.d.ts +23 -0
  82. package/src/lib/output.d.ts.map +1 -0
  83. package/src/lib/output.js +211 -0
  84. package/src/lib/provider-add.d.ts +15 -0
  85. package/src/lib/provider-add.d.ts.map +1 -0
  86. package/src/lib/provider-add.js +30 -0
  87. package/src/lib/server/terraform-logs.d.ts +2 -0
  88. package/src/lib/server/terraform-logs.d.ts.map +1 -0
  89. package/src/lib/server/terraform-logs.js +19 -0
  90. package/src/lib/synth-stack.d.ts +29 -0
  91. package/src/lib/synth-stack.d.ts.map +1 -0
  92. package/src/lib/synth-stack.js +251 -0
  93. package/src/lib/synth.d.ts +7 -0
  94. package/src/lib/synth.d.ts.map +1 -0
  95. package/src/lib/synth.js +67 -0
  96. package/src/lib/terraform-json.d.ts +1015 -0
  97. package/src/lib/terraform-json.d.ts.map +1 -0
  98. package/src/lib/terraform-json.js +82 -0
  99. package/src/lib/terraform-provider-lock.d.ts +25 -0
  100. package/src/lib/terraform-provider-lock.d.ts.map +1 -0
  101. package/src/lib/terraform-provider-lock.js +95 -0
  102. package/src/lib/watch.d.ts +16 -0
  103. package/src/lib/watch.d.ts.map +1 -0
  104. package/src/lib/watch.js +155 -0
  105. package/templates/csharp/.hooks.sscaff.js +63 -0
  106. package/templates/csharp/MainStack.cs +15 -0
  107. package/templates/csharp/MyTerraformStack.csproj +13 -0
  108. package/templates/csharp/Program.cs +17 -0
  109. package/templates/csharp/TestProgram.cs +42 -0
  110. package/templates/csharp/cdktf.json +11 -0
  111. package/templates/csharp/help +42 -0
  112. package/templates/csharp/{{}}.gitignore +345 -0
  113. package/templates/go/.hooks.sscaff.js +70 -0
  114. package/templates/go/cdktf.json +12 -0
  115. package/templates/go/go.mod +8 -0
  116. package/templates/go/help +32 -0
  117. package/templates/go/main.go +22 -0
  118. package/templates/go/main_test.go +42 -0
  119. package/templates/go/{{}}.gitignore +21 -0
  120. package/templates/java/.hooks.sscaff.js +64 -0
  121. package/templates/java/build.gradle +55 -0
  122. package/templates/java/cdktf.json +12 -0
  123. package/templates/java/gradle.properties +1 -0
  124. package/templates/java/gradlew +248 -0
  125. package/templates/java/gradlew.bat +92 -0
  126. package/templates/java/help +35 -0
  127. package/templates/java/settings.gradle +5 -0
  128. package/templates/java/src/main/java/com/mycompany/app/Main.java +16 -0
  129. package/templates/java/src/main/java/com/mycompany/app/MainStack.java +14 -0
  130. package/templates/java/src/test/java/com/company/app/MainTest.java +38 -0
  131. package/templates/java/{{}}.gitignore +14 -0
  132. package/templates/python/.hooks.sscaff.js +59 -0
  133. package/templates/python/Pipfile +7 -0
  134. package/templates/python/cdktf.json +12 -0
  135. package/templates/python/help +42 -0
  136. package/templates/python/main-test.py +26 -0
  137. package/templates/python/main.py +16 -0
  138. package/templates/python/{{}}.gitignore +7 -0
  139. package/templates/python-pip/.hooks.sscaff.js +63 -0
  140. package/templates/python-pip/cdktf.json +12 -0
  141. package/templates/python-pip/help +35 -0
  142. package/templates/python-pip/main-test.py +23 -0
  143. package/templates/python-pip/main.py +16 -0
  144. package/templates/python-pip/{{}}.gitignore +7 -0
  145. package/templates/typescript/.hooks.sscaff.js +78 -0
  146. package/templates/typescript/__tests__/main-test.ts +89 -0
  147. package/templates/typescript/cdktf.json +11 -0
  148. package/templates/typescript/help +51 -0
  149. package/templates/typescript/jest.config.js +187 -0
  150. package/templates/typescript/main.ts +14 -0
  151. package/templates/typescript/package.json +22 -0
  152. package/templates/typescript/setup.js +2 -0
  153. package/templates/typescript/tsconfig.json +35 -0
  154. package/templates/typescript/{{}}.gitignore +11 -0
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ // Copyright (c) HashiCorp, Inc
3
+ // SPDX-License-Identifier: MPL-2.0
4
+ // This is the programmatic entrypoint that the CLI uses.
5
+ // While this is the closest we have to a programmatic API, please understand that the interfaces in this file are not stable.
6
+ // Convert is not included here since it's published independently as @cdktn/hcl2cdk.
7
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ 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
+ var dependency_manager_1 = require("./dependencies/dependency-manager");
11
+ Object.defineProperty(exports, "DependencyManager", { enumerable: true, get: function () { return dependency_manager_1.DependencyManager; } });
12
+ Object.defineProperty(exports, "ProviderConstraint", { enumerable: true, get: function () { return dependency_manager_1.ProviderConstraint; } });
13
+ var prebuilt_providers_1 = require("./dependencies/prebuilt-providers");
14
+ Object.defineProperty(exports, "getAllPrebuiltProviders", { enumerable: true, get: function () { return prebuilt_providers_1.getAllPrebuiltProviders; } });
15
+ var provider_add_1 = require("./provider-add");
16
+ Object.defineProperty(exports, "providerAdd", { enumerable: true, get: function () { return provider_add_1.providerAdd; } });
17
+ var terraform_cli_1 = require("./models/terraform-cli");
18
+ Object.defineProperty(exports, "TerraformCli", { enumerable: true, get: function () { return terraform_cli_1.TerraformCli; } });
19
+ var cdktf_config_1 = require("./cdktf-config");
20
+ Object.defineProperty(exports, "CdktfConfig", { enumerable: true, get: function () { return cdktf_config_1.CdktfConfig; } });
21
+ var error_reporting_1 = require("./error-reporting");
22
+ Object.defineProperty(exports, "initializErrorReporting", { enumerable: true, get: function () { return error_reporting_1.initializErrorReporting; } });
23
+ var cdktf_stack_1 = require("./cdktf-stack");
24
+ Object.defineProperty(exports, "CdktfStack", { enumerable: true, get: function () { return cdktf_stack_1.CdktfStack; } });
25
+ var init_1 = require("./init");
26
+ Object.defineProperty(exports, "init", { enumerable: true, get: function () { return init_1.init; } });
27
+ Object.defineProperty(exports, "templates", { enumerable: true, get: function () { return init_1.templates; } });
28
+ Object.defineProperty(exports, "templatesDir", { enumerable: true, get: function () { return init_1.templatesDir; } });
29
+ var get_1 = require("./get");
30
+ Object.defineProperty(exports, "get", { enumerable: true, get: function () { return get_1.get; } });
31
+ Object.defineProperty(exports, "GetStatus", { enumerable: true, get: function () { return get_1.GetStatus; } });
32
+ Object.defineProperty(exports, "runGetInDir", { enumerable: true, get: function () { return get_1.runGetInDir; } });
33
+ var cdktf_project_1 = require("./cdktf-project");
34
+ Object.defineProperty(exports, "CdktfProject", { enumerable: true, get: function () { return cdktf_project_1.CdktfProject; } });
35
+ var watch_1 = require("./watch");
36
+ Object.defineProperty(exports, "watch", { enumerable: true, get: function () { return watch_1.watch; } });
37
+ var output_1 = require("./output");
38
+ Object.defineProperty(exports, "saveOutputs", { enumerable: true, get: function () { return output_1.saveOutputs; } });
39
+ Object.defineProperty(exports, "normalizeOutputPath", { enumerable: true, get: function () { return output_1.normalizeOutputPath; } });
40
+ var terraform_1 = require("./models/terraform");
41
+ Object.defineProperty(exports, "DeployingResourceApplyState", { enumerable: true, get: function () { return terraform_1.DeployingResourceApplyState; } });
42
+ Object.defineProperty(exports, "isTerraformOutput", { enumerable: true, get: function () { return terraform_1.isTerraformOutput; } });
43
+ Object.defineProperty(exports, "PlannedResourceAction", { enumerable: true, get: function () { return terraform_1.PlannedResourceAction; } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyx5REFBeUQ7QUFDekQsOEhBQThIO0FBQzlILHFGQUFxRjtBQUNyRiw2REFBNkQ7OztBQUU3RCx3RUFHMkM7QUFGekMsdUhBQUEsaUJBQWlCLE9BQUE7QUFDakIsd0hBQUEsa0JBQWtCLE9BQUE7QUFFcEIsd0VBQTRFO0FBQW5FLDZIQUFBLHVCQUF1QixPQUFBO0FBQ2hDLCtDQUE2QztBQUFwQywyR0FBQSxXQUFXLE9BQUE7QUFDcEIsd0RBQXNEO0FBQTdDLDZHQUFBLFlBQVksT0FBQTtBQUNyQiwrQ0FBNkM7QUFBcEMsMkdBQUEsV0FBVyxPQUFBO0FBQ3BCLHFEQUE0RDtBQUFuRCwwSEFBQSx1QkFBdUIsT0FBQTtBQUNoQyw2Q0FBMkM7QUFBbEMseUdBQUEsVUFBVSxPQUFBO0FBQ25CLCtCQUEwRTtBQUFqRSw0RkFBQSxJQUFJLE9BQUE7QUFBcUIsaUdBQUEsU0FBUyxPQUFBO0FBQUUsb0dBQUEsWUFBWSxPQUFBO0FBQ3pELDZCQUFvRDtBQUEzQywwRkFBQSxHQUFHLE9BQUE7QUFBRSxnR0FBQSxTQUFTLE9BQUE7QUFBRSxrR0FBQSxXQUFXLE9BQUE7QUFFcEMsaURBQThEO0FBQXJELDZHQUFBLFlBQVksT0FBQTtBQUNyQixpQ0FBcUQ7QUFBNUMsOEZBQUEsS0FBSyxPQUFBO0FBQ2QsbUNBSWtCO0FBRmhCLHFHQUFBLFdBQVcsT0FBQTtBQUNYLDZHQUFBLG1CQUFtQixPQUFBO0FBRXJCLGdEQU00QjtBQUoxQix3SEFBQSwyQkFBMkIsT0FBQTtBQUMzQiw4R0FBQSxpQkFBaUIsT0FBQTtBQUNqQixrSEFBQSxxQkFBcUIsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4vLyBUaGlzIGlzIHRoZSBwcm9ncmFtbWF0aWMgZW50cnlwb2ludCB0aGF0IHRoZSBDTEkgdXNlcy5cbi8vIFdoaWxlIHRoaXMgaXMgdGhlIGNsb3Nlc3Qgd2UgaGF2ZSB0byBhIHByb2dyYW1tYXRpYyBBUEksIHBsZWFzZSB1bmRlcnN0YW5kIHRoYXQgdGhlIGludGVyZmFjZXMgaW4gdGhpcyBmaWxlIGFyZSBub3Qgc3RhYmxlLlxuLy8gQ29udmVydCBpcyBub3QgaW5jbHVkZWQgaGVyZSBzaW5jZSBpdCdzIHB1Ymxpc2hlZCBpbmRlcGVuZGVudGx5IGFzIEBjZGt0bi9oY2wyY2RrLlxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiAqL1xuXG5leHBvcnQge1xuICBEZXBlbmRlbmN5TWFuYWdlcixcbiAgUHJvdmlkZXJDb25zdHJhaW50LFxufSBmcm9tIFwiLi9kZXBlbmRlbmNpZXMvZGVwZW5kZW5jeS1tYW5hZ2VyXCI7XG5leHBvcnQgeyBnZXRBbGxQcmVidWlsdFByb3ZpZGVycyB9IGZyb20gXCIuL2RlcGVuZGVuY2llcy9wcmVidWlsdC1wcm92aWRlcnNcIjtcbmV4cG9ydCB7IHByb3ZpZGVyQWRkIH0gZnJvbSBcIi4vcHJvdmlkZXItYWRkXCI7XG5leHBvcnQgeyBUZXJyYWZvcm1DbGkgfSBmcm9tIFwiLi9tb2RlbHMvdGVycmFmb3JtLWNsaVwiO1xuZXhwb3J0IHsgQ2RrdGZDb25maWcgfSBmcm9tIFwiLi9jZGt0Zi1jb25maWdcIjtcbmV4cG9ydCB7IGluaXRpYWxpekVycm9yUmVwb3J0aW5nIH0gZnJvbSBcIi4vZXJyb3ItcmVwb3J0aW5nXCI7XG5leHBvcnQgeyBDZGt0ZlN0YWNrIH0gZnJvbSBcIi4vY2RrdGYtc3RhY2tcIjtcbmV4cG9ydCB7IGluaXQsIFByb2plY3QsIEluaXRBcmdzLCB0ZW1wbGF0ZXMsIHRlbXBsYXRlc0RpciB9IGZyb20gXCIuL2luaXRcIjtcbmV4cG9ydCB7IGdldCwgR2V0U3RhdHVzLCBydW5HZXRJbkRpciB9IGZyb20gXCIuL2dldFwiO1xuZXhwb3J0IHsgU3ludGhlc2l6ZWRTdGFjayB9IGZyb20gXCIuL3N5bnRoLXN0YWNrXCI7XG5leHBvcnQgeyBDZGt0ZlByb2plY3QsIFByb2plY3RVcGRhdGUgfSBmcm9tIFwiLi9jZGt0Zi1wcm9qZWN0XCI7XG5leHBvcnQgeyB3YXRjaCwgU3RhdGUgYXMgV2F0Y2hTdGF0ZSB9IGZyb20gXCIuL3dhdGNoXCI7XG5leHBvcnQge1xuICBOZXN0ZWRUZXJyYWZvcm1PdXRwdXRzLFxuICBzYXZlT3V0cHV0cyxcbiAgbm9ybWFsaXplT3V0cHV0UGF0aCxcbn0gZnJvbSBcIi4vb3V0cHV0XCI7XG5leHBvcnQge1xuICBEZXBsb3lpbmdSZXNvdXJjZSxcbiAgRGVwbG95aW5nUmVzb3VyY2VBcHBseVN0YXRlLFxuICBpc1RlcnJhZm9ybU91dHB1dCxcbiAgUGxhbm5lZFJlc291cmNlQWN0aW9uLFxuICBUZXJyYWZvcm1PdXRwdXQsXG59IGZyb20gXCIuL21vZGVscy90ZXJyYWZvcm1cIjtcbiJdfQ==
@@ -0,0 +1,37 @@
1
+ export interface LocalProject {
2
+ Description: string;
3
+ Name: string;
4
+ }
5
+ export interface RemoteProject extends LocalProject {
6
+ OrganizationName: string;
7
+ WorkspaceName: string;
8
+ TerraformRemoteHostname: string;
9
+ }
10
+ export type Project = LocalProject | RemoteProject;
11
+ export type InitArgs = {
12
+ cdktfVersion?: string;
13
+ destination: string;
14
+ dist?: string;
15
+ providers?: string[];
16
+ providersForceLocal?: boolean;
17
+ projectId: string;
18
+ projectInfo: Project;
19
+ templatePath: string;
20
+ sendCrashReports: boolean;
21
+ silent?: boolean;
22
+ };
23
+ export declare const templatesDir: string;
24
+ export declare const templates: string[];
25
+ export declare function init({ cdktfVersion, destination, dist, projectId, projectInfo, templatePath, sendCrashReports, providers, providersForceLocal, silent, }: InitArgs): Promise<boolean>;
26
+ export interface Deps {
27
+ npm_cdktf: string;
28
+ npm_cdktf_cli: string;
29
+ pypi_cdktf: string;
30
+ mvn_cdktf: string;
31
+ nuget_cdktf: string;
32
+ go_cdktf: string;
33
+ cdktf_version: string;
34
+ constructs_version: string;
35
+ }
36
+ export declare function determineDeps(version?: string, dist?: string): Promise<Deps>;
37
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImluaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDJDQUE2QjtBQUM3Qiw2Q0FBK0I7QUFDL0IsOENBQWdDO0FBQ2hDLDRDQUF3QztBQUV4QyxtQ0FBZ0M7QUFDaEMsaURBQWtEO0FBQ2xELGlEQUE2QztBQUM3QyxpREFBNkM7QUFFN0MsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFO0lBQzNCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMvQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELENBQUMsQ0FBQztBQUNGLE1BQU0sR0FBRyxHQUFHLGVBQWUsRUFBRSxDQUFDO0FBQzlCLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7QUEyQnpDLFFBQUEsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFMUUsTUFBTSxrQkFBa0IsR0FBRyxFQUFFO0tBQzFCLFdBQVcsQ0FBQyxvQkFBWSxDQUFDO0tBQ3pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDeEIsUUFBQSxTQUFTLEdBQWEsRUFBRSxDQUFDO0FBQ3RDLEtBQUssTUFBTSxRQUFR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Q0FBQyxRQUFRLENBQ25CLGtCQUFrQixJQUFJLGdDQUFnQyxJQUFJLEdBQUcsRUFDN0QsSUFBSSxLQUFLLEVBQUUsRUFDWCxFQUFFLE9BQU8sRUFBRSxDQUNaLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHO1lBQ2YsYUFBYSxFQUFFLE9BQU87WUFDdEIsa0JBQWtCLEVBQUUsaUJBQWlCO1NBQ3RDLENBQUM7UUFFRixPQUFPO1lBQ0wsR0FBRyxHQUFHO1lBQ04sR0FBRyxRQUFRO1NBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUN4QixNQUFNLGdCQUFNLENBQUMsS0FBSyxDQUNoQix3R0FBd0csQ0FDekcsQ0FBQztJQUNKLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsb0VBQW9FO0lBQ3BFLHlFQUF5RTtJQUN6RSxXQUFXO0lBQ1gsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTVELE9BQU87UUFDTCxhQUFhLEVBQUUsT0FBTztRQUN0QixrQkFBa0IsRUFBRSxpQkFBaUI7UUFDckMsU0FBUyxFQUFFLFNBQVMsR0FBRyxFQUFFO1FBQ3pCLGFBQWEsRUFBRSxhQUFhLEdBQUcsRUFBRTtRQUNqQyxVQUFVLEVBQUUsVUFBVSxhQUFhLEVBQUU7UUFDckMsU0FBUyxFQUFFLE9BQU87UUFDbEIsV0FBVyxFQUFFLE9BQU87UUFDcEIsUUFBUSxFQUFFLElBQUksT0FBTyxFQUFFO0tBQ3hCLENBQUM7QUFDSixDQUFDO0FBeEVELHNDQXdFQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIHBrZ1VwIGZyb20gXCJwa2ctdXBcIjtcbmltcG9ydCB7IEVycm9ycyB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuXG5pbXBvcnQgeyBzc2NhZmYgfSBmcm9tIFwic3NjYWZmXCI7XG5pbXBvcnQgeyBGVVRVUkVfRkxBR1MgfSBmcm9tIFwiY2RrdG4vbGliL2ZlYXR1cmVzXCI7XG5pbXBvcnQgeyBDZGt0ZkNvbmZpZyB9IGZyb20gXCIuL2Nka3RmLWNvbmZpZ1wiO1xuaW1wb3J0IHsgcHJvdmlkZXJBZGQgfSBmcm9tIFwiLi9wcm92aWRlci1hZGRcIjtcblxuY29uc3QgcmVhZFBhY2thZ2VKc29uID0gKCkgPT4ge1xuICBjb25zdCBwa2dQYXRoID0gcGtnVXAuc3luYyh7IGN3ZDogX19kaXJuYW1lIH0pO1xuICBpZiAoIXBrZ1BhdGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1bmFibGUgdG8gZmluZCBwYWNrYWdlLmpzb25cIik7XG4gIH1cblxuICByZXR1cm4gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGtnUGF0aCwgXCJ1dGYtOFwiKSk7XG59O1xuY29uc3QgcGtnID0gcmVhZFBhY2thZ2VKc29uKCk7XG5jb25zdCBjb25zdHJ1Y3RzVmVyc2lvbiA9IHBrZy5kZXBlbmRlbmNpZXMuY29uc3RydWN0cztcblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbFByb2plY3Qge1xuICBEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3RlUHJvamVjdCBleHRlbmRzIExvY2FsUHJvamVjdCB7XG4gIE9yZ2FuaXphdGlvbk5hbWU6IHN0cmluZztcbiAgV29ya3NwYWNlTmFtZTogc3RyaW5nO1xuICBUZXJyYWZvcm1SZW1vdGVIb3N0bmFtZTogc3RyaW5nO1xufVxuZXhwb3J0IHR5cGUgUHJvamVjdCA9IExvY2FsUHJvamVjdCB8IFJlbW90ZVByb2plY3Q7XG5cbmV4cG9ydCB0eXBlIEluaXRBcmdzID0ge1xuICBjZGt0ZlZlcnNpb24/OiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uOiBzdHJpbmc7XG4gIGRpc3Q/OiBzdHJpbmc7XG4gIHByb3ZpZGVycz86IHN0cmluZ1tdO1xuICBwcm92aWRlcnNGb3JjZUxvY2FsPzogYm9vbGVhbjtcbiAgcHJvamVjdElkOiBzdHJpbmc7XG4gIHByb2plY3RJbmZvOiBQcm9qZWN0O1xuICB0ZW1wbGF0ZVBhdGg6IHN0cmluZztcbiAgc2VuZENyYXNoUmVwb3J0czogYm9vbGVhbjtcbiAgc2lsZW50PzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCB0ZW1wbGF0ZXNEaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uXCIsIFwiLi5cIiwgXCJ0ZW1wbGF0ZXNcIik7XG5cbmNvbnN0IGF2YWlsYWJsZVRlbXBsYXRlcyA9IGZzXG4gIC5yZWFkZGlyU3luYyh0ZW1wbGF0ZXNEaXIpXG4gIC5maWx0ZXIoKHgpID0+ICF4LnN0YXJ0c1dpdGgoXCIuXCIpKTtcbmV4cG9ydCBjb25zdCB0ZW1wbGF0ZXM6IHN0cmluZ1tdID0gW107XG5mb3IgKGNvbnN0IHRlbXBsYXRlIG9mIGF2YWlsYWJsZVRlbXBsYXRlcykge1xuICB0ZW1wbGF0ZXMucHVzaCh0ZW1wbGF0ZSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbml0KHtcbiAgY2RrdGZWZXJzaW9uLFxuICBkZXN0aW5hdGlvbixcbiAgZGlzdCxcbiAgcHJvamVjdElkLFxuICBwcm9qZWN0SW5mbyxcbiAgdGVtcGxhdGVQYXRoLFxuICBzZW5kQ3Jhc2hSZXBvcnRzLFxuICBwcm92aWRlcnMsXG4gIHByb3ZpZGVyc0ZvcmNlTG9jYWwsXG4gIHNpbGVudCxcbn06IEluaXRBcmdzKSB7XG4gIGNvbnN0IGRlcHM6IGFueSA9IGF3YWl0IGRldGVybWluZURlcHMoY2RrdGZWZXJzaW9uLCBkaXN0KTtcblxuICBjb25zdCBmdXR1cmVGbGFncyA9IE9iamVjdC5lbnRyaWVzKEZVVFVSRV9GTEFHUylcbiAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAgICAgXCIke2tleX1cIjogXCIke3ZhbHVlfVwiYClcbiAgICAuam9pbihgLFxcbmApO1xuXG4gIGF3YWl0IHNzY2FmZih0ZW1wbGF0ZVBhdGgsIGRlc3RpbmF0aW9uLCB7XG4gICAgLi4uZGVwcyxcbiAgICAuLi5wcm9qZWN0SW5mbyxcbiAgICBmdXR1cmVGbGFncyxcbiAgICBwcm9qZWN0SWQsXG4gICAgc2VuZENyYXNoUmVwb3J0cyxcbiAgICBzaWxlbnQsXG4gIH0pO1xuICBjb25zdCBjZGt0ZkNvbmZpZyA9IENka3RmQ29uZmlnLnJlYWQoZGVzdGluYXRpb24pO1xuXG4gIGxldCBuZWVkc0dldCA9IGZhbHNlO1xuICBpZiAocHJvdmlkZXJzICYmIHByb3ZpZGVycy5sZW5ndGgpIHtcbiAgICBuZWVkc0dldCA9IGF3YWl0IHByb3ZpZGVyQWRkKHtcbiAgICAgIHByb3ZpZGVyczogcHJvdmlkZXJzLFxuICAgICAgbGFuZ3VhZ2U6IGNka3RmQ29uZmlnLmxhbmd1YWdlLFxuICAgICAgcHJvamVjdERpcmVjdG9yeTogZGVzdGluYXRpb24sXG4gICAgICBmb3JjZUxvY2FsOiBwcm92aWRlcnNGb3JjZUxvY2FsLFxuICAgICAgZGlzdCxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gbmVlZHNHZXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwcyB7XG4gIG5wbV9jZGt0Zjogc3RyaW5nO1xuICBucG1fY2RrdGZfY2xpOiBzdHJpbmc7XG4gIHB5cGlfY2RrdGY6IHN0cmluZztcbiAgbXZuX2Nka3RmOiBzdHJpbmc7XG4gIG51Z2V0X2Nka3RmOiBzdHJpbmc7XG4gIGdvX2Nka3RmOiBzdHJpbmc7XG4gIGNka3RmX3ZlcnNpb246IHN0cmluZztcbiAgY29uc3RydWN0c192ZXJzaW9uOiBzdHJpbmc7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGV0ZXJtaW5lRGVwcyhcbiAgdmVyc2lvbjogc3RyaW5nID0gcGtnLnZlcnNpb24sXG4gIGRpc3Q/OiBzdHJpbmcsXG4pOiBQcm9taXNlPERlcHM+IHtcbiAgLy8gVFM6IGNka3RmLTAuMTAuMS1kZXYuMjE2MDkzODI1OFxuICAvLyBQeTogY2RrdGYtMC4xMC4xLmRldjE2NTg4MjE0OTMud2hsXG4gIGNvbnN0IHB5dGhvblZlcnNpb24gPSB2ZXJzaW9uXG4gICAgLnJlcGxhY2UoLy1wcmVcXC4vZywgXCIuZGV2XCIpXG4gICAgLnJlcGxhY2UoLy1kZXZcXC4vZywgXCIuZGV2XCIpO1xuXG4gIGlmIChkaXN0KSB7XG4gICAgLy8gVE9ETzogV2hhdCBhYm91dCBleGlzdGluZyBjZGt0ZiBUUy9QWSBkZXBlbmRlbmNpZXM/XG4gICAgY29uc3QgcmV0ID0ge1xuICAgICAgbnBtX2Nka3RmOiBwYXRoLnJlc29sdmUoZGlzdCwgXCJqc1wiLCBgY2RrdG5AJHt2ZXJzaW9ufS5qc2lpLnRnemApLFxuICAgICAgbnBtX2Nka3RmX2NsaTogcGF0aC5yZXNvbHZlKGRpc3QsIFwianNcIiwgYGNka3RuLWNsaS0ke3ZlcnNpb259LnRnemApLFxuICAgICAgcHlwaV9jZGt0ZjogcGF0aC5yZXNvbHZlKFxuICAgICAgICBkaXN0LFxuICAgICAgICBcInB5dGhvblwiLFxuICAgICAgICBgY2RrdG4tJHtweXRob25WZXJzaW9ufS1weTMtbm9uZS1hbnkud2hsYCxcbiAgICAgICksXG4gICAgICBtdm5fY2RrdGY6IHBhdGgucmVzb2x2ZShcbiAgICAgICAgZGlzdCxcbiAgICAgICAgXCJqYXZhXCIsXG4gICAgICAgIGBpby9jZGt0bi9jZGt0bi8ke3ZlcnNpb259L2Nka3RuLSR7dmVyc2lvbn0uamFyYCxcbiAgICAgICksXG4gICAgICBudWdldF9jZGt0ZjogcGF0aC5yZXNvbHZlKGRpc3QsIFwiZG90bmV0XCIsIGBJby5DZGt0bi4ke3ZlcnNpb259Lm51cGtnYCksXG4gICAgICBnb19jZGt0ZjogcGF0aC5yZXNvbHZlKGRpc3QsIFwiZ29cIiwgYGNka3RuYCksXG4gICAgfTtcblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBPYmplY3QudmFsdWVzKHJldCkpIHtcbiAgICAgIGlmICghKGF3YWl0IGZzLnBhdGhFeGlzdHMoZmlsZSkpKSB7XG4gICAgICAgIHRocm93IEVycm9ycy5JbnRlcm5hbChcbiAgICAgICAgICBgdW5hYmxlIHRvIGZpbmQgJHtmaWxlfSB1bmRlciB0aGUgXCJkaXN0XCIgZGlyZWN0b3J5ICgke2Rpc3R9KWAsXG4gICAgICAgICAgbmV3IEVycm9yKCksXG4gICAgICAgICAgeyB2ZXJzaW9uIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdmVyc2lvbnMgPSB7XG4gICAgICBjZGt0Zl92ZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgY29uc3RydWN0c192ZXJzaW9uOiBjb25zdHJ1Y3RzVmVyc2lvbixcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJldCxcbiAgICAgIC4uLnZlcnNpb25zLFxuICAgIH07XG4gIH1cblxuICBpZiAodmVyc2lvbiA9PT0gXCIwLjAuMFwiKSB7XG4gICAgdGhyb3cgRXJyb3JzLlVzYWdlKFxuICAgICAgYGNhbm5vdCB1c2UgdmVyc2lvbiAwLjAuMCwgdXNlIC0tY2RrdGYtdmVyc2lvbiwgLS1kaXN0IG9yIENES1RGX0RJU1QgdG8gaW5zdGFsbCBmcm9tIGEgXCJkaXN0XCIgZGlyZWN0b3J5YCxcbiAgICApO1xuICB9XG5cbiAgLy8gZGV0ZXJtaW5lIGlmIHdlIHdhbnQgYSBzcGVjaWZpYyBwaW5uZWQgdmVyc2lvbiBvciBhIHZlcnNpb24gcmFuZ2Ugd2UgdGFrZVxuICAvLyBhIHBpbm5lZCB2ZXJzaW9uIGlmIHZlcnNpb24gaW5jbHVkZXMgYSBoeXBoZW4gd2hpY2ggbWVhbnMgaXQgaXMgYVxuICAvLyBwcmUtcmVsZWFzZSAoZS5nLiBcIjAuMTIuMC1wcmUuZTY4MzRkM1wiKS4gb3RoZXJ3aXNlLCB3ZSByZXF1aXJlIGEgY2FyZXRcbiAgLy8gdmVyc2lvbi5cbiAgY29uc3QgdmVyID0gdmVyc2lvbi5pbmNsdWRlcyhcIi1cIikgPyB2ZXJzaW9uIDogYF4ke3ZlcnNpb259YDtcblxuICByZXR1cm4ge1xuICAgIGNka3RmX3ZlcnNpb246IHZlcnNpb24sXG4gICAgY29uc3RydWN0c192ZXJzaW9uOiBjb25zdHJ1Y3RzVmVyc2lvbixcbiAgICBucG1fY2RrdGY6IGBjZGt0bkAke3Zlcn1gLFxuICAgIG5wbV9jZGt0Zl9jbGk6IGBjZGt0bi1jbGlAJHt2ZXJ9YCxcbiAgICBweXBpX2Nka3RmOiBgY2RrdG5+PSR7cHl0aG9uVmVyc2lvbn1gLFxuICAgIG12bl9jZGt0ZjogdmVyc2lvbixcbiAgICBudWdldF9jZGt0ZjogdmVyc2lvbixcbiAgICBnb19jZGt0ZjogYHYke3ZlcnNpb259YCxcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import * as z from "zod";
2
+ declare const constraintsType: z.ZodObject<{
3
+ cdktf: z.ZodString;
4
+ providers: z.ZodRecord<z.ZodString, z.ZodString>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ cdktf: string;
7
+ providers: Record<string, string>;
8
+ }, {
9
+ cdktf: string;
10
+ providers: Record<string, string>;
11
+ }>;
12
+ export type Constraints = z.infer<typeof constraintsType>;
13
+ /**
14
+ * Class to help with reading `constraints.json` file
15
+ * published by `provider get` or `provider add` commands
16
+ */
17
+ export declare class LocalProviderConstraints {
18
+ private constraints;
19
+ private get jsonFilePath();
20
+ private readLocalConstraintsJson;
21
+ constraintsForAllProviders(): Promise<{
22
+ cdktf: string;
23
+ providers: Record<string, string>;
24
+ } | undefined>;
25
+ constraintForProvider(providerName: string): Promise<string | null>;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=local-provider-constraints.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,95 @@
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==
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Class to help with reading `versions.json` file
3
+ * published by `provider get` or `provider add` commands
4
+ */
5
+ export declare class LocalProviderVersions {
6
+ private versions;
7
+ private get jsonFilePath();
8
+ private readLocalVersionsJson;
9
+ versionsForAllProviders(): Promise<Record<string, string> | undefined>;
10
+ versionForProvider(providerName: string): Promise<string | null>;
11
+ }
12
+ //# sourceMappingURL=local-provider-versions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-provider-versions.d.ts","sourceRoot":"","sources":["local-provider-versions.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAqC;IAErD,OAAO,KAAK,YAAY,GAGvB;YAEa,qBAAqB;IAkCtB,uBAAuB;IAUvB,kBAAkB,CAC7B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAc1B"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LocalProviderVersions = void 0;
7
+ // Copyright (c) HashiCorp, Inc
8
+ // SPDX-License-Identifier: MPL-2.0
9
+ const commons_1 = require("@cdktn/commons");
10
+ const fs_extra_1 = __importDefault(require("fs-extra"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const cdktf_config_1 = require("./cdktf-config");
13
+ const dependency_manager_1 = require("./dependencies/dependency-manager");
14
+ // TODO: move this to @cdktn/commons
15
+ // tracked here https://github.com/hashicorp/terraform-cdk/issues/1814
16
+ /**
17
+ * Class to help with reading `versions.json` file
18
+ * published by `provider get` or `provider add` commands
19
+ */
20
+ class LocalProviderVersions {
21
+ get jsonFilePath() {
22
+ const config = cdktf_config_1.CdktfConfig.read();
23
+ return path_1.default.resolve(config.codeMakerOutput, "versions.json");
24
+ }
25
+ async readLocalVersionsJson() {
26
+ let versionsJson;
27
+ try {
28
+ versionsJson = await fs_extra_1.default.readFile(this.jsonFilePath, "utf8");
29
+ }
30
+ catch (e) {
31
+ // If we cannot read the versions.json file, it may not exist
32
+ commons_1.logger.debug("versions.json file reading error: ", e);
33
+ this.versions = undefined;
34
+ return;
35
+ }
36
+ let providerVersions;
37
+ try {
38
+ providerVersions = JSON.parse(versionsJson);
39
+ }
40
+ catch (e) {
41
+ throw commons_1.Errors.External("versions.json file is malformed. The root must be a JSON object.", e);
42
+ }
43
+ this.versions = Object.fromEntries(Object.entries(providerVersions).map(([providerFqn, versions]) => {
44
+ return [
45
+ providerFqn
46
+ .replace(`${dependency_manager_1.DEFAULT_HOSTNAME}/`, "")
47
+ .replace(`${dependency_manager_1.DEFAULT_NAMESPACE}/`, "")
48
+ .toLowerCase(),
49
+ versions,
50
+ ];
51
+ }));
52
+ }
53
+ async versionsForAllProviders() {
54
+ if (this.versions) {
55
+ return this.versions;
56
+ }
57
+ await this.readLocalVersionsJson();
58
+ return this.versions;
59
+ }
60
+ async versionForProvider(providerName) {
61
+ const versions = await this.versionsForAllProviders();
62
+ if (!versions) {
63
+ return null;
64
+ }
65
+ const providerVersion = versions[providerName.toLowerCase()];
66
+ if (!providerName) {
67
+ return null;
68
+ }
69
+ return providerVersion;
70
+ }
71
+ }
72
+ exports.LocalProviderVersions = LocalProviderVersions;
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtcHJvdmlkZXItdmVyc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsb2NhbC1wcm92aWRlci12ZXJzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDRDQUFnRDtBQUNoRCx3REFBMEI7QUFDMUIsZ0RBQXdCO0FBQ3hCLGlEQUE2QztBQUM3QywwRUFHMkM7QUFFM0Msb0NBQW9DO0FBQ3BDLHNFQUFzRTtBQUN0RTs7O0dBR0c7QUFDSCxNQUFhLHFCQUFxQjtJQUdoQyxJQUFZLFlBQVk7UUFDdEIsTUFBTSxNQUFNLEdBQUcsMEJBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxPQUFPLGNBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU8sS0FBSyxDQUFDLHFCQUFxQjtRQUNqQyxJQUFJLFlBQVksQ0FBQztRQUNqQixJQUFJLENBQUM7WUFDSCxZQUFZLEdBQUcsTUFBTSxrQkFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsNkRBQTZEO1lBQzdELGdCQUFNLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1lBQzFCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxnQkFBZ0IsQ0FBQztRQUNyQixJQUFJLENBQUM7WUFDSCxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBMkIsQ0FBQztRQUN4RSxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLGdCQUFNLENBQUMsUUFBUSxDQUNuQixrRUFBa0UsRUFDbEUsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNoQyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUMvRCxPQUFPO2dCQUNMLFdBQVc7cUJBQ1IsT0FBTyxDQUFDLEdBQUcscUNBQWdCLEdBQUcsRUFBRSxFQUFFLENBQUM7cUJBQ25DLE9BQU8sQ0FBQyxHQUFHLHNDQUFpQixHQUFHLEVBQUUsRUFBRSxDQUFDO3FCQUNwQyxXQUFXLEVBQUU7Z0JBQ2hCLFFBQVE7YUFDVCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsdUJBQXVCO1FBQ2xDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixDQUFDO1FBRUQsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUVuQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVNLEtBQUssQ0FBQyxrQkFBa0IsQ0FDN0IsWUFBb0I7UUFFcEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUV0RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7Q0FDRjtBQXBFRCxzREFvRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgRXJyb3JzLCBsb2dnZXIgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBDZGt0ZkNvbmZpZyB9IGZyb20gXCIuL2Nka3RmLWNvbmZpZ1wiO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9IT1NUTkFNRSxcbiAgREVGQVVMVF9OQU1FU1BBQ0UsXG59IGZyb20gXCIuL2RlcGVuZGVuY2llcy9kZXBlbmRlbmN5LW1hbmFnZXJcIjtcblxuLy8gVE9ETzogbW92ZSB0aGlzIHRvIEBjZGt0bi9jb21tb25zXG4vLyB0cmFja2VkIGhlcmUgaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2lzc3Vlcy8xODE0XG4vKipcbiAqIENsYXNzIHRvIGhlbHAgd2l0aCByZWFkaW5nIGB2ZXJzaW9ucy5qc29uYCBmaWxlXG4gKiBwdWJsaXNoZWQgYnkgYHByb3ZpZGVyIGdldGAgb3IgYHByb3ZpZGVyIGFkZGAgY29tbWFuZHNcbiAqL1xuZXhwb3J0IGNsYXNzIExvY2FsUHJvdmlkZXJWZXJzaW9ucyB7XG4gIHByaXZhdGUgdmVyc2lvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBnZXQganNvbkZpbGVQYXRoKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29uZmlnID0gQ2RrdGZDb25maWcucmVhZCgpO1xuICAgIHJldHVybiBwYXRoLnJlc29sdmUoY29uZmlnLmNvZGVNYWtlck91dHB1dCwgXCJ2ZXJzaW9ucy5qc29uXCIpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWFkTG9jYWxWZXJzaW9uc0pzb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgbGV0IHZlcnNpb25zSnNvbjtcbiAgICB0cnkge1xuICAgICAgdmVyc2lvbnNKc29uID0gYXdhaXQgZnMucmVhZEZpbGUodGhpcy5qc29uRmlsZVBhdGgsIFwidXRmOFwiKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBJZiB3ZSBjYW5ub3QgcmVhZCB0aGUgdmVyc2lvbnMuanNvbiBmaWxlLCBpdCBtYXkgbm90IGV4aXN0XG4gICAgICBsb2dnZXIuZGVidWcoXCJ2ZXJzaW9ucy5qc29uIGZpbGUgcmVhZGluZyBlcnJvcjogXCIsIGUpO1xuICAgICAgdGhpcy52ZXJzaW9ucyA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgcHJvdmlkZXJWZXJzaW9ucztcbiAgICB0cnkge1xuICAgICAgcHJvdmlkZXJWZXJzaW9ucyA9IEpTT04ucGFyc2UodmVyc2lvbnNKc29uKSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgRXJyb3JzLkV4dGVybmFsKFxuICAgICAgICBcInZlcnNpb25zLmpzb24gZmlsZSBpcyBtYWxmb3JtZWQuIFRoZSByb290IG11c3QgYmUgYSBKU09OIG9iamVjdC5cIixcbiAgICAgICAgZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy52ZXJzaW9ucyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHByb3ZpZGVyVmVyc2lvbnMpLm1hcCgoW3Byb3ZpZGVyRnFuLCB2ZXJzaW9uc10pID0+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBwcm92aWRlckZxblxuICAgICAgICAgICAgLnJlcGxhY2UoYCR7REVGQVVMVF9IT1NUTkFNRX0vYCwgXCJcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKGAke0RFRkFVTFRfTkFNRVNQQUNFfS9gLCBcIlwiKVxuICAgICAgICAgICAgLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgdmVyc2lvbnMsXG4gICAgICAgIF07XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHZlcnNpb25zRm9yQWxsUHJvdmlkZXJzKCkge1xuICAgIGlmICh0aGlzLnZlcnNpb25zKSB7XG4gICAgICByZXR1cm4gdGhpcy52ZXJzaW9ucztcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnJlYWRMb2NhbFZlcnNpb25zSnNvbigpO1xuXG4gICAgcmV0dXJuIHRoaXMudmVyc2lvbnM7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmVyc2lvbkZvclByb3ZpZGVyKFxuICAgIHByb3ZpZGVyTmFtZTogc3RyaW5nLFxuICApOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICBjb25zdCB2ZXJzaW9ucyA9IGF3YWl0IHRoaXMudmVyc2lvbnNGb3JBbGxQcm92aWRlcnMoKTtcblxuICAgIGlmICghdmVyc2lvbnMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3ZpZGVyVmVyc2lvbiA9IHZlcnNpb25zW3Byb3ZpZGVyTmFtZS50b0xvd2VyQ2FzZSgpXTtcbiAgICBpZiAoIXByb3ZpZGVyTmFtZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3ZpZGVyVmVyc2lvbjtcbiAgfVxufVxuIl19
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import { EventObject, Sender, Receiver } from "xstate";
6
+ import * as pty from "@cdktf/node-pty-prebuilt-multiarch";
7
+ import { spawnPty } from "./pty-process";
8
+ interface PtySpawnConfig {
9
+ file: Parameters<typeof pty.spawn>[0];
10
+ args: Parameters<typeof pty.spawn>[1];
11
+ options: Parameters<typeof pty.spawn>[2] & {
12
+ cwd: string;
13
+ };
14
+ }
15
+ interface DeployContext {
16
+ exitCode?: number;
17
+ /**
18
+ * Terraform will exit with 1 if it was cancelled, but we don't want to fail in that case
19
+ */
20
+ cancelled?: boolean;
21
+ }
22
+ export type DeployEvent = {
23
+ type: "START";
24
+ pty: PtySpawnConfig;
25
+ } | {
26
+ type: "STOP";
27
+ } | {
28
+ type: "SEND_LINE";
29
+ input: string;
30
+ } | {
31
+ type: "OUTPUT_RECEIVED";
32
+ output: string;
33
+ } | {
34
+ type: "APPROVED_EXTERNALLY";
35
+ } | {
36
+ type: "REJECTED_EXTERNALLY";
37
+ } | {
38
+ type: "OVERRIDDEN_EXTERNALLY";
39
+ } | {
40
+ type: "OVERRIDE_REJECTED_EXTERNALLY";
41
+ } | {
42
+ type: "OVERRIDE";
43
+ } | {
44
+ type: "REJECT_OVERRIDE";
45
+ } | {
46
+ type: "REQUEST_APPROVAL";
47
+ } | {
48
+ type: "VARIABLE_MISSING";
49
+ variableName: string;
50
+ } | {
51
+ type: "REQUEST_SENTINEL_OVERRIDE";
52
+ } | {
53
+ type: "APPROVE";
54
+ } | {
55
+ type: "REJECT";
56
+ } | {
57
+ type: "EXITED";
58
+ exitCode: number;
59
+ };
60
+ export declare function isDeployEvent<DeployEventType extends DeployEvent["type"]>(event: EventObject, type: DeployEventType): event is DeployEvent & {
61
+ type: DeployEventType;
62
+ };
63
+ export type DeployState = {
64
+ value: "idle";
65
+ context: DeployContext;
66
+ } | {
67
+ value: "running";
68
+ context: DeployContext;
69
+ } | {
70
+ value: {
71
+ running: "processing";
72
+ };
73
+ context: DeployContext;
74
+ } | {
75
+ value: {
76
+ running: "awaiting_approval";
77
+ };
78
+ context: DeployContext;
79
+ } | {
80
+ value: {
81
+ running: "awaiting_sentinel_override";
82
+ };
83
+ context: DeployContext;
84
+ } | {
85
+ value: "exited";
86
+ context: DeployContext & {
87
+ exitCode: number;
88
+ };
89
+ } | {
90
+ value: "stopped";
91
+ context: DeployContext;
92
+ };
93
+ export declare function extractVariableNameFromPrompt(line: string): string;
94
+ interface BufferedReceiverFunction {
95
+ (output: string): void;
96
+ /**
97
+ * used to get the last buffer when the PTY exits to log a debug message if there's output left in there
98
+ * (might help debugging on Windows if EOL from Nodejs doesn't work in WSL)
99
+ */
100
+ getBuffer: () => string;
101
+ }
102
+ export declare function bufferUnterminatedLines(handler: (output: string) => void): BufferedReceiverFunction;
103
+ export declare function handleLineReceived(send: (event: DeployEvent) => void): (output: string) => void;
104
+ export declare const deployMachine: import("xstate").StateMachine<DeployContext, any, DeployEvent, DeployState, import("xstate").BaseActionObject, import("xstate").ServiceMap, import("xstate").ResolveTypegenMeta<import("xstate").TypegenDisabled, DeployEvent, import("xstate").BaseActionObject, import("xstate").ServiceMap>>;
105
+ export declare function terraformPtyService(_context: DeployContext, event: DeployEvent, spawn?: typeof spawnPty): (send: Sender<DeployEvent>, onReceive: Receiver<DeployEvent>) => void;
106
+ export declare function createAndStartDeployService(options: {
107
+ refreshOnly?: boolean;
108
+ parallelism: number;
109
+ extraOptions: string[];
110
+ terraformBinaryName: string;
111
+ autoApprove?: boolean;
112
+ noColor?: boolean;
113
+ workdir: string;
114
+ vars?: string[];
115
+ varFiles?: string[];
116
+ }): import("xstate").Interpreter<DeployContext, any, DeployEvent, DeployState, import("xstate").ResolveTypegenMeta<import("xstate").TypegenDisabled, DeployEvent, import("xstate").BaseActionObject, import("xstate").ServiceMap>>;
117
+ export declare function createAndStartDestroyService(options: {
118
+ parallelism: number;
119
+ extraOptions: string[];
120
+ terraformBinaryName: string;
121
+ autoApprove?: boolean;
122
+ noColor?: boolean;
123
+ workdir: string;
124
+ vars?: string[];
125
+ varFiles?: string[];
126
+ }): import("xstate").Interpreter<DeployContext, any, DeployEvent, DeployState, import("xstate").ResolveTypegenMeta<import("xstate").TypegenDisabled, DeployEvent, import("xstate").BaseActionObject, import("xstate").ServiceMap>>;
127
+ export {};
128
+ //# sourceMappingURL=deploy-machine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-machine.d.ts","sourceRoot":"","sources":["deploy-machine.ts"],"names":[],"mappings":"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"}