@mehmetsagir/git-ai 0.0.8 → 0.0.18

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 (66) hide show
  1. package/README.md +91 -319
  2. package/dist/commit.d.ts +1 -4
  3. package/dist/commit.d.ts.map +1 -1
  4. package/dist/commit.js +214 -208
  5. package/dist/commit.js.map +1 -1
  6. package/dist/config.d.ts +0 -39
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +3 -95
  9. package/dist/config.js.map +1 -1
  10. package/dist/git.d.ts +19 -51
  11. package/dist/git.d.ts.map +1 -1
  12. package/dist/git.js +137 -269
  13. package/dist/git.js.map +1 -1
  14. package/dist/index.js +54 -109
  15. package/dist/index.js.map +1 -1
  16. package/dist/openai.d.ts +2 -21
  17. package/dist/openai.d.ts.map +1 -1
  18. package/dist/openai.js +17 -96
  19. package/dist/openai.js.map +1 -1
  20. package/dist/prompts.d.ts +2 -16
  21. package/dist/prompts.d.ts.map +1 -1
  22. package/dist/prompts.js +32 -146
  23. package/dist/prompts.js.map +1 -1
  24. package/dist/reset.d.ts +0 -3
  25. package/dist/reset.d.ts.map +1 -1
  26. package/dist/reset.js +10 -20
  27. package/dist/reset.js.map +1 -1
  28. package/dist/setup.d.ts +0 -3
  29. package/dist/setup.d.ts.map +1 -1
  30. package/dist/setup.js +28 -156
  31. package/dist/setup.js.map +1 -1
  32. package/dist/stash.d.ts +2 -0
  33. package/dist/stash.d.ts.map +1 -0
  34. package/dist/stash.js +818 -0
  35. package/dist/stash.js.map +1 -0
  36. package/dist/types.d.ts +9 -23
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/utils/hunk-parser.d.ts +22 -0
  39. package/dist/utils/hunk-parser.d.ts.map +1 -0
  40. package/dist/utils/hunk-parser.js +155 -0
  41. package/dist/utils/hunk-parser.js.map +1 -0
  42. package/package.json +12 -8
  43. package/dist/add.d.ts +0 -5
  44. package/dist/add.d.ts.map +0 -1
  45. package/dist/add.js +0 -98
  46. package/dist/add.js.map +0 -1
  47. package/dist/commit-processor.d.ts +0 -6
  48. package/dist/commit-processor.d.ts.map +0 -1
  49. package/dist/commit-processor.js +0 -226
  50. package/dist/commit-processor.js.map +0 -1
  51. package/dist/update.d.ts +0 -9
  52. package/dist/update.d.ts.map +0 -1
  53. package/dist/update.js +0 -69
  54. package/dist/update.js.map +0 -1
  55. package/dist/user-management.d.ts +0 -10
  56. package/dist/user-management.d.ts.map +0 -1
  57. package/dist/user-management.js +0 -175
  58. package/dist/user-management.js.map +0 -1
  59. package/dist/users.d.ts +0 -9
  60. package/dist/users.d.ts.map +0 -1
  61. package/dist/users.js +0 -129
  62. package/dist/users.js.map +0 -1
  63. package/dist/utils/validation.d.ts +0 -24
  64. package/dist/utils/validation.d.ts.map +0 -1
  65. package/dist/utils/validation.js +0 -81
  66. package/dist/utils/validation.js.map +0 -1
package/dist/git.js CHANGED
@@ -36,317 +36,185 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.getStagedDiff = getStagedDiff;
40
- exports.getUnstagedDiff = getUnstagedDiff;
41
- exports.getAllDiff = getAllDiff;
39
+ exports.isGitRepository = isGitRepository;
42
40
  exports.hasChanges = hasChanges;
43
- exports.getGitUserInfo = getGitUserInfo;
44
- exports.getAllGitUserProfiles = getAllGitUserProfiles;
45
- exports.setGitUser = setGitUser;
41
+ exports.getChangedFiles = getChangedFiles;
46
42
  exports.stageFiles = stageFiles;
47
43
  exports.unstageAll = unstageAll;
48
44
  exports.createCommit = createCommit;
49
45
  exports.getStagedFiles = getStagedFiles;
50
- exports.getAllChangedFiles = getAllChangedFiles;
51
- exports.isGitRepository = isGitRepository;
46
+ exports.getFullDiff = getFullDiff;
47
+ exports.getStashList = getStashList;
48
+ exports.getStashDiff = getStashDiff;
49
+ exports.getStashFiles = getStashFiles;
50
+ exports.applyStash = applyStash;
51
+ exports.dropStash = dropStash;
52
52
  const simple_git_1 = __importDefault(require("simple-git"));
53
- const fs = __importStar(require("fs"));
54
53
  const path = __importStar(require("path"));
55
- const errors_1 = require("./utils/errors");
56
- /**
57
- * Create git repository instance
58
- */
59
- function getGitInstance(repoPath = process.cwd()) {
60
- return (0, simple_git_1.default)(repoPath);
61
- }
62
- /**
63
- * Get staged changes
64
- */
65
- async function getStagedDiff() {
54
+ const git = (0, simple_git_1.default)(process.cwd());
55
+ async function isGitRepository() {
66
56
  try {
67
- const git = getGitInstance();
68
- const diff = await git.diff(["--cached"]);
69
- return diff;
57
+ await git.status();
58
+ return true;
70
59
  }
71
- catch (error) {
72
- throw new Error(`Error getting staged diff: ${(0, errors_1.getErrorMessage)(error)}`);
60
+ catch {
61
+ return false;
73
62
  }
74
63
  }
75
- /**
76
- * Get diff for a new (untracked) file
77
- */
78
- function getNewFileDiff(filePath) {
79
- try {
80
- const fullPath = path.resolve(process.cwd(), filePath);
81
- if (!fs.existsSync(fullPath)) {
82
- return "";
83
- }
84
- const content = fs.readFileSync(fullPath, "utf8");
85
- const lines = content.split("\n");
86
- const diffLines = lines.map((line) => `+${line}`);
87
- return `diff --git a/${filePath} b/${filePath}\nnew file mode 100644\nindex 0000000..1111111\n--- /dev/null\n+++ b/${filePath}\n${diffLines.join("\n")}`;
88
- }
89
- catch (error) {
90
- return "";
91
- }
64
+ async function hasChanges() {
65
+ const status = await git.status();
66
+ return status.files.length > 0;
92
67
  }
93
- /**
94
- * Get unstaged changes (including new files)
95
- */
96
- async function getUnstagedDiff() {
97
- try {
98
- const git = getGitInstance();
99
- const status = await git.status();
100
- // Get diff for tracked modified files
101
- const trackedDiff = await git.diff();
102
- // Get diff for new (untracked) files
103
- const newFiles = status.not_added || [];
104
- const newFilesDiff = newFiles
105
- .map((file) => getNewFileDiff(file))
106
- .filter((diff) => diff.length > 0)
107
- .join("\n\n");
108
- if (trackedDiff && newFilesDiff) {
109
- return `${trackedDiff}\n\n${newFilesDiff}`;
68
+ async function getChangedFiles() {
69
+ const status = await git.status();
70
+ const files = [];
71
+ const seen = new Set();
72
+ for (const f of status.files) {
73
+ if (seen.has(f.path))
74
+ continue;
75
+ seen.add(f.path);
76
+ let fileStatus = "modified";
77
+ if (f.index === "?" || f.index === "A" || f.working_dir === "?") {
78
+ fileStatus = "new";
110
79
  }
111
- return trackedDiff || newFilesDiff;
112
- }
113
- catch (error) {
114
- throw new Error(`Error getting unstaged diff: ${(0, errors_1.getErrorMessage)(error)}`);
115
- }
116
- }
117
- /**
118
- * Get all changes (staged + unstaged, including new files)
119
- */
120
- async function getAllDiff() {
121
- try {
122
- const git = getGitInstance();
123
- const status = await git.status();
124
- // Get staged diff
125
- const staged = await getStagedDiff();
126
- // Get unstaged diff (includes new files)
127
- const unstaged = await getUnstagedDiff();
128
- // Also check for new files in staged area
129
- // New files are those in not_added that might have been staged
130
- const stagedNewFiles = [];
131
- const allNewFiles = status.not_added || [];
132
- const stagedFiles = status.staged || [];
133
- // Check if any new files are also in staged (shouldn't happen, but check anyway)
134
- for (const file of stagedFiles) {
135
- if (allNewFiles.includes(file)) {
136
- stagedNewFiles.push(file);
137
- }
80
+ else if (f.index === "D" || f.working_dir === "D") {
81
+ fileStatus = "deleted";
138
82
  }
139
- let stagedWithNew = staged;
140
- if (stagedNewFiles.length > 0) {
141
- const stagedNewFilesDiff = stagedNewFiles
142
- .map((file) => getNewFileDiff(file))
143
- .filter((diff) => diff.length > 0)
144
- .join("\n\n");
145
- if (stagedNewFilesDiff) {
146
- stagedWithNew = staged ? `${staged}\n\n${stagedNewFilesDiff}` : stagedNewFilesDiff;
147
- }
83
+ else if (f.index === "R") {
84
+ fileStatus = "renamed";
148
85
  }
149
- return {
150
- staged: stagedWithNew,
151
- unstaged,
152
- all: `${stagedWithNew}\n${unstaged}`.trim(),
153
- };
154
- }
155
- catch (error) {
156
- throw new Error(`Error getting diff: ${(0, errors_1.getErrorMessage)(error)}`);
86
+ files.push({
87
+ file: f.path,
88
+ status: fileStatus,
89
+ isBinary: isBinaryFile(f.path),
90
+ });
157
91
  }
92
+ return files;
158
93
  }
159
- /**
160
- * Check if there are changes
161
- */
162
- async function hasChanges() {
163
- try {
164
- const git = getGitInstance();
165
- const status = await git.status();
166
- return status.files.length > 0;
167
- }
168
- catch (error) {
169
- throw new Error(`Error checking for changes: ${(0, errors_1.getErrorMessage)(error)}`);
170
- }
94
+ function isBinaryFile(filePath) {
95
+ const binaryExtensions = [
96
+ ".png", ".jpg", ".jpeg", ".gif", ".bmp", ".ico", ".webp", ".svg", ".tiff",
97
+ ".woff", ".woff2", ".ttf", ".otf", ".eot",
98
+ ".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx",
99
+ ".zip", ".tar", ".gz", ".rar", ".7z",
100
+ ".mp3", ".mp4", ".wav", ".avi", ".mov", ".webm", ".ogg",
101
+ ".exe", ".dll", ".so", ".dylib", ".bin", ".dat",
102
+ ];
103
+ const ext = path.extname(filePath).toLowerCase();
104
+ return binaryExtensions.includes(ext);
171
105
  }
172
- /**
173
- * Get git user info (global and local)
174
- */
175
- async function getGitUserInfo() {
176
- try {
177
- const git = getGitInstance();
178
- const [name, email] = await Promise.all([
179
- git
180
- .getConfig("user.name")
181
- .then((config) => config.value || null)
182
- .catch(() => null),
183
- git
184
- .getConfig("user.email")
185
- .then((config) => config.value || null)
186
- .catch(() => null),
187
- ]);
188
- return { name, email };
189
- }
190
- catch (error) {
191
- throw new Error(`Error getting git user info: ${(0, errors_1.getErrorMessage)(error)}`);
192
- }
106
+ async function stageFiles(files) {
107
+ if (files.length === 0)
108
+ return;
109
+ await git.add(files);
193
110
  }
194
- /**
195
- * Collect user profiles from all git configs
196
- */
197
- async function getAllGitUserProfiles() {
111
+ async function unstageAll() {
198
112
  try {
199
- const git = getGitInstance();
200
- const profiles = [];
201
- // Global config
202
- try {
203
- const globalName = await git
204
- .getConfig("user.name", "global")
205
- .then((c) => c.value)
206
- .catch(() => null);
207
- const globalEmail = await git
208
- .getConfig("user.email", "global")
209
- .then((c) => c.value)
210
- .catch(() => null);
211
- if (globalName && globalEmail) {
212
- profiles.push({
213
- id: `global-${globalEmail}`,
214
- name: globalName,
215
- email: globalEmail,
216
- scope: "global",
217
- label: `${globalName} <${globalEmail}> (Global)`,
218
- });
219
- }
220
- }
221
- catch (e) {
222
- // Continue if global config doesn't exist
223
- }
224
- // Local config
225
- try {
226
- const localName = await git
227
- .getConfig("user.name", "local")
228
- .then((c) => c.value)
229
- .catch(() => null);
230
- const localEmail = await git
231
- .getConfig("user.email", "local")
232
- .then((c) => c.value)
233
- .catch(() => null);
234
- if (localName && localEmail) {
235
- const isDuplicate = profiles.some((p) => p.email === localEmail && p.name === localName);
236
- if (!isDuplicate) {
237
- profiles.push({
238
- id: `local-${localEmail}`,
239
- name: localName,
240
- email: localEmail,
241
- scope: "local",
242
- label: `${localName} <${localEmail}> (Local)`,
243
- });
244
- }
245
- }
246
- }
247
- catch (e) {
248
- // Continue if local config doesn't exist
249
- }
250
- return profiles;
113
+ await git.reset(["HEAD"]);
251
114
  }
252
- catch (error) {
253
- throw new Error(`Error getting git user profiles: ${(0, errors_1.getErrorMessage)(error)}`);
115
+ catch {
116
+ // Ignore if nothing staged
254
117
  }
255
118
  }
256
- /**
257
- * Set git user
258
- */
259
- async function setGitUser(name, email, scope = "local") {
260
- try {
261
- const git = getGitInstance();
262
- await git.addConfig("user.name", name, scope === "global");
263
- await git.addConfig("user.email", email, scope === "global");
264
- return true;
265
- }
266
- catch (error) {
267
- throw new Error(`Error setting git user: ${(0, errors_1.getErrorMessage)(error)}`);
268
- }
119
+ async function createCommit(message) {
120
+ await git.commit(message);
269
121
  }
270
- /**
271
- * Stage files
272
- */
273
- async function stageFiles(files) {
274
- try {
275
- const git = getGitInstance();
276
- await git.add(files);
277
- return true;
278
- }
279
- catch (error) {
280
- throw new Error(`Error staging files: ${(0, errors_1.getErrorMessage)(error)}`);
281
- }
122
+ async function getStagedFiles() {
123
+ const status = await git.status();
124
+ return status.staged;
282
125
  }
283
- /**
284
- * Unstage all staged files
285
- */
286
- async function unstageAll() {
126
+ async function getFullDiff() {
127
+ let diff = "";
287
128
  try {
288
- const git = getGitInstance();
289
- await git.reset();
290
- return true;
129
+ const unstaged = await git.diff();
130
+ if (unstaged)
131
+ diff = unstaged;
291
132
  }
292
- catch (error) {
293
- throw new Error(`Error unstaging: ${(0, errors_1.getErrorMessage)(error)}`);
133
+ catch {
134
+ // Ignore
294
135
  }
295
- }
296
- /**
297
- * Create commit
298
- */
299
- async function createCommit(message, authorName = null, authorEmail = null) {
300
136
  try {
301
- const git = getGitInstance();
302
- const options = {};
303
- if (authorName && authorEmail) {
304
- options["--author"] = `${authorName} <${authorEmail}>`;
137
+ const staged = await git.diff(["--cached"]);
138
+ if (staged) {
139
+ diff = diff ? diff + "\n" + staged : staged;
305
140
  }
306
- await git.commit(message, options);
307
- return true;
308
141
  }
309
- catch (error) {
310
- throw new Error(`Error creating commit: ${(0, errors_1.getErrorMessage)(error)}`);
142
+ catch {
143
+ // Ignore
311
144
  }
145
+ return diff;
312
146
  }
313
- /**
314
- * List staged files
315
- */
316
- async function getStagedFiles() {
147
+ async function getStashList() {
317
148
  try {
318
- const git = getGitInstance();
319
- const status = await git.status();
320
- return status.staged;
321
- }
322
- catch (error) {
323
- throw new Error(`Error getting staged files: ${(0, errors_1.getErrorMessage)(error)}`);
149
+ // Use git.raw for better compatibility
150
+ const result = await git.raw(["stash", "list", "--format=%H|%s|%ci"]);
151
+ if (!result || !result.trim())
152
+ return [];
153
+ const lines = result.trim().split("\n");
154
+ return lines.map((line, index) => {
155
+ const [hash, message, date] = line.split("|");
156
+ const branchMatch = message?.match(/^WIP on (.+?):|^On (.+?):/);
157
+ const branch = branchMatch ? (branchMatch[1] || branchMatch[2]) : "unknown";
158
+ return {
159
+ index,
160
+ hash: hash || "",
161
+ message: message || "",
162
+ date: date || "",
163
+ branch
164
+ };
165
+ });
166
+ }
167
+ catch (err) {
168
+ // Fallback: try without format
169
+ try {
170
+ const result = await git.raw(["stash", "list"]);
171
+ if (!result || !result.trim())
172
+ return [];
173
+ const lines = result.trim().split("\n");
174
+ return lines.map((line, index) => {
175
+ // Format: stash@{0}: WIP on branch: message
176
+ const match = line.match(/^stash@\{\d+\}:\s*(.+)$/);
177
+ const message = match ? match[1] : line;
178
+ const branchMatch = message.match(/^WIP on (.+?):|^On (.+?):/);
179
+ const branch = branchMatch ? (branchMatch[1] || branchMatch[2]) : "unknown";
180
+ return {
181
+ index,
182
+ hash: "",
183
+ message,
184
+ date: "",
185
+ branch
186
+ };
187
+ });
188
+ }
189
+ catch {
190
+ return [];
191
+ }
324
192
  }
325
193
  }
326
- /**
327
- * List all changed files
328
- */
329
- async function getAllChangedFiles() {
194
+ async function getStashDiff(index) {
330
195
  try {
331
- const git = getGitInstance();
332
- const status = await git.status();
333
- return [...status.staged, ...status.not_added, ...status.modified];
196
+ const result = await git.raw(["stash", "show", "-p", `stash@{${index}}`]);
197
+ return result || "";
334
198
  }
335
- catch (error) {
336
- throw new Error(`Error getting changed files: ${(0, errors_1.getErrorMessage)(error)}`);
199
+ catch {
200
+ return "";
337
201
  }
338
202
  }
339
- /**
340
- * Check if git repository
341
- */
342
- async function isGitRepository() {
203
+ async function getStashFiles(index) {
343
204
  try {
344
- const git = getGitInstance();
345
- await git.status();
346
- return true;
205
+ const result = await git.raw(["stash", "show", "--name-only", `stash@{${index}}`]);
206
+ if (!result)
207
+ return [];
208
+ return result.trim().split("\n").filter(f => f.trim());
347
209
  }
348
- catch (error) {
349
- return false;
210
+ catch {
211
+ return [];
350
212
  }
351
213
  }
214
+ async function applyStash(index) {
215
+ await git.raw(["stash", "apply", `stash@{${index}}`]);
216
+ }
217
+ async function dropStash(index) {
218
+ await git.raw(["stash", "drop", `stash@{${index}}`]);
219
+ }
352
220
  //# 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":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}