@cdktn/cli-core 0.23.0-pre.8 → 0.23.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/ambient.d.ts +0 -1
- package/build/lib/cdktf-config.d.ts.map +1 -0
- package/build/lib/cdktf-config.js +108 -0
- package/build/lib/cdktf-project-io-handler.d.ts.map +1 -0
- package/build/lib/cdktf-project-io-handler.js +84 -0
- package/build/lib/cdktf-project.d.ts.map +1 -0
- package/build/lib/cdktf-project.js +370 -0
- package/{src → build}/lib/cdktf-stack.d.ts +1 -0
- package/build/lib/cdktf-stack.d.ts.map +1 -0
- package/build/lib/cdktf-stack.js +386 -0
- package/build/lib/convert.d.ts.map +1 -0
- package/build/lib/convert.js +51 -0
- package/build/lib/dependencies/cdktf-config-manager.d.ts.map +1 -0
- package/build/lib/dependencies/cdktf-config-manager.js +36 -0
- package/build/lib/dependencies/dependency-manager.d.ts.map +1 -0
- package/build/lib/dependencies/dependency-manager.js +393 -0
- package/build/lib/dependencies/package-manager.d.ts.map +1 -0
- package/build/lib/dependencies/package-manager.js +581 -0
- package/build/lib/dependencies/prebuilt-providers.d.ts.map +1 -0
- package/build/lib/dependencies/prebuilt-providers.js +221 -0
- package/build/lib/dependencies/registry-api.d.ts.map +1 -0
- package/build/lib/dependencies/registry-api.js +77 -0
- package/build/lib/dependencies/version-constraints.d.ts.map +1 -0
- package/build/lib/dependencies/version-constraints.js +95 -0
- package/build/lib/error-reporting.d.ts.map +1 -0
- package/build/lib/error-reporting.js +133 -0
- package/build/lib/errors.d.ts.map +1 -0
- package/build/lib/errors.js +10 -0
- package/build/lib/execution-logs.d.ts.map +1 -0
- package/build/lib/execution-logs.js +47 -0
- package/build/lib/get.d.ts.map +1 -0
- package/build/lib/get.js +90 -0
- package/build/lib/helpers/stack-helpers.d.ts.map +1 -0
- package/build/lib/helpers/stack-helpers.js +155 -0
- package/build/lib/index.d.ts.map +1 -0
- package/{src → build}/lib/index.js +1 -2
- package/build/lib/init.d.ts.map +1 -0
- package/build/lib/init.js +131 -0
- package/build/lib/local-provider-constraints.d.ts.map +1 -0
- package/build/lib/local-provider-constraints.js +95 -0
- package/build/lib/local-provider-versions.d.ts.map +1 -0
- package/build/lib/local-provider-versions.js +73 -0
- package/{src → build}/lib/models/deploy-machine.d.ts +3 -11
- package/build/lib/models/deploy-machine.d.ts.map +1 -0
- package/build/lib/models/deploy-machine.js +283 -0
- package/build/lib/models/interactive-process.d.ts +28 -0
- package/build/lib/models/interactive-process.d.ts.map +1 -0
- package/build/lib/models/interactive-process.js +59 -0
- package/{src → build}/lib/models/schema.d.ts.map +1 -1
- package/build/lib/models/schema.js +181 -0
- package/{src → build}/lib/models/terraform-cli.d.ts +1 -0
- package/build/lib/models/terraform-cli.d.ts.map +1 -0
- package/build/lib/models/terraform-cli.js +355 -0
- package/build/lib/models/terraform.d.ts.map +1 -0
- package/build/lib/models/terraform.js +72 -0
- package/build/lib/output.d.ts.map +1 -0
- package/build/lib/output.js +211 -0
- package/build/lib/provider-add.d.ts.map +1 -0
- package/build/lib/provider-add.js +30 -0
- package/build/lib/server/terraform-logs.d.ts.map +1 -0
- package/build/lib/server/terraform-logs.js +19 -0
- package/{src → build}/lib/synth-stack.d.ts +1 -0
- package/build/lib/synth-stack.d.ts.map +1 -0
- package/build/lib/synth-stack.js +251 -0
- package/build/lib/synth.d.ts.map +1 -0
- package/build/lib/synth.js +67 -0
- package/{src → build}/lib/terraform-json.d.ts.map +1 -1
- package/build/lib/terraform-json.js +82 -0
- package/build/lib/terraform-provider-lock.d.ts.map +1 -0
- package/{src → build}/lib/terraform-provider-lock.js +2 -2
- package/{src → build}/lib/watch.d.ts +1 -0
- package/build/lib/watch.d.ts.map +1 -0
- package/build/lib/watch.js +155 -0
- package/eslint.config.mjs +2 -70
- package/package.json +22 -33
- package/templates/go/go.mod +1 -1
- package/templates/python/Pipfile +1 -1
- package/templates/typescript/.hooks.sscaff.js +1 -1
- package/templates/typescript/jest.config.js +1 -1
- package/src/lib/cdktf-config.d.ts.map +0 -1
- package/src/lib/cdktf-config.js +0 -108
- package/src/lib/cdktf-project-io-handler.d.ts.map +0 -1
- package/src/lib/cdktf-project-io-handler.js +0 -84
- package/src/lib/cdktf-project.d.ts.map +0 -1
- package/src/lib/cdktf-project.js +0 -371
- package/src/lib/cdktf-stack.d.ts.map +0 -1
- package/src/lib/cdktf-stack.js +0 -386
- package/src/lib/convert.d.ts.map +0 -1
- package/src/lib/convert.js +0 -51
- package/src/lib/dependencies/cdktf-config-manager.d.ts.map +0 -1
- package/src/lib/dependencies/cdktf-config-manager.js +0 -36
- package/src/lib/dependencies/dependency-manager.d.ts.map +0 -1
- package/src/lib/dependencies/dependency-manager.js +0 -393
- package/src/lib/dependencies/package-manager.d.ts.map +0 -1
- package/src/lib/dependencies/package-manager.js +0 -581
- package/src/lib/dependencies/prebuilt-providers.d.ts.map +0 -1
- package/src/lib/dependencies/prebuilt-providers.js +0 -220
- package/src/lib/dependencies/registry-api.d.ts.map +0 -1
- package/src/lib/dependencies/registry-api.js +0 -77
- package/src/lib/dependencies/version-constraints.d.ts.map +0 -1
- package/src/lib/dependencies/version-constraints.js +0 -95
- package/src/lib/error-reporting.d.ts.map +0 -1
- package/src/lib/error-reporting.js +0 -133
- package/src/lib/errors.d.ts.map +0 -1
- package/src/lib/errors.js +0 -10
- package/src/lib/execution-logs.d.ts.map +0 -1
- package/src/lib/execution-logs.js +0 -47
- package/src/lib/get.d.ts.map +0 -1
- package/src/lib/get.js +0 -90
- package/src/lib/helpers/stack-helpers.d.ts.map +0 -1
- package/src/lib/helpers/stack-helpers.js +0 -155
- package/src/lib/index.d.ts.map +0 -1
- package/src/lib/init.d.ts.map +0 -1
- package/src/lib/init.js +0 -131
- package/src/lib/local-provider-constraints.d.ts.map +0 -1
- package/src/lib/local-provider-constraints.js +0 -95
- package/src/lib/local-provider-versions.d.ts.map +0 -1
- package/src/lib/local-provider-versions.js +0 -73
- package/src/lib/models/deploy-machine.d.ts.map +0 -1
- package/src/lib/models/deploy-machine.js +0 -280
- package/src/lib/models/pty-process.d.ts +0 -29
- package/src/lib/models/pty-process.d.ts.map +0 -1
- package/src/lib/models/pty-process.js +0 -132
- package/src/lib/models/schema.js +0 -181
- package/src/lib/models/terraform-cli.d.ts.map +0 -1
- package/src/lib/models/terraform-cli.js +0 -357
- package/src/lib/models/terraform.d.ts.map +0 -1
- package/src/lib/models/terraform.js +0 -72
- package/src/lib/output.d.ts.map +0 -1
- package/src/lib/output.js +0 -211
- package/src/lib/provider-add.d.ts.map +0 -1
- package/src/lib/provider-add.js +0 -30
- package/src/lib/server/terraform-logs.d.ts.map +0 -1
- package/src/lib/server/terraform-logs.js +0 -19
- package/src/lib/synth-stack.d.ts.map +0 -1
- package/src/lib/synth-stack.js +0 -251
- package/src/lib/synth.d.ts.map +0 -1
- package/src/lib/synth.js +0 -67
- package/src/lib/terraform-json.js +0 -82
- package/src/lib/terraform-provider-lock.d.ts.map +0 -1
- package/src/lib/watch.d.ts.map +0 -1
- package/src/lib/watch.js +0 -155
- /package/{src → build}/lib/cdktf-config.d.ts +0 -0
- /package/{src → build}/lib/cdktf-project-io-handler.d.ts +0 -0
- /package/{src → build}/lib/cdktf-project.d.ts +0 -0
- /package/{src → build}/lib/convert.d.ts +0 -0
- /package/{src → build}/lib/dependencies/cdktf-config-manager.d.ts +0 -0
- /package/{src → build}/lib/dependencies/dependency-manager.d.ts +0 -0
- /package/{src → build}/lib/dependencies/package-manager.d.ts +0 -0
- /package/{src → build}/lib/dependencies/prebuilt-providers.d.ts +0 -0
- /package/{src → build}/lib/dependencies/registry-api.d.ts +0 -0
- /package/{src → build}/lib/dependencies/version-constraints.d.ts +0 -0
- /package/{src → build}/lib/error-reporting.d.ts +0 -0
- /package/{src → build}/lib/errors.d.ts +0 -0
- /package/{src → build}/lib/execution-logs.d.ts +0 -0
- /package/{src → build}/lib/get.d.ts +0 -0
- /package/{src → build}/lib/helpers/stack-helpers.d.ts +0 -0
- /package/{src → build}/lib/index.d.ts +0 -0
- /package/{src → build}/lib/init.d.ts +0 -0
- /package/{src → build}/lib/local-provider-constraints.d.ts +0 -0
- /package/{src → build}/lib/local-provider-versions.d.ts +0 -0
- /package/{src → build}/lib/models/schema.d.ts +0 -0
- /package/{src → build}/lib/models/terraform.d.ts +0 -0
- /package/{src → build}/lib/output.d.ts +0 -0
- /package/{src → build}/lib/provider-add.d.ts +0 -0
- /package/{src → build}/lib/server/terraform-logs.d.ts +0 -0
- /package/{src → build}/lib/synth.d.ts +0 -0
- /package/{src → build}/lib/terraform-json.d.ts +0 -0
- /package/{src → build}/lib/terraform-provider-lock.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,73 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-machine.d.ts","sourceRoot":"","sources":["deploy-machine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) HashiCorp, Inc.
|
|
4
|
-
* SPDX-License-Identifier: MPL-2.0
|
|
5
|
-
*/
|
|
6
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
-
};
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.createAndStartDestroyService = exports.createAndStartDeployService = exports.terraformPtyService = exports.deployMachine = exports.handleLineReceived = exports.bufferUnterminatedLines = exports.extractVariableNameFromPrompt = exports.isDeployEvent = void 0;
|
|
11
|
-
const xstate_1 = require("xstate");
|
|
12
|
-
const commons_1 = require("@cdktn/commons");
|
|
13
|
-
const errors_1 = require("../errors");
|
|
14
|
-
const strip_ansi_1 = __importDefault(require("strip-ansi"));
|
|
15
|
-
const os_1 = require("os");
|
|
16
|
-
const pty_process_1 = require("./pty-process");
|
|
17
|
-
function isDeployEvent(event, type) {
|
|
18
|
-
return event.type === type;
|
|
19
|
-
}
|
|
20
|
-
exports.isDeployEvent = isDeployEvent;
|
|
21
|
-
function extractVariableNameFromPrompt(line) {
|
|
22
|
-
const noColorLine = (0, strip_ansi_1.default)(line);
|
|
23
|
-
const lines = noColorLine.split("\n");
|
|
24
|
-
const lineWithVar = lines.find((line) => line.includes("var."));
|
|
25
|
-
if (!lineWithVar) {
|
|
26
|
-
throw commons_1.Errors.Internal(`Could not find variable name in prompt: ${line}. This is most likely a bug in cdktn. Please report it at http://cdktn.io/issues`);
|
|
27
|
-
}
|
|
28
|
-
return lineWithVar.split("var.")[1].trim();
|
|
29
|
-
}
|
|
30
|
-
exports.extractVariableNameFromPrompt = extractVariableNameFromPrompt;
|
|
31
|
-
// used to only send completed lines (= with a newline at the end of them) to our logic (#2827)
|
|
32
|
-
function bufferUnterminatedLines(handler) {
|
|
33
|
-
let buffer = "";
|
|
34
|
-
function bufferedReceiverFunction(output) {
|
|
35
|
-
buffer += output;
|
|
36
|
-
const lines = buffer.split(os_1.EOL);
|
|
37
|
-
// if the string ends with \n this will be an empty string
|
|
38
|
-
// else it will contain an "unfinished" line
|
|
39
|
-
// the fallback to an empty string is to make TS happy and should never happen
|
|
40
|
-
buffer = lines.pop() || "";
|
|
41
|
-
if (lines.length > 0)
|
|
42
|
-
handler(lines.join(os_1.EOL) + "\n");
|
|
43
|
-
}
|
|
44
|
-
bufferedReceiverFunction.getBuffer = () => buffer;
|
|
45
|
-
return bufferedReceiverFunction;
|
|
46
|
-
}
|
|
47
|
-
exports.bufferUnterminatedLines = bufferUnterminatedLines;
|
|
48
|
-
function handleLineReceived(send) {
|
|
49
|
-
return (output) => {
|
|
50
|
-
let hideOutput = false;
|
|
51
|
-
const noColorLine = (0, strip_ansi_1.default)(output);
|
|
52
|
-
// possible events based on line
|
|
53
|
-
if (noColorLine.includes("approved using the UI or API")) {
|
|
54
|
-
send({ type: "APPROVED_EXTERNALLY" });
|
|
55
|
-
}
|
|
56
|
-
else if (noColorLine.includes("discarded using the UI or API")) {
|
|
57
|
-
send({ type: "REJECTED_EXTERNALLY" });
|
|
58
|
-
}
|
|
59
|
-
else if (noColorLine.includes("Do you want to perform these actions") ||
|
|
60
|
-
noColorLine.includes("Do you really want to destroy all resources?") ||
|
|
61
|
-
noColorLine.includes("Do you really want to destroy all resources in workspace")) {
|
|
62
|
-
hideOutput = true;
|
|
63
|
-
send({ type: "OUTPUT_RECEIVED", output });
|
|
64
|
-
send({ type: "REQUEST_APPROVAL" });
|
|
65
|
-
}
|
|
66
|
-
else if (noColorLine.includes("var.") &&
|
|
67
|
-
noColorLine.includes("Enter a value:")) {
|
|
68
|
-
hideOutput = true;
|
|
69
|
-
const variableName = extractVariableNameFromPrompt(output);
|
|
70
|
-
send({
|
|
71
|
-
type: "OUTPUT_RECEIVED",
|
|
72
|
-
output: (0, errors_1.missingVariable)(variableName),
|
|
73
|
-
});
|
|
74
|
-
send({ type: "VARIABLE_MISSING", variableName });
|
|
75
|
-
}
|
|
76
|
-
else if (noColorLine.includes("Do you want to override the soft failed policy check?")) {
|
|
77
|
-
hideOutput = true;
|
|
78
|
-
send({ type: "OUTPUT_RECEIVED", output });
|
|
79
|
-
send({ type: "REQUEST_SENTINEL_OVERRIDE" });
|
|
80
|
-
}
|
|
81
|
-
else if (noColorLine.includes("overridden using the UI or API")) {
|
|
82
|
-
send({ type: "OVERRIDDEN_EXTERNALLY" });
|
|
83
|
-
}
|
|
84
|
-
if (!hideOutput) {
|
|
85
|
-
send({
|
|
86
|
-
type: "OUTPUT_RECEIVED",
|
|
87
|
-
output,
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
exports.handleLineReceived = handleLineReceived;
|
|
93
|
-
exports.deployMachine = (0, xstate_1.createMachine)({
|
|
94
|
-
predictableActionArguments: true,
|
|
95
|
-
context: {},
|
|
96
|
-
initial: "idle",
|
|
97
|
-
id: "root",
|
|
98
|
-
states: {
|
|
99
|
-
idle: {
|
|
100
|
-
on: {
|
|
101
|
-
START: { target: "running" },
|
|
102
|
-
},
|
|
103
|
-
},
|
|
104
|
-
running: {
|
|
105
|
-
invoke: {
|
|
106
|
-
id: "pty",
|
|
107
|
-
src: "runTerraformInPty",
|
|
108
|
-
},
|
|
109
|
-
on: {
|
|
110
|
-
EXITED: "exited",
|
|
111
|
-
STOP: "stopped",
|
|
112
|
-
},
|
|
113
|
-
initial: "processing",
|
|
114
|
-
states: {
|
|
115
|
-
// TODO: what else might TF CLI be asking? Can we detect any question from the TF CLI to show a good error?
|
|
116
|
-
processing: {
|
|
117
|
-
on: {
|
|
118
|
-
REQUEST_APPROVAL: "awaiting_approval",
|
|
119
|
-
REQUEST_SENTINEL_OVERRIDE: "awaiting_sentinel_override",
|
|
120
|
-
VARIABLE_MISSING: {
|
|
121
|
-
actions: (0, xstate_1.send)({ type: "EXITED", exitCode: 1 }),
|
|
122
|
-
},
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
awaiting_approval: {
|
|
126
|
-
on: {
|
|
127
|
-
APPROVED_EXTERNALLY: "processing",
|
|
128
|
-
REJECTED_EXTERNALLY: {
|
|
129
|
-
target: "#root.exited",
|
|
130
|
-
actions: (0, xstate_1.assign)({ cancelled: true }),
|
|
131
|
-
},
|
|
132
|
-
APPROVE: {
|
|
133
|
-
target: "processing",
|
|
134
|
-
actions: (0, xstate_1.send)({ type: "SEND_LINE", input: "yes" }, { to: "pty" }),
|
|
135
|
-
},
|
|
136
|
-
REJECT: {
|
|
137
|
-
target: "processing",
|
|
138
|
-
actions: [
|
|
139
|
-
(0, xstate_1.send)({ type: "SEND_LINE", input: "no" }, { to: "pty" }),
|
|
140
|
-
(0, xstate_1.assign)({
|
|
141
|
-
cancelled: true,
|
|
142
|
-
}),
|
|
143
|
-
],
|
|
144
|
-
},
|
|
145
|
-
},
|
|
146
|
-
},
|
|
147
|
-
awaiting_sentinel_override: {
|
|
148
|
-
on: {
|
|
149
|
-
OVERRIDDEN_EXTERNALLY: "processing",
|
|
150
|
-
OVERRIDE_REJECTED_EXTERNALLY: {
|
|
151
|
-
target: "#root.exited",
|
|
152
|
-
actions: (0, xstate_1.assign)({ cancelled: true }),
|
|
153
|
-
},
|
|
154
|
-
// This is a bit of a hack, because the external discard message
|
|
155
|
-
// posted by Terraform UI is the same as during apply. So, we capture that
|
|
156
|
-
// and emit our own event to make it more specific.
|
|
157
|
-
REJECTED_EXTERNALLY: {
|
|
158
|
-
actions: (0, xstate_1.send)({ type: "OVERRIDE_REJECTED_EXTERNALLY" }),
|
|
159
|
-
},
|
|
160
|
-
OVERRIDE: {
|
|
161
|
-
target: "processing",
|
|
162
|
-
actions: (0, xstate_1.send)({ type: "SEND_LINE", input: "override" }, { to: "pty" }),
|
|
163
|
-
},
|
|
164
|
-
REJECT_OVERRIDE: {
|
|
165
|
-
target: "processing",
|
|
166
|
-
actions: [
|
|
167
|
-
(0, xstate_1.send)({ type: "SEND_LINE", input: "no" }, { to: "pty" }),
|
|
168
|
-
(0, xstate_1.assign)({
|
|
169
|
-
cancelled: true,
|
|
170
|
-
}),
|
|
171
|
-
],
|
|
172
|
-
},
|
|
173
|
-
},
|
|
174
|
-
},
|
|
175
|
-
},
|
|
176
|
-
},
|
|
177
|
-
exited: { type: "final" },
|
|
178
|
-
stopped: { type: "final" },
|
|
179
|
-
},
|
|
180
|
-
}, {
|
|
181
|
-
services: {
|
|
182
|
-
runTerraformInPty: (context, event) => terraformPtyService(context, event, pty_process_1.spawnPty),
|
|
183
|
-
},
|
|
184
|
-
});
|
|
185
|
-
function terraformPtyService(_context, event, spawn = pty_process_1.spawnPty) {
|
|
186
|
-
return (send, onReceive) => {
|
|
187
|
-
if (event.type !== "START") {
|
|
188
|
-
throw commons_1.Errors.Internal(`Terraform CLI invocation state machine: Unexpected event caused transition to the running state: ${event.type}`);
|
|
189
|
-
}
|
|
190
|
-
// Communication from the pty to the caller
|
|
191
|
-
const receiver = bufferUnterminatedLines(handleLineReceived(send));
|
|
192
|
-
const { exitCode, actions } = spawn(event.pty, (data) => {
|
|
193
|
-
receiver(data);
|
|
194
|
-
});
|
|
195
|
-
// Communication from the caller to the pty
|
|
196
|
-
onReceive((event) => {
|
|
197
|
-
if (event.type === "SEND_LINE") {
|
|
198
|
-
actions.writeLine(event.input);
|
|
199
|
-
}
|
|
200
|
-
});
|
|
201
|
-
exitCode.then((exitCode) => {
|
|
202
|
-
const lastBuffer = receiver.getBuffer();
|
|
203
|
-
if (lastBuffer.length > 0) {
|
|
204
|
-
commons_1.logger.debug(`Terraform CLI exited but the last outputted line was not terminated with a newline and hence is still in the buffer and wasn't printed: "${lastBuffer}"`);
|
|
205
|
-
}
|
|
206
|
-
send({ type: "EXITED", exitCode });
|
|
207
|
-
});
|
|
208
|
-
return () => {
|
|
209
|
-
commons_1.logger.trace("Terraform CLI state machine: cleaning up pty");
|
|
210
|
-
actions.stop();
|
|
211
|
-
};
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
|
-
exports.terraformPtyService = terraformPtyService;
|
|
215
|
-
function createAndStartDeployService(options) {
|
|
216
|
-
var _a, _b;
|
|
217
|
-
const service = (0, xstate_1.interpret)(exports.deployMachine);
|
|
218
|
-
const args = [
|
|
219
|
-
"apply",
|
|
220
|
-
...(options.autoApprove ? ["-auto-approve"] : []),
|
|
221
|
-
// "-input=false", we can't use this anymore but TODO: we need to detect TF CLI asking for missing inputs and either allow passing them or stop there and fail
|
|
222
|
-
...options.extraOptions,
|
|
223
|
-
...(options.refreshOnly ? ["-refresh-only"] : []),
|
|
224
|
-
...(options.noColor ? ["-no-color"] : []),
|
|
225
|
-
...(options.parallelism > -1
|
|
226
|
-
? [`-parallelism=${options.parallelism}`]
|
|
227
|
-
: []),
|
|
228
|
-
];
|
|
229
|
-
(_a = options.vars) === null || _a === void 0 ? void 0 : _a.forEach((v) => {
|
|
230
|
-
args.push(`-var=${v}`);
|
|
231
|
-
});
|
|
232
|
-
(_b = options.varFiles) === null || _b === void 0 ? void 0 : _b.forEach((v) => {
|
|
233
|
-
args.push(`-var-file=${v}`);
|
|
234
|
-
});
|
|
235
|
-
commons_1.logger.debug(`Executing ${options.terraformBinaryName} ${args.join(" ")} in ${options.workdir}`);
|
|
236
|
-
const config = {
|
|
237
|
-
file: options.terraformBinaryName,
|
|
238
|
-
args,
|
|
239
|
-
options: {
|
|
240
|
-
cwd: options.workdir,
|
|
241
|
-
env: process.env, // TODO: make this explicit and move to caller or whatever
|
|
242
|
-
},
|
|
243
|
-
};
|
|
244
|
-
service.send({ type: "START", pty: config });
|
|
245
|
-
return service;
|
|
246
|
-
}
|
|
247
|
-
exports.createAndStartDeployService = createAndStartDeployService;
|
|
248
|
-
function createAndStartDestroyService(options) {
|
|
249
|
-
var _a, _b;
|
|
250
|
-
const service = (0, xstate_1.interpret)(exports.deployMachine);
|
|
251
|
-
const args = [
|
|
252
|
-
"destroy",
|
|
253
|
-
...(options.autoApprove ? ["-auto-approve"] : []),
|
|
254
|
-
// "-input=false", we can't use this anymore but TODO: we need to detect TF CLI asking for missing inputs and either allow passing them or stop there and fail
|
|
255
|
-
...options.extraOptions,
|
|
256
|
-
...(options.noColor ? ["-no-color"] : []),
|
|
257
|
-
...(options.parallelism > -1
|
|
258
|
-
? [`-parallelism=${options.parallelism}`]
|
|
259
|
-
: []),
|
|
260
|
-
];
|
|
261
|
-
(_a = options.vars) === null || _a === void 0 ? void 0 : _a.forEach((v) => {
|
|
262
|
-
args.push(`-var=${v}`);
|
|
263
|
-
});
|
|
264
|
-
(_b = options.varFiles) === null || _b === void 0 ? void 0 : _b.forEach((v) => {
|
|
265
|
-
args.push(`-var-file=${v}`);
|
|
266
|
-
});
|
|
267
|
-
commons_1.logger.debug(`Executing ${options.terraformBinaryName} ${args.join(" ")} in ${options.workdir}`);
|
|
268
|
-
const config = {
|
|
269
|
-
file: options.terraformBinaryName,
|
|
270
|
-
args,
|
|
271
|
-
options: {
|
|
272
|
-
cwd: options.workdir,
|
|
273
|
-
env: process.env, // TODO: make this explicit and move to caller or whatever
|
|
274
|
-
},
|
|
275
|
-
};
|
|
276
|
-
service.send({ type: "START", pty: config });
|
|
277
|
-
return service;
|
|
278
|
-
}
|
|
279
|
-
exports.createAndStartDestroyService = createAndStartDestroyService;
|
|
280
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LW1hY2hpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3ktbWFjaGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7QUFFSCxtQ0FRZ0I7QUFFaEIsNENBQWdEO0FBQ2hELHNDQUE0QztBQUM1Qyw0REFBbUM7QUFDbkMsMkJBQXlCO0FBQ3pCLCtDQUF5QztBQWtDekMsU0FBZ0IsYUFBYSxDQUMzQixLQUFrQixFQUNsQixJQUFxQjtJQUVyQixPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO0FBQzdCLENBQUM7QUFMRCxzQ0FLQztBQWdDRCxTQUFnQiw2QkFBNkIsQ0FBQyxJQUFZO0lBQ3hELE1BQU0sV0FBVyxHQUFHLElBQUEsb0JBQVMsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsTUFBTSxnQkFBTSxDQUFDLFFBQVEsQ0FDbkIsMkNBQTJDLElBQUksa0ZBQWtGLENBQ2xJLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzdDLENBQUM7QUFWRCxzRUFVQztBQVdELCtGQUErRjtBQUMvRixTQUFnQix1QkFBdUIsQ0FDckMsT0FBaUM7SUFFakMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLFNBQVMsd0JBQXdCLENBQUMsTUFBYztRQUM5QyxNQUFNLElBQUksTUFBTSxDQUFDO1FBQ2pCLE1BQU0sS0FBSyxH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MUc7S0FDRixDQUFDO0lBRUYsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFN0MsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQWxERCxvRUFrREMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7XG4gIGNyZWF0ZU1hY2hpbmUsXG4gIHNlbmQsXG4gIGludGVycHJldCxcbiAgRXZlbnRPYmplY3QsXG4gIGFzc2lnbixcbiAgU2VuZGVyLFxuICBSZWNlaXZlcixcbn0gZnJvbSBcInhzdGF0ZVwiO1xuaW1wb3J0ICogYXMgcHR5IGZyb20gXCJAY2RrdGYvbm9kZS1wdHktcHJlYnVpbHQtbXVsdGlhcmNoXCI7XG5pbXBvcnQgeyBFcnJvcnMsIGxvZ2dlciB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHsgbWlzc2luZ1ZhcmlhYmxlIH0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuaW1wb3J0IHN0cmlwQW5zaSBmcm9tIFwic3RyaXAtYW5zaVwiO1xuaW1wb3J0IHsgRU9MIH0gZnJvbSBcIm9zXCI7XG5pbXBvcnQgeyBzcGF3blB0eSB9IGZyb20gXCIuL3B0eS1wcm9jZXNzXCI7XG5cbmludGVyZmFjZSBQdHlTcGF3bkNvbmZpZyB7XG4gIGZpbGU6IFBhcmFtZXRlcnM8dHlwZW9mIHB0eS5zcGF3bj5bMF07XG4gIGFyZ3M6IFBhcmFtZXRlcnM8dHlwZW9mIHB0eS5zcGF3bj5bMV07XG4gIG9wdGlvbnM6IFBhcmFtZXRlcnM8dHlwZW9mIHB0eS5zcGF3bj5bMl0gJiB7IGN3ZDogc3RyaW5nIH07XG59XG5cbmludGVyZmFjZSBEZXBsb3lDb250ZXh0IHtcbiAgZXhpdENvZGU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUZXJyYWZvcm0gd2lsbCBleGl0IHdpdGggMSBpZiBpdCB3YXMgY2FuY2VsbGVkLCBidXQgd2UgZG9uJ3Qgd2FudCB0byBmYWlsIGluIHRoYXQgY2FzZVxuICAgKi9cbiAgY2FuY2VsbGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgRGVwbG95RXZlbnQgPVxuICB8IHsgdHlwZTogXCJTVEFSVFwiOyBwdHk6IFB0eVNwYXduQ29uZmlnIH1cbiAgfCB7IHR5cGU6IFwiU1RPUFwiIH1cbiAgfCB7IHR5cGU6IFwiU0VORF9MSU5FXCI7IGlucHV0OiBzdHJpbmcgfVxuICB8IHsgdHlwZTogXCJPVVRQVVRfUkVDRUlWRURcIjsgb3V0cHV0OiBzdHJpbmcgfVxuICB8IHsgdHlwZTogXCJBUFBST1ZFRF9FWFRFUk5BTExZXCIgfSAvLyBlLmcuIHZpYSBURkMgVUkgb3IgQVBJXG4gIHwgeyB0eXBlOiBcIlJFSkVDVEVEX0VYVEVSTkFMTFlcIiB9XG4gIHwgeyB0eXBlOiBcIk9WRVJSSURERU5fRVhURVJOQUxMWVwiIH1cbiAgfCB7IHR5cGU6IFwiT1ZFUlJJREVfUkVKRUNURURfRVhURVJOQUxMWVwiIH1cbiAgfCB7IHR5cGU6IFwiT1ZFUlJJREVcIiB9XG4gIHwgeyB0eXBlOiBcIlJFSkVDVF9PVkVSUklERVwiIH1cbiAgfCB7IHR5cGU6IFwiUkVRVUVTVF9BUFBST1ZBTFwiIH1cbiAgfCB7IHR5cGU6IFwiVkFSSUFCTEVfTUlTU0lOR1wiOyB2YXJpYWJsZU5hbWU6IHN0cmluZyB9XG4gIHwgeyB0eXBlOiBcIlJFUVVFU1RfU0VOVElORUxfT1ZFUlJJREVcIiB9XG4gIHwgeyB0eXBlOiBcIkFQUFJPVkVcIiB9XG4gIHwgeyB0eXBlOiBcIlJFSkVDVFwiIH1cbiAgfCB7IHR5cGU6IFwiRVhJVEVEXCI7IGV4aXRDb2RlOiBudW1iZXIgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVwbG95RXZlbnQ8RGVwbG95RXZlbnRUeXBlIGV4dGVuZHMgRGVwbG95RXZlbnRbXCJ0eXBlXCJdPihcbiAgZXZlbnQ6IEV2ZW50T2JqZWN0LFxuICB0eXBlOiBEZXBsb3lFdmVudFR5cGUsXG4pOiBldmVudCBpcyBEZXBsb3lFdmVudCAmIHsgdHlwZTogRGVwbG95RXZlbnRUeXBlIH0ge1xuICByZXR1cm4gZXZlbnQudHlwZSA9PT0gdHlwZTtcbn1cblxuZXhwb3J0IHR5cGUgRGVwbG95U3RhdGUgPVxuICB8IHtcbiAgICAgIHZhbHVlOiBcImlkbGVcIjtcbiAgICAgIGNvbnRleHQ6IERlcGxveUNvbnRleHQ7XG4gICAgfVxuICB8IHtcbiAgICAgIHZhbHVlOiBcInJ1bm5pbmdcIjtcbiAgICAgIGNvbnRleHQ6IERlcGxveUNvbnRleHQ7XG4gICAgfVxuICB8IHtcbiAgICAgIHZhbHVlOiB7IHJ1bm5pbmc6IFwicHJvY2Vzc2luZ1wiIH07XG4gICAgICBjb250ZXh0OiBEZXBsb3lDb250ZXh0O1xuICAgIH1cbiAgfCB7XG4gICAgICB2YWx1ZTogeyBydW5uaW5nOiBcImF3YWl0aW5nX2FwcHJvdmFsXCIgfTtcbiAgICAgIGNvbnRleHQ6IERlcGxveUNvbnRleHQ7XG4gICAgfVxuICB8IHtcbiAgICAgIHZhbHVlOiB7IHJ1bm5pbmc6IFwiYXdhaXRpbmdfc2VudGluZWxfb3ZlcnJpZGVcIiB9O1xuICAgICAgY29udGV4dDogRGVwbG95Q29udGV4dDtcbiAgICB9XG4gIHwge1xuICAgICAgdmFsdWU6IFwiZXhpdGVkXCI7XG4gICAgICBjb250ZXh0OiBEZXBsb3lDb250ZXh0ICYgeyBleGl0Q29kZTogbnVtYmVyIH07XG4gICAgfVxuICB8IHtcbiAgICAgIHZhbHVlOiBcInN0b3BwZWRcIjtcbiAgICAgIGNvbnRleHQ6IERlcGxveUNvbnRleHQ7XG4gICAgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RWYXJpYWJsZU5hbWVGcm9tUHJvbXB0KGxpbmU6IHN0cmluZykge1xuICBjb25zdCBub0NvbG9yTGluZSA9IHN0cmlwQW5zaShsaW5lKTtcbiAgY29uc3QgbGluZXMgPSBub0NvbG9yTGluZS5zcGxpdChcIlxcblwiKTtcbiAgY29uc3QgbGluZVdpdGhWYXIgPSBsaW5lcy5maW5kKChsaW5lKSA9PiBsaW5lLmluY2x1ZGVzKFwidmFyLlwiKSk7XG4gIGlmICghbGluZVdpdGhWYXIpIHtcbiAgICB0aHJvdyBFcnJvcnMuSW50ZXJuYWwoXG4gICAgICBgQ291bGQgbm90IGZpbmQgdmFyaWFibGUgbmFtZSBpbiBwcm9tcHQ6ICR7bGluZX0uIFRoaXMgaXMgbW9zdCBsaWtlbHkgYSBidWcgaW4gY2RrdG4uIFBsZWFzZSByZXBvcnQgaXQgYXQgaHR0cDovL2Nka3RuLmlvL2lzc3Vlc2AsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gbGluZVdpdGhWYXIuc3BsaXQoXCJ2YXIuXCIpWzFdLnRyaW0oKTtcbn1cblxuaW50ZXJmYWNlIEJ1ZmZlcmVkUmVjZWl2ZXJGdW5jdGlvbiB7XG4gIChvdXRwdXQ6IHN0cmluZyk6IHZvaWQ7XG4gIC8qKlxuICAgKiB1c2VkIHRvIGdldCB0aGUgbGFzdCBidWZmZXIgd2hlbiB0aGUgUFRZIGV4aXRzIHRvIGxvZyBhIGRlYnVnIG1lc3NhZ2UgaWYgdGhlcmUncyBvdXRwdXQgbGVmdCBpbiB0aGVyZVxuICAgKiAobWlnaHQgaGVscCBkZWJ1Z2dpbmcgb24gV2luZG93cyBpZiBFT0wgZnJvbSBOb2RlanMgZG9lc24ndCB3b3JrIGluIFdTTClcbiAgICovXG4gIGdldEJ1ZmZlcjogKCkgPT4gc3RyaW5nO1xufVxuXG4vLyB1c2VkIHRvIG9ubHkgc2VuZCBjb21wbGV0ZWQgbGluZXMgKD0gd2l0aCBhIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiB0aGVtKSB0byBvdXIgbG9naWMgKCMyODI3KVxuZXhwb3J0IGZ1bmN0aW9uIGJ1ZmZlclVudGVybWluYXRlZExpbmVzKFxuICBoYW5kbGVyOiAob3V0cHV0OiBzdHJpbmcpID0+IHZvaWQsXG4pOiBCdWZmZXJlZFJlY2VpdmVyRnVuY3Rpb24ge1xuICBsZXQgYnVmZmVyID0gXCJcIjtcbiAgZnVuY3Rpb24gYnVmZmVyZWRSZWNlaXZlckZ1bmN0aW9uKG91dHB1dDogc3RyaW5nKSB7XG4gICAgYnVmZmVyICs9IG91dHB1dDtcbiAgICBjb25zdCBsaW5lcyA9IGJ1ZmZlci5zcGxpdChFT0wpO1xuXG4gICAgLy8gaWYgdGhlIHN0cmluZyBlbmRzIHdpdGggXFxuIHRoaXMgd2lsbCBiZSBhbiBlbXB0eSBzdHJpbmdcbiAgICAvLyBlbHNlIGl0IHdpbGwgY29udGFpbiBhbiBcInVuZmluaXNoZWRcIiBsaW5lXG4gICAgLy8gdGhlIGZhbGxiYWNrIHRvIGFuIGVtcHR5IHN0cmluZyBpcyB0byBtYWtlIFRTIGhhcHB5IGFuZCBzaG91bGQgbmV2ZXIgaGFwcGVuXG4gICAgYnVmZmVyID0gbGluZXMucG9wKCkgfHwgXCJcIjtcblxuICAgIGlmIChsaW5lcy5sZW5ndGggPiAwKSBoYW5kbGVyKGxpbmVzLmpvaW4oRU9MKSArIFwiXFxuXCIpO1xuICB9XG4gIGJ1ZmZlcmVkUmVjZWl2ZXJGdW5jdGlvbi5nZXRCdWZmZXIgPSAoKSA9PiBidWZmZXI7XG5cbiAgcmV0dXJuIGJ1ZmZlcmVkUmVjZWl2ZXJGdW5jdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUxpbmVSZWNlaXZlZChzZW5kOiAoZXZlbnQ6IERlcGxveUV2ZW50KSA9PiB2b2lkKSB7XG4gIHJldHVybiAob3V0cHV0OiBzdHJpbmcpID0+IHtcbiAgICBsZXQgaGlkZU91dHB1dCA9IGZhbHNlO1xuICAgIGNvbnN0IG5vQ29sb3JMaW5lID0gc3RyaXBBbnNpKG91dHB1dCk7XG5cbiAgICAvLyBwb3NzaWJsZSBldmVudHMgYmFzZWQgb24gbGluZVxuICAgIGlmIChub0NvbG9yTGluZS5pbmNsdWRlcyhcImFwcHJvdmVkIHVzaW5nIHRoZSBVSSBvciBBUElcIikpIHtcbiAgICAgIHNlbmQoeyB0eXBlOiBcIkFQUFJPVkVEX0VYVEVSTkFMTFlcIiB9KTtcbiAgICB9IGVsc2UgaWYgKG5vQ29sb3JMaW5lLmluY2x1ZGVzKFwiZGlzY2FyZGVkIHVzaW5nIHRoZSBVSSBvciBBUElcIikpIHtcbiAgICAgIHNlbmQoeyB0eXBlOiBcIlJFSkVDVEVEX0VYVEVSTkFMTFlcIiB9KTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbm9Db2xvckxpbmUuaW5jbHVkZXMoXCJEbyB5b3Ugd2FudCB0byBwZXJmb3JtIHRoZXNlIGFjdGlvbnNcIikgfHxcbiAgICAgIG5vQ29sb3JMaW5lLmluY2x1ZGVzKFwiRG8geW91IHJlYWxseSB3YW50IHRvIGRlc3Ryb3kgYWxsIHJlc291cmNlcz9cIikgfHxcbiAgICAgIG5vQ29sb3JMaW5lLmluY2x1ZGVzKFxuICAgICAgICBcIkRvIHlvdSByZWFsbHkgd2FudCB0byBkZXN0cm95IGFsbCByZXNvdXJjZXMgaW4gd29ya3NwYWNlXCIsXG4gICAgICApXG4gICAgKSB7XG4gICAgICBoaWRlT3V0cHV0ID0gdHJ1ZTtcbiAgICAgIHNlbmQoeyB0eXBlOiBcIk9VVFBVVF9SRUNFSVZFRFwiLCBvdXRwdXQgfSk7XG4gICAgICBzZW5kKHsgdHlwZTogXCJSRVFVRVNUX0FQUFJPVkFMXCIgfSk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIG5vQ29sb3JMaW5lLmluY2x1ZGVzKFwidmFyLlwiKSAmJlxuICAgICAgbm9Db2xvckxpbmUuaW5jbHVkZXMoXCJFbnRlciBhIHZhbHVlOlwiKVxuICAgICkge1xuICAgICAgaGlkZU91dHB1dCA9IHRydWU7XG5cbiAgICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IGV4dHJhY3RWYXJpYWJsZU5hbWVGcm9tUHJvbXB0KG91dHB1dCk7XG4gICAgICBzZW5kKHtcbiAgICAgICAgdHlwZTogXCJPVVRQVVRfUkVDRUlWRURcIixcbiAgICAgICAgb3V0cHV0OiBtaXNzaW5nVmFyaWFibGUodmFyaWFibGVOYW1lKSxcbiAgICAgIH0pO1xuICAgICAgc2VuZCh7IHR5cGU6IFwiVkFSSUFCTEVfTUlTU0lOR1wiLCB2YXJpYWJsZU5hbWUgfSk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIG5vQ29sb3JMaW5lLmluY2x1ZGVzKFxuICAgICAgICBcIkRvIHlvdSB3YW50IHRvIG92ZXJyaWRlIHRoZSBzb2Z0IGZhaWxlZCBwb2xpY3kgY2hlY2s/XCIsXG4gICAgICApXG4gICAgKSB7XG4gICAgICBoaWRlT3V0cHV0ID0gdHJ1ZTtcbiAgICAgIHNlbmQoeyB0eXBlOiBcIk9VVFBVVF9SRUNFSVZFRFwiLCBvdXRwdXQgfSk7XG5cbiAgICAgIHNlbmQoeyB0eXBlOiBcIlJFUVVFU1RfU0VOVElORUxfT1ZFUlJJREVcIiB9KTtcbiAgICB9IGVsc2UgaWYgKG5vQ29sb3JMaW5lLmluY2x1ZGVzKFwib3ZlcnJpZGRlbiB1c2luZyB0aGUgVUkgb3IgQVBJXCIpKSB7XG4gICAgICBzZW5kKHsgdHlwZTogXCJPVkVSUklEREVOX0VYVEVSTkFMTFlcIiB9KTtcbiAgICB9XG5cbiAgICBpZiAoIWhpZGVPdXRwdXQpIHtcbiAgICAgIHNlbmQoe1xuICAgICAgICB0eXBlOiBcIk9VVFBVVF9SRUNFSVZFRFwiLFxuICAgICAgICBvdXRwdXQsXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBkZXBsb3lNYWNoaW5lID0gY3JlYXRlTWFjaGluZTxcbiAgRGVwbG95Q29udGV4dCxcbiAgRGVwbG95RXZlbnQsXG4gIERlcGxveVN0YXRlXG4+KFxuICB7XG4gICAgcHJlZGljdGFibGVBY3Rpb25Bcmd1bWVudHM6IHRydWUsXG4gICAgY29udGV4dDoge30sXG4gICAgaW5pdGlhbDogXCJpZGxlXCIsXG4gICAgaWQ6IFwicm9vdFwiLFxuICAgIHN0YXRlczoge1xuICAgICAgaWRsZToge1xuICAgICAgICBvbjoge1xuICAgICAgICAgIFNUQVJUOiB7IHRhcmdldDogXCJydW5uaW5nXCIgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBydW5uaW5nOiB7XG4gICAgICAgIGludm9rZToge1xuICAgICAgICAgIGlkOiBcInB0eVwiLFxuICAgICAgICAgIHNyYzogXCJydW5UZXJyYWZvcm1JblB0eVwiLFxuICAgICAgICB9LFxuICAgICAgICBvbjoge1xuICAgICAgICAgIEVYSVRFRDogXCJleGl0ZWRcIixcbiAgICAgICAgICBTVE9QOiBcInN0b3BwZWRcIixcbiAgICAgICAgfSxcbiAgICAgICAgaW5pdGlhbDogXCJwcm9jZXNzaW5nXCIsXG4gICAgICAgIHN0YXRlczoge1xuICAgICAgICAgIC8vIFRPRE86IHdoYXQgZWxzZSBtaWdodCBURiBDTEkgYmUgYXNraW5nPyBDYW4gd2UgZGV0ZWN0IGFueSBxdWVzdGlvbiBmcm9tIHRoZSBURiBDTEkgdG8gc2hvdyBhIGdvb2QgZXJyb3I/XG4gICAgICAgICAgcHJvY2Vzc2luZzoge1xuICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgUkVRVUVTVF9BUFBST1ZBTDogXCJhd2FpdGluZ19hcHByb3ZhbFwiLFxuICAgICAgICAgICAgICBSRVFVRVNUX1NFTlRJTkVMX09WRVJSSURFOiBcImF3YWl0aW5nX3NlbnRpbmVsX292ZXJyaWRlXCIsXG4gICAgICAgICAgICAgIFZBUklBQkxFX01JU1NJTkc6IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBzZW5kKHsgdHlwZTogXCJFWElURURcIiwgZXhpdENvZGU6IDEgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYXdhaXRpbmdfYXBwcm92YWw6IHtcbiAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgIEFQUFJPVkVEX0VYVEVSTkFMTFk6IFwicHJvY2Vzc2luZ1wiLFxuICAgICAgICAgICAgICBSRUpFQ1RFRF9FWFRFUk5BTExZOiB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiBcIiNyb290LmV4aXRlZFwiLFxuICAgICAgICAgICAgICAgIGFjdGlvbnM6IGFzc2lnbjxcbiAgICAgICAgICAgICAgICAgIERlcGxveUNvbnRleHQsXG4gICAgICAgICAgICAgICAgICBEZXBsb3lFdmVudCAmIHsgdHlwZTogXCJSRUpFQ1RFRF9FWFRFUk5BTExZXCIgfVxuICAgICAgICAgICAgICAgID4oeyBjYW5jZWxsZWQ6IHRydWUgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIEFQUFJPVkU6IHtcbiAgICAgICAgICAgICAgICB0YXJnZXQ6IFwicHJvY2Vzc2luZ1wiLFxuICAgICAgICAgICAgICAgIGFjdGlvbnM6IHNlbmQoXG4gICAgICAgICAgICAgICAgICB7IHR5cGU6IFwiU0VORF9MSU5FXCIsIGlucHV0OiBcInllc1wiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRvOiBcInB0eVwiIH0sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgUkVKRUNUOiB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiBcInByb2Nlc3NpbmdcIixcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICBzZW5kKHsgdHlwZTogXCJTRU5EX0xJTkVcIiwgaW5wdXQ6IFwibm9cIiB9LCB7IHRvOiBcInB0eVwiIH0pLFxuICAgICAgICAgICAgICAgICAgYXNzaWduPERlcGxveUNvbnRleHQsIERlcGxveUV2ZW50ICYgeyB0eXBlOiBcIlJFSkVDVFwiIH0+KHtcbiAgICAgICAgICAgICAgICAgICAgY2FuY2VsbGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhd2FpdGluZ19zZW50aW5lbF9vdmVycmlkZToge1xuICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgT1ZFUlJJRERFTl9FWFRFUk5BTExZOiBcInByb2Nlc3NpbmdcIixcbiAgICAgICAgICAgICAgT1ZFUlJJREVfUkVKRUNURURfRVhURVJOQUxMWToge1xuICAgICAgICAgICAgICAgIHRhcmdldDogXCIjcm9vdC5leGl0ZWRcIixcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBhc3NpZ248XG4gICAgICAgICAgICAgICAgICBEZXBsb3lDb250ZXh0LFxuICAgICAgICAgICAgICAgICAgRGVwbG95RXZlbnQgJiB7IHR5cGU6IFwiT1ZFUlJJREVfUkVKRUNURURfRVhURVJOQUxMWVwiIH1cbiAgICAgICAgICAgICAgICA+KHsgY2FuY2VsbGVkOiB0cnVlIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjaywgYmVjYXVzZSB0aGUgZXh0ZXJuYWwgZGlzY2FyZCBtZXNzYWdlXG4gICAgICAgICAgICAgIC8vIHBvc3RlZCBieSBUZXJyYWZvcm0gVUkgaXMgdGhlIHNhbWUgYXMgZHVyaW5nIGFwcGx5LiBTbywgd2UgY2FwdHVyZSB0aGF0XG4gICAgICAgICAgICAgIC8vIGFuZCBlbWl0IG91ciBvd24gZXZlbnQgdG8gbWFrZSBpdCBtb3JlIHNwZWNpZmljLlxuICAgICAgICAgICAgICBSRUpFQ1RFRF9FWFRFUk5BTExZOiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uczogc2VuZCh7IHR5cGU6IFwiT1ZFUlJJREVfUkVKRUNURURfRVhURVJOQUxMWVwiIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBPVkVSUklERToge1xuICAgICAgICAgICAgICAgIHRhcmdldDogXCJwcm9jZXNzaW5nXCIsXG4gICAgICAgICAgICAgICAgYWN0aW9uczogc2VuZChcbiAgICAgICAgICAgICAgICAgIHsgdHlwZTogXCJTRU5EX0xJTkVcIiwgaW5wdXQ6IFwib3ZlcnJpZGVcIiB9LFxuICAgICAgICAgICAgICAgICAgeyB0bzogXCJwdHlcIiB9LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFJFSkVDVF9PVkVSUklERToge1xuICAgICAgICAgICAgICAgIHRhcmdldDogXCJwcm9jZXNzaW5nXCIsXG4gICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgc2VuZCh7IHR5cGU6IFwiU0VORF9MSU5FXCIsIGlucHV0OiBcIm5vXCIgfSwgeyB0bzogXCJwdHlcIiB9KSxcbiAgICAgICAgICAgICAgICAgIGFzc2lnbjxcbiAgICAgICAgICAgICAgICAgICAgRGVwbG95Q29udGV4dCxcbiAgICAgICAgICAgICAgICAgICAgRGVwbG95RXZlbnQgJiB7IHR5cGU6IFwiUkVKRUNUX09WRVJSSURFXCIgfVxuICAgICAgICAgICAgICAgICAgPih7XG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbGxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZXhpdGVkOiB7IHR5cGU6IFwiZmluYWxcIiB9LFxuICAgICAgc3RvcHBlZDogeyB0eXBlOiBcImZpbmFsXCIgfSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgc2VydmljZXM6IHtcbiAgICAgIHJ1blRlcnJhZm9ybUluUHR5OiAoY29udGV4dCwgZXZlbnQpID0+XG4gICAgICAgIHRlcnJhZm9ybVB0eVNlcnZpY2UoY29udGV4dCwgZXZlbnQsIHNwYXduUHR5KSxcbiAgICB9LFxuICB9LFxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcnJhZm9ybVB0eVNlcnZpY2UoXG4gIF9jb250ZXh0OiBEZXBsb3lDb250ZXh0LFxuICBldmVudDogRGVwbG95RXZlbnQsXG4gIHNwYXduID0gc3Bhd25QdHksXG4pOiAoc2VuZDogU2VuZGVyPERlcGxveUV2ZW50Piwgb25SZWNlaXZlOiBSZWNlaXZlcjxEZXBsb3lFdmVudD4pID0+IHZvaWQge1xuICByZXR1cm4gKHNlbmQ6IFNlbmRlcjxEZXBsb3lFdmVudD4sIG9uUmVjZWl2ZTogUmVjZWl2ZXI8RGVwbG95RXZlbnQ+KSA9PiB7XG4gICAgaWYgKGV2ZW50LnR5cGUgIT09IFwiU1RBUlRcIikge1xuICAgICAgdGhyb3cgRXJyb3JzLkludGVybmFsKFxuICAgICAgICBgVGVycmFmb3JtIENMSSBpbnZvY2F0aW9uIHN0YXRlIG1hY2hpbmU6IFVuZXhwZWN0ZWQgZXZlbnQgY2F1c2VkIHRyYW5zaXRpb24gdG8gdGhlIHJ1bm5pbmcgc3RhdGU6ICR7ZXZlbnQudHlwZX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBDb21tdW5pY2F0aW9uIGZyb20gdGhlIHB0eSB0byB0aGUgY2FsbGVyXG4gICAgY29uc3QgcmVjZWl2ZXIgPSBidWZmZXJVbnRlcm1pbmF0ZWRMaW5lcyhoYW5kbGVMaW5lUmVjZWl2ZWQoc2VuZCkpO1xuICAgIGNvbnN0IHsgZXhpdENvZGUsIGFjdGlvbnMgfSA9IHNwYXduKGV2ZW50LnB0eSwgKGRhdGEpID0+IHtcbiAgICAgIHJlY2VpdmVyKGRhdGEpO1xuICAgIH0pO1xuXG4gICAgLy8gQ29tbXVuaWNhdGlvbiBmcm9tIHRoZSBjYWxsZXIgdG8gdGhlIHB0eVxuICAgIG9uUmVjZWl2ZSgoZXZlbnQ6IERlcGxveUV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJTRU5EX0xJTkVcIikge1xuICAgICAgICBhY3Rpb25zLndyaXRlTGluZShldmVudC5pbnB1dCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBleGl0Q29kZS50aGVuKChleGl0Q29kZSkgPT4ge1xuICAgICAgY29uc3QgbGFzdEJ1ZmZlciA9IHJlY2VpdmVyLmdldEJ1ZmZlcigpO1xuICAgICAgaWYgKGxhc3RCdWZmZXIubGVuZ3RoID4gMCkge1xuICAgICAgICBsb2dnZXIuZGVidWcoXG4gICAgICAgICAgYFRlcnJhZm9ybSBDTEkgZXhpdGVkIGJ1dCB0aGUgbGFzdCBvdXRwdXR0ZWQgbGluZSB3YXMgbm90IHRlcm1pbmF0ZWQgd2l0aCBhIG5ld2xpbmUgYW5kIGhlbmNlIGlzIHN0aWxsIGluIHRoZSBidWZmZXIgYW5kIHdhc24ndCBwcmludGVkOiBcIiR7bGFzdEJ1ZmZlcn1cImAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHNlbmQoeyB0eXBlOiBcIkVYSVRFRFwiLCBleGl0Q29kZSB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBsb2dnZXIudHJhY2UoXCJUZXJyYWZvcm0gQ0xJIHN0YXRlIG1hY2hpbmU6IGNsZWFuaW5nIHVwIHB0eVwiKTtcbiAgICAgIGFjdGlvbnMuc3RvcCgpO1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBbmRTdGFydERlcGxveVNlcnZpY2Uob3B0aW9uczoge1xuICByZWZyZXNoT25seT86IGJvb2xlYW47XG4gIHBhcmFsbGVsaXNtOiBudW1iZXI7XG4gIGV4dHJhT3B0aW9uczogc3RyaW5nW107XG4gIHRlcnJhZm9ybUJpbmFyeU5hbWU6IHN0cmluZztcbiAgYXV0b0FwcHJvdmU/OiBib29sZWFuO1xuICBub0NvbG9yPzogYm9vbGVhbjtcbiAgd29ya2Rpcjogc3RyaW5nO1xuICB2YXJzPzogc3RyaW5nW107XG4gIHZhckZpbGVzPzogc3RyaW5nW107XG59KSB7XG4gIGNvbnN0IHNlcnZpY2UgPSBpbnRlcnByZXQoZGVwbG95TWFjaGluZSk7XG4gIGNvbnN0IGFyZ3MgPSBbXG4gICAgXCJhcHBseVwiLFxuICAgIC4uLihvcHRpb25zLmF1dG9BcHByb3ZlID8gW1wiLWF1dG8tYXBwcm92ZVwiXSA6IFtdKSxcbiAgICAvLyBcIi1pbnB1dD1mYWxzZVwiLCB3ZSBjYW4ndCB1c2UgdGhpcyBhbnltb3JlIGJ1dCBUT0RPOiB3ZSBuZWVkIHRvIGRldGVjdCBURiBDTEkgYXNraW5nIGZvciBtaXNzaW5nIGlucHV0cyBhbmQgZWl0aGVyIGFsbG93IHBhc3NpbmcgdGhlbSBvciBzdG9wIHRoZXJlIGFuZCBmYWlsXG5cbiAgICAuLi5vcHRpb25zLmV4dHJhT3B0aW9ucyxcbiAgICAuLi4ob3B0aW9ucy5yZWZyZXNoT25seSA/IFtcIi1yZWZyZXNoLW9ubHlcIl0gOiBbXSksXG4gICAgLi4uKG9wdGlvbnMubm9Db2xvciA/IFtcIi1uby1jb2xvclwiXSA6IFtdKSxcbiAgICAuLi4ob3B0aW9ucy5wYXJhbGxlbGlzbSA+IC0xXG4gICAgICA/IFtgLXBhcmFsbGVsaXNtPSR7b3B0aW9ucy5wYXJhbGxlbGlzbX1gXVxuICAgICAgOiBbXSksXG4gIF07XG5cbiAgb3B0aW9ucy52YXJzPy5mb3JFYWNoKCh2KSA9PiB7XG4gICAgYXJncy5wdXNoKGAtdmFyPSR7dn1gKTtcbiAgfSk7XG5cbiAgb3B0aW9ucy52YXJGaWxlcz8uZm9yRWFjaCgodikgPT4ge1xuICAgIGFyZ3MucHVzaChgLXZhci1maWxlPSR7dn1gKTtcbiAgfSk7XG5cbiAgbG9nZ2VyLmRlYnVnKFxuICAgIGBFeGVjdXRpbmcgJHtvcHRpb25zLnRlcnJhZm9ybUJpbmFyeU5hbWV9ICR7YXJncy5qb2luKFwiIFwiKX0gaW4gJHtcbiAgICAgIG9wdGlvbnMud29ya2RpclxuICAgIH1gLFxuICApO1xuXG4gIGNvbnN0IGNvbmZpZzogUHR5U3Bhd25Db25maWcgPSB7XG4gICAgZmlsZTogb3B0aW9ucy50ZXJyYWZvcm1CaW5hcnlOYW1lLFxuICAgIGFyZ3MsXG4gICAgb3B0aW9uczoge1xuICAgICAgY3dkOiBvcHRpb25zLndvcmtkaXIsXG4gICAgICBlbnY6IHByb2Nlc3MuZW52IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIC8vIFRPRE86IG1ha2UgdGhpcyBleHBsaWNpdCBhbmQgbW92ZSB0byBjYWxsZXIgb3Igd2hhdGV2ZXJcbiAgICB9LFxuICB9O1xuXG4gIHNlcnZpY2Uuc2VuZCh7IHR5cGU6IFwiU1RBUlRcIiwgcHR5OiBjb25maWcgfSk7XG5cbiAgcmV0dXJuIHNlcnZpY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBbmRTdGFydERlc3Ryb3lTZXJ2aWNlKG9wdGlvbnM6IHtcbiAgcGFyYWxsZWxpc206IG51bWJlcjtcbiAgZXh0cmFPcHRpb25zOiBzdHJpbmdbXTtcbiAgdGVycmFmb3JtQmluYXJ5TmFtZTogc3RyaW5nO1xuICBhdXRvQXBwcm92ZT86IGJvb2xlYW47XG4gIG5vQ29sb3I/OiBib29sZWFuO1xuICB3b3JrZGlyOiBzdHJpbmc7XG4gIHZhcnM/OiBzdHJpbmdbXTtcbiAgdmFyRmlsZXM/OiBzdHJpbmdbXTtcbn0pIHtcbiAgY29uc3Qgc2VydmljZSA9IGludGVycHJldChkZXBsb3lNYWNoaW5lKTtcblxuICBjb25zdCBhcmdzID0gW1xuICAgIFwiZGVzdHJveVwiLFxuICAgIC4uLihvcHRpb25zLmF1dG9BcHByb3ZlID8gW1wiLWF1dG8tYXBwcm92ZVwiXSA6IFtdKSxcbiAgICAvLyBcIi1pbnB1dD1mYWxzZVwiLCB3ZSBjYW4ndCB1c2UgdGhpcyBhbnltb3JlIGJ1dCBUT0RPOiB3ZSBuZWVkIHRvIGRldGVjdCBURiBDTEkgYXNraW5nIGZvciBtaXNzaW5nIGlucHV0cyBhbmQgZWl0aGVyIGFsbG93IHBhc3NpbmcgdGhlbSBvciBzdG9wIHRoZXJlIGFuZCBmYWlsXG5cbiAgICAuLi5vcHRpb25zLmV4dHJhT3B0aW9ucyxcbiAgICAuLi4ob3B0aW9ucy5ub0NvbG9yID8gW1wiLW5vLWNvbG9yXCJdIDogW10pLFxuICAgIC4uLihvcHRpb25zLnBhcmFsbGVsaXNtID4gLTFcbiAgICAgID8gW2AtcGFyYWxsZWxpc209JHtvcHRpb25zLnBhcmFsbGVsaXNtfWBdXG4gICAgICA6IFtdKSxcbiAgXTtcblxuICBvcHRpb25zLnZhcnM/LmZvckVhY2goKHYpID0+IHtcbiAgICBhcmdzLnB1c2goYC12YXI9JHt2fWApO1xuICB9KTtcblxuICBvcHRpb25zLnZhckZpbGVzPy5mb3JFYWNoKCh2KSA9PiB7XG4gICAgYXJncy5wdXNoKGAtdmFyLWZpbGU9JHt2fWApO1xuICB9KTtcblxuICBsb2dnZXIuZGVidWcoXG4gICAgYEV4ZWN1dGluZyAke29wdGlvbnMudGVycmFmb3JtQmluYXJ5TmFtZX0gJHthcmdzLmpvaW4oXCIgXCIpfSBpbiAke1xuICAgICAgb3B0aW9ucy53b3JrZGlyXG4gICAgfWAsXG4gICk7XG5cbiAgY29uc3QgY29uZmlnOiBQdHlTcGF3bkNvbmZpZyA9IHtcbiAgICBmaWxlOiBvcHRpb25zLnRlcnJhZm9ybUJpbmFyeU5hbWUsXG4gICAgYXJncyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBjd2Q6IG9wdGlvbnMud29ya2RpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYgYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgLy8gVE9ETzogbWFrZSB0aGlzIGV4cGxpY2l0IGFuZCBtb3ZlIHRvIGNhbGxlciBvciB3aGF0ZXZlclxuICAgIH0sXG4gIH07XG5cbiAgc2VydmljZS5zZW5kKHsgdHlwZTogXCJTVEFSVFwiLCBwdHk6IGNvbmZpZyB9KTtcblxuICByZXR1cm4gc2VydmljZTtcbn1cbiJdfQ==
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) HashiCorp, Inc.
|
|
3
|
-
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
-
*/
|
|
5
|
-
import * as pty from "@cdktf/node-pty-prebuilt-multiarch";
|
|
6
|
-
interface PtySpawnConfig {
|
|
7
|
-
file: Parameters<typeof pty.spawn>[0];
|
|
8
|
-
args: Parameters<typeof pty.spawn>[1];
|
|
9
|
-
options: Parameters<typeof pty.spawn>[2] & {
|
|
10
|
-
cwd: string;
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
export interface PtyProcessActions {
|
|
14
|
-
write: (response: string) => void;
|
|
15
|
-
writeLine: (response: string) => void;
|
|
16
|
-
stop: () => void;
|
|
17
|
-
}
|
|
18
|
-
export interface PtyProcess {
|
|
19
|
-
exitCode: Promise<number>;
|
|
20
|
-
actions: PtyProcessActions;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* A wrapper around node-pty that handles the platform specific differences
|
|
24
|
-
* and provide an intuitive API for bidirectional communication with the
|
|
25
|
-
* spawned process.
|
|
26
|
-
*/
|
|
27
|
-
export declare function spawnPty(config: PtySpawnConfig, onData: (data: string) => void): PtyProcess;
|
|
28
|
-
export {};
|
|
29
|
-
//# sourceMappingURL=pty-process.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pty-process.d.ts","sourceRoot":"","sources":["pty-process.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,GAAG,MAAM,oCAAoC,CAAC;AAG1D,UAAU,cAAc;IACtB,IAAI,EAAE,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,EAAE,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,EAAE,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IAEzB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,UAAU,CA0DZ"}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) HashiCorp, Inc.
|
|
4
|
-
* SPDX-License-Identifier: MPL-2.0
|
|
5
|
-
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
-
if (mod && mod.__esModule) return mod;
|
|
24
|
-
var result = {};
|
|
25
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
-
__setModuleDefault(result, mod);
|
|
27
|
-
return result;
|
|
28
|
-
};
|
|
29
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.spawnPty = void 0;
|
|
31
|
-
const os = __importStar(require("os"));
|
|
32
|
-
const path = __importStar(require("path"));
|
|
33
|
-
const fs = __importStar(require("fs"));
|
|
34
|
-
const pty = __importStar(require("@cdktf/node-pty-prebuilt-multiarch"));
|
|
35
|
-
const commons_1 = require("@cdktn/commons");
|
|
36
|
-
/**
|
|
37
|
-
* A wrapper around node-pty that handles the platform specific differences
|
|
38
|
-
* and provide an intuitive API for bidirectional communication with the
|
|
39
|
-
* spawned process.
|
|
40
|
-
*/
|
|
41
|
-
function spawnPty(config, onData) {
|
|
42
|
-
const { args, options } = config;
|
|
43
|
-
const file = os.platform() === "win32"
|
|
44
|
-
? findExecutable(config.file, options.cwd, options)
|
|
45
|
-
: config.file;
|
|
46
|
-
commons_1.logger.trace(`Spawning pty with file=${file}, args=${Array.isArray(args) ? `[${args.join(", ")}]` : `"${args}"`}, options=${JSON.stringify(options)}`);
|
|
47
|
-
const p = pty.spawn(file, args, options);
|
|
48
|
-
const actions = {
|
|
49
|
-
write: (response) => {
|
|
50
|
-
commons_1.logger.trace(`Sending response to pty (file=${file}, args=${Array.isArray(args) ? `[${args.join(", ")}]` : `"${args}"`}): ${response}`);
|
|
51
|
-
p.write(response);
|
|
52
|
-
},
|
|
53
|
-
writeLine: (response) => {
|
|
54
|
-
commons_1.logger.trace(`Sending response (with newline) to pty (file=${file}, args=${Array.isArray(args) ? `[${args.join(", ")}]` : `"${args}"`}): ${response}`);
|
|
55
|
-
p.write(`${response}${os.EOL}`);
|
|
56
|
-
},
|
|
57
|
-
stop: () => {
|
|
58
|
-
commons_1.logger.trace(`Aborting pty (file=${file}, args=${Array.isArray(args) ? `[${args.join(", ")}]` : `"${args}"`})`);
|
|
59
|
-
p.write("\x03"); // CTRL + C, pty.kill() does not work on windows
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
p.onData((data) => onData(data));
|
|
63
|
-
const exitCode = new Promise((resolve) => {
|
|
64
|
-
p.onExit(({ exitCode }) => {
|
|
65
|
-
if (exitCode !== 0) {
|
|
66
|
-
commons_1.logger.debug(`Pty (file=${file}, args=${Array.isArray(args) ? `[${args.join(", ")}]` : `"${args}"`}) exited with code ${exitCode}`);
|
|
67
|
-
}
|
|
68
|
-
resolve(exitCode);
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
return { exitCode, actions };
|
|
72
|
-
}
|
|
73
|
-
exports.spawnPty = spawnPty;
|
|
74
|
-
// src: https://github.com/Microsoft/vscode/blob/c0c9ea27d6e8d660d8716d7acee82cf3c00fa3e5/src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts#L691
|
|
75
|
-
// TODO: properly annotate source of this function
|
|
76
|
-
function findExecutable(command, cwd, options) {
|
|
77
|
-
// If we have an absolute path then we take it.
|
|
78
|
-
if (path.isAbsolute(command)) {
|
|
79
|
-
return command;
|
|
80
|
-
}
|
|
81
|
-
const dir = path.dirname(command);
|
|
82
|
-
if (dir !== ".") {
|
|
83
|
-
// We have a directory and the directory is relative (see above). Make the path absolute
|
|
84
|
-
// to the current working directory.
|
|
85
|
-
return path.join(cwd, command);
|
|
86
|
-
}
|
|
87
|
-
let paths = undefined;
|
|
88
|
-
// The options can override the PATH. So consider that PATH if present.
|
|
89
|
-
if (options && options.env) {
|
|
90
|
-
// Path can be named in many different ways and for the execution it doesn't matter
|
|
91
|
-
for (const key of Object.keys(options.env)) {
|
|
92
|
-
if (key.toLowerCase() === "path") {
|
|
93
|
-
if (typeof options.env[key] === "string") {
|
|
94
|
-
paths = options.env[key].split(path.delimiter);
|
|
95
|
-
}
|
|
96
|
-
break;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
if (paths === void 0 && typeof process.env.PATH === "string") {
|
|
101
|
-
paths = process.env.PATH.split(path.delimiter);
|
|
102
|
-
}
|
|
103
|
-
// No PATH environment. Make path absolute to the cwd.
|
|
104
|
-
if (paths === void 0 || paths.length === 0) {
|
|
105
|
-
return path.join(cwd, command);
|
|
106
|
-
}
|
|
107
|
-
// We have a simple file name. We get the path variable from the env
|
|
108
|
-
// and try to find the executable on the path.
|
|
109
|
-
for (const pathEntry of paths) {
|
|
110
|
-
// The path entry is absolute.
|
|
111
|
-
let fullPath;
|
|
112
|
-
if (path.isAbsolute(pathEntry)) {
|
|
113
|
-
fullPath = path.join(pathEntry, command);
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
fullPath = path.join(cwd, pathEntry, command);
|
|
117
|
-
}
|
|
118
|
-
if (fs.existsSync(fullPath)) {
|
|
119
|
-
return fullPath;
|
|
120
|
-
}
|
|
121
|
-
let withExtension = fullPath + ".com";
|
|
122
|
-
if (fs.existsSync(withExtension)) {
|
|
123
|
-
return withExtension;
|
|
124
|
-
}
|
|
125
|
-
withExtension = fullPath + ".exe";
|
|
126
|
-
if (fs.existsSync(withExtension)) {
|
|
127
|
-
return withExtension;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
return path.join(cwd, command);
|
|
131
|
-
}
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHR5LXByb2Nlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwdHktcHJvY2Vzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0IsdUNBQXlCO0FBRXpCLHdFQUEwRDtBQUMxRCw0Q0FBd0M7QUFvQnhDOzs7O0dBSUc7QUFDSCxTQUFnQixRQUFRLENBQ3RCLE1BQXNCLEVBQ3RCLE1BQThCO0lBRTlCLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLE1BQU0sSUFBSSxHQUNSLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxPQUFPO1FBQ3ZCLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQztRQUNuRCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztJQUVsQixnQkFBTSxDQUFDLEtBQUssQ0FDViwwQkFBMEIsSUFBSSxVQUM1QixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQ3pELGFBQWEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUN2QyxDQUFDO0lBRUYsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXpDLE1BQU0sT0FBTyxHQUFzQjtRQUNqQyxLQUFLLEVBQUUsQ0FBQyxRQUFnQixFQUFFLEVBQUU7WUFDMUIsZ0JBQU0sQ0FBQyxLQUFLLENBQ1YsaUNBQWlDLElBQUksVUFDbkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FB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QUUsT0FBTyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxJQUFJLGFBQWEsR0FBRyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQ3RDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxhQUFhLEdBQUcsUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUNsQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcblxuaW1wb3J0ICogYXMgcHR5IGZyb20gXCJAY2RrdGYvbm9kZS1wdHktcHJlYnVpbHQtbXVsdGlhcmNoXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcblxuaW50ZXJmYWNlIFB0eVNwYXduQ29uZmlnIHtcbiAgZmlsZTogUGFyYW1ldGVyczx0eXBlb2YgcHR5LnNwYXduPlswXTtcbiAgYXJnczogUGFyYW1ldGVyczx0eXBlb2YgcHR5LnNwYXduPlsxXTtcbiAgb3B0aW9uczogUGFyYW1ldGVyczx0eXBlb2YgcHR5LnNwYXduPlsyXSAmIHsgY3dkOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdHlQcm9jZXNzQWN0aW9ucyB7XG4gIHdyaXRlOiAocmVzcG9uc2U6IHN0cmluZykgPT4gdm9pZDtcbiAgd3JpdGVMaW5lOiAocmVzcG9uc2U6IHN0cmluZykgPT4gdm9pZDtcbiAgc3RvcDogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdHlQcm9jZXNzIHtcbiAgLy8gQWx3YXlzIHJlc29sdmVzLCByZXR1cm5zIHRoZSBleGl0IGNvZGUgb2YgdGhlIHByb2Nlc3NcbiAgZXhpdENvZGU6IFByb21pc2U8bnVtYmVyPjtcbiAgYWN0aW9uczogUHR5UHJvY2Vzc0FjdGlvbnM7XG59XG5cbi8qKlxuICogQSB3cmFwcGVyIGFyb3VuZCBub2RlLXB0eSB0aGF0IGhhbmRsZXMgdGhlIHBsYXRmb3JtIHNwZWNpZmljIGRpZmZlcmVuY2VzXG4gKiBhbmQgcHJvdmlkZSBhbiBpbnR1aXRpdmUgQVBJIGZvciBiaWRpcmVjdGlvbmFsIGNvbW11bmljYXRpb24gd2l0aCB0aGVcbiAqIHNwYXduZWQgcHJvY2Vzcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwYXduUHR5KFxuICBjb25maWc6IFB0eVNwYXduQ29uZmlnLFxuICBvbkRhdGE6IChkYXRhOiBzdHJpbmcpID0+IHZvaWQsXG4pOiBQdHlQcm9jZXNzIHtcbiAgY29uc3QgeyBhcmdzLCBvcHRpb25zIH0gPSBjb25maWc7XG4gIGNvbnN0IGZpbGUgPVxuICAgIG9zLnBsYXRmb3JtKCkgPT09IFwid2luMzJcIlxuICAgICAgPyBmaW5kRXhlY3V0YWJsZShjb25maWcuZmlsZSwgb3B0aW9ucy5jd2QsIG9wdGlvbnMpXG4gICAgICA6IGNvbmZpZy5maWxlO1xuXG4gIGxvZ2dlci50cmFjZShcbiAgICBgU3Bhd25pbmcgcHR5IHdpdGggZmlsZT0ke2ZpbGV9LCBhcmdzPSR7XG4gICAgICBBcnJheS5pc0FycmF5KGFyZ3MpID8gYFske2FyZ3Muam9pbihcIiwgXCIpfV1gIDogYFwiJHthcmdzfVwiYFxuICAgIH0sIG9wdGlvbnM9JHtKU09OLnN0cmluZ2lmeShvcHRpb25zKX1gLFxuICApO1xuXG4gIGNvbnN0IHAgPSBwdHkuc3Bhd24oZmlsZSwgYXJncywgb3B0aW9ucyk7XG5cbiAgY29uc3QgYWN0aW9uczogUHR5UHJvY2Vzc0FjdGlvbnMgPSB7XG4gICAgd3JpdGU6IChyZXNwb25zZTogc3RyaW5nKSA9PiB7XG4gICAgICBsb2dnZXIudHJhY2UoXG4gICAgICAgIGBTZW5kaW5nIHJlc3BvbnNlIHRvIHB0eSAoZmlsZT0ke2ZpbGV9LCBhcmdzPSR7XG4gICAgICAgICAgQXJyYXkuaXNBcnJheShhcmdzKSA/IGBbJHthcmdzLmpvaW4oXCIsIFwiKX1dYCA6IGBcIiR7YXJnc31cImBcbiAgICAgICAgfSk6ICR7cmVzcG9uc2V9YCxcbiAgICAgICk7XG4gICAgICBwLndyaXRlKHJlc3BvbnNlKTtcbiAgICB9LFxuICAgIHdyaXRlTGluZTogKHJlc3BvbnNlOiBzdHJpbmcpID0+IHtcbiAgICAgIGxvZ2dlci50cmFjZShcbiAgICAgICAgYFNlbmRpbmcgcmVzcG9uc2UgKHdpdGggbmV3bGluZSkgdG8gcHR5IChmaWxlPSR7ZmlsZX0sIGFyZ3M9JHtcbiAgICAgICAgICBBcnJheS5pc0FycmF5KGFyZ3MpID8gYFske2FyZ3Muam9pbihcIiwgXCIpfV1gIDogYFwiJHthcmdzfVwiYFxuICAgICAgICB9KTogJHtyZXNwb25zZX1gLFxuICAgICAgKTtcbiAgICAgIHAud3JpdGUoYCR7cmVzcG9uc2V9JHtvcy5FT0x9YCk7XG4gICAgfSxcbiAgICBzdG9wOiAoKSA9PiB7XG4gICAgICBsb2dnZXIudHJhY2UoXG4gICAgICAgIGBBYm9ydGluZyBwdHkgKGZpbGU9JHtmaWxlfSwgYXJncz0ke1xuICAgICAgICAgIEFycmF5LmlzQXJyYXkoYXJncykgPyBgWyR7YXJncy5qb2luKFwiLCBcIil9XWAgOiBgXCIke2FyZ3N9XCJgXG4gICAgICAgIH0pYCxcbiAgICAgICk7XG4gICAgICBwLndyaXRlKFwiXFx4MDNcIik7IC8vIENUUkwgKyBDLCBwdHkua2lsbCgpIGRvZXMgbm90IHdvcmsgb24gd2luZG93c1xuICAgIH0sXG4gIH07XG5cbiAgcC5vbkRhdGEoKGRhdGEpID0+IG9uRGF0YShkYXRhKSk7XG5cbiAgY29uc3QgZXhpdENvZGUgPSBuZXcgUHJvbWlzZTxudW1iZXI+KChyZXNvbHZlKSA9PiB7XG4gICAgcC5vbkV4aXQoKHsgZXhpdENvZGUgfSkgPT4ge1xuICAgICAgaWYgKGV4aXRDb2RlICE9PSAwKSB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICBgUHR5IChmaWxlPSR7ZmlsZX0sIGFyZ3M9JHtcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoYXJncykgPyBgWyR7YXJncy5qb2luKFwiLCBcIil9XWAgOiBgXCIke2FyZ3N9XCJgXG4gICAgICAgICAgfSkgZXhpdGVkIHdpdGggY29kZSAke2V4aXRDb2RlfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXNvbHZlKGV4aXRDb2RlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIHsgZXhpdENvZGUsIGFjdGlvbnMgfTtcbn1cblxuLy8gc3JjOiBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L3ZzY29kZS9ibG9iL2MwYzllYTI3ZDZlOGQ2NjBkODcxNmQ3YWNlZTgyY2YzYzAwZmEzZTUvc3JjL3ZzL3dvcmtiZW5jaC9wYXJ0cy90YXNrcy9lbGVjdHJvbi1icm93c2VyL3Rlcm1pbmFsVGFza1N5c3RlbS50cyNMNjkxXG4vLyBUT0RPOiBwcm9wZXJseSBhbm5vdGF0ZSBzb3VyY2Ugb2YgdGhpcyBmdW5jdGlvblxuZnVuY3Rpb24gZmluZEV4ZWN1dGFibGUoXG4gIGNvbW1hbmQ6IHN0cmluZyxcbiAgY3dkOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHsgZW52PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB9LFxuKTogc3RyaW5nIHtcbiAgLy8gSWYgd2UgaGF2ZSBhbiBhYnNvbHV0ZSBwYXRoIHRoZW4gd2UgdGFrZSBpdC5cbiAgaWYgKHBhdGguaXNBYnNvbHV0ZShjb21tYW5kKSkge1xuICAgIHJldHVybiBjb21tYW5kO1xuICB9XG4gIGNvbnN0IGRpciA9IHBhdGguZGlybmFtZShjb21tYW5kKTtcbiAgaWYgKGRpciAhPT0gXCIuXCIpIHtcbiAgICAvLyBXZSBoYXZlIGEgZGlyZWN0b3J5IGFuZCB0aGUgZGlyZWN0b3J5IGlzIHJlbGF0aXZlIChzZWUgYWJvdmUpLiBNYWtlIHRoZSBwYXRoIGFic29sdXRlXG4gICAgLy8gdG8gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gICAgcmV0dXJuIHBhdGguam9pbihjd2QsIGNvbW1hbmQpO1xuICB9XG4gIGxldCBwYXRoczogc3RyaW5nW10gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIC8vIFRoZSBvcHRpb25zIGNhbiBvdmVycmlkZSB0aGUgUEFUSC4gU28gY29uc2lkZXIgdGhhdCBQQVRIIGlmIHByZXNlbnQuXG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZW52KSB7XG4gICAgLy8gUGF0aCBjYW4gYmUgbmFtZWQgaW4gbWFueSBkaWZmZXJlbnQgd2F5cyBhbmQgZm9yIHRoZSBleGVjdXRpb24gaXQgZG9lc24ndCBtYXR0ZXJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvcHRpb25zLmVudikpIHtcbiAgICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gXCJwYXRoXCIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmVudltrZXldID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgcGF0aHMgPSBvcHRpb25zLmVudltrZXldLnNwbGl0KHBhdGguZGVsaW1pdGVyKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKHBhdGhzID09PSB2b2lkIDAgJiYgdHlwZW9mIHByb2Nlc3MuZW52LlBBVEggPT09IFwic3RyaW5nXCIpIHtcbiAgICBwYXRocyA9IHByb2Nlc3MuZW52LlBBVEguc3BsaXQocGF0aC5kZWxpbWl0ZXIpO1xuICB9XG4gIC8vIE5vIFBBVEggZW52aXJvbm1lbnQuIE1ha2UgcGF0aCBhYnNvbHV0ZSB0byB0aGUgY3dkLlxuICBpZiAocGF0aHMgPT09IHZvaWQgMCB8fCBwYXRocy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gcGF0aC5qb2luKGN3ZCwgY29tbWFuZCk7XG4gIH1cbiAgLy8gV2UgaGF2ZSBhIHNpbXBsZSBmaWxlIG5hbWUuIFdlIGdldCB0aGUgcGF0aCB2YXJpYWJsZSBmcm9tIHRoZSBlbnZcbiAgLy8gYW5kIHRyeSB0byBmaW5kIHRoZSBleGVjdXRhYmxlIG9uIHRoZSBwYXRoLlxuICBmb3IgKGNvbnN0IHBhdGhFbnRyeSBvZiBwYXRocykge1xuICAgIC8vIFRoZSBwYXRoIGVudHJ5IGlzIGFic29sdXRlLlxuICAgIGxldCBmdWxsUGF0aDogc3RyaW5nO1xuICAgIGlmIChwYXRoLmlzQWJzb2x1dGUocGF0aEVudHJ5KSkge1xuICAgICAgZnVsbFBhdGggPSBwYXRoLmpvaW4ocGF0aEVudHJ5LCBjb21tYW5kKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZnVsbFBhdGggPSBwYXRoLmpvaW4oY3dkLCBwYXRoRW50cnksIGNvbW1hbmQpO1xuICAgIH1cbiAgICBpZiAoZnMuZXhpc3RzU3luYyhmdWxsUGF0aCkpIHtcbiAgICAgIHJldHVybiBmdWxsUGF0aDtcbiAgICB9XG4gICAgbGV0IHdpdGhFeHRlbnNpb24gPSBmdWxsUGF0aCArIFwiLmNvbVwiO1xuICAgIGlmIChmcy5leGlzdHNTeW5jKHdpdGhFeHRlbnNpb24pKSB7XG4gICAgICByZXR1cm4gd2l0aEV4dGVuc2lvbjtcbiAgICB9XG4gICAgd2l0aEV4dGVuc2lvbiA9IGZ1bGxQYXRoICsgXCIuZXhlXCI7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMod2l0aEV4dGVuc2lvbikpIHtcbiAgICAgIHJldHVybiB3aXRoRXh0ZW5zaW9uO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcGF0aC5qb2luKGN3ZCwgY29tbWFuZCk7XG59XG4iXX0=
|