@mehmetsagir/git-ai 0.0.19 → 0.0.25
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/README.md +25 -0
- package/dist/git.d.ts +4 -0
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +80 -22
- package/dist/git.js.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/stash.d.ts.map +1 -1
- package/dist/stash.js +83 -25
- package/dist/stash.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts +2 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +2102 -0
- package/dist/ui.js.map +1 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -6,6 +6,7 @@ AI-powered git commit tool that analyzes your changes, groups them logically, an
|
|
|
6
6
|
|
|
7
7
|
- **Smart Commit Grouping** - AI analyzes your changes and groups related files together by feature or purpose
|
|
8
8
|
- **Conventional Commits** - Automatically generates commit messages in standard format (`feat`, `fix`, `refactor`, `chore`, etc.)
|
|
9
|
+
- **Web UI** - Full web interface for selecting files, viewing diffs, and creating commits visually
|
|
9
10
|
- **Stash Viewer** - Browse and manage git stashes in a beautiful web UI with diff viewer
|
|
10
11
|
- **Safe Workflow** - Always shows a commit plan for your approval before making any changes
|
|
11
12
|
|
|
@@ -95,6 +96,29 @@ git-ai stash
|
|
|
95
96
|
- Delete stashes you no longer need
|
|
96
97
|
- Syntax highlighting for code changes
|
|
97
98
|
|
|
99
|
+
### `git-ai ui`
|
|
100
|
+
|
|
101
|
+
Open a full web UI for managing commits with real-time file changes.
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
git-ai ui
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Features:**
|
|
108
|
+
- Real-time view of all changed files
|
|
109
|
+
- Select files with checkboxes
|
|
110
|
+
- View diff for each file
|
|
111
|
+
- AI analyzes selected files and creates smart commit groups
|
|
112
|
+
- Multiple commits from a single selection (chunks related changes)
|
|
113
|
+
- Review commit plan before executing
|
|
114
|
+
- Create commits with one click
|
|
115
|
+
|
|
116
|
+
**How it works:**
|
|
117
|
+
1. Select the files you want to commit
|
|
118
|
+
2. Click "Analyze with AI" - AI groups related changes
|
|
119
|
+
3. Review the proposed commit plan (may include multiple commits)
|
|
120
|
+
4. Click "Create Commits" to execute
|
|
121
|
+
|
|
98
122
|
### `git-ai setup`
|
|
99
123
|
|
|
100
124
|
Configure or update your OpenAI API key.
|
|
@@ -168,6 +192,7 @@ src/
|
|
|
168
192
|
├── openai.ts # OpenAI API integration
|
|
169
193
|
├── commit.ts # Commit workflow logic
|
|
170
194
|
├── stash.ts # Stash viewer web UI
|
|
195
|
+
├── ui.ts # Commit manager web UI
|
|
171
196
|
├── config.ts # Configuration management
|
|
172
197
|
├── setup.ts # Setup wizard
|
|
173
198
|
├── reset.ts # Reset configuration
|
package/dist/git.d.ts
CHANGED
|
@@ -3,10 +3,14 @@ export declare function isGitRepository(): Promise<boolean>;
|
|
|
3
3
|
export declare function hasChanges(): Promise<boolean>;
|
|
4
4
|
export declare function getChangedFiles(): Promise<FileInfo[]>;
|
|
5
5
|
export declare function stageFiles(files: string[]): Promise<void>;
|
|
6
|
+
export declare function stageFile(file: string): Promise<void>;
|
|
7
|
+
export declare function unstageFile(file: string): Promise<void>;
|
|
6
8
|
export declare function unstageAll(): Promise<void>;
|
|
7
9
|
export declare function createCommit(message: string): Promise<void>;
|
|
8
10
|
export declare function getStagedFiles(): Promise<string[]>;
|
|
9
11
|
export declare function getFullDiff(): Promise<string>;
|
|
12
|
+
export declare function getStagedDiff(): Promise<string>;
|
|
13
|
+
export declare function getUnstagedDiff(): Promise<string>;
|
|
10
14
|
export interface StashEntry {
|
|
11
15
|
index: number;
|
|
12
16
|
hash: string;
|
package/dist/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMnC,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAOxD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAGnD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAkD3D;AAeD,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/D;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM7D;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAMhD;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGxD;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAoBnD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAMrD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAMvD;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CA8C1D;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOjE;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQpE;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D"}
|
package/dist/git.js
CHANGED
|
@@ -40,10 +40,14 @@ exports.isGitRepository = isGitRepository;
|
|
|
40
40
|
exports.hasChanges = hasChanges;
|
|
41
41
|
exports.getChangedFiles = getChangedFiles;
|
|
42
42
|
exports.stageFiles = stageFiles;
|
|
43
|
+
exports.stageFile = stageFile;
|
|
44
|
+
exports.unstageFile = unstageFile;
|
|
43
45
|
exports.unstageAll = unstageAll;
|
|
44
46
|
exports.createCommit = createCommit;
|
|
45
47
|
exports.getStagedFiles = getStagedFiles;
|
|
46
48
|
exports.getFullDiff = getFullDiff;
|
|
49
|
+
exports.getStagedDiff = getStagedDiff;
|
|
50
|
+
exports.getUnstagedDiff = getUnstagedDiff;
|
|
47
51
|
exports.getStashList = getStashList;
|
|
48
52
|
exports.getStashDiff = getStashDiff;
|
|
49
53
|
exports.getStashFiles = getStashFiles;
|
|
@@ -51,10 +55,12 @@ exports.applyStash = applyStash;
|
|
|
51
55
|
exports.dropStash = dropStash;
|
|
52
56
|
const simple_git_1 = __importDefault(require("simple-git"));
|
|
53
57
|
const path = __importStar(require("path"));
|
|
54
|
-
|
|
58
|
+
function getGit() {
|
|
59
|
+
return (0, simple_git_1.default)(process.cwd());
|
|
60
|
+
}
|
|
55
61
|
async function isGitRepository() {
|
|
56
62
|
try {
|
|
57
|
-
await
|
|
63
|
+
await getGit().status();
|
|
58
64
|
return true;
|
|
59
65
|
}
|
|
60
66
|
catch {
|
|
@@ -62,11 +68,11 @@ async function isGitRepository() {
|
|
|
62
68
|
}
|
|
63
69
|
}
|
|
64
70
|
async function hasChanges() {
|
|
65
|
-
const status = await
|
|
71
|
+
const status = await getGit().status();
|
|
66
72
|
return status.files.length > 0;
|
|
67
73
|
}
|
|
68
74
|
async function getChangedFiles() {
|
|
69
|
-
const status = await
|
|
75
|
+
const status = await getGit().status();
|
|
70
76
|
const files = [];
|
|
71
77
|
const seen = new Set();
|
|
72
78
|
for (const f of status.files) {
|
|
@@ -74,7 +80,14 @@ async function getChangedFiles() {
|
|
|
74
80
|
continue;
|
|
75
81
|
seen.add(f.path);
|
|
76
82
|
let fileStatus = "modified";
|
|
77
|
-
if
|
|
83
|
+
// Check if file has staged changes (index is not empty, not "?" untracked)
|
|
84
|
+
const isStaged = f.index !== " " && f.index !== "?" && f.index !== "";
|
|
85
|
+
// Check if file has unstaged changes
|
|
86
|
+
const isUnstaged = f.working_dir !== " " && f.working_dir !== "";
|
|
87
|
+
if (f.index === "?" || f.working_dir === "?") {
|
|
88
|
+
fileStatus = "new";
|
|
89
|
+
}
|
|
90
|
+
else if (f.index === "A" && f.working_dir === " ") {
|
|
78
91
|
fileStatus = "new";
|
|
79
92
|
}
|
|
80
93
|
else if (f.index === "D" || f.working_dir === "D") {
|
|
@@ -83,11 +96,29 @@ async function getChangedFiles() {
|
|
|
83
96
|
else if (f.index === "R") {
|
|
84
97
|
fileStatus = "renamed";
|
|
85
98
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
99
|
+
// If file has both staged and unstaged changes, create two entries
|
|
100
|
+
if (isStaged && isUnstaged && f.index !== "?" && f.working_dir !== "?") {
|
|
101
|
+
files.push({
|
|
102
|
+
file: f.path,
|
|
103
|
+
status: fileStatus,
|
|
104
|
+
isBinary: isBinaryFile(f.path),
|
|
105
|
+
staged: true,
|
|
106
|
+
});
|
|
107
|
+
files.push({
|
|
108
|
+
file: f.path,
|
|
109
|
+
status: fileStatus,
|
|
110
|
+
isBinary: isBinaryFile(f.path),
|
|
111
|
+
staged: false,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
files.push({
|
|
116
|
+
file: f.path,
|
|
117
|
+
status: fileStatus,
|
|
118
|
+
isBinary: isBinaryFile(f.path),
|
|
119
|
+
staged: isStaged,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
91
122
|
}
|
|
92
123
|
return files;
|
|
93
124
|
}
|
|
@@ -106,27 +137,38 @@ function isBinaryFile(filePath) {
|
|
|
106
137
|
async function stageFiles(files) {
|
|
107
138
|
if (files.length === 0)
|
|
108
139
|
return;
|
|
109
|
-
await
|
|
140
|
+
await getGit().add(files);
|
|
141
|
+
}
|
|
142
|
+
async function stageFile(file) {
|
|
143
|
+
await getGit().add([file]);
|
|
144
|
+
}
|
|
145
|
+
async function unstageFile(file) {
|
|
146
|
+
try {
|
|
147
|
+
await getGit().reset(["HEAD", "--", file]);
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
// Ignore if file not staged
|
|
151
|
+
}
|
|
110
152
|
}
|
|
111
153
|
async function unstageAll() {
|
|
112
154
|
try {
|
|
113
|
-
await
|
|
155
|
+
await getGit().reset(["HEAD"]);
|
|
114
156
|
}
|
|
115
157
|
catch {
|
|
116
158
|
// Ignore if nothing staged
|
|
117
159
|
}
|
|
118
160
|
}
|
|
119
161
|
async function createCommit(message) {
|
|
120
|
-
await
|
|
162
|
+
await getGit().commit(message);
|
|
121
163
|
}
|
|
122
164
|
async function getStagedFiles() {
|
|
123
|
-
const status = await
|
|
165
|
+
const status = await getGit().status();
|
|
124
166
|
return status.staged;
|
|
125
167
|
}
|
|
126
168
|
async function getFullDiff() {
|
|
127
169
|
let diff = "";
|
|
128
170
|
try {
|
|
129
|
-
const unstaged = await
|
|
171
|
+
const unstaged = await getGit().diff();
|
|
130
172
|
if (unstaged)
|
|
131
173
|
diff = unstaged;
|
|
132
174
|
}
|
|
@@ -134,7 +176,7 @@ async function getFullDiff() {
|
|
|
134
176
|
// Ignore
|
|
135
177
|
}
|
|
136
178
|
try {
|
|
137
|
-
const staged = await
|
|
179
|
+
const staged = await getGit().diff(["--cached"]);
|
|
138
180
|
if (staged) {
|
|
139
181
|
diff = diff ? diff + "\n" + staged : staged;
|
|
140
182
|
}
|
|
@@ -144,10 +186,26 @@ async function getFullDiff() {
|
|
|
144
186
|
}
|
|
145
187
|
return diff;
|
|
146
188
|
}
|
|
189
|
+
async function getStagedDiff() {
|
|
190
|
+
try {
|
|
191
|
+
return await getGit().diff(["--cached"]);
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
return "";
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
async function getUnstagedDiff() {
|
|
198
|
+
try {
|
|
199
|
+
return await getGit().diff();
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
return "";
|
|
203
|
+
}
|
|
204
|
+
}
|
|
147
205
|
async function getStashList() {
|
|
148
206
|
try {
|
|
149
207
|
// Use git.raw for better compatibility
|
|
150
|
-
const result = await
|
|
208
|
+
const result = await getGit().raw(["stash", "list", "--format=%H|%s|%ci"]);
|
|
151
209
|
if (!result || !result.trim())
|
|
152
210
|
return [];
|
|
153
211
|
const lines = result.trim().split("\n");
|
|
@@ -167,7 +225,7 @@ async function getStashList() {
|
|
|
167
225
|
catch (err) {
|
|
168
226
|
// Fallback: try without format
|
|
169
227
|
try {
|
|
170
|
-
const result = await
|
|
228
|
+
const result = await getGit().raw(["stash", "list"]);
|
|
171
229
|
if (!result || !result.trim())
|
|
172
230
|
return [];
|
|
173
231
|
const lines = result.trim().split("\n");
|
|
@@ -193,7 +251,7 @@ async function getStashList() {
|
|
|
193
251
|
}
|
|
194
252
|
async function getStashDiff(index) {
|
|
195
253
|
try {
|
|
196
|
-
const result = await
|
|
254
|
+
const result = await getGit().raw(["stash", "show", "-p", `stash@{${index}}`]);
|
|
197
255
|
return result || "";
|
|
198
256
|
}
|
|
199
257
|
catch {
|
|
@@ -202,7 +260,7 @@ async function getStashDiff(index) {
|
|
|
202
260
|
}
|
|
203
261
|
async function getStashFiles(index) {
|
|
204
262
|
try {
|
|
205
|
-
const result = await
|
|
263
|
+
const result = await getGit().raw(["stash", "show", "--name-only", `stash@{${index}}`]);
|
|
206
264
|
if (!result)
|
|
207
265
|
return [];
|
|
208
266
|
return result.trim().split("\n").filter(f => f.trim());
|
|
@@ -212,9 +270,9 @@ async function getStashFiles(index) {
|
|
|
212
270
|
}
|
|
213
271
|
}
|
|
214
272
|
async function applyStash(index) {
|
|
215
|
-
await
|
|
273
|
+
await getGit().raw(["stash", "apply", `stash@{${index}}`]);
|
|
216
274
|
}
|
|
217
275
|
async function dropStash(index) {
|
|
218
|
-
await
|
|
276
|
+
await getGit().raw(["stash", "drop", `stash@{${index}}`]);
|
|
219
277
|
}
|
|
220
278
|
//# sourceMappingURL=git.js.map
|
package/dist/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,0CAOC;AAED,gCAGC;AAED,0CAkDC;AAeD,gCAGC;AAED,8BAEC;AAED,kCAMC;AAED,gCAMC;AAED,oCAEC;AAED,wCAGC;AAED,kCAoBC;AAED,sCAMC;AAED,0CAMC;AAUD,oCA8CC;AAED,oCAOC;AAED,sCAQC;AAED,gCAEC;AAED,8BAEC;AAhPD,4DAAkD;AAClD,2CAA6B;AAG7B,SAAS,MAAM;IACb,OAAO,IAAA,oBAAS,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAClC,CAAC;AAEM,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,UAAU;IAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;IACvC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,CAAC;AAEM,KAAK,UAAU,eAAe;IACnC,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;IACvC,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,SAAS;QAC/B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEjB,IAAI,UAAU,GAAuB,UAAU,CAAC;QAChD,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACtE,qCAAqC;QACrC,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC;QAEjE,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YAC7C,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YACpD,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YACpD,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;YAC3B,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;QAED,mEAAmE;QACnE,IAAI,QAAQ,IAAI,UAAU,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YACvE,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC9B,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC9B,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC9B,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,gBAAgB,GAAG;QACvB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;QACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;QACzC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;QACzD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;QACpC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;QACvD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;KAChD,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,KAAe;IAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC/B,MAAM,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,MAAM,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,4BAA4B;IAC9B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC;QACH,MAAM,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,2BAA2B;IAC7B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,OAAe;IAChD,MAAM,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAEM,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,WAAW;IAC/B,IAAI,IAAI,GAAG,EAAE,CAAC;IAEd,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,QAAQ;YAAE,IAAI,GAAG,QAAQ,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAUM,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC;QACH,uCAAuC;QACvC,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAC;QAEzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE5E,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,IAAI,IAAI,EAAE;gBAChB,OAAO,EAAE,OAAO,IAAI,EAAE;gBACtB,IAAI,EAAE,IAAI,IAAI,EAAE;gBAChB,MAAM;aACP,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,+BAA+B;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;gBAAE,OAAO,EAAE,CAAC;YAEzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC/B,4CAA4C;gBAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACpD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAC/D,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAE5E,OAAO;oBACL,KAAK;oBACL,IAAI,EAAE,EAAE;oBACR,OAAO;oBACP,IAAI,EAAE,EAAE;oBACR,MAAM;iBACP,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,KAAa;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/E,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,KAAa;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,KAAa;IAC5C,MAAM,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,KAAa;IAC3C,MAAM,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC;AAC5D,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -43,6 +43,7 @@ const setup = __importStar(require("./setup"));
|
|
|
43
43
|
const commit = __importStar(require("./commit"));
|
|
44
44
|
const reset = __importStar(require("./reset"));
|
|
45
45
|
const stash = __importStar(require("./stash"));
|
|
46
|
+
const ui = __importStar(require("./ui"));
|
|
46
47
|
const errors_1 = require("./utils/errors");
|
|
47
48
|
const program = new commander_1.Command();
|
|
48
49
|
function handleError(error) {
|
|
@@ -97,6 +98,17 @@ program
|
|
|
97
98
|
handleError(error);
|
|
98
99
|
}
|
|
99
100
|
});
|
|
101
|
+
program
|
|
102
|
+
.command("ui")
|
|
103
|
+
.description("Open web UI for managing commits")
|
|
104
|
+
.action(async () => {
|
|
105
|
+
try {
|
|
106
|
+
await ui.runUI();
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
handleError(error);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
100
112
|
// Show help if no command provided
|
|
101
113
|
if (process.argv.length === 2) {
|
|
102
114
|
program.help();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,+CAAiC;AACjC,iDAAmC;AACnC,+CAAiC;AACjC,+CAAiC;AACjC,2CAAiD;AAEjD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,cAAc,IAAA,wBAAe,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,4BAA4B,CAAC;KACzC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;AAE/C,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,mCAAmC;AACnC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,+CAAiC;AACjC,iDAAmC;AACnC,+CAAiC;AACjC,+CAAiC;AACjC,yCAA2B;AAC3B,2CAAiD;AAEjD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,cAAc,IAAA,wBAAe,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,4BAA4B,CAAC;KACzC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;AAE/C,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,mCAAmC;AACnC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/stash.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stash.d.ts","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"AAkvBA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA+GpD"}
|
package/dist/stash.js
CHANGED
|
@@ -42,12 +42,20 @@ const child_process_1 = require("child_process");
|
|
|
42
42
|
const chalk_1 = __importDefault(require("chalk"));
|
|
43
43
|
const git = __importStar(require("./git"));
|
|
44
44
|
const PORT = 3847;
|
|
45
|
+
function safeJsonEmbed(obj) {
|
|
46
|
+
return JSON.stringify(obj)
|
|
47
|
+
.replace(/</g, '\\u003c')
|
|
48
|
+
.replace(/>/g, '\\u003e')
|
|
49
|
+
.replace(/&/g, '\\u0026');
|
|
50
|
+
}
|
|
45
51
|
function getHtml(data) {
|
|
46
|
-
const stashesJson = JSON.stringify(data.stashes);
|
|
47
52
|
const diffsJson = {};
|
|
48
53
|
const filesJson = {};
|
|
49
54
|
data.diffs.forEach((v, k) => { diffsJson[k] = v; });
|
|
50
55
|
data.files.forEach((v, k) => { filesJson[k] = v; });
|
|
56
|
+
const stashesJsonSafe = safeJsonEmbed(data.stashes);
|
|
57
|
+
const diffsJsonSafe = safeJsonEmbed(diffsJson);
|
|
58
|
+
const filesJsonSafe = safeJsonEmbed(filesJson);
|
|
51
59
|
return `<!DOCTYPE html>
|
|
52
60
|
<html>
|
|
53
61
|
<head>
|
|
@@ -85,30 +93,33 @@ function getHtml(data) {
|
|
|
85
93
|
align-items: center;
|
|
86
94
|
gap: 8px;
|
|
87
95
|
}
|
|
88
|
-
.
|
|
96
|
+
.header-nav {
|
|
89
97
|
display: flex;
|
|
90
98
|
align-items: center;
|
|
91
|
-
gap:
|
|
99
|
+
gap: 12px;
|
|
100
|
+
width: 100%;
|
|
101
|
+
}
|
|
102
|
+
.back-btn {
|
|
103
|
+
display: inline-flex;
|
|
104
|
+
align-items: center;
|
|
105
|
+
gap: 4px;
|
|
92
106
|
background: none;
|
|
93
107
|
border: none;
|
|
94
108
|
color: #58a6ff;
|
|
95
109
|
cursor: pointer;
|
|
96
|
-
font-size:
|
|
97
|
-
padding:
|
|
98
|
-
|
|
99
|
-
transition: background 0.1s;
|
|
110
|
+
font-size: 13px;
|
|
111
|
+
padding: 0;
|
|
112
|
+
transition: opacity 0.15s;
|
|
100
113
|
}
|
|
101
|
-
.back-btn:hover {
|
|
114
|
+
.back-btn:hover { opacity: 0.8; }
|
|
102
115
|
.back-btn svg {
|
|
103
|
-
width:
|
|
104
|
-
height:
|
|
116
|
+
width: 16px;
|
|
117
|
+
height: 16px;
|
|
105
118
|
}
|
|
106
119
|
.stash-title {
|
|
107
120
|
color: #4ec9b0;
|
|
108
|
-
font-size:
|
|
121
|
+
font-size: 13px;
|
|
109
122
|
font-weight: 500;
|
|
110
|
-
text-transform: none;
|
|
111
|
-
letter-spacing: normal;
|
|
112
123
|
}
|
|
113
124
|
.sidebar-footer {
|
|
114
125
|
padding: 14px 16px;
|
|
@@ -184,14 +195,14 @@ function getHtml(data) {
|
|
|
184
195
|
}
|
|
185
196
|
.toast {
|
|
186
197
|
position: fixed;
|
|
187
|
-
|
|
198
|
+
top: 20px;
|
|
188
199
|
right: 20px;
|
|
189
200
|
padding: 12px 20px;
|
|
190
201
|
border-radius: 6px;
|
|
191
202
|
font-size: 13px;
|
|
192
203
|
color: #fff;
|
|
193
204
|
opacity: 0;
|
|
194
|
-
transform: translateY(10px);
|
|
205
|
+
transform: translateY(-10px);
|
|
195
206
|
transition: opacity 0.2s, transform 0.2s;
|
|
196
207
|
z-index: 1000;
|
|
197
208
|
}
|
|
@@ -201,6 +212,36 @@ function getHtml(data) {
|
|
|
201
212
|
}
|
|
202
213
|
.toast.success { background: #238636; }
|
|
203
214
|
.toast.error { background: #da3633; }
|
|
215
|
+
.loader-overlay {
|
|
216
|
+
position: fixed;
|
|
217
|
+
top: 0;
|
|
218
|
+
left: 0;
|
|
219
|
+
right: 0;
|
|
220
|
+
bottom: 0;
|
|
221
|
+
background: rgba(0, 0, 0, 0.5);
|
|
222
|
+
display: flex;
|
|
223
|
+
align-items: center;
|
|
224
|
+
justify-content: center;
|
|
225
|
+
z-index: 999;
|
|
226
|
+
opacity: 0;
|
|
227
|
+
visibility: hidden;
|
|
228
|
+
transition: opacity 0.2s, visibility 0.2s;
|
|
229
|
+
}
|
|
230
|
+
.loader-overlay.show {
|
|
231
|
+
opacity: 1;
|
|
232
|
+
visibility: visible;
|
|
233
|
+
}
|
|
234
|
+
.loader {
|
|
235
|
+
width: 40px;
|
|
236
|
+
height: 40px;
|
|
237
|
+
border: 3px solid #3c3c3c;
|
|
238
|
+
border-top-color: #58a6ff;
|
|
239
|
+
border-radius: 50%;
|
|
240
|
+
animation: spin 0.8s linear infinite;
|
|
241
|
+
}
|
|
242
|
+
@keyframes spin {
|
|
243
|
+
to { transform: rotate(360deg); }
|
|
244
|
+
}
|
|
204
245
|
.sidebar-content {
|
|
205
246
|
flex: 1;
|
|
206
247
|
overflow-y: auto;
|
|
@@ -410,11 +451,14 @@ function getHtml(data) {
|
|
|
410
451
|
</div>
|
|
411
452
|
</div>
|
|
412
453
|
<div class="toast" id="toast"></div>
|
|
454
|
+
<div class="loader-overlay" id="loader">
|
|
455
|
+
<div class="loader"></div>
|
|
456
|
+
</div>
|
|
413
457
|
|
|
414
458
|
<script>
|
|
415
|
-
let stashes = ${
|
|
416
|
-
let diffs = ${
|
|
417
|
-
let files = ${
|
|
459
|
+
let stashes = ${stashesJsonSafe};
|
|
460
|
+
let diffs = ${diffsJsonSafe};
|
|
461
|
+
let files = ${filesJsonSafe};
|
|
418
462
|
let isLoading = false;
|
|
419
463
|
|
|
420
464
|
let currentView = 'list'; // 'list' or 'detail'
|
|
@@ -474,13 +518,15 @@ function getHtml(data) {
|
|
|
474
518
|
|
|
475
519
|
// Update header with back button
|
|
476
520
|
document.getElementById('sidebarHeader').innerHTML = \`
|
|
477
|
-
<
|
|
478
|
-
<
|
|
479
|
-
<
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
521
|
+
<div class="header-nav">
|
|
522
|
+
<button class="back-btn" onclick="renderStashList()">
|
|
523
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
524
|
+
<path d="M15 18l-6-6 6-6"/>
|
|
525
|
+
</svg>
|
|
526
|
+
Back
|
|
527
|
+
</button>
|
|
528
|
+
<span class="stash-title">stash@{\${index}}</span>
|
|
529
|
+
</div>
|
|
484
530
|
\`;
|
|
485
531
|
|
|
486
532
|
// Render file list with action buttons
|
|
@@ -645,6 +691,14 @@ function getHtml(data) {
|
|
|
645
691
|
setTimeout(() => { toast.classList.remove('show'); }, 3000);
|
|
646
692
|
}
|
|
647
693
|
|
|
694
|
+
function showLoader() {
|
|
695
|
+
document.getElementById('loader').classList.add('show');
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
function hideLoader() {
|
|
699
|
+
document.getElementById('loader').classList.remove('show');
|
|
700
|
+
}
|
|
701
|
+
|
|
648
702
|
async function refreshData() {
|
|
649
703
|
const res = await fetch('/api/data');
|
|
650
704
|
const data = await res.json();
|
|
@@ -656,6 +710,7 @@ function getHtml(data) {
|
|
|
656
710
|
async function applyStash(index) {
|
|
657
711
|
if (isLoading) return;
|
|
658
712
|
isLoading = true;
|
|
713
|
+
showLoader();
|
|
659
714
|
|
|
660
715
|
try {
|
|
661
716
|
const res = await fetch('/api/apply/' + index, { method: 'POST' });
|
|
@@ -672,6 +727,7 @@ function getHtml(data) {
|
|
|
672
727
|
showToast('Failed to apply stash', 'error');
|
|
673
728
|
}
|
|
674
729
|
|
|
730
|
+
hideLoader();
|
|
675
731
|
isLoading = false;
|
|
676
732
|
}
|
|
677
733
|
|
|
@@ -680,6 +736,7 @@ function getHtml(data) {
|
|
|
680
736
|
if (!confirm('Are you sure you want to delete this stash? This cannot be undone.')) return;
|
|
681
737
|
|
|
682
738
|
isLoading = true;
|
|
739
|
+
showLoader();
|
|
683
740
|
|
|
684
741
|
try {
|
|
685
742
|
const res = await fetch('/api/drop/' + index, { method: 'POST' });
|
|
@@ -696,6 +753,7 @@ function getHtml(data) {
|
|
|
696
753
|
showToast('Failed to delete stash', 'error');
|
|
697
754
|
}
|
|
698
755
|
|
|
756
|
+
hideLoader();
|
|
699
757
|
isLoading = false;
|
|
700
758
|
}
|
|
701
759
|
|
package/dist/stash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"stash.js","sourceRoot":"","sources":["../src/stash.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACnD,QAAQ,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAGD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
package/dist/ui.d.ts
ADDED
package/dist/ui.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AA4yDA,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAmQ3C"}
|