package-versioner 0.5.2 → 0.5.3

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
@@ -334,7 +334,7 @@ function formatTag(version, versionPrefix, packageName, tagTemplate = "${prefix}
334
334
  const template = packageName ? packageTagTemplate : tagTemplate;
335
335
  return createTemplateString(template, variables);
336
336
  }
337
- function formatTagPrefix(versionPrefix, scope) {
337
+ function formatVersionPrefix(versionPrefix, scope) {
338
338
  if (!versionPrefix) return "";
339
339
  const cleanPrefix = versionPrefix.replace(/\/$/, "");
340
340
  if (scope) {
@@ -395,12 +395,12 @@ async function lastMergeBranchName(branches, baseBranch) {
395
395
  return null;
396
396
  }
397
397
  }
398
- async function getLatestTagForPackage(packageName, tagPrefix) {
398
+ async function getLatestTagForPackage(packageName, versionPrefix) {
399
399
  try {
400
400
  const allTags = await (0, import_git_semver_tags.getSemverTags)({
401
- tagPrefix
401
+ tagPrefix: versionPrefix
402
402
  });
403
- const packageTagPattern = tagPrefix ? new RegExp(`^${escapeRegExp(tagPrefix)}${escapeRegExp(packageName)}@`) : new RegExp(`^${escapeRegExp(packageName)}@`);
403
+ const packageTagPattern = versionPrefix ? new RegExp(`^${escapeRegExp(versionPrefix)}${escapeRegExp(packageName)}@`) : new RegExp(`^${escapeRegExp(packageName)}@`);
404
404
  const packageTags = allTags.filter((tag) => packageTagPattern.test(tag));
405
405
  return packageTags[0] || "";
406
406
  } catch (error) {
@@ -446,11 +446,11 @@ var import_node_process3 = require("process");
446
446
  var import_conventional_recommended_bump = require("conventional-recommended-bump");
447
447
  var import_semver = __toESM(require("semver"), 1);
448
448
  var STANDARD_BUMP_TYPES = ["major", "minor", "patch"];
449
- async function calculateVersion(config, options, forcedType, configPrereleaseIdentifier) {
449
+ async function calculateVersion(config, options) {
450
450
  const { latestTag, type, path: pkgPath, name, branchPattern } = options;
451
451
  const { preset } = config;
452
- const tagPrefix = options.versionPrefix || config.versionPrefix || "v";
453
- const prereleaseIdentifier = options.prereleaseIdentifier || configPrereleaseIdentifier;
452
+ const originalPrefix = options.versionPrefix || "";
453
+ const prereleaseIdentifier = options.prereleaseIdentifier || config.prereleaseIdentifier;
454
454
  const initialVersion = prereleaseIdentifier ? `0.0.1-${prereleaseIdentifier}` : "0.0.1";
455
455
  const hasNoTags = !latestTag || latestTag === "";
456
456
  function determineTagSearchPattern(packageName, prefix) {
@@ -459,9 +459,9 @@ async function calculateVersion(config, options, forcedType, configPrereleaseIde
459
459
  }
460
460
  return prefix;
461
461
  }
462
- const tagSearchPattern = determineTagSearchPattern(name, tagPrefix);
462
+ const tagSearchPattern = determineTagSearchPattern(name, originalPrefix);
463
463
  const escapedTagPattern = escapeRegExp(tagSearchPattern);
464
- const specifiedType = forcedType || type;
464
+ const specifiedType = type;
465
465
  if (specifiedType) {
466
466
  if (hasNoTags) {
467
467
  return getPackageVersionFallback(
@@ -681,7 +681,7 @@ var PackageProcessor = class {
681
681
  for (const pkg of pkgsToConsider) {
682
682
  const name = pkg.packageJson.name;
683
683
  const pkgPath = pkg.dir;
684
- const formattedPrefix = formatTagPrefix(this.versionPrefix);
684
+ const formattedPrefix = formatVersionPrefix(this.versionPrefix);
685
685
  let latestTagResult = "";
686
686
  try {
687
687
  latestTagResult = await getLatestTagForPackage(name, this.versionPrefix);
@@ -713,7 +713,7 @@ var PackageProcessor = class {
713
713
  branchPattern: this.config.branchPattern,
714
714
  baseBranch: this.config.baseBranch,
715
715
  prereleaseIdentifier: this.config.prereleaseIdentifier,
716
- type: this.config.forceType
716
+ type: this.config.type
717
717
  });
718
718
  if (!nextVersion) {
719
719
  continue;
@@ -809,14 +809,15 @@ function createSyncedStrategy(config) {
809
809
  dryRun,
810
810
  skipHooks
811
811
  } = config;
812
- const formattedPrefix = formatTagPrefix(versionPrefix || "v");
812
+ const formattedPrefix = formatVersionPrefix(versionPrefix || "v");
813
813
  const latestTag = await getLatestTag();
814
814
  const nextVersion = await calculateVersion(config, {
815
815
  latestTag,
816
816
  versionPrefix: formattedPrefix,
817
817
  branchPattern,
818
818
  baseBranch,
819
- prereleaseIdentifier
819
+ prereleaseIdentifier,
820
+ type: config.type
820
821
  });
821
822
  if (!nextVersion) {
822
823
  log("No version change needed", "info");
@@ -887,7 +888,7 @@ function createSingleStrategy(config) {
887
888
  throw createVersionError("PACKAGE_NOT_FOUND" /* PACKAGE_NOT_FOUND */, packageName);
888
889
  }
889
890
  const pkgPath = pkg.dir;
890
- const formattedPrefix = formatTagPrefix(versionPrefix || "v");
891
+ const formattedPrefix = formatVersionPrefix(versionPrefix || "v");
891
892
  let latestTagResult = await getLatestTagForPackage(packageName, formattedPrefix);
892
893
  if (!latestTagResult) {
893
894
  const globalTagResult = await getLatestTag();
@@ -900,7 +901,8 @@ function createSingleStrategy(config) {
900
901
  latestTag,
901
902
  versionPrefix: formattedPrefix,
902
903
  path: pkgPath,
903
- name: packageName
904
+ name: packageName,
905
+ type: config.type
904
906
  });
905
907
  } catch (error) {
906
908
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -957,11 +959,12 @@ function createAsyncStrategy(config) {
957
959
  skipHooks: config.skipHooks || false,
958
960
  getLatestTag: dependencies.getLatestTag,
959
961
  fullConfig: config,
962
+ // Extract common version configuration properties
960
963
  config: {
961
964
  branchPattern: config.branchPattern || [],
962
965
  baseBranch: config.baseBranch || "main",
963
966
  prereleaseIdentifier: config.prereleaseIdentifier,
964
- forceType: config.forceType
967
+ type: config.type
965
968
  }
966
969
  };
967
970
  const packageProcessor = new PackageProcessor(processorOptions);
@@ -1092,7 +1095,7 @@ async function run() {
1092
1095
  ).version(process.env.npm_package_version || "0.0.0").option(
1093
1096
  "-c, --config <path>",
1094
1097
  "Path to config file (defaults to version.config.json in current directory)"
1095
- ).option("-d, --dry-run", "Dry run (no changes made)", false).option("-b, --bump <type>", "Force specific bump type (patch|minor|major)").option("-p, --prerelease [identifier]", "Create prerelease version").option("-s, --synced", "Force synchronized versioning across all packages").option("-j, --json", "Output results as JSON", false).option("-t, --target <packages>", "Comma-delimited list of package names to target").parse(process.argv);
1098
+ ).option("-d, --dry-run", "Dry run (no changes made)", false).option("-b, --bump <type>", "Specify bump type (patch|minor|major)").option("-p, --prerelease [identifier]", "Create prerelease version").option("-s, --synced", "Use synchronized versioning across all packages").option("-j, --json", "Output results as JSON", false).option("-t, --target <packages>", "Comma-delimited list of package names to target").parse(process.argv);
1096
1099
  const options = program.opts();
1097
1100
  if (options.json) {
1098
1101
  enableJsonOutput(options.dryRun);
@@ -1102,7 +1105,7 @@ async function run() {
1102
1105
  log(`Loaded configuration from ${options.config || "version.config.json"}`, "info");
1103
1106
  if (options.dryRun) config.dryRun = true;
1104
1107
  if (options.synced) config.synced = true;
1105
- if (options.bump) config.forceType = options.bump;
1108
+ if (options.bump) config.type = options.bump;
1106
1109
  if (options.prerelease)
1107
1110
  config.prereleaseIdentifier = options.prerelease === true ? "rc" : options.prerelease;
1108
1111
  const cliTargets = options.target ? options.target.split(",").map((t) => t.trim()) : [];
package/dist/index.js CHANGED
@@ -311,7 +311,7 @@ function formatTag(version, versionPrefix, packageName, tagTemplate = "${prefix}
311
311
  const template = packageName ? packageTagTemplate : tagTemplate;
312
312
  return createTemplateString(template, variables);
313
313
  }
314
- function formatTagPrefix(versionPrefix, scope) {
314
+ function formatVersionPrefix(versionPrefix, scope) {
315
315
  if (!versionPrefix) return "";
316
316
  const cleanPrefix = versionPrefix.replace(/\/$/, "");
317
317
  if (scope) {
@@ -372,12 +372,12 @@ async function lastMergeBranchName(branches, baseBranch) {
372
372
  return null;
373
373
  }
374
374
  }
375
- async function getLatestTagForPackage(packageName, tagPrefix) {
375
+ async function getLatestTagForPackage(packageName, versionPrefix) {
376
376
  try {
377
377
  const allTags = await getSemverTags({
378
- tagPrefix
378
+ tagPrefix: versionPrefix
379
379
  });
380
- const packageTagPattern = tagPrefix ? new RegExp(`^${escapeRegExp(tagPrefix)}${escapeRegExp(packageName)}@`) : new RegExp(`^${escapeRegExp(packageName)}@`);
380
+ const packageTagPattern = versionPrefix ? new RegExp(`^${escapeRegExp(versionPrefix)}${escapeRegExp(packageName)}@`) : new RegExp(`^${escapeRegExp(packageName)}@`);
381
381
  const packageTags = allTags.filter((tag) => packageTagPattern.test(tag));
382
382
  return packageTags[0] || "";
383
383
  } catch (error) {
@@ -422,11 +422,11 @@ import { cwd as cwd3 } from "node:process";
422
422
  import { Bumper } from "conventional-recommended-bump";
423
423
  import semver from "semver";
424
424
  var STANDARD_BUMP_TYPES = ["major", "minor", "patch"];
425
- async function calculateVersion(config, options, forcedType, configPrereleaseIdentifier) {
425
+ async function calculateVersion(config, options) {
426
426
  const { latestTag, type, path: pkgPath, name, branchPattern } = options;
427
427
  const { preset } = config;
428
- const tagPrefix = options.versionPrefix || config.versionPrefix || "v";
429
- const prereleaseIdentifier = options.prereleaseIdentifier || configPrereleaseIdentifier;
428
+ const originalPrefix = options.versionPrefix || "";
429
+ const prereleaseIdentifier = options.prereleaseIdentifier || config.prereleaseIdentifier;
430
430
  const initialVersion = prereleaseIdentifier ? `0.0.1-${prereleaseIdentifier}` : "0.0.1";
431
431
  const hasNoTags = !latestTag || latestTag === "";
432
432
  function determineTagSearchPattern(packageName, prefix) {
@@ -435,9 +435,9 @@ async function calculateVersion(config, options, forcedType, configPrereleaseIde
435
435
  }
436
436
  return prefix;
437
437
  }
438
- const tagSearchPattern = determineTagSearchPattern(name, tagPrefix);
438
+ const tagSearchPattern = determineTagSearchPattern(name, originalPrefix);
439
439
  const escapedTagPattern = escapeRegExp(tagSearchPattern);
440
- const specifiedType = forcedType || type;
440
+ const specifiedType = type;
441
441
  if (specifiedType) {
442
442
  if (hasNoTags) {
443
443
  return getPackageVersionFallback(
@@ -657,7 +657,7 @@ var PackageProcessor = class {
657
657
  for (const pkg of pkgsToConsider) {
658
658
  const name = pkg.packageJson.name;
659
659
  const pkgPath = pkg.dir;
660
- const formattedPrefix = formatTagPrefix(this.versionPrefix);
660
+ const formattedPrefix = formatVersionPrefix(this.versionPrefix);
661
661
  let latestTagResult = "";
662
662
  try {
663
663
  latestTagResult = await getLatestTagForPackage(name, this.versionPrefix);
@@ -689,7 +689,7 @@ var PackageProcessor = class {
689
689
  branchPattern: this.config.branchPattern,
690
690
  baseBranch: this.config.baseBranch,
691
691
  prereleaseIdentifier: this.config.prereleaseIdentifier,
692
- type: this.config.forceType
692
+ type: this.config.type
693
693
  });
694
694
  if (!nextVersion) {
695
695
  continue;
@@ -785,14 +785,15 @@ function createSyncedStrategy(config) {
785
785
  dryRun,
786
786
  skipHooks
787
787
  } = config;
788
- const formattedPrefix = formatTagPrefix(versionPrefix || "v");
788
+ const formattedPrefix = formatVersionPrefix(versionPrefix || "v");
789
789
  const latestTag = await getLatestTag();
790
790
  const nextVersion = await calculateVersion(config, {
791
791
  latestTag,
792
792
  versionPrefix: formattedPrefix,
793
793
  branchPattern,
794
794
  baseBranch,
795
- prereleaseIdentifier
795
+ prereleaseIdentifier,
796
+ type: config.type
796
797
  });
797
798
  if (!nextVersion) {
798
799
  log("No version change needed", "info");
@@ -863,7 +864,7 @@ function createSingleStrategy(config) {
863
864
  throw createVersionError("PACKAGE_NOT_FOUND" /* PACKAGE_NOT_FOUND */, packageName);
864
865
  }
865
866
  const pkgPath = pkg.dir;
866
- const formattedPrefix = formatTagPrefix(versionPrefix || "v");
867
+ const formattedPrefix = formatVersionPrefix(versionPrefix || "v");
867
868
  let latestTagResult = await getLatestTagForPackage(packageName, formattedPrefix);
868
869
  if (!latestTagResult) {
869
870
  const globalTagResult = await getLatestTag();
@@ -876,7 +877,8 @@ function createSingleStrategy(config) {
876
877
  latestTag,
877
878
  versionPrefix: formattedPrefix,
878
879
  path: pkgPath,
879
- name: packageName
880
+ name: packageName,
881
+ type: config.type
880
882
  });
881
883
  } catch (error) {
882
884
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -933,11 +935,12 @@ function createAsyncStrategy(config) {
933
935
  skipHooks: config.skipHooks || false,
934
936
  getLatestTag: dependencies.getLatestTag,
935
937
  fullConfig: config,
938
+ // Extract common version configuration properties
936
939
  config: {
937
940
  branchPattern: config.branchPattern || [],
938
941
  baseBranch: config.baseBranch || "main",
939
942
  prereleaseIdentifier: config.prereleaseIdentifier,
940
- forceType: config.forceType
943
+ type: config.type
941
944
  }
942
945
  };
943
946
  const packageProcessor = new PackageProcessor(processorOptions);
@@ -1068,7 +1071,7 @@ async function run() {
1068
1071
  ).version(process.env.npm_package_version || "0.0.0").option(
1069
1072
  "-c, --config <path>",
1070
1073
  "Path to config file (defaults to version.config.json in current directory)"
1071
- ).option("-d, --dry-run", "Dry run (no changes made)", false).option("-b, --bump <type>", "Force specific bump type (patch|minor|major)").option("-p, --prerelease [identifier]", "Create prerelease version").option("-s, --synced", "Force synchronized versioning across all packages").option("-j, --json", "Output results as JSON", false).option("-t, --target <packages>", "Comma-delimited list of package names to target").parse(process.argv);
1074
+ ).option("-d, --dry-run", "Dry run (no changes made)", false).option("-b, --bump <type>", "Specify bump type (patch|minor|major)").option("-p, --prerelease [identifier]", "Create prerelease version").option("-s, --synced", "Use synchronized versioning across all packages").option("-j, --json", "Output results as JSON", false).option("-t, --target <packages>", "Comma-delimited list of package names to target").parse(process.argv);
1072
1075
  const options = program.opts();
1073
1076
  if (options.json) {
1074
1077
  enableJsonOutput(options.dryRun);
@@ -1078,7 +1081,7 @@ async function run() {
1078
1081
  log(`Loaded configuration from ${options.config || "version.config.json"}`, "info");
1079
1082
  if (options.dryRun) config.dryRun = true;
1080
1083
  if (options.synced) config.synced = true;
1081
- if (options.bump) config.forceType = options.bump;
1084
+ if (options.bump) config.type = options.bump;
1082
1085
  if (options.prerelease)
1083
1086
  config.prereleaseIdentifier = options.prerelease === true ? "rc" : options.prerelease;
1084
1087
  const cliTargets = options.target ? options.target.split(",").map((t) => t.trim()) : [];
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.5.2",
4
+ "version": "0.5.3",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.mjs",