@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.
- package/LICENSE +21 -0
- package/README.md +259 -0
- package/dist/cli/cleanpr.d.ts +13 -0
- package/dist/cli/cleanpr.d.ts.map +1 -0
- package/dist/cli/cleanpr.js +441 -0
- package/dist/cli/cleanpr.js.map +1 -0
- package/dist/cli/lswt.d.ts +11 -0
- package/dist/cli/lswt.d.ts.map +1 -0
- package/dist/cli/lswt.js +313 -0
- package/dist/cli/lswt.js.map +1 -0
- package/dist/cli/newpr.d.ts +11 -0
- package/dist/cli/newpr.d.ts.map +1 -0
- package/dist/cli/newpr.js +888 -0
- package/dist/cli/newpr.js.map +1 -0
- package/dist/cli/wtlink.d.ts +15 -0
- package/dist/cli/wtlink.d.ts.map +1 -0
- package/dist/cli/wtlink.js +124 -0
- package/dist/cli/wtlink.js.map +1 -0
- package/dist/e2e/cli.e2e.test.d.ts +2 -0
- package/dist/e2e/cli.e2e.test.d.ts.map +1 -0
- package/dist/e2e/cli.e2e.test.js +215 -0
- package/dist/e2e/cli.e2e.test.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/integration/git.integration.test.d.ts +2 -0
- package/dist/integration/git.integration.test.d.ts.map +1 -0
- package/dist/integration/git.integration.test.js +333 -0
- package/dist/integration/git.integration.test.js.map +1 -0
- package/dist/lib/colors.d.ts +59 -0
- package/dist/lib/colors.d.ts.map +1 -0
- package/dist/lib/colors.js +145 -0
- package/dist/lib/colors.js.map +1 -0
- package/dist/lib/colors.test.d.ts +2 -0
- package/dist/lib/colors.test.d.ts.map +1 -0
- package/dist/lib/colors.test.js +69 -0
- package/dist/lib/colors.test.js.map +1 -0
- package/dist/lib/config.d.ts +58 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +91 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/config.test.d.ts +2 -0
- package/dist/lib/config.test.d.ts.map +1 -0
- package/dist/lib/config.test.js +84 -0
- package/dist/lib/config.test.js.map +1 -0
- package/dist/lib/constants.d.ts +37 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +37 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/errors.d.ts +88 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +112 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/errors.test.d.ts +2 -0
- package/dist/lib/errors.test.d.ts.map +1 -0
- package/dist/lib/errors.test.js +117 -0
- package/dist/lib/errors.test.js.map +1 -0
- package/dist/lib/git.d.ts +224 -0
- package/dist/lib/git.d.ts.map +1 -0
- package/dist/lib/git.js +524 -0
- package/dist/lib/git.js.map +1 -0
- package/dist/lib/git.test.d.ts +2 -0
- package/dist/lib/git.test.d.ts.map +1 -0
- package/dist/lib/git.test.js +402 -0
- package/dist/lib/git.test.js.map +1 -0
- package/dist/lib/github.d.ts +82 -0
- package/dist/lib/github.d.ts.map +1 -0
- package/dist/lib/github.js +254 -0
- package/dist/lib/github.js.map +1 -0
- package/dist/lib/github.test.d.ts +2 -0
- package/dist/lib/github.test.d.ts.map +1 -0
- package/dist/lib/github.test.js +258 -0
- package/dist/lib/github.test.js.map +1 -0
- package/dist/lib/prompts.d.ts +39 -0
- package/dist/lib/prompts.d.ts.map +1 -0
- package/dist/lib/prompts.js +213 -0
- package/dist/lib/prompts.js.map +1 -0
- package/dist/lib/prompts.test.d.ts +2 -0
- package/dist/lib/prompts.test.d.ts.map +1 -0
- package/dist/lib/prompts.test.js +250 -0
- package/dist/lib/prompts.test.js.map +1 -0
- package/dist/lib/state-detection.d.ts +65 -0
- package/dist/lib/state-detection.d.ts.map +1 -0
- package/dist/lib/state-detection.js +186 -0
- package/dist/lib/state-detection.js.map +1 -0
- package/dist/lib/state-detection.test.d.ts +2 -0
- package/dist/lib/state-detection.test.d.ts.map +1 -0
- package/dist/lib/state-detection.test.js +164 -0
- package/dist/lib/state-detection.test.js.map +1 -0
- package/dist/lib/wtlink/index.d.ts +5 -0
- package/dist/lib/wtlink/index.d.ts.map +1 -0
- package/dist/lib/wtlink/index.js +7 -0
- package/dist/lib/wtlink/index.js.map +1 -0
- package/dist/lib/wtlink/link-configs.d.ts +10 -0
- package/dist/lib/wtlink/link-configs.d.ts.map +1 -0
- package/dist/lib/wtlink/link-configs.js +411 -0
- package/dist/lib/wtlink/link-configs.js.map +1 -0
- package/dist/lib/wtlink/link-configs.test.d.ts +2 -0
- package/dist/lib/wtlink/link-configs.test.d.ts.map +1 -0
- package/dist/lib/wtlink/link-configs.test.js +179 -0
- package/dist/lib/wtlink/link-configs.test.js.map +1 -0
- package/dist/lib/wtlink/main-menu.d.ts +2 -0
- package/dist/lib/wtlink/main-menu.d.ts.map +1 -0
- package/dist/lib/wtlink/main-menu.js +149 -0
- package/dist/lib/wtlink/main-menu.js.map +1 -0
- package/dist/lib/wtlink/manage-manifest.d.ts +9 -0
- package/dist/lib/wtlink/manage-manifest.d.ts.map +1 -0
- package/dist/lib/wtlink/manage-manifest.js +1262 -0
- package/dist/lib/wtlink/manage-manifest.js.map +1 -0
- package/dist/lib/wtlink/validate-manifest.d.ts +6 -0
- package/dist/lib/wtlink/validate-manifest.d.ts.map +1 -0
- package/dist/lib/wtlink/validate-manifest.js +51 -0
- package/dist/lib/wtlink/validate-manifest.js.map +1 -0
- package/dist/lib/wtlink/validate-manifest.test.d.ts +2 -0
- package/dist/lib/wtlink/validate-manifest.test.d.ts.map +1 -0
- package/dist/lib/wtlink/validate-manifest.test.js +115 -0
- package/dist/lib/wtlink/validate-manifest.test.js.map +1 -0
- package/package.json +84 -0
package/dist/cli/lswt.js
ADDED
|
@@ -0,0 +1,313 @@
|
|
|
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
|
+
import * as path from 'path';
|
|
11
|
+
import * as git from '../lib/git.js';
|
|
12
|
+
import * as github from '../lib/github.js';
|
|
13
|
+
import * as colors from '../lib/colors.js';
|
|
14
|
+
import { loadConfig } from '../lib/config.js';
|
|
15
|
+
function parseArgs() {
|
|
16
|
+
const args = process.argv.slice(2);
|
|
17
|
+
const options = {
|
|
18
|
+
showStatus: false,
|
|
19
|
+
json: false,
|
|
20
|
+
verbose: false,
|
|
21
|
+
};
|
|
22
|
+
for (const arg of args) {
|
|
23
|
+
switch (arg) {
|
|
24
|
+
case '-h':
|
|
25
|
+
case '--help':
|
|
26
|
+
printHelp();
|
|
27
|
+
process.exit(0);
|
|
28
|
+
break;
|
|
29
|
+
case '-s':
|
|
30
|
+
case '--status':
|
|
31
|
+
options.showStatus = true;
|
|
32
|
+
break;
|
|
33
|
+
case '-j':
|
|
34
|
+
case '--json':
|
|
35
|
+
options.json = true;
|
|
36
|
+
break;
|
|
37
|
+
case '-v':
|
|
38
|
+
case '--verbose':
|
|
39
|
+
options.verbose = true;
|
|
40
|
+
break;
|
|
41
|
+
default:
|
|
42
|
+
if (arg.startsWith('-')) {
|
|
43
|
+
console.error(colors.error(`Unknown option: ${arg}`));
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return options;
|
|
49
|
+
}
|
|
50
|
+
function printHelp() {
|
|
51
|
+
console.log(`
|
|
52
|
+
${colors.bold('lswt')} - List git worktrees with PR status
|
|
53
|
+
|
|
54
|
+
${colors.bold('USAGE')}
|
|
55
|
+
lswt [options]
|
|
56
|
+
|
|
57
|
+
${colors.bold('OPTIONS')}
|
|
58
|
+
-s, --status Include PR status from GitHub (open/merged/closed)
|
|
59
|
+
-j, --json Output as JSON
|
|
60
|
+
-v, --verbose Show more details (commit hashes, full paths)
|
|
61
|
+
-h, --help Show this help message
|
|
62
|
+
|
|
63
|
+
${colors.bold('EXAMPLES')}
|
|
64
|
+
lswt # List all worktrees
|
|
65
|
+
lswt --status # Include PR status (requires gh cli)
|
|
66
|
+
lswt --json # Output as JSON for scripting
|
|
67
|
+
|
|
68
|
+
${colors.bold('OUTPUT')}
|
|
69
|
+
Shows each worktree with:
|
|
70
|
+
- Type indicator: [main], [PR #123 OPEN], [branch], [detached]
|
|
71
|
+
- Branch name
|
|
72
|
+
- Path (relative or absolute based on context)
|
|
73
|
+
- Uncommitted changes indicator
|
|
74
|
+
`);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Extract PR number from worktree path
|
|
78
|
+
*/
|
|
79
|
+
function extractPrNumber(worktreePath, config) {
|
|
80
|
+
const name = path.basename(worktreePath);
|
|
81
|
+
// Try common patterns
|
|
82
|
+
const patterns = [/\.pr(\d+)$/, /\.pr-(\d+)$/, /-pr(\d+)$/, /_pr(\d+)$/];
|
|
83
|
+
for (const p of patterns) {
|
|
84
|
+
const match = name.match(p);
|
|
85
|
+
if (match) {
|
|
86
|
+
return parseInt(match[1], 10);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Check if worktree is the main/bare worktree
|
|
93
|
+
*/
|
|
94
|
+
function isMainWorktree(worktreePath, repoRoot) {
|
|
95
|
+
return path.resolve(worktreePath) === path.resolve(repoRoot);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Check for uncommitted changes in a worktree
|
|
99
|
+
*/
|
|
100
|
+
function hasUncommittedChanges(worktreePath) {
|
|
101
|
+
try {
|
|
102
|
+
const { execSync } = require('child_process');
|
|
103
|
+
const status = execSync('git status --porcelain', {
|
|
104
|
+
cwd: worktreePath,
|
|
105
|
+
encoding: 'utf-8',
|
|
106
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
107
|
+
}).trim();
|
|
108
|
+
return status.length > 0;
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get PR state from GitHub
|
|
116
|
+
*/
|
|
117
|
+
async function getPrState(prNumber) {
|
|
118
|
+
try {
|
|
119
|
+
const pr = await github.getPr(prNumber);
|
|
120
|
+
if (!pr) {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
// pr.state is already 'OPEN' | 'CLOSED' | 'MERGED'
|
|
124
|
+
return pr.state;
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Format type label with colors
|
|
132
|
+
*/
|
|
133
|
+
function formatTypeLabel(display) {
|
|
134
|
+
switch (display.type) {
|
|
135
|
+
case 'main':
|
|
136
|
+
return colors.cyan('[main]');
|
|
137
|
+
case 'pr':
|
|
138
|
+
const prLabel = `PR #${display.prNumber}`;
|
|
139
|
+
if (display.prState === 'OPEN') {
|
|
140
|
+
return colors.green(`[${prLabel} OPEN]`);
|
|
141
|
+
}
|
|
142
|
+
else if (display.prState === 'MERGED') {
|
|
143
|
+
return colors.yellow(`[${prLabel} MERGED]`);
|
|
144
|
+
}
|
|
145
|
+
else if (display.prState === 'CLOSED') {
|
|
146
|
+
return colors.red(`[${prLabel} CLOSED]`);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
return colors.dim(`[${prLabel}]`);
|
|
150
|
+
}
|
|
151
|
+
case 'branch':
|
|
152
|
+
return colors.blue('[branch]');
|
|
153
|
+
case 'detached':
|
|
154
|
+
return colors.dim('[detached]');
|
|
155
|
+
default:
|
|
156
|
+
return colors.dim('[unknown]');
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Gather worktree information
|
|
161
|
+
*/
|
|
162
|
+
async function gatherWorktreeInfo(repoRoot, config, options) {
|
|
163
|
+
const worktrees = await git.listWorktrees();
|
|
164
|
+
const result = [];
|
|
165
|
+
for (const wt of worktrees) {
|
|
166
|
+
const name = path.basename(wt.path);
|
|
167
|
+
const prNumber = extractPrNumber(wt.path, config);
|
|
168
|
+
const isMain = isMainWorktree(wt.path, repoRoot);
|
|
169
|
+
const hasChanges = hasUncommittedChanges(wt.path);
|
|
170
|
+
let type;
|
|
171
|
+
let prState = null;
|
|
172
|
+
if (isMain) {
|
|
173
|
+
type = 'main';
|
|
174
|
+
}
|
|
175
|
+
else if (prNumber !== null) {
|
|
176
|
+
type = 'pr';
|
|
177
|
+
if (options.showStatus) {
|
|
178
|
+
prState = await getPrState(prNumber);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
else if (wt.branch) {
|
|
182
|
+
type = 'branch';
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
type = 'detached';
|
|
186
|
+
}
|
|
187
|
+
result.push({
|
|
188
|
+
path: wt.path,
|
|
189
|
+
name,
|
|
190
|
+
branch: wt.branch,
|
|
191
|
+
commit: wt.commit,
|
|
192
|
+
type,
|
|
193
|
+
prNumber,
|
|
194
|
+
prState,
|
|
195
|
+
hasChanges,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
// Sort: main first, then PRs by number, then others
|
|
199
|
+
result.sort((a, b) => {
|
|
200
|
+
if (a.type === 'main')
|
|
201
|
+
return -1;
|
|
202
|
+
if (b.type === 'main')
|
|
203
|
+
return 1;
|
|
204
|
+
if (a.type === 'pr' && b.type === 'pr') {
|
|
205
|
+
return (a.prNumber || 0) - (b.prNumber || 0);
|
|
206
|
+
}
|
|
207
|
+
if (a.type === 'pr')
|
|
208
|
+
return -1;
|
|
209
|
+
if (b.type === 'pr')
|
|
210
|
+
return 1;
|
|
211
|
+
return a.name.localeCompare(b.name);
|
|
212
|
+
});
|
|
213
|
+
return result;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Print worktrees in table format
|
|
217
|
+
*/
|
|
218
|
+
function printTable(worktrees, options) {
|
|
219
|
+
if (worktrees.length === 0) {
|
|
220
|
+
console.log(colors.info('No worktrees found.'));
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
const repoName = path.basename(worktrees[0].path.replace(/\.pr\d+$/, ''));
|
|
224
|
+
console.log('');
|
|
225
|
+
console.log(colors.bold(`${repoName} worktrees:`));
|
|
226
|
+
console.log('');
|
|
227
|
+
for (const wt of worktrees) {
|
|
228
|
+
const typeLabel = formatTypeLabel(wt);
|
|
229
|
+
const changeIndicator = wt.hasChanges ? colors.red(' *') : '';
|
|
230
|
+
console.log(` ${typeLabel}${changeIndicator}`);
|
|
231
|
+
console.log(` Branch: ${wt.branch || colors.dim('(detached)')}`);
|
|
232
|
+
if (options.verbose) {
|
|
233
|
+
console.log(` Path: ${wt.path}`);
|
|
234
|
+
console.log(` Commit: ${colors.dim(wt.commit)}`);
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
// Show relative path if possible
|
|
238
|
+
const cwd = process.cwd();
|
|
239
|
+
let displayPath = wt.path;
|
|
240
|
+
if (wt.path.startsWith(cwd)) {
|
|
241
|
+
displayPath = path.relative(cwd, wt.path) || '.';
|
|
242
|
+
}
|
|
243
|
+
else if (wt.path.startsWith(path.dirname(cwd))) {
|
|
244
|
+
displayPath = path.relative(path.dirname(cwd), wt.path);
|
|
245
|
+
}
|
|
246
|
+
console.log(` Path: ${displayPath}`);
|
|
247
|
+
}
|
|
248
|
+
console.log('');
|
|
249
|
+
}
|
|
250
|
+
// Summary
|
|
251
|
+
const prCount = worktrees.filter((w) => w.type === 'pr').length;
|
|
252
|
+
const openCount = worktrees.filter((w) => w.prState === 'OPEN').length;
|
|
253
|
+
const changesCount = worktrees.filter((w) => w.hasChanges).length;
|
|
254
|
+
const parts = [`${worktrees.length} worktrees`];
|
|
255
|
+
if (prCount > 0) {
|
|
256
|
+
parts.push(`${prCount} PRs`);
|
|
257
|
+
}
|
|
258
|
+
if (openCount > 0) {
|
|
259
|
+
parts.push(`${openCount} open`);
|
|
260
|
+
}
|
|
261
|
+
if (changesCount > 0) {
|
|
262
|
+
parts.push(colors.red(`${changesCount} with changes`));
|
|
263
|
+
}
|
|
264
|
+
console.log(colors.dim(parts.join(' · ')));
|
|
265
|
+
console.log('');
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Print worktrees as JSON
|
|
269
|
+
*/
|
|
270
|
+
function printJson(worktrees) {
|
|
271
|
+
const output = worktrees.map((wt) => ({
|
|
272
|
+
path: wt.path,
|
|
273
|
+
name: wt.name,
|
|
274
|
+
branch: wt.branch,
|
|
275
|
+
commit: wt.commit,
|
|
276
|
+
type: wt.type,
|
|
277
|
+
prNumber: wt.prNumber,
|
|
278
|
+
prState: wt.prState,
|
|
279
|
+
hasChanges: wt.hasChanges,
|
|
280
|
+
}));
|
|
281
|
+
console.log(JSON.stringify(output, null, 2));
|
|
282
|
+
}
|
|
283
|
+
async function main() {
|
|
284
|
+
const options = parseArgs();
|
|
285
|
+
// Check for gh cli if status requested
|
|
286
|
+
if (options.showStatus && !github.isGhInstalled()) {
|
|
287
|
+
console.error(colors.warning('GitHub CLI (gh) not installed. PR status will not be shown.'));
|
|
288
|
+
console.error(colors.dim('Install: https://cli.github.com/'));
|
|
289
|
+
options.showStatus = false;
|
|
290
|
+
}
|
|
291
|
+
// Find repo root
|
|
292
|
+
const repoRoot = git.getRepoRoot();
|
|
293
|
+
if (!repoRoot) {
|
|
294
|
+
console.error(colors.error('Not in a git repository.'));
|
|
295
|
+
process.exit(1);
|
|
296
|
+
}
|
|
297
|
+
// Load configuration
|
|
298
|
+
const config = loadConfig(repoRoot);
|
|
299
|
+
// Gather worktree info
|
|
300
|
+
const worktrees = await gatherWorktreeInfo(repoRoot, config, options);
|
|
301
|
+
// Output
|
|
302
|
+
if (options.json) {
|
|
303
|
+
printJson(worktrees);
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
printTable(worktrees, options);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
main().catch((err) => {
|
|
310
|
+
console.error(colors.error(`Error: ${err.message}`));
|
|
311
|
+
process.exit(1);
|
|
312
|
+
});
|
|
313
|
+
//# sourceMappingURL=lswt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lswt.js","sourceRoot":"","sources":["../../src/cli/lswt.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAmB9C,SAAS,SAAS;IAChB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAgB;QAC3B,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,IAAI,CAAC;YACV,KAAK,QAAQ;gBACX,SAAS,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,MAAM;YACR,KAAK,IAAI,CAAC;YACV,KAAK,UAAU;gBACb,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC1B,MAAM;YACR,KAAK,IAAI,CAAC;YACV,KAAK,QAAQ;gBACX,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;gBACpB,MAAM;YACR,KAAK,IAAI,CAAC;YACV,KAAK,WAAW;gBACd,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvB,MAAM;YACR;gBACE,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC,CAAC;oBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;EACZ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;EAEnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;;;EAGpB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;;;;;;EAMtB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;;;;;EAKvB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;;;CAMtB,CAAC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,YAAoB,EACpB,MAAqC;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEzC,sBAAsB;IACtB,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAEzE,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,YAAoB,EAAE,QAAgB;IAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,YAAoB;IACjD,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,EAAE;YAChD,GAAG,EAAE,YAAY;YACjB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mDAAmD;QACnD,OAAO,EAAE,CAAC,KAAK,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,OAAwB;IAC/C,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,KAAK,IAAI;YACP,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,QAAQ,CAAC,CAAC;YAC3C,CAAC;iBAAM,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACxC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,UAAU,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACxC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,UAAU,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;YACpC,CAAC;QACH,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,KAAK,UAAU;YACb,OAAO,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAClC;YACE,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,QAAgB,EAChB,MAAqC,EACrC,OAAoB;IAEpB,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,aAAa,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,qBAAqB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,IAA2C,CAAC;QAChD,IAAI,OAAO,GAAkB,IAAI,CAAC;QAElC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;aAAM,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YACrB,IAAI,GAAG,QAAQ,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,IAAI;YACJ,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,IAAI;YACJ,QAAQ;YACR,OAAO;YACP,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,oDAAoD;IACpD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,SAA4B,EAAE,OAAoB;IACpE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,aAAa,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9D,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,GAAG,eAAe,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAEpE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,iCAAiC;YACjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC;YAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;YACnD,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACjD,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,UAAU;IACV,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAChE,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACvE,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAElE,MAAM,KAAK,GAAa,CAAC,GAAG,SAAS,CAAC,MAAM,YAAY,CAAC,CAAC;IAC1D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,MAAM,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,eAAe,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,SAA4B;IAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,UAAU,EAAE,EAAE,CAAC,UAAU;KAC1B,CAAC,CAAC,CAAC;IAEJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAE5B,uCAAuC;IACvC,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,CAAC;QAC7F,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,iBAAiB;IACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qBAAqB;IACrB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEpC,uBAAuB;IACvB,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtE,SAAS;IACT,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,SAAS,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* newpr - Create or setup a PR with a dedicated worktree
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* newpr "feature description" Create new branch + PR + worktree
|
|
7
|
+
* newpr --pr <NUMBER> Setup worktree for existing PR
|
|
8
|
+
* newpr --branch <NAME> Create PR for existing branch + worktree
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=newpr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"newpr.d.ts","sourceRoot":"","sources":["../../src/cli/newpr.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG"}
|