@mehmetsagir/git-ai 0.0.3 → 0.0.5

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/update.js ADDED
@@ -0,0 +1,114 @@
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.checkAndUpdate = checkAndUpdate;
40
+ exports.checkForUpdates = checkForUpdates;
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const child_process_1 = require("child_process");
43
+ const package_json_1 = __importDefault(require("../package.json"));
44
+ const errors_1 = require("./utils/errors");
45
+ /**
46
+ * Check for updates and update the package
47
+ */
48
+ async function checkAndUpdate() {
49
+ console.log(chalk_1.default.blue.bold('\nšŸ”„ Checking for updates...\n'));
50
+ try {
51
+ // Check latest version from npm
52
+ const latestVersion = (0, child_process_1.execSync)(`npm view @mehmetsagir/git-ai version`, { encoding: 'utf-8' }).trim();
53
+ const currentVersion = package_json_1.default.version;
54
+ if (latestVersion === currentVersion) {
55
+ console.log(chalk_1.default.green(`āœ“ You are using the latest version (${currentVersion})\n`));
56
+ return;
57
+ }
58
+ console.log(chalk_1.default.yellow(`Current version: ${currentVersion}`));
59
+ console.log(chalk_1.default.yellow(`Latest version: ${latestVersion}\n`));
60
+ const { default: inquirer } = await Promise.resolve().then(() => __importStar(require('inquirer')));
61
+ const { confirm } = await inquirer.prompt([
62
+ {
63
+ type: 'confirm',
64
+ name: 'confirm',
65
+ message: `Would you like to update to version ${latestVersion}?`,
66
+ default: true
67
+ }
68
+ ]);
69
+ if (!confirm) {
70
+ console.log(chalk_1.default.yellow('⚠ Update cancelled.\n'));
71
+ return;
72
+ }
73
+ console.log(chalk_1.default.blue('\nšŸ“¦ Updating package...\n'));
74
+ try {
75
+ // Update globally installed package
76
+ (0, child_process_1.execSync)('npm install -g @mehmetsagir/git-ai@latest', {
77
+ stdio: 'inherit'
78
+ });
79
+ console.log(chalk_1.default.green(`\nāœ“ Successfully updated to version ${latestVersion}!\n`));
80
+ }
81
+ catch (error) {
82
+ console.log(chalk_1.default.red('\nāŒ Update failed. Please run manually:\n'));
83
+ console.log(chalk_1.default.cyan(' npm install -g @mehmetsagir/git-ai@latest\n'));
84
+ }
85
+ }
86
+ catch (error) {
87
+ console.log(chalk_1.default.red(`āŒ Error checking for updates: ${(0, errors_1.getErrorMessage)(error)}\n`));
88
+ console.log(chalk_1.default.yellow('You can manually update with:\n'));
89
+ console.log(chalk_1.default.cyan(' npm install -g @mehmetsagir/git-ai@latest\n'));
90
+ }
91
+ }
92
+ /**
93
+ * Check for updates silently (for update-notifier)
94
+ */
95
+ function checkForUpdates() {
96
+ try {
97
+ // Use require to avoid TypeScript issues with update-notifier
98
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
99
+ const updateNotifier = require('update-notifier');
100
+ const notifier = updateNotifier({
101
+ pkg: package_json_1.default,
102
+ updateCheckInterval: 1000 * 60 * 60 * 24 // Check once per day
103
+ });
104
+ if (notifier.update) {
105
+ notifier.notify({
106
+ message: `Update available: ${notifier.update.current} → ${notifier.update.latest}\nRun 'git-ai --update' to update.`
107
+ });
108
+ }
109
+ }
110
+ catch (error) {
111
+ // Silently fail if update-notifier is not available
112
+ }
113
+ }
114
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"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"}
@@ -1 +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;AAEzC;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAsDlG;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,gBAAgB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA0InG"}
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"}
@@ -41,6 +41,7 @@ exports.addMoreGitUsers = addMoreGitUsers;
41
41
  const inquirer_1 = __importDefault(require("inquirer"));
42
42
  const chalk_1 = __importDefault(require("chalk"));
43
43
  const config = __importStar(require("./config"));
44
+ const validation_1 = require("./utils/validation");
44
45
  /**
45
46
  * Add shortcuts to each user profile
46
47
  */
@@ -63,25 +64,10 @@ async function addShortcutsToProfiles(profiles) {
63
64
  type: 'input',
64
65
  name: 'shortcutKey',
65
66
  message: 'Enter shortcut key (e.g., g, my, work, personal) or "q" to skip:',
66
- validate: (input) => {
67
- const key = input.trim().toLowerCase();
68
- if (key === 'q') {
69
- return true;
70
- }
71
- if (!key || key.length === 0) {
72
- return 'Shortcut key is required!';
73
- }
74
- if (usedShortcuts.has(key)) {
75
- return 'This shortcut is already in use!';
76
- }
77
- if (key.includes(' ')) {
78
- return 'Shortcut cannot contain spaces!';
79
- }
80
- return true;
81
- }
67
+ validate: (input) => (0, validation_1.validateShortcut)(input, usedShortcuts)
82
68
  }
83
69
  ]);
84
- if (shortcutKey.trim().toLowerCase() !== 'q') {
70
+ if (!(0, validation_1.isCancellation)(shortcutKey)) {
85
71
  shortcut = shortcutKey.trim().toLowerCase();
86
72
  usedShortcuts.add(shortcut);
87
73
  console.log(chalk_1.default.green(`āœ“ Shortcut added: ${shortcut} → ${profile.label}\n`));
@@ -106,37 +92,16 @@ async function addMoreGitUsers(existingProfiles) {
106
92
  type: 'input',
107
93
  name: 'name',
108
94
  message: 'Git user name (or "q" to cancel):',
109
- validate: (input) => {
110
- const trimmed = input.trim();
111
- if (trimmed.toLowerCase() === 'q') {
112
- return true;
113
- }
114
- return trimmed.length > 0 || 'Name is required!';
115
- }
95
+ validate: validation_1.validateUserName
116
96
  },
117
97
  {
118
98
  type: 'input',
119
99
  name: 'email',
120
100
  message: 'Git user email (or "q" to cancel):',
121
- validate: (input) => {
122
- const trimmed = input.trim();
123
- if (trimmed.toLowerCase() === 'q') {
124
- return true;
125
- }
126
- if (!trimmed || trimmed.length === 0) {
127
- return 'Email is required!';
128
- }
129
- if (!trimmed.includes('@')) {
130
- return 'Please enter a valid email address!';
131
- }
132
- if (newProfiles.some(p => p.email === trimmed)) {
133
- return 'This email is already added!';
134
- }
135
- return true;
136
- }
101
+ validate: (input) => (0, validation_1.validateUserEmail)(input, newProfiles.map(p => p.email))
137
102
  }
138
103
  ]);
139
- if (name.trim().toLowerCase() === 'q' || email.trim().toLowerCase() === 'q') {
104
+ if ((0, validation_1.isCancellation)(name) || (0, validation_1.isCancellation)(email)) {
140
105
  config.setGitUsers(newProfiles);
141
106
  console.log(chalk_1.default.yellow('⚠ User addition cancelled. Continuing with setup...\n'));
142
107
  break;
@@ -178,25 +143,10 @@ async function addMoreGitUsers(existingProfiles) {
178
143
  type: 'input',
179
144
  name: 'shortcutKey',
180
145
  message: 'Enter shortcut key (e.g., g, my, work, personal) or "q" to skip:',
181
- validate: (input) => {
182
- const key = input.trim().toLowerCase();
183
- if (key === 'q') {
184
- return true;
185
- }
186
- if (!key || key.length === 0) {
187
- return 'Shortcut key is required!';
188
- }
189
- if (usedShortcuts.has(key)) {
190
- return 'This shortcut is already in use!';
191
- }
192
- if (key.includes(' ')) {
193
- return 'Shortcut cannot contain spaces!';
194
- }
195
- return true;
196
- }
146
+ validate: (input) => (0, validation_1.validateShortcut)(input, usedShortcuts)
197
147
  }
198
148
  ]);
199
- if (shortcutKey.trim().toLowerCase() !== 'q') {
149
+ if (!(0, validation_1.isCancellation)(shortcutKey)) {
200
150
  newProfile.shortcut = shortcutKey.trim().toLowerCase();
201
151
  usedShortcuts.add(newProfile.shortcut);
202
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"user-management.js","sourceRoot":"","sources":["../src/user-management.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,wDAsDC;AAKD,0CA0IC;AA7MD,wDAAgC;AAChC,kDAA0B;AAC1B,iDAAmC;AAGnC;;GAEG;AACI,KAAK,UAAU,sBAAsB,CAAC,QAA0B;IACrE,MAAM,eAAe,GAAqB,EAAE,CAAC;IAC7C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA2B;YACtE;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,wCAAwC,OAAO,CAAC,KAAK,GAAG;gBACjE,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA0B;gBACrE;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,kEAAkE;oBAC3E,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;wBAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;wBACvC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;4BAChB,OAAO,IAAI,CAAC;wBACd,CAAC;wBACD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BAC7B,OAAO,2BAA2B,CAAC;wBACrC,CAAC;wBACD,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC3B,OAAO,kCAAkC,CAAC;wBAC5C,CAAC;wBACD,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BACtB,OAAO,iCAAiC,CAAC;wBAC3C,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;iBACF;aACF,CAAC,CAAC;YAEH,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;gBAC7C,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC5C,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qBAAqB,QAAQ,MAAM,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAED,eAAe,CAAC,IAAI,CAAC;YACnB,GAAG,OAAO;YACV,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,eAAe,CAAC,gBAAkC;IACtE,MAAM,WAAW,GAAqB,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/G,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAkC;YAC7E;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,mCAAmC;gBAC5C,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC7B,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;wBAClC,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,CAAC;gBACnD,CAAC;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,oCAAoC;gBAC7C,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC7B,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;wBAClC,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACrC,OAAO,oBAAoB,CAAC;oBAC9B,CAAC;oBACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC3B,OAAO,qCAAqC,CAAC;oBAC/C,CAAC;oBACD,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,EAAE,CAAC;wBAC/C,OAAO,8BAA8B,CAAC;oBACxC,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;YAC5E,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;YACnF,MAAM;QACR,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA8B;gBAC5E;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,8DAA8D;oBACvE,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;gBACnF,MAAM;YACR,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAmB;YACjC,EAAE,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,EAAE;YACnC,IAAI;YACJ,KAAK;YACL,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,GAAG,IAAI,KAAK,KAAK,YAAY;YACpC,QAAQ,EAAE,IAAI;SACf,CAAC;QAEF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA2B;YACtE;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,wCAAwC,UAAU,CAAC,KAAK,GAAG;gBACpE,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA0B;gBACrE;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,kEAAkE;oBAC3E,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;wBAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;wBACvC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;4BAChB,OAAO,IAAI,CAAC;wBACd,CAAC;wBACD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BAC7B,OAAO,2BAA2B,CAAC;wBACrC,CAAC;wBACD,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC3B,OAAO,kCAAkC,CAAC;wBAC5C,CAAC;wBACD,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BACtB,OAAO,iCAAiC,CAAC;wBAC3C,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;iBACF;aACF,CAAC,CAAC;YAEH,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;gBAC7C,UAAU,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACvD,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE7B,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ;YACtC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,eAAe,UAAU,CAAC,QAAQ,GAAG,CAAC;YACrD,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,IAAI,KAAK,KAAK,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC;QAEjF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAoB;YACxD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,wCAAwC;gBACjD,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,WAAW,CAAC,MAAM,4BAA4B,CAAC,CAAC,CAAC;IAEpF,OAAO,WAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"user-management.js","sourceRoot":"","sources":["../src/user-management.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,wDAuCC;AAKD,0CAsGC;AA3JD,wDAAgC;AAChC,kDAA0B;AAC1B,iDAAmC;AAEnC,mDAA2G;AAE3G;;GAEG;AACI,KAAK,UAAU,sBAAsB,CAAC,QAA0B;IACrE,MAAM,eAAe,GAAqB,EAAE,CAAC;IAC7C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA2B;YACtE;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,wCAAwC,OAAO,CAAC,KAAK,GAAG;gBACjE,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA0B;gBACrE;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,kEAAkE;oBAC3E,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAA,6BAAgB,EAAC,KAAK,EAAE,aAAa,CAAC;iBACpE;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,IAAA,2BAAc,EAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC5C,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qBAAqB,QAAQ,MAAM,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAED,eAAe,CAAC,IAAI,CAAC;YACnB,GAAG,OAAO;YACV,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,eAAe,CAAC,gBAAkC;IACtE,MAAM,WAAW,GAAqB,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/G,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAkC;YAC7E;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,mCAAmC;gBAC5C,QAAQ,EAAE,6BAAgB;aAC3B;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,oCAAoC;gBAC7C,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAA,8BAAiB,EAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACrF;SACF,CAAC,CAAC;QAEH,IAAI,IAAA,2BAAc,EAAC,IAAI,CAAC,IAAI,IAAA,2BAAc,EAAC,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;YACnF,MAAM;QACR,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA8B;gBAC5E;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,8DAA8D;oBACvE,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;gBACnF,MAAM;YACR,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAmB;YACjC,EAAE,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,EAAE;YACnC,IAAI;YACJ,KAAK;YACL,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,GAAG,IAAI,KAAK,KAAK,YAAY;YACpC,QAAQ,EAAE,IAAI;SACf,CAAC;QAEF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA2B;YACtE;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,wCAAwC,UAAU,CAAC,KAAK,GAAG;gBACpE,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA0B;gBACrE;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,kEAAkE;oBAC3E,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAA,6BAAgB,EAAC,KAAK,EAAE,aAAa,CAAC;iBACpE;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,IAAA,2BAAc,EAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,UAAU,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACvD,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE7B,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ;YACtC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,eAAe,UAAU,CAAC,QAAQ,GAAG,CAAC;YACrD,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,IAAI,KAAK,KAAK,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC;QAEjF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAoB;YACxD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,wCAAwC;gBACjD,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,WAAW,CAAC,MAAM,4BAA4B,CAAC,CAAC,CAAC;IAEpF,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Error handling utilities
3
+ */
4
+ /**
5
+ * Safely convert unknown error to Error instance
6
+ */
7
+ export declare function toError(error: unknown): Error;
8
+ /**
9
+ * Extract error message from unknown error
10
+ */
11
+ export declare function getErrorMessage(error: unknown): string;
12
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAQ7C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEtD"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * Error handling utilities
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.toError = toError;
7
+ exports.getErrorMessage = getErrorMessage;
8
+ /**
9
+ * Safely convert unknown error to Error instance
10
+ */
11
+ function toError(error) {
12
+ if (error instanceof Error) {
13
+ return error;
14
+ }
15
+ if (typeof error === 'string') {
16
+ return new Error(error);
17
+ }
18
+ return new Error('Unknown error occurred');
19
+ }
20
+ /**
21
+ * Extract error message from unknown error
22
+ */
23
+ function getErrorMessage(error) {
24
+ return toError(error).message;
25
+ }
26
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAKH,0BAQC;AAKD,0CAEC;AAlBD;;GAEG;AACH,SAAgB,OAAO,CAAC,KAAc;IACpC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AAChC,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Validation utilities for user input
3
+ */
4
+ /**
5
+ * Validate OpenAI API key format
6
+ */
7
+ export declare function validateOpenAIKey(input: string): string | true;
8
+ /**
9
+ * Validate git user name (allows "q" to cancel)
10
+ */
11
+ export declare function validateUserName(input: string): string | true;
12
+ /**
13
+ * Validate git user email (allows "q" to cancel)
14
+ */
15
+ export declare function validateUserEmail(input: string, existingEmails?: string[]): string | true;
16
+ /**
17
+ * Validate shortcut key
18
+ */
19
+ export declare function validateShortcut(input: string, usedShortcuts: Set<string>): string | true;
20
+ /**
21
+ * Check if input is cancellation ("q")
22
+ */
23
+ export declare function isCancellation(input: string): boolean;
24
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,cAAc,GAAE,MAAM,EAAO,GAC5B,MAAM,GAAG,IAAI,CAef;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,MAAM,GAAG,IAAI,CAef;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ /**
3
+ * Validation utilities for user input
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validateOpenAIKey = validateOpenAIKey;
7
+ exports.validateUserName = validateUserName;
8
+ exports.validateUserEmail = validateUserEmail;
9
+ exports.validateShortcut = validateShortcut;
10
+ exports.isCancellation = isCancellation;
11
+ /**
12
+ * Validate OpenAI API key format
13
+ */
14
+ function validateOpenAIKey(input) {
15
+ const trimmed = input.trim();
16
+ if (trimmed.length === 0) {
17
+ return "OpenAI API Key is required!";
18
+ }
19
+ if (!trimmed.startsWith("sk-")) {
20
+ return 'OpenAI API Key must start with "sk-"!';
21
+ }
22
+ return true;
23
+ }
24
+ /**
25
+ * Validate git user name (allows "q" to cancel)
26
+ */
27
+ function validateUserName(input) {
28
+ const trimmed = input.trim();
29
+ if (trimmed.toLowerCase() === "q") {
30
+ return true;
31
+ }
32
+ if (trimmed.length === 0) {
33
+ return "Name is required!";
34
+ }
35
+ return true;
36
+ }
37
+ /**
38
+ * Validate git user email (allows "q" to cancel)
39
+ */
40
+ function validateUserEmail(input, existingEmails = []) {
41
+ const trimmed = input.trim();
42
+ if (trimmed.toLowerCase() === "q") {
43
+ return true;
44
+ }
45
+ if (trimmed.length === 0) {
46
+ return "Email is required!";
47
+ }
48
+ if (!trimmed.includes("@")) {
49
+ return "Please enter a valid email address!";
50
+ }
51
+ if (existingEmails.includes(trimmed)) {
52
+ return "This email is already added!";
53
+ }
54
+ return true;
55
+ }
56
+ /**
57
+ * Validate shortcut key
58
+ */
59
+ function validateShortcut(input, usedShortcuts) {
60
+ const key = input.trim().toLowerCase();
61
+ if (key === "q") {
62
+ return true;
63
+ }
64
+ if (key.length === 0) {
65
+ return "Shortcut key is required!";
66
+ }
67
+ if (usedShortcuts.has(key)) {
68
+ return "This shortcut is already in use!";
69
+ }
70
+ if (key.includes(" ")) {
71
+ return "Shortcut cannot contain spaces!";
72
+ }
73
+ return true;
74
+ }
75
+ /**
76
+ * Check if input is cancellation ("q")
77
+ */
78
+ function isCancellation(input) {
79
+ return input.trim().toLowerCase() === "q";
80
+ }
81
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAKH,8CASC;AAKD,4CASC;AAKD,8CAkBC;AAKD,4CAkBC;AAKD,wCAEC;AA/ED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,6BAA6B,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,uCAAuC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,KAAa,EACb,iBAA2B,EAAE;IAE7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,qCAAqC,CAAC;IAC/C,CAAC;IACD,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,OAAO,8BAA8B,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,KAAa,EACb,aAA0B;IAE1B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,2BAA2B,CAAC;IACrC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,kCAAkC,CAAC;IAC5C,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;AAC5C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mehmetsagir/git-ai",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "AI-powered git commit tool that analyzes diffs and creates conventional commit messages",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -33,7 +33,8 @@
33
33
  "inquirer": "^8.2.6",
34
34
  "openai": "^4.20.1",
35
35
  "ora": "^5.4.1",
36
- "simple-git": "^3.20.0"
36
+ "simple-git": "^3.20.0",
37
+ "update-notifier": "^7.0.0"
37
38
  },
38
39
  "devDependencies": {
39
40
  "@types/inquirer": "^8.2.10",