chore(deps): upgrade dependencies and drop ESLint

This commit is contained in:
Paul Hatcherian 2026-01-18 17:30:33 -06:00
parent 45a5cbb476
commit 3337b3eed3
30 changed files with 831 additions and 4024 deletions

225
dist/index.js vendored
View file

@ -379,17 +379,17 @@ const DefaultTagFormatter_1 = __nccwpck_require__(2865);
class BranchVersioningTagFormatter extends DefaultTagFormatter_1.DefaultTagFormatter {
getRegex(pattern) {
if (/^\/.+\/[i]*$/.test(pattern)) {
const regexEnd = pattern.lastIndexOf('/');
const parsedFlags = pattern.slice(pattern.lastIndexOf('/') + 1);
const regexEnd = pattern.lastIndexOf("/");
const parsedFlags = pattern.slice(pattern.lastIndexOf("/") + 1);
return new RegExp(pattern.slice(1, regexEnd), parsedFlags);
}
return new RegExp(pattern);
}
constructor(config, branchName) {
super(config);
const pattern = config.versionFromBranch === true ?
new RegExp("[0-9]+.[0-9]+$|[0-9]+$") :
this.getRegex(config.versionFromBranch);
const pattern = config.versionFromBranch === true
? new RegExp("[0-9]+.[0-9]+$|[0-9]+$")
: this.getRegex(config.versionFromBranch);
const result = pattern.exec(branchName);
if (result === null) {
this.major = NaN;
@ -408,7 +408,7 @@ class BranchVersioningTagFormatter extends DefaultTagFormatter_1.DefaultTagForma
throw new Error(`Unable to parse version from branch named '${branchName}' using pattern '${pattern}'`);
}
this.onVersionBranch = true;
const versionValues = branchVersion.split('.');
const versionValues = branchVersion.split(".");
if (versionValues.length > 2) {
throw new Error(`The version string '${branchVersion}' parsed from branch '${branchName}' is invalid. It must be in the format 'major.minor' or 'major'`);
}
@ -429,9 +429,9 @@ class BranchVersioningTagFormatter extends DefaultTagFormatter_1.DefaultTagForma
return pattern;
}
if (this.minor === undefined) {
return pattern.replace('*[0-9].*[0-9].*[0-9]', `${this.major}.*[0-9].*[0-9]`);
return pattern.replace("*[0-9].*[0-9].*[0-9]", `${this.major}.*[0-9].*[0-9]`);
}
return pattern.replace('*[0-9].*[0-9].*[0-9]', `${this.major}.${this.minor}.*[0-9]`);
return pattern.replace("*[0-9].*[0-9].*[0-9]", `${this.major}.${this.minor}.*[0-9]`);
}
IsValid(tag) {
if (!this.onVersionBranch) {
@ -474,7 +474,7 @@ class CsvUserFormatter {
// placeholder for consistency with other formatters
}
Format(type, users) {
return users.map(user => `${user.name} <${user.email}>`).join(', ');
return users.map((user) => `${user.name} <${user.email}>`).join(", ");
}
}
exports.CsvUserFormatter = CsvUserFormatter;
@ -494,7 +494,7 @@ class DefaultTagFormatter {
constructor(config) {
this.namespace = config.namespace;
this.tagPrefix = config.tagPrefix;
this.namespaceSeparator = '-'; // maybe make configurable in the future
this.namespaceSeparator = "-"; // maybe make configurable in the future
}
Format(versionInfo) {
const result = `${this.tagPrefix}${versionInfo.major}.${versionInfo.minor}.${versionInfo.patch}`;
@ -510,20 +510,20 @@ class DefaultTagFormatter {
return `${this.tagPrefix}*[0-9].*[0-9].*[0-9]`;
}
Parse(tag) {
if (tag === '') {
if (tag === "") {
return [0, 0, 0];
}
let tagParts = tag
.replace(this.tagPrefix, '<--!PREFIX!-->')
.replace(this.namespace, '<--!NAMESPACE!-->')
.split('/');
.replace(this.tagPrefix, "<--!PREFIX!-->")
.replace(this.namespace, "<--!NAMESPACE!-->")
.split("/");
const stripedTag = tagParts[tagParts.length - 1]
.replace('<--!PREFIX!-->', this.tagPrefix)
.replace('<--!NAMESPACE!-->', this.namespace);
.replace("<--!PREFIX!-->", this.tagPrefix)
.replace("<--!NAMESPACE!-->", this.namespace);
let versionValues = stripedTag
.substring(this.tagPrefix.length)
.slice(0, this.namespace === '' ? 999 : -(this.namespace.length + 1))
.split('.');
.slice(0, this.namespace === "" ? 999 : -(this.namespace.length + 1))
.split(".");
let major = parseInt(versionValues[0]);
let minor = versionValues.length > 1 ? parseInt(versionValues[1]) : 0;
let patch = versionValues.length > 2 ? parseInt(versionValues[2]) : 0;
@ -533,7 +533,7 @@ class DefaultTagFormatter {
return [major, minor, patch];
}
IsValid(tag) {
const regexEscape = (literal) => literal.replace(/\W/g, '\\$&');
const regexEscape = (literal) => literal.replace(/\W/g, "\\$&");
const tagPrefix = regexEscape(this.tagPrefix);
const namespaceSeparator = regexEscape(this.namespaceSeparator);
const namespace = regexEscape(this.namespace);
@ -561,10 +561,10 @@ class DefaultVersionFormatter {
}
Format(versionInfo) {
return this.formatString
.replace('${major}', versionInfo.major.toString())
.replace('${minor}', versionInfo.minor.toString())
.replace('${patch}', versionInfo.patch.toString())
.replace('${increment}', versionInfo.increment.toString());
.replace("${major}", versionInfo.major.toString())
.replace("${minor}", versionInfo.minor.toString())
.replace("${patch}", versionInfo.patch.toString())
.replace("${increment}", versionInfo.increment.toString());
}
}
exports.DefaultVersionFormatter = DefaultVersionFormatter;
@ -584,8 +584,8 @@ class JsonUserFormatter {
// placeholder for consistency with other formatters
}
Format(type, users) {
let result = users.map(u => ({ name: u.name, email: u.email }));
return JSON.stringify(result).replace('\n', '');
let result = users.map((u) => ({ name: u.name, email: u.email }));
return JSON.stringify(result).replace("\n", "");
}
}
exports.JsonUserFormatter = JsonUserFormatter;
@ -751,9 +751,9 @@ class BumpAlwaysVersionClassifier extends DefaultVersionClassifier_1.DefaultVers
constructor(config) {
super(config);
this.enablePrereleaseMode = config.enablePrereleaseMode;
this.patchPattern = !config.bumpEachCommitPatchPattern ?
_ => true :
this.parsePattern(config.bumpEachCommitPatchPattern, "", config.searchCommitBody);
this.patchPattern = !config.bumpEachCommitPatchPattern
? (_) => true
: this.parsePattern(config.bumpEachCommitPatchPattern, "", config.searchCommitBody);
}
ClassifyAsync(lastRelease, commitSet) {
return __awaiter(this, void 0, void 0, function* () {
@ -774,7 +774,10 @@ class BumpAlwaysVersionClassifier extends DefaultVersionClassifier_1.DefaultVers
type = VersionType_1.VersionType.Minor;
}
else if (this.patchPattern(commit) ||
(major === 0 && minor === 0 && patch === 0 && commitSet.commits.length > 0)) {
(major === 0 &&
minor === 0 &&
patch === 0 &&
commitSet.commits.length > 0)) {
type = VersionType_1.VersionType.Patch;
}
else {
@ -914,49 +917,47 @@ class DefaultCommitsProvider {
return __awaiter(this, void 0, void 0, function* () {
const logSplitter = `@@@START_RECORD`;
const formatPlaceholders = Object.entries({
hash: '%H',
subject: '%s',
body: '%b',
author: '%an',
authorEmail: '%ae',
authorDate: '%aI',
committer: '%cn',
committerEmail: '%ce',
committerDate: '%cI',
tags: '%d'
hash: "%H",
subject: "%s",
body: "%b",
author: "%an",
authorEmail: "%ae",
authorDate: "%aI",
committer: "%cn",
committerEmail: "%ce",
committerDate: "%cI",
tags: "%d",
});
const pretty = logSplitter + '%n' + formatPlaceholders
.map(x => `@@@${x[0]}%n${x[1]}`)
.join('%n');
var logCommand = `git log --pretty="${pretty}" --author-date-order ${(startHash === '' ? endHash : `${startHash}..${endHash}`)}`;
if (this.changePath !== '') {
const pretty = logSplitter +
"%n" +
formatPlaceholders.map((x) => `@@@${x[0]}%n${x[1]}`).join("%n");
var logCommand = `git log --pretty="${pretty}" --author-date-order ${startHash === "" ? endHash : `${startHash}..${endHash}`}`;
if (this.changePath !== "") {
logCommand += ` -- ${this.changePath}`;
}
const log = yield (0, CommandRunner_1.cmd)(logCommand);
const entries = log
.split(logSplitter)
.slice(1);
const commits = entries.map(entry => {
const entries = log.split(logSplitter).slice(1);
const commits = entries.map((entry) => {
const fields = entry
.split(`@@@`)
.slice(1)
.reduce((acc, value) => {
const firstLine = value.indexOf('\n');
const firstLine = value.indexOf("\n");
const key = value.substring(0, firstLine);
acc[key] = value.substring(firstLine + 1).trim();
return acc;
}, {});
const tags = fields.tags
.split(',')
.split(",")
.map((v) => v.trim())
.filter((v) => v.startsWith('tags: '))
.filter((v) => v.startsWith("tags: "))
.map((v) => v.substring(5).trim());
return new CommitInfo_1.CommitInfo(fields.hash, fields.subject, fields.body, fields.author, fields.authorEmail, new Date(fields.authorDate), fields.committer, fields.committerEmail, new Date(fields.committerDate), tags);
});
// check for changes
let changed = true;
if (this.changePath !== '') {
if (startHash === '') {
if (this.changePath !== "") {
if (startHash === "") {
const changedFiles = yield (0, CommandRunner_1.cmd)(`git log --name-only --oneline ${endHash} -- ${this.changePath}`);
changed = changedFiles.length > 0;
}
@ -997,21 +998,23 @@ class DefaultCurrentCommitResolver {
}
ResolveAsync() {
return __awaiter(this, void 0, void 0, function* () {
if (this.branch === 'HEAD') {
return (yield (0, CommandRunner_1.cmd)('git', 'rev-parse', 'HEAD')).trim();
if (this.branch === "HEAD") {
return (yield (0, CommandRunner_1.cmd)("git", "rev-parse", "HEAD")).trim();
}
return this.branch;
});
}
IsEmptyRepoAsync() {
return __awaiter(this, void 0, void 0, function* () {
let lastCommitAll = (yield (0, CommandRunner_1.cmd)('git', 'rev-list', '-n1', '--all')).trim();
return lastCommitAll === '';
let lastCommitAll = (yield (0, CommandRunner_1.cmd)("git", "rev-list", "-n1", "--all")).trim();
return lastCommitAll === "";
});
}
ResolveBranchNameAsync() {
return __awaiter(this, void 0, void 0, function* () {
const branchName = this.branch == 'HEAD' ? yield (0, CommandRunner_1.cmd)('git', 'rev-parse', '--abbrev-ref', 'HEAD') : this.branch;
const branchName = this.branch == "HEAD"
? yield (0, CommandRunner_1.cmd)("git", "rev-parse", "--abbrev-ref", "HEAD")
: this.branch;
return branchName.trim();
});
}
@ -1082,36 +1085,37 @@ class DefaultLastReleaseResolver {
return __awaiter(this, void 0, void 0, function* () {
const releasePattern = tagFormatter.GetPattern();
let currentTag = (yield (0, CommandRunner_1.cmd)(`git tag --points-at ${current} ${releasePattern}`)).trim();
currentTag = tagFormatter.IsValid(currentTag) ? currentTag : '';
const isTagged = currentTag !== '';
const [currentMajor, currentMinor, currentPatch] = currentTag ? tagFormatter.Parse(currentTag) : [null, null, null];
currentTag = tagFormatter.IsValid(currentTag) ? currentTag : "";
const isTagged = currentTag !== "";
const [currentMajor, currentMinor, currentPatch] = currentTag
? tagFormatter.Parse(currentTag)
: [null, null, null];
let tagsCount = 0;
let tag = '';
let tag = "";
try {
const refPrefixPattern = this.useBranches ? 'refs/heads/' : 'refs/tags/';
const refPrefixPattern = this.useBranches ? "refs/heads/" : "refs/tags/";
if (currentTag) {
// If we already have the current branch tagged, we are checking for the previous one
// so that we will have an accurate increment (assuming the new tag is the expected one)
const command = `git for-each-ref --sort=-v:*refname --format=%(refname:short) --merged=${current} ${refPrefixPattern}${releasePattern}`;
const tags = (yield (0, CommandRunner_1.cmd)(command)).split('\n');
const tags = (yield (0, CommandRunner_1.cmd)(command)).split("\n");
tagsCount = tags.length;
tag = tags
.find(t => tagFormatter.IsValid(t) && t !== currentTag) || '';
tag =
tags.find((t) => tagFormatter.IsValid(t) && t !== currentTag) || "";
}
else {
const command = `git for-each-ref --sort=-v:*refname --format=%(refname:short) --merged=${current} ${refPrefixPattern}${releasePattern}`;
const tags = (yield (0, CommandRunner_1.cmd)(command)).split('\n');
const tags = (yield (0, CommandRunner_1.cmd)(command)).split("\n");
tagsCount = tags.length;
tag = tags
.find(t => tagFormatter.IsValid(t)) || '';
tag = tags.find((t) => tagFormatter.IsValid(t)) || "";
}
tag = tag.trim();
}
catch (err) {
tag = '';
tag = "";
}
if (tag === '') {
if ((yield (0, CommandRunner_1.cmd)('git', 'remote')) !== '') {
if (tag === "") {
if ((yield (0, CommandRunner_1.cmd)("git", "remote")) !== "") {
// Since there is no remote, we assume that there are no other tags to pull. In
// practice this isn't likely to happen, but it keeps the test output from being
// polluted with a bunch of warnings.
@ -1119,16 +1123,16 @@ class DefaultLastReleaseResolver {
core.warning(`None of the ${tagsCount} tags(s) found were valid version tags for the present configuration. If this is unexpected, check to ensure that the configuration is correct and matches the tag format you are using. If you have not yet tagged this repo with a version tag, this can be ignored.`);
}
else {
core.warning('No tags are present for this repository. If this is unexpected, check to ensure that tags have been pulled from the remote. If you have not yet tagged this repo with a version tag, this can be ignored.');
core.warning("No tags are present for this repository. If this is unexpected, check to ensure that tags have been pulled from the remote. If you have not yet tagged this repo with a version tag, this can be ignored.");
}
}
const [major, minor, patch] = tagFormatter.Parse('');
const [major, minor, patch] = tagFormatter.Parse("");
// no release tags yet, use the initial commit as the root
return new ReleaseInformation_1.ReleaseInformation(major, minor, patch, '', currentMajor, currentMinor, currentPatch, isTagged);
return new ReleaseInformation_1.ReleaseInformation(major, minor, patch, "", currentMajor, currentMinor, currentPatch, isTagged);
}
// parse the version tag
const [major, minor, patch] = tagFormatter.Parse(tag);
const root = yield (0, CommandRunner_1.cmd)('git', `merge-base`, tag, current);
const root = yield (0, CommandRunner_1.cmd)("git", `merge-base`, tag, current);
return new ReleaseInformation_1.ReleaseInformation(major, minor, patch, root.trim(), currentMajor, currentMinor, currentPatch, isTagged);
});
}
@ -1165,18 +1169,19 @@ class DefaultVersionClassifier {
}
parsePattern(pattern, flags, searchBody) {
if (/^\/.+\/[i]*$/.test(pattern)) {
const regexEnd = pattern.lastIndexOf('/');
const parsedFlags = pattern.slice(pattern.lastIndexOf('/') + 1);
const regexEnd = pattern.lastIndexOf("/");
const parsedFlags = pattern.slice(pattern.lastIndexOf("/") + 1);
const regex = new RegExp(pattern.slice(1, regexEnd), parsedFlags || flags);
return searchBody ?
(commit) => regex.test(commit.subject) || regex.test(commit.body) :
(commit) => regex.test(commit.subject);
return searchBody
? (commit) => regex.test(commit.subject) || regex.test(commit.body)
: (commit) => regex.test(commit.subject);
}
else {
const matchString = pattern;
return searchBody ?
(commit) => commit.subject.includes(matchString) || commit.body.includes(matchString) :
(commit) => commit.subject.includes(matchString);
return searchBody
? (commit) => commit.subject.includes(matchString) ||
commit.body.includes(matchString)
: (commit) => commit.subject.includes(matchString);
}
}
getNextVersion(current, type) {
@ -1186,9 +1191,17 @@ class DefaultVersionClassifier {
return { major: current.major, minor: current.minor + 1, patch: 0 };
case VersionType_1.VersionType.Minor:
case VersionType_1.VersionType.Patch:
return { major: current.major, minor: current.minor, patch: current.patch + 1 };
return {
major: current.major,
minor: current.minor,
patch: current.patch + 1,
};
case VersionType_1.VersionType.None:
return { major: current.major, minor: current.minor, patch: current.patch };
return {
major: current.major,
minor: current.minor,
patch: current.patch,
};
default:
throw new Error(`Unknown change type: ${type}`);
}
@ -1199,33 +1212,57 @@ class DefaultVersionClassifier {
case VersionType_1.VersionType.Minor:
return { major: current.major, minor: current.minor + 1, patch: 0 };
case VersionType_1.VersionType.Patch:
return { major: current.major, minor: current.minor, patch: current.patch + 1 };
return {
major: current.major,
minor: current.minor,
patch: current.patch + 1,
};
case VersionType_1.VersionType.None:
return { major: current.major, minor: current.minor, patch: current.patch };
return {
major: current.major,
minor: current.minor,
patch: current.patch,
};
default:
throw new Error(`Unknown change type: ${type}`);
}
}
resolveCommitType(commitsSet) {
if (commitsSet.commits.length === 0) {
return { type: VersionType_1.VersionType.None, increment: 0, changed: commitsSet.changed };
return {
type: VersionType_1.VersionType.None,
increment: 0,
changed: commitsSet.changed,
};
}
const commits = commitsSet.commits.reverse();
let index = 1;
for (let commit of commits) {
if (this.majorPattern(commit)) {
return { type: VersionType_1.VersionType.Major, increment: commits.length - index, changed: commitsSet.changed };
return {
type: VersionType_1.VersionType.Major,
increment: commits.length - index,
changed: commitsSet.changed,
};
}
index++;
}
index = 1;
for (let commit of commits) {
if (this.minorPattern(commit)) {
return { type: VersionType_1.VersionType.Minor, increment: commits.length - index, changed: commitsSet.changed };
return {
type: VersionType_1.VersionType.Minor,
increment: commits.length - index,
changed: commitsSet.changed,
};
}
index++;
}
return { type: VersionType_1.VersionType.Patch, increment: commitsSet.commits.length - 1, changed: true };
return {
type: VersionType_1.VersionType.Patch,
increment: commitsSet.commits.length - 1,
changed: true,
};
}
ClassifyAsync(lastRelease, commitSet) {
return __awaiter(this, void 0, void 0, function* () {
@ -1239,7 +1276,9 @@ class DefaultVersionClassifier {
// - commit 2 - v1.0.0+1
// - commit 3 was tagged v2.0.0 - v2.0.0+0
// - commit 4 - v2.0.1+0
const versionsMatch = lastRelease.currentMajor === major && lastRelease.currentMinor === minor && lastRelease.currentPatch === patch;
const versionsMatch = lastRelease.currentMajor === major &&
lastRelease.currentMinor === minor &&
lastRelease.currentPatch === patch;
const currentIncrement = versionsMatch ? increment : 0;
return new VersionClassification_1.VersionClassification(VersionType_1.VersionType.None, currentIncrement, false, lastRelease.currentMajor, lastRelease.currentMinor, lastRelease.currentPatch);
}