@mehmetsagir/git-ai 0.0.1

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 (55) hide show
  1. package/README.md +365 -0
  2. package/bin/git-ai +4 -0
  3. package/dist/add.d.ts +5 -0
  4. package/dist/add.d.ts.map +1 -0
  5. package/dist/add.js +98 -0
  6. package/dist/add.js.map +1 -0
  7. package/dist/commit-processor.d.ts +6 -0
  8. package/dist/commit-processor.d.ts.map +1 -0
  9. package/dist/commit-processor.js +138 -0
  10. package/dist/commit-processor.js.map +1 -0
  11. package/dist/commit.d.ts +5 -0
  12. package/dist/commit.d.ts.map +1 -0
  13. package/dist/commit.js +245 -0
  14. package/dist/commit.js.map +1 -0
  15. package/dist/config.d.ts +44 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/config.js +185 -0
  18. package/dist/config.js.map +1 -0
  19. package/dist/git.d.ts +54 -0
  20. package/dist/git.d.ts.map +1 -0
  21. package/dist/git.js +256 -0
  22. package/dist/git.js.map +1 -0
  23. package/dist/index.d.ts +3 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +138 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/openai.d.ts +22 -0
  28. package/dist/openai.d.ts.map +1 -0
  29. package/dist/openai.js +137 -0
  30. package/dist/openai.js.map +1 -0
  31. package/dist/prompts.d.ts +17 -0
  32. package/dist/prompts.d.ts.map +1 -0
  33. package/dist/prompts.js +117 -0
  34. package/dist/prompts.js.map +1 -0
  35. package/dist/reset.d.ts +5 -0
  36. package/dist/reset.d.ts.map +1 -0
  37. package/dist/reset.js +77 -0
  38. package/dist/reset.js.map +1 -0
  39. package/dist/setup.d.ts +5 -0
  40. package/dist/setup.d.ts.map +1 -0
  41. package/dist/setup.js +234 -0
  42. package/dist/setup.js.map +1 -0
  43. package/dist/types.d.ts +41 -0
  44. package/dist/types.d.ts.map +1 -0
  45. package/dist/types.js +3 -0
  46. package/dist/types.js.map +1 -0
  47. package/dist/user-management.d.ts +10 -0
  48. package/dist/user-management.d.ts.map +1 -0
  49. package/dist/user-management.js +225 -0
  50. package/dist/user-management.js.map +1 -0
  51. package/dist/users.d.ts +9 -0
  52. package/dist/users.d.ts.map +1 -0
  53. package/dist/users.js +129 -0
  54. package/dist/users.js.map +1 -0
  55. package/package.json +46 -0
package/dist/commit.js ADDED
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.runCommit = runCommit;
40
+ const inquirer_1 = __importDefault(require("inquirer"));
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const ora_1 = __importDefault(require("ora"));
43
+ const config = __importStar(require("./config"));
44
+ const git = __importStar(require("./git"));
45
+ const openai = __importStar(require("./openai"));
46
+ const commitProcessor = __importStar(require("./commit-processor"));
47
+ /**
48
+ * Run commit command
49
+ */
50
+ async function runCommit(userFlag = null) {
51
+ console.log(chalk_1.default.blue.bold('\n🤖 Git Commit AI\n'));
52
+ if (!config.configExists()) {
53
+ console.log(chalk_1.default.yellow('⚠ Configuration not found. Please run setup first.\n'));
54
+ console.log(chalk_1.default.blue('Run: git-ai setup\n'));
55
+ return;
56
+ }
57
+ const openaiKey = config.getOpenAIKey();
58
+ if (!openaiKey) {
59
+ console.log(chalk_1.default.yellow('⚠ OpenAI API key not found. Please run setup first.\n'));
60
+ console.log(chalk_1.default.blue('Run: git-ai setup\n'));
61
+ return;
62
+ }
63
+ const isRepo = await git.isGitRepository();
64
+ if (!isRepo) {
65
+ console.log(chalk_1.default.red('❌ This directory is not a git repository!\n'));
66
+ return;
67
+ }
68
+ const hasChanges = await git.hasChanges();
69
+ if (!hasChanges) {
70
+ console.log(chalk_1.default.yellow('⚠ No changes found to commit.\n'));
71
+ return;
72
+ }
73
+ const gitUsers = config.getGitUsers();
74
+ let selectedUser = null;
75
+ if (gitUsers.length === 0) {
76
+ console.log(chalk_1.default.yellow('⚠ No git user profile found. Setup is recommended.\n'));
77
+ try {
78
+ const currentUser = await git.getGitUserInfo();
79
+ if (currentUser.name && currentUser.email) {
80
+ selectedUser = {
81
+ name: currentUser.name,
82
+ email: currentUser.email
83
+ };
84
+ console.log(chalk_1.default.blue(`Using current git user: ${currentUser.name} <${currentUser.email}>\n`));
85
+ }
86
+ else {
87
+ console.log(chalk_1.default.red('❌ Could not get git user info!\n'));
88
+ return;
89
+ }
90
+ }
91
+ catch (error) {
92
+ const err = error;
93
+ console.log(chalk_1.default.red(`❌ Could not get git user info: ${err.message}\n`));
94
+ return;
95
+ }
96
+ }
97
+ else {
98
+ if (userFlag) {
99
+ const userFlagLower = userFlag.toLowerCase().trim();
100
+ let foundUser = gitUsers.find(u => u.shortcut === userFlagLower);
101
+ if (!foundUser) {
102
+ foundUser = gitUsers.find(u => u.id === userFlag ||
103
+ u.id === userFlagLower ||
104
+ u.email === userFlag ||
105
+ u.email.toLowerCase() === userFlagLower);
106
+ }
107
+ if (!foundUser) {
108
+ console.log(chalk_1.default.red(`❌ Git user not found: ${userFlag}\n`));
109
+ console.log(chalk_1.default.blue('Available user profiles:\n'));
110
+ gitUsers.forEach(u => {
111
+ const shortcutInfo = u.shortcut
112
+ ? chalk_1.default.yellow(` [shortcut: ${u.shortcut}]`)
113
+ : '';
114
+ console.log(chalk_1.default.cyan(` - ${u.label}${shortcutInfo}`));
115
+ });
116
+ console.log(chalk_1.default.blue('\nUsage: git-ai commit --user <shortcut|email|id>\n'));
117
+ return;
118
+ }
119
+ selectedUser = {
120
+ name: foundUser.name,
121
+ email: foundUser.email
122
+ };
123
+ const shortcutInfo = foundUser.shortcut
124
+ ? chalk_1.default.yellow(` (shortcut: ${foundUser.shortcut})`)
125
+ : '';
126
+ console.log(chalk_1.default.blue(`Git user (selected via flag): ${foundUser.name} <${foundUser.email}>${shortcutInfo}\n`));
127
+ }
128
+ else {
129
+ const defaultUserId = config.getDefaultGitUser();
130
+ if (defaultUserId) {
131
+ const defaultUser = gitUsers.find(u => u.id === defaultUserId);
132
+ if (defaultUser) {
133
+ selectedUser = {
134
+ name: defaultUser.name,
135
+ email: defaultUser.email
136
+ };
137
+ }
138
+ }
139
+ if (gitUsers.length > 1 && !selectedUser) {
140
+ const { userId } = await inquirer_1.default.prompt([
141
+ {
142
+ type: 'list',
143
+ name: 'userId',
144
+ message: 'Select git user:',
145
+ choices: gitUsers.map(u => ({
146
+ name: u.label,
147
+ value: u.id
148
+ }))
149
+ }
150
+ ]);
151
+ const chosenUser = gitUsers.find(u => u.id === userId);
152
+ if (chosenUser) {
153
+ selectedUser = {
154
+ name: chosenUser.name,
155
+ email: chosenUser.email
156
+ };
157
+ }
158
+ }
159
+ else if (!selectedUser && gitUsers.length > 0) {
160
+ selectedUser = {
161
+ name: gitUsers[0].name,
162
+ email: gitUsers[0].email
163
+ };
164
+ }
165
+ if (selectedUser) {
166
+ console.log(chalk_1.default.blue(`Git user (default): ${selectedUser.name} <${selectedUser.email}>\n`));
167
+ }
168
+ }
169
+ }
170
+ const diffSpinner = (0, ora_1.default)('Analyzing changes...').start();
171
+ let diffData;
172
+ try {
173
+ diffData = await git.getAllDiff();
174
+ diffSpinner.succeed('Changes analyzed');
175
+ }
176
+ catch (error) {
177
+ const err = error;
178
+ diffSpinner.fail(`Error getting diff: ${err.message}`);
179
+ return;
180
+ }
181
+ if (!diffData.all || diffData.all.trim().length === 0) {
182
+ diffSpinner.fail('No diff found to analyze');
183
+ return;
184
+ }
185
+ const aiSpinner = (0, ora_1.default)('🤖 Analyzing diff with OpenAI and creating commit groups...').start();
186
+ let analysisResult;
187
+ try {
188
+ analysisResult = await openai.analyzeDiffAndGroup(diffData.all, openaiKey);
189
+ aiSpinner.succeed(`Analysis complete: ${analysisResult.groups?.length || 0} groups created`);
190
+ }
191
+ catch (error) {
192
+ const err = error;
193
+ aiSpinner.fail(`OpenAI analysis error: ${err.message}`);
194
+ return;
195
+ }
196
+ if (!analysisResult.groups || analysisResult.groups.length === 0) {
197
+ console.log(chalk_1.default.yellow('⚠ Could not create groups.\n'));
198
+ return;
199
+ }
200
+ console.log(chalk_1.default.green.bold(`\n✓ ${analysisResult.groups.length} groups created\n`));
201
+ console.log(chalk_1.default.blue('📋 Commit Plan:\n'));
202
+ analysisResult.groups.forEach((group) => {
203
+ console.log(chalk_1.default.cyan(`\nGroup ${group.number}: ${group.description}`));
204
+ console.log(chalk_1.default.gray(`Files: ${group.files.join(', ')}`));
205
+ console.log(chalk_1.default.yellow(`Commit: ${group.commitMessage}`));
206
+ if (group.commitBody) {
207
+ const bodyLines = group.commitBody.split('\n');
208
+ bodyLines.forEach(line => {
209
+ console.log(chalk_1.default.gray(` ${line}`));
210
+ });
211
+ }
212
+ });
213
+ console.log('\n');
214
+ const { confirm } = await inquirer_1.default.prompt([
215
+ {
216
+ type: 'confirm',
217
+ name: 'confirm',
218
+ message: 'Do you approve this commit plan?',
219
+ default: true
220
+ }
221
+ ]);
222
+ if (!confirm) {
223
+ console.log(chalk_1.default.yellow('\n❌ Operation cancelled.\n'));
224
+ return;
225
+ }
226
+ const commitResults = await commitProcessor.processAllCommitGroups(analysisResult.groups, selectedUser);
227
+ console.log(chalk_1.default.blue.bold('\n📊 Summary Report\n'));
228
+ console.log(chalk_1.default.cyan(`Total commits: ${commitResults.filter(r => r.success).length}`));
229
+ console.log(chalk_1.default.cyan(`Successful: ${commitResults.filter(r => r.success).length}`));
230
+ console.log(chalk_1.default.cyan(`Failed: ${commitResults.filter(r => !r.success).length}\n`));
231
+ if (commitResults.length > 0) {
232
+ console.log(chalk_1.default.blue('Commit Details:\n'));
233
+ commitResults.forEach(result => {
234
+ if (result.success) {
235
+ console.log(chalk_1.default.green(` ✓ ${result.message} - ${result.files} files`));
236
+ }
237
+ else {
238
+ console.log(chalk_1.default.red(` ❌ ${result.message} - Error: ${result.error}`));
239
+ }
240
+ });
241
+ }
242
+ console.log(chalk_1.default.yellow('\n⚠ Note: Commits were not pushed. You can push manually.\n'));
243
+ console.log(chalk_1.default.blue('Example: git push origin $(git symbolic-ref --short HEAD)\n'));
244
+ }
245
+ //# sourceMappingURL=commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit.js","sourceRoot":"","sources":["../src/commit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { Config, GitUserProfile } from './types';
2
+ declare const CONFIG_FILE: string;
3
+ /**
4
+ * Check if config exists
5
+ */
6
+ export declare function configExists(): boolean;
7
+ /**
8
+ * Get OpenAI key
9
+ */
10
+ export declare function getOpenAIKey(): string | null;
11
+ /**
12
+ * Save OpenAI key
13
+ */
14
+ export declare function setOpenAIKey(key: string): boolean;
15
+ /**
16
+ * Get git user profiles
17
+ */
18
+ export declare function getGitUsers(): GitUserProfile[];
19
+ /**
20
+ * Save git user profiles
21
+ */
22
+ export declare function setGitUsers(users: GitUserProfile[]): boolean;
23
+ /**
24
+ * Get default git user
25
+ */
26
+ export declare function getDefaultGitUser(): string | null;
27
+ /**
28
+ * Save default git user
29
+ */
30
+ export declare function setDefaultGitUser(userId: string): boolean;
31
+ /**
32
+ * Get all config
33
+ */
34
+ export declare function getConfig(): Config;
35
+ /**
36
+ * Reset config
37
+ */
38
+ export declare function resetConfig(): boolean;
39
+ /**
40
+ * Remove a git user by ID, email, or shortcut
41
+ */
42
+ export declare function removeGitUser(identifier: string): boolean;
43
+ export { CONFIG_FILE };
44
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGjD,QAAA,MAAM,WAAW,QAAuC,CAAC;AAkCzD;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAG5C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIjD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAG9C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAI5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAGjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIzD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAWrC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAgCzD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
package/dist/config.js ADDED
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.CONFIG_FILE = void 0;
37
+ exports.configExists = configExists;
38
+ exports.getOpenAIKey = getOpenAIKey;
39
+ exports.setOpenAIKey = setOpenAIKey;
40
+ exports.getGitUsers = getGitUsers;
41
+ exports.setGitUsers = setGitUsers;
42
+ exports.getDefaultGitUser = getDefaultGitUser;
43
+ exports.setDefaultGitUser = setDefaultGitUser;
44
+ exports.getConfig = getConfig;
45
+ exports.resetConfig = resetConfig;
46
+ exports.removeGitUser = removeGitUser;
47
+ const fs = __importStar(require("fs"));
48
+ const path = __importStar(require("path"));
49
+ const os = __importStar(require("os"));
50
+ const CONFIG_DIR = path.join(os.homedir(), '.git-ai');
51
+ const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
52
+ exports.CONFIG_FILE = CONFIG_FILE;
53
+ /**
54
+ * Read config file
55
+ */
56
+ function readConfig() {
57
+ try {
58
+ if (!fs.existsSync(CONFIG_FILE)) {
59
+ return null;
60
+ }
61
+ const content = fs.readFileSync(CONFIG_FILE, 'utf8');
62
+ return JSON.parse(content);
63
+ }
64
+ catch (error) {
65
+ return null;
66
+ }
67
+ }
68
+ /**
69
+ * Write config file
70
+ */
71
+ function writeConfig(config) {
72
+ try {
73
+ if (!fs.existsSync(CONFIG_DIR)) {
74
+ fs.mkdirSync(CONFIG_DIR, { recursive: true });
75
+ }
76
+ fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), 'utf8');
77
+ return true;
78
+ }
79
+ catch (error) {
80
+ const err = error;
81
+ console.error('Config write error:', err.message);
82
+ return false;
83
+ }
84
+ }
85
+ /**
86
+ * Check if config exists
87
+ */
88
+ function configExists() {
89
+ return fs.existsSync(CONFIG_FILE);
90
+ }
91
+ /**
92
+ * Get OpenAI key
93
+ */
94
+ function getOpenAIKey() {
95
+ const config = readConfig();
96
+ return config?.openaiKey || null;
97
+ }
98
+ /**
99
+ * Save OpenAI key
100
+ */
101
+ function setOpenAIKey(key) {
102
+ const config = readConfig() || {};
103
+ config.openaiKey = key;
104
+ return writeConfig(config);
105
+ }
106
+ /**
107
+ * Get git user profiles
108
+ */
109
+ function getGitUsers() {
110
+ const config = readConfig();
111
+ return config?.gitUsers || [];
112
+ }
113
+ /**
114
+ * Save git user profiles
115
+ */
116
+ function setGitUsers(users) {
117
+ const config = readConfig() || {};
118
+ config.gitUsers = users;
119
+ return writeConfig(config);
120
+ }
121
+ /**
122
+ * Get default git user
123
+ */
124
+ function getDefaultGitUser() {
125
+ const config = readConfig();
126
+ return config?.defaultGitUser || null;
127
+ }
128
+ /**
129
+ * Save default git user
130
+ */
131
+ function setDefaultGitUser(userId) {
132
+ const config = readConfig() || {};
133
+ config.defaultGitUser = userId;
134
+ return writeConfig(config);
135
+ }
136
+ /**
137
+ * Get all config
138
+ */
139
+ function getConfig() {
140
+ return readConfig() || {};
141
+ }
142
+ /**
143
+ * Reset config
144
+ */
145
+ function resetConfig() {
146
+ try {
147
+ if (fs.existsSync(CONFIG_FILE)) {
148
+ fs.unlinkSync(CONFIG_FILE);
149
+ }
150
+ return true;
151
+ }
152
+ catch (error) {
153
+ const err = error;
154
+ console.error('Config reset error:', err.message);
155
+ return false;
156
+ }
157
+ }
158
+ /**
159
+ * Remove a git user by ID, email, or shortcut
160
+ */
161
+ function removeGitUser(identifier) {
162
+ const config = readConfig();
163
+ if (!config || !config.gitUsers) {
164
+ return false;
165
+ }
166
+ const identifierLower = identifier.toLowerCase().trim();
167
+ const users = config.gitUsers;
168
+ const userIndex = users.findIndex(u => u.id === identifier ||
169
+ u.id === identifierLower ||
170
+ u.email === identifier ||
171
+ u.email.toLowerCase() === identifierLower ||
172
+ u.shortcut === identifierLower);
173
+ if (userIndex === -1) {
174
+ return false;
175
+ }
176
+ const removedUser = users[userIndex];
177
+ const wasDefault = config.defaultGitUser === removedUser.id;
178
+ users.splice(userIndex, 1);
179
+ config.gitUsers = users;
180
+ if (wasDefault) {
181
+ config.defaultGitUser = users.length > 0 ? users[0].id : null;
182
+ }
183
+ return writeConfig(config);
184
+ }
185
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/git.d.ts ADDED
@@ -0,0 +1,54 @@
1
+ import { DiffData, GitUserInfo, GitUserProfile } from './types';
2
+ /**
3
+ * Get staged changes
4
+ */
5
+ export declare function getStagedDiff(): Promise<string>;
6
+ /**
7
+ * Get unstaged changes
8
+ */
9
+ export declare function getUnstagedDiff(): Promise<string>;
10
+ /**
11
+ * Get all changes (staged + unstaged)
12
+ */
13
+ export declare function getAllDiff(): Promise<DiffData>;
14
+ /**
15
+ * Check if there are changes
16
+ */
17
+ export declare function hasChanges(): Promise<boolean>;
18
+ /**
19
+ * Get git user info (global and local)
20
+ */
21
+ export declare function getGitUserInfo(): Promise<GitUserInfo>;
22
+ /**
23
+ * Collect user profiles from all git configs
24
+ */
25
+ export declare function getAllGitUserProfiles(): Promise<GitUserProfile[]>;
26
+ /**
27
+ * Set git user
28
+ */
29
+ export declare function setGitUser(name: string, email: string, scope?: 'global' | 'local'): Promise<boolean>;
30
+ /**
31
+ * Stage files
32
+ */
33
+ export declare function stageFiles(files: string[]): Promise<boolean>;
34
+ /**
35
+ * Unstage all staged files
36
+ */
37
+ export declare function unstageAll(): Promise<boolean>;
38
+ /**
39
+ * Create commit
40
+ */
41
+ export declare function createCommit(message: string, authorName?: string | null, authorEmail?: string | null): Promise<boolean>;
42
+ /**
43
+ * List staged files
44
+ */
45
+ export declare function getStagedFiles(): Promise<string[]>;
46
+ /**
47
+ * List all changed files
48
+ */
49
+ export declare function getAllChangedFiles(): Promise<string[]>;
50
+ /**
51
+ * Check if git repository
52
+ */
53
+ export declare function isGitRepository(): Promise<boolean>;
54
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAShE;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CASrD;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CASvD;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC,CAapD;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CASnD;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAa3D;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CA+CvE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,QAAQ,GAAG,OAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAUnH;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CASlE;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CASnD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,GAAG,IAAW,EAAE,WAAW,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAazI;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CASxD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAS5D;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAQxD"}