@camaradesuk/git-worktree-tools 1.0.3

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 (119) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +259 -0
  3. package/dist/cli/cleanpr.d.ts +13 -0
  4. package/dist/cli/cleanpr.d.ts.map +1 -0
  5. package/dist/cli/cleanpr.js +441 -0
  6. package/dist/cli/cleanpr.js.map +1 -0
  7. package/dist/cli/lswt.d.ts +11 -0
  8. package/dist/cli/lswt.d.ts.map +1 -0
  9. package/dist/cli/lswt.js +313 -0
  10. package/dist/cli/lswt.js.map +1 -0
  11. package/dist/cli/newpr.d.ts +11 -0
  12. package/dist/cli/newpr.d.ts.map +1 -0
  13. package/dist/cli/newpr.js +888 -0
  14. package/dist/cli/newpr.js.map +1 -0
  15. package/dist/cli/wtlink.d.ts +15 -0
  16. package/dist/cli/wtlink.d.ts.map +1 -0
  17. package/dist/cli/wtlink.js +124 -0
  18. package/dist/cli/wtlink.js.map +1 -0
  19. package/dist/e2e/cli.e2e.test.d.ts +2 -0
  20. package/dist/e2e/cli.e2e.test.d.ts.map +1 -0
  21. package/dist/e2e/cli.e2e.test.js +215 -0
  22. package/dist/e2e/cli.e2e.test.js.map +1 -0
  23. package/dist/index.d.ts +20 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +17 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/integration/git.integration.test.d.ts +2 -0
  28. package/dist/integration/git.integration.test.d.ts.map +1 -0
  29. package/dist/integration/git.integration.test.js +333 -0
  30. package/dist/integration/git.integration.test.js.map +1 -0
  31. package/dist/lib/colors.d.ts +59 -0
  32. package/dist/lib/colors.d.ts.map +1 -0
  33. package/dist/lib/colors.js +145 -0
  34. package/dist/lib/colors.js.map +1 -0
  35. package/dist/lib/colors.test.d.ts +2 -0
  36. package/dist/lib/colors.test.d.ts.map +1 -0
  37. package/dist/lib/colors.test.js +69 -0
  38. package/dist/lib/colors.test.js.map +1 -0
  39. package/dist/lib/config.d.ts +58 -0
  40. package/dist/lib/config.d.ts.map +1 -0
  41. package/dist/lib/config.js +91 -0
  42. package/dist/lib/config.js.map +1 -0
  43. package/dist/lib/config.test.d.ts +2 -0
  44. package/dist/lib/config.test.d.ts.map +1 -0
  45. package/dist/lib/config.test.js +84 -0
  46. package/dist/lib/config.test.js.map +1 -0
  47. package/dist/lib/constants.d.ts +37 -0
  48. package/dist/lib/constants.d.ts.map +1 -0
  49. package/dist/lib/constants.js +37 -0
  50. package/dist/lib/constants.js.map +1 -0
  51. package/dist/lib/errors.d.ts +88 -0
  52. package/dist/lib/errors.d.ts.map +1 -0
  53. package/dist/lib/errors.js +112 -0
  54. package/dist/lib/errors.js.map +1 -0
  55. package/dist/lib/errors.test.d.ts +2 -0
  56. package/dist/lib/errors.test.d.ts.map +1 -0
  57. package/dist/lib/errors.test.js +117 -0
  58. package/dist/lib/errors.test.js.map +1 -0
  59. package/dist/lib/git.d.ts +224 -0
  60. package/dist/lib/git.d.ts.map +1 -0
  61. package/dist/lib/git.js +524 -0
  62. package/dist/lib/git.js.map +1 -0
  63. package/dist/lib/git.test.d.ts +2 -0
  64. package/dist/lib/git.test.d.ts.map +1 -0
  65. package/dist/lib/git.test.js +402 -0
  66. package/dist/lib/git.test.js.map +1 -0
  67. package/dist/lib/github.d.ts +82 -0
  68. package/dist/lib/github.d.ts.map +1 -0
  69. package/dist/lib/github.js +254 -0
  70. package/dist/lib/github.js.map +1 -0
  71. package/dist/lib/github.test.d.ts +2 -0
  72. package/dist/lib/github.test.d.ts.map +1 -0
  73. package/dist/lib/github.test.js +258 -0
  74. package/dist/lib/github.test.js.map +1 -0
  75. package/dist/lib/prompts.d.ts +39 -0
  76. package/dist/lib/prompts.d.ts.map +1 -0
  77. package/dist/lib/prompts.js +213 -0
  78. package/dist/lib/prompts.js.map +1 -0
  79. package/dist/lib/prompts.test.d.ts +2 -0
  80. package/dist/lib/prompts.test.d.ts.map +1 -0
  81. package/dist/lib/prompts.test.js +250 -0
  82. package/dist/lib/prompts.test.js.map +1 -0
  83. package/dist/lib/state-detection.d.ts +65 -0
  84. package/dist/lib/state-detection.d.ts.map +1 -0
  85. package/dist/lib/state-detection.js +186 -0
  86. package/dist/lib/state-detection.js.map +1 -0
  87. package/dist/lib/state-detection.test.d.ts +2 -0
  88. package/dist/lib/state-detection.test.d.ts.map +1 -0
  89. package/dist/lib/state-detection.test.js +164 -0
  90. package/dist/lib/state-detection.test.js.map +1 -0
  91. package/dist/lib/wtlink/index.d.ts +5 -0
  92. package/dist/lib/wtlink/index.d.ts.map +1 -0
  93. package/dist/lib/wtlink/index.js +7 -0
  94. package/dist/lib/wtlink/index.js.map +1 -0
  95. package/dist/lib/wtlink/link-configs.d.ts +10 -0
  96. package/dist/lib/wtlink/link-configs.d.ts.map +1 -0
  97. package/dist/lib/wtlink/link-configs.js +411 -0
  98. package/dist/lib/wtlink/link-configs.js.map +1 -0
  99. package/dist/lib/wtlink/link-configs.test.d.ts +2 -0
  100. package/dist/lib/wtlink/link-configs.test.d.ts.map +1 -0
  101. package/dist/lib/wtlink/link-configs.test.js +179 -0
  102. package/dist/lib/wtlink/link-configs.test.js.map +1 -0
  103. package/dist/lib/wtlink/main-menu.d.ts +2 -0
  104. package/dist/lib/wtlink/main-menu.d.ts.map +1 -0
  105. package/dist/lib/wtlink/main-menu.js +149 -0
  106. package/dist/lib/wtlink/main-menu.js.map +1 -0
  107. package/dist/lib/wtlink/manage-manifest.d.ts +9 -0
  108. package/dist/lib/wtlink/manage-manifest.d.ts.map +1 -0
  109. package/dist/lib/wtlink/manage-manifest.js +1262 -0
  110. package/dist/lib/wtlink/manage-manifest.js.map +1 -0
  111. package/dist/lib/wtlink/validate-manifest.d.ts +6 -0
  112. package/dist/lib/wtlink/validate-manifest.d.ts.map +1 -0
  113. package/dist/lib/wtlink/validate-manifest.js +51 -0
  114. package/dist/lib/wtlink/validate-manifest.js.map +1 -0
  115. package/dist/lib/wtlink/validate-manifest.test.d.ts +2 -0
  116. package/dist/lib/wtlink/validate-manifest.test.d.ts.map +1 -0
  117. package/dist/lib/wtlink/validate-manifest.test.js +115 -0
  118. package/dist/lib/wtlink/validate-manifest.test.js.map +1 -0
  119. package/package.json +84 -0
@@ -0,0 +1,441 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * cleanpr - Clean up PR worktrees after merge/close
4
+ *
5
+ * Usage:
6
+ * cleanpr # Interactive cleanup of merged/closed PRs
7
+ * cleanpr <PR_NUMBER> # Clean specific PR worktree
8
+ * cleanpr --all # Clean all merged/closed PRs
9
+ * cleanpr <PR_NUMBER> -r # Also delete remote branch
10
+ * cleanpr <PR_NUMBER> -f # Force removal with uncommitted changes
11
+ */
12
+ import { execSync } from 'child_process';
13
+ import * as path from 'path';
14
+ import * as git from '../lib/git.js';
15
+ import * as github from '../lib/github.js';
16
+ import * as prompts from '../lib/prompts.js';
17
+ import * as colors from '../lib/colors.js';
18
+ import { loadConfig } from '../lib/config.js';
19
+ function parseArgs() {
20
+ const args = process.argv.slice(2);
21
+ let prNumber = null;
22
+ const options = {
23
+ deleteRemote: false,
24
+ force: false,
25
+ all: false,
26
+ interactive: true,
27
+ };
28
+ let i = 0;
29
+ while (i < args.length) {
30
+ const arg = args[i];
31
+ switch (arg) {
32
+ case '-h':
33
+ case '--help':
34
+ printHelp();
35
+ process.exit(0);
36
+ break;
37
+ case '-r':
38
+ case '--remote':
39
+ options.deleteRemote = true;
40
+ break;
41
+ case '-f':
42
+ case '--force':
43
+ options.force = true;
44
+ break;
45
+ case '-a':
46
+ case '--all':
47
+ options.all = true;
48
+ options.interactive = false;
49
+ break;
50
+ default:
51
+ if (arg.startsWith('-')) {
52
+ console.error(colors.error(`Unknown option: ${arg}`));
53
+ process.exit(1);
54
+ }
55
+ // Must be PR number
56
+ const num = parseInt(arg, 10);
57
+ if (isNaN(num)) {
58
+ console.error(colors.error(`Invalid PR number: ${arg}`));
59
+ process.exit(1);
60
+ }
61
+ prNumber = num;
62
+ options.interactive = false;
63
+ }
64
+ i++;
65
+ }
66
+ return { prNumber, options };
67
+ }
68
+ function printHelp() {
69
+ console.log(`
70
+ ${colors.bold('cleanpr')} - Clean up PR worktrees after merge/close
71
+
72
+ ${colors.bold('USAGE')}
73
+ cleanpr Interactive cleanup of merged/closed PRs
74
+ cleanpr <PR_NUMBER> Clean specific PR worktree
75
+ cleanpr --all Clean all merged/closed PRs automatically
76
+ cleanpr <PR_NUMBER> [options] Clean with options
77
+
78
+ ${colors.bold('OPTIONS')}
79
+ -r, --remote Also delete the remote branch
80
+ -f, --force Force removal even if worktree has uncommitted changes
81
+ -a, --all Clean all merged/closed PR worktrees (non-interactive)
82
+ -h, --help Show this help message
83
+
84
+ ${colors.bold('EXAMPLES')}
85
+ cleanpr # Interactive mode - select worktrees to clean
86
+ cleanpr 2245 # Remove worktree and local branch for PR #2245
87
+ cleanpr 2245 --remote # Also delete remote branch
88
+ cleanpr 2245 -f -r # Force cleanup and delete remote
89
+ cleanpr --all # Clean all merged/closed PRs
90
+
91
+ ${colors.bold('WHAT IT REMOVES')}
92
+ - Git worktree directory
93
+ - Local branch associated with the PR
94
+ - Remote branch (with --remote flag)
95
+ `);
96
+ }
97
+ /**
98
+ * Extract PR number from worktree path if it matches pattern
99
+ */
100
+ function extractPrNumber(worktreePath, config) {
101
+ const name = path.basename(worktreePath);
102
+ // Match patterns like "repo.pr123" or custom patterns
103
+ const pattern = config.worktreePattern;
104
+ if (pattern.includes('{number}')) {
105
+ // Build regex from pattern
106
+ const regexStr = pattern
107
+ .replace('{repo}', '.*')
108
+ .replace('{number}', '(\\d+)')
109
+ .replace('.', '\\.');
110
+ const match = name.match(new RegExp(regexStr));
111
+ if (match) {
112
+ return parseInt(match[1], 10);
113
+ }
114
+ }
115
+ // Fallback: try common patterns
116
+ const patterns = [
117
+ /\.pr(\d+)$/, // repo.pr123
118
+ /\.pr-(\d+)$/, // repo.pr-123
119
+ /-pr(\d+)$/, // repo-pr123
120
+ /_pr(\d+)$/, // repo_pr123
121
+ ];
122
+ for (const p of patterns) {
123
+ const match = name.match(p);
124
+ if (match) {
125
+ return parseInt(match[1], 10);
126
+ }
127
+ }
128
+ return null;
129
+ }
130
+ /**
131
+ * Check if a worktree has uncommitted changes
132
+ */
133
+ function hasUncommittedChanges(worktreePath) {
134
+ try {
135
+ const status = execSync('git status --porcelain', {
136
+ cwd: worktreePath,
137
+ encoding: 'utf-8',
138
+ stdio: ['pipe', 'pipe', 'pipe'],
139
+ }).trim();
140
+ return status.length > 0;
141
+ }
142
+ catch {
143
+ return false;
144
+ }
145
+ }
146
+ /**
147
+ * Get PR state from GitHub
148
+ */
149
+ async function getPrState(prNumber) {
150
+ try {
151
+ const pr = await github.getPr(prNumber);
152
+ if (!pr) {
153
+ return 'UNKNOWN';
154
+ }
155
+ // pr.state is already 'OPEN' | 'CLOSED' | 'MERGED'
156
+ return pr.state;
157
+ }
158
+ catch {
159
+ return 'UNKNOWN';
160
+ }
161
+ }
162
+ /**
163
+ * Get detailed info about all PR worktrees
164
+ */
165
+ async function getWorktreeInfoList(repoRoot, config) {
166
+ const worktrees = await git.listWorktrees();
167
+ const result = [];
168
+ for (const wt of worktrees) {
169
+ const prNumber = extractPrNumber(wt.path, config);
170
+ // Skip non-PR worktrees
171
+ if (prNumber === null) {
172
+ continue;
173
+ }
174
+ const prState = await getPrState(prNumber);
175
+ const hasChanges = hasUncommittedChanges(wt.path);
176
+ result.push({
177
+ path: wt.path,
178
+ branch: wt.branch,
179
+ commit: wt.commit,
180
+ prNumber,
181
+ prState,
182
+ hasChanges,
183
+ });
184
+ }
185
+ return result;
186
+ }
187
+ /**
188
+ * Remove a single worktree and its branch
189
+ */
190
+ async function cleanWorktree(info, repoRoot, options) {
191
+ const prLabel = `PR #${info.prNumber}`;
192
+ // Check for uncommitted changes
193
+ if (info.hasChanges && !options.force) {
194
+ console.log(colors.warning(`${prLabel}: Has uncommitted changes (use --force to override)`));
195
+ return false;
196
+ }
197
+ try {
198
+ // Remove worktree
199
+ console.log(colors.info(`${prLabel}: Removing worktree...`));
200
+ await git.removeWorktree(info.path, { force: options.force });
201
+ console.log(colors.success(`${prLabel}: Worktree removed`));
202
+ // Delete local branch
203
+ if (info.branch) {
204
+ console.log(colors.info(`${prLabel}: Deleting local branch ${info.branch}...`));
205
+ try {
206
+ execSync(`git branch -D "${info.branch}"`, {
207
+ cwd: repoRoot,
208
+ encoding: 'utf-8',
209
+ stdio: ['pipe', 'pipe', 'pipe'],
210
+ });
211
+ console.log(colors.success(`${prLabel}: Local branch deleted`));
212
+ }
213
+ catch {
214
+ console.log(colors.warning(`${prLabel}: Could not delete local branch (may already be deleted)`));
215
+ }
216
+ // Delete remote branch if requested
217
+ if (options.deleteRemote) {
218
+ console.log(colors.info(`${prLabel}: Deleting remote branch...`));
219
+ try {
220
+ execSync(`git push origin --delete "${info.branch}"`, {
221
+ cwd: repoRoot,
222
+ encoding: 'utf-8',
223
+ stdio: ['pipe', 'pipe', 'pipe'],
224
+ });
225
+ console.log(colors.success(`${prLabel}: Remote branch deleted`));
226
+ }
227
+ catch {
228
+ console.log(colors.warning(`${prLabel}: Could not delete remote branch (may already be deleted)`));
229
+ }
230
+ }
231
+ }
232
+ // Prune worktrees
233
+ git.pruneWorktrees();
234
+ return true;
235
+ }
236
+ catch (err) {
237
+ const message = err instanceof Error ? err.message : String(err);
238
+ console.log(colors.error(`${prLabel}: Failed to clean - ${message}`));
239
+ return false;
240
+ }
241
+ }
242
+ /**
243
+ * Interactive mode - let user select worktrees to clean
244
+ */
245
+ async function interactiveClean(repoRoot, config, options) {
246
+ console.log(colors.info('Scanning worktrees...'));
247
+ const worktrees = await getWorktreeInfoList(repoRoot, config);
248
+ if (worktrees.length === 0) {
249
+ console.log(colors.info('No PR worktrees found.'));
250
+ return;
251
+ }
252
+ // Group by status
253
+ const merged = worktrees.filter((w) => w.prState === 'MERGED');
254
+ const closed = worktrees.filter((w) => w.prState === 'CLOSED');
255
+ const open = worktrees.filter((w) => w.prState === 'OPEN');
256
+ const unknown = worktrees.filter((w) => w.prState === 'UNKNOWN');
257
+ console.log('');
258
+ console.log(colors.bold('PR Worktrees:'));
259
+ console.log('');
260
+ if (merged.length > 0) {
261
+ console.log(colors.yellow(` Merged (${merged.length}):`));
262
+ for (const w of merged) {
263
+ const changeIndicator = w.hasChanges ? colors.red(' [has changes]') : '';
264
+ console.log(` PR #${w.prNumber}: ${w.branch}${changeIndicator}`);
265
+ }
266
+ }
267
+ if (closed.length > 0) {
268
+ console.log(colors.red(` Closed (${closed.length}):`));
269
+ for (const w of closed) {
270
+ const changeIndicator = w.hasChanges ? colors.red(' [has changes]') : '';
271
+ console.log(` PR #${w.prNumber}: ${w.branch}${changeIndicator}`);
272
+ }
273
+ }
274
+ if (open.length > 0) {
275
+ console.log(colors.green(` Open (${open.length}):`));
276
+ for (const w of open) {
277
+ const changeIndicator = w.hasChanges ? colors.red(' [has changes]') : '';
278
+ console.log(` PR #${w.prNumber}: ${w.branch}${changeIndicator}`);
279
+ }
280
+ }
281
+ if (unknown.length > 0) {
282
+ console.log(colors.dim(` Unknown (${unknown.length}):`));
283
+ for (const w of unknown) {
284
+ const changeIndicator = w.hasChanges ? colors.red(' [has changes]') : '';
285
+ console.log(` PR #${w.prNumber}: ${w.branch}${changeIndicator}`);
286
+ }
287
+ }
288
+ console.log('');
289
+ // Build cleanup options
290
+ const cleanable = [...merged, ...closed];
291
+ if (cleanable.length === 0) {
292
+ console.log(colors.info('No merged or closed PRs to clean up.'));
293
+ return;
294
+ }
295
+ const choices = [
296
+ {
297
+ label: `Clean all merged/closed (${cleanable.length})`,
298
+ value: 'all',
299
+ },
300
+ ];
301
+ if (merged.length > 0) {
302
+ choices.push({
303
+ label: `Clean merged only (${merged.length})`,
304
+ value: 'merged',
305
+ });
306
+ }
307
+ choices.push({
308
+ label: 'Select individually',
309
+ value: 'select',
310
+ });
311
+ choices.push({
312
+ label: 'Cancel',
313
+ value: 'cancel',
314
+ });
315
+ const action = await prompts.promptChoice('What would you like to clean?', choices);
316
+ if (action === 'cancel') {
317
+ console.log(colors.info('Cancelled.'));
318
+ return;
319
+ }
320
+ let toClean = [];
321
+ if (action === 'all') {
322
+ toClean = cleanable;
323
+ }
324
+ else if (action === 'merged') {
325
+ toClean = merged;
326
+ }
327
+ else if (action === 'select') {
328
+ // Individual selection
329
+ for (const w of cleanable) {
330
+ const confirm = await prompts.promptConfirm(`Clean PR #${w.prNumber} (${w.prState.toLowerCase()})${w.hasChanges ? ' [has changes]' : ''}?`);
331
+ if (confirm) {
332
+ toClean.push(w);
333
+ }
334
+ }
335
+ }
336
+ if (toClean.length === 0) {
337
+ console.log(colors.info('Nothing to clean.'));
338
+ return;
339
+ }
340
+ // Ask about remote deletion
341
+ if (!options.deleteRemote) {
342
+ const deleteRemote = await prompts.promptConfirm('Also delete remote branches?');
343
+ options.deleteRemote = deleteRemote;
344
+ }
345
+ console.log('');
346
+ // Clean selected worktrees
347
+ let cleaned = 0;
348
+ for (const w of toClean) {
349
+ if (await cleanWorktree(w, repoRoot, options)) {
350
+ cleaned++;
351
+ }
352
+ }
353
+ console.log('');
354
+ console.log(colors.success(`Cleaned ${cleaned} of ${toClean.length} worktrees.`));
355
+ }
356
+ /**
357
+ * Clean all merged/closed PRs automatically
358
+ */
359
+ async function cleanAll(repoRoot, config, options) {
360
+ console.log(colors.info('Scanning for merged/closed PR worktrees...'));
361
+ const worktrees = await getWorktreeInfoList(repoRoot, config);
362
+ const cleanable = worktrees.filter((w) => w.prState === 'MERGED' || w.prState === 'CLOSED');
363
+ if (cleanable.length === 0) {
364
+ console.log(colors.info('No merged or closed PR worktrees found.'));
365
+ return;
366
+ }
367
+ console.log(colors.info(`Found ${cleanable.length} merged/closed PR worktrees.`));
368
+ console.log('');
369
+ let cleaned = 0;
370
+ for (const w of cleanable) {
371
+ if (await cleanWorktree(w, repoRoot, options)) {
372
+ cleaned++;
373
+ }
374
+ }
375
+ console.log('');
376
+ console.log(colors.success(`Cleaned ${cleaned} of ${cleanable.length} worktrees.`));
377
+ }
378
+ /**
379
+ * Clean a specific PR worktree
380
+ */
381
+ async function cleanSpecific(prNumber, repoRoot, config, options) {
382
+ const worktrees = await getWorktreeInfoList(repoRoot, config);
383
+ const target = worktrees.find((w) => w.prNumber === prNumber);
384
+ if (!target) {
385
+ // Try to find by pattern
386
+ const pattern = config.worktreePattern
387
+ .replace('{repo}', path.basename(repoRoot))
388
+ .replace('{number}', String(prNumber));
389
+ const expectedPath = path.join(path.dirname(repoRoot), pattern);
390
+ console.error(colors.error(`No worktree found for PR #${prNumber}`));
391
+ console.error(colors.dim(`Expected at: ${expectedPath}`));
392
+ process.exit(1);
393
+ }
394
+ console.log(colors.info(`Cleaning PR #${prNumber} worktree...`));
395
+ console.log(colors.dim(` Path: ${target.path}`));
396
+ console.log(colors.dim(` Branch: ${target.branch}`));
397
+ console.log(colors.dim(` State: ${target.prState}`));
398
+ console.log('');
399
+ if (await cleanWorktree(target, repoRoot, options)) {
400
+ console.log('');
401
+ console.log(colors.success(`PR #${prNumber} worktree cleaned up successfully.`));
402
+ }
403
+ else {
404
+ process.exit(1);
405
+ }
406
+ }
407
+ async function main() {
408
+ const { prNumber, options } = parseArgs();
409
+ // Check prerequisites
410
+ if (!github.isGhInstalled()) {
411
+ console.error(colors.error('GitHub CLI (gh) is required for PR status checking.'));
412
+ console.error(colors.dim('Install: https://cli.github.com/'));
413
+ process.exit(1);
414
+ }
415
+ // Find repo root
416
+ const repoRoot = git.getRepoRoot();
417
+ if (!repoRoot) {
418
+ console.error(colors.error('Not in a git repository.'));
419
+ process.exit(1);
420
+ }
421
+ // Load configuration
422
+ const config = loadConfig(repoRoot);
423
+ console.log('');
424
+ if (prNumber !== null) {
425
+ // Clean specific PR
426
+ await cleanSpecific(prNumber, repoRoot, config, options);
427
+ }
428
+ else if (options.all) {
429
+ // Clean all merged/closed
430
+ await cleanAll(repoRoot, config, options);
431
+ }
432
+ else {
433
+ // Interactive mode
434
+ await interactiveClean(repoRoot, config, options);
435
+ }
436
+ }
437
+ main().catch((err) => {
438
+ console.error(colors.error(`Error: ${err.message}`));
439
+ process.exit(1);
440
+ });
441
+ //# sourceMappingURL=cleanpr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanpr.js","sourceRoot":"","sources":["../../src/cli/cleanpr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * lswt - List git worktrees with PR status
4
+ *
5
+ * Usage:
6
+ * lswt List all worktrees
7
+ * lswt --status Include PR status (open/merged/closed)
8
+ * lswt --json Output as JSON
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=lswt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lswt.d.ts","sourceRoot":"","sources":["../../src/cli/lswt.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG"}