@radkode/neo 0.11.6 → 0.12.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.
@@ -1,3 +1,6 @@
1
1
  import { Command } from '@commander-js/extra-typings';
2
+ import type { GitBranchOptions } from '../../../types/schemas.js';
3
+ import { type Result } from '../../../core/errors/index.js';
4
+ export declare function executeBranch(options: GitBranchOptions): Promise<Result<void>>;
2
5
  export declare function createBranchCommand(): Command;
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/git/branch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AA0CtD,wBAAgB,mBAAmB,IAAI,OAAO,CA4E7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/git/branch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAOtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAA+B,MAAM,wBAAwB,CAAC;AAgClF,wBAAsB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAiDpF;AA4hBD,wBAAgB,mBAAmB,IAAI,OAAO,CAmC7C"}
@@ -5,61 +5,38 @@ import { logger } from '../../../utils/logger.js';
5
5
  import { ui } from '../../../utils/ui.js';
6
6
  import { validate, isValidationError } from '../../../utils/validation.js';
7
7
  import { gitBranchOptionsSchema } from '../../../types/schemas.js';
8
- export function createBranchCommand() {
9
- const command = new Command('branch');
10
- command
11
- .description('Analyze and manage local git branches')
12
- .option('--dry-run', 'show what would be deleted without actually deleting')
13
- .option('--force', 'force delete branches without confirmation prompts')
14
- .action(async (options) => {
15
- let validatedOptions;
16
- try {
17
- validatedOptions = validate(gitBranchOptionsSchema, options, 'git branch options');
8
+ import { success, failure, isFailure } from '../../../core/errors/index.js';
9
+ import { GitErrors, isNotGitRepository } from '../../../utils/git-errors.js';
10
+ export async function executeBranch(options) {
11
+ const spinner = ui.spinner('Analyzing local branches');
12
+ spinner.start();
13
+ try {
14
+ await verifyGitRepository();
15
+ const analysis = await analyzeBranches();
16
+ spinner.succeed(`Found ${analysis.totalBranches} local branches`);
17
+ displayBranchSummary(analysis);
18
+ if (analysis.cleanupCandidates.length === 0) {
19
+ ui.success('All branches are either protected or have active remote tracking - nothing to clean up!');
20
+ return success(undefined);
18
21
  }
19
- catch (error) {
20
- if (isValidationError(error)) {
21
- process.exit(1);
22
- }
23
- throw error;
22
+ displayCleanupCandidates(analysis);
23
+ if (options.dryRun) {
24
+ ui.warn('Dry run mode - no branches will be deleted');
25
+ return success(undefined);
24
26
  }
25
- const spinner = ui.spinner('Analyzing local branches');
26
- spinner.start();
27
- try {
28
- await verifyGitRepository();
29
- const analysis = await analyzeBranches();
30
- spinner.succeed(`Found ${analysis.totalBranches} local branches`);
31
- displayBranchSummary(analysis);
32
- if (analysis.cleanupCandidates.length === 0) {
33
- ui.success('All branches are either protected or have active remote tracking - nothing to clean up!');
34
- return;
35
- }
36
- displayCleanupCandidates(analysis);
37
- if (validatedOptions.dryRun) {
38
- ui.warn('Dry run mode - no branches will be deleted');
39
- return;
40
- }
41
- await interactiveBranchCleanup(analysis.cleanupCandidates, validatedOptions.force);
27
+ return interactiveBranchCleanup(analysis.cleanupCandidates, options.force);
28
+ }
29
+ catch (error) {
30
+ spinner.fail('Failed to analyze branches');
31
+ if (isNotGitRepository(error)) {
32
+ return failure(GitErrors.notARepository('branch'));
42
33
  }
43
- catch (error) {
44
- spinner.fail('Failed to analyze branches');
45
- if (error instanceof Error) {
46
- if (error.message.includes('not a git repository')) {
47
- ui.error('Not a git repository!');
48
- ui.warn('Make sure you are in a git repository directory');
49
- process.exit(1);
50
- }
51
- if (error.message.includes('no branches found')) {
52
- ui.error('No local branches found!');
53
- ui.warn('This repository appears to have no local branches');
54
- process.exit(1);
55
- }
56
- }
57
- ui.error('An unexpected error occurred');
58
- ui.muted(error instanceof Error ? error.message : String(error));
59
- process.exit(1);
34
+ const errorMessage = error instanceof Error ? error.message : String(error);
35
+ if (errorMessage.includes('no branches found')) {
36
+ return failure(GitErrors.unknown('branch', new Error('No local branches found. This repository appears to have no local branches.')));
60
37
  }
61
- });
62
- return command;
38
+ return failure(GitErrors.unknown('branch', error));
39
+ }
63
40
  }
64
41
  async function verifyGitRepository() {
65
42
  try {
@@ -223,15 +200,14 @@ async function interactiveBranchCleanup(cleanupCandidates, forceMode = false) {
223
200
  ]);
224
201
  switch (action) {
225
202
  case 'delete_all':
226
- await deleteBranches(cleanupCandidates, forceMode);
227
- break;
203
+ return deleteBranches(cleanupCandidates, forceMode);
228
204
  case 'delete_selected':
229
- await selectAndDeleteBranches(cleanupCandidates, forceMode);
230
- break;
205
+ return selectAndDeleteBranches(cleanupCandidates, forceMode);
231
206
  case 'cancel':
232
207
  ui.muted('Operation cancelled. No branches were deleted.');
233
- return;
208
+ return success(undefined);
234
209
  }
210
+ return success(undefined);
235
211
  }
236
212
  async function selectAndDeleteBranches(cleanupCandidates, forceMode) {
237
213
  const { selectedBranches } = await inquirer.prompt({
@@ -251,12 +227,12 @@ async function selectAndDeleteBranches(cleanupCandidates, forceMode) {
251
227
  },
252
228
  });
253
229
  const branchesToDelete = cleanupCandidates.filter((b) => selectedBranches.includes(b.name));
254
- await deleteBranches(branchesToDelete, forceMode);
230
+ return deleteBranches(branchesToDelete, forceMode);
255
231
  }
256
232
  async function deleteBranches(branches, forceMode) {
257
233
  if (branches.length === 0) {
258
234
  ui.info('No branches selected for deletion');
259
- return;
235
+ return success(undefined);
260
236
  }
261
237
  if (!forceMode) {
262
238
  const { confirm } = await inquirer.prompt([
@@ -269,7 +245,7 @@ async function deleteBranches(branches, forceMode) {
269
245
  ]);
270
246
  if (!confirm) {
271
247
  ui.muted('Operation cancelled. No branches were deleted.');
272
- return;
248
+ return success(undefined);
273
249
  }
274
250
  }
275
251
  const results = {
@@ -337,6 +313,7 @@ async function deleteBranches(branches, forceMode) {
337
313
  }
338
314
  }
339
315
  displayDeletionSummary(results);
316
+ return success(undefined);
340
317
  }
341
318
  async function checkIfSquashMerged(branchName) {
342
319
  try {
@@ -448,4 +425,36 @@ function displayDeletionSummary(results) {
448
425
  ui.success('Branch cleanup completed!');
449
426
  }
450
427
  }
428
+ export function createBranchCommand() {
429
+ const command = new Command('branch');
430
+ command
431
+ .description('Analyze and manage local git branches')
432
+ .option('--dry-run', 'show what would be deleted without actually deleting')
433
+ .option('--force', 'force delete branches without confirmation prompts')
434
+ .action(async (options) => {
435
+ let validatedOptions;
436
+ try {
437
+ validatedOptions = validate(gitBranchOptionsSchema, options, 'git branch options');
438
+ }
439
+ catch (error) {
440
+ if (isValidationError(error)) {
441
+ process.exit(1);
442
+ }
443
+ throw error;
444
+ }
445
+ const result = await executeBranch(validatedOptions);
446
+ if (isFailure(result)) {
447
+ ui.error(result.error.message);
448
+ if (result.error.suggestions && result.error.suggestions.length > 0) {
449
+ ui.warn('Suggestions:');
450
+ ui.list(result.error.suggestions);
451
+ }
452
+ if (result.error.context?.['error']) {
453
+ ui.muted(String(result.error.context['error']));
454
+ }
455
+ process.exit(1);
456
+ }
457
+ });
458
+ return command;
459
+ }
451
460
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/git/branch/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/git/branch/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
1
  import { Command } from '@commander-js/extra-typings';
2
+ import type { GitCommitOptions } from '../../../types/schemas.js';
3
+ import { type Result } from '../../../core/errors/index.js';
4
+ export declare function executeCommit(options: GitCommitOptions): Promise<Result<void>>;
2
5
  export declare function createCommitCommand(): Command;
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/git/commit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAiFtD,wBAAgB,mBAAmB,IAAI,OAAO,CA6N7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/git/commit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAMtD,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,KAAK,MAAM,EAA+B,MAAM,wBAAwB,CAAC;AAqFlF,wBAAsB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAwLpF;AAKD,wBAAgB,mBAAmB,IAAI,OAAO,CAuC7C"}
@@ -4,6 +4,8 @@ import inquirer from 'inquirer';
4
4
  import { ui } from '../../../utils/ui.js';
5
5
  import { validate, isValidationError } from '../../../utils/validation.js';
6
6
  import { gitCommitOptionsSchema } from '../../../types/schemas.js';
7
+ import { success, failure, isFailure } from '../../../core/errors/index.js';
8
+ import { GitErrors, isNotGitRepository } from '../../../utils/git-errors.js';
7
9
  const COMMIT_TYPE_DESCRIPTIONS = {
8
10
  feat: 'A new feature',
9
11
  fix: 'A bug fix',
@@ -48,6 +50,162 @@ async function getStagedFiles() {
48
50
  return [];
49
51
  }
50
52
  }
53
+ function isNothingToCommitError(error) {
54
+ const errorMessage = error instanceof Error ? error.message.toLowerCase() : String(error).toLowerCase();
55
+ return errorMessage.includes('nothing to commit');
56
+ }
57
+ export async function executeCommit(options) {
58
+ try {
59
+ await execa('git', ['rev-parse', '--git-dir']);
60
+ if (options.all) {
61
+ const spinner = ui.spinner('Staging modified files');
62
+ spinner.start();
63
+ try {
64
+ await execa('git', ['add', '-u']);
65
+ spinner.succeed('Staged all modified files');
66
+ }
67
+ catch (error) {
68
+ spinner.fail('Failed to stage files');
69
+ return failure(GitErrors.unknown('commit', error));
70
+ }
71
+ }
72
+ const hasStaged = await hasStagedChanges();
73
+ if (!hasStaged) {
74
+ return failure(GitErrors.noStagedChanges('commit'));
75
+ }
76
+ const stagedFiles = await getStagedFiles();
77
+ ui.section('Staged Files');
78
+ ui.list(stagedFiles.slice(0, 10));
79
+ if (stagedFiles.length > 10) {
80
+ ui.muted(`... and ${stagedFiles.length - 10} more files`);
81
+ }
82
+ console.log('');
83
+ let commitType;
84
+ let commitScope;
85
+ let commitMessage;
86
+ let commitBody;
87
+ let isBreaking;
88
+ const quickMode = options.type !== undefined && options.message !== undefined;
89
+ if (quickMode) {
90
+ commitType = options.type;
91
+ commitScope = options.scope;
92
+ commitMessage = options.message;
93
+ commitBody = options.body;
94
+ isBreaking = options.breaking || false;
95
+ }
96
+ else {
97
+ ui.section('Conventional Commit Wizard');
98
+ const answers = await inquirer.prompt([
99
+ {
100
+ type: 'list',
101
+ name: 'type',
102
+ message: 'Select the type of change:',
103
+ choices: Object.entries(COMMIT_TYPE_DESCRIPTIONS).map(([value, description]) => ({
104
+ name: `${value.padEnd(10)} - ${description}`,
105
+ value,
106
+ short: value,
107
+ })),
108
+ default: options.type,
109
+ },
110
+ {
111
+ type: 'input',
112
+ name: 'scope',
113
+ message: 'Scope of the change (optional, lowercase):',
114
+ default: options.scope,
115
+ validate: (input) => {
116
+ if (!input)
117
+ return true;
118
+ if (!/^[a-z][a-z0-9-]*$/.test(input)) {
119
+ return 'Scope must be lowercase and alphanumeric with hyphens';
120
+ }
121
+ return true;
122
+ },
123
+ },
124
+ {
125
+ type: 'input',
126
+ name: 'message',
127
+ message: 'Short description (max 100 chars):',
128
+ default: options.message,
129
+ validate: (input) => {
130
+ if (!input || input.trim().length === 0) {
131
+ return 'Message is required';
132
+ }
133
+ if (input.length > 100) {
134
+ return 'Message too long (max 100 characters)';
135
+ }
136
+ return true;
137
+ },
138
+ },
139
+ {
140
+ type: 'input',
141
+ name: 'body',
142
+ message: 'Longer description (optional, press Enter to skip):',
143
+ default: options.body,
144
+ },
145
+ {
146
+ type: 'confirm',
147
+ name: 'breaking',
148
+ message: 'Is this a breaking change?',
149
+ default: options.breaking || false,
150
+ },
151
+ ]);
152
+ commitType = answers.type;
153
+ commitScope = answers.scope || undefined;
154
+ commitMessage = answers.message;
155
+ commitBody = answers.body || undefined;
156
+ isBreaking = answers.breaking;
157
+ }
158
+ const formattedMessage = formatCommitMessage(commitType, commitScope, commitMessage, commitBody, isBreaking);
159
+ console.log('');
160
+ ui.section('Commit Preview');
161
+ ui.keyValue([
162
+ ['Type', commitType],
163
+ ['Scope', commitScope || '(none)'],
164
+ ['Breaking', isBreaking ? 'Yes' : 'No'],
165
+ ]);
166
+ console.log('');
167
+ ui.highlight('Full commit message:');
168
+ console.log('');
169
+ ui.muted(formattedMessage);
170
+ console.log('');
171
+ if (!quickMode) {
172
+ const { confirm } = await inquirer.prompt([
173
+ {
174
+ type: 'confirm',
175
+ name: 'confirm',
176
+ message: 'Create this commit?',
177
+ default: true,
178
+ },
179
+ ]);
180
+ if (!confirm) {
181
+ ui.warn('Commit cancelled');
182
+ return success(undefined);
183
+ }
184
+ }
185
+ const spinner = ui.spinner('Creating commit');
186
+ spinner.start();
187
+ try {
188
+ await execa('git', ['commit', '-m', formattedMessage]);
189
+ spinner.succeed('Commit created successfully!');
190
+ const { stdout: commitHash } = await execa('git', ['rev-parse', '--short', 'HEAD']);
191
+ ui.info(`Commit: ${commitHash.trim()}`);
192
+ return success(undefined);
193
+ }
194
+ catch (error) {
195
+ spinner.fail('Failed to create commit');
196
+ return failure(GitErrors.unknown('commit', error));
197
+ }
198
+ }
199
+ catch (error) {
200
+ if (isNotGitRepository(error)) {
201
+ return failure(GitErrors.notARepository('commit'));
202
+ }
203
+ if (isNothingToCommitError(error)) {
204
+ return failure(GitErrors.nothingToCommit('commit'));
205
+ }
206
+ return failure(GitErrors.unknown('commit', error));
207
+ }
208
+ }
51
209
  export function createCommitCommand() {
52
210
  const command = new Command('commit');
53
211
  command
@@ -69,168 +227,16 @@ export function createCommitCommand() {
69
227
  }
70
228
  throw error;
71
229
  }
72
- try {
73
- await execa('git', ['rev-parse', '--git-dir']);
74
- if (validatedOptions.all) {
75
- const spinner = ui.spinner('Staging modified files');
76
- spinner.start();
77
- try {
78
- await execa('git', ['add', '-u']);
79
- spinner.succeed('Staged all modified files');
80
- }
81
- catch (error) {
82
- spinner.fail('Failed to stage files');
83
- throw error;
84
- }
85
- }
86
- const hasStaged = await hasStagedChanges();
87
- if (!hasStaged) {
88
- ui.warn('No files staged for commit');
89
- ui.info('Stage files before committing:');
90
- ui.list([
91
- 'Stage specific files: git add <file>',
92
- 'Stage all changes: git add .',
93
- 'Use --all flag: neo git commit --all',
94
- ]);
95
- process.exit(1);
96
- }
97
- const stagedFiles = await getStagedFiles();
98
- ui.section('Staged Files');
99
- ui.list(stagedFiles.slice(0, 10));
100
- if (stagedFiles.length > 10) {
101
- ui.muted(`... and ${stagedFiles.length - 10} more files`);
102
- }
103
- console.log('');
104
- let commitType;
105
- let commitScope;
106
- let commitMessage;
107
- let commitBody;
108
- let isBreaking;
109
- const quickMode = validatedOptions.type !== undefined && validatedOptions.message !== undefined;
110
- if (quickMode) {
111
- commitType = validatedOptions.type;
112
- commitScope = validatedOptions.scope;
113
- commitMessage = validatedOptions.message;
114
- commitBody = validatedOptions.body;
115
- isBreaking = validatedOptions.breaking || false;
230
+ const result = await executeCommit(validatedOptions);
231
+ if (isFailure(result)) {
232
+ ui.error(result.error.message);
233
+ if (result.error.suggestions && result.error.suggestions.length > 0) {
234
+ ui.warn('Suggestions:');
235
+ ui.list(result.error.suggestions);
116
236
  }
117
- else {
118
- ui.section('Conventional Commit Wizard');
119
- const answers = await inquirer.prompt([
120
- {
121
- type: 'list',
122
- name: 'type',
123
- message: 'Select the type of change:',
124
- choices: Object.entries(COMMIT_TYPE_DESCRIPTIONS).map(([value, description]) => ({
125
- name: `${value.padEnd(10)} - ${description}`,
126
- value,
127
- short: value,
128
- })),
129
- default: validatedOptions.type,
130
- },
131
- {
132
- type: 'input',
133
- name: 'scope',
134
- message: 'Scope of the change (optional, lowercase):',
135
- default: validatedOptions.scope,
136
- validate: (input) => {
137
- if (!input)
138
- return true;
139
- if (!/^[a-z][a-z0-9-]*$/.test(input)) {
140
- return 'Scope must be lowercase and alphanumeric with hyphens';
141
- }
142
- return true;
143
- },
144
- },
145
- {
146
- type: 'input',
147
- name: 'message',
148
- message: 'Short description (max 100 chars):',
149
- default: validatedOptions.message,
150
- validate: (input) => {
151
- if (!input || input.trim().length === 0) {
152
- return 'Message is required';
153
- }
154
- if (input.length > 100) {
155
- return 'Message too long (max 100 characters)';
156
- }
157
- return true;
158
- },
159
- },
160
- {
161
- type: 'input',
162
- name: 'body',
163
- message: 'Longer description (optional, press Enter to skip):',
164
- default: validatedOptions.body,
165
- },
166
- {
167
- type: 'confirm',
168
- name: 'breaking',
169
- message: 'Is this a breaking change?',
170
- default: validatedOptions.breaking || false,
171
- },
172
- ]);
173
- commitType = answers.type;
174
- commitScope = answers.scope || undefined;
175
- commitMessage = answers.message;
176
- commitBody = answers.body || undefined;
177
- isBreaking = answers.breaking;
178
- }
179
- const formattedMessage = formatCommitMessage(commitType, commitScope, commitMessage, commitBody, isBreaking);
180
- console.log('');
181
- ui.section('Commit Preview');
182
- ui.keyValue([
183
- ['Type', commitType],
184
- ['Scope', commitScope || '(none)'],
185
- ['Breaking', isBreaking ? 'Yes' : 'No'],
186
- ]);
187
- console.log('');
188
- ui.highlight('Full commit message:');
189
- console.log('');
190
- ui.muted(formattedMessage);
191
- console.log('');
192
- if (!quickMode) {
193
- const { confirm } = await inquirer.prompt([
194
- {
195
- type: 'confirm',
196
- name: 'confirm',
197
- message: 'Create this commit?',
198
- default: true,
199
- },
200
- ]);
201
- if (!confirm) {
202
- ui.warn('Commit cancelled');
203
- process.exit(0);
204
- }
205
- }
206
- const spinner = ui.spinner('Creating commit');
207
- spinner.start();
208
- try {
209
- await execa('git', ['commit', '-m', formattedMessage]);
210
- spinner.succeed('Commit created successfully!');
211
- const { stdout: commitHash } = await execa('git', ['rev-parse', '--short', 'HEAD']);
212
- ui.info(`Commit: ${commitHash.trim()}`);
213
- }
214
- catch (error) {
215
- spinner.fail('Failed to create commit');
216
- throw error;
217
- }
218
- }
219
- catch (error) {
220
- if (error instanceof Error) {
221
- if (error.message?.includes('not a git repository')) {
222
- ui.error('Not a git repository!');
223
- ui.warn('Make sure you are in a git repository directory');
224
- process.exit(1);
225
- }
226
- if (error.message?.includes('nothing to commit')) {
227
- ui.error('Nothing to commit');
228
- ui.warn('All changes are already committed');
229
- process.exit(1);
230
- }
237
+ if (result.error.context?.['error']) {
238
+ ui.muted(String(result.error.context['error']));
231
239
  }
232
- ui.error('Failed to create commit');
233
- ui.muted(error instanceof Error ? error.message : String(error));
234
240
  process.exit(1);
235
241
  }
236
242
  });