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 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, { version, scope });
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 import_semver2.default.inc(currentVersion, specifiedType, normalizedPrereleaseId) || "";
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 import_semver2.default.inc(currentVersion, branchVersionType, void 0) || "";
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 import_semver2.default.inc(currentVersion, releaseTypeFromCommits, normalizedPrereleaseId) || "";
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(`Cleaning prerelease identifier from ${version} for ${releaseType} bump`, "debug");
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
- return import_semver2.default.inc(version, releaseType, prereleaseIdentifier) || initialVersion;
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
- if (updatedPackagesInfo.length === 1 && commitMessage.includes("${version}")) {
1007
- commitMessage = formatCommitMessage(commitMessage, representativeVersion);
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, { version, scope });
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 semver2.inc(currentVersion, specifiedType, normalizedPrereleaseId) || "";
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 semver2.inc(currentVersion, branchVersionType, void 0) || "";
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 semver2.inc(currentVersion, releaseTypeFromCommits, normalizedPrereleaseId) || "";
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(`Cleaning prerelease identifier from ${version} for ${releaseType} bump`, "debug");
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
- return semver2.inc(version, releaseType, prereleaseIdentifier) || initialVersion;
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
- if (updatedPackagesInfo.length === 1 && commitMessage.includes("${version}")) {
972
- commitMessage = formatCommitMessage(commitMessage, representativeVersion);
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.2",
4
+ "version": "0.6.4",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.mjs",