fork-version 4.1.1 → 4.1.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/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # Fork Version
2
2
 
3
+ ## [4.1.4](https://github.com/eglavin/fork-version/compare/v4.1.3...v4.1.4) (2026-03-08)
4
+
5
+
6
+ ### Refactor
7
+
8
+ * remove glob package in favour of builtin node fs glob ([011bced](https://github.com/eglavin/fork-version/commit/011bced7f8a35f9a61a0abfe42d0034ee25d5945))
9
+
10
+
11
+ ## [4.1.3](https://github.com/eglavin/fork-version/compare/v4.1.2...v4.1.3) (2026-03-08)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * mock out styleText for testing logger class ([40b06f6](https://github.com/eglavin/fork-version/commit/40b06f6339a857b5ab28839f2451445684bdd91e))
17
+
18
+
19
+ ## [4.1.2](https://github.com/eglavin/fork-version/compare/v4.1.1...v4.1.2) (2026-03-07)
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * dont log when skipping ([0e83519](https://github.com/eglavin/fork-version/commit/0e83519480fcf0739fbefdbf8423e35927f7d5ce))
25
+
26
+
27
+ ### Refactor
28
+
29
+ * add colour to non standard output ([809f7ab](https://github.com/eglavin/fork-version/commit/809f7ab8a464eb861511c137c510d60986c5b941))
30
+
31
+
3
32
  ## [4.1.1](https://github.com/eglavin/fork-version/compare/v4.1.0...v4.1.1) (2026-03-07)
4
33
 
5
34
 
@@ -4,11 +4,12 @@ var zod = require('zod');
4
4
  var child_process = require('child_process');
5
5
  var semver = require('semver');
6
6
  var path = require('path');
7
- var glob = require('glob');
7
+ var promises = require('fs/promises');
8
8
  var conventionalChangelogConfigSpec = require('conventional-changelog-config-spec');
9
9
  var fs = require('fs');
10
10
  var JoyCon = require('joycon');
11
11
  var bundleRequire = require('bundle-require');
12
+ var util = require('util');
12
13
  var jsoncParser = require('jsonc-parser');
13
14
  var yaml = require('yaml');
14
15
  var cheerio = require('cheerio/slim');
@@ -825,13 +826,19 @@ async function getUserConfig(cliArguments) {
825
826
  ...configFile,
826
827
  ...cliArguments.flags
827
828
  };
828
- let globResults = [];
829
+ const globResults = [];
829
830
  if (mergedConfig.glob) {
830
- globResults = await glob.glob(mergedConfig.glob, {
831
+ const IGNORE_LIST = /* @__PURE__ */ new Set(["node_modules", ".git"]);
832
+ const entries = promises.glob(mergedConfig.glob, {
831
833
  cwd,
832
- ignore: ["node_modules/**"],
833
- nodir: true
834
+ withFileTypes: true,
835
+ exclude: (entry) => IGNORE_LIST.has(entry.name)
834
836
  });
837
+ for await (const entry of entries) {
838
+ if (entry.isFile()) {
839
+ globResults.push(path.join(entry.parentPath, entry.name));
840
+ }
841
+ }
835
842
  }
836
843
  const files = mergeFiles(configFile?.files, cliArguments.flags.files, globResults);
837
844
  const detectedGitHost = await detectGitHost(cwd);
@@ -863,8 +870,6 @@ async function getUserConfig(cliArguments) {
863
870
  changelogPresetConfig
864
871
  };
865
872
  }
866
-
867
- // src/services/logger.ts
868
873
  var Logger = class {
869
874
  constructor(config) {
870
875
  this.config = config;
@@ -872,27 +877,36 @@ var Logger = class {
872
877
  this.warn = this.warn.bind(this);
873
878
  this.error = this.error.bind(this);
874
879
  this.debug = this.debug.bind(this);
880
+ this.skipping = this.skipping.bind(this);
875
881
  this.disableLogs = this.config.silent;
876
882
  }
877
883
  disableLogs = false;
878
- log(...messages) {
884
+ log(message) {
879
885
  if (!this.disableLogs) {
880
- console.log(...messages);
886
+ console.log(message);
881
887
  }
882
888
  }
883
- warn(...messages) {
889
+ warn(message) {
884
890
  if (!this.disableLogs) {
885
- console.warn(...messages);
891
+ console.warn(util.styleText("yellowBright", message));
886
892
  }
887
893
  }
888
- error(...messages) {
894
+ error(message) {
889
895
  if (!this.disableLogs) {
890
- console.error(...messages);
896
+ console.error(util.styleText("redBright", message));
891
897
  }
892
898
  }
893
- debug(...messages) {
899
+ debug(message, ...optionalParams) {
894
900
  if (this.config.debug && !this.disableLogs) {
895
- console.debug(...messages);
901
+ console.debug(util.styleText("cyanBright", message));
902
+ if (optionalParams.length > 0) {
903
+ console.debug(...optionalParams);
904
+ }
905
+ }
906
+ }
907
+ skipping(message) {
908
+ if (!this.disableLogs) {
909
+ console.log(util.styleText("magenta", message));
896
910
  }
897
911
  }
898
912
  };
@@ -903,15 +917,13 @@ function fileExists(filePath) {
903
917
  return false;
904
918
  }
905
919
  }
906
-
907
- // src/files/json-package.ts
908
920
  var JSONPackage = class {
909
- constructor(config, logger) {
910
- this.config = config;
911
- this.logger = logger;
921
+ #logger;
922
+ constructor(logger) {
923
+ this.#logger = logger;
912
924
  }
913
925
  /** Options for parsing JSON and JSONC files. */
914
- PARSE_OPTIONS = {
926
+ #jsoncOptions = {
915
927
  allowEmptyContent: false,
916
928
  allowTrailingComma: true,
917
929
  disallowComments: false
@@ -923,42 +935,32 @@ var JSONPackage = class {
923
935
  * @param newString string to set the value to
924
936
  * @returns the JSON or JSONC string with the value set
925
937
  */
926
- setStringInJsonc(jsonc, jsonPath, newString) {
938
+ #setStringInJsonc(jsonc, jsonPath, newString) {
927
939
  const edits = jsoncParser.modify(jsonc, jsonPath, newString, {});
928
940
  return jsoncParser.applyEdits(jsonc, edits);
929
941
  }
930
- read(fileName) {
931
- const filePath = path.resolve(this.config.path, fileName);
932
- if (fileExists(filePath)) {
933
- const fileContents = fs.readFileSync(filePath, "utf8");
934
- const parseErrors = [];
935
- const parsedJson = jsoncParser.parse(fileContents, parseErrors, this.PARSE_OPTIONS);
936
- if (parseErrors.length) {
937
- this.logger.warn(`[File Manager] Unable to parse JSON: ${fileName}`, parseErrors);
938
- return void 0;
939
- }
940
- if (parsedJson?.version) {
941
- return {
942
- name: fileName,
943
- path: filePath,
944
- version: parsedJson.version,
945
- isPrivate: typeof parsedJson?.private === "boolean" ? parsedJson.private : true
946
- };
947
- }
948
- this.logger.warn(`[File Manager] Unable to determine json version: ${fileName}`);
942
+ read(filePath) {
943
+ const fileName = path.basename(filePath);
944
+ const fileContents = fs.readFileSync(filePath, "utf8");
945
+ const parseErrors = [];
946
+ const parsedJson = jsoncParser.parse(fileContents, parseErrors, this.#jsoncOptions);
947
+ if (parsedJson?.version && parseErrors.length === 0) {
948
+ return {
949
+ name: fileName,
950
+ path: filePath,
951
+ version: parsedJson.version,
952
+ isPrivate: typeof parsedJson?.private === "boolean" ? parsedJson.private : true
953
+ };
949
954
  }
955
+ this.#logger.warn(`[File Manager] Unable to determine json version: ${fileName}`);
950
956
  }
951
957
  write(fileState, newVersion) {
952
958
  let fileContents = fs.readFileSync(fileState.path, "utf8");
953
959
  const parseErrors = [];
954
- const parsedJson = jsoncParser.parse(fileContents, parseErrors, this.PARSE_OPTIONS);
955
- if (parseErrors.length) {
956
- this.logger.warn(`[File Manager] Unable to parse JSON: ${fileState.path}`, parseErrors);
957
- return;
958
- }
959
- fileContents = this.setStringInJsonc(fileContents, ["version"], newVersion);
960
+ const parsedJson = jsoncParser.parse(fileContents, parseErrors, this.#jsoncOptions);
961
+ fileContents = this.#setStringInJsonc(fileContents, ["version"], newVersion);
960
962
  if (parsedJson?.packages?.[""]) {
961
- fileContents = this.setStringInJsonc(fileContents, ["packages", "", "version"], newVersion);
963
+ fileContents = this.#setStringInJsonc(fileContents, ["packages", "", "version"], newVersion);
962
964
  }
963
965
  fs.writeFileSync(fileState.path, fileContents, "utf8");
964
966
  }
@@ -967,16 +969,16 @@ var JSONPackage = class {
967
969
  }
968
970
  };
969
971
  var YAMLPackage = class {
970
- constructor(config, logger) {
971
- this.config = config;
972
- this.logger = logger;
972
+ #logger;
973
+ constructor(logger) {
974
+ this.#logger = logger;
973
975
  }
974
976
  /**
975
977
  * If the version is returned with a "+" symbol in the value then the version might be from a
976
978
  * flutter `pubspec.yaml` file, if so we want to retain the input builderNumber by splitting it
977
979
  * and joining it again later.
978
980
  */
979
- handleBuildNumber(fileVersion) {
981
+ #handleBuildNumber(fileVersion) {
980
982
  const [version, builderNumber] = fileVersion.split("+");
981
983
  if (/^\d+$/.test(builderNumber)) {
982
984
  return {
@@ -988,22 +990,20 @@ var YAMLPackage = class {
988
990
  version: fileVersion
989
991
  };
990
992
  }
991
- read(fileName) {
992
- const filePath = path.resolve(this.config.path, fileName);
993
- if (fileExists(filePath)) {
994
- const fileContents = fs.readFileSync(filePath, "utf-8");
995
- const fileVersion = yaml.parse(fileContents)?.version;
996
- if (fileVersion) {
997
- const parsedVersion = this.handleBuildNumber(fileVersion);
998
- return {
999
- name: fileName,
1000
- path: filePath,
1001
- version: parsedVersion.version || "",
1002
- builderNumber: parsedVersion.builderNumber ?? void 0
1003
- };
1004
- }
993
+ read(filePath) {
994
+ const fileName = path.basename(filePath);
995
+ const fileContents = fs.readFileSync(filePath, "utf-8");
996
+ const fileVersion = yaml.parse(fileContents)?.version;
997
+ if (fileVersion) {
998
+ const parsedVersion = this.#handleBuildNumber(fileVersion);
999
+ return {
1000
+ name: fileName,
1001
+ path: filePath,
1002
+ version: parsedVersion.version || "",
1003
+ builderNumber: parsedVersion.builderNumber ?? void 0
1004
+ };
1005
1005
  }
1006
- this.logger.warn(`[File Manager] Unable to determine yaml version: ${fileName}`);
1006
+ this.#logger.warn(`[File Manager] Unable to determine yaml version: ${fileName}`);
1007
1007
  }
1008
1008
  write(fileState, newVersion) {
1009
1009
  const fileContents = fs.readFileSync(fileState.path, "utf8");
@@ -1020,21 +1020,21 @@ var YAMLPackage = class {
1020
1020
  }
1021
1021
  };
1022
1022
  var PlainText = class {
1023
- constructor(config, logger) {
1024
- this.config = config;
1025
- this.logger = logger;
1023
+ #logger;
1024
+ constructor(logger) {
1025
+ this.#logger = logger;
1026
1026
  }
1027
- read(fileName) {
1028
- const filePath = path.resolve(this.config.path, fileName);
1029
- if (fileExists(filePath)) {
1030
- const fileContents = fs.readFileSync(filePath, "utf8");
1027
+ read(filePath) {
1028
+ const fileName = path.basename(filePath);
1029
+ const fileContents = fs.readFileSync(filePath, "utf8").trim();
1030
+ if (fileContents) {
1031
1031
  return {
1032
1032
  name: fileName,
1033
1033
  path: filePath,
1034
- version: fileContents || ""
1034
+ version: fileContents
1035
1035
  };
1036
1036
  }
1037
- this.logger.warn(`[File Manager] Unable to determine plain text version: ${fileName}`);
1037
+ this.#logger.warn(`[File Manager] Unable to determine plain text version: ${fileName}`);
1038
1038
  }
1039
1039
  write(fileState, newVersion) {
1040
1040
  fs.writeFileSync(fileState.path, newVersion, "utf8");
@@ -1044,35 +1044,31 @@ var PlainText = class {
1044
1044
  }
1045
1045
  };
1046
1046
  var MSBuildProject = class {
1047
- constructor(config, logger) {
1048
- this.config = config;
1049
- this.logger = logger;
1050
- }
1051
- read(fileName) {
1052
- const filePath = path.resolve(this.config.path, fileName);
1053
- if (fileExists(filePath)) {
1054
- const fileContents = fs.readFileSync(filePath, "utf8");
1055
- const $ = cheerio__namespace.load(fileContents, {
1056
- xmlMode: true,
1057
- xml: { decodeEntities: false }
1058
- });
1059
- const version = $("Project > PropertyGroup > Version").text();
1060
- if (version) {
1061
- return {
1062
- name: fileName,
1063
- path: filePath,
1064
- version
1065
- };
1066
- }
1067
- this.logger.warn(`[File Manager] Unable to determine ms-build version: ${fileName}`);
1047
+ #logger;
1048
+ constructor(logger) {
1049
+ this.#logger = logger;
1050
+ }
1051
+ #cheerioOptions = {
1052
+ xmlMode: true,
1053
+ xml: { decodeEntities: false }
1054
+ };
1055
+ read(filePath) {
1056
+ const fileName = path.basename(filePath);
1057
+ const fileContents = fs.readFileSync(filePath, "utf8");
1058
+ const $ = cheerio__namespace.load(fileContents, this.#cheerioOptions);
1059
+ const version = $("Project > PropertyGroup > Version").text();
1060
+ if (version) {
1061
+ return {
1062
+ name: fileName,
1063
+ path: filePath,
1064
+ version
1065
+ };
1068
1066
  }
1067
+ this.#logger.warn(`[File Manager] Unable to determine ms-build version: ${fileName}`);
1069
1068
  }
1070
1069
  write(fileState, newVersion) {
1071
1070
  const fileContents = fs.readFileSync(fileState.path, "utf8");
1072
- const $ = cheerio__namespace.load(fileContents, {
1073
- xmlMode: true,
1074
- xml: { decodeEntities: false }
1075
- });
1071
+ const $ = cheerio__namespace.load(fileContents, this.#cheerioOptions);
1076
1072
  $("Project > PropertyGroup > Version").text(newVersion);
1077
1073
  const updatedContent = $.xml().replaceAll('"/>', '" />');
1078
1074
  fs.writeFileSync(fileState.path, updatedContent, "utf8");
@@ -1084,40 +1080,38 @@ var MSBuildProject = class {
1084
1080
  }
1085
1081
  };
1086
1082
  var ARMBicep = class {
1087
- constructor(config, logger) {
1088
- this.config = config;
1089
- this.logger = logger;
1083
+ #logger;
1084
+ constructor(logger) {
1085
+ this.#logger = logger;
1090
1086
  }
1091
1087
  /** https://regex101.com/r/Lriphb/2 */
1092
- metadataRegex = /(metadata contentVersion *= *['"])(?<version>[^'"]+)(['"])/;
1088
+ #metadataRegex = /(metadata contentVersion *= *['"])(?<version>[^'"]+)(['"])/;
1093
1089
  /** https://regex101.com/r/iKCTF9/1 */
1094
- varRegex = /(var contentVersion(?: string)? *= *['"])(?<version>[^'"]+)(['"])/;
1095
- read(fileName) {
1096
- const filePath = path.resolve(this.config.path, fileName);
1097
- if (fileExists(filePath)) {
1098
- const fileContents = fs.readFileSync(filePath, "utf8");
1099
- const metadataMatch = this.metadataRegex.exec(fileContents);
1100
- const varMatch = this.varRegex.exec(fileContents);
1101
- if (metadataMatch?.groups?.version && varMatch?.groups?.version) {
1102
- return {
1103
- name: fileName,
1104
- path: filePath,
1105
- version: metadataMatch.groups.version
1106
- };
1107
- }
1108
- if (!metadataMatch) {
1109
- this.logger.warn(
1110
- `[File Manager] Missing 'metadata contentVersion' in bicep file: ${fileName}`
1111
- );
1112
- }
1113
- if (!varMatch) {
1114
- this.logger.warn(`[File Manager] Missing 'var contentVersion' in bicep file: ${fileName}`);
1115
- }
1090
+ #varRegex = /(var contentVersion(?: string)? *= *['"])(?<version>[^'"]+)(['"])/;
1091
+ read(filePath) {
1092
+ const fileName = path.basename(filePath);
1093
+ const fileContents = fs.readFileSync(filePath, "utf8");
1094
+ const metadataMatch = this.#metadataRegex.exec(fileContents);
1095
+ const varMatch = this.#varRegex.exec(fileContents);
1096
+ if (metadataMatch?.groups?.version && varMatch?.groups?.version) {
1097
+ return {
1098
+ name: fileName,
1099
+ path: filePath,
1100
+ version: metadataMatch.groups.version
1101
+ };
1102
+ }
1103
+ if (!metadataMatch) {
1104
+ this.#logger.warn(
1105
+ `[File Manager] Missing 'metadata contentVersion' in bicep file: ${fileName}`
1106
+ );
1107
+ }
1108
+ if (!varMatch) {
1109
+ this.#logger.warn(`[File Manager] Missing 'var contentVersion' in bicep file: ${fileName}`);
1116
1110
  }
1117
1111
  }
1118
1112
  write(fileState, newVersion) {
1119
1113
  const fileContents = fs.readFileSync(fileState.path, "utf8");
1120
- const updatedContent = fileContents.replace(this.metadataRegex, `$1${newVersion}$3`).replace(this.varRegex, `$1${newVersion}$3`);
1114
+ const updatedContent = fileContents.replace(this.#metadataRegex, `$1${newVersion}$3`).replace(this.#varRegex, `$1${newVersion}$3`);
1121
1115
  fs.writeFileSync(fileState.path, updatedContent, "utf8");
1122
1116
  }
1123
1117
  isSupportedFile(fileName) {
@@ -1125,35 +1119,31 @@ var ARMBicep = class {
1125
1119
  }
1126
1120
  };
1127
1121
  var InstallShieldISM = class {
1128
- constructor(config, logger) {
1129
- this.config = config;
1130
- this.logger = logger;
1131
- }
1132
- read(fileName) {
1133
- const filePath = path.resolve(this.config.path, fileName);
1134
- if (fileExists(filePath)) {
1135
- const fileContents = fs.readFileSync(filePath, "utf8");
1136
- const $ = cheerio__namespace.load(fileContents, {
1137
- xmlMode: true,
1138
- xml: { decodeEntities: false }
1139
- });
1140
- const version = $('msi > table[name="Property"] > row > td:contains("ProductVersion")').next().text().trim();
1141
- if (version) {
1142
- return {
1143
- name: fileName,
1144
- path: filePath,
1145
- version
1146
- };
1147
- }
1148
- this.logger.warn(`[File Manager] Unable to determine InstallShield ISM version: ${fileName}`);
1122
+ #logger;
1123
+ constructor(logger) {
1124
+ this.#logger = logger;
1125
+ }
1126
+ #cheerioOptions = {
1127
+ xmlMode: true,
1128
+ xml: { decodeEntities: false }
1129
+ };
1130
+ read(filePath) {
1131
+ const fileName = path.basename(filePath);
1132
+ const fileContents = fs.readFileSync(filePath, "utf8");
1133
+ const $ = cheerio__namespace.load(fileContents, this.#cheerioOptions);
1134
+ const version = $('msi > table[name="Property"] > row > td:contains("ProductVersion")').next().text().trim();
1135
+ if (version) {
1136
+ return {
1137
+ name: fileName,
1138
+ path: filePath,
1139
+ version
1140
+ };
1149
1141
  }
1142
+ this.#logger.warn(`[File Manager] Unable to determine InstallShield ISM version: ${fileName}`);
1150
1143
  }
1151
1144
  write(fileState, newVersion) {
1152
1145
  const fileContents = fs.readFileSync(fileState.path, "utf8");
1153
- const $ = cheerio__namespace.load(fileContents, {
1154
- xmlMode: true,
1155
- xml: { decodeEntities: false }
1156
- });
1146
+ const $ = cheerio__namespace.load(fileContents, this.#cheerioOptions);
1157
1147
  const versionCell = $(
1158
1148
  'msi > table[name="Property"] > row > td:contains("ProductVersion")'
1159
1149
  ).next();
@@ -1170,22 +1160,21 @@ var InstallShieldISM = class {
1170
1160
 
1171
1161
  // src/files/file-manager.ts
1172
1162
  var FileManager = class {
1163
+ #config;
1164
+ #logger;
1165
+ #fileManagers = [];
1173
1166
  constructor(config, logger) {
1174
- this.config = config;
1175
- this.logger = logger;
1176
- this.JSONPackage = new JSONPackage(config, logger);
1177
- this.YAMLPackage = new YAMLPackage(config, logger);
1178
- this.PlainText = new PlainText(config, logger);
1179
- this.MSBuildProject = new MSBuildProject(config, logger);
1180
- this.ARMBicep = new ARMBicep(config, logger);
1181
- this.InstallShieldISM = new InstallShieldISM(config, logger);
1182
- }
1183
- JSONPackage;
1184
- YAMLPackage;
1185
- PlainText;
1186
- MSBuildProject;
1187
- ARMBicep;
1188
- InstallShieldISM;
1167
+ this.#config = config;
1168
+ this.#logger = logger;
1169
+ this.#fileManagers = [
1170
+ new JSONPackage(logger),
1171
+ new YAMLPackage(logger),
1172
+ new PlainText(logger),
1173
+ new MSBuildProject(logger),
1174
+ new ARMBicep(logger),
1175
+ new InstallShieldISM(logger)
1176
+ ];
1177
+ }
1189
1178
  /**
1190
1179
  * Get the state from the given file name.
1191
1180
  *
@@ -1199,27 +1188,16 @@ var FileManager = class {
1199
1188
  * { "name": "package.json", "path": "/path/to/package.json", "version": "1.2.3", "isPrivate": true }
1200
1189
  * ```
1201
1190
  */
1202
- read(fileName) {
1203
- const _fileName = fileName.toLowerCase();
1204
- if (this.JSONPackage.isSupportedFile(_fileName)) {
1205
- return this.JSONPackage.read(fileName);
1206
- }
1207
- if (this.YAMLPackage.isSupportedFile(_fileName)) {
1208
- return this.YAMLPackage.read(fileName);
1209
- }
1210
- if (this.PlainText.isSupportedFile(_fileName)) {
1211
- return this.PlainText.read(fileName);
1212
- }
1213
- if (this.MSBuildProject.isSupportedFile(_fileName)) {
1214
- return this.MSBuildProject.read(fileName);
1215
- }
1216
- if (this.ARMBicep.isSupportedFile(_fileName)) {
1217
- return this.ARMBicep.read(fileName);
1218
- }
1219
- if (this.InstallShieldISM.isSupportedFile(_fileName)) {
1220
- return this.InstallShieldISM.read(fileName);
1191
+ read(pathOrName) {
1192
+ const _fileName = pathOrName.toLowerCase();
1193
+ const filePath = path.isAbsolute(pathOrName) ? pathOrName : path.resolve(this.#config.path, pathOrName);
1194
+ if (!fileExists(filePath)) return;
1195
+ for (const fileManager of this.#fileManagers) {
1196
+ if (fileManager.isSupportedFile(_fileName)) {
1197
+ return fileManager.read(filePath);
1198
+ }
1221
1199
  }
1222
- this.logger.error(`[File Manager] Unsupported file: ${fileName}`);
1200
+ this.#logger.error(`[File Manager] Unsupported file: ${pathOrName}`);
1223
1201
  }
1224
1202
  /**
1225
1203
  * Write the new version to the given file.
@@ -1233,29 +1211,16 @@ var FileManager = class {
1233
1211
  * ```
1234
1212
  */
1235
1213
  write(fileState, newVersion) {
1236
- if (this.config.dryRun) {
1214
+ if (this.#config.dryRun) {
1237
1215
  return;
1238
1216
  }
1239
1217
  const _fileName = fileState.name.toLowerCase();
1240
- if (this.JSONPackage.isSupportedFile(_fileName)) {
1241
- return this.JSONPackage.write(fileState, newVersion);
1242
- }
1243
- if (this.YAMLPackage.isSupportedFile(_fileName)) {
1244
- return this.YAMLPackage.write(fileState, newVersion);
1245
- }
1246
- if (this.PlainText.isSupportedFile(_fileName)) {
1247
- return this.PlainText.write(fileState, newVersion);
1248
- }
1249
- if (this.MSBuildProject.isSupportedFile(_fileName)) {
1250
- return this.MSBuildProject.write(fileState, newVersion);
1251
- }
1252
- if (this.ARMBicep.isSupportedFile(_fileName)) {
1253
- return this.ARMBicep.write(fileState, newVersion);
1254
- }
1255
- if (this.InstallShieldISM.isSupportedFile(_fileName)) {
1256
- return this.InstallShieldISM.write(fileState, newVersion);
1218
+ for (const fileManager of this.#fileManagers) {
1219
+ if (fileManager.isSupportedFile(_fileName)) {
1220
+ return fileManager.write(fileState, newVersion);
1221
+ }
1257
1222
  }
1258
- this.logger.error(`[File Manager] Unsupported file: ${fileState.path}`);
1223
+ this.#logger.error(`[File Manager] Unsupported file: ${fileState.path}`);
1259
1224
  }
1260
1225
  };
1261
1226
 
@@ -1801,7 +1766,6 @@ async function getCommitsSinceTag(config, logger, git) {
1801
1766
  logger.warn("No previous tag found, using all commits");
1802
1767
  }
1803
1768
  const foundCommits = await git.getCommits(latestTag, "HEAD");
1804
- logger.debug(`Found ${foundCommits.length} commits since last tag (${latestTag ?? "none"})`);
1805
1769
  const commits = foundCommits.reduce((acc, commit) => {
1806
1770
  const parsed = commitParser.parse(commit);
1807
1771
  if (parsed) {
@@ -1809,9 +1773,10 @@ async function getCommitsSinceTag(config, logger, git) {
1809
1773
  }
1810
1774
  return acc;
1811
1775
  }, []);
1812
- logger.debug(`Parsed ${commits.length} commits after applying commit parser`);
1813
1776
  const filteredCommits = filterRevertedCommits(commits);
1814
- logger.debug(`Filtered to ${filteredCommits.length} commits after removing reverts`);
1777
+ logger.debug(
1778
+ `Found ${foundCommits.length} commits since tag: ${latestTag ?? "none"} (${commits.length} parsed, ${filteredCommits.length} after filtering reverts)`
1779
+ );
1815
1780
  return {
1816
1781
  latestTag,
1817
1782
  commits: filteredCommits
@@ -1848,7 +1813,7 @@ function getReleaseType(releaseType, currentVersion, preReleaseTag) {
1848
1813
  // src/process/get-next-version.ts
1849
1814
  async function getNextVersion(config, logger, commits, currentVersion) {
1850
1815
  if (config.skipBump) {
1851
- logger.warn(`Skip bump, using ${currentVersion} as the next version`);
1816
+ logger.skipping(`Skipping bump, using ${currentVersion} as the next version`);
1852
1817
  return {
1853
1818
  version: currentVersion
1854
1819
  };
@@ -1974,7 +1939,7 @@ function getNewReleaseContent(config, logger, nextVersion) {
1974
1939
  }
1975
1940
  async function updateChangelog(config, logger, nextVersion) {
1976
1941
  if (config.skipChangelog) {
1977
- logger.warn("Skip changelog update");
1942
+ logger.skipping("Skipping changelog update");
1978
1943
  return;
1979
1944
  }
1980
1945
  if (config.header.search(RELEASE_PATTERN) !== -1) {
@@ -2012,7 +1977,7 @@ function formatCommitMessage(message, version) {
2012
1977
  // src/process/commit.ts
2013
1978
  async function commitChanges(config, logger, git, files, nextVersion) {
2014
1979
  if (config.skipCommit) {
2015
- logger.warn("Skip commit");
1980
+ logger.skipping("Skipping commit");
2016
1981
  return;
2017
1982
  }
2018
1983
  logger.log("Committing changes");
@@ -2044,7 +2009,7 @@ async function commitChanges(config, logger, git, files, nextVersion) {
2044
2009
  // src/process/tag.ts
2045
2010
  async function tagChanges(config, logger, git, nextVersion) {
2046
2011
  if (config.skipTag) {
2047
- logger.warn("Skip tag creation");
2012
+ logger.skipping("Skipping tag creation");
2048
2013
  return;
2049
2014
  }
2050
2015
  const tag = `${config.tagPrefix}${nextVersion}`;
@@ -2100,5 +2065,5 @@ exports.main = main;
2100
2065
  exports.tagChanges = tagChanges;
2101
2066
  exports.updateChangelog = updateChangelog;
2102
2067
  exports.validateConfig = validateConfig;
2103
- //# sourceMappingURL=chunk-DZKKCJU5.cjs.map
2104
- //# sourceMappingURL=chunk-DZKKCJU5.cjs.map
2068
+ //# sourceMappingURL=chunk-CISRFIID.cjs.map
2069
+ //# sourceMappingURL=chunk-CISRFIID.cjs.map