@cdktn/cli-core 0.23.0-pre.38 → 0.23.0-pre.39
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/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 +371 -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 -1
- 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/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.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/build/lib/terraform-provider-lock.js +95 -0
- 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/package.json +10 -10
- 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 -221
- 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 -283
- package/src/lib/models/interactive-process.d.ts.map +0 -1
- package/src/lib/models/interactive-process.js +0 -59
- 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 -355
- 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/terraform-provider-lock.js +0 -95
- 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/deploy-machine.d.ts +0 -0
- /package/{src → build}/lib/models/interactive-process.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 (e) {
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlYnVpbHQtcHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9kZXBlbmRlbmNpZXMvcHJlYnVpbHQtcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuQyx5REFBb0Q7QUFDcEQsNERBQStCO0FBQy9CLCtDQUFpQztBQUNqQyw0Q0FBd0M7QUFDeEMsNkRBQTBEO0FBQzFELCtEQUFpRTtBQUVqRSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztBQUMvRCxJQUFJLEtBQWtDLENBQUM7QUFDdkMsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUNWLEtBQUssR0FBRyxJQUFJLG1DQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVELHFGQUFxRjtBQUNyRiw4RUFBOEU7QUFDOUUsb0ZBQW9GO0FBQ3BGLE1BQU0sZUFBZSxHQUNuQixtR0FBbUcsQ0FBQztBQUt0RyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO0FBQzFDLEtBQUssVUFBVSxXQUFXLENBQUksR0FBVztJQUN2QyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFNLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sWUFBWSxDQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRWxDLE9BQU8sWUFBaUIsQ0FBQztBQUMzQixDQUFDO0FBRUQsNEJBQTRCO0FBQ3JCLEtBQUssVUFBVSxlQUFlO0lBQ25DLFVBQVUsQ0FB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QUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU87UUFDTCxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDeEIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQzlCLFlBQVk7UUFDWixlQUFlLEVBQ2IsTUFBQSxNQUFBLE1BQU0sQ0FBQyxLQUFLLDBDQUFFLFFBQVEsQ0FBQyxPQUFPLG1DQUFJLE1BQUEsTUFBTSxDQUFDLEtBQUssMENBQUUsUUFBUSxDQUFDLE9BQU87UUFDbEUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7UUFDOUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7S0FDL0MsQ0FBQztBQUNKLENBQUM7QUEzQkQsc0ZBMkJDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcblxuaW1wb3J0IHsgSHR0cHNQcm94eUFnZW50IH0gZnJvbSBcImh0dHBzLXByb3h5LWFnZW50XCI7XG5pbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIjtcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tIFwic2VtdmVyXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7IFByb3ZpZGVyQ29uc3RyYWludCB9IGZyb20gXCIuL2RlcGVuZGVuY3ktbWFuYWdlclwiO1xuaW1wb3J0IHsgdmVyc2lvbk1hdGNoZXNDb25zdHJhaW50IH0gZnJvbSBcIi4vdmVyc2lvbi1jb25zdHJhaW50c1wiO1xuXG5jb25zdCBwcm94eSA9IHByb2Nlc3MuZW52Lmh0dHBfcHJveHkgfHwgcHJvY2Vzcy5lbnYuSFRUUF9QUk9YWTtcbmxldCBhZ2VudDogSHR0cHNQcm94eUFnZW50IHwgdW5kZWZpbmVkO1xuaWYgKHByb3h5KSB7XG4gIGFnZW50ID0gbmV3IEh0dHBzUHJveHlBZ2VudChwcm94eSk7XG59XG5cbi8vIHVzZXMgaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC9jZGt0Zi1yZXBvc2l0b3J5LW1hbmFnZXIvYmxvYi9tYWluL3Byb3ZpZGVyLmpzb25cbi8vIEhvd2V2ZXIsIGl0IGdvdCBjbGVhcmVkIG91dC4gV2UnbGwgbmVlZCB0byBob3N0IHRoZSBleGlzdGluZyBsaXN0IHNvbWV3aGVyZVxuLy8gY29uc3QgcHJvdmlkZXJzTWFwVXJsID0gYGh0dHBzOi8vd3d3LmNkay50Zi8ud2VsbC1rbm93bi9wcmVidWlsdC1wcm92aWRlcnMuanNvbmA7XG5jb25zdCBwcm92aWRlcnNNYXBVcmwgPVxuICBcImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jZGt0bi1pby9jZGt0bi1yZXBvc2l0b3J5LW1hbmFnZXIvcmVmcy9oZWFkcy9tYWluL3Byb3ZpZGVyLmpzb25cIjtcbnR5cGUgUHJvdmlkZXJzTWFwID0ge1xuICBbbmFtZTogc3RyaW5nXTogc3RyaW5nO1xufTtcblxuY29uc3QgZmV0Y2hDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG5hc3luYyBmdW5jdGlvbiBjYWNoZWRGZXRjaDxUPih1cmw6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICBpZiAoZmV0Y2hDYWNoZS5oYXModXJsKSkge1xuICAgIHJldHVybiBmZXRjaENhY2hlLmdldCh1cmwpIGFzIFQ7XG4gIH1cblxuICBjb25zdCByZXNwb25zZUJvZHkgPSBhd2FpdCBmZXRjaFdyYXBwZWQ8VD4odXJsKTtcbiAgZmV0Y2hDYWNoZS5zZXQodXJsLCByZXNwb25zZUJvZHkpO1xuXG4gIHJldHVybiByZXNwb25zZUJvZHkgYXMgVDtcbn1cblxuLy8gRm9yIHRlc3RpbmcgcHVycG9zZXMgb25seVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc2V0RmV0Y2hDYWNoZSgpIHtcbiAgZmV0Y2hDYWNoZS5jbGVhcigpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFdyYXBwZWQ8VD4odXJsOiBzdHJpbmcpOiBQcm9taXNlPFQ+IHtcbiAgbGV0IHJlc3BvbnNlO1xuICB0cnkge1xuICAgIHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBhZ2VudCxcbiAgICAgIGhlYWRlcnM6IHsgXCJVc2VyLUFnZW50XCI6IFwiT3BlbkNvbnN0cnVjdHMvY2RrdG4tY2xpXCIgfSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIEZldGNoIG9ubHkgZmFpbHMgaGVyZSBiZWNhdXNlIG9mIGNvbm5lY3Rpdml0eSBpc3N1ZXNcbiAgICBsb2dnZXIuZXJyb3IoXG4gICAgICBcIlVuYWJsZSB0byByZXF1ZXN0IHByZS1idWlsdCBwcm92aWRlciBpbmZvcm1hdGlvbjogTmV0d29yayBlcnJvciwgcGxlYXNlIGNoZWNrIGlmIHlvdSdyZSBjb25uZWN0ZWQgdG8gdGhlIGludGVybmV0IGFuZCB0cnkgYWdhaW5cIixcbiAgICApO1xuXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ29ubmVjdGlvbiBlcnJvclwiKTtcbiAgfVxuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID49IDUwMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlVuZXhwZWN0ZWQgZXJyb3Igd2hpbGUgZmluZGluZyBwcmUtYnVpbHQgcHJvdmlkZXIuIFBsZWFzZSB0cnkgYWdhaW4uXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUHJlLWJ1aWx0IHByb3ZpZGVyIGluZm9ybWF0aW9uIG5vdCBmb3VuZGApO1xuICAgIH1cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID49IDQwMCkge1xuICAgICAgY29uc3QgcmVzcG9uc2VUZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgICAgLy8gVGhpcyBtZWFucyB0aGF0IHdlJ3JlIHNlbmRpbmcgYSBiYWQgcmVxdWVzdC4gV2Ugc2hvdWxkIHJlY29yZCB0aGlzIGluIHNlbnRyeSB0b28uXG4gICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgIGBSZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c30gcmVzcG9uc2UgZnJvbSAke3VybH06ICR7cmVzcG9uc2VUZXh0fWAsXG4gICAgICApO1xuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiVW5leHBlY3RlZCBlcnJvciB3aGlsZSBmaW5kaW5nIHByZS1idWlsdCBwcm92aWRlci4gUGxlYXNlIHRyeSBhZ2Fpbi5cIixcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKSBhcyBQcm9taXNlPFQ+O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QWxsUHJlYnVpbHRQcm92aWRlcnMoKSB7XG4gIHJldHVybiBjYWNoZWRGZXRjaDxQcm92aWRlcnNNYXA+KHByb3ZpZGVyc01hcFVybCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXROcG1QYWNrYWdlTmFtZShcbiAgY29uc3RyYWludDogUHJvdmlkZXJDb25zdHJhaW50LFxuICB1c2VDZGt0bjogYm9vbGVhbixcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IHByb3ZpZGVycyA9IGF3YWl0IGdldEFsbFByZWJ1aWx0UHJvdmlkZXJzKCk7XG5cbiAgY29uc3QgZW50cnkgPSBPYmplY3QuZW50cmllcyhwcm92aWRlcnMpLmZpbmQoXG4gICAgKFssIHBdKSA9PlxuICAgICAgUHJvdmlkZXJDb25zdHJhaW50LmZyb21Db25maWdFbnRyeShwKS5zb3VyY2UudG9Mb3dlckNhc2UoKSA9PT1cbiAgICAgIGNvbnN0cmFpbnQuc291cmNlLnRvTG93ZXJDYXNlKCksXG4gICk7XG4gIGlmICghZW50cnkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkOyAvLyBubyBwcmUtYnVpbHQgcHJvdmlkZXIgZm91bmQgZm9yIHRoaXMgY29uc3RyYWludFxuICB9XG4gIGNvbnN0IG5hbWUgPSBlbnRyeVswXTtcblxuICByZXR1cm4gdXNlQ2RrdG4gPyBgQGNka3RuL3Byb3ZpZGVyLSR7bmFtZX1gIDogYEBjZGt0Zi9wcm92aWRlci0ke25hbWV9YDtcbn1cblxudHlwZSBQYWNrYWdlSnNvbiA9IHtcbiAgLy8gaGFzIGJlZW4gaW50cm9kdWNlZCB2aWEgaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC9jZGt0Zi1wcm92aWRlci1wcm9qZWN0L3B1bGwvMjE3XG4gIGNka3RmPzoge1xuICAgIC8vIHByb3ZpZGVyIGlzIG9wdGlvbmFsIGFzIHdlIG1pZ2h0IHNldCBvdGhlciBjZGt0ZiByZWxhdGVkIGZpZWxkcyBpbiB0aGUgZnV0dXJlXG4gICAgLy8gZm9yIG90aGVyIGxpYnMgKGkuZS4gY29uc3RydWN0IHBhY2thZ2VzKSB3aGlsZSBzdGlsbCB1c2luZyB0aGUgY2RrdGYga2V5XG4gICAgcHJvdmlkZXI/OiB7XG4gICAgICAvKipcbiAgICAgICAqIG5hbWUgb2YgdGhlIHByb3ZpZGVyLCB3aWxsIHJlc29sdmUgdG8gdGhlIGZ1bGwgbmFtZSBhcyBpbiB0aGUgVGVycmFmb3JtIHNjaGVtYS5cbiAgICAgICAqIGUuZy4gcmVnaXN0cnkudGVycmFmb3JtLmlvL2hhc2hpY29ycC9hd3NcbiAgICAgICAqL1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiB0aGUgYWN0dWFsIHZlcnNpb24gdGhhdCB3YXMgdXNlZCB0byBidWlsZCB0aGUgcHJvdmlkZXJcbiAgICAgICAqIGUuZy4gNC4xMi4xXG4gICAgICAgKi9cbiAgICAgIHZlcnNpb246IHN0cmluZztcbiAgICB9O1xuICB9O1xuICAvLyBQcmUtYnVpbHQgcHJvdmlkZXJzIHVzaW5nIGNka3RuIG5vdyBnZW5lcmF0ZSBwcm92aWRlciBpbmZvcm1hdGlvbiB1bmRlciBjZGt0biBrZXlcbiAgLy8gQXQgc29tZSBwb2ludCBzdXBwb3J0IGZvciB0aGUgY2RrdGYga2V5IHdpbGwgYmUgZHJvcHBlZFxuICBjZGt0bj86IHtcbiAgICAvLyBwcm92aWRlciBpcyBvcHRpb25hbCBhcyB3ZSBtaWdodCBzZXQgb3RoZXIgY2RrdG4gcmVsYXRlZCBmaWVsZHMgaW4gdGhlIGZ1dHVyZVxuICAgIC8vIGZvciBvdGhlciBsaWJzIChpLmUuIGNvbnN0cnVjdCBwYWNrYWdlcykgd2hpbGUgc3RpbGwgdXNpbmcgdGhlIGNka3RuIGtleVxuICAgIHByb3ZpZGVyPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBuYW1lIG9mIHRoZSBwcm92aWRlciwgd2lsbCByZXNvbHZlIHRvIHRoZSBmdWxsIG5hbWUgYXMgaW4gdGhlIFRlcnJhZm9ybSBzY2hlbWEuXG4gICAgICAgKiBlLmcuIHJlZ2lzdHJ5LnRlcnJhZm9ybS5pby9oYXNoaWNvcnAvYXdzXG4gICAgICAgKi9cbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogdGhlIGFjdHVhbCB2ZXJzaW9uIHRoYXQgd2FzIHVzZWQgdG8gYnVpbGQgdGhlIHByb3ZpZGVyXG4gICAgICAgKiBlLmcuIDQuMTIuMVxuICAgICAgICovXG4gICAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgcGVlckRlcGVuZGVuY2llcz86IHtcbiAgICBjZGt0Zj86IHN0cmluZztcbiAgICBjZGt0bj86IHN0cmluZztcbiAgfTtcbiAgcmVwb3NpdG9yeT86IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gIH07XG4gIC8vIC4uLiBtYW55IG1vcmUgZmllbGRzXG59O1xudHlwZSBOcG1QYWNrYWdlUmVzdWx0ID0ge1xuICBuYW1lOiBzdHJpbmc7IC8vIGUuZy4gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCJcbiAgdmVyc2lvbnM6IHtcbiAgICBbdmVyc2lvbjogc3RyaW5nXTogUGFja2FnZUpzb247XG4gIH07XG4gIHJlcG9zaXRvcnk/OiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICB9O1xufTtcblxudHlwZSBOcG1QYWNrYWdlU2luZ2xlVmVyc2lvblJlc3VsdCA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGNka3RmPzoge1xuICAgIHByb3ZpZGVyOiB7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgY2RrdG4/OiB7XG4gICAgcHJvdmlkZXI6IHtcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIHZlcnNpb246IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBwZWVyRGVwZW5kZW5jaWVzOiB7XG4gICAgW25hbWU6IHN0cmluZ106IHN0cmluZztcbiAgfTtcbn07XG5cbnR5cGUgUHJlYnVpbHRQcm92aWRlclZlcnNpb24gPSB7XG4gIHBhY2thZ2VWZXJzaW9uOiBzdHJpbmc7IC8vIGUuZy4gXCI3LjAuNDJcIlxuICBwcm92aWRlclZlcnNpb246IHN0cmluZzsgLy8gZS5nLiBcIjQuMTIuMVwiXG4gIGNka3RmUGVlckRlcGVuZGVuY3lDb25zdHJhaW50OiBzdHJpbmc7IC8vIGUuZy4gXCJeMTAuMC4wXCJcbiAgY2RrdG5QZWVyRGVwZW5kZW5jeUNvbnN0cmFpbnQ6IHN0cmluZztcbiAgcGFja2FnZU5hbWU6IHN0cmluZztcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQcmVidWlsdFByb3ZpZGVyUmVwb3NpdG9yeU5hbWUoXG4gIHBhY2thZ2VOYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCB1cmwgPSBgaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvJHtwYWNrYWdlTmFtZX1gO1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBjYWNoZWRGZXRjaDxOcG1QYWNrYWdlUmVzdWx0Pih1cmwpO1xuXG4gIGNvbnN0IHJlcG9zaXRvcnlVcmwgPSByZXN1bHQ/LnJlcG9zaXRvcnk/LnVybDtcblxuICBpZiAoIXJlcG9zaXRvcnlVcmwpIHJldHVybiBcIlwiO1xuXG4gIGNvbnN0IHJlcG9zaXRvcnlSZWdleCA9IC9eZ2l0XFwraHR0cHM6XFwvXFwvKGdpdGh1Yi5jb21cXC8uKilcXC5naXQkLztcbiAgY29uc3QgbWF0Y2ggPSByZXBvc2l0b3J5UmVnZXguZXhlYyhyZXBvc2l0b3J5VXJsKTtcblxuICBpZiAoIW1hdGNoKSByZXR1cm4gXCJcIjtcblxuICByZXR1cm4gbWF0Y2hbMV07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBbGxQcmVidWlsdFByb3ZpZGVyVmVyc2lvbnMoXG4gIHBhY2thZ2VOYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPFByZWJ1aWx0UHJvdmlkZXJWZXJzaW9uW10+IHtcbiAgY29uc3QgdXJsID0gYGh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLyR7cGFja2FnZU5hbWV9YDtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2FjaGVkRmV0Y2g8TnBtUGFja2FnZVJlc3VsdD4odXJsKTtcblxuICBjb25zdCB2ZXJzaW9ucyA9IE9iamVjdC5lbnRyaWVzKHJlc3VsdC52ZXJzaW9ucylcbiAgICAubWFwKChbdmVyc2lvbiwgcGFja2FnZUpzb25dKSA9PiB7XG4gICAgICBjb25zdCBwcm92aWRlciA9XG4gICAgICAgIHBhY2thZ2VKc29uLmNka3RuPy5wcm92aWRlciA/PyBwYWNrYWdlSnNvbi5jZGt0Zj8ucHJvdmlkZXI7XG4gICAgICBpZiAoXG4gICAgICAgICFwcm92aWRlciB8fFxuICAgICAgICAoIXBhY2thZ2VKc29uLnBlZXJEZXBlbmRlbmNpZXM/LmNka3RmICYmXG4gICAgICAgICAgIXBhY2thZ2VKc29uLnBlZXJEZXBlbmRlbmNpZXM/LmNka3RuKVxuICAgICAgKSB7XG4gICAgICAgIGxvZ2dlci50cmFjZShcbiAgICAgICAgICBgc2tpcHBpbmcgdmVyc2lvbiAke3ZlcnNpb259IG9mICR7cGFja2FnZU5hbWV9IGFzIGl0IGRvZXMgbm90IGhhdmUgYSBjZGt0bi9jZGt0Zi5wcm92aWRlciBvciBwZWVyRGVwZW5kZW5jaWVzLmNka3RmL2Nka3RuIGluIHBhY2thZ2UuanNvbmAsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYWNrYWdlTmFtZSxcbiAgICAgICAgcGFja2FnZVZlcnNpb246IHZlcnNpb24sXG4gICAgICAgIHByb3ZpZGVyVmVyc2lvbjogcHJvdmlkZXIudmVyc2lvbixcbiAgICAgICAgY2RrdGZQZWVyRGVwZW5kZW5jeUNvbnN0cmFpbnQ6IHBhY2thZ2VKc29uLnBlZXJEZXBlbmRlbmNpZXMuY2RrdGYsXG4gICAgICAgIGNka3RuUGVlckRlcGVuZGVuY3lDb25zdHJhaW50OiBwYWNrYWdlSnNvbi5wZWVyRGVwZW5kZW5jaWVzLmNka3RuLFxuICAgICAgfTtcbiAgICB9KVxuICAgIC5maWx0ZXIoKHYpID0+IHYgIT09IHVuZGVmaW5lZCkgYXMgUHJlYnVpbHRQcm92aWRlclZlcnNpb25bXTtcblxuICAvLyBsYXRlc3QgdmVyc2lvbiBmaXJzdCwgc29ydGVkIGJ5IHBhY2thZ2VWZXJzaW9uIGFzIHRoYXRcbiAgLy8gb25lIGFsd2F5cyBpbmNyZWFzZXMgd2hpbGUgdGhlIHByb3ZpZGVyVmVyc2lvbiBtYXkgbm90XG4gIHZlcnNpb25zLnNvcnQoKGEsIGIpID0+IHtcbiAgICBpZiAoc2VtdmVyLmd0KGEucGFja2FnZVZlcnNpb24sIGIucGFja2FnZVZlcnNpb24pKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICAgIGlmIChzZW12ZXIubHQoYS5wYWNrYWdlVmVyc2lvbiwgYi5wYWNrYWdlVmVyc2lvbikpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfSk7XG5cbiAgcmV0dXJuIHZlcnNpb25zO1xufVxuXG5mdW5jdGlvbiBjZGt0ZlZlcnNpb25NYXRjaGVzKFxuICBjZGt0ZlZlcnNpb246IHN0cmluZyxcbiAgY2RrdGZQZWVyRGVwZW5kZW5jeUNvbnN0cmFpbnQ6IHN0cmluZyxcbik6IGJvb2xlYW4ge1xuICByZXR1cm4gc2VtdmVyLnNhdGlzZmllcyhjZGt0ZlZlcnNpb24sIGNka3RmUGVlckRlcGVuZGVuY3lDb25zdHJhaW50KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFByZWJ1aWx0UHJvdmlkZXJWZXJzaW9ucyhcbiAgY29uc3RyYWludDogUHJvdmlkZXJDb25zdHJhaW50LFxuICBjZGt0ZlZlcnNpb246IHN0cmluZyxcbik6IFByb21pc2U8eyBuYW1lOiBzdHJpbmc7IHZlcnNpb246IHN0cmluZyB9W10gfCBudWxsPiB7XG4gIGNvbnN0IGNka3RmUHJvdmlkZXJOYW1lID0gYXdhaXQgZ2V0TnBtUGFja2FnZU5hbWUoY29uc3RyYWludCwgZmFsc2UpO1xuICBjb25zdCBjZGt0blByb3ZpZGVyTmFtZSA9IGF3YWl0IGdldE5wbVBhY2thZ2VOYW1lKGNvbnN0cmFpbnQsIHRydWUpO1xuXG4gIC8vIG5vIHByZS1idWlsdCBwcm92aWRlciBleGlzdHNcbiAgaWYgKCFjZGt0ZlByb3ZpZGVyTmFtZSAmJiAhY2RrdG5Qcm92aWRlck5hbWUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGNka3RmVmVyc2lvbnMgPSBjZGt0ZlByb3ZpZGVyTmFtZVxuICAgID8gYXdhaXQgZ2V0QWxsUHJlYnVpbHRQcm92aWRlclZlcnNpb25zKGNka3RmUHJvdmlkZXJOYW1lKVxuICAgIDogKFtdIGFzIFByZWJ1aWx0UHJvdmlkZXJWZXJzaW9uW10pO1xuICBsb2dnZXIuZGVidWcoXG4gICAgYEZvdW5kIHZlcnNpb25zIGZvciAke2Nka3RmUHJvdmlkZXJOYW1lfTogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgIGNka3RmVmVyc2lvbnMsXG4gICAgICBudWxsLFxuICAgICAgMixcbiAgICApfWAsXG4gICk7XG5cbiAgY29uc3QgY2RrdG5WZXJzaW9ucyA9IGNka3RuUHJvdmlkZXJOYW1lXG4gICAgPyBhd2FpdCBnZXRBbGxQcmVidWlsdFByb3ZpZGVyVmVyc2lvbnMoY2RrdG5Qcm92aWRlck5hbWUpXG4gICAgOiAoW10gYXMgUHJlYnVpbHRQcm92aWRlclZlcnNpb25bXSk7XG4gIGxvZ2dlci5kZWJ1ZyhcbiAgICBgRm91bmQgdmVyc2lvbnMgZm9yICR7Y2RrdG5Qcm92aWRlck5hbWV9OiAke0pTT04uc3RyaW5naWZ5KGNka3RuVmVyc2lvbnMsIG51bGwsIDIpfWAsXG4gICk7XG5cbiAgY29uc3QgdmVyc2lvbnMgPSBjZGt0ZlZlcnNpb25zLmNvbmNhdChjZGt0blZlcnNpb25zKTtcblxuICAvLyBmaW5kIGZpcnN0IHRoZSB2ZXJzaW9uIHRoYXQgbWF0Y2hlcyB0aGUgcmVxdWVzdGVkIHByb3ZpZGVyIHZlcnNpb24gYW5kIGNka3RmIHZlcnNpb25cbiAgY29uc3QgbWF0Y2hpbmdWZXJzaW9ucyA9IHZlcnNpb25zLmZpbHRlcigodikgPT4ge1xuICAgIGlmIChcbiAgICAgICFjZGt0ZlZlcnNpb25NYXRjaGVzKGNka3RmVmVyc2lvbiwgdi5jZGt0ZlBlZXJEZXBlbmRlbmN5Q29uc3RyYWludCkgJiZcbiAgICAgICFjZGt0ZlZlcnNpb25NYXRjaGVzKGNka3RmVmVyc2lvbiwgdi5jZGt0blBlZXJEZXBlbmRlbmN5Q29uc3RyYWludClcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTsgLy8gc2tpcCBpZiBjZGt0ZiB2ZXJzaW9uIGRvZXMgbm90IG1hdGNoXG4gICAgfVxuICAgIGlmIChjb25zdHJhaW50LnZlcnNpb24pIHtcbiAgICAgIHJldHVybiB2ZXJzaW9uTWF0Y2hlc0NvbnN0cmFpbnQodi5wcm92aWRlclZlcnNpb24sIGNvbnN0cmFpbnQudmVyc2lvbik7XG4gICAgfVxuICAgIHJldHVybiB0cnVlOyAvLyBpZiBubyB2ZXJzaW9uIGNvbnN0cmFpbnQgaXMgcGFzc2VkLCByZXR1cm4gdHJ1ZSBvbiB0aGUgZmlyc3QgbWF0Y2hcbiAgfSk7XG5cbiAgaWYgKCFtYXRjaGluZ1ZlcnNpb25zLmxlbmd0aCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IG5wbVBhY2thZ2VWZXJzaW9ucyA9IG1hdGNoaW5nVmVyc2lvbnNcbiAgICAubWFwKChtYXRjaGluZ1ZlcnNpb24pID0+ICh7XG4gICAgICBuYW1lOiBtYXRjaGluZ1ZlcnNpb24ucGFja2FnZU5hbWUsXG4gICAgICB2ZXJzaW9uOiBtYXRjaGluZ1ZlcnNpb24ucGFja2FnZVZlcnNpb24sXG4gICAgfSkpXG4gICAgLnNvcnQoKGEsIGIpID0+IHNlbXZlci5jb21wYXJlKGEudmVyc2lvbiwgYi52ZXJzaW9uKSlcbiAgICAucmV2ZXJzZSgpO1xuICByZXR1cm4gbnBtUGFja2FnZVZlcnNpb25zO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UHJlYnVpbHRQcm92aWRlclZlcnNpb25JbmZvcm1hdGlvbihcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbiAgcGFja2FnZVZlcnNpb246IHN0cmluZyxcbik6IFByb21pc2U8YW55PiB7XG4gIC8vIEdvIHBhY2thZ2VzIGluY2x1ZGUgYW4gZXh0cmEgYHZYLlkuWmBcbiAgaWYgKHBhY2thZ2VWZXJzaW9uLnN0YXJ0c1dpdGgoXCJ2XCIpKSB7XG4gICAgcGFja2FnZVZlcnNpb24gPSBwYWNrYWdlVmVyc2lvbi5zbGljZSgxKTtcbiAgfVxuXG4gIGNvbnN0IHVybCA9IGBodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8ke3BhY2thZ2VOYW1lfS8ke3BhY2thZ2VWZXJzaW9ufWA7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNhY2hlZEZldGNoPE5wbVBhY2thZ2VTaW5nbGVWZXJzaW9uUmVzdWx0Pih1cmwpO1xuXG4gIGxldCBwcm92aWRlck5hbWUgPSByZXN1bHQuY2RrdG4/LnByb3ZpZGVyLm5hbWUgPz8gcmVzdWx0LmNka3RmPy5wcm92aWRlci5uYW1lO1xuICBpZiAocHJvdmlkZXJOYW1lKSB7XG4gICAgcHJvdmlkZXJOYW1lID0gcHJvdmlkZXJOYW1lLnJlcGxhY2UoXCJyZWdpc3RyeS50ZXJyYWZvcm0uaW8vXCIsIFwiXCIpO1xuICAgIHByb3ZpZGVyTmFtZSA9IHByb3ZpZGVyTmFtZS5yZXBsYWNlKFwiaGFzaGljb3JwL1wiLCBcIlwiKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcGFja2FnZU5hbWU6IHJlc3VsdC5uYW1lLFxuICAgIHBhY2thZ2VWZXJzaW9uOiByZXN1bHQudmVyc2lvbixcbiAgICBwcm92aWRlck5hbWUsXG4gICAgcHJvdmlkZXJWZXJzaW9uOlxuICAgICAgcmVzdWx0LmNka3RuPy5wcm92aWRlci52ZXJzaW9uID8/IHJlc3VsdC5jZGt0Zj8ucHJvdmlkZXIudmVyc2lvbixcbiAgICBjZGt0ZlZlcnNpb246IHJlc3VsdC5wZWVyRGVwZW5kZW5jaWVzW1wiY2RrdGZcIl0sXG4gICAgY2RrdG5WZXJzaW9uOiByZXN1bHQucGVlckRlcGVuZGVuY2llc1tcImNka3RuXCJdLFxuICB9O1xufVxuIl19
|
|
@@ -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"}
|