@cdktn/cli-core 0.21.0
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.
- package/README.md +3 -0
- package/ambient.d.ts +13 -0
- package/eslint.config.mjs +82 -0
- package/jest.config.js +20 -0
- package/package.json +139 -0
- package/src/lib/cdktf-config.d.ts +16 -0
- package/src/lib/cdktf-config.d.ts.map +1 -0
- package/src/lib/cdktf-config.js +108 -0
- package/src/lib/cdktf-project-io-handler.d.ts +20 -0
- package/src/lib/cdktf-project-io-handler.d.ts.map +1 -0
- package/src/lib/cdktf-project-io-handler.js +84 -0
- package/src/lib/cdktf-project.d.ts +111 -0
- package/src/lib/cdktf-project.d.ts.map +1 -0
- package/src/lib/cdktf-project.js +371 -0
- package/src/lib/cdktf-stack.d.ts +134 -0
- package/src/lib/cdktf-stack.d.ts.map +1 -0
- package/src/lib/cdktf-stack.js +386 -0
- package/src/lib/convert.d.ts +6 -0
- package/src/lib/convert.d.ts.map +1 -0
- package/src/lib/convert.js +51 -0
- package/src/lib/dependencies/cdktf-config-manager.d.ts +12 -0
- package/src/lib/dependencies/cdktf-config-manager.d.ts.map +1 -0
- package/src/lib/dependencies/cdktf-config-manager.js +36 -0
- package/src/lib/dependencies/dependency-manager.d.ts +95 -0
- package/src/lib/dependencies/dependency-manager.d.ts.map +1 -0
- package/src/lib/dependencies/dependency-manager.js +393 -0
- package/src/lib/dependencies/package-manager.d.ts +18 -0
- package/src/lib/dependencies/package-manager.d.ts.map +1 -0
- package/src/lib/dependencies/package-manager.js +581 -0
- package/src/lib/dependencies/prebuilt-providers.d.ts +23 -0
- package/src/lib/dependencies/prebuilt-providers.d.ts.map +1 -0
- package/src/lib/dependencies/prebuilt-providers.js +220 -0
- package/src/lib/dependencies/registry-api.d.ts +8 -0
- package/src/lib/dependencies/registry-api.d.ts.map +1 -0
- package/src/lib/dependencies/registry-api.js +77 -0
- package/src/lib/dependencies/version-constraints.d.ts +8 -0
- package/src/lib/dependencies/version-constraints.d.ts.map +1 -0
- package/src/lib/dependencies/version-constraints.js +95 -0
- package/src/lib/error-reporting.d.ts +10 -0
- package/src/lib/error-reporting.d.ts.map +1 -0
- package/src/lib/error-reporting.js +133 -0
- package/src/lib/errors.d.ts +6 -0
- package/src/lib/errors.d.ts.map +1 -0
- package/src/lib/errors.js +10 -0
- package/src/lib/execution-logs.d.ts +3 -0
- package/src/lib/execution-logs.d.ts.map +1 -0
- package/src/lib/execution-logs.js +47 -0
- package/src/lib/get.d.ts +25 -0
- package/src/lib/get.d.ts.map +1 -0
- package/src/lib/get.js +90 -0
- package/src/lib/helpers/stack-helpers.d.ts +16 -0
- package/src/lib/helpers/stack-helpers.d.ts.map +1 -0
- package/src/lib/helpers/stack-helpers.js +155 -0
- package/src/lib/index.d.ts +15 -0
- package/src/lib/index.d.ts.map +1 -0
- package/src/lib/index.js +44 -0
- package/src/lib/init.d.ts +37 -0
- package/src/lib/init.d.ts.map +1 -0
- package/src/lib/init.js +131 -0
- package/src/lib/local-provider-constraints.d.ts +28 -0
- package/src/lib/local-provider-constraints.d.ts.map +1 -0
- package/src/lib/local-provider-constraints.js +95 -0
- package/src/lib/local-provider-versions.d.ts +12 -0
- package/src/lib/local-provider-versions.d.ts.map +1 -0
- package/src/lib/local-provider-versions.js +73 -0
- package/src/lib/models/deploy-machine.d.ts +128 -0
- package/src/lib/models/deploy-machine.d.ts.map +1 -0
- package/src/lib/models/deploy-machine.js +280 -0
- package/src/lib/models/pty-process.d.ts +29 -0
- package/src/lib/models/pty-process.d.ts.map +1 -0
- package/src/lib/models/pty-process.js +132 -0
- package/src/lib/models/schema.d.ts +2307 -0
- package/src/lib/models/schema.d.ts.map +1 -0
- package/src/lib/models/schema.js +181 -0
- package/src/lib/models/terraform-cli.d.ts +72 -0
- package/src/lib/models/terraform-cli.d.ts.map +1 -0
- package/src/lib/models/terraform-cli.js +357 -0
- package/src/lib/models/terraform.d.ts +125 -0
- package/src/lib/models/terraform.d.ts.map +1 -0
- package/src/lib/models/terraform.js +72 -0
- package/src/lib/output.d.ts +23 -0
- package/src/lib/output.d.ts.map +1 -0
- package/src/lib/output.js +211 -0
- package/src/lib/provider-add.d.ts +15 -0
- package/src/lib/provider-add.d.ts.map +1 -0
- package/src/lib/provider-add.js +30 -0
- package/src/lib/server/terraform-logs.d.ts +2 -0
- package/src/lib/server/terraform-logs.d.ts.map +1 -0
- package/src/lib/server/terraform-logs.js +19 -0
- package/src/lib/synth-stack.d.ts +29 -0
- package/src/lib/synth-stack.d.ts.map +1 -0
- package/src/lib/synth-stack.js +251 -0
- package/src/lib/synth.d.ts +7 -0
- package/src/lib/synth.d.ts.map +1 -0
- package/src/lib/synth.js +67 -0
- package/src/lib/terraform-json.d.ts +1015 -0
- package/src/lib/terraform-json.d.ts.map +1 -0
- package/src/lib/terraform-json.js +82 -0
- package/src/lib/terraform-provider-lock.d.ts +25 -0
- package/src/lib/terraform-provider-lock.d.ts.map +1 -0
- package/src/lib/terraform-provider-lock.js +95 -0
- package/src/lib/watch.d.ts +16 -0
- package/src/lib/watch.d.ts.map +1 -0
- package/src/lib/watch.js +155 -0
- package/templates/csharp/.hooks.sscaff.js +63 -0
- package/templates/csharp/MainStack.cs +15 -0
- package/templates/csharp/MyTerraformStack.csproj +13 -0
- package/templates/csharp/Program.cs +17 -0
- package/templates/csharp/TestProgram.cs +42 -0
- package/templates/csharp/cdktf.json +11 -0
- package/templates/csharp/help +42 -0
- package/templates/csharp/{{}}.gitignore +345 -0
- package/templates/go/.hooks.sscaff.js +70 -0
- package/templates/go/cdktf.json +12 -0
- package/templates/go/go.mod +8 -0
- package/templates/go/help +32 -0
- package/templates/go/main.go +22 -0
- package/templates/go/main_test.go +42 -0
- package/templates/go/{{}}.gitignore +21 -0
- package/templates/java/.hooks.sscaff.js +64 -0
- package/templates/java/build.gradle +55 -0
- package/templates/java/cdktf.json +12 -0
- package/templates/java/gradle.properties +1 -0
- package/templates/java/gradlew +248 -0
- package/templates/java/gradlew.bat +92 -0
- package/templates/java/help +35 -0
- package/templates/java/settings.gradle +5 -0
- package/templates/java/src/main/java/com/mycompany/app/Main.java +16 -0
- package/templates/java/src/main/java/com/mycompany/app/MainStack.java +14 -0
- package/templates/java/src/test/java/com/company/app/MainTest.java +38 -0
- package/templates/java/{{}}.gitignore +14 -0
- package/templates/python/.hooks.sscaff.js +59 -0
- package/templates/python/Pipfile +7 -0
- package/templates/python/cdktf.json +12 -0
- package/templates/python/help +42 -0
- package/templates/python/main-test.py +26 -0
- package/templates/python/main.py +16 -0
- package/templates/python/{{}}.gitignore +7 -0
- package/templates/python-pip/.hooks.sscaff.js +63 -0
- package/templates/python-pip/cdktf.json +12 -0
- package/templates/python-pip/help +35 -0
- package/templates/python-pip/main-test.py +23 -0
- package/templates/python-pip/main.py +16 -0
- package/templates/python-pip/{{}}.gitignore +7 -0
- package/templates/typescript/.hooks.sscaff.js +78 -0
- package/templates/typescript/__tests__/main-test.ts +89 -0
- package/templates/typescript/cdktf.json +11 -0
- package/templates/typescript/help +51 -0
- package/templates/typescript/jest.config.js +187 -0
- package/templates/typescript/main.ts +14 -0
- package/templates/typescript/package.json +22 -0
- package/templates/typescript/setup.js +2 -0
- package/templates/typescript/tsconfig.json +35 -0
- package/templates/typescript/{{}}.gitignore +11 -0
package/src/lib/index.js
ADDED
|
@@ -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"}
|
package/src/lib/init.js
ADDED
|
@@ -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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"}
|