bumpp 11.0.1 → 12.0.0

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/cli.mjs CHANGED
@@ -1,24 +1,11 @@
1
- import { c as isReleaseType, i as versionBump, l as symbols, r as loadBumpConfig, s as ProgressEvent, t as bumpConfigDefaults } from "./config-C4d1xESV.mjs";
1
+ import { c as isReleaseType, i as versionBump, l as symbols, r as loadBumpConfig, t as bumpConfigDefaults } from "./config-DHzlpbsM.mjs";
2
2
  import process from "node:process";
3
3
  import { styleText } from "node:util";
4
4
  import { NonZeroExitError, x } from "tinyexec";
5
- import { valid } from "semver";
5
+ import { isValid } from "verkit";
6
6
  import cac from "cac";
7
- //#region src/cli/exit-code.ts
8
- /**
9
- * CLI exit codes.
10
- *
11
- * @see https://nodejs.org/api/process.html#process_exit_codes
12
- */
13
- let ExitCode = /* @__PURE__ */ function(ExitCode) {
14
- ExitCode[ExitCode["Success"] = 0] = "Success";
15
- ExitCode[ExitCode["FatalError"] = 1] = "FatalError";
16
- ExitCode[ExitCode["InvalidArgument"] = 9] = "InvalidArgument";
17
- return ExitCode;
18
- }({});
19
- //#endregion
20
7
  //#region package.json
21
- var version = "11.0.1";
8
+ var version = "12.0.0";
22
9
  //#endregion
23
10
  //#region src/cli/parse-args.ts
24
11
  /**
@@ -27,6 +14,15 @@ var version = "11.0.1";
27
14
  async function parseArgs() {
28
15
  try {
29
16
  const { args, resultArgs } = loadCliArgs();
17
+ const rawFiles = [...args["--"] || [], ...resultArgs];
18
+ let releaseFromArgs;
19
+ if (rawFiles.length > 0) {
20
+ const firstArg = rawFiles[0];
21
+ if (firstArg === "prompt" || isReleaseType(firstArg) || isValid(firstArg)) {
22
+ releaseFromArgs = firstArg;
23
+ rawFiles.shift();
24
+ }
25
+ }
30
26
  const parsedArgs = {
31
27
  help: args.help,
32
28
  version: args.version,
@@ -42,23 +38,16 @@ async function parseArgs() {
42
38
  confirm: args.yes === void 0 ? void 0 : !args.yes,
43
39
  noVerify: args.verify === void 0 ? void 0 : !args.verify,
44
40
  install: args.install,
45
- files: [...args["--"] || [], ...resultArgs],
41
+ files: rawFiles.length ? rawFiles : void 0,
46
42
  ignoreScripts: args.ignoreScripts,
47
43
  currentVersion: args.currentVersion,
48
44
  execute: args.execute,
49
45
  printCommits: args.printCommits,
50
46
  recursive: args.recursive,
51
- release: args.release,
47
+ release: args.release ?? releaseFromArgs,
52
48
  configFilePath: args.configFilePath
53
49
  })
54
50
  };
55
- if (parsedArgs.options.files && parsedArgs.options.files.length > 0) {
56
- const firstArg = parsedArgs.options.files[0];
57
- if (firstArg === "prompt" || isReleaseType(firstArg) || valid(firstArg)) {
58
- parsedArgs.options.release = firstArg;
59
- parsedArgs.options.files.shift();
60
- }
61
- }
62
51
  if (parsedArgs.options.recursive && parsedArgs.options.files?.length) console.log(styleText("yellow", "The --recursive option is ignored when files are specified"));
63
52
  return parsedArgs;
64
53
  } catch (error) {
@@ -76,7 +65,7 @@ function loadCliArgs(argv = process.argv) {
76
65
  }
77
66
  function errorHandler$1(error) {
78
67
  console.error(error.message);
79
- return process.exit(ExitCode.InvalidArgument);
68
+ return process.exit(9);
80
69
  }
81
70
  //#endregion
82
71
  //#region src/cli/index.ts
@@ -88,7 +77,7 @@ async function main() {
88
77
  process.on("uncaughtException", errorHandler);
89
78
  process.on("unhandledRejection", errorHandler);
90
79
  const { help, version, quiet, options } = await parseArgs();
91
- if (help || version) process.exit(ExitCode.Success);
80
+ if (help || version) process.exit(0);
92
81
  else {
93
82
  if (!options.all && !options.noGitCheck) await checkGitStatus();
94
83
  if (!quiet) options.progress = options.progress ? options.progress : progress;
@@ -104,22 +93,22 @@ async function checkGitStatus() {
104
93
  }
105
94
  function progress({ event, script, updatedFiles, skippedFiles, newVersion }) {
106
95
  switch (event) {
107
- case ProgressEvent.FileUpdated:
96
+ case "file updated":
108
97
  console.log(symbols.success, `Updated ${updatedFiles.pop()} to ${newVersion}`);
109
98
  break;
110
- case ProgressEvent.FileSkipped:
99
+ case "file skipped":
111
100
  console.log(symbols.info, `${skippedFiles.pop()} did not need to be updated`);
112
101
  break;
113
- case ProgressEvent.GitCommit:
102
+ case "git commit":
114
103
  console.log(symbols.success, "Git commit");
115
104
  break;
116
- case ProgressEvent.GitTag:
105
+ case "git tag":
117
106
  console.log(symbols.success, "Git tag");
118
107
  break;
119
- case ProgressEvent.GitPush:
108
+ case "git push":
120
109
  console.log(symbols.success, "Git push");
121
110
  break;
122
- case ProgressEvent.NpmScript:
111
+ case "npm script":
123
112
  console.log(symbols.success, `Npm run ${script}`);
124
113
  break;
125
114
  }
@@ -129,7 +118,7 @@ function errorHandler(error) {
129
118
  if (error instanceof NonZeroExitError) message += `\n\n${error.output?.stderr || ""}`;
130
119
  if (process.env.DEBUG || process.env.NODE_ENV === "development") message += `\n\n${error.stack || ""}`;
131
120
  console.error(message);
132
- process.exit(ExitCode.FatalError);
121
+ process.exit(1);
133
122
  }
134
123
  //#endregion
135
124
  export { checkGitStatus, main };
@@ -4,12 +4,13 @@ import { styleText } from "node:util";
4
4
  import { tokenizeArgs } from "args-tokenizer";
5
5
  import { execSync } from "node:child_process";
6
6
  import { x } from "tinyexec";
7
- import semver, { SemVer, clean, valid } from "semver";
8
- import fsSync, { existsSync } from "node:fs";
7
+ import * as verkit from "verkit";
8
+ import { clean, increment, isValid, normalize, parse } from "verkit";
9
+ import fs, { existsSync } from "node:fs";
9
10
  import * as path$1 from "node:path";
10
11
  import path from "node:path";
11
12
  import * as jsonc from "jsonc-parser";
12
- import fs from "node:fs/promises";
13
+ import fs$1 from "node:fs/promises";
13
14
  import { glob } from "tinyglobby";
14
15
  import yaml from "yaml";
15
16
  import { loadConfig } from "unconfig";
@@ -20,7 +21,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
20
21
  var __getOwnPropNames = Object.getOwnPropertyNames;
21
22
  var __getProtoOf = Object.getPrototypeOf;
22
23
  var __hasOwnProp = Object.prototype.hasOwnProperty;
23
- var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
24
+ var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
24
25
  var __copyProps = (to, from, except, desc) => {
25
26
  if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
26
27
  key = keys[i];
@@ -35,7 +36,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
35
36
  value: mod,
36
37
  enumerable: true
37
38
  }) : target, mod));
38
- var __require = /* @__PURE__ */ createRequire(import.meta.url);
39
+ var __require = /* #__PURE__ */ (() => createRequire(import.meta.url))();
39
40
  //#endregion
40
41
  //#region node_modules/.pnpm/kleur@3.0.3/node_modules/kleur/index.js
41
42
  var require_kleur = /* @__PURE__ */ __commonJSMin(((exports, module) => {
@@ -289,7 +290,9 @@ var require_clear$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
289
290
  return arr2;
290
291
  }
291
292
  const strip = require_strip$1();
292
- const _require = require_src(), erase = _require.erase, cursor = _require.cursor;
293
+ const _require = require_src();
294
+ const erase = _require.erase;
295
+ const cursor = _require.cursor;
293
296
  const width = (str) => [...strip(str)].length;
294
297
  /**
295
298
  * @param {string} prompt
@@ -463,7 +466,9 @@ var require_prompt$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
463
466
  const readline$1 = __require("readline");
464
467
  const action = require_util$1().action;
465
468
  const EventEmitter$1 = __require("events");
466
- const _require2 = require_src(), beep = _require2.beep, cursor = _require2.cursor;
469
+ const _require2 = require_src();
470
+ const beep = _require2.beep;
471
+ const cursor = _require2.cursor;
467
472
  const color = require_kleur();
468
473
  /**
469
474
  * Base prompt skeleton
@@ -548,8 +553,14 @@ var require_text$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
548
553
  }
549
554
  const color = require_kleur();
550
555
  const Prompt = require_prompt$1();
551
- const _require = require_src(), erase = _require.erase, cursor = _require.cursor;
552
- const _require2 = require_util$1(), style = _require2.style, clear = _require2.clear, lines = _require2.lines, figures = _require2.figures;
556
+ const _require = require_src();
557
+ const erase = _require.erase;
558
+ const cursor = _require.cursor;
559
+ const _require2 = require_util$1();
560
+ const style = _require2.style;
561
+ const clear = _require2.clear;
562
+ const lines = _require2.lines;
563
+ const figures = _require2.figures;
553
564
  /**
554
565
  * TextPrompt Base Element
555
566
  * @param {Object} opts Options
@@ -656,14 +667,17 @@ var require_text$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
656
667
  }
657
668
  _(c, key) {
658
669
  let s1 = this.value.slice(0, this.cursor);
659
- this.value = `${s1}${c}${this.value.slice(this.cursor)}`;
670
+ let s2 = this.value.slice(this.cursor);
671
+ this.value = `${s1}${c}${s2}`;
660
672
  this.red = false;
661
673
  this.cursor = this.placeholder ? 0 : s1.length + 1;
662
674
  this.render();
663
675
  }
664
676
  delete() {
665
677
  if (this.isCursorAtStart()) return this.bell();
666
- this.value = `${this.value.slice(0, this.cursor - 1)}${this.value.slice(this.cursor)}`;
678
+ let s1 = this.value.slice(0, this.cursor - 1);
679
+ let s2 = this.value.slice(this.cursor);
680
+ this.value = `${s1}${s2}`;
667
681
  this.red = false;
668
682
  if (this.isCursorAtStart()) this.cursorOffset = 0;
669
683
  else {
@@ -674,7 +688,9 @@ var require_text$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
674
688
  }
675
689
  deleteForward() {
676
690
  if (this.cursor * this.scale >= this.rendered.length || this.placeholder) return this.bell();
677
- this.value = `${this.value.slice(0, this.cursor)}${this.value.slice(this.cursor + 1)}`;
691
+ let s1 = this.value.slice(0, this.cursor);
692
+ let s2 = this.value.slice(this.cursor + 1);
693
+ this.value = `${s1}${s2}`;
678
694
  this.red = false;
679
695
  if (this.isCursorAtEnd()) this.cursorOffset = 0;
680
696
  else this.cursorOffset++;
@@ -729,7 +745,12 @@ var require_text$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
729
745
  var require_select$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
730
746
  const color = require_kleur();
731
747
  const Prompt = require_prompt$1();
732
- const _require = require_util$1(), style = _require.style, clear = _require.clear, figures = _require.figures, wrap = _require.wrap, entriesToDisplay = _require.entriesToDisplay;
748
+ const _require = require_util$1();
749
+ const style = _require.style;
750
+ const clear = _require.clear;
751
+ const figures = _require.figures;
752
+ const wrap = _require.wrap;
753
+ const entriesToDisplay = _require.entriesToDisplay;
733
754
  const cursor = require_src().cursor;
734
755
  /**
735
756
  * SelectPrompt Base Element
@@ -871,8 +892,12 @@ var require_select$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
871
892
  var require_toggle$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
872
893
  const color = require_kleur();
873
894
  const Prompt = require_prompt$1();
874
- const _require = require_util$1(), style = _require.style, clear = _require.clear;
875
- const _require2 = require_src(), cursor = _require2.cursor, erase = _require2.erase;
895
+ const _require = require_util$1();
896
+ const style = _require.style;
897
+ const clear = _require.clear;
898
+ const _require2 = require_src();
899
+ const cursor = _require2.cursor;
900
+ const erase = _require2.erase;
876
901
  /**
877
902
  * TogglePrompt Base Element
878
903
  * @param {Object} opts Options
@@ -1240,9 +1265,23 @@ var require_date$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1240
1265
  }
1241
1266
  const color = require_kleur();
1242
1267
  const Prompt = require_prompt$1();
1243
- const _require = require_util$1(), style = _require.style, clear = _require.clear, figures = _require.figures;
1244
- const _require2 = require_src(), erase = _require2.erase, cursor = _require2.cursor;
1245
- const _require3 = require_dateparts$1(), DatePart = _require3.DatePart, Meridiem = _require3.Meridiem, Day = _require3.Day, Hours = _require3.Hours, Milliseconds = _require3.Milliseconds, Minutes = _require3.Minutes, Month = _require3.Month, Seconds = _require3.Seconds, Year = _require3.Year;
1268
+ const _require = require_util$1();
1269
+ const style = _require.style;
1270
+ const clear = _require.clear;
1271
+ const figures = _require.figures;
1272
+ const _require2 = require_src();
1273
+ const erase = _require2.erase;
1274
+ const cursor = _require2.cursor;
1275
+ const _require3 = require_dateparts$1();
1276
+ const DatePart = _require3.DatePart;
1277
+ const Meridiem = _require3.Meridiem;
1278
+ const Day = _require3.Day;
1279
+ const Hours = _require3.Hours;
1280
+ const Milliseconds = _require3.Milliseconds;
1281
+ const Minutes = _require3.Minutes;
1282
+ const Month = _require3.Month;
1283
+ const Seconds = _require3.Seconds;
1284
+ const Year = _require3.Year;
1246
1285
  const regex = /\\(.)|"((?:\\["\\]|[^"])+)"|(D[Do]?|d{3,4}|d)|(M{1,4})|(YY(?:YY)?)|([aA])|([Hh]{1,2})|(m{1,2})|(s{1,2})|(S{1,4})|./g;
1247
1286
  const regexGroups = {
1248
1287
  1: ({ token }) => token.replace(/\\(.)/g, "$1"),
@@ -1450,8 +1489,14 @@ var require_number$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1450
1489
  }
1451
1490
  const color = require_kleur();
1452
1491
  const Prompt = require_prompt$1();
1453
- const _require = require_src(), cursor = _require.cursor, erase = _require.erase;
1454
- const _require2 = require_util$1(), style = _require2.style, figures = _require2.figures, clear = _require2.clear, lines = _require2.lines;
1492
+ const _require = require_src();
1493
+ const cursor = _require.cursor;
1494
+ const erase = _require.erase;
1495
+ const _require2 = require_util$1();
1496
+ const style = _require2.style;
1497
+ const figures = _require2.figures;
1498
+ const clear = _require2.clear;
1499
+ const lines = _require2.lines;
1455
1500
  const isNumber = /[0-9]/;
1456
1501
  const isDef = (any) => any !== void 0;
1457
1502
  const round = (number, precision) => {
@@ -1637,7 +1682,12 @@ var require_multiselect$1 = /* @__PURE__ */ __commonJSMin(((exports, module) =>
1637
1682
  const color = require_kleur();
1638
1683
  const cursor = require_src().cursor;
1639
1684
  const Prompt = require_prompt$1();
1640
- const _require2 = require_util$1(), clear = _require2.clear, figures = _require2.figures, style = _require2.style, wrap = _require2.wrap, entriesToDisplay = _require2.entriesToDisplay;
1685
+ const _require2 = require_util$1();
1686
+ const clear = _require2.clear;
1687
+ const figures = _require2.figures;
1688
+ const style = _require2.style;
1689
+ const wrap = _require2.wrap;
1690
+ const entriesToDisplay = _require2.entriesToDisplay;
1641
1691
  /**
1642
1692
  * MultiselectPrompt Base Element
1643
1693
  * @param {Object} opts Options
@@ -1865,8 +1915,15 @@ var require_autocomplete$1 = /* @__PURE__ */ __commonJSMin(((exports, module) =>
1865
1915
  }
1866
1916
  const color = require_kleur();
1867
1917
  const Prompt = require_prompt$1();
1868
- const _require = require_src(), erase = _require.erase, cursor = _require.cursor;
1869
- const _require2 = require_util$1(), style = _require2.style, clear = _require2.clear, figures = _require2.figures, wrap = _require2.wrap, entriesToDisplay = _require2.entriesToDisplay;
1918
+ const _require = require_src();
1919
+ const erase = _require.erase;
1920
+ const cursor = _require.cursor;
1921
+ const _require2 = require_util$1();
1922
+ const style = _require2.style;
1923
+ const clear = _require2.clear;
1924
+ const figures = _require2.figures;
1925
+ const wrap = _require2.wrap;
1926
+ const entriesToDisplay = _require2.entriesToDisplay;
1870
1927
  const getVal = (arr, i) => arr[i] && (arr[i].value || arr[i].title || arr[i]);
1871
1928
  const getTitle = (arr, i) => arr[i] && (arr[i].title || arr[i].value || arr[i]);
1872
1929
  const getIndex = (arr, valOrTitle) => {
@@ -1981,21 +2038,26 @@ var require_autocomplete$1 = /* @__PURE__ */ __commonJSMin(((exports, module) =>
1981
2038
  }
1982
2039
  _(c, key) {
1983
2040
  let s1 = this.input.slice(0, this.cursor);
1984
- this.input = `${s1}${c}${this.input.slice(this.cursor)}`;
2041
+ let s2 = this.input.slice(this.cursor);
2042
+ this.input = `${s1}${c}${s2}`;
1985
2043
  this.cursor = s1.length + 1;
1986
2044
  this.complete(this.render);
1987
2045
  this.render();
1988
2046
  }
1989
2047
  delete() {
1990
2048
  if (this.cursor === 0) return this.bell();
1991
- this.input = `${this.input.slice(0, this.cursor - 1)}${this.input.slice(this.cursor)}`;
2049
+ let s1 = this.input.slice(0, this.cursor - 1);
2050
+ let s2 = this.input.slice(this.cursor);
2051
+ this.input = `${s1}${s2}`;
1992
2052
  this.complete(this.render);
1993
2053
  this.cursor = this.cursor - 1;
1994
2054
  this.render();
1995
2055
  }
1996
2056
  deleteForward() {
1997
2057
  if (this.cursor * this.scale >= this.rendered.length) return this.bell();
1998
- this.input = `${this.input.slice(0, this.cursor)}${this.input.slice(this.cursor + 1)}`;
2058
+ let s1 = this.input.slice(0, this.cursor);
2059
+ let s2 = this.input.slice(this.cursor + 1);
2060
+ this.input = `${s1}${s2}`;
1999
2061
  this.complete(this.render);
2000
2062
  this.render();
2001
2063
  }
@@ -2081,7 +2143,10 @@ var require_autocompleteMultiselect$1 = /* @__PURE__ */ __commonJSMin(((exports,
2081
2143
  const color = require_kleur();
2082
2144
  const cursor = require_src().cursor;
2083
2145
  const MultiselectPrompt = require_multiselect$1();
2084
- const _require2 = require_util$1(), clear = _require2.clear, style = _require2.style, figures = _require2.figures;
2146
+ const _require2 = require_util$1();
2147
+ const clear = _require2.clear;
2148
+ const style = _require2.style;
2149
+ const figures = _require2.figures;
2085
2150
  /**
2086
2151
  * MultiselectPrompt Base Element
2087
2152
  * @param {Object} opts Options
@@ -2232,8 +2297,12 @@ Filtered results for: ${this.inputValue ? this.inputValue : color.gray("Enter so
2232
2297
  var require_confirm$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2233
2298
  const color = require_kleur();
2234
2299
  const Prompt = require_prompt$1();
2235
- const _require = require_util$1(), style = _require.style, clear = _require.clear;
2236
- const _require2 = require_src(), erase = _require2.erase, cursor = _require2.cursor;
2300
+ const _require = require_util$1();
2301
+ const style = _require.style;
2302
+ const clear = _require.clear;
2303
+ const _require2 = require_src();
2304
+ const erase = _require2.erase;
2305
+ const cursor = _require2.cursor;
2237
2306
  /**
2238
2307
  * ConfirmPrompt Base Element
2239
2308
  * @param {Object} opts Options
@@ -2664,7 +2733,7 @@ var require_dist = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2664
2733
  const override = prompt._override || {};
2665
2734
  questions = [].concat(questions);
2666
2735
  let answer, question, quit, name, type, lastPrompt;
2667
- const getFormattedAnswer = /* @__PURE__ */ function() {
2736
+ const getFormattedAnswer = /*#__PURE__*/ function() {
2668
2737
  var _ref = _asyncToGenerator(function* (question, answer, skipValidation = false) {
2669
2738
  if (!skipValidation && question.validate && question.validate(answer) !== true) return;
2670
2739
  return question.format ? yield question.format(answer, answers) : answer;
@@ -3112,14 +3181,17 @@ var require_text = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3112
3181
  }
3113
3182
  _(c, key) {
3114
3183
  let s1 = this.value.slice(0, this.cursor);
3115
- this.value = `${s1}${c}${this.value.slice(this.cursor)}`;
3184
+ let s2 = this.value.slice(this.cursor);
3185
+ this.value = `${s1}${c}${s2}`;
3116
3186
  this.red = false;
3117
3187
  this.cursor = this.placeholder ? 0 : s1.length + 1;
3118
3188
  this.render();
3119
3189
  }
3120
3190
  delete() {
3121
3191
  if (this.isCursorAtStart()) return this.bell();
3122
- this.value = `${this.value.slice(0, this.cursor - 1)}${this.value.slice(this.cursor)}`;
3192
+ let s1 = this.value.slice(0, this.cursor - 1);
3193
+ let s2 = this.value.slice(this.cursor);
3194
+ this.value = `${s1}${s2}`;
3123
3195
  this.red = false;
3124
3196
  if (this.isCursorAtStart()) this.cursorOffset = 0;
3125
3197
  else {
@@ -3130,7 +3202,9 @@ var require_text = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3130
3202
  }
3131
3203
  deleteForward() {
3132
3204
  if (this.cursor * this.scale >= this.rendered.length || this.placeholder) return this.bell();
3133
- this.value = `${this.value.slice(0, this.cursor)}${this.value.slice(this.cursor + 1)}`;
3205
+ let s1 = this.value.slice(0, this.cursor);
3206
+ let s2 = this.value.slice(this.cursor + 1);
3207
+ this.value = `${s1}${s2}`;
3134
3208
  this.red = false;
3135
3209
  if (this.isCursorAtEnd()) this.cursorOffset = 0;
3136
3210
  else this.cursorOffset++;
@@ -4344,21 +4418,26 @@ var require_autocomplete = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4344
4418
  }
4345
4419
  _(c, key) {
4346
4420
  let s1 = this.input.slice(0, this.cursor);
4347
- this.input = `${s1}${c}${this.input.slice(this.cursor)}`;
4421
+ let s2 = this.input.slice(this.cursor);
4422
+ this.input = `${s1}${c}${s2}`;
4348
4423
  this.cursor = s1.length + 1;
4349
4424
  this.complete(this.render);
4350
4425
  this.render();
4351
4426
  }
4352
4427
  delete() {
4353
4428
  if (this.cursor === 0) return this.bell();
4354
- this.input = `${this.input.slice(0, this.cursor - 1)}${this.input.slice(this.cursor)}`;
4429
+ let s1 = this.input.slice(0, this.cursor - 1);
4430
+ let s2 = this.input.slice(this.cursor);
4431
+ this.input = `${s1}${s2}`;
4355
4432
  this.complete(this.render);
4356
4433
  this.cursor = this.cursor - 1;
4357
4434
  this.render();
4358
4435
  }
4359
4436
  deleteForward() {
4360
4437
  if (this.cursor * this.scale >= this.rendered.length) return this.bell();
4361
- this.input = `${this.input.slice(0, this.cursor)}${this.input.slice(this.cursor + 1)}`;
4438
+ let s1 = this.input.slice(0, this.cursor);
4439
+ let s2 = this.input.slice(this.cursor + 1);
4440
+ this.input = `${s1}${s2}`;
4362
4441
  this.complete(this.render);
4363
4442
  this.render();
4364
4443
  }
@@ -4960,8 +5039,8 @@ var require_lib = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4960
5039
  });
4961
5040
  }));
4962
5041
  //#endregion
4963
- //#region node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/index.js
4964
- var require_prompts = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5042
+ //#region node_modules/.pnpm/tiny-conventional-commits-parser@0.1.0/node_modules/tiny-conventional-commits-parser/dist/index.mjs
5043
+ var import_prompts = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
4965
5044
  function isNodeLT(tar) {
4966
5045
  tar = (Array.isArray(tar) ? tar : tar.split(".")).map(Number);
4967
5046
  let i = 0, src = process.versions.node.split(".").map(Number);
@@ -4972,9 +5051,7 @@ var require_prompts = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4972
5051
  return false;
4973
5052
  }
4974
5053
  module.exports = isNodeLT("8.6.0") ? require_dist() : require_lib();
4975
- }));
4976
- //#endregion
4977
- //#region node_modules/.pnpm/tiny-conventional-commits-parser@0.1.0/node_modules/tiny-conventional-commits-parser/dist/index.mjs
5054
+ })))(), 1);
4978
5055
  function execCommand(cmd, options) {
4979
5056
  try {
4980
5057
  return execSync(cmd, {
@@ -5099,7 +5176,7 @@ async function writeJsoncFile(file) {
5099
5176
  function readTextFile(name, cwd) {
5100
5177
  return new Promise((resolve, reject) => {
5101
5178
  const filePath = path.join(cwd, name);
5102
- fsSync.readFile(filePath, "utf8", (err, text) => {
5179
+ fs.readFile(filePath, "utf8", (err, text) => {
5103
5180
  if (err) reject(err);
5104
5181
  else resolve({
5105
5182
  path: filePath,
@@ -5113,7 +5190,7 @@ function readTextFile(name, cwd) {
5113
5190
  */
5114
5191
  function writeTextFile(file) {
5115
5192
  return new Promise((resolve, reject) => {
5116
- fsSync.writeFile(file.path, file.data, (err) => {
5193
+ fs.writeFile(file.path, file.data, (err) => {
5117
5194
  if (err) reject(err);
5118
5195
  else resolve();
5119
5196
  });
@@ -5171,7 +5248,7 @@ async function readVersion(file, cwd) {
5171
5248
  try {
5172
5249
  const { data: manifest } = await readJsoncFile(file, cwd);
5173
5250
  if (isManifest(manifest)) {
5174
- if (valid(manifest.version)) return manifest.version;
5251
+ if (isValid(manifest.version)) return manifest.version;
5175
5252
  }
5176
5253
  } catch {
5177
5254
  return;
@@ -5213,7 +5290,6 @@ function isReleaseType(value) {
5213
5290
  }
5214
5291
  //#endregion
5215
5292
  //#region src/get-new-version.ts
5216
- var import_prompts = /* @__PURE__ */ __toESM(require_prompts(), 1);
5217
5293
  /**
5218
5294
  * Determines the new version number, possibly by prompting the user for it.
5219
5295
  */
@@ -5222,7 +5298,7 @@ async function getNewVersion(operation, commits) {
5222
5298
  const { currentVersion } = operation.state;
5223
5299
  switch (release.type) {
5224
5300
  case "prompt": return promptForNewVersion(operation, commits);
5225
- case "version": return operation.update({ newVersion: new SemVer(release.version, true).version });
5301
+ case "version": return operation.update({ newVersion: normalize(parse(release.version, { loose: true })) });
5226
5302
  default: return operation.update({
5227
5303
  release: release.type,
5228
5304
  newVersion: getNextVersion(currentVersion, release, commits)
@@ -5233,17 +5309,15 @@ async function getNewVersion(operation, commits) {
5233
5309
  * Returns the next version number of the specified type.
5234
5310
  */
5235
5311
  function getNextVersion(currentVersion, bump, commits) {
5236
- const oldSemVer = new SemVer(currentVersion);
5312
+ const oldSemVer = parse(currentVersion);
5237
5313
  let type;
5238
5314
  if (bump.type === "next") type = oldSemVer.prerelease.length ? "prerelease" : "patch";
5239
5315
  else if (bump.type === "conventional") type = oldSemVer.prerelease.length ? "prerelease" : determineSemverChange(commits);
5240
5316
  else type = bump.type;
5241
- const newSemVer = oldSemVer.inc(type, bump.preid);
5242
- if (isPrerelease(bump.type) && newSemVer.prerelease.length === 2 && newSemVer.prerelease[0] === bump.preid && String(newSemVer.prerelease[1]) === "0") {
5243
- newSemVer.prerelease[1] = "1";
5244
- newSemVer.format();
5245
- }
5246
- return newSemVer.version;
5317
+ return increment(oldSemVer, type, {
5318
+ identifier: bump.preid,
5319
+ identifierBase: isPrerelease(bump.type) ? 1 : void 0
5320
+ });
5247
5321
  }
5248
5322
  function determineSemverChange(commits) {
5249
5323
  let [hasMajor, hasMinor] = [false, false];
@@ -5256,8 +5330,8 @@ function determineSemverChange(commits) {
5256
5330
  */
5257
5331
  function getNextVersions(currentVersion, preid, commits) {
5258
5332
  const next = {};
5259
- const parse = semver.parse(currentVersion);
5260
- if (typeof parse?.prerelease[0] === "string") preid = parse?.prerelease[0] || "preid";
5333
+ const parsed = parse(currentVersion);
5334
+ if (typeof parsed.prerelease[0] === "string") preid = parsed.prerelease[0] || "preid";
5261
5335
  for (const type of releaseTypes) next[type] = getNextVersion(currentVersion, {
5262
5336
  type,
5263
5337
  preid
@@ -5273,7 +5347,7 @@ async function promptForNewVersion(operation, commits) {
5273
5347
  const { currentVersion } = operation.state;
5274
5348
  const release = operation.options.release;
5275
5349
  const next = getNextVersions(currentVersion, release.preid, commits);
5276
- const configCustomVersion = await operation.options.customVersion?.(currentVersion, semver);
5350
+ const configCustomVersion = await operation.options.customVersion?.(currentVersion, verkit);
5277
5351
  const PADDING = 13;
5278
5352
  const answers = await (0, import_prompts.default)([{
5279
5353
  type: "autocomplete",
@@ -5323,7 +5397,7 @@ async function promptForNewVersion(operation, commits) {
5323
5397
  },
5324
5398
  {
5325
5399
  value: "custom",
5326
- title: "custom ...".padStart(PADDING + 4, " ")
5400
+ title: "custom ...".padStart(17, " ")
5327
5401
  }
5328
5402
  ]
5329
5403
  }, {
@@ -5332,7 +5406,7 @@ async function promptForNewVersion(operation, commits) {
5332
5406
  message: "Enter the new version number:",
5333
5407
  initial: currentVersion,
5334
5408
  validate: (custom) => {
5335
- return valid(custom) ? true : "That's not a valid version number";
5409
+ return isValid(custom) ? true : "That's not a valid version number";
5336
5410
  }
5337
5411
  }]);
5338
5412
  const newVersion = answers.release === "none" ? currentVersion : answers.release === "custom" ? clean(answers.custom) : answers.release === "config" ? clean(configCustomVersion) : next[answers.release];
@@ -5390,9 +5464,12 @@ async function gitCommit(operation) {
5390
5464
  const commitMessage = formatVersionString(message, newVersion);
5391
5465
  args.push("--message", commitMessage);
5392
5466
  if (!all) args = [...args, ...updatedFiles];
5393
- await x("git", ["commit", ...args], { throwOnError: true });
5467
+ await x("git", ["commit", ...args], {
5468
+ throwOnError: true,
5469
+ nodeOptions: { stdio: "inherit" }
5470
+ });
5394
5471
  return operation.update({
5395
- event: ProgressEvent.GitCommit,
5472
+ event: "git commit",
5396
5473
  commitMessage
5397
5474
  });
5398
5475
  }
@@ -5411,9 +5488,12 @@ async function gitTag(operation) {
5411
5488
  const tagName = formatVersionString(tag.name, newVersion);
5412
5489
  args.push(tagName);
5413
5490
  if (operation.options.sign) args.push("--sign");
5414
- await x("git", ["tag", ...args], { throwOnError: true });
5491
+ await x("git", ["tag", ...args], {
5492
+ throwOnError: true,
5493
+ nodeOptions: { stdio: "inherit" }
5494
+ });
5415
5495
  return operation.update({
5416
- event: ProgressEvent.GitTag,
5496
+ event: "git tag",
5417
5497
  tagName
5418
5498
  });
5419
5499
  }
@@ -5422,9 +5502,15 @@ async function gitTag(operation) {
5422
5502
  */
5423
5503
  async function gitPush(operation) {
5424
5504
  if (!operation.options.push) return operation;
5425
- await x("git", ["push"], { throwOnError: true });
5426
- if (operation.options.tag) await x("git", ["push", "--tags"], { throwOnError: true });
5427
- return operation.update({ event: ProgressEvent.GitPush });
5505
+ await x("git", ["push"], {
5506
+ throwOnError: true,
5507
+ nodeOptions: { stdio: "inherit" }
5508
+ });
5509
+ if (operation.options.tag) await x("git", ["push", "--tags"], {
5510
+ throwOnError: true,
5511
+ nodeOptions: { stdio: "inherit" }
5512
+ });
5513
+ return operation.update({ event: "git push" });
5428
5514
  }
5429
5515
  /**
5430
5516
  * Accepts a version string template (e.g. "release v" or "This is the %s release").
@@ -5490,12 +5576,12 @@ async function normalizeOptions(raw) {
5490
5576
  ];
5491
5577
  /** package.json defined in workspace */
5492
5578
  const workspaces = [];
5493
- if (fsSync.existsSync("pnpm-workspace.yaml")) {
5494
- const pnpmWorkspace = await fs.readFile("pnpm-workspace.yaml", "utf8").then(yaml.parse);
5579
+ if (fs.existsSync("pnpm-workspace.yaml")) {
5580
+ const pnpmWorkspace = await fs$1.readFile("pnpm-workspace.yaml", "utf8").then(yaml.parse);
5495
5581
  workspaces.push(...pnpmWorkspace.packages ?? []);
5496
5582
  }
5497
- if (fsSync.existsSync("package.json")) {
5498
- const packageJson = await fs.readFile("package.json", "utf8").then(JSON.parse);
5583
+ if (fs.existsSync("package.json")) {
5584
+ const packageJson = await fs$1.readFile("package.json", "utf8").then(JSON.parse);
5499
5585
  const _workspaces = Array.isArray(packageJson.workspaces) ? packageJson.workspaces : packageJson.workspaces && Array.isArray(packageJson.workspaces.packages) ? packageJson.workspaces.packages : [];
5500
5586
  workspaces.push(..._workspaces);
5501
5587
  }
@@ -5610,7 +5696,8 @@ var Operation = class Operation {
5610
5696
  * Starts a new `versionBump()` operation.
5611
5697
  */
5612
5698
  static async start(input) {
5613
- return new Operation(await normalizeOptions(input), input.progress);
5699
+ const options = await normalizeOptions(input);
5700
+ return new Operation(options, input.progress);
5614
5701
  }
5615
5702
  /**
5616
5703
  * Updates the operation state and results, and reports the updated progress to the user.
@@ -5705,7 +5792,7 @@ async function runNpmScript(script, operation) {
5705
5792
  "--silent"
5706
5793
  ], { nodeOptions: { stdio: "inherit" } });
5707
5794
  operation.update({
5708
- event: ProgressEvent.NpmScript,
5795
+ event: "npm script",
5709
5796
  script
5710
5797
  });
5711
5798
  }
@@ -5731,11 +5818,11 @@ async function updateFiles(operation) {
5731
5818
  const modified = await updateFile(relPath, operation);
5732
5819
  const absPath = path$1.resolve(cwd, relPath);
5733
5820
  if (modified) operation.update({
5734
- event: ProgressEvent.FileUpdated,
5821
+ event: "file updated",
5735
5822
  updatedFiles: [...operation.state.updatedFiles, absPath]
5736
5823
  });
5737
5824
  else operation.update({
5738
- event: ProgressEvent.FileSkipped,
5825
+ event: "file skipped",
5739
5826
  skippedFiles: [...operation.state.skippedFiles, absPath]
5740
5827
  });
5741
5828
  }
@@ -5828,7 +5915,7 @@ async function versionBump(arg = {}) {
5828
5915
  initial: true
5829
5916
  }).then((r) => r.yes)) process$1.exit(1);
5830
5917
  }
5831
- await runNpmScript(NpmScript.PreVersion, operation);
5918
+ await runNpmScript("preversion", operation);
5832
5919
  await updateFiles(operation);
5833
5920
  if (operation.options.install) {
5834
5921
  const { detect } = await import("package-manager-detector/detect");
@@ -5860,10 +5947,10 @@ async function versionBump(arg = {}) {
5860
5947
  });
5861
5948
  console.log(symbols.success, "Script finished");
5862
5949
  }
5863
- await runNpmScript(NpmScript.Version, operation);
5950
+ await runNpmScript("version", operation);
5864
5951
  await gitCommit(operation);
5865
5952
  await gitTag(operation);
5866
- await runNpmScript(NpmScript.PostVersion, operation);
5953
+ await runNpmScript("postversion", operation);
5867
5954
  await gitPush(operation);
5868
5955
  return operation.results;
5869
5956
  }
package/dist/index.d.mts CHANGED
@@ -1,8 +1,7 @@
1
- import * as semver$1 from "semver";
2
- import semver, { ReleaseType as ReleaseType$1 } from "semver";
3
-
1
+ import * as _verkit from "verkit";
2
+ import { TruncationType } from "verkit";
4
3
  //#region src/release-type.d.ts
5
- type ReleaseType = ReleaseType$1 | 'next' | 'conventional';
4
+ type ReleaseType = TruncationType | 'next' | 'conventional';
6
5
  //#endregion
7
6
  //#region src/normalize-options.d.ts
8
7
  interface Interface {
@@ -176,11 +175,7 @@ declare class Operation {
176
175
  /**
177
176
  * Updates the operation state and results, and reports the updated progress to the user.
178
177
  */
179
- update({
180
- event,
181
- script,
182
- ...newState
183
- }: UpdateOperationState): this;
178
+ update({ event, script, ...newState }: UpdateOperationState): this;
184
179
  }
185
180
  //#endregion
186
181
  //#region src/types/version-bump-options.d.ts
@@ -328,7 +323,7 @@ interface VersionBumpOptions {
328
323
  /**
329
324
  * Custom function to provide the version number
330
325
  */
331
- customVersion?: (currentVersion: string, semver: typeof semver) => Promise<string | void> | string | void;
326
+ customVersion?: (currentVersion: string, verkit: typeof _verkit) => Promise<string | void> | string | void;
332
327
  }
333
328
  /**
334
329
  * Options for the command-line interface.
@@ -393,28 +388,28 @@ declare function versionBumpInfo(arg?: VersionBumpOptions | string): Promise<Ope
393
388
  //#region src/config.d.ts
394
389
  declare const bumpConfigDefaults: VersionBumpOptions;
395
390
  declare function loadBumpConfig(overrides?: Partial<VersionBumpOptions>, cwd?: string): Promise<{
396
- release?: string | undefined;
397
- currentVersion?: string | undefined;
398
- preid?: string | undefined;
399
- commit?: string | boolean | undefined;
400
- tag?: string | boolean | undefined;
401
- sign?: boolean | undefined;
402
- push?: boolean | undefined;
403
- install?: boolean | undefined;
404
- all?: boolean | undefined;
405
- noGitCheck?: boolean | undefined;
406
- confirm?: boolean | undefined;
407
- noVerify?: boolean | undefined;
408
- files?: string[] | undefined;
409
- cwd?: string | undefined;
410
- interface?: boolean | InterfaceOptions | undefined;
411
- ignoreScripts?: boolean | undefined;
412
- progress?: ((progress: VersionBumpProgress) => void) | undefined;
413
- execute?: string | ((config: Operation) => void | PromiseLike<void>) | undefined;
414
- recursive?: boolean | undefined;
415
- printCommits?: boolean | undefined;
416
- configFilePath?: string | undefined;
417
- customVersion?: ((currentVersion: string, semver: typeof semver$1) => void | string | Promise<void | string>) | undefined;
391
+ release?: string;
392
+ currentVersion?: string;
393
+ preid?: string;
394
+ commit?: boolean | string;
395
+ tag?: boolean | string;
396
+ sign?: boolean;
397
+ push?: boolean;
398
+ install?: boolean;
399
+ all?: boolean;
400
+ noGitCheck?: boolean;
401
+ confirm?: boolean;
402
+ noVerify?: boolean;
403
+ files?: string[];
404
+ cwd?: string;
405
+ interface?: boolean | InterfaceOptions;
406
+ ignoreScripts?: boolean;
407
+ progress?: (progress: VersionBumpProgress) => void;
408
+ execute?: string | ((config: Operation) => void | PromiseLike<void>);
409
+ recursive?: boolean;
410
+ printCommits?: boolean;
411
+ configFilePath?: string;
412
+ customVersion?: (currentVersion: string, verkit: typeof import("verkit")) => Promise<string | void> | string | void;
418
413
  }>;
419
414
  declare function defineConfig(config: Partial<VersionBumpOptions>): Partial<VersionBumpOptions>;
420
415
  //#endregion
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { a as versionBumpInfo, i as versionBump, n as defineConfig, o as NpmScript, r as loadBumpConfig, s as ProgressEvent, t as bumpConfigDefaults } from "./config-C4d1xESV.mjs";
1
+ import { a as versionBumpInfo, i as versionBump, n as defineConfig, o as NpmScript, r as loadBumpConfig, s as ProgressEvent, t as bumpConfigDefaults } from "./config-DHzlpbsM.mjs";
2
2
  //#region src/index.ts
3
3
  var src_default = versionBump;
4
4
  //#endregion
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bumpp",
3
3
  "type": "module",
4
- "version": "11.0.1",
4
+ "version": "12.0.0",
5
5
  "description": "Bump version, commit changes, tag, and push to Git",
6
6
  "authors": [
7
7
  {
@@ -45,18 +45,18 @@
45
45
  "dist"
46
46
  ],
47
47
  "engines": {
48
- "node": ">=20.19.0"
48
+ "node": "^22.18.0 || ^24.11.0 || >=26.0.0"
49
49
  },
50
50
  "dependencies": {
51
51
  "args-tokenizer": "^0.3.0",
52
52
  "cac": "^7.0.0",
53
53
  "jsonc-parser": "^3.3.1",
54
- "package-manager-detector": "^1.6.0",
55
- "semver": "^7.7.4",
56
- "tinyexec": "^1.0.4",
57
- "tinyglobby": "^0.2.15",
54
+ "package-manager-detector": "^1.7.0",
55
+ "tinyexec": "^1.2.4",
56
+ "tinyglobby": "^0.2.17",
58
57
  "unconfig": "^7.5.0",
59
- "yaml": "^2.8.2"
58
+ "verkit": "^0.1.2",
59
+ "yaml": "^2.9.0"
60
60
  },
61
61
  "inlinedDependencies": {
62
62
  "kleur": "3.0.3",
@@ -65,20 +65,19 @@
65
65
  "tiny-conventional-commits-parser": "0.1.0"
66
66
  },
67
67
  "devDependencies": {
68
- "@antfu/eslint-config": "^7.7.2",
69
- "@types/node": "^25.5.0",
68
+ "@antfu/eslint-config": "^9.1.0",
69
+ "@types/node": "^26.1.1",
70
70
  "@types/prompts": "^2.4.9",
71
- "@types/semver": "^7.7.1",
72
- "@typescript/native-preview": "7.0.0-dev.20260314.1",
73
- "baseline-browser-mapping": "^2.10.8",
74
- "eslint": "^10.0.3",
71
+ "@typescript/native-preview": "7.0.0-dev.20260707.2",
72
+ "baseline-browser-mapping": "^2.10.43",
73
+ "eslint": "^10.7.0",
75
74
  "premove": "^4.0.0",
76
75
  "prompts": "^2.4.2",
77
76
  "tiny-conventional-commits-parser": "^0.1.0",
78
- "tsdown": "^0.21.2",
79
- "tsx": "^4.21.0",
80
- "typescript": "^5.9.3",
81
- "vitest": "^4.1.0"
77
+ "tsdown": "^0.22.12",
78
+ "tsx": "^4.23.1",
79
+ "typescript": "^6.0.3",
80
+ "vitest": "^4.1.10"
82
81
  },
83
82
  "scripts": {
84
83
  "lint": "eslint .",