@codefresh-io/gitops-release 0.1.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.
Files changed (98) hide show
  1. package/README.md +397 -0
  2. package/dist/commands/cherry-pick.d.ts +14 -0
  3. package/dist/commands/cherry-pick.d.ts.map +1 -0
  4. package/dist/commands/cherry-pick.js +337 -0
  5. package/dist/commands/cherry-pick.js.map +1 -0
  6. package/dist/commands/cherry-pick.test.d.ts +2 -0
  7. package/dist/commands/cherry-pick.test.d.ts.map +1 -0
  8. package/dist/commands/cherry-pick.test.js +377 -0
  9. package/dist/commands/cherry-pick.test.js.map +1 -0
  10. package/dist/commands/completion.d.ts +11 -0
  11. package/dist/commands/completion.d.ts.map +1 -0
  12. package/dist/commands/completion.js +195 -0
  13. package/dist/commands/completion.js.map +1 -0
  14. package/dist/commands/completion.test.d.ts +2 -0
  15. package/dist/commands/completion.test.d.ts.map +1 -0
  16. package/dist/commands/completion.test.js +142 -0
  17. package/dist/commands/completion.test.js.map +1 -0
  18. package/dist/commands/create.d.ts +15 -0
  19. package/dist/commands/create.d.ts.map +1 -0
  20. package/dist/commands/create.js +107 -0
  21. package/dist/commands/create.js.map +1 -0
  22. package/dist/commands/create.test.d.ts +2 -0
  23. package/dist/commands/create.test.d.ts.map +1 -0
  24. package/dist/commands/create.test.js +274 -0
  25. package/dist/commands/create.test.js.map +1 -0
  26. package/dist/commands/list.d.ts +14 -0
  27. package/dist/commands/list.d.ts.map +1 -0
  28. package/dist/commands/list.js +69 -0
  29. package/dist/commands/list.js.map +1 -0
  30. package/dist/commands/notes.d.ts +15 -0
  31. package/dist/commands/notes.d.ts.map +1 -0
  32. package/dist/commands/notes.js +374 -0
  33. package/dist/commands/notes.js.map +1 -0
  34. package/dist/commands/publish.d.ts +14 -0
  35. package/dist/commands/publish.d.ts.map +1 -0
  36. package/dist/commands/publish.js +220 -0
  37. package/dist/commands/publish.js.map +1 -0
  38. package/dist/commands/publish.test.d.ts +2 -0
  39. package/dist/commands/publish.test.d.ts.map +1 -0
  40. package/dist/commands/publish.test.js +371 -0
  41. package/dist/commands/publish.test.js.map +1 -0
  42. package/dist/commands/status.d.ts +8 -0
  43. package/dist/commands/status.d.ts.map +1 -0
  44. package/dist/commands/status.js +258 -0
  45. package/dist/commands/status.js.map +1 -0
  46. package/dist/context.d.ts +35 -0
  47. package/dist/context.d.ts.map +1 -0
  48. package/dist/context.js +48 -0
  49. package/dist/context.js.map +1 -0
  50. package/dist/index.d.ts +4 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +152 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/output/formatter.d.ts +161 -0
  55. package/dist/output/formatter.d.ts.map +1 -0
  56. package/dist/output/formatter.js +398 -0
  57. package/dist/output/formatter.js.map +1 -0
  58. package/dist/output/formatter.test.d.ts +2 -0
  59. package/dist/output/formatter.test.d.ts.map +1 -0
  60. package/dist/output/formatter.test.js +223 -0
  61. package/dist/output/formatter.test.js.map +1 -0
  62. package/dist/services/ai.d.ts +69 -0
  63. package/dist/services/ai.d.ts.map +1 -0
  64. package/dist/services/ai.js +235 -0
  65. package/dist/services/ai.js.map +1 -0
  66. package/dist/services/ai.test.d.ts +2 -0
  67. package/dist/services/ai.test.d.ts.map +1 -0
  68. package/dist/services/ai.test.js +101 -0
  69. package/dist/services/ai.test.js.map +1 -0
  70. package/dist/services/github.d.ts +200 -0
  71. package/dist/services/github.d.ts.map +1 -0
  72. package/dist/services/github.js +465 -0
  73. package/dist/services/github.js.map +1 -0
  74. package/dist/services/github.test.d.ts +2 -0
  75. package/dist/services/github.test.d.ts.map +1 -0
  76. package/dist/services/github.test.js +64 -0
  77. package/dist/services/github.test.js.map +1 -0
  78. package/dist/services/version.d.ts +106 -0
  79. package/dist/services/version.d.ts.map +1 -0
  80. package/dist/services/version.js +158 -0
  81. package/dist/services/version.js.map +1 -0
  82. package/dist/services/version.test.d.ts +2 -0
  83. package/dist/services/version.test.d.ts.map +1 -0
  84. package/dist/services/version.test.js +136 -0
  85. package/dist/services/version.test.js.map +1 -0
  86. package/dist/utils/errors.d.ts +66 -0
  87. package/dist/utils/errors.d.ts.map +1 -0
  88. package/dist/utils/errors.js +154 -0
  89. package/dist/utils/errors.js.map +1 -0
  90. package/dist/utils/errors.test.d.ts +2 -0
  91. package/dist/utils/errors.test.d.ts.map +1 -0
  92. package/dist/utils/errors.test.js +147 -0
  93. package/dist/utils/errors.test.js.map +1 -0
  94. package/dist/utils/prompts.d.ts +54 -0
  95. package/dist/utils/prompts.d.ts.map +1 -0
  96. package/dist/utils/prompts.js +108 -0
  97. package/dist/utils/prompts.js.map +1 -0
  98. package/package.json +70 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/services/github.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=github.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.test.d.ts","sourceRoot":"","sources":["../../src/services/github.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ // ABOUTME: Unit tests for GitHub service utilities.
2
+ // ABOUTME: Tests repository parsing function and type definitions.
3
+ import { describe, it, expect } from "vitest";
4
+ import { parseRepo } from "./github.js";
5
+ import { GitHubError } from "../utils/errors.js";
6
+ describe("parseRepo", () => {
7
+ it("parses valid owner/repo format", () => {
8
+ const result = parseRepo("codefresh-io/gitops-runtime-helm");
9
+ expect(result).toEqual({
10
+ owner: "codefresh-io",
11
+ repo: "gitops-runtime-helm",
12
+ });
13
+ });
14
+ it("parses simple owner/repo", () => {
15
+ const result = parseRepo("octocat/hello-world");
16
+ expect(result).toEqual({
17
+ owner: "octocat",
18
+ repo: "hello-world",
19
+ });
20
+ });
21
+ it("parses repo with dots", () => {
22
+ const result = parseRepo("owner/repo.js");
23
+ expect(result).toEqual({
24
+ owner: "owner",
25
+ repo: "repo.js",
26
+ });
27
+ });
28
+ it("parses repo with underscores", () => {
29
+ const result = parseRepo("my_org/my_repo");
30
+ expect(result).toEqual({
31
+ owner: "my_org",
32
+ repo: "my_repo",
33
+ });
34
+ });
35
+ it("throws GitHubError for repo without owner", () => {
36
+ expect(() => parseRepo("repo-only")).toThrow(GitHubError);
37
+ expect(() => parseRepo("repo-only")).toThrow("Invalid repository format");
38
+ });
39
+ it("throws GitHubError for empty string", () => {
40
+ expect(() => parseRepo("")).toThrow(GitHubError);
41
+ });
42
+ it("throws GitHubError for too many slashes", () => {
43
+ expect(() => parseRepo("org/repo/extra")).toThrow(GitHubError);
44
+ });
45
+ it("throws GitHubError for empty owner", () => {
46
+ expect(() => parseRepo("/repo")).toThrow(GitHubError);
47
+ });
48
+ it("throws GitHubError for empty repo", () => {
49
+ expect(() => parseRepo("owner/")).toThrow(GitHubError);
50
+ });
51
+ it("throws GitHubError for just a slash", () => {
52
+ expect(() => parseRepo("/")).toThrow(GitHubError);
53
+ });
54
+ it("error message includes expected format", () => {
55
+ try {
56
+ parseRepo("invalid");
57
+ }
58
+ catch (e) {
59
+ expect(e).toBeInstanceOf(GitHubError);
60
+ expect(e.message).toContain("owner/repo");
61
+ }
62
+ });
63
+ });
64
+ //# sourceMappingURL=github.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.test.js","sourceRoot":"","sources":["../../src/services/github.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Parsed version with major, minor, and optional patch components.
4
+ */
5
+ export interface Version {
6
+ major: number;
7
+ minor: number;
8
+ patch?: number;
9
+ }
10
+ /**
11
+ * Full version with all three components (major.minor.patch).
12
+ */
13
+ export interface FullVersion {
14
+ major: number;
15
+ minor: number;
16
+ patch: number;
17
+ }
18
+ /**
19
+ * Zod schema for validating major.minor format (e.g., "0.27").
20
+ */
21
+ export declare const MajorMinorSchema: z.ZodPipe<z.ZodString, z.ZodTransform<Version, string>>;
22
+ /**
23
+ * Zod schema for validating major.minor.patch format (e.g., "0.27.0").
24
+ */
25
+ export declare const FullVersionSchema: z.ZodPipe<z.ZodString, z.ZodTransform<FullVersion, string>>;
26
+ /**
27
+ * Zod schema that accepts either major.minor or major.minor.patch format.
28
+ */
29
+ export declare const VersionSchema: z.ZodPipe<z.ZodString, z.ZodTransform<Version, string>>;
30
+ /**
31
+ * Parses a version string into its components.
32
+ * Accepts both major.minor (0.27) and major.minor.patch (0.27.0) formats.
33
+ *
34
+ * @param input Version string to parse
35
+ * @returns Parsed version object
36
+ * @throws ValidationError if the format is invalid
37
+ */
38
+ export declare function parseVersion(input: string): Version;
39
+ /**
40
+ * Parses a version string that must be in major.minor format.
41
+ *
42
+ * @param input Version string to parse (must be X.Y format)
43
+ * @returns Parsed version object (without patch)
44
+ * @throws ValidationError if the format is invalid
45
+ */
46
+ export declare function parseMajorMinor(input: string): Version;
47
+ /**
48
+ * Parses a version string that must be in major.minor.patch format.
49
+ *
50
+ * @param input Version string to parse (must be X.Y.Z format)
51
+ * @returns Parsed version object with patch
52
+ * @throws ValidationError if the format is invalid
53
+ */
54
+ export declare function parseFullVersion(input: string): FullVersion;
55
+ /**
56
+ * Formats a version as a stable branch name.
57
+ *
58
+ * @param version Parsed version object
59
+ * @returns Branch name (e.g., "stable/0.27")
60
+ */
61
+ export declare function formatStableBranch(version: Version): string;
62
+ /**
63
+ * Formats a version as a prep branch name.
64
+ * Requires a full version with patch number.
65
+ *
66
+ * @param version Parsed version object with patch
67
+ * @returns Branch name (e.g., "prep/v0.27.0")
68
+ */
69
+ export declare function formatPrepBranch(version: FullVersion): string;
70
+ /**
71
+ * Formats a version as a release tag.
72
+ * Requires a full version with patch number.
73
+ *
74
+ * @param version Parsed version object with patch
75
+ * @returns Tag name (e.g., "0.27.0")
76
+ */
77
+ export declare function formatReleaseTag(version: FullVersion): string;
78
+ /**
79
+ * Formats a version object as a string.
80
+ *
81
+ * @param version Parsed version object
82
+ * @returns Version string (e.g., "0.27" or "0.27.0")
83
+ */
84
+ export declare function formatVersion(version: Version): string;
85
+ /**
86
+ * Ensures a version has a patch number, defaulting to 0 if not present.
87
+ *
88
+ * @param version Version that may or may not have a patch
89
+ * @returns Full version with patch number
90
+ */
91
+ export declare function ensureFullVersion(version: Version): FullVersion;
92
+ /**
93
+ * Extracts the major.minor portion from a full version.
94
+ *
95
+ * @param version Full version object
96
+ * @returns Version without patch
97
+ */
98
+ export declare function extractMajorMinor(version: FullVersion): Version;
99
+ /**
100
+ * Extracts the patch number from a version tag string.
101
+ *
102
+ * @param tag Version tag (e.g., "0.27.5")
103
+ * @returns Patch number or 0 if not found
104
+ */
105
+ export declare function extractPatchFromTag(tag: string): number;
106
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/services/version.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,yDAMzB,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,iBAAiB,6DAM1B,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,aAAa,yDAUtB,CAAC;AAEL;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQnD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQtD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAQ3D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAE3D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAE7D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAKtD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAM/D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAK/D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGvD"}
@@ -0,0 +1,158 @@
1
+ // ABOUTME: Version parsing and formatting utilities for release versions.
2
+ // ABOUTME: Handles both major.minor (0.27) and major.minor.patch (0.27.0) formats.
3
+ import { z } from "zod";
4
+ import { ValidationError } from "../utils/errors.js";
5
+ /**
6
+ * Zod schema for validating major.minor format (e.g., "0.27").
7
+ */
8
+ export const MajorMinorSchema = z
9
+ .string()
10
+ .regex(/^\d+\.\d+$/, "Version must be in format: major.minor (e.g., 0.27)")
11
+ .transform((val) => {
12
+ const [major, minor] = val.split(".").map(Number);
13
+ return { major, minor };
14
+ });
15
+ /**
16
+ * Zod schema for validating major.minor.patch format (e.g., "0.27.0").
17
+ */
18
+ export const FullVersionSchema = z
19
+ .string()
20
+ .regex(/^\d+\.\d+\.\d+$/, "Version must be in format: major.minor.patch (e.g., 0.27.0)")
21
+ .transform((val) => {
22
+ const [major, minor, patch] = val.split(".").map(Number);
23
+ return { major, minor, patch };
24
+ });
25
+ /**
26
+ * Zod schema that accepts either major.minor or major.minor.patch format.
27
+ */
28
+ export const VersionSchema = z
29
+ .string()
30
+ .regex(/^\d+\.\d+(\.\d+)?$/, "Version must be in format: X.Y or X.Y.Z (e.g., 0.27 or 0.27.0)")
31
+ .transform((val) => {
32
+ const parts = val.split(".").map(Number);
33
+ return {
34
+ major: parts[0],
35
+ minor: parts[1],
36
+ patch: parts.length === 3 ? parts[2] : undefined,
37
+ };
38
+ });
39
+ /**
40
+ * Parses a version string into its components.
41
+ * Accepts both major.minor (0.27) and major.minor.patch (0.27.0) formats.
42
+ *
43
+ * @param input Version string to parse
44
+ * @returns Parsed version object
45
+ * @throws ValidationError if the format is invalid
46
+ */
47
+ export function parseVersion(input) {
48
+ const result = VersionSchema.safeParse(input);
49
+ if (!result.success) {
50
+ throw new ValidationError(`Invalid version format '${input}'. Expected: X.Y or X.Y.Z (e.g., 0.27 or 0.27.0)`);
51
+ }
52
+ return result.data;
53
+ }
54
+ /**
55
+ * Parses a version string that must be in major.minor format.
56
+ *
57
+ * @param input Version string to parse (must be X.Y format)
58
+ * @returns Parsed version object (without patch)
59
+ * @throws ValidationError if the format is invalid
60
+ */
61
+ export function parseMajorMinor(input) {
62
+ const result = MajorMinorSchema.safeParse(input);
63
+ if (!result.success) {
64
+ throw new ValidationError(`Invalid version format '${input}'. Expected: major.minor (e.g., 0.27)`);
65
+ }
66
+ return result.data;
67
+ }
68
+ /**
69
+ * Parses a version string that must be in major.minor.patch format.
70
+ *
71
+ * @param input Version string to parse (must be X.Y.Z format)
72
+ * @returns Parsed version object with patch
73
+ * @throws ValidationError if the format is invalid
74
+ */
75
+ export function parseFullVersion(input) {
76
+ const result = FullVersionSchema.safeParse(input);
77
+ if (!result.success) {
78
+ throw new ValidationError(`Invalid version format '${input}'. Expected: major.minor.patch (e.g., 0.27.0)`);
79
+ }
80
+ return result.data;
81
+ }
82
+ /**
83
+ * Formats a version as a stable branch name.
84
+ *
85
+ * @param version Parsed version object
86
+ * @returns Branch name (e.g., "stable/0.27")
87
+ */
88
+ export function formatStableBranch(version) {
89
+ return `stable/${version.major}.${version.minor}`;
90
+ }
91
+ /**
92
+ * Formats a version as a prep branch name.
93
+ * Requires a full version with patch number.
94
+ *
95
+ * @param version Parsed version object with patch
96
+ * @returns Branch name (e.g., "prep/v0.27.0")
97
+ */
98
+ export function formatPrepBranch(version) {
99
+ return `prep/v${version.major}.${version.minor}.${version.patch}`;
100
+ }
101
+ /**
102
+ * Formats a version as a release tag.
103
+ * Requires a full version with patch number.
104
+ *
105
+ * @param version Parsed version object with patch
106
+ * @returns Tag name (e.g., "0.27.0")
107
+ */
108
+ export function formatReleaseTag(version) {
109
+ return `${version.major}.${version.minor}.${version.patch}`;
110
+ }
111
+ /**
112
+ * Formats a version object as a string.
113
+ *
114
+ * @param version Parsed version object
115
+ * @returns Version string (e.g., "0.27" or "0.27.0")
116
+ */
117
+ export function formatVersion(version) {
118
+ if (version.patch !== undefined) {
119
+ return `${version.major}.${version.minor}.${version.patch}`;
120
+ }
121
+ return `${version.major}.${version.minor}`;
122
+ }
123
+ /**
124
+ * Ensures a version has a patch number, defaulting to 0 if not present.
125
+ *
126
+ * @param version Version that may or may not have a patch
127
+ * @returns Full version with patch number
128
+ */
129
+ export function ensureFullVersion(version) {
130
+ return {
131
+ major: version.major,
132
+ minor: version.minor,
133
+ patch: version.patch ?? 0,
134
+ };
135
+ }
136
+ /**
137
+ * Extracts the major.minor portion from a full version.
138
+ *
139
+ * @param version Full version object
140
+ * @returns Version without patch
141
+ */
142
+ export function extractMajorMinor(version) {
143
+ return {
144
+ major: version.major,
145
+ minor: version.minor,
146
+ };
147
+ }
148
+ /**
149
+ * Extracts the patch number from a version tag string.
150
+ *
151
+ * @param tag Version tag (e.g., "0.27.5")
152
+ * @returns Patch number or 0 if not found
153
+ */
154
+ export function extractPatchFromTag(tag) {
155
+ const match = tag.match(/\.(\d+)$/);
156
+ return match ? parseInt(match[1], 10) : 0;
157
+ }
158
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/services/version.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=version.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.test.d.ts","sourceRoot":"","sources":["../../src/services/version.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,136 @@
1
+ // ABOUTME: Unit tests for version parsing and formatting utilities.
2
+ // ABOUTME: Tests both valid and invalid version formats.
3
+ import { describe, it, expect } from "vitest";
4
+ import { parseVersion, parseMajorMinor, parseFullVersion, formatStableBranch, formatPrepBranch, formatReleaseTag, formatVersion, ensureFullVersion, extractMajorMinor, } from "./version.js";
5
+ import { ValidationError } from "../utils/errors.js";
6
+ describe("version parsing", () => {
7
+ describe("parseVersion", () => {
8
+ it("parses major.minor format", () => {
9
+ const result = parseVersion("0.27");
10
+ expect(result).toEqual({ major: 0, minor: 27, patch: undefined });
11
+ });
12
+ it("parses major.minor.patch format", () => {
13
+ const result = parseVersion("0.27.5");
14
+ expect(result).toEqual({ major: 0, minor: 27, patch: 5 });
15
+ });
16
+ it("parses double-digit versions", () => {
17
+ const result = parseVersion("10.20.30");
18
+ expect(result).toEqual({ major: 10, minor: 20, patch: 30 });
19
+ });
20
+ it("parses version starting with zero", () => {
21
+ const result = parseVersion("0.0.0");
22
+ expect(result).toEqual({ major: 0, minor: 0, patch: 0 });
23
+ });
24
+ it("throws ValidationError for invalid format - no dot", () => {
25
+ expect(() => parseVersion("027")).toThrow(ValidationError);
26
+ });
27
+ it("throws ValidationError for invalid format - too many parts", () => {
28
+ expect(() => parseVersion("0.27.0.1")).toThrow(ValidationError);
29
+ });
30
+ it("throws ValidationError for invalid format - letters", () => {
31
+ expect(() => parseVersion("v0.27")).toThrow(ValidationError);
32
+ });
33
+ it("throws ValidationError for invalid format - empty", () => {
34
+ expect(() => parseVersion("")).toThrow(ValidationError);
35
+ });
36
+ it("throws ValidationError for invalid format - trailing dot", () => {
37
+ expect(() => parseVersion("0.27.")).toThrow(ValidationError);
38
+ });
39
+ });
40
+ describe("parseMajorMinor", () => {
41
+ it("parses valid major.minor format", () => {
42
+ const result = parseMajorMinor("0.27");
43
+ expect(result).toEqual({ major: 0, minor: 27 });
44
+ });
45
+ it("throws ValidationError for full version", () => {
46
+ expect(() => parseMajorMinor("0.27.0")).toThrow(ValidationError);
47
+ expect(() => parseMajorMinor("0.27.0")).toThrow("major.minor");
48
+ });
49
+ it("throws ValidationError for invalid format", () => {
50
+ expect(() => parseMajorMinor("27")).toThrow(ValidationError);
51
+ });
52
+ });
53
+ describe("parseFullVersion", () => {
54
+ it("parses valid major.minor.patch format", () => {
55
+ const result = parseFullVersion("0.27.5");
56
+ expect(result).toEqual({ major: 0, minor: 27, patch: 5 });
57
+ });
58
+ it("throws ValidationError for major.minor only", () => {
59
+ expect(() => parseFullVersion("0.27")).toThrow(ValidationError);
60
+ expect(() => parseFullVersion("0.27")).toThrow("major.minor.patch");
61
+ });
62
+ it("throws ValidationError for invalid format", () => {
63
+ expect(() => parseFullVersion("v0.27.0")).toThrow(ValidationError);
64
+ });
65
+ });
66
+ });
67
+ describe("version formatting", () => {
68
+ describe("formatStableBranch", () => {
69
+ it("formats as stable/<major>.<minor>", () => {
70
+ const version = { major: 0, minor: 27 };
71
+ expect(formatStableBranch(version)).toBe("stable/0.27");
72
+ });
73
+ it("ignores patch version", () => {
74
+ const version = { major: 0, minor: 27, patch: 5 };
75
+ expect(formatStableBranch(version)).toBe("stable/0.27");
76
+ });
77
+ });
78
+ describe("formatPrepBranch", () => {
79
+ it("formats as prep/v<major>.<minor>.<patch>", () => {
80
+ const version = { major: 0, minor: 27, patch: 0 };
81
+ expect(formatPrepBranch(version)).toBe("prep/v0.27.0");
82
+ });
83
+ it("includes non-zero patch", () => {
84
+ const version = { major: 0, minor: 27, patch: 5 };
85
+ expect(formatPrepBranch(version)).toBe("prep/v0.27.5");
86
+ });
87
+ });
88
+ describe("formatReleaseTag", () => {
89
+ it("formats as <major>.<minor>.<patch>", () => {
90
+ const version = { major: 0, minor: 27, patch: 0 };
91
+ expect(formatReleaseTag(version)).toBe("0.27.0");
92
+ });
93
+ });
94
+ describe("formatVersion", () => {
95
+ it("formats version without patch", () => {
96
+ const version = { major: 0, minor: 27 };
97
+ expect(formatVersion(version)).toBe("0.27");
98
+ });
99
+ it("formats version with patch", () => {
100
+ const version = { major: 0, minor: 27, patch: 5 };
101
+ expect(formatVersion(version)).toBe("0.27.5");
102
+ });
103
+ it("includes patch even if zero", () => {
104
+ const version = { major: 0, minor: 27, patch: 0 };
105
+ expect(formatVersion(version)).toBe("0.27.0");
106
+ });
107
+ });
108
+ });
109
+ describe("version conversions", () => {
110
+ describe("ensureFullVersion", () => {
111
+ it("adds patch 0 when missing", () => {
112
+ const version = { major: 0, minor: 27 };
113
+ const result = ensureFullVersion(version);
114
+ expect(result).toEqual({ major: 0, minor: 27, patch: 0 });
115
+ });
116
+ it("preserves existing patch", () => {
117
+ const version = { major: 0, minor: 27, patch: 5 };
118
+ const result = ensureFullVersion(version);
119
+ expect(result).toEqual({ major: 0, minor: 27, patch: 5 });
120
+ });
121
+ it("preserves patch 0", () => {
122
+ const version = { major: 0, minor: 27, patch: 0 };
123
+ const result = ensureFullVersion(version);
124
+ expect(result).toEqual({ major: 0, minor: 27, patch: 0 });
125
+ });
126
+ });
127
+ describe("extractMajorMinor", () => {
128
+ it("removes patch from full version", () => {
129
+ const version = { major: 0, minor: 27, patch: 5 };
130
+ const result = extractMajorMinor(version);
131
+ expect(result).toEqual({ major: 0, minor: 27 });
132
+ expect(result).not.toHaveProperty("patch");
133
+ });
134
+ });
135
+ });
136
+ //# sourceMappingURL=version.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.test.js","sourceRoot":"","sources":["../../src/services/version.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Exit codes used by the CLI.
3
+ * These are consistent across all commands for scripting compatibility.
4
+ */
5
+ export declare const ExitCode: {
6
+ readonly Success: 0;
7
+ readonly GenericError: 1;
8
+ readonly InvalidUsage: 2;
9
+ readonly GitHubError: 3;
10
+ readonly NotFound: 4;
11
+ readonly UserCancelled: 5;
12
+ readonly AIError: 6;
13
+ };
14
+ export type ExitCodeValue = (typeof ExitCode)[keyof typeof ExitCode];
15
+ /**
16
+ * Base class for all CLI errors.
17
+ * Includes an exit code that will be used when the process exits.
18
+ */
19
+ export declare class CLIError extends Error {
20
+ readonly exitCode: ExitCodeValue;
21
+ constructor(message: string, exitCode?: ExitCodeValue);
22
+ }
23
+ /**
24
+ * Thrown when user provides invalid arguments or version format.
25
+ * Exit code: 2
26
+ */
27
+ export declare class ValidationError extends CLIError {
28
+ constructor(message: string);
29
+ }
30
+ /**
31
+ * Thrown when a GitHub API operation fails.
32
+ * Exit code: 3
33
+ */
34
+ export declare class GitHubError extends CLIError {
35
+ readonly statusCode?: number;
36
+ readonly suggestion?: string;
37
+ constructor(message: string, statusCode?: number, suggestion?: string);
38
+ }
39
+ /**
40
+ * Thrown when a required resource is not found (branch, PR, release, etc.).
41
+ * Exit code: 4
42
+ */
43
+ export declare class NotFoundError extends CLIError {
44
+ readonly resource: string;
45
+ constructor(resource: string, message?: string);
46
+ }
47
+ /**
48
+ * Thrown when the user cancels an operation.
49
+ * Exit code: 5
50
+ */
51
+ export declare class UserCancelledError extends CLIError {
52
+ constructor(message?: string);
53
+ }
54
+ /**
55
+ * Thrown when AI generation fails.
56
+ * Exit code: 6
57
+ */
58
+ export declare class AIError extends CLIError {
59
+ constructor(message: string);
60
+ }
61
+ /**
62
+ * Handles an error and exits the process with the appropriate code.
63
+ * For CLIError subclasses, uses their exit code. For other errors, uses 1.
64
+ */
65
+ export declare function handleError(error: unknown): never;
66
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,QAAQ;;;;;;;;CAQX,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAErE;;;GAGG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;gBAErB,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,aAAqC;CAM7E;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,QAAQ;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAEjB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAMtE;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAK/C;AAED;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;gBAClC,OAAO,GAAE,MAAsC;CAI5D;AAED;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,QAAQ;gBACvB,OAAO,EAAE,MAAM;CAI5B;AAwCD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CA6BjD"}