@alejandrochaves/devflow-cli 1.3.2 → 1.4.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.
- package/dist/commands/amend.d.ts.map +1 -1
- package/dist/commands/amend.js +139 -68
- package/dist/commands/amend.js.map +1 -1
- package/dist/commands/branch.d.ts.map +1 -1
- package/dist/commands/branch.js +201 -80
- package/dist/commands/branch.js.map +1 -1
- package/dist/commands/changelog.d.ts.map +1 -1
- package/dist/commands/changelog.js +62 -32
- package/dist/commands/changelog.js.map +1 -1
- package/dist/commands/cleanup.d.ts.map +1 -1
- package/dist/commands/cleanup.js +10 -3
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/commit.d.ts.map +1 -1
- package/dist/commands/commit.js +343 -175
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/fixup.d.ts.map +1 -1
- package/dist/commands/fixup.js +129 -81
- package/dist/commands/fixup.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +223 -110
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/issue.d.ts.map +1 -1
- package/dist/commands/issue.js +341 -83
- package/dist/commands/issue.js.map +1 -1
- package/dist/commands/issues.d.ts.map +1 -1
- package/dist/commands/issues.js +166 -77
- package/dist/commands/issues.js.map +1 -1
- package/dist/commands/log.d.ts.map +1 -1
- package/dist/commands/log.js +81 -46
- package/dist/commands/log.js.map +1 -1
- package/dist/commands/merge.d.ts.map +1 -1
- package/dist/commands/merge.js +78 -38
- package/dist/commands/merge.js.map +1 -1
- package/dist/commands/pr.d.ts.map +1 -1
- package/dist/commands/pr.js +110 -42
- package/dist/commands/pr.js.map +1 -1
- package/dist/commands/release.d.ts.map +1 -1
- package/dist/commands/release.js +70 -37
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +144 -84
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/stash.d.ts.map +1 -1
- package/dist/commands/stash.js +164 -94
- package/dist/commands/stash.js.map +1 -1
- package/dist/commands/test-plan.d.ts.map +1 -1
- package/dist/commands/test-plan.js +86 -42
- package/dist/commands/test-plan.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +9 -3
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/worktree.d.ts.map +1 -1
- package/dist/commands/worktree.js +168 -96
- package/dist/commands/worktree.js.map +1 -1
- package/dist/prompts.d.ts +62 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +130 -0
- package/dist/prompts.js.map +1 -0
- package/package.json +3 -2
package/dist/commands/review.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { select, input } from "@inquirer/prompts";
|
|
2
1
|
import { execSync } from "child_process";
|
|
3
2
|
import { bold, dim, green, cyan, yellow } from "../colors.js";
|
|
4
3
|
import { checkGhInstalled } from "../git.js";
|
|
4
|
+
import { selectWithBack, inputWithBack, BACK_VALUE, } from "../prompts.js";
|
|
5
5
|
function listOpenPrs() {
|
|
6
6
|
try {
|
|
7
7
|
const result = execSync("gh pr list --state open --json number,title,headRefName,author,additions,deletions,reviewDecision", { encoding: "utf-8", stdio: ["pipe", "pipe", "ignore"] }).trim();
|
|
@@ -30,104 +30,164 @@ export async function reviewCommand(options = {}) {
|
|
|
30
30
|
console.log("No open pull requests.");
|
|
31
31
|
return;
|
|
32
32
|
}
|
|
33
|
-
|
|
34
|
-
let prNumber;
|
|
33
|
+
let currentStep = "selectPr";
|
|
34
|
+
let prNumber = options.pr ? parseInt(options.pr, 10) : 0;
|
|
35
|
+
let selectedAction = options.action || "";
|
|
36
|
+
// Validate options if provided
|
|
35
37
|
if (options.pr) {
|
|
36
|
-
const
|
|
37
|
-
const found = prs.find((p) => p.number === prNum);
|
|
38
|
+
const found = prs.find((p) => p.number === prNumber);
|
|
38
39
|
if (!found) {
|
|
39
40
|
console.error(`PR #${options.pr} not found in open PRs.`);
|
|
40
41
|
process.exit(1);
|
|
41
42
|
}
|
|
42
|
-
|
|
43
|
+
currentStep = "action";
|
|
43
44
|
}
|
|
44
|
-
else {
|
|
45
|
-
console.log(`\n${dim("───")} ${bold("Open PRs")} ${dim("───")}\n`);
|
|
46
|
-
prNumber = await select({
|
|
47
|
-
message: "Select a PR to review:",
|
|
48
|
-
choices: prs.map((pr) => ({
|
|
49
|
-
value: pr.number,
|
|
50
|
-
name: `#${pr.number} ${pr.title} ${dim(`(${pr.author.login} · +${pr.additions}/-${pr.deletions})`)}`,
|
|
51
|
-
})),
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
const pr = prs.find((p) => p.number === prNumber);
|
|
55
|
-
console.log(`\n${dim("───")} ${cyan(`#${pr.number}`)} ${bold(pr.title)} ${dim("───")}\n`);
|
|
56
|
-
// Show diff stat
|
|
57
|
-
const stat = getPrDiffStat(pr.number);
|
|
58
|
-
if (stat) {
|
|
59
|
-
console.log(dim(stat));
|
|
60
|
-
console.log("");
|
|
61
|
-
}
|
|
62
|
-
// Get action from flag or prompt
|
|
63
|
-
let action;
|
|
64
45
|
if (options.action) {
|
|
65
46
|
if (!["checkout", "approve", "comment", "request-changes", "view"].includes(options.action)) {
|
|
66
47
|
console.error(`Invalid action: ${options.action}. Use: checkout, approve, comment, request-changes, or view`);
|
|
67
48
|
process.exit(1);
|
|
68
49
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
else {
|
|
72
|
-
action = await select({
|
|
73
|
-
message: "What would you like to do?",
|
|
74
|
-
choices: [
|
|
75
|
-
{ value: "checkout", name: "Checkout this branch locally" },
|
|
76
|
-
{ value: "approve", name: "Approve this PR" },
|
|
77
|
-
{ value: "comment", name: "Leave a comment" },
|
|
78
|
-
{ value: "request-changes", name: "Request changes" },
|
|
79
|
-
{ value: "view", name: "Open in browser" },
|
|
80
|
-
{ value: "done", name: "Done" },
|
|
81
|
-
],
|
|
82
|
-
});
|
|
50
|
+
selectedAction = options.action;
|
|
51
|
+
currentStep = "execute";
|
|
83
52
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
});
|
|
105
|
-
if (!comment.trim()) {
|
|
106
|
-
console.error("Comment is required.");
|
|
107
|
-
process.exit(1);
|
|
53
|
+
while (currentStep !== "done") {
|
|
54
|
+
switch (currentStep) {
|
|
55
|
+
case "selectPr": {
|
|
56
|
+
console.log(`\n${dim("───")} ${bold("Open PRs")} ${dim("───")}\n`);
|
|
57
|
+
const result = await selectWithBack({
|
|
58
|
+
message: "Select a PR to review:",
|
|
59
|
+
choices: prs.map((p) => ({
|
|
60
|
+
value: p.number,
|
|
61
|
+
name: `#${p.number} ${p.title} ${dim(`(${p.author.login} · +${p.additions}/-${p.deletions})`)}`,
|
|
62
|
+
})),
|
|
63
|
+
showBack: false, // First step
|
|
64
|
+
});
|
|
65
|
+
if (result === BACK_VALUE) {
|
|
66
|
+
// Can't go back from first step
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
prNumber = result;
|
|
70
|
+
currentStep = "action";
|
|
71
|
+
}
|
|
72
|
+
break;
|
|
108
73
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
74
|
+
case "action": {
|
|
75
|
+
const pr = prs.find((p) => p.number === prNumber);
|
|
76
|
+
console.log(`\n${dim("───")} ${cyan(`#${pr.number}`)} ${bold(pr.title)} ${dim("───")}\n`);
|
|
77
|
+
// Show diff stat
|
|
78
|
+
const stat = getPrDiffStat(pr.number);
|
|
79
|
+
if (stat) {
|
|
80
|
+
console.log(dim(stat));
|
|
81
|
+
console.log("");
|
|
82
|
+
}
|
|
83
|
+
if (options.action) {
|
|
84
|
+
currentStep = "execute";
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
const result = await selectWithBack({
|
|
88
|
+
message: "What would you like to do?",
|
|
89
|
+
choices: [
|
|
90
|
+
{ value: "checkout", name: "Checkout this branch locally" },
|
|
91
|
+
{ value: "approve", name: "Approve this PR" },
|
|
92
|
+
{ value: "comment", name: "Leave a comment" },
|
|
93
|
+
{ value: "request-changes", name: "Request changes" },
|
|
94
|
+
{ value: "view", name: "Open in browser" },
|
|
95
|
+
{ value: "done", name: "Done" },
|
|
96
|
+
],
|
|
97
|
+
showBack: !options.pr,
|
|
98
|
+
});
|
|
99
|
+
if (result === BACK_VALUE) {
|
|
100
|
+
currentStep = "selectPr";
|
|
101
|
+
}
|
|
102
|
+
else if (result === "done") {
|
|
103
|
+
currentStep = "done";
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
selectedAction = result;
|
|
107
|
+
currentStep = "execute";
|
|
108
|
+
}
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
case "execute": {
|
|
112
|
+
const pr = prs.find((p) => p.number === prNumber);
|
|
113
|
+
switch (selectedAction) {
|
|
114
|
+
case "checkout":
|
|
115
|
+
execSync(`gh pr checkout ${pr.number}`, { stdio: "inherit" });
|
|
116
|
+
console.log(green(`✓ Checked out ${pr.headRefName}`));
|
|
117
|
+
currentStep = "done";
|
|
118
|
+
break;
|
|
119
|
+
case "approve": {
|
|
120
|
+
const approveBodyResult = options.comment ?? await inputWithBack({
|
|
121
|
+
message: "Approval comment (optional):",
|
|
122
|
+
showBack: !options.action,
|
|
123
|
+
});
|
|
124
|
+
if (approveBodyResult === BACK_VALUE) {
|
|
125
|
+
currentStep = "action";
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
const approveBody = approveBodyResult;
|
|
129
|
+
const approveFlag = approveBody.trim()
|
|
130
|
+
? `--body ${JSON.stringify(approveBody.trim())}`
|
|
131
|
+
: "";
|
|
132
|
+
execSync(`gh pr review ${pr.number} --approve ${approveFlag}`, { stdio: "inherit" });
|
|
133
|
+
console.log(green(`✓ Approved #${pr.number}`));
|
|
134
|
+
currentStep = "done";
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
case "comment": {
|
|
138
|
+
const commentResult = options.comment ?? await inputWithBack({
|
|
139
|
+
message: "Comment:",
|
|
140
|
+
validate: (val) => val.trim().length > 0 || "Comment is required",
|
|
141
|
+
showBack: !options.action,
|
|
142
|
+
});
|
|
143
|
+
if (commentResult === BACK_VALUE) {
|
|
144
|
+
currentStep = "action";
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
const comment = commentResult;
|
|
148
|
+
if (!comment.trim()) {
|
|
149
|
+
console.error("Comment is required.");
|
|
150
|
+
process.exit(1);
|
|
151
|
+
}
|
|
152
|
+
execSync(`gh pr comment ${pr.number} --body ${JSON.stringify(comment.trim())}`, {
|
|
153
|
+
stdio: "inherit",
|
|
154
|
+
});
|
|
155
|
+
console.log(green("✓ Comment added"));
|
|
156
|
+
currentStep = "done";
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
case "request-changes": {
|
|
160
|
+
const changesResult = options.comment ?? await inputWithBack({
|
|
161
|
+
message: "Describe requested changes:",
|
|
162
|
+
validate: (val) => val.trim().length > 0 || "Description is required",
|
|
163
|
+
showBack: !options.action,
|
|
164
|
+
});
|
|
165
|
+
if (changesResult === BACK_VALUE) {
|
|
166
|
+
currentStep = "action";
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
const changesBody = changesResult;
|
|
170
|
+
if (!changesBody.trim()) {
|
|
171
|
+
console.error("Description is required.");
|
|
172
|
+
process.exit(1);
|
|
173
|
+
}
|
|
174
|
+
execSync(`gh pr review ${pr.number} --request-changes --body ${JSON.stringify(changesBody.trim())}`, { stdio: "inherit" });
|
|
175
|
+
console.log(yellow(`✓ Requested changes on #${pr.number}`));
|
|
176
|
+
currentStep = "done";
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
case "view":
|
|
180
|
+
execSync(`gh pr view ${pr.number} --web`, { stdio: "inherit" });
|
|
181
|
+
currentStep = "done";
|
|
182
|
+
break;
|
|
183
|
+
default:
|
|
184
|
+
currentStep = "done";
|
|
185
|
+
}
|
|
186
|
+
break;
|
|
123
187
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
break;
|
|
188
|
+
default:
|
|
189
|
+
currentStep = "done";
|
|
127
190
|
}
|
|
128
|
-
case "view":
|
|
129
|
-
execSync(`gh pr view ${pr.number} --web`, { stdio: "inherit" });
|
|
130
|
-
break;
|
|
131
191
|
}
|
|
132
192
|
}
|
|
133
193
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EACL,cAAc,EACd,aAAa,EACb,UAAU,GACX,MAAM,eAAe,CAAC;AAkBvB,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CACrB,mGAAmG,EACnG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CACzD,CAAC,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,cAAc,MAAM,SAAS,EAAE;YAC7C,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;SAClC,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAyB,EAAE;IAC7D,IAAI,CAAC;QACH,gBAAgB,EAAE,CAAC;QAEnB,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;QAE1B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAID,IAAI,WAAW,GAAa,UAAU,CAAC;QACvC,IAAI,QAAQ,GAAW,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,cAAc,GAAW,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;QAElD,+BAA+B;QAC/B,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;YACrD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,EAAE,yBAAyB,CAAC,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,WAAW,GAAG,QAAQ,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5F,OAAO,CAAC,KAAK,CAAC,mBAAmB,OAAO,CAAC,MAAM,6DAA6D,CAAC,CAAC;gBAC9G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;YAChC,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC;QAED,OAAO,WAAW,KAAK,MAAM,EAAE,CAAC;YAC9B,QAAQ,WAAW,EAAE,CAAC;gBACpB,KAAK,UAAU,CAAC,CAAC,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAEnE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;wBAClC,OAAO,EAAE,wBAAwB;wBACjC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;4BACvB,KAAK,EAAE,CAAC,CAAC,MAAM;4BACf,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE;yBAChG,CAAC,CAAC;wBACH,QAAQ,EAAE,KAAK,EAAE,aAAa;qBAC/B,CAAC,CAAC;oBAEH,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;wBAC1B,gCAAgC;oBAClC,CAAC;yBAAM,CAAC;wBACN,QAAQ,GAAG,MAAgB,CAAC;wBAC5B,WAAW,GAAG,QAAQ,CAAC;oBACzB,CAAC;oBACD,MAAM;gBACR,CAAC;gBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAE,CAAC;oBAEnD,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAE1F,iBAAiB;oBACjB,MAAM,IAAI,GAAG,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBACtC,IAAI,IAAI,EAAE,CAAC;wBACT,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;wBACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAClB,CAAC;oBAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;wBACnB,WAAW,GAAG,SAAS,CAAC;wBACxB,MAAM;oBACR,CAAC;oBAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;wBAClC,OAAO,EAAE,4BAA4B;wBACrC,OAAO,EAAE;4BACP,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,8BAA8B,EAAE;4BAC3D,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;4BAC7C,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;4BAC7C,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;4BACrD,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE;4BAC1C,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;yBAChC;wBACD,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE;qBACtB,CAAC,CAAC;oBAEH,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;wBAC1B,WAAW,GAAG,UAAU,CAAC;oBAC3B,CAAC;yBAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;wBAC7B,WAAW,GAAG,MAAM,CAAC;oBACvB,CAAC;yBAAM,CAAC;wBACN,cAAc,GAAG,MAAM,CAAC;wBACxB,WAAW,GAAG,SAAS,CAAC;oBAC1B,CAAC;oBACD,MAAM;gBACR,CAAC;gBAED,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAE,CAAC;oBAEnD,QAAQ,cAAc,EAAE,CAAC;wBACvB,KAAK,UAAU;4BACb,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;4BAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;4BACtD,WAAW,GAAG,MAAM,CAAC;4BACrB,MAAM;wBAER,KAAK,SAAS,CAAC,CAAC,CAAC;4BACf,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,aAAa,CAAC;gCAC/D,OAAO,EAAE,8BAA8B;gCACvC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM;6BAC1B,CAAC,CAAC;4BAEH,IAAI,iBAAiB,KAAK,UAAU,EAAE,CAAC;gCACrC,WAAW,GAAG,QAAQ,CAAC;gCACvB,MAAM;4BACR,CAAC;4BAED,MAAM,WAAW,GAAG,iBAA2B,CAAC;4BAChD,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE;gCACpC,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE;gCAChD,CAAC,CAAC,EAAE,CAAC;4BACP,QAAQ,CAAC,gBAAgB,EAAE,CAAC,MAAM,cAAc,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;4BACrF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;4BAC/C,WAAW,GAAG,MAAM,CAAC;4BACrB,MAAM;wBACR,CAAC;wBAED,KAAK,SAAS,CAAC,CAAC,CAAC;4BACf,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,aAAa,CAAC;gCAC3D,OAAO,EAAE,UAAU;gCACnB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,qBAAqB;gCACjE,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM;6BAC1B,CAAC,CAAC;4BAEH,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;gCACjC,WAAW,GAAG,QAAQ,CAAC;gCACvB,MAAM;4BACR,CAAC;4BAED,MAAM,OAAO,GAAG,aAAuB,CAAC;4BACxC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gCACpB,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gCACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAClB,CAAC;4BACD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,MAAM,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gCAC9E,KAAK,EAAE,SAAS;6BACjB,CAAC,CAAC;4BACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;4BACtC,WAAW,GAAG,MAAM,CAAC;4BACrB,MAAM;wBACR,CAAC;wBAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;4BACvB,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,aAAa,CAAC;gCAC3D,OAAO,EAAE,6BAA6B;gCACtC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,yBAAyB;gCACrE,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM;6BAC1B,CAAC,CAAC;4BAEH,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;gCACjC,WAAW,GAAG,QAAQ,CAAC;gCACvB,MAAM;4BACR,CAAC;4BAED,MAAM,WAAW,GAAG,aAAuB,CAAC;4BAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gCACxB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gCAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAClB,CAAC;4BACD,QAAQ,CACN,gBAAgB,EAAE,CAAC,MAAM,6BAA6B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,EAC1F,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;4BACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,2BAA2B,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;4BAC5D,WAAW,GAAG,MAAM,CAAC;4BACrB,MAAM;wBACR,CAAC;wBAED,KAAK,MAAM;4BACT,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;4BAChE,WAAW,GAAG,MAAM,CAAC;4BACrB,MAAM;wBAER;4BACE,WAAW,GAAG,MAAM,CAAC;oBACzB,CAAC;oBACD,MAAM;gBACR,CAAC;gBAED;oBACE,WAAW,GAAG,MAAM,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAAe,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../../src/commands/stash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../../src/commands/stash.ts"],"names":[],"mappings":"AA2CA,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyM5E"}
|
package/dist/commands/stash.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { select
|
|
1
|
+
import { select } from "@inquirer/prompts";
|
|
2
2
|
import { execSync } from "child_process";
|
|
3
3
|
import { bold, dim, green, yellow } from "../colors.js";
|
|
4
4
|
import { getBranch } from "../git.js";
|
|
5
|
+
import { selectWithBack, inputWithBack, confirmWithBack, BACK_VALUE, } from "../prompts.js";
|
|
5
6
|
function listStashes() {
|
|
6
7
|
try {
|
|
7
8
|
const result = execSync("git stash list", { encoding: "utf-8" }).trim();
|
|
@@ -44,105 +45,164 @@ export async function stashCommand(options = {}) {
|
|
|
44
45
|
}
|
|
45
46
|
console.log("");
|
|
46
47
|
}
|
|
47
|
-
|
|
48
|
-
let action;
|
|
48
|
+
let currentStep = "action";
|
|
49
|
+
let selectedAction = options.action || "";
|
|
50
|
+
let stashTarget;
|
|
51
|
+
let stashMessage = "";
|
|
52
|
+
let includeUntracked = options.includeUntracked ?? true;
|
|
53
|
+
// If action provided via flag, skip to execute
|
|
49
54
|
if (options.action) {
|
|
50
|
-
|
|
55
|
+
currentStep = "execute";
|
|
51
56
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
? options.includeUntracked
|
|
82
|
-
: (options.yes ? true : await confirm({
|
|
83
|
-
message: "Include untracked files?",
|
|
84
|
-
default: true,
|
|
85
|
-
}));
|
|
86
|
-
const untrackedFlag = includeUntracked ? " --include-untracked" : "";
|
|
87
|
-
execSync(`git stash push -m ${JSON.stringify(message)}${untrackedFlag}`, {
|
|
88
|
-
stdio: "inherit",
|
|
89
|
-
});
|
|
90
|
-
console.log(green(`✓ Stashed: ${message}`));
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
case "pop":
|
|
94
|
-
case "apply": {
|
|
95
|
-
let target;
|
|
96
|
-
if (options.index !== undefined) {
|
|
97
|
-
target = parseInt(options.index, 10);
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
target = await selectStash(stashes, `Select stash to ${action}:`);
|
|
101
|
-
}
|
|
102
|
-
if (target === undefined)
|
|
57
|
+
while (currentStep !== "done") {
|
|
58
|
+
switch (currentStep) {
|
|
59
|
+
case "action": {
|
|
60
|
+
const choices = [];
|
|
61
|
+
if (dirty) {
|
|
62
|
+
choices.push({ value: "save", name: "Save current changes to stash" });
|
|
63
|
+
}
|
|
64
|
+
if (stashes.length > 0) {
|
|
65
|
+
choices.push({ value: "pop", name: "Pop a stash (apply and remove)" });
|
|
66
|
+
choices.push({ value: "apply", name: "Apply a stash (keep in list)" });
|
|
67
|
+
choices.push({ value: "drop", name: "Drop a stash" });
|
|
68
|
+
choices.push({ value: "show", name: "Show stash diff" });
|
|
69
|
+
}
|
|
70
|
+
if (choices.length === 0) {
|
|
71
|
+
console.log("No stashes and no changes to stash.");
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const result = await selectWithBack({
|
|
75
|
+
message: "Action:",
|
|
76
|
+
choices,
|
|
77
|
+
showBack: false, // First step
|
|
78
|
+
});
|
|
79
|
+
if (result === BACK_VALUE) {
|
|
80
|
+
// Can't go back from first step
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
selectedAction = result;
|
|
84
|
+
currentStep = "execute";
|
|
85
|
+
}
|
|
103
86
|
break;
|
|
104
|
-
try {
|
|
105
|
-
execSync(`git stash ${action} stash@{${target}}`, { stdio: "inherit" });
|
|
106
|
-
console.log(green(`✓ ${action === "pop" ? "Popped" : "Applied"} stash@{${target}}`));
|
|
107
|
-
}
|
|
108
|
-
catch {
|
|
109
|
-
console.log(yellow("⚠ Stash could not be applied cleanly. Resolve conflicts manually."));
|
|
110
|
-
}
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
case "drop": {
|
|
114
|
-
let target;
|
|
115
|
-
if (options.index !== undefined) {
|
|
116
|
-
target = parseInt(options.index, 10);
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
target = await selectStash(stashes, "Select stash to drop:");
|
|
120
87
|
}
|
|
121
|
-
|
|
88
|
+
case "execute": {
|
|
89
|
+
switch (selectedAction) {
|
|
90
|
+
case "save": {
|
|
91
|
+
const branch = getBranch();
|
|
92
|
+
const defaultMsg = `WIP on ${branch}`;
|
|
93
|
+
if (options.message) {
|
|
94
|
+
stashMessage = options.message;
|
|
95
|
+
}
|
|
96
|
+
else if (options.yes) {
|
|
97
|
+
stashMessage = defaultMsg;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
const msgResult = await inputWithBack({
|
|
101
|
+
message: "Stash message:",
|
|
102
|
+
default: stashMessage || defaultMsg,
|
|
103
|
+
showBack: !options.action,
|
|
104
|
+
});
|
|
105
|
+
if (msgResult === BACK_VALUE) {
|
|
106
|
+
currentStep = "action";
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
stashMessage = msgResult;
|
|
110
|
+
}
|
|
111
|
+
if (options.includeUntracked === undefined && !options.yes) {
|
|
112
|
+
const untrackedResult = await confirmWithBack({
|
|
113
|
+
message: "Include untracked files?",
|
|
114
|
+
default: includeUntracked,
|
|
115
|
+
showBack: true,
|
|
116
|
+
});
|
|
117
|
+
if (untrackedResult === BACK_VALUE) {
|
|
118
|
+
// Stay on execute to re-prompt message
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
includeUntracked = untrackedResult === true;
|
|
122
|
+
}
|
|
123
|
+
const untrackedFlag = includeUntracked ? " --include-untracked" : "";
|
|
124
|
+
execSync(`git stash push -m ${JSON.stringify(stashMessage)}${untrackedFlag}`, {
|
|
125
|
+
stdio: "inherit",
|
|
126
|
+
});
|
|
127
|
+
console.log(green(`✓ Stashed: ${stashMessage}`));
|
|
128
|
+
currentStep = "done";
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
case "pop":
|
|
132
|
+
case "apply": {
|
|
133
|
+
if (options.index !== undefined) {
|
|
134
|
+
stashTarget = parseInt(options.index, 10);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
const target = await selectStashWithBack(stashes, `Select stash to ${selectedAction}:`, !options.action);
|
|
138
|
+
if (target === BACK_VALUE) {
|
|
139
|
+
currentStep = "action";
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
stashTarget = target;
|
|
143
|
+
}
|
|
144
|
+
try {
|
|
145
|
+
execSync(`git stash ${selectedAction} stash@{${stashTarget}}`, { stdio: "inherit" });
|
|
146
|
+
console.log(green(`✓ ${selectedAction === "pop" ? "Popped" : "Applied"} stash@{${stashTarget}}`));
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
console.log(yellow("⚠ Stash could not be applied cleanly. Resolve conflicts manually."));
|
|
150
|
+
}
|
|
151
|
+
currentStep = "done";
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
case "drop": {
|
|
155
|
+
if (options.index !== undefined) {
|
|
156
|
+
stashTarget = parseInt(options.index, 10);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
const target = await selectStashWithBack(stashes, "Select stash to drop:", !options.action);
|
|
160
|
+
if (target === BACK_VALUE) {
|
|
161
|
+
currentStep = "action";
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
stashTarget = target;
|
|
165
|
+
}
|
|
166
|
+
const confirmed = options.yes || await confirmWithBack({
|
|
167
|
+
message: `Drop stash@{${stashTarget}}? This cannot be undone.`,
|
|
168
|
+
default: false,
|
|
169
|
+
showBack: true,
|
|
170
|
+
});
|
|
171
|
+
if (confirmed === BACK_VALUE) {
|
|
172
|
+
currentStep = "action";
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
if (confirmed === true) {
|
|
176
|
+
execSync(`git stash drop stash@{${stashTarget}}`, { stdio: "ignore" });
|
|
177
|
+
console.log(green(`✓ Dropped stash@{${stashTarget}}`));
|
|
178
|
+
}
|
|
179
|
+
currentStep = "done";
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
case "show": {
|
|
183
|
+
if (options.index !== undefined) {
|
|
184
|
+
stashTarget = parseInt(options.index, 10);
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
const target = await selectStashWithBack(stashes, "Select stash to show:", !options.action);
|
|
188
|
+
if (target === BACK_VALUE) {
|
|
189
|
+
currentStep = "action";
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
stashTarget = target;
|
|
193
|
+
}
|
|
194
|
+
const diff = execSync(`git stash show -p stash@{${stashTarget}}`, { encoding: "utf-8" });
|
|
195
|
+
console.log(diff);
|
|
196
|
+
currentStep = "done";
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
default:
|
|
200
|
+
currentStep = "done";
|
|
201
|
+
}
|
|
122
202
|
break;
|
|
123
|
-
const confirmed = options.yes || await confirm({
|
|
124
|
-
message: `Drop stash@{${target}}? This cannot be undone.`,
|
|
125
|
-
default: false,
|
|
126
|
-
});
|
|
127
|
-
if (confirmed) {
|
|
128
|
-
execSync(`git stash drop stash@{${target}}`, { stdio: "ignore" });
|
|
129
|
-
console.log(green(`✓ Dropped stash@{${target}}`));
|
|
130
203
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
case "show": {
|
|
134
|
-
let target;
|
|
135
|
-
if (options.index !== undefined) {
|
|
136
|
-
target = parseInt(options.index, 10);
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
target = await selectStash(stashes, "Select stash to show:");
|
|
140
|
-
}
|
|
141
|
-
if (target === undefined)
|
|
142
|
-
break;
|
|
143
|
-
const diff = execSync(`git stash show -p stash@{${target}}`, { encoding: "utf-8" });
|
|
144
|
-
console.log(diff);
|
|
145
|
-
break;
|
|
204
|
+
default:
|
|
205
|
+
currentStep = "done";
|
|
146
206
|
}
|
|
147
207
|
}
|
|
148
208
|
}
|
|
@@ -163,4 +223,14 @@ async function selectStash(stashes, message) {
|
|
|
163
223
|
})),
|
|
164
224
|
});
|
|
165
225
|
}
|
|
226
|
+
async function selectStashWithBack(stashes, message, showBack) {
|
|
227
|
+
return selectWithBack({
|
|
228
|
+
message,
|
|
229
|
+
choices: stashes.map((s) => ({
|
|
230
|
+
value: s.index,
|
|
231
|
+
name: `${dim(`[${s.index}]`)} ${s.message} ${s.branch ? dim(`(${s.branch})`) : ""}`,
|
|
232
|
+
})),
|
|
233
|
+
showBack,
|
|
234
|
+
});
|
|
235
|
+
}
|
|
166
236
|
//# sourceMappingURL=stash.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../../src/commands/stash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../../src/commands/stash.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-plan.d.ts","sourceRoot":"","sources":["../../src/commands/test-plan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test-plan.d.ts","sourceRoot":"","sources":["../../src/commands/test-plan.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,eAAe,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6IlF"}
|