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