renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
83 lines • 3.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isVersion = exports.api = exports.supportedRangeStrategies = exports.supportsRanges = exports.urls = exports.displayName = exports.id = void 0;
exports.isValid = isValid;
const logger_1 = require("../../../logger");
const common_1 = require("../common");
const npm_1 = require("../npm");
const convertor_1 = require("./convertor");
exports.id = 'hashicorp';
exports.displayName = 'Hashicorp';
exports.urls = [
'https://www.terraform.io/docs/configuration/terraform.html#specifying-a-required-terraform-version',
];
exports.supportsRanges = true;
exports.supportedRangeStrategies = [
'bump',
'widen',
'pin',
'replace',
];
function isLessThanRange(version, range) {
return !!npm_1.api.isLessThanRange?.(version, (0, convertor_1.hashicorp2npm)(range));
}
function isValid(input) {
if (input) {
try {
return npm_1.api.isValid((0, convertor_1.hashicorp2npm)(input));
}
catch {
logger_1.logger.trace({ value: input }, 'Unsupported hashicorp versioning value');
return false;
}
}
return false;
}
function matches(version, range) {
const excludedVersions = (0, common_1.getExcludedVersions)(range);
if (excludedVersions.includes(version)) {
return false;
}
const filteredRange = (0, common_1.getFilteredRange)(range);
return (isValid(filteredRange) && npm_1.api.matches(version, (0, convertor_1.hashicorp2npm)(filteredRange)));
}
function getSatisfyingVersion(versions, range) {
const excludedVersions = (0, common_1.getExcludedVersions)(range);
const filteredRange = (0, common_1.getFilteredRange)(range);
const filteredVersions = versions.filter((version) => !excludedVersions.includes(version));
return npm_1.api.getSatisfyingVersion(filteredVersions, (0, convertor_1.hashicorp2npm)(filteredRange));
}
function minSatisfyingVersion(versions, range) {
const excludedVersions = (0, common_1.getExcludedVersions)(range);
const filteredRange = (0, common_1.getFilteredRange)(range);
const filteredVersions = versions.filter((version) => !excludedVersions.includes(version));
return npm_1.api.minSatisfyingVersion(filteredVersions, (0, convertor_1.hashicorp2npm)(filteredRange));
}
function getNewValue({ currentValue, rangeStrategy, currentVersion, newVersion, }) {
let npmNewVersion = npm_1.api.getNewValue({
currentValue: (0, convertor_1.hashicorp2npm)(currentValue),
rangeStrategy,
currentVersion,
newVersion,
});
if (npmNewVersion) {
npmNewVersion = (0, convertor_1.npm2hashicorp)(npmNewVersion);
if (currentValue.startsWith('v') && !npmNewVersion.startsWith('v')) {
npmNewVersion = `v${npmNewVersion}`;
}
}
return npmNewVersion;
}
exports.api = {
...npm_1.api,
isLessThanRange,
isValid,
matches,
getSatisfyingVersion,
minSatisfyingVersion,
getNewValue,
};
// eslint-disable-next-line @typescript-eslint/unbound-method
exports.isVersion = exports.api.isVersion;
exports.default = exports.api;
//# sourceMappingURL=index.js.map