@mehmetsagir/git-ai 0.0.25 ā 0.0.26
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/add.d.ts +5 -0
- package/dist/add.d.ts.map +1 -0
- package/dist/add.js +98 -0
- package/dist/add.js.map +1 -0
- package/dist/commit.d.ts +1 -1
- package/dist/commit.d.ts.map +1 -1
- package/dist/commit.js +37 -4
- package/dist/commit.js.map +1 -1
- package/dist/config.d.ts +11 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +64 -0
- package/dist/config.js.map +1 -1
- package/dist/git.d.ts +8 -2
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +138 -2
- package/dist/git.js.map +1 -1
- package/dist/index.js +148 -62
- package/dist/index.js.map +1 -1
- package/dist/openai.d.ts +3 -0
- package/dist/openai.d.ts.map +1 -1
- package/dist/openai.js +18 -0
- package/dist/openai.js.map +1 -1
- package/dist/prompts.d.ts +2 -0
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +46 -0
- package/dist/prompts.js.map +1 -1
- package/dist/set-editor.d.ts +5 -0
- package/dist/set-editor.d.ts.map +1 -0
- package/dist/set-editor.js +59 -0
- package/dist/set-editor.js.map +1 -0
- package/dist/summary.d.ts +5 -0
- package/dist/summary.d.ts.map +1 -0
- package/dist/summary.js +175 -0
- package/dist/summary.js.map +1 -0
- package/dist/types.d.ts +24 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/update.d.ts +9 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +68 -0
- package/dist/update.js.map +1 -0
- package/dist/user-management.d.ts +10 -0
- package/dist/user-management.d.ts.map +1 -0
- package/dist/user-management.js +175 -0
- package/dist/user-management.js.map +1 -0
- package/dist/users.d.ts +9 -0
- package/dist/users.d.ts.map +1 -0
- package/dist/users.js +129 -0
- package/dist/users.js.map +1 -0
- package/dist/utils/commit-file.d.ts +30 -0
- package/dist/utils/commit-file.d.ts.map +1 -0
- package/dist/utils/commit-file.js +192 -0
- package/dist/utils/commit-file.js.map +1 -0
- package/dist/utils/editor.d.ts +29 -0
- package/dist/utils/editor.d.ts.map +1 -0
- package/dist/utils/editor.js +245 -0
- package/dist/utils/editor.js.map +1 -0
- package/dist/utils/validation.d.ts +24 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +81 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +1 -1
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
export interface GitUserProfile {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
email: string;
|
|
5
|
+
scope: "global" | "local" | "manual" | "current";
|
|
6
|
+
label: string;
|
|
7
|
+
shortcut?: string | null;
|
|
8
|
+
}
|
|
9
|
+
export interface Config {
|
|
10
|
+
openaiKey?: string;
|
|
11
|
+
gitUsers?: GitUserProfile[];
|
|
12
|
+
defaultGitUser?: string | null;
|
|
13
|
+
editor?: string | null;
|
|
14
|
+
}
|
|
15
|
+
export interface GitUserInfo {
|
|
16
|
+
name: string | null;
|
|
17
|
+
email: string | null;
|
|
18
|
+
}
|
|
19
|
+
export interface DiffData {
|
|
20
|
+
staged: string;
|
|
21
|
+
unstaged: string;
|
|
22
|
+
all: string;
|
|
23
|
+
}
|
|
1
24
|
export interface FileInfo {
|
|
2
25
|
file: string;
|
|
3
26
|
status: "new" | "modified" | "deleted" | "renamed";
|
|
@@ -12,6 +35,7 @@ export interface CommitGroup {
|
|
|
12
35
|
number: number;
|
|
13
36
|
description: string;
|
|
14
37
|
hunks: HunkRef[];
|
|
38
|
+
files?: string[];
|
|
15
39
|
commitMessage: string;
|
|
16
40
|
commitBody?: string;
|
|
17
41
|
}
|
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;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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,MAAM;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,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,KAAK,CAAC,EAAE,MAAM,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/update.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check for updates and update the package
|
|
3
|
+
*/
|
|
4
|
+
export declare function checkAndUpdate(): Promise<void>;
|
|
5
|
+
/**
|
|
6
|
+
* Check for updates silently (for update-notifier)
|
|
7
|
+
*/
|
|
8
|
+
export declare function checkForUpdates(): void;
|
|
9
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAsCpD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAiBtC"}
|
package/dist/update.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.checkAndUpdate = checkAndUpdate;
|
|
7
|
+
exports.checkForUpdates = checkForUpdates;
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
const errors_1 = require("./utils/errors");
|
|
11
|
+
const packageJson = require('../package.json');
|
|
12
|
+
/**
|
|
13
|
+
* Check for updates and update the package
|
|
14
|
+
*/
|
|
15
|
+
async function checkAndUpdate() {
|
|
16
|
+
console.log(chalk_1.default.blue.bold('\nš Checking for updates...\n'));
|
|
17
|
+
try {
|
|
18
|
+
// Check latest version from npm
|
|
19
|
+
const latestVersion = (0, child_process_1.execSync)(`npm view @mehmetsagir/git-ai version`, { encoding: 'utf-8' }).trim();
|
|
20
|
+
const currentVersion = packageJson.version;
|
|
21
|
+
if (latestVersion === currentVersion) {
|
|
22
|
+
console.log(chalk_1.default.green(`ā You are using the latest version (${currentVersion})\n`));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
console.log(chalk_1.default.yellow(`Current version: ${currentVersion}`));
|
|
26
|
+
console.log(chalk_1.default.yellow(`Latest version: ${latestVersion}\n`));
|
|
27
|
+
// Automatically update when --update flag is used (no confirmation needed)
|
|
28
|
+
console.log(chalk_1.default.blue('š¦ Updating package...\n'));
|
|
29
|
+
try {
|
|
30
|
+
// Update globally installed package
|
|
31
|
+
(0, child_process_1.execSync)('npm install -g @mehmetsagir/git-ai@latest', {
|
|
32
|
+
stdio: 'inherit'
|
|
33
|
+
});
|
|
34
|
+
console.log(chalk_1.default.green(`\nā Successfully updated to version ${latestVersion}!\n`));
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
console.log(chalk_1.default.red('\nā Update failed. Please run manually:\n'));
|
|
38
|
+
console.log(chalk_1.default.cyan(' npm install -g @mehmetsagir/git-ai@latest\n'));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
console.log(chalk_1.default.red(`ā Error checking for updates: ${(0, errors_1.getErrorMessage)(error)}\n`));
|
|
43
|
+
console.log(chalk_1.default.yellow('You can manually update with:\n'));
|
|
44
|
+
console.log(chalk_1.default.cyan(' npm install -g @mehmetsagir/git-ai@latest\n'));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Check for updates silently (for update-notifier)
|
|
49
|
+
*/
|
|
50
|
+
function checkForUpdates() {
|
|
51
|
+
try {
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
53
|
+
const updateNotifier = require('update-notifier');
|
|
54
|
+
const notifier = updateNotifier({
|
|
55
|
+
pkg: packageJson,
|
|
56
|
+
updateCheckInterval: 1000 * 60 * 60 * 24
|
|
57
|
+
});
|
|
58
|
+
if (notifier.update) {
|
|
59
|
+
notifier.notify({
|
|
60
|
+
message: `Update available: ${notifier.update.current} ā ${notifier.update.latest}\nRun 'git-ai --update' to update.`
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// Silently fail if update-notifier is not available
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":";;;;;AASA,wCAsCC;AAKD,0CAiBC;AArED,kDAA0B;AAC1B,iDAAyC;AACzC,2CAAiD;AAEjD,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C;;GAEG;AACI,KAAK,UAAU,cAAc;IAClC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE/D,IAAI,CAAC;QACH,gCAAgC;QAChC,MAAM,aAAa,GAAG,IAAA,wBAAQ,EAC5B,sCAAsC,EACtC,EAAE,QAAQ,EAAE,OAAO,EAAE,CACtB,CAAC,IAAI,EAAE,CAAC;QAET,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC;QAE3C,IAAI,aAAa,KAAK,cAAc,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uCAAuC,cAAc,KAAK,CAAC,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,oBAAoB,cAAc,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,mBAAmB,aAAa,IAAI,CAAC,CAAC,CAAC;QAEhE,2EAA2E;QAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,oCAAoC;YACpC,IAAA,wBAAQ,EAAC,2CAA2C,EAAE;gBACpD,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uCAAuC,aAAa,KAAK,CAAC,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,iCAAiC,IAAA,wBAAe,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,cAAc,CAAC;YAC9B,GAAG,EAAE,WAAW;YAChB,mBAAmB,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;SACzC,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,QAAQ,CAAC,MAAM,CAAC;gBACd,OAAO,EAAE,qBAAqB,QAAQ,CAAC,MAAM,CAAC,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,oCAAoC;aACtH,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oDAAoD;IACtD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { GitUserProfile } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Add shortcuts to each user profile
|
|
4
|
+
*/
|
|
5
|
+
export declare function addShortcutsToProfiles(profiles: GitUserProfile[]): Promise<GitUserProfile[]>;
|
|
6
|
+
/**
|
|
7
|
+
* Add more git user profiles
|
|
8
|
+
*/
|
|
9
|
+
export declare function addMoreGitUsers(existingProfiles: GitUserProfile[]): Promise<GitUserProfile[]>;
|
|
10
|
+
//# sourceMappingURL=user-management.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-management.d.ts","sourceRoot":"","sources":["../src/user-management.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAuClG;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,gBAAgB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAsGnG"}
|
|
@@ -0,0 +1,175 @@
|
|
|
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.addShortcutsToProfiles = addShortcutsToProfiles;
|
|
40
|
+
exports.addMoreGitUsers = addMoreGitUsers;
|
|
41
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
42
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
43
|
+
const config = __importStar(require("./config"));
|
|
44
|
+
const validation_1 = require("./utils/validation");
|
|
45
|
+
/**
|
|
46
|
+
* Add shortcuts to each user profile
|
|
47
|
+
*/
|
|
48
|
+
async function addShortcutsToProfiles(profiles) {
|
|
49
|
+
const updatedProfiles = [];
|
|
50
|
+
const usedShortcuts = new Set();
|
|
51
|
+
for (const profile of profiles) {
|
|
52
|
+
const { addShortcut } = await inquirer_1.default.prompt([
|
|
53
|
+
{
|
|
54
|
+
type: 'confirm',
|
|
55
|
+
name: 'addShortcut',
|
|
56
|
+
message: `Would you like to add a shortcut for ${profile.label}?`,
|
|
57
|
+
default: true
|
|
58
|
+
}
|
|
59
|
+
]);
|
|
60
|
+
let shortcut = null;
|
|
61
|
+
if (addShortcut) {
|
|
62
|
+
const { shortcutKey } = await inquirer_1.default.prompt([
|
|
63
|
+
{
|
|
64
|
+
type: 'input',
|
|
65
|
+
name: 'shortcutKey',
|
|
66
|
+
message: 'Enter shortcut key (e.g., g, my, work, personal) or "q" to skip:',
|
|
67
|
+
validate: (input) => (0, validation_1.validateShortcut)(input, usedShortcuts)
|
|
68
|
+
}
|
|
69
|
+
]);
|
|
70
|
+
if (!(0, validation_1.isCancellation)(shortcutKey)) {
|
|
71
|
+
shortcut = shortcutKey.trim().toLowerCase();
|
|
72
|
+
usedShortcuts.add(shortcut);
|
|
73
|
+
console.log(chalk_1.default.green(`ā Shortcut added: ${shortcut} ā ${profile.label}\n`));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
updatedProfiles.push({
|
|
77
|
+
...profile,
|
|
78
|
+
shortcut
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return updatedProfiles;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Add more git user profiles
|
|
85
|
+
*/
|
|
86
|
+
async function addMoreGitUsers(existingProfiles) {
|
|
87
|
+
const newProfiles = [...existingProfiles];
|
|
88
|
+
const usedShortcuts = new Set(newProfiles.map(p => p.shortcut).filter((s) => Boolean(s)));
|
|
89
|
+
while (true) {
|
|
90
|
+
const { name, email } = await inquirer_1.default.prompt([
|
|
91
|
+
{
|
|
92
|
+
type: 'input',
|
|
93
|
+
name: 'name',
|
|
94
|
+
message: 'Git user name (or "q" to cancel):',
|
|
95
|
+
validate: validation_1.validateUserName
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'input',
|
|
99
|
+
name: 'email',
|
|
100
|
+
message: 'Git user email (or "q" to cancel):',
|
|
101
|
+
validate: (input) => (0, validation_1.validateUserEmail)(input, newProfiles.map(p => p.email))
|
|
102
|
+
}
|
|
103
|
+
]);
|
|
104
|
+
if ((0, validation_1.isCancellation)(name) || (0, validation_1.isCancellation)(email)) {
|
|
105
|
+
config.setGitUsers(newProfiles);
|
|
106
|
+
console.log(chalk_1.default.yellow('ā User addition cancelled. Continuing with setup...\n'));
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
if (newProfiles.some(p => p.email === email)) {
|
|
110
|
+
const { continueAnyway } = await inquirer_1.default.prompt([
|
|
111
|
+
{
|
|
112
|
+
type: 'confirm',
|
|
113
|
+
name: 'continueAnyway',
|
|
114
|
+
message: 'This user already exists. Would you like to continue anyway?',
|
|
115
|
+
default: false
|
|
116
|
+
}
|
|
117
|
+
]);
|
|
118
|
+
if (!continueAnyway) {
|
|
119
|
+
config.setGitUsers(newProfiles);
|
|
120
|
+
console.log(chalk_1.default.yellow('ā User addition cancelled. Continuing with setup...\n'));
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const newProfile = {
|
|
125
|
+
id: `manual-${Date.now()}-${email}`,
|
|
126
|
+
name,
|
|
127
|
+
email,
|
|
128
|
+
scope: 'manual',
|
|
129
|
+
label: `${name} <${email}> (Manual)`,
|
|
130
|
+
shortcut: null
|
|
131
|
+
};
|
|
132
|
+
const { addShortcut } = await inquirer_1.default.prompt([
|
|
133
|
+
{
|
|
134
|
+
type: 'confirm',
|
|
135
|
+
name: 'addShortcut',
|
|
136
|
+
message: `Would you like to add a shortcut for ${newProfile.label}?`,
|
|
137
|
+
default: true
|
|
138
|
+
}
|
|
139
|
+
]);
|
|
140
|
+
if (addShortcut) {
|
|
141
|
+
const { shortcutKey } = await inquirer_1.default.prompt([
|
|
142
|
+
{
|
|
143
|
+
type: 'input',
|
|
144
|
+
name: 'shortcutKey',
|
|
145
|
+
message: 'Enter shortcut key (e.g., g, my, work, personal) or "q" to skip:',
|
|
146
|
+
validate: (input) => (0, validation_1.validateShortcut)(input, usedShortcuts)
|
|
147
|
+
}
|
|
148
|
+
]);
|
|
149
|
+
if (!(0, validation_1.isCancellation)(shortcutKey)) {
|
|
150
|
+
newProfile.shortcut = shortcutKey.trim().toLowerCase();
|
|
151
|
+
usedShortcuts.add(newProfile.shortcut);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
newProfiles.push(newProfile);
|
|
155
|
+
const shortcutInfo = newProfile.shortcut
|
|
156
|
+
? chalk_1.default.yellow(` [shortcut: ${newProfile.shortcut}]`)
|
|
157
|
+
: '';
|
|
158
|
+
console.log(chalk_1.default.green(`ā Profile added: ${name} <${email}>${shortcutInfo}\n`));
|
|
159
|
+
const { more } = await inquirer_1.default.prompt([
|
|
160
|
+
{
|
|
161
|
+
type: 'confirm',
|
|
162
|
+
name: 'more',
|
|
163
|
+
message: 'Would you like to add another profile?',
|
|
164
|
+
default: false
|
|
165
|
+
}
|
|
166
|
+
]);
|
|
167
|
+
if (!more) {
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
config.setGitUsers(newProfiles);
|
|
172
|
+
console.log(chalk_1.default.green(`ā Total ${newProfiles.length} git user profiles saved\n`));
|
|
173
|
+
return newProfiles;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=user-management.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-management.js","sourceRoot":"","sources":["../src/user-management.ts"],"names":[],"mappings":"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"}
|
package/dist/users.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../src/users.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAiChC;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAuDhD"}
|
package/dist/users.js
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
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.listUsers = listUsers;
|
|
40
|
+
exports.removeUser = removeUser;
|
|
41
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
43
|
+
const config = __importStar(require("./config"));
|
|
44
|
+
/**
|
|
45
|
+
* List all git users
|
|
46
|
+
*/
|
|
47
|
+
function listUsers() {
|
|
48
|
+
const users = config.getGitUsers();
|
|
49
|
+
const defaultUserId = config.getDefaultGitUser();
|
|
50
|
+
if (users.length === 0) {
|
|
51
|
+
console.log(chalk_1.default.yellow('ā No git user profiles found.\n'));
|
|
52
|
+
console.log(chalk_1.default.blue('Run "git-ai setup" to add users.\n'));
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
console.log(chalk_1.default.blue.bold(`\nš Git User Profiles (${users.length} total)\n`));
|
|
56
|
+
users.forEach((user, index) => {
|
|
57
|
+
const isDefault = user.id === defaultUserId;
|
|
58
|
+
const defaultBadge = isDefault ? chalk_1.default.green(' [DEFAULT]') : '';
|
|
59
|
+
const shortcutInfo = user.shortcut
|
|
60
|
+
? chalk_1.default.yellow(` [shortcut: ${user.shortcut}]`)
|
|
61
|
+
: chalk_1.default.gray(' [no shortcut]');
|
|
62
|
+
console.log(chalk_1.default.cyan(`${index + 1}. ${user.label}${defaultBadge}${shortcutInfo}`));
|
|
63
|
+
console.log(chalk_1.default.gray(` ID: ${user.id}`));
|
|
64
|
+
console.log(chalk_1.default.gray(` Scope: ${user.scope}`));
|
|
65
|
+
console.log('');
|
|
66
|
+
});
|
|
67
|
+
if (defaultUserId) {
|
|
68
|
+
const defaultUser = users.find(u => u.id === defaultUserId);
|
|
69
|
+
if (defaultUser) {
|
|
70
|
+
console.log(chalk_1.default.green(`ā Default user: ${defaultUser.label}\n`));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
console.log(chalk_1.default.yellow('ā No default user set.\n'));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Remove a git user interactively
|
|
79
|
+
*/
|
|
80
|
+
async function removeUser() {
|
|
81
|
+
const users = config.getGitUsers();
|
|
82
|
+
if (users.length === 0) {
|
|
83
|
+
console.log(chalk_1.default.yellow('ā No git user profiles found.\n'));
|
|
84
|
+
console.log(chalk_1.default.blue('Run "git-ai setup" to add users.\n'));
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
console.log(chalk_1.default.blue.bold('\nšļø Remove Git User\n'));
|
|
88
|
+
const { userToRemove } = await inquirer_1.default.prompt([
|
|
89
|
+
{
|
|
90
|
+
type: 'list',
|
|
91
|
+
name: 'userToRemove',
|
|
92
|
+
message: 'Select user to remove:',
|
|
93
|
+
choices: users.map(u => ({
|
|
94
|
+
name: `${u.label}${u.shortcut ? ` [shortcut: ${u.shortcut}]` : ''}`,
|
|
95
|
+
value: u.id
|
|
96
|
+
}))
|
|
97
|
+
}
|
|
98
|
+
]);
|
|
99
|
+
const user = users.find(u => u.id === userToRemove);
|
|
100
|
+
if (!user) {
|
|
101
|
+
console.log(chalk_1.default.red('ā User not found.\n'));
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const { confirm } = await inquirer_1.default.prompt([
|
|
105
|
+
{
|
|
106
|
+
type: 'confirm',
|
|
107
|
+
name: 'confirm',
|
|
108
|
+
message: `Are you sure you want to remove ${user.label}?`,
|
|
109
|
+
default: false
|
|
110
|
+
}
|
|
111
|
+
]);
|
|
112
|
+
if (!confirm) {
|
|
113
|
+
console.log(chalk_1.default.yellow('ā Removal cancelled.\n'));
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const success = config.removeGitUser(userToRemove);
|
|
117
|
+
if (success) {
|
|
118
|
+
console.log(chalk_1.default.green(`ā User removed: ${user.label}\n`));
|
|
119
|
+
const remainingUsers = config.getGitUsers();
|
|
120
|
+
if (remainingUsers.length > 0 && config.getDefaultGitUser() === null) {
|
|
121
|
+
console.log(chalk_1.default.yellow('ā Default user was removed. Consider setting a new default.\n'));
|
|
122
|
+
console.log(chalk_1.default.blue('Run "git-ai setup" to update default user.\n'));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
console.log(chalk_1.default.red('ā Failed to remove user.\n'));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=users.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.js","sourceRoot":"","sources":["../src/users.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CommitGroup } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Write commit groups to a file for editing
|
|
4
|
+
*/
|
|
5
|
+
export declare function writeCommitFile(filePath: string, groups: CommitGroup[]): void;
|
|
6
|
+
/**
|
|
7
|
+
* Parse edited commit file and extract commit messages
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseCommitFile(filePath: string): Array<{
|
|
10
|
+
message: string;
|
|
11
|
+
body?: string;
|
|
12
|
+
}>;
|
|
13
|
+
/**
|
|
14
|
+
* Validate parsed commits
|
|
15
|
+
*/
|
|
16
|
+
export declare function validateCommits(commits: Array<{
|
|
17
|
+
message: string;
|
|
18
|
+
body?: string;
|
|
19
|
+
}>): {
|
|
20
|
+
valid: boolean;
|
|
21
|
+
errors: string[];
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Merge edited commits back into groups
|
|
25
|
+
*/
|
|
26
|
+
export declare function mergeEditedCommits(originalGroups: CommitGroup[], editedCommits: Array<{
|
|
27
|
+
message: string;
|
|
28
|
+
body?: string;
|
|
29
|
+
}>): CommitGroup[];
|
|
30
|
+
//# sourceMappingURL=commit-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-file.d.ts","sourceRoot":"","sources":["../../src/utils/commit-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAKvC;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,EAAE,GACpB,IAAI,CA4CN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CA0CD;AAwCD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACjD;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAsBtC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,WAAW,EAAE,EAC7B,aAAa,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACvD,WAAW,EAAE,CAsBf"}
|