package-versioner 0.6.2 → 0.6.4
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/dist/index.cjs +23 -13
- package/dist/index.js +23 -13
- package/package-versioner.schema.json +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -359,8 +359,12 @@ function formatVersionPrefix(versionPrefix, scope) {
|
|
|
359
359
|
}
|
|
360
360
|
return cleanPrefix;
|
|
361
361
|
}
|
|
362
|
-
function formatCommitMessage(template, version, scope) {
|
|
363
|
-
return createTemplateString(template, {
|
|
362
|
+
function formatCommitMessage(template, version, packageName, scope) {
|
|
363
|
+
return createTemplateString(template, {
|
|
364
|
+
version,
|
|
365
|
+
scope,
|
|
366
|
+
packageName: packageName || ""
|
|
367
|
+
});
|
|
364
368
|
}
|
|
365
369
|
function createTemplateString(template, variables) {
|
|
366
370
|
return Object.entries(variables).reduce((result, [key, value]) => {
|
|
@@ -710,14 +714,14 @@ async function calculateVersion(config, options) {
|
|
|
710
714
|
}
|
|
711
715
|
const cleanedTag = import_semver2.default.clean(latestTag) || latestTag;
|
|
712
716
|
const currentVersion = import_semver2.default.clean(cleanedTag.replace(new RegExp(`^${escapedTagPattern}`), "")) || "0.0.0";
|
|
713
|
-
if (STANDARD_BUMP_TYPES.includes(specifiedType) && import_semver2.default.prerelease(currentVersion)) {
|
|
717
|
+
if (STANDARD_BUMP_TYPES.includes(specifiedType) && (import_semver2.default.prerelease(currentVersion) || normalizedPrereleaseId)) {
|
|
714
718
|
log(
|
|
715
|
-
`Cleaning prerelease identifier from ${currentVersion} for ${specifiedType} bump`,
|
|
719
|
+
normalizedPrereleaseId ? `Creating prerelease version with identifier '${normalizedPrereleaseId}' using ${specifiedType}` : `Cleaning prerelease identifier from ${currentVersion} for ${specifiedType} bump`,
|
|
716
720
|
"debug"
|
|
717
721
|
);
|
|
718
722
|
return bumpVersion(currentVersion, specifiedType, normalizedPrereleaseId);
|
|
719
723
|
}
|
|
720
|
-
return
|
|
724
|
+
return bumpVersion(currentVersion, specifiedType, normalizedPrereleaseId);
|
|
721
725
|
}
|
|
722
726
|
if (branchPattern && branchPattern.length > 0) {
|
|
723
727
|
const currentBranch = getCurrentBranch();
|
|
@@ -751,7 +755,7 @@ async function calculateVersion(config, options) {
|
|
|
751
755
|
const cleanedTag = import_semver2.default.clean(latestTag) || latestTag;
|
|
752
756
|
const currentVersion = import_semver2.default.clean(cleanedTag.replace(new RegExp(`^${escapedTagPattern}`), "")) || "0.0.0";
|
|
753
757
|
log(`Applying ${branchVersionType} bump based on branch pattern`, "debug");
|
|
754
|
-
return
|
|
758
|
+
return bumpVersion(currentVersion, branchVersionType, normalizedPrereleaseId);
|
|
755
759
|
}
|
|
756
760
|
}
|
|
757
761
|
try {
|
|
@@ -788,7 +792,7 @@ async function calculateVersion(config, options) {
|
|
|
788
792
|
return "";
|
|
789
793
|
}
|
|
790
794
|
const currentVersion = import_semver2.default.clean(latestTag.replace(new RegExp(`^${escapedTagPattern}`), "")) || "0.0.0";
|
|
791
|
-
return
|
|
795
|
+
return bumpVersion(currentVersion, releaseTypeFromCommits, normalizedPrereleaseId);
|
|
792
796
|
} catch (error) {
|
|
793
797
|
log(`Failed to calculate version for ${name || "project"}`, "error");
|
|
794
798
|
console.error(error);
|
|
@@ -832,11 +836,15 @@ function calculateNextVersion(version, manifestType, name, releaseType, prerelea
|
|
|
832
836
|
`No tags found for ${name || "package"}, using ${manifestType} version: ${version} as base`,
|
|
833
837
|
"info"
|
|
834
838
|
);
|
|
835
|
-
if (STANDARD_BUMP_TYPES.includes(releaseType) && import_semver2.default.prerelease(version)) {
|
|
836
|
-
log(
|
|
839
|
+
if (STANDARD_BUMP_TYPES.includes(releaseType) && (import_semver2.default.prerelease(version) || prereleaseIdentifier)) {
|
|
840
|
+
log(
|
|
841
|
+
prereleaseIdentifier ? `Creating prerelease version with identifier '${prereleaseIdentifier}' using ${releaseType}` : `Cleaning prerelease identifier from ${version} for ${releaseType} bump`,
|
|
842
|
+
"debug"
|
|
843
|
+
);
|
|
837
844
|
return bumpVersion(version, releaseType, prereleaseIdentifier);
|
|
838
845
|
}
|
|
839
|
-
|
|
846
|
+
const result = bumpVersion(version, releaseType, prereleaseIdentifier);
|
|
847
|
+
return result || initialVersion;
|
|
840
848
|
}
|
|
841
849
|
|
|
842
850
|
// src/package/packageProcessor.ts
|
|
@@ -1003,8 +1011,10 @@ var PackageProcessor = class {
|
|
|
1003
1011
|
const packageNames = updatedPackagesInfo.map((p) => p.name).join(", ");
|
|
1004
1012
|
const representativeVersion = ((_a = updatedPackagesInfo[0]) == null ? void 0 : _a.version) || "multiple";
|
|
1005
1013
|
let commitMessage = this.commitMessageTemplate || "chore(release): publish packages";
|
|
1006
|
-
|
|
1007
|
-
|
|
1014
|
+
const placeholderRegex = /\$\{[^}]+\}/;
|
|
1015
|
+
if (updatedPackagesInfo.length === 1 && placeholderRegex.test(commitMessage)) {
|
|
1016
|
+
const packageName = updatedPackagesInfo[0].name;
|
|
1017
|
+
commitMessage = formatCommitMessage(commitMessage, representativeVersion, packageName);
|
|
1008
1018
|
} else {
|
|
1009
1019
|
commitMessage = `chore(release): ${packageNames} ${representativeVersion}`;
|
|
1010
1020
|
}
|
|
@@ -1172,7 +1182,7 @@ function createSingleStrategy(config) {
|
|
|
1172
1182
|
tagTemplate,
|
|
1173
1183
|
packageTagTemplate
|
|
1174
1184
|
);
|
|
1175
|
-
const formattedCommitMessage = formatCommitMessage(commitMessage, nextVersion);
|
|
1185
|
+
const formattedCommitMessage = formatCommitMessage(commitMessage, nextVersion, packageName);
|
|
1176
1186
|
await createGitCommitAndTag(
|
|
1177
1187
|
[packageJsonPath],
|
|
1178
1188
|
nextTag,
|
package/dist/index.js
CHANGED
|
@@ -326,8 +326,12 @@ function formatVersionPrefix(versionPrefix, scope) {
|
|
|
326
326
|
}
|
|
327
327
|
return cleanPrefix;
|
|
328
328
|
}
|
|
329
|
-
function formatCommitMessage(template, version, scope) {
|
|
330
|
-
return createTemplateString(template, {
|
|
329
|
+
function formatCommitMessage(template, version, packageName, scope) {
|
|
330
|
+
return createTemplateString(template, {
|
|
331
|
+
version,
|
|
332
|
+
scope,
|
|
333
|
+
packageName: packageName || ""
|
|
334
|
+
});
|
|
331
335
|
}
|
|
332
336
|
function createTemplateString(template, variables) {
|
|
333
337
|
return Object.entries(variables).reduce((result, [key, value]) => {
|
|
@@ -675,14 +679,14 @@ async function calculateVersion(config, options) {
|
|
|
675
679
|
}
|
|
676
680
|
const cleanedTag = semver2.clean(latestTag) || latestTag;
|
|
677
681
|
const currentVersion = semver2.clean(cleanedTag.replace(new RegExp(`^${escapedTagPattern}`), "")) || "0.0.0";
|
|
678
|
-
if (STANDARD_BUMP_TYPES.includes(specifiedType) && semver2.prerelease(currentVersion)) {
|
|
682
|
+
if (STANDARD_BUMP_TYPES.includes(specifiedType) && (semver2.prerelease(currentVersion) || normalizedPrereleaseId)) {
|
|
679
683
|
log(
|
|
680
|
-
`Cleaning prerelease identifier from ${currentVersion} for ${specifiedType} bump`,
|
|
684
|
+
normalizedPrereleaseId ? `Creating prerelease version with identifier '${normalizedPrereleaseId}' using ${specifiedType}` : `Cleaning prerelease identifier from ${currentVersion} for ${specifiedType} bump`,
|
|
681
685
|
"debug"
|
|
682
686
|
);
|
|
683
687
|
return bumpVersion(currentVersion, specifiedType, normalizedPrereleaseId);
|
|
684
688
|
}
|
|
685
|
-
return
|
|
689
|
+
return bumpVersion(currentVersion, specifiedType, normalizedPrereleaseId);
|
|
686
690
|
}
|
|
687
691
|
if (branchPattern && branchPattern.length > 0) {
|
|
688
692
|
const currentBranch = getCurrentBranch();
|
|
@@ -716,7 +720,7 @@ async function calculateVersion(config, options) {
|
|
|
716
720
|
const cleanedTag = semver2.clean(latestTag) || latestTag;
|
|
717
721
|
const currentVersion = semver2.clean(cleanedTag.replace(new RegExp(`^${escapedTagPattern}`), "")) || "0.0.0";
|
|
718
722
|
log(`Applying ${branchVersionType} bump based on branch pattern`, "debug");
|
|
719
|
-
return
|
|
723
|
+
return bumpVersion(currentVersion, branchVersionType, normalizedPrereleaseId);
|
|
720
724
|
}
|
|
721
725
|
}
|
|
722
726
|
try {
|
|
@@ -753,7 +757,7 @@ async function calculateVersion(config, options) {
|
|
|
753
757
|
return "";
|
|
754
758
|
}
|
|
755
759
|
const currentVersion = semver2.clean(latestTag.replace(new RegExp(`^${escapedTagPattern}`), "")) || "0.0.0";
|
|
756
|
-
return
|
|
760
|
+
return bumpVersion(currentVersion, releaseTypeFromCommits, normalizedPrereleaseId);
|
|
757
761
|
} catch (error) {
|
|
758
762
|
log(`Failed to calculate version for ${name || "project"}`, "error");
|
|
759
763
|
console.error(error);
|
|
@@ -797,11 +801,15 @@ function calculateNextVersion(version, manifestType, name, releaseType, prerelea
|
|
|
797
801
|
`No tags found for ${name || "package"}, using ${manifestType} version: ${version} as base`,
|
|
798
802
|
"info"
|
|
799
803
|
);
|
|
800
|
-
if (STANDARD_BUMP_TYPES.includes(releaseType) && semver2.prerelease(version)) {
|
|
801
|
-
log(
|
|
804
|
+
if (STANDARD_BUMP_TYPES.includes(releaseType) && (semver2.prerelease(version) || prereleaseIdentifier)) {
|
|
805
|
+
log(
|
|
806
|
+
prereleaseIdentifier ? `Creating prerelease version with identifier '${prereleaseIdentifier}' using ${releaseType}` : `Cleaning prerelease identifier from ${version} for ${releaseType} bump`,
|
|
807
|
+
"debug"
|
|
808
|
+
);
|
|
802
809
|
return bumpVersion(version, releaseType, prereleaseIdentifier);
|
|
803
810
|
}
|
|
804
|
-
|
|
811
|
+
const result = bumpVersion(version, releaseType, prereleaseIdentifier);
|
|
812
|
+
return result || initialVersion;
|
|
805
813
|
}
|
|
806
814
|
|
|
807
815
|
// src/package/packageProcessor.ts
|
|
@@ -968,8 +976,10 @@ var PackageProcessor = class {
|
|
|
968
976
|
const packageNames = updatedPackagesInfo.map((p) => p.name).join(", ");
|
|
969
977
|
const representativeVersion = ((_a = updatedPackagesInfo[0]) == null ? void 0 : _a.version) || "multiple";
|
|
970
978
|
let commitMessage = this.commitMessageTemplate || "chore(release): publish packages";
|
|
971
|
-
|
|
972
|
-
|
|
979
|
+
const placeholderRegex = /\$\{[^}]+\}/;
|
|
980
|
+
if (updatedPackagesInfo.length === 1 && placeholderRegex.test(commitMessage)) {
|
|
981
|
+
const packageName = updatedPackagesInfo[0].name;
|
|
982
|
+
commitMessage = formatCommitMessage(commitMessage, representativeVersion, packageName);
|
|
973
983
|
} else {
|
|
974
984
|
commitMessage = `chore(release): ${packageNames} ${representativeVersion}`;
|
|
975
985
|
}
|
|
@@ -1137,7 +1147,7 @@ function createSingleStrategy(config) {
|
|
|
1137
1147
|
tagTemplate,
|
|
1138
1148
|
packageTagTemplate
|
|
1139
1149
|
);
|
|
1140
|
-
const formattedCommitMessage = formatCommitMessage(commitMessage, nextVersion);
|
|
1150
|
+
const formattedCommitMessage = formatCommitMessage(commitMessage, nextVersion, packageName);
|
|
1141
1151
|
await createGitCommitAndTag(
|
|
1142
1152
|
[packageJsonPath],
|
|
1143
1153
|
nextTag,
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"type": "string",
|
|
85
85
|
"minLength": 1,
|
|
86
86
|
"default": "chore(release): v${version}",
|
|
87
|
-
"description": "Template for commit messages"
|
|
87
|
+
"description": "Template for commit messages. Available variables: ${version}, ${packageName}, ${scope}"
|
|
88
88
|
},
|
|
89
89
|
"prereleaseIdentifier": {
|
|
90
90
|
"type": "string",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "package-versioner",
|
|
3
3
|
"description": "A lightweight yet powerful CLI tool for automated semantic versioning based on Git history and conventional commits.",
|
|
4
|
-
"version": "0.6.
|
|
4
|
+
"version": "0.6.4",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"module": "./dist/index.mjs",
|