@cdktn/cli-core 0.23.0-pre.8 → 0.24.0-pre.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 +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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prebuilt-providers.d.ts","sourceRoot":"","sources":["../../../src/lib/dependencies/prebuilt-providers.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAc1D,KAAK,YAAY,GAAG;IAClB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB,CAAC;AAeF,wBAAsB,eAAe,kBAEpC;AA2CD,wBAAsB,uBAAuB,0BAE5C;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,kBAAkB,EAC9B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAc7B;AA+ED,KAAK,uBAAuB,GAAG;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,6BAA6B,EAAE,MAAM,CAAC;IACtC,6BAA6B,EAAE,MAAM,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAsB,iCAAiC,CACrD,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED,wBAAsB,8BAA8B,CAClD,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAyCpC;AASD,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,kBAAkB,EAC9B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,IAAI,CAAC,CAsDrD;AAED,wBAAsB,qCAAqC,CACzD,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,GAAG,CAAC,CAwBd"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) HashiCorp, Inc
|
|
3
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
+
if (k2 === undefined) k2 = k;
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
11
|
+
}) : (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
o[k2] = m[k];
|
|
14
|
+
}));
|
|
15
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
17
|
+
}) : function(o, v) {
|
|
18
|
+
o["default"] = v;
|
|
19
|
+
});
|
|
20
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
21
|
+
if (mod && mod.__esModule) return mod;
|
|
22
|
+
var result = {};
|
|
23
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
24
|
+
__setModuleDefault(result, mod);
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
27
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
28
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
29
|
+
};
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.getPrebuiltProviderVersionInformation = exports.getPrebuiltProviderVersions = exports.getAllPrebuiltProviderVersions = exports.getPrebuiltProviderRepositoryName = exports.getNpmPackageName = exports.getAllPrebuiltProviders = exports.resetFetchCache = void 0;
|
|
32
|
+
const https_proxy_agent_1 = require("https-proxy-agent");
|
|
33
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
34
|
+
const semver = __importStar(require("semver"));
|
|
35
|
+
const commons_1 = require("@cdktn/commons");
|
|
36
|
+
const dependency_manager_1 = require("./dependency-manager");
|
|
37
|
+
const version_constraints_1 = require("./version-constraints");
|
|
38
|
+
const proxy = process.env.http_proxy || process.env.HTTP_PROXY;
|
|
39
|
+
let agent;
|
|
40
|
+
if (proxy) {
|
|
41
|
+
agent = new https_proxy_agent_1.HttpsProxyAgent(proxy);
|
|
42
|
+
}
|
|
43
|
+
// uses https://github.com/hashicorp/cdktf-repository-manager/blob/main/provider.json
|
|
44
|
+
// However, it got cleared out. We'll need to host the existing list somewhere
|
|
45
|
+
// const providersMapUrl = `https://www.cdk.tf/.well-known/prebuilt-providers.json`;
|
|
46
|
+
const providersMapUrl = "https://raw.githubusercontent.com/cdktn-io/cdktn-repository-manager/refs/heads/main/provider.json";
|
|
47
|
+
const fetchCache = new Map();
|
|
48
|
+
async function cachedFetch(url) {
|
|
49
|
+
if (fetchCache.has(url)) {
|
|
50
|
+
return fetchCache.get(url);
|
|
51
|
+
}
|
|
52
|
+
const responseBody = await fetchWrapped(url);
|
|
53
|
+
fetchCache.set(url, responseBody);
|
|
54
|
+
return responseBody;
|
|
55
|
+
}
|
|
56
|
+
// For testing purposes only
|
|
57
|
+
async function resetFetchCache() {
|
|
58
|
+
fetchCache.clear();
|
|
59
|
+
}
|
|
60
|
+
exports.resetFetchCache = resetFetchCache;
|
|
61
|
+
async function fetchWrapped(url) {
|
|
62
|
+
let response;
|
|
63
|
+
try {
|
|
64
|
+
response = await (0, node_fetch_1.default)(url, {
|
|
65
|
+
agent,
|
|
66
|
+
headers: { "User-Agent": "OpenConstructs/cdktn-cli" },
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
catch (_a) {
|
|
70
|
+
// Fetch only fails here because of connectivity issues
|
|
71
|
+
commons_1.logger.error("Unable to request pre-built provider information: Network error, please check if you're connected to the internet and try again");
|
|
72
|
+
throw new Error("Connection error");
|
|
73
|
+
}
|
|
74
|
+
if (!response.ok) {
|
|
75
|
+
if (response.status >= 500) {
|
|
76
|
+
throw new Error("Unexpected error while finding pre-built provider. Please try again.");
|
|
77
|
+
}
|
|
78
|
+
if (response.status === 404) {
|
|
79
|
+
throw new Error(`Pre-built provider information not found`);
|
|
80
|
+
}
|
|
81
|
+
if (response.status >= 400) {
|
|
82
|
+
const responseText = await response.text();
|
|
83
|
+
// This means that we're sending a bad request. We should record this in sentry too.
|
|
84
|
+
commons_1.logger.error(`Received ${response.status} response from ${url}: ${responseText}`);
|
|
85
|
+
throw new Error("Unexpected error while finding pre-built provider. Please try again.");
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return response.json();
|
|
89
|
+
}
|
|
90
|
+
async function getAllPrebuiltProviders() {
|
|
91
|
+
return cachedFetch(providersMapUrl);
|
|
92
|
+
}
|
|
93
|
+
exports.getAllPrebuiltProviders = getAllPrebuiltProviders;
|
|
94
|
+
async function getNpmPackageName(constraint, useCdktn) {
|
|
95
|
+
const providers = await getAllPrebuiltProviders();
|
|
96
|
+
const entry = Object.entries(providers).find(([, p]) => dependency_manager_1.ProviderConstraint.fromConfigEntry(p).source.toLowerCase() ===
|
|
97
|
+
constraint.source.toLowerCase());
|
|
98
|
+
if (!entry) {
|
|
99
|
+
return undefined; // no pre-built provider found for this constraint
|
|
100
|
+
}
|
|
101
|
+
const name = entry[0];
|
|
102
|
+
return useCdktn ? `@cdktn/provider-${name}` : `@cdktf/provider-${name}`;
|
|
103
|
+
}
|
|
104
|
+
exports.getNpmPackageName = getNpmPackageName;
|
|
105
|
+
async function getPrebuiltProviderRepositoryName(packageName) {
|
|
106
|
+
var _a;
|
|
107
|
+
const url = `https://registry.npmjs.org/${packageName}`;
|
|
108
|
+
const result = await cachedFetch(url);
|
|
109
|
+
const repositoryUrl = (_a = result === null || result === void 0 ? void 0 : result.repository) === null || _a === void 0 ? void 0 : _a.url;
|
|
110
|
+
if (!repositoryUrl)
|
|
111
|
+
return "";
|
|
112
|
+
const repositoryRegex = /^git\+https:\/\/(github.com\/.*)\.git$/;
|
|
113
|
+
const match = repositoryRegex.exec(repositoryUrl);
|
|
114
|
+
if (!match)
|
|
115
|
+
return "";
|
|
116
|
+
return match[1];
|
|
117
|
+
}
|
|
118
|
+
exports.getPrebuiltProviderRepositoryName = getPrebuiltProviderRepositoryName;
|
|
119
|
+
async function getAllPrebuiltProviderVersions(packageName) {
|
|
120
|
+
const url = `https://registry.npmjs.org/${packageName}`;
|
|
121
|
+
const result = await cachedFetch(url);
|
|
122
|
+
const versions = Object.entries(result.versions)
|
|
123
|
+
.map(([version, packageJson]) => {
|
|
124
|
+
var _a, _b, _c, _d, _e;
|
|
125
|
+
const provider = (_b = (_a = packageJson.cdktn) === null || _a === void 0 ? void 0 : _a.provider) !== null && _b !== void 0 ? _b : (_c = packageJson.cdktf) === null || _c === void 0 ? void 0 : _c.provider;
|
|
126
|
+
if (!provider ||
|
|
127
|
+
(!((_d = packageJson.peerDependencies) === null || _d === void 0 ? void 0 : _d.cdktf) &&
|
|
128
|
+
!((_e = packageJson.peerDependencies) === null || _e === void 0 ? void 0 : _e.cdktn))) {
|
|
129
|
+
commons_1.logger.trace(`skipping version ${version} of ${packageName} as it does not have a cdktn/cdktf.provider or peerDependencies.cdktf/cdktn in package.json`);
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
packageName,
|
|
134
|
+
packageVersion: version,
|
|
135
|
+
providerVersion: provider.version,
|
|
136
|
+
cdktfPeerDependencyConstraint: packageJson.peerDependencies.cdktf,
|
|
137
|
+
cdktnPeerDependencyConstraint: packageJson.peerDependencies.cdktn,
|
|
138
|
+
};
|
|
139
|
+
})
|
|
140
|
+
.filter((v) => v !== undefined);
|
|
141
|
+
// latest version first, sorted by packageVersion as that
|
|
142
|
+
// one always increases while the providerVersion may not
|
|
143
|
+
versions.sort((a, b) => {
|
|
144
|
+
if (semver.gt(a.packageVersion, b.packageVersion)) {
|
|
145
|
+
return -1;
|
|
146
|
+
}
|
|
147
|
+
if (semver.lt(a.packageVersion, b.packageVersion)) {
|
|
148
|
+
return 1;
|
|
149
|
+
}
|
|
150
|
+
return 0;
|
|
151
|
+
});
|
|
152
|
+
return versions;
|
|
153
|
+
}
|
|
154
|
+
exports.getAllPrebuiltProviderVersions = getAllPrebuiltProviderVersions;
|
|
155
|
+
function cdktfVersionMatches(cdktfVersion, cdktfPeerDependencyConstraint) {
|
|
156
|
+
return semver.satisfies(cdktfVersion, cdktfPeerDependencyConstraint);
|
|
157
|
+
}
|
|
158
|
+
async function getPrebuiltProviderVersions(constraint, cdktfVersion) {
|
|
159
|
+
const cdktfProviderName = await getNpmPackageName(constraint, false);
|
|
160
|
+
const cdktnProviderName = await getNpmPackageName(constraint, true);
|
|
161
|
+
// no pre-built provider exists
|
|
162
|
+
if (!cdktfProviderName && !cdktnProviderName) {
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
const cdktfVersions = cdktfProviderName
|
|
166
|
+
? await getAllPrebuiltProviderVersions(cdktfProviderName)
|
|
167
|
+
: [];
|
|
168
|
+
commons_1.logger.debug(`Found versions for ${cdktfProviderName}: ${JSON.stringify(cdktfVersions, null, 2)}`);
|
|
169
|
+
const cdktnVersions = cdktnProviderName
|
|
170
|
+
? await getAllPrebuiltProviderVersions(cdktnProviderName)
|
|
171
|
+
: [];
|
|
172
|
+
commons_1.logger.debug(`Found versions for ${cdktnProviderName}: ${JSON.stringify(cdktnVersions, null, 2)}`);
|
|
173
|
+
const versions = cdktfVersions.concat(cdktnVersions);
|
|
174
|
+
// find first the version that matches the requested provider version and cdktf version
|
|
175
|
+
const matchingVersions = versions.filter((v) => {
|
|
176
|
+
if (!cdktfVersionMatches(cdktfVersion, v.cdktfPeerDependencyConstraint) &&
|
|
177
|
+
!cdktfVersionMatches(cdktfVersion, v.cdktnPeerDependencyConstraint)) {
|
|
178
|
+
return false; // skip if cdktf version does not match
|
|
179
|
+
}
|
|
180
|
+
if (constraint.version) {
|
|
181
|
+
return (0, version_constraints_1.versionMatchesConstraint)(v.providerVersion, constraint.version);
|
|
182
|
+
}
|
|
183
|
+
return true; // if no version constraint is passed, return true on the first match
|
|
184
|
+
});
|
|
185
|
+
if (!matchingVersions.length) {
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
188
|
+
const npmPackageVersions = matchingVersions
|
|
189
|
+
.map((matchingVersion) => ({
|
|
190
|
+
name: matchingVersion.packageName,
|
|
191
|
+
version: matchingVersion.packageVersion,
|
|
192
|
+
}))
|
|
193
|
+
.sort((a, b) => semver.compare(a.version, b.version))
|
|
194
|
+
.reverse();
|
|
195
|
+
return npmPackageVersions;
|
|
196
|
+
}
|
|
197
|
+
exports.getPrebuiltProviderVersions = getPrebuiltProviderVersions;
|
|
198
|
+
async function getPrebuiltProviderVersionInformation(packageName, packageVersion) {
|
|
199
|
+
var _a, _b, _c, _d, _e, _f;
|
|
200
|
+
// Go packages include an extra `vX.Y.Z`
|
|
201
|
+
if (packageVersion.startsWith("v")) {
|
|
202
|
+
packageVersion = packageVersion.slice(1);
|
|
203
|
+
}
|
|
204
|
+
const url = `https://registry.npmjs.org/${packageName}/${packageVersion}`;
|
|
205
|
+
const result = await cachedFetch(url);
|
|
206
|
+
let providerName = (_b = (_a = result.cdktn) === null || _a === void 0 ? void 0 : _a.provider.name) !== null && _b !== void 0 ? _b : (_c = result.cdktf) === null || _c === void 0 ? void 0 : _c.provider.name;
|
|
207
|
+
if (providerName) {
|
|
208
|
+
providerName = providerName.replace("registry.terraform.io/", "");
|
|
209
|
+
providerName = providerName.replace("hashicorp/", "");
|
|
210
|
+
}
|
|
211
|
+
return {
|
|
212
|
+
packageName: result.name,
|
|
213
|
+
packageVersion: result.version,
|
|
214
|
+
providerName,
|
|
215
|
+
providerVersion: (_e = (_d = result.cdktn) === null || _d === void 0 ? void 0 : _d.provider.version) !== null && _e !== void 0 ? _e : (_f = result.cdktf) === null || _f === void 0 ? void 0 : _f.provider.version,
|
|
216
|
+
cdktfVersion: result.peerDependencies["cdktf"],
|
|
217
|
+
cdktnVersion: result.peerDependencies["cdktn"],
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
exports.getPrebuiltProviderVersionInformation = getPrebuiltProviderVersionInformation;
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlYnVpbHQtcHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvcHJlYnVpbHQtcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuQyx5REFBb0Q7QUFDcEQsNERBQStCO0FBQy9CLCtDQUFpQztBQUNqQyw0Q0FBd0M7QUFDeEMsNkRBQTBEO0FBQzFELCtEQUFpRTtBQUVqRSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztBQUMvRCxJQUFJLEtBQWtDLENBQUM7QUFDdkMsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUNWLEtBQUssR0FBRyxJQUFJLG1DQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVELHFGQUFxRjtBQUNyRiw4RUFBOEU7QUFDOUUsb0ZBQW9GO0FBQ3BGLE1BQU0sZUFBZSxHQUNuQixtR0FBbUcsQ0FBQztBQUt0RyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO0FBQzFDLEtBQUssVUFBVSxXQUFXLENBQUksR0FBVztJQUN2QyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFNLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sWUFBWSxDQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRWxDLE9BQU8sWUFBaUIsQ0FBQztBQUMzQixDQUFDO0FBRUQsNEJBQTRCO0FBQ3JCLEtBQUssVUFBVSxlQUFlO0lBQ25DLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNyQixDQUFDO0FBRkQsMENBRUM7QUFFRCxLQUFLLFVBQVUsWUFBWSxDQUFJLEdBQVc7SUFDeEMsSUFBSSxRQUFRLENBQUM7SUFDYixJQUFJLENBQUM7UUFDSCxRQUFRLEdBQUcsTUFBTSxJQUFBLG9CQUFLLEVBQUMsR0FBRyxFQUFFO1lBQzFCLEtBQUs7WUFDTCxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsMEJBQTBCLEVBQUU7U0FDdEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLFdBQU0sQ0FBQztRQUNQLHVEQUF1RDtRQUN2RCxnQkFBTSxDQUFDLEtBQUssQ0FDVixpSUFBaUksQ0FDbEksQ0FBQztRQUVGLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNqQixJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FDYixzRUFBc0UsQ0FDdkUsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7WUFDM0IsTUFBTSxZQUFZLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0Msb0ZBQW9GO1lBQ3BGLGdCQUFNLENBQUMsS0FBSyxDQUNWLFlBQVksUUFBUSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxZQUFZLEVBQUUsQ0FDcEUsQ0FBQztZQUVGLE1BQU0sSUFBSSxLQUFLLENBQ2Isc0VBQXNFLENBQ3ZFLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDLElBQUksRUFBZ0IsQ0FBQztBQUN2QyxDQUFDO0FBRU0sS0FBSyxVQUFVLHVCQUF1QjtJQUMzQyxPQUFPLFdBQVcsQ0FBZSxlQUFlLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRkQsMERBRUM7QUFFTSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLFVBQThCLEVBQzlCLFFBQWlCO0lBRWpCLE1BQU0sU0FBUyxHQUFHLE1BQU0sdUJBQXVCLEVBQUUsQ0FBQztJQUVsRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDMUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNSLHVDQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFO1FBQzFELFVBQVUsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQ2xDLENBQUM7SUFDRixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLFNBQVMsQ0FBQyxDQUFDLGtEQUFrRDtJQUN0RSxDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXRCLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztBQUMxRSxDQUFDO0FBakJELDhDQWlCQztBQXVGTSxLQUFLLFVBQVUsaUNBQWlDLENBQ3JELFdBQW1COztJQUVuQixNQUFNLEdBQUcsR0FBRyw4QkFBOEIsV0FBVyxFQUFFLENBQUM7SUFDeEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxXQUFXLENBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBRXhELE1BQU0sYUFBYSxHQUFHLE1BQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFVBQVUsMENBQUUsR0FBRyxDQUFDO0lBRTlDLElBQUksQ0FBQyxhQUFhO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFOUIsTUFBTSxlQUFlLEdBQUcsd0NBQXdDLENBQUM7SUFDakUsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVsRCxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXRCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUM7QUFoQkQsOEVBZ0JDO0FBRU0sS0FBSyxVQUFVLDhCQUE4QixDQUNsRCxXQUFtQjtJQUVuQixNQUFNLEdBQUcsR0FBRyw4QkFBOEIsV0FBVyxFQUFFLENBQUM7SUFDeEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxXQUFXLENBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBRXhELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUM3QyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFOztRQUM5QixNQUFNLFFBQVEsR0FDWixNQUFBLE1BQUEsV0FBVyxDQUFDLEtBQUssMENBQUUsUUFBUSxtQ0FBSSxNQUFBLFdBQVcsQ0FBQyxLQUFLLDBDQUFFLFFBQVEsQ0FBQztRQUM3RCxJQUNFLENBQUMsUUFBUTtZQUNULENBQUMsQ0FBQyxDQUFBLE1BQUEsV0FBVyxDQUFDLGdCQUFnQiwwQ0FBRSxLQUFLLENBQUE7Z0JBQ25DLENBQUMsQ0FBQSxNQUFBLFdBQVcsQ0FBQyxnQkFBZ0IsMENBQUUsS0FBSyxDQUFBLENBQUMsRUFDdkMsQ0FBQztZQUNELGdCQUFNLENBQUMsS0FBSyxDQUNWLG9CQUFvQixPQUFPLE9BQU8sV0FBVyw2RkFBNkYsQ0FDM0ksQ0FBQztZQUNGLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPO1lBQ0wsV0FBVztZQUNYLGNBQWMsRUFBRSxPQUFPO1lBQ3ZCLGVBQWUsRUFBRSxRQUFRLENBQUMsT0FBTztZQUNqQyw2QkFBNkIsRUFBRSxXQUFXLENBQUMsZ0JBQWdCLENBQUMsS0FBSztZQUNqRSw2QkFBNkIsRUFBRSxXQUFXLENBQUMsZ0JBQWdCLENBQUMsS0FBSztTQUNsRSxDQUFDO0lBQ0osQ0FBQyxDQUFDO1NBQ0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUE4QixDQUFDO0lBRS9ELHlEQUF5RDtJQUN6RCx5REFBeUQ7SUFDekQsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNyQixJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUNsRCxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ1osQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBM0NELHdFQTJDQztBQUVELFNBQVMsbUJBQW1CLENBQzFCLFlBQW9CLEVBQ3BCLDZCQUFxQztJQUVyQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLDZCQUE2QixDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUVNLEtBQUssVUFBVSwyQkFBMkIsQ0FDL0MsVUFBOEIsRUFDOUIsWUFBb0I7SUFFcEIsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0saUJBQWlCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRXBFLCtCQUErQjtJQUMvQixJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLGlCQUFpQjtRQUNyQyxDQUFDLENBQUMsTUFBTSw4QkFBOEIsQ0FBQyxpQkFBaUIsQ0FBQztRQUN6RCxDQUFDLENBQUUsRUFBZ0MsQ0FBQztJQUN0QyxnQkFBTSxDQUFDLEtBQUssQ0FDVixzQkFBc0IsaUJBQWlCLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FDeEQsYUFBYSxFQUNiLElBQUksRUFDSixDQUFDLENBQ0YsRUFBRSxDQUNKLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRyxpQkFBaUI7UUFDckMsQ0FBQyxDQUFDLE1BQU0sOEJBQThCLENBQUMsaUJBQWlCLENBQUM7UUFDekQsQ0FBQyxDQUFFLEVBQWdDLENBQUM7SUFDdEMsZ0JBQU0sQ0FBQyxLQUFLLENBQ1Ysc0JBQXNCLGlCQUFpQixLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUNyRixDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVyRCx1RkFBdUY7SUFDdkYsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDN0MsSUFDRSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsNkJBQTZCLENBQUM7WUFDbkUsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLEVBQ25FLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDLHVDQUF1QztRQUN2RCxDQUFDO1FBQ0QsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkIsT0FBTyxJQUFBLDhDQUF3QixFQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxDQUFDLHFFQUFxRTtJQUNwRixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxNQUFNLGtCQUFrQixHQUFHLGdCQUFnQjtTQUN4QyxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxXQUFXO1FBQ2pDLE9BQU8sRUFBRSxlQUFlLENBQUMsY0FBYztLQUN4QyxDQUFDLENBQUM7U0FDRixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3BELE9BQU8sRUFBRSxDQUFDO0lBQ2IsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDO0FBekRELGtFQXlEQztBQUVNLEtBQUssVUFBVSxxQ0FBcUMsQ0FDekQsV0FBbUIsRUFDbkIsY0FBc0I7O0lBRXRCLHdDQUF3QztJQUN4QyxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxjQUFjLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQUcsOEJBQThCLFdBQVcsSUFBSSxjQUFjLEVBQUUsQ0FBQztJQUMxRSxNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBZ0MsR0FBRyxDQUFDLENBQUM7SUFFckUsSUFBSSxZQUFZLEdBQUcsTUFBQSxNQUFBLE1BQU0sQ0FBQyxLQUFLLDBDQUFFLFFBQVEsQ0FBQyxJQUFJLG1DQUFJLE1BQUEsTUFBTSxDQUFDLEtBQUssMENBQUUsUUFBUSxDQUFDLElBQUksQ0FBQztJQUM5RSxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pCLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsT0FBTztRQUNMLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSTtRQUN4QixjQUFjLEVBQUUsTUFBTSxDQUFDLE9BQU87UUFDOUIsWUFBWTtRQUNaLGVBQWUsRUFDYixNQUFBLE1BQUEsTUFBTSxDQUFDLEtBQUssMENBQUUsUUFBUSxDQUFDLE9BQU8sbUNBQUksTUFBQSxNQUFNLENBQUMsS0FBSywwQ0FBRSxRQUFRLENBQUMsT0FBTztRQUNsRSxZQUFZLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztRQUM5QyxZQUFZLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztLQUMvQyxDQUFDO0FBQ0osQ0FBQztBQTNCRCxzRkEyQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuXG5pbXBvcnQgeyBIdHRwc1Byb3h5QWdlbnQgfSBmcm9tIFwiaHR0cHMtcHJveHktYWdlbnRcIjtcbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiO1xuaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gXCJzZW12ZXJcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHsgUHJvdmlkZXJDb25zdHJhaW50IH0gZnJvbSBcIi4vZGVwZW5kZW5jeS1tYW5hZ2VyXCI7XG5pbXBvcnQgeyB2ZXJzaW9uTWF0Y2hlc0NvbnN0cmFpbnQgfSBmcm9tIFwiLi92ZXJzaW9uLWNvbnN0cmFpbnRzXCI7XG5cbmNvbnN0IHByb3h5ID0gcHJvY2Vzcy5lbnYuaHR0cF9wcm94eSB8fCBwcm9jZXNzLmVudi5IVFRQX1BST1hZO1xubGV0IGFnZW50OiBIdHRwc1Byb3h5QWdlbnQgfCB1bmRlZmluZWQ7XG5pZiAocHJveHkpIHtcbiAgYWdlbnQgPSBuZXcgSHR0cHNQcm94eUFnZW50KHByb3h5KTtcbn1cblxuLy8gdXNlcyBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL2Nka3RmLXJlcG9zaXRvcnktbWFuYWdlci9ibG9iL21haW4vcHJvdmlkZXIuanNvblxuLy8gSG93ZXZlciwgaXQgZ290IGNsZWFyZWQgb3V0LiBXZSdsbCBuZWVkIHRvIGhvc3QgdGhlIGV4aXN0aW5nIGxpc3Qgc29tZXdoZXJlXG4vLyBjb25zdCBwcm92aWRlcnNNYXBVcmwgPSBgaHR0cHM6Ly93d3cuY2RrLnRmLy53ZWxsLWtub3duL3ByZWJ1aWx0LXByb3ZpZGVycy5qc29uYDtcbmNvbnN0IHByb3ZpZGVyc01hcFVybCA9XG4gIFwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nka3RuLWlvL2Nka3RuLXJlcG9zaXRvcnktbWFuYWdlci9yZWZzL2hlYWRzL21haW4vcHJvdmlkZXIuanNvblwiO1xudHlwZSBQcm92aWRlcnNNYXAgPSB7XG4gIFtuYW1lOiBzdHJpbmddOiBzdHJpbmc7XG59O1xuXG5jb25zdCBmZXRjaENhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbmFzeW5jIGZ1bmN0aW9uIGNhY2hlZEZldGNoPFQ+KHVybDogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gIGlmIChmZXRjaENhY2hlLmhhcyh1cmwpKSB7XG4gICAgcmV0dXJuIGZldGNoQ2FjaGUuZ2V0KHVybCkgYXMgVDtcbiAgfVxuXG4gIGNvbnN0IHJlc3BvbnNlQm9keSA9IGF3YWl0IGZldGNoV3JhcHBlZDxUPih1cmwpO1xuICBmZXRjaENhY2hlLnNldCh1cmwsIHJlc3BvbnNlQm9keSk7XG5cbiAgcmV0dXJuIHJlc3BvbnNlQm9keSBhcyBUO1xufVxuXG4vLyBGb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzZXRGZXRjaENhY2hlKCkge1xuICBmZXRjaENhY2hlLmNsZWFyKCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoV3JhcHBlZDxUPih1cmw6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICBsZXQgcmVzcG9uc2U7XG4gIHRyeSB7XG4gICAgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgIGFnZW50LFxuICAgICAgaGVhZGVyczogeyBcIlVzZXItQWdlbnRcIjogXCJPcGVuQ29uc3RydWN0cy9jZGt0bi1jbGlcIiB9LFxuICAgIH0pO1xuICB9IGNhdGNoIHtcbiAgICAvLyBGZXRjaCBvbmx5IGZhaWxzIGhlcmUgYmVjYXVzZSBvZiBjb25uZWN0aXZpdHkgaXNzdWVzXG4gICAgbG9nZ2VyLmVycm9yKFxuICAgICAgXCJVbmFibGUgdG8gcmVxdWVzdCBwcmUtYnVpbHQgcHJvdmlkZXIgaW5mb3JtYXRpb246IE5ldHdvcmsgZXJyb3IsIHBsZWFzZSBjaGVjayBpZiB5b3UncmUgY29ubmVjdGVkIHRvIHRoZSBpbnRlcm5ldCBhbmQgdHJ5IGFnYWluXCIsXG4gICAgKTtcblxuICAgIHRocm93IG5ldyBFcnJvcihcIkNvbm5lY3Rpb24gZXJyb3JcIik7XG4gIH1cblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA+PSA1MDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJVbmV4cGVjdGVkIGVycm9yIHdoaWxlIGZpbmRpbmcgcHJlLWJ1aWx0IHByb3ZpZGVyLiBQbGVhc2UgdHJ5IGFnYWluLlwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFByZS1idWlsdCBwcm92aWRlciBpbmZvcm1hdGlvbiBub3QgZm91bmRgKTtcbiAgICB9XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA+PSA0MDApIHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlVGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgICAgIC8vIFRoaXMgbWVhbnMgdGhhdCB3ZSdyZSBzZW5kaW5nIGEgYmFkIHJlcXVlc3QuIFdlIHNob3VsZCByZWNvcmQgdGhpcyBpbiBzZW50cnkgdG9vLlxuICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICBgUmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9IHJlc3BvbnNlIGZyb20gJHt1cmx9OiAke3Jlc3BvbnNlVGV4dH1gLFxuICAgICAgKTtcblxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlVuZXhwZWN0ZWQgZXJyb3Igd2hpbGUgZmluZGluZyBwcmUtYnVpbHQgcHJvdmlkZXIuIFBsZWFzZSB0cnkgYWdhaW4uXCIsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXNwb25zZS5qc29uKCkgYXMgUHJvbWlzZTxUPjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFsbFByZWJ1aWx0UHJvdmlkZXJzKCkge1xuICByZXR1cm4gY2FjaGVkRmV0Y2g8UHJvdmlkZXJzTWFwPihwcm92aWRlcnNNYXBVcmwpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TnBtUGFja2FnZU5hbWUoXG4gIGNvbnN0cmFpbnQ6IFByb3ZpZGVyQ29uc3RyYWludCxcbiAgdXNlQ2RrdG46IGJvb2xlYW4sXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBwcm92aWRlcnMgPSBhd2FpdCBnZXRBbGxQcmVidWlsdFByb3ZpZGVycygpO1xuXG4gIGNvbnN0IGVudHJ5ID0gT2JqZWN0LmVudHJpZXMocHJvdmlkZXJzKS5maW5kKFxuICAgIChbLCBwXSkgPT5cbiAgICAgIFByb3ZpZGVyQ29uc3RyYWludC5mcm9tQ29uZmlnRW50cnkocCkuc291cmNlLnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICBjb25zdHJhaW50LnNvdXJjZS50b0xvd2VyQ2FzZSgpLFxuICApO1xuICBpZiAoIWVudHJ5KSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDsgLy8gbm8gcHJlLWJ1aWx0IHByb3ZpZGVyIGZvdW5kIGZvciB0aGlzIGNvbnN0cmFpbnRcbiAgfVxuICBjb25zdCBuYW1lID0gZW50cnlbMF07XG5cbiAgcmV0dXJuIHVzZUNka3RuID8gYEBjZGt0bi9wcm92aWRlci0ke25hbWV9YCA6IGBAY2RrdGYvcHJvdmlkZXItJHtuYW1lfWA7XG59XG5cbnR5cGUgUGFja2FnZUpzb24gPSB7XG4gIC8vIGhhcyBiZWVuIGludHJvZHVjZWQgdmlhIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvY2RrdGYtcHJvdmlkZXItcHJvamVjdC9wdWxsLzIxN1xuICBjZGt0Zj86IHtcbiAgICAvLyBwcm92aWRlciBpcyBvcHRpb25hbCBhcyB3ZSBtaWdodCBzZXQgb3RoZXIgY2RrdGYgcmVsYXRlZCBmaWVsZHMgaW4gdGhlIGZ1dHVyZVxuICAgIC8vIGZvciBvdGhlciBsaWJzIChpLmUuIGNvbnN0cnVjdCBwYWNrYWdlcykgd2hpbGUgc3RpbGwgdXNpbmcgdGhlIGNka3RmIGtleVxuICAgIHByb3ZpZGVyPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBuYW1lIG9mIHRoZSBwcm92aWRlciwgd2lsbCByZXNvbHZlIHRvIHRoZSBmdWxsIG5hbWUgYXMgaW4gdGhlIFRlcnJhZm9ybSBzY2hlbWEuXG4gICAgICAgKiBlLmcuIHJlZ2lzdHJ5LnRlcnJhZm9ybS5pby9oYXNoaWNvcnAvYXdzXG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogdGhlIGFjdHVhbCB2ZXJzaW9uIHRoYXQgd2FzIHVzZWQgdG8gYnVpbGQgdGhlIHByb3ZpZGVyXG4gICAgICAgKiBlLmcuIDQuMTIuMVxuICAgICAgICovXG4gICAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgLy8gUHJlLWJ1aWx0IHByb3ZpZGVycyB1c2luZyBjZGt0biBub3cgZ2VuZXJhdGUgcHJvdmlkZXIgaW5mb3JtYXRpb24gdW5kZXIgY2RrdG4ga2V5XG4gIC8vIEF0IHNvbWUgcG9pbnQgc3VwcG9ydCBmb3IgdGhlIGNka3RmIGtleSB3aWxsIGJlIGRyb3BwZWRcbiAgY2RrdG4/OiB7XG4gICAgLy8gcHJvdmlkZXIgaXMgb3B0aW9uYWwgYXMgd2UgbWlnaHQgc2V0IG90aGVyIGNka3RuIHJlbGF0ZWQgZmllbGRzIGluIHRoZSBmdXR1cmVcbiAgICAvLyBmb3Igb3RoZXIgbGlicyAoaS5lLiBjb25zdHJ1Y3QgcGFja2FnZXMpIHdoaWxlIHN0aWxsIHVzaW5nIHRoZSBjZGt0biBrZXlcbiAgICBwcm92aWRlcj86IHtcbiAgICAgIC8qKlxuICAgICAgICogbmFtZSBvZiB0aGUgcHJvdmlkZXIsIHdpbGwgcmVzb2x2ZSB0byB0aGUgZnVsbCBuYW1lIGFzIGluIHRoZSBUZXJyYWZvcm0gc2NoZW1hLlxuICAgICAgICogZS5nLiByZWdpc3RyeS50ZXJyYWZvcm0uaW8vaGFzaGljb3JwL2F3c1xuICAgICAgICovXG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIHRoZSBhY3R1YWwgdmVyc2lvbiB0aGF0IHdhcyB1c2VkIHRvIGJ1aWxkIHRoZSBwcm92aWRlclxuICAgICAgICogZS5nLiA0LjEyLjFcbiAgICAgICAqL1xuICAgICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIHBlZXJEZXBlbmRlbmNpZXM/OiB7XG4gICAgY2RrdGY/OiBzdHJpbmc7XG4gICAgY2RrdG4/OiBzdHJpbmc7XG4gIH07XG4gIHJlcG9zaXRvcnk/OiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICB9O1xuICAvLyAuLi4gbWFueSBtb3JlIGZpZWxkc1xufTtcbnR5cGUgTnBtUGFja2FnZVJlc3VsdCA9IHtcbiAgbmFtZTogc3RyaW5nOyAvLyBlLmcuIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiXG4gIHZlcnNpb25zOiB7XG4gICAgW3ZlcnNpb246IHN0cmluZ106IFBhY2thZ2VKc29uO1xuICB9O1xuICByZXBvc2l0b3J5Pzoge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgfTtcbn07XG5cbnR5cGUgTnBtUGFja2FnZVNpbmdsZVZlcnNpb25SZXN1bHQgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBjZGt0Zj86IHtcbiAgICBwcm92aWRlcjoge1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIGNka3RuPzoge1xuICAgIHByb3ZpZGVyOiB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgcGVlckRlcGVuZGVuY2llczoge1xuICAgIFtuYW1lOiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG59O1xuXG50eXBlIFByZWJ1aWx0UHJvdmlkZXJWZXJzaW9uID0ge1xuICBwYWNrYWdlVmVyc2lvbjogc3RyaW5nOyAvLyBlLmcuIFwiNy4wLjQyXCJcbiAgcHJvdmlkZXJWZXJzaW9uOiBzdHJpbmc7IC8vIGUuZy4gXCI0LjEyLjFcIlxuICBjZGt0ZlBlZXJEZXBlbmRlbmN5Q29uc3RyYWludDogc3RyaW5nOyAvLyBlLmcuIFwiXjEwLjAuMFwiXG4gIGNka3RuUGVlckRlcGVuZGVuY3lDb25zdHJhaW50OiBzdHJpbmc7XG4gIHBhY2thZ2VOYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UHJlYnVpbHRQcm92aWRlclJlcG9zaXRvcnlOYW1lKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgdXJsID0gYGh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLyR7cGFja2FnZU5hbWV9YDtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2FjaGVkRmV0Y2g8TnBtUGFja2FnZVJlc3VsdD4odXJsKTtcblxuICBjb25zdCByZXBvc2l0b3J5VXJsID0gcmVzdWx0Py5yZXBvc2l0b3J5Py51cmw7XG5cbiAgaWYgKCFyZXBvc2l0b3J5VXJsKSByZXR1cm4gXCJcIjtcblxuICBjb25zdCByZXBvc2l0b3J5UmVnZXggPSAvXmdpdFxcK2h0dHBzOlxcL1xcLyhnaXRodWIuY29tXFwvLiopXFwuZ2l0JC87XG4gIGNvbnN0IG1hdGNoID0gcmVwb3NpdG9yeVJlZ2V4LmV4ZWMocmVwb3NpdG9yeVVybCk7XG5cbiAgaWYgKCFtYXRjaCkgcmV0dXJuIFwiXCI7XG5cbiAgcmV0dXJuIG1hdGNoWzFdO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QWxsUHJlYnVpbHRQcm92aWRlclZlcnNpb25zKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxQcmVidWlsdFByb3ZpZGVyVmVyc2lvbltdPiB7XG4gIGNvbnN0IHVybCA9IGBodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8ke3BhY2thZ2VOYW1lfWA7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNhY2hlZEZldGNoPE5wbVBhY2thZ2VSZXN1bHQ+KHVybCk7XG5cbiAgY29uc3QgdmVyc2lvbnMgPSBPYmplY3QuZW50cmllcyhyZXN1bHQudmVyc2lvbnMpXG4gICAgLm1hcCgoW3ZlcnNpb24sIHBhY2thZ2VKc29uXSkgPT4ge1xuICAgICAgY29uc3QgcHJvdmlkZXIgPVxuICAgICAgICBwYWNrYWdlSnNvbi5jZGt0bj8ucHJvdmlkZXIgPz8gcGFja2FnZUpzb24uY2RrdGY/LnByb3ZpZGVyO1xuICAgICAgaWYgKFxuICAgICAgICAhcHJvdmlkZXIgfHxcbiAgICAgICAgKCFwYWNrYWdlSnNvbi5wZWVyRGVwZW5kZW5jaWVzPy5jZGt0ZiAmJlxuICAgICAgICAgICFwYWNrYWdlSnNvbi5wZWVyRGVwZW5kZW5jaWVzPy5jZGt0bilcbiAgICAgICkge1xuICAgICAgICBsb2dnZXIudHJhY2UoXG4gICAgICAgICAgYHNraXBwaW5nIHZlcnNpb24gJHt2ZXJzaW9ufSBvZiAke3BhY2thZ2VOYW1lfSBhcyBpdCBkb2VzIG5vdCBoYXZlIGEgY2RrdG4vY2RrdGYucHJvdmlkZXIgb3IgcGVlckRlcGVuZGVuY2llcy5jZGt0Zi9jZGt0biBpbiBwYWNrYWdlLmpzb25gLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGFja2FnZU5hbWUsXG4gICAgICAgIHBhY2thZ2VWZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICBwcm92aWRlclZlcnNpb246IHByb3ZpZGVyLnZlcnNpb24sXG4gICAgICAgIGNka3RmUGVlckRlcGVuZGVuY3lDb25zdHJhaW50OiBwYWNrYWdlSnNvbi5wZWVyRGVwZW5kZW5jaWVzLmNka3RmLFxuICAgICAgICBjZGt0blBlZXJEZXBlbmRlbmN5Q29uc3RyYWludDogcGFja2FnZUpzb24ucGVlckRlcGVuZGVuY2llcy5jZGt0bixcbiAgICAgIH07XG4gICAgfSlcbiAgICAuZmlsdGVyKCh2KSA9PiB2ICE9PSB1bmRlZmluZWQpIGFzIFByZWJ1aWx0UHJvdmlkZXJWZXJzaW9uW107XG5cbiAgLy8gbGF0ZXN0IHZlcnNpb24gZmlyc3QsIHNvcnRlZCBieSBwYWNrYWdlVmVyc2lvbiBhcyB0aGF0XG4gIC8vIG9uZSBhbHdheXMgaW5jcmVhc2VzIHdoaWxlIHRoZSBwcm92aWRlclZlcnNpb24gbWF5IG5vdFxuICB2ZXJzaW9ucy5zb3J0KChhLCBiKSA9PiB7XG4gICAgaWYgKHNlbXZlci5ndChhLnBhY2thZ2VWZXJzaW9uLCBiLnBhY2thZ2VWZXJzaW9uKSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBpZiAoc2VtdmVyLmx0KGEucGFja2FnZVZlcnNpb24sIGIucGFja2FnZVZlcnNpb24pKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH0pO1xuXG4gIHJldHVybiB2ZXJzaW9ucztcbn1cblxuZnVuY3Rpb24gY2RrdGZWZXJzaW9uTWF0Y2hlcyhcbiAgY2RrdGZWZXJzaW9uOiBzdHJpbmcsXG4gIGNka3RmUGVlckRlcGVuZGVuY3lDb25zdHJhaW50OiBzdHJpbmcsXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIHNlbXZlci5zYXRpc2ZpZXMoY2RrdGZWZXJzaW9uLCBjZGt0ZlBlZXJEZXBlbmRlbmN5Q29uc3RyYWludCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQcmVidWlsdFByb3ZpZGVyVmVyc2lvbnMoXG4gIGNvbnN0cmFpbnQ6IFByb3ZpZGVyQ29uc3RyYWludCxcbiAgY2RrdGZWZXJzaW9uOiBzdHJpbmcsXG4pOiBQcm9taXNlPHsgbmFtZTogc3RyaW5nOyB2ZXJzaW9uOiBzdHJpbmcgfVtdIHwgbnVsbD4ge1xuICBjb25zdCBjZGt0ZlByb3ZpZGVyTmFtZSA9IGF3YWl0IGdldE5wbVBhY2thZ2VOYW1lKGNvbnN0cmFpbnQsIGZhbHNlKTtcbiAgY29uc3QgY2RrdG5Qcm92aWRlck5hbWUgPSBhd2FpdCBnZXROcG1QYWNrYWdlTmFtZShjb25zdHJhaW50LCB0cnVlKTtcblxuICAvLyBubyBwcmUtYnVpbHQgcHJvdmlkZXIgZXhpc3RzXG4gIGlmICghY2RrdGZQcm92aWRlck5hbWUgJiYgIWNka3RuUHJvdmlkZXJOYW1lKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBjZGt0ZlZlcnNpb25zID0gY2RrdGZQcm92aWRlck5hbWVcbiAgICA/IGF3YWl0IGdldEFsbFByZWJ1aWx0UHJvdmlkZXJWZXJzaW9ucyhjZGt0ZlByb3ZpZGVyTmFtZSlcbiAgICA6IChbXSBhcyBQcmVidWlsdFByb3ZpZGVyVmVyc2lvbltdKTtcbiAgbG9nZ2VyLmRlYnVnKFxuICAgIGBGb3VuZCB2ZXJzaW9ucyBmb3IgJHtjZGt0ZlByb3ZpZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICBjZGt0ZlZlcnNpb25zLFxuICAgICAgbnVsbCxcbiAgICAgIDIsXG4gICAgKX1gLFxuICApO1xuXG4gIGNvbnN0IGNka3RuVmVyc2lvbnMgPSBjZGt0blByb3ZpZGVyTmFtZVxuICAgID8gYXdhaXQgZ2V0QWxsUHJlYnVpbHRQcm92aWRlclZlcnNpb25zKGNka3RuUHJvdmlkZXJOYW1lKVxuICAgIDogKFtdIGFzIFByZWJ1aWx0UHJvdmlkZXJWZXJzaW9uW10pO1xuICBsb2dnZXIuZGVidWcoXG4gICAgYEZvdW5kIHZlcnNpb25zIGZvciAke2Nka3RuUHJvdmlkZXJOYW1lfTogJHtKU09OLnN0cmluZ2lmeShjZGt0blZlcnNpb25zLCBudWxsLCAyKX1gLFxuICApO1xuXG4gIGNvbnN0IHZlcnNpb25zID0gY2RrdGZWZXJzaW9ucy5jb25jYXQoY2RrdG5WZXJzaW9ucyk7XG5cbiAgLy8gZmluZCBmaXJzdCB0aGUgdmVyc2lvbiB0aGF0IG1hdGNoZXMgdGhlIHJlcXVlc3RlZCBwcm92aWRlciB2ZXJzaW9uIGFuZCBjZGt0ZiB2ZXJzaW9uXG4gIGNvbnN0IG1hdGNoaW5nVmVyc2lvbnMgPSB2ZXJzaW9ucy5maWx0ZXIoKHYpID0+IHtcbiAgICBpZiAoXG4gICAgICAhY2RrdGZWZXJzaW9uTWF0Y2hlcyhjZGt0ZlZlcnNpb24sIHYuY2RrdGZQZWVyRGVwZW5kZW5jeUNvbnN0cmFpbnQpICYmXG4gICAgICAhY2RrdGZWZXJzaW9uTWF0Y2hlcyhjZGt0ZlZlcnNpb24sIHYuY2RrdG5QZWVyRGVwZW5kZW5jeUNvbnN0cmFpbnQpXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7IC8vIHNraXAgaWYgY2RrdGYgdmVyc2lvbiBkb2VzIG5vdCBtYXRjaFxuICAgIH1cbiAgICBpZiAoY29uc3RyYWludC52ZXJzaW9uKSB7XG4gICAgICByZXR1cm4gdmVyc2lvbk1hdGNoZXNDb25zdHJhaW50KHYucHJvdmlkZXJWZXJzaW9uLCBjb25zdHJhaW50LnZlcnNpb24pO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTsgLy8gaWYgbm8gdmVyc2lvbiBjb25zdHJhaW50IGlzIHBhc3NlZCwgcmV0dXJuIHRydWUgb24gdGhlIGZpcnN0IG1hdGNoXG4gIH0pO1xuXG4gIGlmICghbWF0Y2hpbmdWZXJzaW9ucy5sZW5ndGgpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBucG1QYWNrYWdlVmVyc2lvbnMgPSBtYXRjaGluZ1ZlcnNpb25zXG4gICAgLm1hcCgobWF0Y2hpbmdWZXJzaW9uKSA9PiAoe1xuICAgICAgbmFtZTogbWF0Y2hpbmdWZXJzaW9uLnBhY2thZ2VOYW1lLFxuICAgICAgdmVyc2lvbjogbWF0Y2hpbmdWZXJzaW9uLnBhY2thZ2VWZXJzaW9uLFxuICAgIH0pKVxuICAgIC5zb3J0KChhLCBiKSA9PiBzZW12ZXIuY29tcGFyZShhLnZlcnNpb24sIGIudmVyc2lvbikpXG4gICAgLnJldmVyc2UoKTtcbiAgcmV0dXJuIG5wbVBhY2thZ2VWZXJzaW9ucztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFByZWJ1aWx0UHJvdmlkZXJWZXJzaW9uSW5mb3JtYXRpb24oXG4gIHBhY2thZ2VOYW1lOiBzdHJpbmcsXG4gIHBhY2thZ2VWZXJzaW9uOiBzdHJpbmcsXG4pOiBQcm9taXNlPGFueT4ge1xuICAvLyBHbyBwYWNrYWdlcyBpbmNsdWRlIGFuIGV4dHJhIGB2WC5ZLlpgXG4gIGlmIChwYWNrYWdlVmVyc2lvbi5zdGFydHNXaXRoKFwidlwiKSkge1xuICAgIHBhY2thZ2VWZXJzaW9uID0gcGFja2FnZVZlcnNpb24uc2xpY2UoMSk7XG4gIH1cblxuICBjb25zdCB1cmwgPSBgaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvJHtwYWNrYWdlTmFtZX0vJHtwYWNrYWdlVmVyc2lvbn1gO1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBjYWNoZWRGZXRjaDxOcG1QYWNrYWdlU2luZ2xlVmVyc2lvblJlc3VsdD4odXJsKTtcblxuICBsZXQgcHJvdmlkZXJOYW1lID0gcmVzdWx0LmNka3RuPy5wcm92aWRlci5uYW1lID8/IHJlc3VsdC5jZGt0Zj8ucHJvdmlkZXIubmFtZTtcbiAgaWYgKHByb3ZpZGVyTmFtZSkge1xuICAgIHByb3ZpZGVyTmFtZSA9IHByb3ZpZGVyTmFtZS5yZXBsYWNlKFwicmVnaXN0cnkudGVycmFmb3JtLmlvL1wiLCBcIlwiKTtcbiAgICBwcm92aWRlck5hbWUgPSBwcm92aWRlck5hbWUucmVwbGFjZShcImhhc2hpY29ycC9cIiwgXCJcIik7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHBhY2thZ2VOYW1lOiByZXN1bHQubmFtZSxcbiAgICBwYWNrYWdlVmVyc2lvbjogcmVzdWx0LnZlcnNpb24sXG4gICAgcHJvdmlkZXJOYW1lLFxuICAgIHByb3ZpZGVyVmVyc2lvbjpcbiAgICAgIHJlc3VsdC5jZGt0bj8ucHJvdmlkZXIudmVyc2lvbiA/PyByZXN1bHQuY2RrdGY/LnByb3ZpZGVyLnZlcnNpb24sXG4gICAgY2RrdGZWZXJzaW9uOiByZXN1bHQucGVlckRlcGVuZGVuY2llc1tcImNka3RmXCJdLFxuICAgIGNka3RuVmVyc2lvbjogcmVzdWx0LnBlZXJEZXBlbmRlbmNpZXNbXCJjZGt0blwiXSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-api.d.ts","sourceRoot":"","sources":["../../../src/lib/dependencies/registry-api.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAuC1D;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBxB"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.getLatestVersion = void 0;
|
|
30
|
+
// Copyright (c) HashiCorp, Inc
|
|
31
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
32
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
33
|
+
const https_proxy_agent_1 = require("https-proxy-agent");
|
|
34
|
+
const semver = __importStar(require("semver"));
|
|
35
|
+
const commons_1 = require("@cdktn/commons");
|
|
36
|
+
async function fetchVersions(constraint) {
|
|
37
|
+
const proxy = process.env.http_proxy || process.env.HTTP_PROXY;
|
|
38
|
+
let agent;
|
|
39
|
+
if (proxy) {
|
|
40
|
+
agent = new https_proxy_agent_1.HttpsProxyAgent(proxy);
|
|
41
|
+
}
|
|
42
|
+
const url = `https://registry.terraform.io/v1/providers/${constraint.namespace}/${constraint.name}/versions`;
|
|
43
|
+
const result = await (0, node_fetch_1.default)(url, {
|
|
44
|
+
agent,
|
|
45
|
+
headers: { "User-Agent": "OpenConstructs/cdktn-cli" },
|
|
46
|
+
});
|
|
47
|
+
if (!result.ok) {
|
|
48
|
+
if (result.status !== 404) {
|
|
49
|
+
throw commons_1.Errors.External(`Failed to fetch ${url}. Status: ${result.status}`);
|
|
50
|
+
}
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const json = (await result.json());
|
|
54
|
+
return json.versions;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* returns the latest available version for the provider in the constraint
|
|
58
|
+
* the version of the constraint is ignored
|
|
59
|
+
* returns null, if the provider does not exist
|
|
60
|
+
*/
|
|
61
|
+
async function getLatestVersion(constraint) {
|
|
62
|
+
const versions = await fetchVersions(constraint);
|
|
63
|
+
if (!versions) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
const latestVersion = versions
|
|
67
|
+
.map((v) => v.version)
|
|
68
|
+
.reduce((acc, curr) => {
|
|
69
|
+
if (semver.gte(acc, curr)) {
|
|
70
|
+
return acc;
|
|
71
|
+
}
|
|
72
|
+
return curr;
|
|
73
|
+
});
|
|
74
|
+
return latestVersion;
|
|
75
|
+
}
|
|
76
|
+
exports.getLatestVersion = getLatestVersion;
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnktYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvcmVnaXN0cnktYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyw0REFBK0I7QUFDL0IseURBQW9EO0FBRXBELCtDQUFpQztBQUNqQyw0Q0FBd0M7QUFXeEMsS0FBSyxVQUFVLGFBQWEsQ0FDMUIsVUFBOEI7SUFFOUIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDL0QsSUFBSSxLQUFLLENBQUM7SUFDVixJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsS0FBSyxHQUFHLElBQUksbUNBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsOENBQThDLFVBQVUsQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDLElBQUksV0FBVyxDQUFDO0lBRTdHLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxvQkFBSyxFQUFDLEdBQUcsRUFBRTtRQUM5QixLQUFLO1FBQ0wsT0FBTyxFQUFFLEVBQUUsWUFBWSxFQUFFLDBCQUEwQixFQUFFO0tBQ3RELENBQUMsQ0FBQztJQUNILElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDZixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDMUIsTUFBTSxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsR0FBRyxhQUFhLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRSxDQUF1QixDQUFDO0lBQ3pELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztBQUN2QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsVUFBOEI7SUFFOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcsUUFBUTtTQUMzQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7U0FDckIsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3BCLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUFDO0lBRUwsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQWxCRCw0Q0FrQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCI7XG5pbXBvcnQgeyBIdHRwc1Byb3h5QWdlbnQgfSBmcm9tIFwiaHR0cHMtcHJveHktYWdlbnRcIjtcbmltcG9ydCB7IFByb3ZpZGVyQ29uc3RyYWludCB9IGZyb20gXCIuL2RlcGVuZGVuY3ktbWFuYWdlclwiO1xuaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gXCJzZW12ZXJcIjtcbmltcG9ydCB7IEVycm9ycyB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuXG50eXBlIFZlcnNpb25zUmV0dXJuVHlwZSA9IHtcbiAgaWQ6IHN0cmluZzsgLy8gZS5nLiBoYXNoaWNvcnAvYXdzXG4gIHZlcnNpb25zOiB7XG4gICAgdmVyc2lvbjogc3RyaW5nOyAvLyBlLmcuIFwiMC4xMi4wXCJcbiAgICBwcm90b2NvbHM6IHVua25vd247XG4gICAgcGxhdGZvcm1zOiB1bmtub3duO1xuICB9W107XG59O1xuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFZlcnNpb25zKFxuICBjb25zdHJhaW50OiBQcm92aWRlckNvbnN0cmFpbnQsXG4pOiBQcm9taXNlPFZlcnNpb25zUmV0dXJuVHlwZVtcInZlcnNpb25zXCJdIHwgbnVsbD4ge1xuICBjb25zdCBwcm94eSA9IHByb2Nlc3MuZW52Lmh0dHBfcHJveHkgfHwgcHJvY2Vzcy5lbnYuSFRUUF9QUk9YWTtcbiAgbGV0IGFnZW50O1xuICBpZiAocHJveHkpIHtcbiAgICBhZ2VudCA9IG5ldyBIdHRwc1Byb3h5QWdlbnQocHJveHkpO1xuICB9XG4gIGNvbnN0IHVybCA9IGBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby92MS9wcm92aWRlcnMvJHtjb25zdHJhaW50Lm5hbWVzcGFjZX0vJHtjb25zdHJhaW50Lm5hbWV9L3ZlcnNpb25zYDtcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICBhZ2VudCxcbiAgICBoZWFkZXJzOiB7IFwiVXNlci1BZ2VudFwiOiBcIk9wZW5Db25zdHJ1Y3RzL2Nka3RuLWNsaVwiIH0sXG4gIH0pO1xuICBpZiAoIXJlc3VsdC5vaykge1xuICAgIGlmIChyZXN1bHQuc3RhdHVzICE9PSA0MDQpIHtcbiAgICAgIHRocm93IEVycm9ycy5FeHRlcm5hbChgRmFpbGVkIHRvIGZldGNoICR7dXJsfS4gU3RhdHVzOiAke3Jlc3VsdC5zdGF0dXN9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBqc29uID0gKGF3YWl0IHJlc3VsdC5qc29uKCkpIGFzIFZlcnNpb25zUmV0dXJuVHlwZTtcbiAgcmV0dXJuIGpzb24udmVyc2lvbnM7XG59XG5cbi8qKlxuICogcmV0dXJucyB0aGUgbGF0ZXN0IGF2YWlsYWJsZSB2ZXJzaW9uIGZvciB0aGUgcHJvdmlkZXIgaW4gdGhlIGNvbnN0cmFpbnRcbiAqIHRoZSB2ZXJzaW9uIG9mIHRoZSBjb25zdHJhaW50IGlzIGlnbm9yZWRcbiAqIHJldHVybnMgbnVsbCwgaWYgdGhlIHByb3ZpZGVyIGRvZXMgbm90IGV4aXN0XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RWZXJzaW9uKFxuICBjb25zdHJhaW50OiBQcm92aWRlckNvbnN0cmFpbnQsXG4pOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgY29uc3QgdmVyc2lvbnMgPSBhd2FpdCBmZXRjaFZlcnNpb25zKGNvbnN0cmFpbnQpO1xuICBpZiAoIXZlcnNpb25zKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBsYXRlc3RWZXJzaW9uID0gdmVyc2lvbnNcbiAgICAubWFwKCh2KSA9PiB2LnZlcnNpb24pXG4gICAgLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiB7XG4gICAgICBpZiAoc2VtdmVyLmd0ZShhY2MsIGN1cnIpKSB7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3VycjtcbiAgICB9KTtcblxuICByZXR1cm4gbGF0ZXN0VmVyc2lvbjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-constraints.d.ts","sourceRoot":"","sources":["../../../src/lib/dependencies/version-constraints.ts"],"names":[],"mappings":"AAKA,KAAK,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;AAI5D,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG;IACnD,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAWA;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CA0DT"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.versionMatchesConstraint = exports.parseConstraint = void 0;
|
|
27
|
+
// Copyright (c) HashiCorp, Inc
|
|
28
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
29
|
+
const semver = __importStar(require("semver"));
|
|
30
|
+
const commons_1 = require("@cdktn/commons");
|
|
31
|
+
// constraints can be prefixed with "~>", ">", "<", "=", ">=", "<=" or "!="
|
|
32
|
+
// no prefix means "="
|
|
33
|
+
function parseConstraint(constraint) {
|
|
34
|
+
var _a;
|
|
35
|
+
const cleaned = constraint.trim();
|
|
36
|
+
const operator = (((_a = cleaned.match(/(~>|>=|<=|>|<|=|!=)/)) === null || _a === void 0 ? void 0 : _a[0]) ||
|
|
37
|
+
"=");
|
|
38
|
+
const version = cleaned.replace(operator, "").trim();
|
|
39
|
+
return {
|
|
40
|
+
operator,
|
|
41
|
+
version,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
exports.parseConstraint = parseConstraint;
|
|
45
|
+
function versionMatchesConstraint(version, constraint) {
|
|
46
|
+
// https://www.terraform.io/language/expressions/version-constraints
|
|
47
|
+
// version can contain multiple constraints split by ","
|
|
48
|
+
var _a, _b;
|
|
49
|
+
const constraints = constraint.split(",");
|
|
50
|
+
version = (_b = (_a = semver.coerce(version)) === null || _a === void 0 ? void 0 : _a.version) !== null && _b !== void 0 ? _b : version;
|
|
51
|
+
// each constraint needs to be satisfied
|
|
52
|
+
return constraints.every((c) => {
|
|
53
|
+
var _a, _b;
|
|
54
|
+
const parsed = parseConstraint(c);
|
|
55
|
+
const cleanedParsedVersion = (_b = (_a = semver.coerce(parsed.version)) === null || _a === void 0 ? void 0 : _a.version) !== null && _b !== void 0 ? _b : parsed.version;
|
|
56
|
+
switch (parsed.operator) {
|
|
57
|
+
case "=":
|
|
58
|
+
return version === cleanedParsedVersion;
|
|
59
|
+
case "!=":
|
|
60
|
+
return version !== cleanedParsedVersion;
|
|
61
|
+
case "~>": {
|
|
62
|
+
// allows rightmost version component to increment
|
|
63
|
+
const parts = parsed.version.split(".");
|
|
64
|
+
const minorSpecified = parts.length === 2;
|
|
65
|
+
const majorIsZero = parts[0] === "0";
|
|
66
|
+
// ~>2.0 which allows 2.1 and 2.1.1 needs special handling as
|
|
67
|
+
// npm semver handles "~" differently for ~2.0 than for ~2 or ~2.1.0
|
|
68
|
+
// So we need to use "^" (e.g. ^2.0) for this case
|
|
69
|
+
// see: https://github.com/npm/node-semver/issues/11
|
|
70
|
+
const allowMinorAndPatchOnly = minorSpecified;
|
|
71
|
+
let range = allowMinorAndPatchOnly
|
|
72
|
+
? `^${parsed.version}`
|
|
73
|
+
: `~${parsed.version}`;
|
|
74
|
+
// versions below 1.0 are treated a bit differently in NPM than in Terraform
|
|
75
|
+
// meaning that NPMs ^0.4 doesn't allow 0.55 while TFs ~>0.4 allows 0.55
|
|
76
|
+
if (majorIsZero && minorSpecified) {
|
|
77
|
+
range = `>=${parsed.version} <1.0.0`;
|
|
78
|
+
}
|
|
79
|
+
return semver.satisfies(version, range);
|
|
80
|
+
}
|
|
81
|
+
case ">=":
|
|
82
|
+
return semver.gte(version, cleanedParsedVersion);
|
|
83
|
+
case "<=":
|
|
84
|
+
return semver.lte(version, cleanedParsedVersion);
|
|
85
|
+
case ">":
|
|
86
|
+
return semver.gt(version, cleanedParsedVersion);
|
|
87
|
+
case "<":
|
|
88
|
+
return semver.lt(version, cleanedParsedVersion);
|
|
89
|
+
default:
|
|
90
|
+
throw commons_1.Errors.External(`Unknown constraint operator: ${parsed.operator} in version constraint ${constraint}`);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
exports.versionMatchesConstraint = versionMatchesConstraint;
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1jb25zdHJhaW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZGVwZW5kZW5jaWVzL3ZlcnNpb24tY29uc3RyYWludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLCtDQUFpQztBQUNqQyw0Q0FBd0M7QUFJeEMsMkVBQTJFO0FBQzNFLHNCQUFzQjtBQUN0QixTQUFnQixlQUFlLENBQUMsVUFBa0I7O0lBSWhELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVsQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUEsTUFBQSxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLDBDQUFHLENBQUMsQ0FBQztRQUN6RCxHQUFHLENBQWEsQ0FBQztJQUNuQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVyRCxPQUFPO1FBQ0wsUUFBUTtRQUNSLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQztBQWRELDBDQWNDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQ3RDLE9BQWUsRUFDZixVQUFrQjtJQUVsQixvRUFBb0U7SUFDcEUsd0RBQXdEOztJQUV4RCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLE9BQU8sR0FBRyxNQUFBLE1BQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsMENBQUUsT0FBTyxtQ0FBSSxPQUFPLENBQUM7SUFFckQsd0NBQXdDO0lBQ3hDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFOztRQUM3QixNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbEMsTUFBTSxvQkFBb0IsR0FDeEIsTUFBQSxNQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQywwQ0FBRSxPQUFPLG1DQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFFM0QsUUFBUSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsS0FBSyxHQUFHO2dCQUNOLE9BQU8sT0FBTyxLQUFLLG9CQUFvQixDQUFDO1lBQzFDLEtBQUssSUFBSTtnQkFDUCxPQUFPLE9BQU8sS0FBSyxvQkFBb0IsQ0FBQztZQUMxQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ1Ysa0RBQWtEO2dCQUVsRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7Z0JBQzFDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUM7Z0JBRXJDLDZEQUE2RDtnQkFDN0Qsb0VBQW9FO2dCQUNwRSxrREFBa0Q7Z0JBQ2xELG9EQUFvRDtnQkFDcEQsTUFBTSxzQkFBc0IsR0FBRyxjQUFjLENBQUM7Z0JBRTlDLElBQUksS0FBSyxHQUFHLHNCQUFzQjtvQkFDaEMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtvQkFDdEIsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUV6Qiw0RUFBNEU7Z0JBQzVFLHdFQUF3RTtnQkFDeEUsSUFBSSxXQUFXLElBQUksY0FBYyxFQUFFLENBQUM7b0JBQ2xDLEtBQUssR0FBRyxLQUFLLE1BQU0sQ0FBQyxPQUFPLFNBQVMsQ0FBQztnQkFDdkMsQ0FBQztnQkFFRCxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzFDLENBQUM7WUFDRCxLQUFLLElBQUk7Z0JBQ1AsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1lBQ25ELEtBQUssSUFBSTtnQkFDUCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLENBQUM7WUFDbkQsS0FBSyxHQUFHO2dCQUNOLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztZQUNsRCxLQUFLLEdBQUc7Z0JBQ04sT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2xEO2dCQUNFLE1BQU0sZ0JBQU0sQ0FBQyxRQUFRLENBQ25CLGdDQUFnQyxNQUFNLENBQUMsUUFBUSwwQkFBMEIsVUFBVSxFQUFFLENBQ3RGLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBN0RELDREQTZEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSBcInNlbXZlclwiO1xuaW1wb3J0IHsgRXJyb3JzIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5cbnR5cGUgT3BlcmF0b3IgPSBcIj1cIiB8IFwiIT1cIiB8IFwifj5cIiB8IFwiPj1cIiB8IFwiPD1cIiB8IFwiPlwiIHwgXCI8XCI7XG5cbi8vIGNvbnN0cmFpbnRzIGNhbiBiZSBwcmVmaXhlZCB3aXRoIFwifj5cIiwgXCI+XCIsIFwiPFwiLCBcIj1cIiwgXCI+PVwiLCBcIjw9XCIgb3IgXCIhPVwiXG4vLyBubyBwcmVmaXggbWVhbnMgXCI9XCJcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNvbnN0cmFpbnQoY29uc3RyYWludDogc3RyaW5nKToge1xuICBvcGVyYXRvcjogT3BlcmF0b3I7XG4gIHZlcnNpb246IHN0cmluZztcbn0ge1xuICBjb25zdCBjbGVhbmVkID0gY29uc3RyYWludC50cmltKCk7XG5cbiAgY29uc3Qgb3BlcmF0b3IgPSAoY2xlYW5lZC5tYXRjaCgvKH4+fD49fDw9fD58PHw9fCE9KS8pPy5bMF0gfHxcbiAgICBcIj1cIikgYXMgT3BlcmF0b3I7XG4gIGNvbnN0IHZlcnNpb24gPSBjbGVhbmVkLnJlcGxhY2Uob3BlcmF0b3IsIFwiXCIpLnRyaW0oKTtcblxuICByZXR1cm4ge1xuICAgIG9wZXJhdG9yLFxuICAgIHZlcnNpb24sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJzaW9uTWF0Y2hlc0NvbnN0cmFpbnQoXG4gIHZlcnNpb246IHN0cmluZyxcbiAgY29uc3RyYWludDogc3RyaW5nLFxuKTogYm9vbGVhbiB7XG4gIC8vIGh0dHBzOi8vd3d3LnRlcnJhZm9ybS5pby9sYW5ndWFnZS9leHByZXNzaW9ucy92ZXJzaW9uLWNvbnN0cmFpbnRzXG4gIC8vIHZlcnNpb24gY2FuIGNvbnRhaW4gbXVsdGlwbGUgY29uc3RyYWludHMgc3BsaXQgYnkgXCIsXCJcblxuICBjb25zdCBjb25zdHJhaW50cyA9IGNvbnN0cmFpbnQuc3BsaXQoXCIsXCIpO1xuICB2ZXJzaW9uID0gc2VtdmVyLmNvZXJjZSh2ZXJzaW9uKT8udmVyc2lvbiA/PyB2ZXJzaW9uO1xuXG4gIC8vIGVhY2ggY29uc3RyYWludCBuZWVkcyB0byBiZSBzYXRpc2ZpZWRcbiAgcmV0dXJuIGNvbnN0cmFpbnRzLmV2ZXJ5KChjKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VDb25zdHJhaW50KGMpO1xuXG4gICAgY29uc3QgY2xlYW5lZFBhcnNlZFZlcnNpb24gPVxuICAgICAgc2VtdmVyLmNvZXJjZShwYXJzZWQudmVyc2lvbik/LnZlcnNpb24gPz8gcGFyc2VkLnZlcnNpb247XG5cbiAgICBzd2l0Y2ggKHBhcnNlZC5vcGVyYXRvcikge1xuICAgICAgY2FzZSBcIj1cIjpcbiAgICAgICAgcmV0dXJuIHZlcnNpb24gPT09IGNsZWFuZWRQYXJzZWRWZXJzaW9uO1xuICAgICAgY2FzZSBcIiE9XCI6XG4gICAgICAgIHJldHVybiB2ZXJzaW9uICE9PSBjbGVhbmVkUGFyc2VkVmVyc2lvbjtcbiAgICAgIGNhc2UgXCJ+PlwiOiB7XG4gICAgICAgIC8vIGFsbG93cyByaWdodG1vc3QgdmVyc2lvbiBjb21wb25lbnQgdG8gaW5jcmVtZW50XG5cbiAgICAgICAgY29uc3QgcGFydHMgPSBwYXJzZWQudmVyc2lvbi5zcGxpdChcIi5cIik7XG4gICAgICAgIGNvbnN0IG1pbm9yU3BlY2lmaWVkID0gcGFydHMubGVuZ3RoID09PSAyO1xuICAgICAgICBjb25zdCBtYWpvcklzWmVybyA9IHBhcnRzWzBdID09PSBcIjBcIjtcblxuICAgICAgICAvLyB+PjIuMCB3aGljaCBhbGxvd3MgMi4xIGFuZCAyLjEuMSBuZWVkcyBzcGVjaWFsIGhhbmRsaW5nIGFzXG4gICAgICAgIC8vIG5wbSBzZW12ZXIgaGFuZGxlcyBcIn5cIiBkaWZmZXJlbnRseSBmb3IgfjIuMCB0aGFuIGZvciB+MiBvciB+Mi4xLjBcbiAgICAgICAgLy8gU28gd2UgbmVlZCB0byB1c2UgXCJeXCIgKGUuZy4gXjIuMCkgZm9yIHRoaXMgY2FzZVxuICAgICAgICAvLyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vbm9kZS1zZW12ZXIvaXNzdWVzLzExXG4gICAgICAgIGNvbnN0IGFsbG93TWlub3JBbmRQYXRjaE9ubHkgPSBtaW5vclNwZWNpZmllZDtcblxuICAgICAgICBsZXQgcmFuZ2UgPSBhbGxvd01pbm9yQW5kUGF0Y2hPbmx5XG4gICAgICAgICAgPyBgXiR7cGFyc2VkLnZlcnNpb259YFxuICAgICAgICAgIDogYH4ke3BhcnNlZC52ZXJzaW9ufWA7XG5cbiAgICAgICAgLy8gdmVyc2lvbnMgYmVsb3cgMS4wIGFyZSB0cmVhdGVkIGEgYml0IGRpZmZlcmVudGx5IGluIE5QTSB0aGFuIGluIFRlcnJhZm9ybVxuICAgICAgICAvLyBtZWFuaW5nIHRoYXQgTlBNcyBeMC40IGRvZXNuJ3QgYWxsb3cgMC41NSB3aGlsZSBURnMgfj4wLjQgYWxsb3dzIDAuNTVcbiAgICAgICAgaWYgKG1ham9ySXNaZXJvICYmIG1pbm9yU3BlY2lmaWVkKSB7XG4gICAgICAgICAgcmFuZ2UgPSBgPj0ke3BhcnNlZC52ZXJzaW9ufSA8MS4wLjBgO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlbXZlci5zYXRpc2ZpZXModmVyc2lvbiwgcmFuZ2UpO1xuICAgICAgfVxuICAgICAgY2FzZSBcIj49XCI6XG4gICAgICAgIHJldHVybiBzZW12ZXIuZ3RlKHZlcnNpb24sIGNsZWFuZWRQYXJzZWRWZXJzaW9uKTtcbiAgICAgIGNhc2UgXCI8PVwiOlxuICAgICAgICByZXR1cm4gc2VtdmVyLmx0ZSh2ZXJzaW9uLCBjbGVhbmVkUGFyc2VkVmVyc2lvbik7XG4gICAgICBjYXNlIFwiPlwiOlxuICAgICAgICByZXR1cm4gc2VtdmVyLmd0KHZlcnNpb24sIGNsZWFuZWRQYXJzZWRWZXJzaW9uKTtcbiAgICAgIGNhc2UgXCI8XCI6XG4gICAgICAgIHJldHVybiBzZW12ZXIubHQodmVyc2lvbiwgY2xlYW5lZFBhcnNlZFZlcnNpb24pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgRXJyb3JzLkV4dGVybmFsKFxuICAgICAgICAgIGBVbmtub3duIGNvbnN0cmFpbnQgb3BlcmF0b3I6ICR7cGFyc2VkLm9wZXJhdG9yfSBpbiB2ZXJzaW9uIGNvbnN0cmFpbnQgJHtjb25zdHJhaW50fWAsXG4gICAgICAgICk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-reporting.d.ts","sourceRoot":"","sources":["../../src/lib/error-reporting.ts"],"names":[],"mappings":"AAcA,wBAAgB,iBAAiB,CAC/B,WAAW,SAAgB,GAC1B,OAAO,GAAG,SAAS,CAerB;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,OAAO,EACjB,WAAW,SAAgB,QAU5B;AAUD,wBAAsB,uBAAuB,CAC3C,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,iBA0E1C;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,IAAI,EACJ,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B,QAUA"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.captureException = exports.initializErrorReporting = exports.persistReportCrashReportDecision = exports.shouldReportCrash = void 0;
|
|
30
|
+
// Copyright (c) HashiCorp, Inc
|
|
31
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
32
|
+
const Sentry = __importStar(require("@sentry/node"));
|
|
33
|
+
const commons_1 = require("@cdktn/commons");
|
|
34
|
+
const commons_2 = require("@cdktn/commons");
|
|
35
|
+
const path = __importStar(require("path"));
|
|
36
|
+
const fs = __importStar(require("fs-extra"));
|
|
37
|
+
const ci_info_1 = __importDefault(require("ci-info"));
|
|
38
|
+
function shouldReportCrash(projectPath = process.cwd()) {
|
|
39
|
+
try {
|
|
40
|
+
const cdktfJson = JSON.parse(fs.readFileSync(path.resolve(projectPath, "cdktf.json"), "utf8"));
|
|
41
|
+
return typeof cdktfJson.sendCrashReports === "boolean"
|
|
42
|
+
? cdktfJson.sendCrashReports
|
|
43
|
+
: cdktfJson.sendCrashReports === "true";
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
commons_2.logger.debug(`Error determining if crash reporting should be enabled, defaulting to false: ${e}`);
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.shouldReportCrash = shouldReportCrash;
|
|
51
|
+
function persistReportCrashReportDecision(decision, projectPath = process.cwd()) {
|
|
52
|
+
const cdktfJson = JSON.parse(fs.readFileSync(path.resolve(projectPath, "cdktf.json"), "utf8"));
|
|
53
|
+
cdktfJson.sendCrashReports = decision;
|
|
54
|
+
fs.writeFileSync(path.resolve(projectPath, "cdktf.json"), JSON.stringify(cdktfJson, null, 2));
|
|
55
|
+
}
|
|
56
|
+
exports.persistReportCrashReportDecision = persistReportCrashReportDecision;
|
|
57
|
+
function isPromise(p) {
|
|
58
|
+
return (typeof p === "object" &&
|
|
59
|
+
typeof p.then === "function" &&
|
|
60
|
+
typeof p.catch === "function");
|
|
61
|
+
}
|
|
62
|
+
async function initializErrorReporting(runConsentPrompt) {
|
|
63
|
+
let shouldReport = shouldReportCrash();
|
|
64
|
+
const ci = ci_info_1.default.isCI ? ci_info_1.default.name || "unknown" : false;
|
|
65
|
+
// We have no info yet, so we need to ask the user
|
|
66
|
+
if (shouldReport === undefined && runConsentPrompt) {
|
|
67
|
+
// But only if it's a user
|
|
68
|
+
if (ci) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
shouldReport = await runConsentPrompt();
|
|
72
|
+
persistReportCrashReportDecision(shouldReport);
|
|
73
|
+
}
|
|
74
|
+
if (!shouldReport) {
|
|
75
|
+
commons_2.logger.debug("Error reporting disabled");
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (!process.env.SENTRY_DSN) {
|
|
79
|
+
commons_2.logger.info("Error reporting disabled: SENTRY_DSN not set");
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
commons_2.logger.debug("Initializing error reporting");
|
|
83
|
+
Sentry.init({
|
|
84
|
+
autoSessionTracking: true,
|
|
85
|
+
dsn: process.env.SENTRY_DSN,
|
|
86
|
+
release: `cdktn-cli-${commons_1.DISPLAY_VERSION}`,
|
|
87
|
+
async beforeSend(event, hint) {
|
|
88
|
+
if (!hint) {
|
|
89
|
+
return event;
|
|
90
|
+
}
|
|
91
|
+
// The promise character is not documented, but it happens
|
|
92
|
+
const originalException = hint.originalException;
|
|
93
|
+
let error;
|
|
94
|
+
if (isPromise(originalException)) {
|
|
95
|
+
originalException.catch((e) => (error = e));
|
|
96
|
+
await Promise.allSettled([originalException]);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
error = originalException;
|
|
100
|
+
}
|
|
101
|
+
const errorMessage = (error === null || error === void 0 ? void 0 : error.toString()) || "";
|
|
102
|
+
if (errorMessage.includes("Usage Error")) {
|
|
103
|
+
// This is a usage error, so we don't want to report it
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
return event;
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
Sentry.configureScope(function (scope) {
|
|
110
|
+
scope.setUser({
|
|
111
|
+
id: (0, commons_1.getUserId)(),
|
|
112
|
+
});
|
|
113
|
+
scope.setTag("projectId", (0, commons_1.getProjectId)());
|
|
114
|
+
});
|
|
115
|
+
commons_2.logger.debug("Collecting environment information for error reporting");
|
|
116
|
+
(0, commons_1.collectDebugInformation)().then((debugOutput) => {
|
|
117
|
+
Sentry.setContext("environment", debugOutput);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
exports.initializErrorReporting = initializErrorReporting;
|
|
121
|
+
function captureException({ message, type, command, context, }) {
|
|
122
|
+
if (process.env.SENTRY_DSN && shouldReportCrash()) {
|
|
123
|
+
Sentry.captureException(new Error(message), {
|
|
124
|
+
tags: {
|
|
125
|
+
context: JSON.stringify(context),
|
|
126
|
+
type,
|
|
127
|
+
command,
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.captureException = captureException;
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItcmVwb3J0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9lcnJvci1yZXBvcnRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHFEQUF1QztBQUN2Qyw0Q0FLd0I7QUFDeEIsNENBQXdDO0FBQ3hDLDJDQUE2QjtBQUM3Qiw2Q0FBK0I7QUFDL0Isc0RBQTZCO0FBRTdCLFNBQWdCLGlCQUFpQixDQUMvQixXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRTtJQUUzQixJQUFJLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUMxQixFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUNqRSxDQUFDO1FBRUYsT0FBTyxPQUFPLFNBQVMsQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTO1lBQ3BELENBQUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCO1lBQzVCLENBQUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEtBQUssTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsZ0JBQU0sQ0FBQyxLQUFLLENBQ1YsZ0ZBQWdGLENBQUMsRUFBRSxDQUNwRixDQUFDO1FBQ0YsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQWpCRCw4Q0FpQkM7QUFFRCxTQUFnQixnQ0FBZ0MsQ0FDOUMsUUFBaUIsRUFDakIsV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUU7SUFFM0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDMUIsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsRUFBRSxNQUFN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VSxLQUFLO1FBQ25DLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDWixFQUFFLEVBQUUsSUFBQSxtQkFBUyxHQUFFO1NBQ2hCLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUEsc0JBQVksR0FBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFFSCxnQkFBTSxDQUFDLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO0lBQ3ZFLElBQUEsaUNBQXVCLEdBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUM3QyxNQUFNLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNoRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUEzRUQsMERBMkVDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsRUFDL0IsT0FBTyxFQUNQLElBQUksRUFDSixPQUFPLEVBQ1AsT0FBTyxHQU1SO0lBQ0MsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxpQkFBaUIsRUFBRSxFQUFFLENBQUM7UUFDbEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzFDLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7Z0JBQ2hDLElBQUk7Z0JBQ0osT0FBTzthQUNSO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUM7QUFwQkQsNENBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tIFwiQHNlbnRyeS9ub2RlXCI7XG5pbXBvcnQge1xuICBnZXRQcm9qZWN0SWQsXG4gIGdldFVzZXJJZCxcbiAgY29sbGVjdERlYnVnSW5mb3JtYXRpb24sXG4gIERJU1BMQVlfVkVSU0lPTixcbn0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IGNpSW5mbyBmcm9tIFwiY2ktaW5mb1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkUmVwb3J0Q3Jhc2goXG4gIHByb2plY3RQYXRoID0gcHJvY2Vzcy5jd2QoKSxcbik6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIGNvbnN0IGNka3RmSnNvbiA9IEpTT04ucGFyc2UoXG4gICAgICBmcy5yZWFkRmlsZVN5bmMocGF0aC5yZXNvbHZlKHByb2plY3RQYXRoLCBcImNka3RmLmpzb25cIiksIFwidXRmOFwiKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHR5cGVvZiBjZGt0Zkpzb24uc2VuZENyYXNoUmVwb3J0cyA9PT0gXCJib29sZWFuXCJcbiAgICAgID8gY2RrdGZKc29uLnNlbmRDcmFzaFJlcG9ydHNcbiAgICAgIDogY2RrdGZKc29uLnNlbmRDcmFzaFJlcG9ydHMgPT09IFwidHJ1ZVwiO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYEVycm9yIGRldGVybWluaW5nIGlmIGNyYXNoIHJlcG9ydGluZyBzaG91bGQgYmUgZW5hYmxlZCwgZGVmYXVsdGluZyB0byBmYWxzZTogJHtlfWAsXG4gICAgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBlcnNpc3RSZXBvcnRDcmFzaFJlcG9ydERlY2lzaW9uKFxuICBkZWNpc2lvbjogYm9vbGVhbixcbiAgcHJvamVjdFBhdGggPSBwcm9jZXNzLmN3ZCgpLFxuKSB7XG4gIGNvbnN0IGNka3RmSnNvbiA9IEpTT04ucGFyc2UoXG4gICAgZnMucmVhZEZpbGVTeW5jKHBhdGgucmVzb2x2ZShwcm9qZWN0UGF0aCwgXCJjZGt0Zi5qc29uXCIpLCBcInV0ZjhcIiksXG4gICk7XG4gIGNka3RmSnNvbi5zZW5kQ3Jhc2hSZXBvcnRzID0gZGVjaXNpb247XG4gIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgcGF0aC5yZXNvbHZlKHByb2plY3RQYXRoLCBcImNka3RmLmpzb25cIiksXG4gICAgSlNPTi5zdHJpbmdpZnkoY2RrdGZKc29uLCBudWxsLCAyKSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gaXNQcm9taXNlKHA6IGFueSk6IHAgaXMgUHJvbWlzZTxhbnk+IHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgcCA9PT0gXCJvYmplY3RcIiAmJlxuICAgIHR5cGVvZiBwLnRoZW4gPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgIHR5cGVvZiBwLmNhdGNoID09PSBcImZ1bmN0aW9uXCJcbiAgKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluaXRpYWxpekVycm9yUmVwb3J0aW5nKFxuICBydW5Db25zZW50UHJvbXB0PzogKCkgPT4gUHJvbWlzZTxib29sZWFuPixcbikge1xuICBsZXQgc2hvdWxkUmVwb3J0ID0gc2hvdWxkUmVwb3J0Q3Jhc2goKTtcbiAgY29uc3QgY2k6IHN0cmluZyB8IGZhbHNlID0gY2lJbmZvLmlzQ0kgPyBjaUluZm8ubmFtZSB8fCBcInVua25vd25cIiA6IGZhbHNlO1xuXG4gIC8vIFdlIGhhdmUgbm8gaW5mbyB5ZXQsIHNvIHdlIG5lZWQgdG8gYXNrIHRoZSB1c2VyXG4gIGlmIChzaG91bGRSZXBvcnQgPT09IHVuZGVmaW5lZCAmJiBydW5Db25zZW50UHJvbXB0KSB7XG4gICAgLy8gQnV0IG9ubHkgaWYgaXQncyBhIHVzZXJcbiAgICBpZiAoY2kpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzaG91bGRSZXBvcnQgPSBhd2FpdCBydW5Db25zZW50UHJvbXB0KCk7XG4gICAgcGVyc2lzdFJlcG9ydENyYXNoUmVwb3J0RGVjaXNpb24oc2hvdWxkUmVwb3J0KTtcbiAgfVxuXG4gIGlmICghc2hvdWxkUmVwb3J0KSB7XG4gICAgbG9nZ2VyLmRlYnVnKFwiRXJyb3IgcmVwb3J0aW5nIGRpc2FibGVkXCIpO1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoIXByb2Nlc3MuZW52LlNFTlRSWV9EU04pIHtcbiAgICBsb2dnZXIuaW5mbyhcIkVycm9yIHJlcG9ydGluZyBkaXNhYmxlZDogU0VOVFJZX0RTTiBub3Qgc2V0XCIpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxvZ2dlci5kZWJ1ZyhcIkluaXRpYWxpemluZyBlcnJvciByZXBvcnRpbmdcIik7XG5cbiAgU2VudHJ5LmluaXQoe1xuICAgIGF1dG9TZXNzaW9uVHJhY2tpbmc6IHRydWUsXG4gICAgZHNuOiBwcm9jZXNzLmVudi5TRU5UUllfRFNOLFxuICAgIHJlbGVhc2U6IGBjZGt0bi1jbGktJHtESVNQTEFZX1ZFUlNJT059YCxcbiAgICBhc3luYyBiZWZvcmVTZW5kKGV2ZW50LCBoaW50KSB7XG4gICAgICBpZiAoIWhpbnQpIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAgfVxuXG4gICAgICAvLyBUaGUgcHJvbWlzZSBjaGFyYWN0ZXIgaXMgbm90IGRvY3VtZW50ZWQsIGJ1dCBpdCBoYXBwZW5zXG4gICAgICBjb25zdCBvcmlnaW5hbEV4Y2VwdGlvbjpcbiAgICAgICAgfCBQcm9taXNlPEVycm9yPlxuICAgICAgICB8IEVycm9yXG4gICAgICAgIHwgc3RyaW5nXG4gICAgICAgIHwgbnVsbFxuICAgICAgICB8IHVuZGVmaW5lZFxuICAgICAgICB8IHVua25vd24gPSBoaW50Lm9yaWdpbmFsRXhjZXB0aW9uO1xuICAgICAgbGV0IGVycm9yOiBFcnJvciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgfCB1bmtub3duO1xuICAgICAgaWYgKGlzUHJvbWlzZShvcmlnaW5hbEV4Y2VwdGlvbikpIHtcbiAgICAgICAgKG9yaWdpbmFsRXhjZXB0aW9uIGFzIHVua25vd24gYXMgUHJvbWlzZTxFcnJvcj4pLmNhdGNoKFxuICAgICAgICAgIChlKSA9PiAoZXJyb3IgPSBlKSxcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFtvcmlnaW5hbEV4Y2VwdGlvbl0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3IgPSBvcmlnaW5hbEV4Y2VwdGlvbjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3I/LnRvU3RyaW5nKCkgfHwgXCJcIjtcbiAgICAgIGlmIChlcnJvck1lc3NhZ2UuaW5jbHVkZXMoXCJVc2FnZSBFcnJvclwiKSkge1xuICAgICAgICAvLyBUaGlzIGlzIGEgdXNhZ2UgZXJyb3IsIHNvIHdlIGRvbid0IHdhbnQgdG8gcmVwb3J0IGl0XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV2ZW50O1xuICAgIH0sXG4gIH0pO1xuXG4gIFNlbnRyeS5jb25maWd1cmVTY29wZShmdW5jdGlvbiAoc2NvcGUpIHtcbiAgICBzY29wZS5zZXRVc2VyKHtcbiAgICAgIGlkOiBnZXRVc2VySWQoKSxcbiAgICB9KTtcbiAgICBzY29wZS5zZXRUYWcoXCJwcm9qZWN0SWRcIiwgZ2V0UHJvamVjdElkKCkpO1xuICB9KTtcblxuICBsb2dnZXIuZGVidWcoXCJDb2xsZWN0aW5nIGVudmlyb25tZW50IGluZm9ybWF0aW9uIGZvciBlcnJvciByZXBvcnRpbmdcIik7XG4gIGNvbGxlY3REZWJ1Z0luZm9ybWF0aW9uKCkudGhlbigoZGVidWdPdXRwdXQpID0+IHtcbiAgICBTZW50cnkuc2V0Q29udGV4dChcImVudmlyb25tZW50XCIsIGRlYnVnT3V0cHV0KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYXB0dXJlRXhjZXB0aW9uKHtcbiAgbWVzc2FnZSxcbiAgdHlwZSxcbiAgY29tbWFuZCxcbiAgY29udGV4dCxcbn06IHtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGNvbW1hbmQ6IHN0cmluZztcbiAgY29udGV4dD86IFJlY29yZDxzdHJpbmcsIGFueT47XG59KSB7XG4gIGlmIChwcm9jZXNzLmVudi5TRU5UUllfRFNOICYmIHNob3VsZFJlcG9ydENyYXNoKCkpIHtcbiAgICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihuZXcgRXJyb3IobWVzc2FnZSksIHtcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgY29udGV4dDogSlNPTi5zdHJpbmdpZnkoY29udGV4dCksXG4gICAgICAgIHR5cGUsXG4gICAgICAgIGNvbW1hbmQsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,eAAe,iBAAkB,MAAM,WACgE,CAAC"}
|