fireflyy 4.0.0-dev.df58d2b → 4.0.0-dev.fc28987

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.
@@ -1,4 +1,4 @@
1
- import { f as validationErrAsync, i as FireflyOkAsync, m as createFireflyError, v as toFireflyError } from "./result.constructors-D9jmQ0uj.js";
1
+ import { f as validationErrAsync, i as FireflyOkAsync, m as createFireflyError, v as toFireflyError } from "./result.constructors-DoAoYdfF.js";
2
2
  import { ResultAsync } from "neverthrow";
3
3
 
4
4
  //#region src/core/result/result.utilities.ts
@@ -17,16 +17,6 @@ function wrapPromise(promise) {
17
17
  function ensureNotAsync(condition, errorOpts) {
18
18
  return condition ? validationErrAsync(errorOpts) : FireflyOkAsync(void 0);
19
19
  }
20
- /**
21
- * Async version of zip3.
22
- */
23
- function zip3Async(resultA, resultB, resultC) {
24
- return ResultAsync.combine([
25
- resultA,
26
- resultB,
27
- resultC
28
- ]);
29
- }
30
20
 
31
21
  //#endregion
32
- export { wrapPromise as n, zip3Async as r, ensureNotAsync as t };
22
+ export { wrapPromise as n, ensureNotAsync as t };
@@ -1,4 +1,4 @@
1
- import { m as createFireflyError, r as FireflyOk, t as FireflyErr, v as toFireflyError } from "./result.constructors-D9jmQ0uj.js";
1
+ import { m as createFireflyError, r as FireflyOk, t as FireflyErr, v as toFireflyError } from "./result.constructors-DoAoYdfF.js";
2
2
  import { ResultAsync } from "neverthrow";
3
3
  import z$1 from "zod";
4
4
 
@@ -0,0 +1,164 @@
1
+ import { r as FireflyOk, s as invalidErr } from "./result.constructors-DoAoYdfF.js";
2
+ import semver from "semver";
3
+
4
+ //#region src/domain/semver/version.ts
5
+ /**
6
+ * Represents a parsed semantic version with immutable access.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const result = Version.from("1.2.3-alpha.1");
11
+ * if (result.isOk()) {
12
+ * console.log(result.value.major); // 1
13
+ * console.log(result.value.isPrerelease); // true
14
+ * }
15
+ * ```
16
+ */
17
+ var Version = class Version {
18
+ _raw;
19
+ _parsed;
20
+ constructor(version, parsed) {
21
+ this._raw = version;
22
+ this._parsed = parsed;
23
+ }
24
+ /**
25
+ * Creates a Version from any valid semver string.
26
+ * Handles cleaning (removing 'v' prefix, etc.).
27
+ */
28
+ static from(input) {
29
+ const cleaned = semver.clean(input);
30
+ if (!cleaned) return invalidErr({ message: `"${input}" is not a valid semantic version.` });
31
+ const parsed = semver.parse(cleaned);
32
+ if (!parsed) return invalidErr({ message: `Failed to parse semantic version "${cleaned}".` });
33
+ return FireflyOk(new Version(cleaned, parsed));
34
+ }
35
+ /**
36
+ * Creates a Version from an already-clean semver string.
37
+ * Use when you know the input is already normalized.
38
+ */
39
+ static fromClean(cleanVersion) {
40
+ const parsed = semver.parse(cleanVersion);
41
+ if (!parsed) return invalidErr({ message: `Expected clean version but got invalid: ${cleanVersion}` });
42
+ return FireflyOk(new Version(cleanVersion, parsed));
43
+ }
44
+ /**
45
+ * The raw version string.
46
+ */
47
+ get raw() {
48
+ return this._raw;
49
+ }
50
+ /**
51
+ * Major version number.
52
+ */
53
+ get major() {
54
+ return this._parsed.major;
55
+ }
56
+ /**
57
+ * Minor version number.
58
+ */
59
+ get minor() {
60
+ return this._parsed.minor;
61
+ }
62
+ /**
63
+ * Patch version number.
64
+ */
65
+ get patch() {
66
+ return this._parsed.patch;
67
+ }
68
+ /**
69
+ * Whether this version has prerelease identifiers.
70
+ */
71
+ get isPrerelease() {
72
+ return this._parsed.prerelease.length > 0;
73
+ }
74
+ /**
75
+ * Prerelease identifiers (e.g., ["alpha", 1] for "1.0.0-alpha.1").
76
+ */
77
+ get prerelease() {
78
+ return this._parsed.prerelease;
79
+ }
80
+ /**
81
+ * The prerelease identifier (e.g., "alpha" from "1.0.0-alpha.1").
82
+ */
83
+ get preReleaseId() {
84
+ if (!this.isPrerelease) return null;
85
+ const first = this._parsed.prerelease[0];
86
+ return typeof first === "string" ? first : null;
87
+ }
88
+ /**
89
+ * The prerelease number (e.g., 1 from "1.0.0-alpha.1").
90
+ */
91
+ get prereleaseNumber() {
92
+ if (!this.isPrerelease) return null;
93
+ const last = this._parsed.prerelease.at(-1);
94
+ return typeof last === "number" ? last : null;
95
+ }
96
+ /**
97
+ * Build metadata identifiers.
98
+ */
99
+ get build() {
100
+ return this._parsed.build;
101
+ }
102
+ /**
103
+ * Returns the raw version string.
104
+ */
105
+ toString() {
106
+ return this._raw;
107
+ }
108
+ /**
109
+ * Checks equality with another Version.
110
+ *
111
+ * @param other - The other Version to compare with
112
+ * @returns True if equal, false otherwise
113
+ */
114
+ equals(other) {
115
+ return semver.eq(this._raw, other._raw);
116
+ }
117
+ /**
118
+ * Compares with another Version: -1 (less), 0 (equal), 1 (greater).
119
+ *
120
+ * @param other - The other Version to compare with
121
+ * @returns -1, 0, or 1 based on comparison
122
+ */
123
+ compare(other) {
124
+ return semver.compare(this._raw, other._raw);
125
+ }
126
+ /**
127
+ * Checks if this version is greater than another.
128
+ *
129
+ * @param other - The other Version to compare with
130
+ * @returns True if this version is greater, false otherwise
131
+ */
132
+ isGreaterThan(other) {
133
+ return semver.gt(this._raw, other._raw);
134
+ }
135
+ /**
136
+ * Checks if this version is less than another.
137
+ *
138
+ * @param other - The other Version to compare with
139
+ * @returns True if this version is less, false otherwise
140
+ */
141
+ isLessThan(other) {
142
+ return semver.lt(this._raw, other._raw);
143
+ }
144
+ /**
145
+ * Checks if this version satisfies a semver range.
146
+ *
147
+ * @param range - The semver range to check against
148
+ * @returns True if it satisfies the range, false otherwise
149
+ */
150
+ satisfies(range) {
151
+ return semver.satisfies(this._raw, range);
152
+ }
153
+ /**
154
+ * Converts a prerelease version to its stable form.
155
+ * "1.2.3-alpha.1" → "1.2.3"
156
+ */
157
+ toStable() {
158
+ const stableVersion = `${this.major}.${this.minor}.${this.patch}`;
159
+ return Version.fromClean(stableVersion);
160
+ }
161
+ };
162
+
163
+ //#endregion
164
+ export { Version as t };
@@ -0,0 +1,171 @@
1
+ import { c as invalidErrAsync, i as FireflyOkAsync, n as FireflyErrAsync, r as FireflyOk, s as invalidErr, t as FireflyErr } from "./result.constructors-DoAoYdfF.js";
2
+ import { t as Version } from "./version-DJuocyXy.js";
3
+ import semver from "semver";
4
+
5
+ //#region src/services/implementations/version-bumper.service.ts
6
+ /**
7
+ * Default implementation of the version bumper service.
8
+ */
9
+ var DefaultVersionBumperService = class {
10
+ bump(options) {
11
+ const { currentVersion, releaseType, preReleaseId, preReleaseBase } = options;
12
+ if (releaseType === "major" || releaseType === "minor" || releaseType === "patch") {
13
+ const result = this.bumpStandard(currentVersion, releaseType);
14
+ return result.isOk() ? FireflyOkAsync(result.value) : FireflyErrAsync(result.error);
15
+ }
16
+ if (releaseType === "premajor" || releaseType === "preminor" || releaseType === "prepatch") {
17
+ const result = this.bumpPreStandard(currentVersion, releaseType, preReleaseId, preReleaseBase);
18
+ return result.isOk() ? FireflyOkAsync(result.value) : FireflyErrAsync(result.error);
19
+ }
20
+ if (releaseType === "prerelease") {
21
+ const result = this.bumpPrerelease(currentVersion, preReleaseId, preReleaseBase);
22
+ return result.isOk() ? FireflyOkAsync(result.value) : FireflyErrAsync(result.error);
23
+ }
24
+ if (releaseType === "graduate") {
25
+ const result = this.graduatePrerelease(currentVersion);
26
+ return result.isOk() ? FireflyOkAsync(result.value) : FireflyErrAsync(result.error);
27
+ }
28
+ return invalidErrAsync({
29
+ message: `Unsupported release type: ${releaseType}`,
30
+ source: "services/version-bumper"
31
+ });
32
+ }
33
+ /**
34
+ * Normalizes the prerelease base to a string "0" or "1".
35
+ *
36
+ * @param base - The prerelease base to normalize
37
+ * @returns The normalized base or an error if invalid
38
+ */
39
+ normalizeBase(base) {
40
+ if (base === void 0 || base === null) return FireflyOk(void 0);
41
+ if (base === "0" || base === "1") return FireflyOk(base);
42
+ if (typeof base === "number" && (base === 0 || base === 1)) return FireflyOk(base.toString());
43
+ return invalidErr({ message: `Invalid preReleaseBase '${base}'. Must be "0", "1", 0, or 1.` });
44
+ }
45
+ /**
46
+ * Determines if the prerelease identifier is complex (contains dots).
47
+ *
48
+ * @param identifier - The prerelease identifier to check
49
+ * @returns True if the identifier is complex, false otherwise
50
+ */
51
+ isComplexIdentifier(identifier) {
52
+ return typeof identifier === "string" && identifier.includes(".");
53
+ }
54
+ /**
55
+ * Bumps a version with a complex prerelease identifier (e.g., "canary.abc123").
56
+ *
57
+ * @param currentVersion - The current version to bump
58
+ * @param identifier - The complex prerelease identifier
59
+ * @returns The new version with the complex identifier
60
+ */
61
+ bumpWithComplexIdentifier(currentVersion, identifier) {
62
+ if (!identifier) return semver.inc(currentVersion.raw, "prerelease", void 0, "0");
63
+ return semver.inc(currentVersion.raw, "prerelease", identifier, false);
64
+ }
65
+ /**
66
+ * Bumps an existing prerelease version.
67
+ *
68
+ * @param currentVersion - The current version to bump
69
+ * @param identifier - Optional prerelease identifier
70
+ * @returns The new prerelease version
71
+ */
72
+ bumpExistingPrerelease(currentVersion, identifier) {
73
+ return identifier ? semver.inc(currentVersion.raw, "prerelease", identifier) : semver.inc(currentVersion.raw, "prerelease");
74
+ }
75
+ /**
76
+ * Bumps a standard version (major, minor, patch) according to the provided release type.
77
+ *
78
+ * @param currentVersion - The current version to bump
79
+ * @param releaseType - The type of standard release
80
+ * @returns The new standard version
81
+ */
82
+ bumpStandard(currentVersion, releaseType) {
83
+ let baseVersionString = currentVersion.raw;
84
+ if (currentVersion.isPrerelease) {
85
+ const stableResult = currentVersion.toStable();
86
+ if (stableResult.isErr()) return FireflyErr(stableResult.error);
87
+ baseVersionString = stableResult.value.raw;
88
+ }
89
+ const newVersionString = semver.inc(baseVersionString, releaseType);
90
+ if (!newVersionString) return invalidErr({
91
+ message: `Failed to bump ${releaseType} version from '${baseVersionString}'.`,
92
+ source: "services/version-bumper"
93
+ });
94
+ return Version.fromClean(newVersionString);
95
+ }
96
+ /**
97
+ * Bumps a pre-standard version (premajor, preminor, prepatch) according to the provided options.
98
+ *
99
+ * @param currentVersion - The current version to bump
100
+ * @param releaseType - The type of pre-standard release
101
+ * @param identifier - Optional prerelease identifier (e.g., "alpha", "beta")
102
+ * @param base - Optional base number for the prerelease
103
+ * @returns The new pre-standard version
104
+ */
105
+ bumpPreStandard(currentVersion, releaseType, preReleaseId, preReleaseBase) {
106
+ const normalizedBaseResult = this.normalizeBase(preReleaseBase);
107
+ if (normalizedBaseResult.isErr()) return FireflyErr(normalizedBaseResult.error);
108
+ const normalizedBase = normalizedBaseResult.value;
109
+ let newVersionString = null;
110
+ if (normalizedBase !== void 0) newVersionString = preReleaseId ? semver.inc(currentVersion.raw, releaseType, preReleaseId, normalizedBase) : semver.inc(currentVersion.raw, releaseType, void 0, normalizedBase);
111
+ else newVersionString = preReleaseId ? semver.inc(currentVersion.raw, releaseType, preReleaseId) : semver.inc(currentVersion.raw, releaseType);
112
+ if (!newVersionString) return invalidErr({
113
+ message: `Failed to bump ${releaseType} version from '${currentVersion.raw}' with identifier '${preReleaseId}' and base '${preReleaseBase}'.`,
114
+ source: "services/version-bumper"
115
+ });
116
+ return Version.fromClean(newVersionString);
117
+ }
118
+ /**
119
+ * Bumps a prerelease version according to the provided options.
120
+ * Handles complex identifiers, explicit bases, continuing existing
121
+ * prereleases, and starting new prereleases from stable versions.
122
+ *
123
+ * @param currentVersion - The current version to bump
124
+ * @param identifier - Optional prerelease identifier (e.g., "alpha", "beta")
125
+ * @param base - Optional base number for the prerelease
126
+ * @returns The new prerelease version
127
+ */
128
+ bumpPrerelease(currentVersion, preReleaseId, preReleaseBase) {
129
+ let newVersionString = null;
130
+ if (this.isComplexIdentifier(preReleaseId)) newVersionString = this.bumpWithComplexIdentifier(currentVersion, preReleaseId);
131
+ else if (preReleaseBase !== void 0 && preReleaseBase !== null) {
132
+ const normalizedBaseResult = this.normalizeBase(preReleaseBase);
133
+ if (normalizedBaseResult.isErr()) return FireflyErr(normalizedBaseResult.error);
134
+ const normalizedBase = normalizedBaseResult.value;
135
+ newVersionString = preReleaseId ? semver.inc(currentVersion.raw, "prerelease", preReleaseId, normalizedBase) : semver.inc(currentVersion.raw, "prerelease", void 0, normalizedBase);
136
+ } else if (currentVersion.isPrerelease) newVersionString = this.bumpExistingPrerelease(currentVersion, preReleaseId);
137
+ else {
138
+ const defaultIdentifier = preReleaseId || "alpha";
139
+ newVersionString = semver.inc(currentVersion.raw, "prerelease", defaultIdentifier);
140
+ }
141
+ if (!newVersionString) return invalidErr({
142
+ message: `Failed to bump prerelease version from '${currentVersion.raw}' with identifier '${preReleaseId}' and base '${preReleaseBase}'.`,
143
+ source: "services/version-bumper"
144
+ });
145
+ return Version.fromClean(newVersionString);
146
+ }
147
+ /**
148
+ * Graduates a prerelease version to its stable counterpart.
149
+ *
150
+ * @param currentVersion - The current prerelease version
151
+ * @returns The stable version
152
+ */
153
+ graduatePrerelease(currentVersion) {
154
+ if (!currentVersion.isPrerelease) return invalidErr({
155
+ message: `Cannot graduate non-prerelease version '${currentVersion.raw}'. Only prerelease versions can be graduated.`,
156
+ source: "services/version-bumper"
157
+ });
158
+ const stableVersionResult = currentVersion.toStable();
159
+ if (stableVersionResult.isErr()) return FireflyErr(stableVersionResult.error);
160
+ return FireflyOk(stableVersionResult.value);
161
+ }
162
+ };
163
+ /**
164
+ * Creates a version bumper service instance.
165
+ */
166
+ function createVersionBumperService() {
167
+ return new DefaultVersionBumperService();
168
+ }
169
+
170
+ //#endregion
171
+ export { createVersionBumperService };
@@ -1,6 +1,6 @@
1
- import { t as logger } from "./main.js";
2
- import { g as invalidError, r as FireflyOk, t as FireflyErr } from "./result.constructors-D9jmQ0uj.js";
3
- import { Result } from "neverthrow";
1
+ import { g as invalidError, i as FireflyOkAsync, n as FireflyErrAsync } from "./result.constructors-DoAoYdfF.js";
2
+ import { t as logger } from "./logging-Bpk2RzGc.js";
3
+ import { ResultAsync } from "neverthrow";
4
4
 
5
5
  //#region src/services/implementations/version-strategy.service.ts
6
6
  const TRANSITION_KEYWORDS = [
@@ -55,6 +55,9 @@ const VERSION_DESCRIPTIONS = {
55
55
  prerelease: "Unstable pre-release continuation. Increments the pre-release number or changes identifier.",
56
56
  graduate: "Promote pre-release to stable. Removes pre-release identifiers to create a stable version."
57
57
  };
58
+ /**
59
+ * Default implementation of the version strategy service.
60
+ */
58
61
  var DefaultVersionStrategyService = class {
59
62
  bumper;
60
63
  constructor(bumper) {
@@ -80,19 +83,19 @@ var DefaultVersionStrategyService = class {
80
83
  return this.bumper.bump({
81
84
  currentVersion: options.currentVersion,
82
85
  releaseType: options.releaseType,
83
- prereleaseIdentifier: options.prereleaseIdentifier,
84
- prereleaseBase: options.prereleaseBase
86
+ preReleaseId: options.preReleaseId,
87
+ preReleaseBase: options.preReleaseBase
85
88
  });
86
89
  }
87
- return FireflyErr(invalidError({ message: "Cannot determine next version: no release type or recommendation provided" }));
90
+ return FireflyErrAsync(invalidError({ message: "Cannot determine next version: no release type or recommendation provided" }));
88
91
  }
89
92
  generateChoices(options) {
90
93
  logger.verbose(`DefaultVersionStrategyService: Creating version choices for '${options.currentVersion.raw}'...`);
91
- const choicesResults = this.determineAvailableVersionTypes(options.currentVersion, options.releaseType).map((releaseType) => this.createSingleChoice(options.currentVersion, releaseType, options.prereleaseIdentifier, options.prereleaseBase));
92
- const combinedResult = Result.combine(choicesResults);
93
- if (combinedResult.isErr()) return FireflyErr(combinedResult.error);
94
- logger.verbose(`DefaultVersionStrategyService: Created ${combinedResult.value.length} version choices.`);
95
- return FireflyOk(combinedResult.value);
94
+ const choicesResults = this.determineAvailableVersionTypes(options.currentVersion, options.releaseType).map((releaseType) => this.createSingleChoice(options.currentVersion, releaseType, options.preReleaseId, options.preReleaseBase));
95
+ return ResultAsync.combine(choicesResults).map((choices) => {
96
+ logger.verbose(`DefaultVersionStrategyService: Created ${choices.length} version choices.`);
97
+ return choices;
98
+ });
96
99
  }
97
100
  /**
98
101
  * Analyzes the current version and recommendation to determine pre-release context.
@@ -104,7 +107,7 @@ var DefaultVersionStrategyService = class {
104
107
  analyzePreReleaseContext(currentVersion, recommendation) {
105
108
  return {
106
109
  isCurrentPreRelease: currentVersion.isPrerelease,
107
- prereleaseIdentifier: currentVersion.prereleaseIdentifier,
110
+ preReleaseId: currentVersion.preReleaseId,
108
111
  hasStableTransition: this.detectStableTransition(recommendation)
109
112
  };
110
113
  }
@@ -131,8 +134,8 @@ var DefaultVersionStrategyService = class {
131
134
  return this.bumper.bump({
132
135
  currentVersion: options.currentVersion,
133
136
  releaseType: "prerelease",
134
- prereleaseIdentifier: options.prereleaseIdentifier ?? context.prereleaseIdentifier ?? "alpha",
135
- prereleaseBase: options.prereleaseBase
137
+ preReleaseId: options.preReleaseId ?? context.preReleaseId ?? "alpha",
138
+ preReleaseBase: options.preReleaseBase
136
139
  });
137
140
  }
138
141
  /**
@@ -143,26 +146,25 @@ var DefaultVersionStrategyService = class {
143
146
  * @returns A result containing the new stable version or an error
144
147
  */
145
148
  handlePreReleaseToStableTransition(options, recommendation) {
146
- if (!recommendation) return FireflyErr(invalidError({
149
+ if (!recommendation) return FireflyErrAsync(invalidError({
147
150
  message: "Cannot transition to stable version without recommendation",
148
151
  source: "services/version-strategy"
149
152
  }));
150
- const graduateResult = this.bumper.bump({
153
+ return this.bumper.bump({
151
154
  currentVersion: options.currentVersion,
152
155
  releaseType: "graduate"
156
+ }).andThen((stableVersion) => {
157
+ if (recommendation.level < 2) {
158
+ logger.verbose("DefaultVersionStrategyService: Further bumping after graduation...");
159
+ const releaseType = LEVEL_TO_RELEASE_TYPE[recommendation.level];
160
+ return this.bumper.bump({
161
+ currentVersion: stableVersion,
162
+ releaseType
163
+ });
164
+ }
165
+ logger.verbose("DefaultVersionStrategyService: Graduated to stable version:", stableVersion.raw);
166
+ return FireflyOkAsync(stableVersion);
153
167
  });
154
- if (graduateResult.isErr()) return FireflyErr(graduateResult.error);
155
- const stableVersion = graduateResult.value;
156
- if (recommendation.level < 2) {
157
- logger.verbose("DefaultVersionStrategyService: Further bumping after graduation...");
158
- const releaseType = LEVEL_TO_RELEASE_TYPE[recommendation.level];
159
- return this.bumper.bump({
160
- currentVersion: stableVersion,
161
- releaseType
162
- });
163
- }
164
- logger.verbose("DefaultVersionStrategyService: Graduated to stable version:", stableVersion.raw);
165
- return FireflyOk(stableVersion);
166
168
  }
167
169
  /**
168
170
  * Creates a new version based on the provided recommendation and pre-release context.
@@ -178,8 +180,8 @@ var DefaultVersionStrategyService = class {
178
180
  return this.bumper.bump({
179
181
  currentVersion: options.currentVersion,
180
182
  releaseType: "prerelease",
181
- prereleaseIdentifier: options.prereleaseIdentifier ?? context.prereleaseIdentifier ?? "alpha",
182
- prereleaseBase: options.prereleaseBase
183
+ preReleaseId: options.preReleaseId ?? context.preReleaseId ?? "alpha",
184
+ preReleaseBase: options.preReleaseBase
183
185
  });
184
186
  }
185
187
  const releaseType = LEVEL_TO_RELEASE_TYPE[recommendation.level];
@@ -187,8 +189,8 @@ var DefaultVersionStrategyService = class {
187
189
  return this.bumper.bump({
188
190
  currentVersion: options.currentVersion,
189
191
  releaseType,
190
- prereleaseIdentifier: options.prereleaseIdentifier,
191
- prereleaseBase: options.prereleaseBase
192
+ preReleaseId: options.preReleaseId,
193
+ preReleaseBase: options.preReleaseBase
192
194
  });
193
195
  }
194
196
  /**
@@ -225,25 +227,22 @@ var DefaultVersionStrategyService = class {
225
227
  *
226
228
  * @param currentVersion - The current version
227
229
  * @param releaseType - The type of release to create
228
- * @param prereleaseIdentifier - Optional pre-release identifier
229
- * @param prereleaseBase - Optional base for pre-release
230
+ * @param preReleaseId - Optional pre-release identifier
231
+ * @param preReleaseBase - Optional base for pre-release
230
232
  * @returns A result containing the version choice or an error
231
233
  */
232
- createSingleChoice(currentVersion, releaseType, prereleaseIdentifier, prereleaseBase) {
234
+ createSingleChoice(currentVersion, releaseType, preReleaseId, preReleaseBase) {
233
235
  const bumpOptions = {
234
236
  currentVersion,
235
237
  releaseType,
236
- prereleaseIdentifier,
237
- prereleaseBase
238
+ preReleaseId,
239
+ preReleaseBase
238
240
  };
239
- const newVersionResult = this.bumper.bump(bumpOptions);
240
- if (newVersionResult.isErr()) return FireflyErr(newVersionResult.error);
241
- const newVersion = newVersionResult.value;
242
- return FireflyOk({
241
+ return this.bumper.bump(bumpOptions).map((newVersion) => ({
243
242
  label: `${releaseType} (${newVersion.raw})`,
244
243
  hint: this.getVersionDescription(releaseType),
245
244
  value: newVersion.raw
246
- });
245
+ }));
247
246
  }
248
247
  };
249
248
  /**
@@ -255,4 +254,4 @@ function createVersionStrategyService(bumper) {
255
254
  }
256
255
 
257
256
  //#endregion
258
- export { TRANSITION_KEYWORDS as n, createVersionStrategyService as r, DefaultVersionStrategyService as t };
257
+ export { TRANSITION_KEYWORDS, createVersionStrategyService };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fireflyy",
3
- "version": "4.0.0-dev.df58d2b",
3
+ "version": "4.0.0-dev.fc28987",
4
4
  "description": " CLI orchestrator for automatic semantic versioning, changelog generation, and creating releases. Built for my own use cases.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -65,9 +65,9 @@
65
65
  "@biomejs/biome": "2.3.8",
66
66
  "@types/bun": "^1.3.3",
67
67
  "@types/semver": "^7.7.1",
68
- "tsdown": "^0.17.0-beta.5",
68
+ "tsdown": "^0.17.0",
69
69
  "typescript": "^5.9.3",
70
- "ultracite": "6.3.8"
70
+ "ultracite": "6.3.9"
71
71
  },
72
72
  "keywords": [
73
73
  "cli",
package/dist/index.d.ts DELETED
@@ -1,79 +0,0 @@
1
- import z from "zod";
2
-
3
- //#region src/cli/config/config.schema.d.ts
4
-
5
- /**
6
- * Complete Firefly configuration schema.
7
- * Combines global options with command-specific configuration sections.
8
- */
9
- declare const FireflyConfigSchema: z.ZodObject<{
10
- release: z.ZodOptional<z.ZodObject<{
11
- name: z.ZodOptional<z.ZodString>;
12
- scope: z.ZodOptional<z.ZodString>;
13
- base: z.ZodDefault<z.ZodString>;
14
- branch: z.ZodOptional<z.ZodString>;
15
- changelogPath: z.ZodDefault<z.ZodString>;
16
- bumpStrategy: z.ZodDefault<z.ZodUnion<[z.ZodEnum<{
17
- auto: "auto";
18
- manual: "manual";
19
- }>, z.ZodLiteral<"">]>>;
20
- releaseType: z.ZodOptional<z.ZodEnum<{
21
- major: "major";
22
- minor: "minor";
23
- patch: "patch";
24
- prerelease: "prerelease";
25
- premajor: "premajor";
26
- preminor: "preminor";
27
- prepatch: "prepatch";
28
- graduate: "graduate";
29
- }>>;
30
- preReleaseId: z.ZodOptional<z.ZodString>;
31
- preReleaseBase: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"0">, z.ZodLiteral<"1">]>>;
32
- releaseNotes: z.ZodDefault<z.ZodString>;
33
- commitMessage: z.ZodDefault<z.ZodString>;
34
- tagName: z.ZodDefault<z.ZodString>;
35
- skipBump: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
36
- skipChangelog: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
37
- skipPush: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
38
- skipGitHubRelease: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
39
- skipGit: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
40
- skipPreflightCheck: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
41
- releaseTitle: z.ZodDefault<z.ZodString>;
42
- releaseLatest: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
43
- releasePreRelease: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
44
- releaseDraft: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
45
- }, z.core.$strip>>;
46
- cwd: z.ZodOptional<z.ZodString>;
47
- dryRun: z.ZodOptional<z.ZodBoolean>;
48
- verbose: z.ZodOptional<z.ZodBoolean>;
49
- enableRollback: z.ZodOptional<z.ZodBoolean>;
50
- }, z.core.$strip>;
51
- /**
52
- * TypeScript type for Firefly configuration.
53
- * Use this type when you need to reference the configuration shape without runtime validation.
54
- */
55
- type FireflyConfig = z.infer<typeof FireflyConfigSchema>;
56
- //#endregion
57
- //#region src/config/index.d.ts
58
- /**
59
- * Helper function to define a type-safe Firefly configuration.
60
- *
61
- * Provides IntelliSense autocompletion and type checking for config files.
62
- *
63
- * @param options - The configuration options
64
- * @returns The same options (identity function for type inference)
65
- *
66
- * @example
67
- * ```ts
68
- * export default defineConfig({
69
- * verbose: true,
70
- * release: {
71
- * bumpStrategy: "conventional",
72
- * releaseType: "github",
73
- * },
74
- * });
75
- * ```
76
- */
77
- declare function defineConfig<T extends FireflyConfig>(options: T): T;
78
- //#endregion
79
- export { defineConfig };